1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639(*****************************************************************************)(* *)(* Open Source License *)(* Copyright (c) 2018 Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)(* *)(* 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, 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 AUTHORS OR 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. *)(* *)(*****************************************************************************)letadjectives=[|"abandoned";"able";"absolute";"adorable";"adventurous";"academic";"acceptable";"acclaimed";"accomplished";"accurate";"aching";"acidic";"acrobatic";"active";"actual";"adept";"admirable";"admired";"adolescent";"adorable";"adored";"advanced";"afraid";"affectionate";"aged";"aggravating";"aggressive";"agile";"agitated";"agonizing";"agreeable";"ajar";"alarmed";"alarming";"alert";"alienated";"alive";"all";"altruistic";"amazing";"ambitious";"ample";"amused";"amusing";"anchored";"ancient";"angelic";"angry";"anguished";"animated";"annual";"another";"antique";"anxious";"any";"apprehensive";"appropriate";"apt";"arctic";"arid";"aromatic";"artistic";"ashamed";"assured";"astonishing";"athletic";"attached";"attentive";"attractive";"austere";"authentic";"authorized";"automatic";"avaricious";"average";"aware";"awesome";"awful";"awkward";"babyish";"bad";"back";"baggy";"bare";"barren";"basic";"beautiful";"belated";"beloved";"beneficial";"better";"best";"bewitched";"big";"biodegradable";"bitter";"black";"bland";"blank";"blaring";"bleak";"blind";"blissful";"blond";"blue";"blushing";"bogus";"boiling";"bold";"bony";"boring";"bossy";"both";"bouncy";"bountiful";"bowed";"brave";"breakable";"brief";"bright";"brilliant";"brisk";"broken";"bronze";"brown";"bruised";"bubbly";"bulky";"bumpy";"buoyant";"burdensome";"burly";"bustling";"busy";"buttery";"buzzing";"calculating";"calm";"candid";"canine";"capital";"carefree";"careful";"careless";"caring";"cautious";"cavernous";"celebrated";"charming";"cheap";"cheerful";"cheery";"chief";"chilly";"chubby";"circular";"classic";"clean";"clear";"clever";"close";"closed";"cloudy";"clueless";"clumsy";"cluttered";"coarse";"cold";"colorful";"colorless";"colossal";"comfortable";"common";"compassionate";"competent";"complete";"complex";"complicated";"composed";"concerned";"concrete";"confused";"conscious";"considerate";"constant";"content";"conventional";"cooked";"cool";"cooperative";"coordinated";"corny";"corrupt";"costly";"courageous";"courteous";"crafty";"crazy";"creamy";"creative";"creepy";"criminal";"crisp";"critical";"crooked";"crowded";"cruel";"crushing";"cuddly";"cultivated";"cultured";"cumbersome";"curly";"curvy";"cute";"cylindrical";"damaged";"damp";"dangerous";"dapper";"daring";"darling";"dark";"dazzling";"dead";"deadly";"deafening";"dear";"dearest";"decent";"decimal";"decisive";"deep";"defenseless";"defensive";"defiant";"deficient";"definite";"definitive";"delayed";"delectable";"delicious";"delightful";"delirious";"demanding";"dense";"dental";"dependable";"dependent";"descriptive";"deserted";"detailed";"determined";"devoted";"different";"difficult";"digital";"diligent";"dim";"dimpled";"dimwitted";"direct";"disastrous";"discrete";"disfigured";"disgusting";"disloyal";"dismal";"distant";"downright";"dreary";"dirty";"disguised";"dishonest";"dismal";"distant";"distinct";"distorted";"dizzy";"dopey";"doting";"double";"downright";"drab";"drafty";"dramatic";"dreary";"droopy";"dry";"dual";"dull";"dutiful";"eager";"earnest";"early";"easy";"ecstatic";"edible";"educated";"elaborate";"elastic";"elated";"elderly";"electric";"elegant";"elementary";"elliptical";"embarrassed";"embellished";"eminent";"emotional";"empty";"enchanted";"enchanting";"energetic";"enlightened";"enormous";"enraged";"entire";"envious";"equal";"equatorial";"essential";"esteemed";"ethical";"euphoric";"even";"evergreen";"everlasting";"every";"evil";"exalted";"excellent";"exemplary";"exhausted";"excitable";"excited";"exciting";"exotic";"expensive";"experienced";"expert";"extraneous";"extroverted";"fabulous";"failing";"faint";"fair";"faithful";"fake";"false";"familiar";"famous";"fancy";"fantastic";"far";"faraway";"fast";"fat";"fatal";"fatherly";"favorable";"favorite";"fearful";"fearless";"feisty";"feline";"female";"feminine";"few";"fickle";"filthy";"fine";"finished";"firm";"first";"firsthand";"fitting";"fixed";"flaky";"flamboyant";"flashy";"flat";"flawed";"flawless";"flickering";"flimsy";"flippant";"flowery";"fluffy";"fluid";"flustered";"focused";"fond";"foolhardy";"foolish";"forceful";"forked";"formal";"forsaken";"forthright";"fortunate";"fragrant";"frail";"frank";"frayed";"free";"french";"fresh";"frequent";"friendly";"frightened";"frightening";"frigid";"frilly";"frizzy";"frivolous";"front";"frosty";"frozen";"frugal";"fruitful";"full";"fumbling";"functional";"funny";"fussy";"fuzzy";"gargantuan";"gaseous";"general";"generous";"gentle";"genuine";"giant";"giddy";"gigantic";"gifted";"giving";"glamorous";"glaring";"glass";"gleaming";"gleeful";"glistening";"glittering";"gloomy";"glorious";"glossy";"glum";"golden";"good";"gorgeous";"graceful";"gracious";"grand";"grandiose";"granular";"grateful";"grave";"gray";"great";"greedy";"green";"gregarious";"grim";"grimy";"gripping";"grizzled";"gross";"grotesque";"grouchy";"grounded";"growing";"growling";"grown";"grubby";"gruesome";"grumpy";"guilty";"gullible";"gummy";"hairy";"half";"handmade";"handsome";"handy";"happy";"hard";"harmful";"harmless";"harmonious";"harsh";"hasty";"hateful";"haunting";"healthy";"heartfelt";"hearty";"heavenly";"heavy";"hefty";"helpful";"helpless";"hidden";"hideous";"high";"hilarious";"hoarse";"hollow";"homely";"honest";"honorable";"honored";"hopeful";"horrible";"hospitable";"hot";"huge";"humble";"humiliating";"humming";"humongous";"hungry";"hurtful";"husky";"icky";"icy";"ideal";"idealistic";"identical";"idle";"idiotic";"idolized";"ignorant";"ill";"illegal";"illiterate";"illustrious";"imaginary";"imaginative";"immaculate";"immaterial";"immediate";"immense";"impassioned";"impeccable";"impartial";"imperfect";"imperturbable";"impish";"impolite";"important";"impossible";"impractical";"impressionable";"impressive";"improbable";"impure";"inborn";"incomparable";"incompatible";"incomplete";"inconsequential";"incredible";"indelible";"inexperienced";"indolent";"infamous";"infantile";"infatuated";"inferior";"infinite";"informal";"innocent";"insecure";"insidious";"insignificant";"insistent";"instructive";"insubstantial";"intelligent";"intent";"intentional";"interesting";"internal";"international";"intrepid";"ironclad";"irresponsible";"irritating";"itchy";"jaded";"jagged";"jaunty";"jealous";"jittery";"joint";"jolly";"jovial";"joyful";"joyous";"jubilant";"judicious";"juicy";"jumbo";"junior";"jumpy";"juvenile";"kaleidoscopic";"keen";"key";"kind";"kindhearted";"kindly";"klutzy";"knobby";"knotty";"knowledgeable";"knowing";"known";"kooky";"lame";"lanky";"large";"last";"lasting";"late";"lavish";"lawful";"lazy";"leading";"lean";"leafy";"left";"legal";"legitimate";"light";"lighthearted";"likable";"likely";"limited";"limp";"limping";"linear";"lined";"liquid";"little";"live";"lively";"livid";"loathsome";"lone";"lonely";"long";"loose";"lopsided";"lost";"loud";"lovable";"lovely";"loving";"low";"loyal";"lucky";"lumbering";"luminous";"lumpy";"lustrous";"luxurious";"mad";"magnificent";"majestic";"major";"male";"mammoth";"married";"marvelous";"masculine";"massive";"mature";"meager";"mealy";"mean";"measly";"meaty";"medical";"mediocre";"medium";"meek";"mellow";"melodic";"memorable";"menacing";"merry";"messy";"metallic";"mild";"milky";"mindless";"miniature";"minor";"minty";"miserable";"miserly";"misguided";"misty";"mixed";"modern";"modest";"moist";"monstrous";"monthly";"monumental";"moral";"mortified";"motherly";"motionless";"mountainous";"muddy";"muffled";"multicolored";"mundane";"murky";"mushy";"musty";"muted";"mysterious";"naive";"narrow";"nasty";"natural";"naughty";"nautical";"near";"neat";"necessary";"needy";"negative";"neglected";"negligible";"neighboring";"nervous";"new";"nice";"nifty";"nimble";"nippy";"nocturnal";"noisy";"nonstop";"normal";"notable";"noted";"noteworthy";"novel";"noxious";"numb";"nutritious";"nutty";"obedient";"obese";"oblong";"oily";"oblong";"obvious";"occasional";"odd";"oddball";"offbeat";"offensive";"official";"old";"only";"open";"optimal";"optimistic";"opulent";"orange";"orderly";"organic";"ornate";"ornery";"ordinary";"original";"other";"our";"outlying";"outgoing";"outlandish";"outrageous";"outstanding";"oval";"overcooked";"overdue";"overjoyed";"overlooked";"palatable";"pale";"paltry";"parallel";"parched";"partial";"passionate";"past";"pastel";"peaceful";"peppery";"perfect";"perfumed";"periodic";"perky";"personal";"pertinent";"pesky";"pessimistic";"petty";"phony";"physical";"piercing";"pink";"pitiful";"plain";"plaintive";"plastic";"playful";"pleasant";"pleased";"pleasing";"plump";"plush";"polished";"polite";"political";"pointed";"pointless";"poised";"poor";"popular";"portly";"posh";"positive";"possible";"potable";"powerful";"powerless";"practical";"precious";"present";"prestigious";"pretty";"precious";"previous";"pricey";"prickly";"primary";"prime";"pristine";"private";"prize";"probable";"productive";"profitable";"profuse";"proper";"proud";"prudent";"punctual";"pungent";"puny";"pure";"purple";"pushy";"putrid";"puzzled";"puzzling";"quaint";"qualified";"quarrelsome";"quarterly";"queasy";"querulous";"questionable";"quick";"quiet";"quintessential";"quirky";"quixotic";"quizzical";"radiant";"ragged";"rapid";"rare";"rash";"raw";"recent";"reckless";"rectangular";"ready";"real";"realistic";"reasonable";"red";"reflecting";"regal";"regular";"reliable";"relieved";"remarkable";"remorseful";"remote";"repentant";"required";"respectful";"responsible";"repulsive";"revolving";"rewarding";"rich";"rigid";"right";"ringed";"ripe";"roasted";"robust";"rosy";"rotating";"rotten";"rough";"round";"rowdy";"royal";"rubbery";"rundown";"ruddy";"rude";"runny";"rural";"rusty";"sad";"safe";"salty";"same";"sandy";"sane";"sarcastic";"sardonic";"satisfied";"scaly";"scarce";"scared";"scary";"scented";"scholarly";"scientific";"scornful";"scratchy";"scrawny";"second";"secondary";"secret";"selfish";"sentimental";"separate";"serene";"serious";"serpentine";"several";"severe";"shabby";"shadowy";"shady";"shallow";"shameful";"shameless";"sharp";"shimmering";"shiny";"shocked";"shocking";"shoddy";"short";"showy";"shrill";"shy";"sick";"silent";"silky";"silly";"silver";"similar";"simple";"simplistic";"sinful";"single";"sizzling";"skeletal";"skinny";"sleepy";"slight";"slim";"slimy";"slippery";"slow";"slushy";"small";"smart";"smoggy";"smooth";"smug";"snappy";"snarling";"sneaky";"sniveling";"snoopy";"sociable";"soft";"soggy";"solid";"somber";"some";"spherical";"sophisticated";"sore";"sorrowful";"soulful";"soupy";"sour";"spanish";"sparkling";"sparse";"specific";"spectacular";"speedy";"spicy";"spiffy";"spirited";"spiteful";"splendid";"spotless";"spotted";"spry";"square";"squeaky";"squiggly";"stable";"staid";"stained";"stale";"standard";"starchy";"stark";"starry";"steep";"sticky";"stiff";"stimulating";"stingy";"stormy";"straight";"strange";"steel";"strict";"strident";"striking";"striped";"strong";"studious";"stunning";"stupendous";"stupid";"sturdy";"stylish";"subdued";"submissive";"substantial";"subtle";"suburban";"sudden";"sugary";"sunny";"super";"superb";"superficial";"superior";"supportive";"surprised";"suspicious";"svelte";"sweaty";"sweet";"sweltering";"swift";"sympathetic";"tall";"talkative";"tame";"tan";"tangible";"tart";"tasty";"tattered";"taut";"tedious";"teeming";"tempting";"tender";"tense";"tepid";"terrible";"terrific";"testy";"thankful";"that";"these";"thick";"thin";"third";"thirsty";"this";"thorough";"thorny";"those";"thoughtful";"threadbare";"thrifty";"thunderous";"tidy";"tight";"timely";"tinted";"tiny";"tired";"torn";"total";"tough";"traumatic";"treasured";"tremendous";"tragic";"trained";"tremendous";"triangular";"tricky";"trifling";"trim";"trivial";"troubled";"true";"trusting";"trustworthy";"trusty";"truthful";"tubby";"turbulent";"twin";"ugly";"ultimate";"unacceptable";"unaware";"uncomfortable";"uncommon";"unconscious";"understated";"unequaled";"uneven";"unfinished";"unfit";"unfolded";"unfortunate";"unhappy";"unhealthy";"uniform";"unimportant";"unique";"united";"unkempt";"unknown";"unlawful";"unlined";"unlucky";"unnatural";"unpleasant";"unrealistic";"unripe";"unruly";"unselfish";"unsightly";"unsteady";"unsung";"untidy";"untimely";"untried";"untrue";"unused";"unusual";"unwelcome";"unwieldy";"unwilling";"unwitting";"unwritten";"upbeat";"upright";"upset";"urban";"usable";"used";"useful";"useless";"utilized";"utter";"vacant";"vague";"vain";"valid";"valuable";"vapid";"variable";"vast";"velvety";"venerated";"vengeful";"verifiable";"vibrant";"vicious";"victorious";"vigilant";"vigorous";"villainous";"violet";"violent";"virtual";"virtuous";"visible";"vital";"vivacious";"vivid";"voluminous";"warlike";"warm";"warmhearted";"warped";"wary";"wasteful";"watchful";"waterlogged";"watery";"wavy";"wealthy";"weak";"weary";"webbed";"wee";"weekly";"weepy";"weighty";"weird";"welcome";"wet";"which";"whimsical";"whirlwind";"whispered";"white";"whole";"whopping";"wicked";"wide";"wiggly";"wild";"willing";"wilted";"winding";"windy";"winged";"wiry";"wise";"witty";"wobbly";"woeful";"wonderful";"wooden";"woozy";"wordy";"worldly";"worn";"worried";"worrisome";"worse";"worst";"worthless";"worthwhile";"worthy";"wrathful";"wretched";"writhing";"wrong";"wry";"yawning";"yearly";"yellow";"yellowish";"young";"youthful";"yummy";"zany";"zealous";"zesty";|]letanimals=[|"aardvark";"abyssinian";"affenpinscher";"akbash";"akita";"albatross";"alligator";"angelfish";"ant";"anteater";"antelope";"armadillo";"avocet";"axolotl";"baboon";"badger";"balinese";"bandicoot";"barb";"barnacle";"barracuda";"bat";"beagle";"bear";"beaver";"beetle";"binturong";"birman";"bison";"bloodhound";"bobcat";"bombay";"bongo";"bonobo";"booby";"budgerigar";"buffalo";"bulldog";"bullfrog";"burmese";"butterfly";"caiman";"camel";"capybara";"caracal";"cassowary";"cat";"caterpillar";"catfish";"centipede";"chameleon";"chamois";"cheetah";"chicken";"chihuahua";"chimpanzee";"chinchilla";"chinook";"chipmunk";"cichlid";"coati";"cockroach";"collie";"coral";"cougar";"cow";"coyote";"crab";"crane";"crocodile";"cuscus";"cuttlefish";"dachshund";"dalmatian";"deer";"dhole";"dingo";"discus";"dodo";"dog";"dolphin";"donkey";"dormouse";"dragonfly";"drever";"duck";"dugong";"dunker";"eagle";"earwig";"echidna";"elephant";"emu";"falcon";"fennec";"ferret";"fish";"flamingo";"flounder";"fly";"fossa";"fox";"frigatebird";"frog";"gar";"gecko";"gerbil";"gharial";"gibbon";"giraffe";"goat";"goose";"gopher";"gorilla";"grasshopper";"greyhound";"grouse";"guppy";"hamster";"hare";"harrier";"havanese";"hedgehog";"heron";"himalayan";"hippopotamus";"horse";"human";"hummingbird";"hyena";"ibis";"iguana";"impala";"indri";"insect";"jackal";"jaguar";"javanese";"jellyfish";"kakapo";"kangaroo";"kingfisher";"kiwi";"koala";"kudu";"labradoodle";"ladybird";"lemming";"lemur";"leopard";"liger";"lion";"lionfish";"lizard";"llama";"lobster";"lynx";"macaw";"magpie";"maltese";"manatee";"mandrill";"markhor";"mastiff";"mayfly";"meerkat";"millipede";"mole";"molly";"mongoose";"mongrel";"monkey";"moorhen";"moose";"moth";"mouse";"mule";"neanderthal";"newfoundland";"newt";"nightingale";"numbat";"ocelot";"octopus";"okapi";"olm";"opossum";"ostrich";"otter";"oyster";"pademelon";"panther";"parrot";"peacock";"pekingese";"pelican";"penguin";"persian";"pheasant";"pig";"pika";"pike";"piranha";"platypus";"pointer";"poodle";"porcupine";"possum";"prawn";"puffin";"pug";"puma";"quail";"quetzal";"quokka";"quoll";"rabbit";"raccoon";"ragdoll";"rat";"rattlesnake";"reindeer";"rhinoceros";"robin";"rottweiler";"salamander";"saola";"scorpion";"seahorse";"seal";"serval";"sheep";"shrimp";"siamese";"siberian";"skunk";"sloth";"snail";"snake";"snowshoe";"somali";"sparrow";"sponge";"squid";"squirrel";"starfish";"stingray";"stoat";"swan";"tang";"tapir";"tarsier";"termite";"tetra";"tiffany";"tiger";"tortoise";"toucan";"tropicbird";"tuatara";"turkey";"uakari";"uguisu";"umbrellabird";"vulture";"wallaby";"walrus";"warthog";"wasp";"weasel";"whippet";"wildebeest";"wolf";"wolverine";"wombat";"woodlouse";"woodpecker";"wrasse";"yak";"zebra";"zebu";"zonkey";"zorse";|]letpickaz=a.(Z.remz(Array.lengtha|>Z.of_int)|>Z.to_int)lethasha=Tezos_crypto.Blake2B.hash_string[a]|>Tezos_crypto.Blake2B.to_stringtypet={c:string;t:string;h:string;d:string}letppppf{c;t;h;d}=Format.fprintfppf"%s-%s-%s-%s"cthdletcrouching_tigerstring=letc=pickadjectives(string|>hash|>Z.of_bits)inlett=pickanimals(string|>hash|>hash|>Z.of_bits)inleth=pickadjectives(string|>hash|>hash|>hash|>Z.of_bits)inletd=pickanimals(string|>hash|>hash|>hash|>hash|>Z.of_bits)in{c;t;h;d}