UNPKG

space-slug

Version:

Generate unique slugs, usernames, numbers and more. If you need a unique string that looks like this `hyperspace-4812` or `blue-whimsical-summer` using an intuitive api with zero dependencies.

28 lines (26 loc) 43.9 kB
'use strict'; var m=["jabba","hyperspace","apple","tree","book","car","sun","moon","river","flower","ocean","computer","mountain","house","chair","shoe","cloud","pen","robot","castle","butterfly","diamond","volcano","island","rain","sword","candle","star","mirror","tornado","key","guitar","clock","hammer","bottle","bridge","planet","feather","wizard","mask","statue","drum","breeze","rocket","lighthouse","telescope","crown","whisper","thunder","flute","sunset","puzzle","carousel","treasure","quill","fountain","circuit","carousel","horizon","feather","velvet","cathedral","ballet","crystal","harbor","harmony","mystic","stardust","beacon","chandelier","marble","paradise","echo","rainbow","cactus","cog","cafe","piano","silhouette","chess","velvet","meditation","submarine","horizon","legend","carnival","whisper","umbrella","cathedral","infinity","serenity","ballet","compass","labyrinth","constellation","illusion","galaxy","cascade","oracle","meridian","reverie","trinity","echo","eternity","haven","dewdrop","moss","alchemy","aria","cobweb","solstice","veranda","infinity","serendipity","wisdom","spectrum","quasar","mirage","spell","cascade","lacuna","horizon","labyrinth","essence","crescent","fragrance","twilight","virtue","equinox","mystique","nectar","elixir","solitude","gazebo","opal","dusk","solitude","candlelight","monolith","nova","plume","serenity","aurora","paragon","rhapsody","arcade","charisma","solstice","comet","quill","thunder","marvel","boulevard","caliber","insight","fantasy","symphony","pinnacle","lagoon","sonnet","sapphire","alchemy","resonance","wonder","silhouette","paragon","cascade","labyrinth","harmony","lagoon","horizon","essence","solitude","voyage","mystique","solar","paradise","serendipity","aurora","twilight","marvel","dusk","solstice","phantom","monolith","zenith","whisper","oracle","horizon","nova","crescent","illusion","rhapsody","charisma","serenity","boulevard","insight","fantasy","quasar","pinnacle","symphony","lagoon","sonnet","sapphire","comet","wonder","caliber","silhouette","paragon","cascade","labyrinth","harmony","lagoon","horizon","essence","solitude","voyage","mystique","solar","paradise","serendipity","aurora","twilight","marvel","dusk","solstice","phantom","monolith","zenith","whisper","oracle","horizon","nova","crescent","illusion","rhapsody","charisma","serenity","boulevard","insight","fantasy","quasar","pinnacle","symphony","lagoon","sonnet","sapphire","comet","wonder","caliber"];var g=["winter","spring","summer","autumn"];var h=["random","wonderful","awesome","super","clean","elegant","fancy","glamorous","handsome","magnificent","fashionable","plain","quaint","sparkling","chic","polished","sleek","lavish","stylish","attractive","breathtaking","ritzy","tasteful","swanky","picturesque","mesmerizing","unique","aesthetic","resplendent","regal","enchanting","immaculate","ornate","opulent","splendid","gorgeous","exotic","glistening","friendly","joyful","delightful","radiant","charming","whimsical","serene","lovely","benevolent","harmonious","graceful","heartwarming","upbeat","soothing","tranquil","captivating","effervescent","enjoyable","cuddly","sweet","inviting","endearing","amiable","caring","comforting","inspiring","nurturing","relaxing","vibrant","jovial","radiant","celestial"];var d=["red","orange","yellow","green","blue","purple","pink","brown","gray","black","white","turquoise","indigo","teal","maroon","emerald","lavender","magenta","amber","ivory","ruby","sapphire","amber","rose","coral","gold","silver","bronze","copper","plum","vermilion","cerulean","crimson","ebony","chartreuse","fuchsia","violet","olive","mauve","periwinkle","ochre","taupe","sepia","aquamarine","burgundy","navy","khaki","peach","lilac","honeydew","powderblue","pumpkin","sienna","orchid","turquoise","thistle","champagne","raspberry","cobalt","celadon","garnet","slate","mulberry","cinnamon","lemon","vermilion","tangerine","jade","periwinkle","caramel","pear","mahogany","lapis","citrine","persimmon","alabaster","amethyst","wisteria","glaucous","papaya","pansy","watermelon","iris","flaxen","rufous","hazelnut","tangelo","scarlet","carmine","linen","ultraviolet"];var y=["lion","tiger","elephant","giraffe","zebra","koala","kangaroo","cheetah","lemur","rhino","hippo","panda","jaguar","lemming","lynx","otter","ocelot","meerkat","hyena","gazelle","mongoose","sloth","panther","bobcat","dingo","anteater","armadillo","chameleon","tapir","lemur","platypus","wallaby","iguana","orca","serval","weasel","quokka","badger","okapi","mandrill","pangolin","narwhal","wombat","vulture","porcupine","aardvark","chinchilla","coati","gecko","warthog","koala","impala","elk","baboon","buffalo","lemming","puma","gibbon","newt","tapir","ocelot","ocelot","marmoset","vicuna","echidna","capybara","caribou","chipmunk","mantis","civet","cormorant","crocodile","iguana","crocodile","chameleon","armadillo","caiman","gazelle","pangolin","porcupine","lemur","lemur","leopard","ocelot","sloth","wombat","elk","meerkat","vulture","hyena","hyena","serval","koala","lion","otter","panda","otter","sloth","aardvark","jaguar","gazelle","panda","rhino","mongoose","gibbon","vulture","tiger","coati","lemming","kangaroo","dugong","armadillo","puma","platypus","quokka","baboon","marmoset","ocelot","cheetah","tarsier","bobcat","gecko","penguin","sloth","quokka","buffalo","lemur","civet","vulture","badger","cheetah","lemur","tapir","ibex","lion","iguana","jaguar","lemur","wombat","cheetah","meerkat","okapi","panther","quokka","panda","wombat","hyena","vulture","jaguar","kangaroo","coati","ocelot","rhino","koala","lion","panda","puma","serval","tarsier","unicorn","vulture","warthog","yak","zebra"];var b=["run","jump","swim","sing","dance","laugh","think","dream","create","explore","climb","read","write","paint","draw","build","solve","teach","learn","discover","listen","speak","whisper","shout","imagine","play","work","relax","travel","cook","bake","sew","plant","harvest","design","compose","photograph","ride","drive","fly","swirl","twirl","sparkle","enjoy","care","believe","achieve","inspire","encourage","challenge","conquer","transform","grow","shine","awaken","ignite","whisk","stitch","forge","wander","navigate","ascent","plunge","sculpt","illuminate","assemble","initiate","sketch","carve","illumine","propel","effervesce","imbue","harmonize","ruminate","expound","invent","orchestrate","refine","adventure","meander","resonate","persuade","inquire","gaze","immerse","endure","traverse","immerse","awaken","revel","perceive","treasure","quench","enrich","cultivate"];var v=["tardis","cosmos","galaxy","universe","stellar","nebula","quasar","supernova","gravity","celestial","interstellar","infinity","singularity","multiverse","astrophysics","luminous","constellation","pulsar","parallax","vortex","comet","spacetime","gamma","orbital","intergalactic","extraterrestrial","zenith","inflation","void","hyperspace","quark","starburst","cosmonaut","moonbeam","antimatter","horizon","astronomer","astrolabe","stargazer","redshift"];var f=["\u{1F984}","\u{1F43C}","\u{1F43E}","\u{1F340}","\u{1F420}","\u{1F33B}","\u{1F353}","\u{1F33A}","\u{1F344}","\u{1F33C}","\u{1F435}","\u{1F436}","\u{1F43A}","\u{1F431}","\u{1F981}","\u{1F42F}","\u{1F434}","\u{1F42E}","\u{1F437}","\u{1F417}","\u{1F42D}","\u{1F439}","\u{1F430}","\u{1F43B}","\u{1F428}","\u{1F43C}","\u{1F998}","\u{1F9A1}","\u{1F43E}","\u{1F994}","\u{1F414}","\u{1F413}","\u{1F423}","\u{1F424}","\u{1F425}","\u{1F426}","\u{1F427}","\u{1F985}","\u{1F986}","\u{1F9A2}","\u{1F989}","\u{1F99A}","\u{1F99C}","\u{1F9A9}","\u{1F438}","\u{1F40A}","\u{1F422}","\u{1F98E}","\u{1F40D}","\u{1F432}","\u{1F409}","\u{1F995}","\u{1F996}","\u{1F335}","\u{1F334}","\u{1F332}","\u{1F333}","\u{1F331}","\u{1F33F}","\u2618\uFE0F","\u{1F340}","\u{1F38D}","\u{1F38B}","\u{1F343}","\u{1F342}","\u{1F341}","\u{1F344}","\u{1F33E}","\u{1F345}","\u{1F346}","\u{1F33D}","\u{1F336}","\u{1F360}","\u{1F347}","\u{1F348}","\u{1F349}","\u{1F34A}","\u{1F34B}","\u{1F34C}","\u{1F34D}","\u{1F34E}","\u{1F34F}","\u{1F350}","\u{1F351}","\u{1F352}","\u{1F353}","\u{1F95D}","\u{1F345}","\u{1F951}","\u{1F346}","\u{1F952}","\u{1F344}","\u{1F95C}","\u{1F330}","\u{1F35E}","\u{1F950}","\u{1F956}","\u{1F968}","\u{1F96F}","\u{1F95E}","\u{1F36E}","\u{1F36F}","\u{1F964}"];var w={en:{seasons:g,emojis:f,adjectives:h,nouns:m,colors:d,animals:y,verbs:b,cosmos:v}},k={locale:"en",separator:"-",dictionary:w},c=r=>(e,n)=>o=>{var i;let a=n!=null&&n.length?n:((i=o.dictionary)==null?void 0:i[o.locale])[r];if(!(a!=null&&a.length))throw new Error(`No words found for ${r}`);let t=e||1;if(t>a.length)throw new Error(`Cannot generate ${t} unique words from ${a.length} words`);let s=new Set;for(;s.size<t;){let l=Math.floor(Math.random()*a.length);s.add(a[l]);}return s},x=c("nouns"),S=c("adjectives"),I=c("colors"),J=c("seasons"),K=c("emojis"),Q=c("verbs"),T=c("animals"),V=c("cosmos"),q=(r,e)=>n=>{let o=r||4,a=[];for(;a.length<o;){let t=Math.floor(Math.random()*10).toString(),s=a.length?a[a.length-1]:null;e&&s!==null&&s===t||a.push(t);}return a.map(t=>t.toString()).join("")},z=(r,e)=>r.replace(/\s+/g,e).trim().replace(new RegExp(`[^a-zA-Z0-9${e}]+`,"g"),"").replace(new RegExp(`(?:${e}){2,}`,"g"),e).replace(new RegExp(`^${e}|${e}$`,"g"),""),p=async(r,e,n)=>{let o=j(r,e),a=e.maxAttempts||5;if(n>a)throw new Error(`Could not generate unique slug after ${e.maxAttempts} attempts`);if(e.usedSlugs&&e.usedSlugs.includes(o))return p(r,e,n+1);if(e.isUnique&&!await e.isUnique(o)){if(e.makeUnique){let s=await e.makeUnique(o);return p([s],e,n+1)}return p(r,e,n+1)}return o},X=async(r,e={})=>p(r,e,1),j=(r,e={})=>{let n={...k,...e},o=n.transform||(i=>i.toLowerCase()),a=r!=null&&r.length?r:[S(1),x(1),q(2)],t=e.cleanString?e.cleanString:i=>z(i,n.separator);return a.map(i=>{let l=typeof i=="function"?i(n):i,u;if(typeof l=="string")u=t(l);else if(typeof l=="object"&&l instanceof Set)u=Array.from(l).map(t).join(n.separator);else if(Array.isArray(l))u=l.map(t).join(n.separator);else throw new Error("Invalid space slug function output");return o(u)}).join(n.separator)}; exports.adjective = S; exports.adjectives = h; exports.animal = T; exports.animals = y; exports.cleanString = z; exports.color = I; exports.colors = d; exports.cosmos = V; exports.digits = q; exports.emoji = K; exports.emojis = f; exports.noun = x; exports.nouns = m; exports.season = J; exports.seasons = g; exports.spaceSlug = j; exports.spaceSlugDefaultDictionary = w; exports.spaceSlugDefaultOptions = k; exports.uniqueSpaceSlug = X; exports.verb = Q; exports.verbs = b; exports.word = c; //# sourceMappingURL=out.js.map //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWN0aW9uYXJ5L2VuL25vdW5zLnRzIiwiLi4vc3JjL2RpY3Rpb25hcnkvZW4vc2Vhc29ucy50cyIsIi4uL3NyYy9kaWN0aW9uYXJ5L2VuL2FkamVjdGl2ZXMudHMiLCIuLi9zcmMvZGljdGlvbmFyeS9lbi9jb2xvcnMudHMiLCIuLi9zcmMvZGljdGlvbmFyeS9lbi9hbmltYWxzLnRzIiwiLi4vc3JjL2RpY3Rpb25hcnkvZW4vdmVyYnMudHMiLCIuLi9zcmMvZGljdGlvbmFyeS9lbi9jb3Ntb3MudHMiLCIuLi9zcmMvZGljdGlvbmFyeS9lbW9qaXMudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOlsibm91bnMiLCJzZWFzb25zIiwiYWRqZWN0aXZlcyIsImNvbG9ycyIsImFuaW1hbHMiLCJ2ZXJicyIsImNvc21vcyIsImVtb2ppcyIsInNwYWNlU2x1Z0RlZmF1bHREaWN0aW9uYXJ5Iiwic3BhY2VTbHVnRGVmYXVsdE9wdGlvbnMiLCJ3b3JkIiwidHlwZSIsImNvdW50IiwiX3dvcmRzIiwib3B0aW9ucyIsIl9hIiwid29yZHMiLCJjIiwic2V0IiwiaW5kZXgiLCJub3VuIiwiYWRqZWN0aXZlIiwiY29sb3IiLCJzZWFzb24iLCJlbW9qaSIsInZlcmIiLCJhbmltYWwiLCJkaWdpdHMiLCJub0NvbnNlY3V0aXZlIiwibGlzdCIsInZhbHVlIiwibGF0ZXN0IiwieCIsImNsZWFuU3RyaW5nIiwiaW5wdXRTdHJpbmciLCJzZXBhcmF0b3IiLCJfdW5pcXVlU3BhY2VTbHVnIiwic3BhY2VTbHVnRm4iLCJhdHRlbXB0cyIsInNsdWciLCJzcGFjZVNsdWciLCJtYXhBdHRlbXB0cyIsInVuaXF1ZVNsdWciLCJ1bmlxdWVTcGFjZVNsdWciLCJzcGFjZVNsdWdJbnB1dHMiLCJtZXJnZWRPcHRpb25zIiwidHJhbnNmb3JtRm4iLCJfc3BhY2VTbHVnRm5zIiwiX2NsZWFuU3RyaW5nIiwicyIsImZuIl0sIm1hcHBpbmdzIjoiQUFBTyxJQUFNQSxFQUFRLENBQ25CLFFBQ0EsYUFDQSxRQUNBLE9BQ0EsT0FDQSxNQUNBLE1BQ0EsT0FDQSxRQUNBLFNBQ0EsUUFDQSxXQUNBLFdBQ0EsUUFDQSxRQUNBLE9BQ0EsUUFDQSxNQUNBLFFBQ0EsU0FDQSxZQUNBLFVBQ0EsVUFDQSxTQUNBLE9BQ0EsUUFDQSxTQUNBLE9BQ0EsU0FDQSxVQUNBLE1BQ0EsU0FDQSxRQUNBLFNBQ0EsU0FDQSxTQUNBLFNBQ0EsVUFDQSxTQUNBLE9BQ0EsU0FDQSxPQUNBLFNBQ0EsU0FDQSxhQUNBLFlBQ0EsUUFDQSxVQUNBLFVBQ0EsUUFDQSxTQUNBLFNBQ0EsV0FDQSxXQUNBLFFBQ0EsV0FDQSxVQUNBLFdBQ0EsVUFDQSxVQUNBLFNBQ0EsWUFDQSxTQUNBLFVBQ0EsU0FDQSxVQUNBLFNBQ0EsV0FDQSxTQUNBLGFBQ0EsU0FDQSxXQUNBLE9BQ0EsVUFDQSxTQUNBLE1BQ0EsT0FDQSxRQUNBLGFBQ0EsUUFDQSxTQUNBLGFBQ0EsWUFDQSxVQUNBLFNBQ0EsV0FDQSxVQUNBLFdBQ0EsWUFDQSxXQUNBLFdBQ0EsU0FDQSxVQUNBLFlBQ0EsZ0JBQ0EsV0FDQSxTQUNBLFVBQ0EsU0FDQSxXQUNBLFVBQ0EsVUFDQSxPQUNBLFdBQ0EsUUFDQSxVQUNBLE9BQ0EsVUFDQSxPQUNBLFNBQ0EsV0FDQSxVQUNBLFdBQ0EsY0FDQSxTQUNBLFdBQ0EsU0FDQSxTQUNBLFFBQ0EsVUFDQSxTQUNBLFVBQ0EsWUFDQSxVQUNBLFdBQ0EsWUFDQSxXQUNBLFNBQ0EsVUFDQSxXQUNBLFNBQ0EsU0FDQSxXQUNBLFNBQ0EsT0FDQSxPQUNBLFdBQ0EsY0FDQSxXQUNBLE9BQ0EsUUFDQSxXQUNBLFNBQ0EsVUFDQSxXQUNBLFNBQ0EsV0FDQSxXQUNBLFFBQ0EsUUFDQSxVQUNBLFNBQ0EsWUFDQSxVQUNBLFVBQ0EsVUFDQSxXQUNBLFdBQ0EsU0FDQSxTQUNBLFdBQ0EsVUFDQSxZQUNBLFNBQ0EsYUFDQSxVQUNBLFVBQ0EsWUFDQSxVQUNBLFNBQ0EsVUFDQSxVQUNBLFdBQ0EsU0FDQSxXQUNBLFFBQ0EsV0FDQSxjQUNBLFNBQ0EsV0FDQSxTQUNBLE9BQ0EsV0FDQSxVQUNBLFdBQ0EsU0FDQSxVQUNBLFNBQ0EsVUFDQSxPQUNBLFdBQ0EsV0FDQSxXQUNBLFdBQ0EsV0FDQSxZQUNBLFVBQ0EsVUFDQSxTQUNBLFdBQ0EsV0FDQSxTQUNBLFNBQ0EsV0FDQSxRQUNBLFNBQ0EsVUFDQSxhQUNBLFVBQ0EsVUFDQSxZQUNBLFVBQ0EsU0FDQSxVQUNBLFVBQ0EsV0FDQSxTQUNBLFdBQ0EsUUFDQSxXQUNBLGNBQ0EsU0FDQSxXQUNBLFNBQ0EsT0FDQSxXQUNBLFVBQ0EsV0FDQSxTQUNBLFVBQ0EsU0FDQSxVQUNBLE9BQ0EsV0FDQSxXQUNBLFdBQ0EsV0FDQSxXQUNBLFlBQ0EsVUFDQSxVQUNBLFNBQ0EsV0FDQSxXQUNBLFNBQ0EsU0FDQSxXQUNBLFFBQ0EsU0FDQSxTQUNGLEVDM1BPLElBQU1DLEVBQVUsQ0FBQyxTQUFVLFNBQVUsU0FBVSxRQUFRLEVDQXZELElBQU1DLEVBQWEsQ0FDeEIsU0FDQSxZQUNBLFVBQ0EsUUFDQSxRQUNBLFVBQ0EsUUFDQSxZQUNBLFdBQ0EsY0FDQSxjQUNBLFFBQ0EsU0FDQSxZQUNBLE9BQ0EsV0FDQSxRQUNBLFNBQ0EsVUFDQSxhQUNBLGVBQ0EsUUFDQSxXQUNBLFNBQ0EsY0FDQSxjQUNBLFNBQ0EsWUFDQSxjQUNBLFFBQ0EsYUFDQSxhQUNBLFNBQ0EsVUFDQSxXQUNBLFdBQ0EsU0FDQSxhQUNBLFdBQ0EsU0FDQSxhQUNBLFVBQ0EsV0FDQSxZQUNBLFNBQ0EsU0FDQSxhQUNBLGFBQ0EsV0FDQSxlQUNBLFNBQ0EsV0FDQSxXQUNBLGNBQ0EsZUFDQSxZQUNBLFNBQ0EsUUFDQSxXQUNBLFlBQ0EsVUFDQSxTQUNBLGFBQ0EsWUFDQSxZQUNBLFdBQ0EsVUFDQSxTQUNBLFVBQ0EsV0FDRixFQ3ZFTyxJQUFNQyxFQUFTLENBQ3BCLE1BQ0EsU0FDQSxTQUNBLFFBQ0EsT0FDQSxTQUNBLE9BQ0EsUUFDQSxPQUNBLFFBQ0EsUUFDQSxZQUNBLFNBQ0EsT0FDQSxTQUNBLFVBQ0EsV0FDQSxVQUNBLFFBQ0EsUUFDQSxPQUNBLFdBQ0EsUUFDQSxPQUNBLFFBQ0EsT0FDQSxTQUNBLFNBQ0EsU0FDQSxPQUNBLFlBQ0EsV0FDQSxVQUNBLFFBQ0EsYUFDQSxVQUNBLFNBQ0EsUUFDQSxRQUNBLGFBQ0EsUUFDQSxRQUNBLFFBQ0EsYUFDQSxXQUNBLE9BQ0EsUUFDQSxRQUNBLFFBQ0EsV0FDQSxhQUNBLFVBQ0EsU0FDQSxTQUNBLFlBQ0EsVUFDQSxZQUNBLFlBQ0EsU0FDQSxVQUNBLFNBQ0EsUUFDQSxXQUNBLFdBQ0EsUUFDQSxZQUNBLFlBQ0EsT0FDQSxhQUNBLFVBQ0EsT0FDQSxXQUNBLFFBQ0EsVUFDQSxZQUNBLFlBQ0EsV0FDQSxXQUNBLFdBQ0EsU0FDQSxRQUNBLGFBQ0EsT0FDQSxTQUNBLFNBQ0EsV0FDQSxVQUNBLFVBQ0EsVUFDQSxRQUNBLGFBQ0YsRUM1Rk8sSUFBTUMsRUFBVSxDQUNyQixPQUNBLFFBQ0EsV0FDQSxVQUNBLFFBQ0EsUUFDQSxXQUNBLFVBQ0EsUUFDQSxRQUNBLFFBQ0EsUUFDQSxTQUNBLFVBQ0EsT0FDQSxRQUNBLFNBQ0EsVUFDQSxRQUNBLFVBQ0EsV0FDQSxRQUNBLFVBQ0EsU0FDQSxRQUNBLFdBQ0EsWUFDQSxZQUNBLFFBQ0EsUUFDQSxXQUNBLFVBQ0EsU0FDQSxPQUNBLFNBQ0EsU0FDQSxTQUNBLFNBQ0EsUUFDQSxXQUNBLFdBQ0EsVUFDQSxTQUNBLFVBQ0EsWUFDQSxXQUNBLGFBQ0EsUUFDQSxRQUNBLFVBQ0EsUUFDQSxTQUNBLE1BQ0EsU0FDQSxVQUNBLFVBQ0EsT0FDQSxTQUNBLE9BQ0EsUUFDQSxTQUNBLFNBQ0EsV0FDQSxTQUNBLFVBQ0EsV0FDQSxVQUNBLFdBQ0EsU0FDQSxRQUNBLFlBQ0EsWUFDQSxTQUNBLFlBQ0EsWUFDQSxZQUNBLFNBQ0EsVUFDQSxXQUNBLFlBQ0EsUUFDQSxRQUNBLFVBQ0EsU0FDQSxRQUNBLFNBQ0EsTUFDQSxVQUNBLFVBQ0EsUUFDQSxRQUNBLFNBQ0EsUUFDQSxPQUNBLFFBQ0EsUUFDQSxRQUNBLFFBQ0EsV0FDQSxTQUNBLFVBQ0EsUUFDQSxRQUNBLFdBQ0EsU0FDQSxVQUNBLFFBQ0EsUUFDQSxVQUNBLFdBQ0EsU0FDQSxZQUNBLE9BQ0EsV0FDQSxTQUNBLFNBQ0EsV0FDQSxTQUNBLFVBQ0EsVUFDQSxTQUNBLFFBQ0EsVUFDQSxRQUNBLFNBQ0EsVUFDQSxRQUNBLFFBQ0EsVUFDQSxTQUNBLFVBQ0EsUUFDQSxRQUNBLE9BQ0EsT0FDQSxTQUNBLFNBQ0EsUUFDQSxTQUNBLFVBQ0EsVUFDQSxRQUNBLFVBQ0EsU0FDQSxRQUNBLFNBQ0EsUUFDQSxVQUNBLFNBQ0EsV0FDQSxRQUNBLFNBQ0EsUUFDQSxRQUNBLE9BQ0EsUUFDQSxPQUNBLFNBQ0EsVUFDQSxVQUNBLFVBQ0EsVUFDQSxNQUNBLE9BQ0YsRUNyS08sSUFBTUMsRUFBUSxDQUNuQixNQUNBLE9BQ0EsT0FDQSxPQUNBLFFBQ0EsUUFDQSxRQUNBLFFBQ0EsU0FDQSxVQUNBLFFBQ0EsT0FDQSxRQUNBLFFBQ0EsT0FDQSxRQUNBLFFBQ0EsUUFDQSxRQUNBLFdBQ0EsU0FDQSxRQUNBLFVBQ0EsUUFDQSxVQUNBLE9BQ0EsT0FDQSxRQUNBLFNBQ0EsT0FDQSxPQUNBLE1BQ0EsUUFDQSxVQUNBLFNBQ0EsVUFDQSxhQUNBLE9BQ0EsUUFDQSxNQUNBLFFBQ0EsUUFDQSxVQUNBLFFBQ0EsT0FDQSxVQUNBLFVBQ0EsVUFDQSxZQUNBLFlBQ0EsVUFDQSxZQUNBLE9BQ0EsUUFDQSxTQUNBLFNBQ0EsUUFDQSxTQUNBLFFBQ0EsU0FDQSxXQUNBLFNBQ0EsU0FDQSxTQUNBLGFBQ0EsV0FDQSxXQUNBLFNBQ0EsUUFDQSxXQUNBLFNBQ0EsYUFDQSxRQUNBLFlBQ0EsV0FDQSxVQUNBLFNBQ0EsY0FDQSxTQUNBLFlBQ0EsVUFDQSxXQUNBLFdBQ0EsVUFDQSxPQUNBLFVBQ0EsU0FDQSxXQUNBLFVBQ0EsU0FDQSxRQUNBLFdBQ0EsV0FDQSxTQUNBLFNBQ0EsV0FDRixFQ2pHTyxJQUFNQyxFQUFTLENBQ3BCLFNBQ0EsU0FDQSxTQUNBLFdBQ0EsVUFDQSxTQUNBLFNBQ0EsWUFDQSxVQUNBLFlBQ0EsZUFDQSxXQUNBLGNBQ0EsYUFDQSxlQUNBLFdBQ0EsZ0JB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cEIsR0FBR3BDLEVBQ0gsR0FBR0ssQ0FDTCxFQUVNZ0MsRUFBY0QsRUFBYyxZQUFlYixHQUFNQSxFQUFFLFlBQVksR0FHL0RlLEVBQWlCSCxHQUFBLE1BQUFBLEVBQWlCLE9BRXBDQSxFQURBLENBQUN2QixFQUFVLENBQUMsRUFBR0QsRUFBSyxDQUFDLEVBQUdPLEVBQU8sQ0FBQyxDQUFDLEVBSS9CcUIsRUFBZWxDLEVBQVEsWUFDekJBLEVBQVEsWUFDUG1DLEdBQWNoQixFQUFZZ0IsRUFBR0osRUFBYyxTQUFtQixFQW9CbkUsT0FsQmFFLEVBQWMsSUFBS0csR0FBTyxDQUNyQyxJQUFNaEMsRUFBTSxPQUFPZ0MsR0FBTyxXQUFhQSxFQUFHTCxDQUFhLEVBQUlLLEVBRXZERCxFQUVKLEdBQUksT0FBTy9CLEdBQVEsU0FDakIrQixFQUFJRCxFQUFhOUIsQ0FBRyxVQUNYLE9BQU9BLEdBQVEsVUFBWUEsYUFBZSxJQUNuRCtCLEVBQUksTUFBTSxLQUFLL0IsQ0FBRyxFQUFFLElBQUk4QixDQUFZLEVBQUUsS0FBS0gsRUFBYyxTQUFTLFVBQ3pELE1BQU0sUUFBUTNCLENBQUcsRUFDMUIrQixFQUFJL0IsRUFBSSxJQUFJOEIsQ0FBWSxFQUFFLEtBQUtILEVBQWMsU0FBUyxNQUV0RCxPQUFNLElBQUksTUFBTSxvQ0FBb0MsRUFHdEQsT0FBT0MsRUFBWUcsQ0FBQyxDQUN0QixDQUFDLEVBRVcsS0FBS0osRUFBYyxTQUFTLENBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IG5vdW5zID0gW1xuICAnamFiYmEnLFxuICAnaHlwZXJzcGFjZScsXG4gICdhcHBsZScsXG4gICd0cmVlJyxcbiAgJ2Jvb2snLFxuICAnY2FyJyxcbiAgJ3N1bicsXG4gICdtb29uJyxcbiAgJ3JpdmVyJyxcbiAgJ2Zsb3dlcicsXG4gICdvY2VhbicsXG4gICdjb21wdXRlcicsXG4gICdtb3VudGFpbicsXG4gICdob3VzZScsXG4gICdjaGFpcicsXG4gICdzaG9lJyxcbiAgJ2Nsb3VkJyxcbiAgJ3BlbicsXG4gICdyb2JvdCcsXG4gICdjYXN0bGUnLFxuICAnYnV0dGVyZmx5JyxcbiAgJ2RpYW1vbmQnLFxuICAndm9sY2FubycsXG4gICdpc2xhbmQnLFxuICAncmFpbicsXG4gICdzd29yZCcsXG4gICdjYW5kbGUnLFxuICAnc3RhcicsXG4gICdtaXJyb3InLFxuICAndG9ybmFkbycsXG4gICdrZXknLFxuICAnZ3VpdGFyJyxcbiAgJ2Nsb2NrJyxcbiAgJ2hhbW1lcicsXG4gICdib3R0bGUnLFxuICAnYnJpZGdlJyxcbiAgJ3BsYW5ldCcsXG4gICdmZWF0aGVyJyxcbiAgJ3dpemFyZCcsXG4gICdtYXNrJyxcbiAgJ3N0YXR1ZScsXG4gICdkcnVtJyxcbiAgJ2JyZWV6ZScsXG4gICdyb2NrZXQnLFxuICAnbGlnaHRob3VzZScsXG4gICd0ZWxlc2NvcGUnLFxuICAnY3Jvd24nLFxuICAnd2hpc3BlcicsXG4gICd0aHVuZGVyJyxcbiAgJ2ZsdXRlJyxcbiAgJ3N1bnNldCcsXG4gICdwdXp6bGUnLFxuICAnY2Fyb3VzZWwnLFxuICAndHJlYXN1cmUnLFxuICAncXVpbGwnLFxuICAnZm91bnRhaW4nLFxuICAnY2lyY3VpdCcsXG4gICdjYXJvdXNlbCcsXG4gICdob3Jpem9uJyxcbiAgJ2ZlYXRoZXInLFxuICAndmVsdmV0JyxcbiAgJ2NhdGhlZHJhbCcsXG4gICdiYWxsZXQnLFxuICAnY3J5c3RhbCcsXG4gICdoYXJib3InLFxuICAnaGFybW9ueScsXG4gICdteXN0aWMnLFxuICAnc3RhcmR1c3QnLFxuICAnYmVhY29uJyxcbiAgJ2NoYW5kZWxpZXInLFxuICAnbWFyYmxlJyxcbiAgJ3BhcmFkaXNlJyxcbiAgJ2VjaG8nLFxuICAncmFpbmJvdycsXG4gICdjYWN0dXMnLFxuICAnY29nJyxcbiAgJ2NhZmUnLFxuICAncGlhbm8nLFxuICAnc2lsaG91ZXR0ZScsXG4gICdjaGVzcycsXG4gICd2ZWx2ZXQnLFxuICAnbWVkaXRhdGlvbicsXG4gICdzdWJtYXJpbmUnLFxuICAnaG9yaXpvbicsXG4gICdsZWdlbmQnLFxuICAnY2Fybml2YWwnLFxuICAnd2hpc3BlcicsXG4gICd1bWJyZWxsYScsXG4gICdjYXRoZWRyYWwnLFxuICAnaW5maW5pdHknLFxuICAnc2VyZW5pdHknLFxuICAnYmFsbGV0JyxcbiAgJ2NvbXBhc3MnLFxuICAnbGFieXJpbnRoJyxcbiAgJ2NvbnN0ZWxsYXRpb24nLFxuICAnaWxsdXNpb24nLFxuICAnZ2FsYXh5JyxcbiAgJ2Nhc2NhZGUnLFxuICAnb3JhY2xlJyxcbiAgJ21lcmlkaWFuJyxcbiAgJ3JldmVyaWUnLFxuICAndHJpbml0eScsXG4gICdlY2hvJyxcbiAgJ2V0ZXJuaXR5JyxcbiAgJ2hhdmVuJyxcbiAgJ2Rld2Ryb3AnLFxuICAnbW9zcycsXG4gICdhbGNoZW15JyxcbiAgJ2FyaWEnLFxuICAnY29id2ViJyxcbiAgJ3NvbHN0aWNlJyxcbiAgJ3ZlcmFuZGEnLFxuICAnaW5maW5pdHknLFxuICAnc2VyZW5kaXBpdHknLFxuICAnd2lzZG9tJyxcbiAgJ3NwZWN0cnVtJyxcbiAgJ3F1YXNhcicsXG4gICdtaXJhZ2UnLFxuICAnc3BlbGwnLFxuICAnY2FzY2FkZScsXG4gICdsYWN1bmEnLFxuICAnaG9yaXpvbicsXG4gICdsYWJ5cmludGgnLFxuICAnZXNzZW5jZScsXG4gICdjcmVzY2VudCcsXG4gICdmcmFncmFuY2UnLFxuICAndHdpbGlnaHQnLFxuICAndmlydHVlJyxcbiAgJ2VxdWlub3gnLFxuICAnbXlzdGlxdWUnLFxuICAnbmVjdGFyJyxcbiAgJ2VsaXhpcicsXG4gICdzb2xpdHVkZScsXG4gICdnYXplYm8nLFxuICAnb3BhbCcsXG4gICdkdXNrJyxcbiAgJ3NvbGl0dWRlJyxcbiAgJ2NhbmRsZWxpZ2h0JyxcbiAgJ21vbm9saXRoJyxcbiAgJ25vdmEnLFxuICAncGx1bWUnLFxuICAnc2VyZW5pdHknLFxuICAnYXVyb3JhJyxcbiAgJ3BhcmFnb24nLFxuICAncmhhcHNvZHknLFxuICAnYXJjYWRlJyxcbiAgJ2NoYXJpc21hJyxcbiAgJ3NvbHN0aWNlJyxcbiAgJ2NvbWV0JyxcbiAgJ3F1aWxsJyxcbiAgJ3RodW5kZXInLFxuICAnbWFydmVsJyxcbiAgJ2JvdWxldmFyZCcsXG4gICdjYWxpYmVyJyxcbiAgJ2luc2lnaHQnLFxuICAnZmFudGFzeScsXG4gICdzeW1waG9ueScsXG4gICdwaW5uYWNsZScsXG4gICdsYWdvb24nLFxuICAnc29ubmV0JyxcbiAgJ3NhcHBoaXJlJyxcbiAgJ2FsY2hlbXknLFxuICAncmVzb25hbmNlJyxcbiAgJ3dvbmRlcicsXG4gICdzaWxob3VldHRlJyxcbiAgJ3BhcmFnb24nLFxuICAnY2FzY2FkZScsXG4gICdsYWJ5cmludGgnLFxuICAnaGFybW9ueScsXG4gICdsYWdvb24nLFxuICAnaG9yaXpvbicsXG4gICdlc3NlbmNlJyxcbiAgJ3NvbGl0dWRlJyxcbiAgJ3ZveWFnZScsXG4gICdteXN0aXF1ZScsXG4gICdzb2xhcicsXG4gICdwYXJhZGlzZScsXG4gICdzZXJlbmRpcGl0eScsXG4gICdhdXJvcmEnLFxuICAndHdpbGlnaHQnLFxuICAnbWFydmVsJyxcbiAgJ2R1c2snLFxuICAnc29sc3RpY2UnLFxuICAncGhhbnRvbScsXG4gICdtb25vbGl0aCcsXG4gICd6ZW5pdGgnLFxuICAnd2hpc3BlcicsXG4gICdvcmFjbGUnLFxuICAnaG9yaXpvbicsXG4gICdub3ZhJyxcbiAgJ2NyZXNjZW50JyxcbiAgJ2lsbHVzaW9uJyxcbiAgJ3JoYXBzb2R5JyxcbiAgJ2NoYXJpc21hJyxcbiAgJ3NlcmVuaXR5JyxcbiAgJ2JvdWxldmFyZCcsXG4gICdpbnNpZ2h0JyxcbiAgJ2ZhbnRhc3knLFxuICAncXVhc2FyJyxcbiAgJ3Bpbm5hY2xlJyxcbiAgJ3N5bXBob255JyxcbiAgJ2xhZ29vbicsXG4gICdzb25uZXQnLFxuICAnc2FwcGhpcmUnLFxuICAnY29tZXQnLFxuICAnd29uZGVyJyxcbiAgJ2NhbGliZXInLFxuICAnc2lsaG91ZXR0ZScsXG4gICdwYXJhZ29uJyxcbiAgJ2Nhc2NhZGUnLFxuICAnbGFieXJpbnRoJyxcbiAgJ2hhcm1vbnknLFxuICAnbGFnb29uJyxcbiAgJ2hvcml6b24nLFxuICAnZXNzZW5jZScsXG4gICdzb2xpdHVkZScsXG4gICd2b3lhZ2UnLFxuICAnbXlzdGlxdWUnLFxuICAnc29sYXInLFxuICAncGFyYWRpc2UnLFxuICAnc2VyZW5kaXBpdHknLFxuICAnYXVyb3JhJyxcbiAgJ3R3aWxpZ2h0JyxcbiAgJ21hcnZlbCcsXG4gICdkdXNrJyxcbiAgJ3NvbHN0aWNlJyxcbiAgJ3BoYW50b20nLFxuICAnbW9ub2xpdGgnLFxuICAnemVuaXRoJyxcbiAgJ3doaXNwZXInLFxuICAnb3JhY2xlJyxcbiAgJ2hvcml6b24nLFxuICAnbm92YScsXG4gICdjcmVzY2VudCcsXG4gICdpbGx1c2lvbicsXG4gICdyaGFwc29keScsXG4gICdjaGFyaXNtYScsXG4gICdzZXJlbml0eScsXG4gICdib3VsZXZhcmQnLFxuICAnaW5zaWdodCcsXG4gICdmYW50YXN5JyxcbiAgJ3F1YXNhcicsXG4gICdwaW5uYWNsZScsXG4gICdzeW1waG9ueScsXG4gICdsYWdvb24nLFxuICAnc29ubmV0JyxcbiAgJ3NhcHBoaXJlJyxcbiAgJ2NvbWV0JyxcbiAgJ3dvbmRlcicsXG4gICdjYWxpYmVyJyxcbl07XG4iLCJleHBvcnQgY29uc3Qgc2Vhc29ucyA9IFsnd2ludGVyJywgJ3NwcmluZycsICdzdW1tZXInLCAnYXV0dW1uJ107XG4iLCJleHBvcnQgY29uc3QgYWRqZWN0aXZlcyA9IFtcbiAgJ3JhbmRvbScsXG4gICd3b25kZXJmdWwnLFxuICAnYXdlc29tZScsXG4gICdzdXBlcicsXG4gICdjbGVhbicsXG4gICdlbGVnYW50JyxcbiAgJ2ZhbmN5JyxcbiAgJ2dsYW1vcm91cycsXG4gICdoYW5kc29tZScsXG4gICdtYWduaWZpY2VudCcsXG4gICdmYXNoaW9uYWJsZScsXG4gICdwbGFpbicsXG4gICdxdWFpbnQnLFxuICAnc3BhcmtsaW5nJyxcbiAgJ2NoaWMnLFxuICAncG9saXNoZWQnLFxuICAnc2xlZWsnLFxuICAnbGF2aXNoJyxcbiAgJ3N0eWxpc2gnLFxuICAnYXR0cmFjdGl2ZScsXG4gICdicmVhdGh0YWtpbmcnLFxuICAncml0enknLFxuICAndGFzdGVmdWwnLFxuICAnc3dhbmt5JyxcbiAgJ3BpY3R1cmVzcXVlJyxcbiAgJ21lc21lcml6aW5nJyxcbiAgJ3VuaXF1ZScsXG4gICdhZXN0aGV0aWMnLFxuICAncmVzcGxlbmRlbnQnLFxuICAncmVnYWwnLFxuICAnZW5jaGFudGluZycsXG4gICdpbW1hY3VsYXRlJyxcbiAgJ29ybmF0ZScsXG4gICdvcHVsZW50JyxcbiAgJ3NwbGVuZGlkJyxcbiAgJ2dvcmdlb3VzJyxcbiAgJ2V4b3RpYycsXG4gICdnbGlzdGVuaW5nJyxcbiAgJ2ZyaWVuZGx5JyxcbiAgJ2pveWZ1bCcsXG4gICdkZWxpZ2h0ZnVsJyxcbiAgJ3JhZGlhbnQnLFxuICAnY2hhcm1pbmcnLFxuICAnd2hpbXNpY2FsJyxcbiAgJ3NlcmVuZScsXG4gICdsb3ZlbHknLFxuICAnYmVuZXZvbGVudCcsXG4gICdoYXJtb25pb3VzJyxcbiAgJ2dyYWNlZnVsJyxcbiAgJ2hlYXJ0d2FybWluZycsXG4gICd1cGJlYXQnLFxuICAnc29vdGhpbmcnLFxuICAndHJhbnF1aWwnLFxuICAnY2FwdGl2YXRpbmcnLFxuICAnZWZmZXJ2ZXNjZW50JyxcbiAgJ2Vuam95YWJsZScsXG4gICdjdWRkbHknLFxuICAnc3dlZXQnLFxuICAnaW52aXRpbmcnLFxuICAnZW5kZWFyaW5nJyxcbiAgJ2FtaWFibGUnLFxuICAnY2FyaW5nJyxcbiAgJ2NvbWZvcnRpbmcnLFxuICAnaW5zcGlyaW5nJyxcbiAgJ251cnR1cmluZycsXG4gICdyZWxheGluZycsXG4gICd2aWJyYW50JyxcbiAgJ2pvdmlhbCcsXG4gICdyYWRpYW50JyxcbiAgJ2NlbGVzdGlhbCcsXG5dO1xuIiwiZXhwb3J0IGNvbnN0IGNvbG9ycyA9IFtcbiAgJ3JlZCcsXG4gICdvcmFuZ2UnLFxuICAneWVsbG93JyxcbiAgJ2dyZWVuJyxcbiAgJ2JsdWUnLFxuICAncHVycGxlJyxcbiAgJ3BpbmsnLFxuICAnYnJvd24nLFxuICAnZ3JheScsXG4gICdibGFjaycsXG4gICd3aGl0ZScsXG4gICd0dXJxdW9pc2UnLFxuICAnaW5kaWdvJyxcbiAgJ3RlYWwnLFxuICAnbWFyb29uJyxcbiAgJ2VtZXJhbGQnLFxuICAnbGF2ZW5kZXInLFxuICAnbWFnZW50YScsXG4gICdhbWJlcicsXG4gICdpdm9yeScsXG4gICdydWJ5JyxcbiAgJ3NhcHBoaXJlJyxcbiAgJ2FtYmVyJyxcbiAgJ3Jvc2UnLFxuICAnY29yYWwnLFxuICAnZ29sZCcsXG4gICdzaWx2ZXInLFxuICAnYnJvbnplJyxcbiAgJ2NvcHBlcicsXG4gICdwbHVtJyxcbiAgJ3Zlcm1pbGlvbicsXG4gICdjZXJ1bGVhbicsXG4gICdjcmltc29uJyxcbiAgJ2Vib255JyxcbiAgJ2NoYXJ0cmV1c2UnLFxuICAnZnVjaHNpYScsXG4gICd2aW9sZXQnLFxuICAnb2xpdmUnLFxuICAnbWF1dmUnLFxuICAncGVyaXdpbmtsZScsXG4gICdvY2hyZScsXG4gICd0YXVwZScsXG4gICdzZXBpYScsXG4gICdhcXVhbWFyaW5lJyxcbiAgJ2J1cmd1bmR5JyxcbiAgJ25hdnknLFxuICAna2hha2knLFxuICAncGVhY2gnLFxuICAnbGlsYWMnLFxuICAnaG9uZXlkZXcnLFxuICAncG93ZGVyYmx1ZScsXG4gICdwdW1wa2luJyxcbiAgJ3NpZW5uYScsXG4gICdvcmNoaWQnLFxuICAndHVycXVvaXNlJyxcbiAgJ3RoaXN0bGUnLFxuICAnY2hhbXBhZ25lJyxcbiAgJ3Jhc3BiZXJyeScsXG4gICdjb2JhbHQnLFxuICAnY2VsYWRvbicsXG4gICdnYXJuZXQnLFxuICAnc2xhdGUnLFxuICAnbXVsYmVycnknLFxuICAnY2lubmFtb24nLFxuICAnbGVtb24nLFxuICAndmVybWlsaW9uJyxcbiAgJ3RhbmdlcmluZScsXG4gICdqYWRlJyxcbiAgJ3Blcml3aW5rbGUnLFxuICAnY2FyYW1lbCcsXG4gICdwZWFyJyxcbiAgJ21haG9nYW55JyxcbiAgJ2xhcGlzJyxcbiAgJ2NpdHJpbmUnLFxuICAncGVyc2ltbW9uJyxcbiAgJ2FsYWJhc3RlcicsXG4gICdhbWV0aHlzdCcsXG4gICd3aXN0ZXJpYScsXG4gICdnbGF1Y291cycsXG4gICdwYXBheWEnLFxuICAncGFuc3knLFxuICAnd2F0ZXJtZWxvbicsXG4gICdpcmlzJyxcbiAgJ2ZsYXhlbicsXG4gICdydWZvdXMnLFxuICAnaGF6ZWxudXQnLFxuICAndGFuZ2VsbycsXG4gICdzY2FybGV0JyxcbiAgJ2Nhcm1pbmUnLFxuICAnbGluZW4nLFxuICAndWx0cmF2aW9sZXQnLFxuXTtcbiIsImV4cG9ydCBjb25zdCBhbmltYWxzID0gW1xuICAnbGlvbicsXG4gICd0aWdlcicsXG4gICdlbGVwaGFudCcsXG4gICdnaXJhZmZlJyxcbiAgJ3plYnJhJyxcbiAgJ2tvYWxhJyxcbiAgJ2thbmdhcm9vJyxcbiAgJ2NoZWV0YWgnLFxuICAnbGVtdXInLFxuICAncmhpbm8nLFxuICAnaGlwcG8nLFxuICAncGFuZGEnLFxuICAnamFndWFyJyxcbiAgJ2xlbW1pbmcnLFxuICAnbHlueCcsXG4gICdvdHRlcicsXG4gICdvY2Vsb3QnLFxuICAnbWVlcmthdCcsXG4gICdoeWVuYScsXG4gICdnYXplbGxlJyxcbiAgJ21vbmdvb3NlJyxcbiAgJ3Nsb3RoJyxcbiAgJ3BhbnRoZXInLFxuICAnYm9iY2F0JyxcbiAgJ2RpbmdvJyxcbiAgJ2FudGVhdGVyJyxcbiAgJ2FybWFkaWxsbycsXG4gICdjaGFtZWxlb24nLFxuICAndGFwaXInLFxuICAnbGVtdXInLFxuICAncGxhdHlwdXMnLFxuICAnd2FsbGFieScsXG4gICdpZ3VhbmEnLFxuICAnb3JjYScsXG4gICdzZXJ2YWwnLFxuICAnd2Vhc2VsJyxcbiAgJ3F1b2trYScsXG4gICdiYWRnZXInLFxuICAnb2thcGknLFxuICAnbWFuZHJpbGwnLFxuICAncGFuZ29saW4nLFxuICAnbmFyd2hhbCcsXG4gICd3b21iYXQnLFxuICAndnVsdHVyZScsXG4gICdwb3JjdXBpbmUnLFxuICAnYWFyZHZhcmsnLFxuICAnY2hpbmNoaWxsYScsXG4gICdjb2F0aScsXG4gICdnZWNrbycsXG4gICd3YXJ0aG9nJyxcbiAgJ2tvYWxhJyxcbiAgJ2ltcGFsYScsXG4gICdlbGsnLFxuICAnYmFib29uJyxcbiAgJ2J1ZmZhbG8nLFxuICAnbGVtbWluZycsXG4gICdwdW1hJyxcbiAgJ2dpYmJvbicsXG4gICduZXd0JyxcbiAgJ3RhcGlyJyxcbiAgJ29jZWxvdCcsXG4gICdvY2Vsb3QnLFxuICAnbWFybW9zZXQnLFxuICAndmljdW5hJyxcbiAgJ2VjaGlkbmEnLFxuICAnY2FweWJhcmEnLFxuICAnY2FyaWJvdScsXG4gICdjaGlwbXVuaycsXG4gICdtYW50aXMnLFxuICAnY2l2ZXQnLFxuICAnY29ybW9yYW50JyxcbiAgJ2Nyb2NvZGlsZScsXG4gICdpZ3VhbmEnLFxuICAnY3JvY29kaWxlJyxcbiAgJ2NoYW1lbGVvbicsXG4gICdhcm1hZGlsbG8nLFxuICAnY2FpbWFuJyxcbiAgJ2dhemVsbGUnLFxuICAncGFuZ29saW4nLFxuICAncG9yY3VwaW5lJyxcbiAgJ2xlbXVyJyxcbiAgJ2xlbXVyJyxcbiAgJ2xlb3BhcmQnLFxuICAnb2NlbG90JyxcbiAgJ3Nsb3RoJyxcbiAgJ3dvbWJhdCcsXG4gICdlbGsnLFxuICAnbWVlcmthdCcsXG4gICd2dWx0dXJlJyxcbiAgJ2h5ZW5hJyxcbiAgJ2h5ZW5hJyxcbiAgJ3NlcnZhbCcsXG4gICdrb2FsYScsXG4gICdsaW9uJyxcbiAgJ290dGVyJyxcbiAgJ3BhbmRhJyxcbiAgJ290dGVyJyxcbiAgJ3Nsb3RoJyxcbiAgJ2FhcmR2YXJrJyxcbiAgJ2phZ3VhcicsXG4gICdnYXplbGxlJyxcbiAgJ3BhbmRhJyxcbiAgJ3JoaW5vJyxcbiAgJ21vbmdvb3NlJyxcbiAgJ2dpYmJvbicsXG4gICd2dWx0dXJlJyxcbiAgJ3RpZ2VyJyxcbiAgJ2NvYXRpJyxcbiAgJ2xlbW1pbmcnLFxuICAna2FuZ2Fyb28nLFxuICAnZHVnb25nJyxcbiAgJ2FybWFkaWxsbycsXG4gICdwdW1hJyxcbiAgJ3BsYXR5cHVzJyxcbiAgJ3F1b2trYScsXG4gICdiYWJvb24nLFxuICAnbWFybW9zZXQnLFxuICAnb2NlbG90JyxcbiAgJ2NoZWV0YWgnLFxuICAndGFyc2llcicsXG4gICdib2JjYXQnLFxuICAnZ2Vja28nLFxuICAncGVuZ3VpbicsXG4gICdzbG90aCcsXG4gICdxdW9ra2EnLFxuICAnYnVmZmFsbycsXG4gICdsZW11cicsXG4gICdjaXZldCcsXG4gICd2dWx0dXJlJyxcbiAgJ2JhZGdlcicsXG4gICdjaGVldGFoJyxcbiAgJ2xlbXVyJyxcbiAgJ3RhcGlyJyxcbiAgJ2liZXgnLFxuICAnbGlvbicsXG4gICdpZ3VhbmEnLFxuICAnamFndWFyJyxcbiAgJ2xlbXVyJyxcbiAgJ3dvbWJhdCcsXG4gICdjaGVldGFoJyxcbiAgJ21lZXJrYXQnLFxuICAnb2thcGknLFxuICAncGFudGhlcicsXG4gICdxdW9ra2EnLFxuICAncGFuZGEnLFxuICAnd29tYmF0JyxcbiAgJ2h5ZW5hJyxcbiAgJ3Z1bHR1cmUnLFxuICAnamFndWFyJyxcbiAgJ2thbmdhcm9vJyxcbiAgJ2NvYXRpJyxcbiAgJ29jZWxvdCcsXG4gICdyaGlubycsXG4gICdrb2FsYScsXG4gICdsaW9uJyxcbiAgJ3BhbmRhJyxcbiAgJ3B1bWEnLFxuICAnc2VydmFsJyxcbiAgJ3RhcnNpZXInLFxuICAndW5pY29ybicsXG4gICd2dWx0dXJlJyxcbiAgJ3dhcnRob2cnLFxuICAneWFrJyxcbiAgJ3plYnJhJyxcbl07XG4iLCJleHBvcnQgY29uc3QgdmVyYnMgPSBbXG4gICdydW4nLFxuICAnanVtcCcsXG4gICdzd2ltJyxcbiAgJ3NpbmcnLFxuICAnZGFuY2UnLFxuICAnbGF1Z2gnLFxuICAndGhpbmsnLFxuICAnZHJlYW0nLFxuICAnY3JlYXRlJyxcbiAgJ2V4cGxvcmUnLFxuICAnY2xpbWInLFxuICAncmVhZCcsXG4gICd3cml0ZScsXG4gICdwYWludCcsXG4gICdkcmF3JyxcbiAgJ2J1aWxkJyxcbiAgJ3NvbHZlJyxcbiAgJ3RlYWNoJyxcbiAgJ2xlYXJuJyxcbiAgJ2Rpc2NvdmVyJyxcbiAgJ2xpc3RlbicsXG4gICdzcGVhaycsXG4gICd3aGlzcGVyJyxcbiAgJ3Nob3V0JyxcbiAgJ2ltYWdpbmUnLFxuICAncGxheScsXG4gICd3b3JrJyxcbiAgJ3JlbGF4JyxcbiAgJ3RyYXZlbCcsXG4gICdjb29rJyxcbiAgJ2Jha2UnLFxuICAnc2V3JyxcbiAgJ3BsYW50JyxcbiAgJ2hhcnZlc3QnLFxuICAnZGVzaWduJyxcbiAgJ2NvbXBvc2UnLFxuICAncGhvdG9ncmFwaCcsXG4gICdyaWRlJyxcbiAgJ2RyaXZlJyxcbiAgJ2ZseScsXG4gICdzd2lybCcsXG4gICd0d2lybCcsXG4gICdzcGFya2xlJyxcbiAgJ2Vuam95JyxcbiAgJ2NhcmUnLFxuICAnYmVsaWV2ZScsXG4gICdhY2hpZXZlJyxcbiAgJ2luc3BpcmUnLFxuICAnZW5jb3VyYWdlJyxcbiAgJ2NoYWxsZW5nZScsXG4gICdjb25xdWVyJyxcbiAgJ3RyYW5zZm9ybScsXG4gICdncm93JyxcbiAgJ3NoaW5lJyxcbiAgJ2F3YWtlbicsXG4gICdpZ25pdGUnLFxuICAnd2hpc2snLFxuICAnc3RpdGNoJyxcbiAgJ2ZvcmdlJyxcbiAgJ3dhbmRlcicsXG4gICduYXZpZ2F0ZScsXG4gICdhc2NlbnQnLFxuICAncGx1bmdlJyxcbiAgJ3NjdWxwdCcsXG4gICdpbGx1bWluYXRlJyxcbiAgJ2Fzc2VtYmxlJyxcbiAgJ2luaXRpYXRlJyxcbiAgJ3NrZXRjaCcsXG4gICdjYXJ2ZScsXG4gICdpbGx1bWluZScsXG4gICdwcm9wZWwnLFxuICAnZWZmZXJ2ZXNjZScsXG4gICdpbWJ1ZScsXG4gICdoYXJtb25pemUnLFxuICAncnVtaW5hdGUnLFxuICAnZXhwb3VuZCcsXG4gICdpbnZlbnQnLFxuICAnb3JjaGVzdHJhdGUnLFxuICAncmVmaW5lJyxcbiAgJ2FkdmVudHVyZScsXG4gICdtZWFuZGVyJyxcbiAgJ3Jlc29uYXRlJyxcbiAgJ3BlcnN1YWRlJyxcbiAgJ2lucXVpcmUnLFxuICAnZ2F6ZScsXG4gICdpbW1lcnNlJyxcbiAgJ2VuZHVyZScsXG4gICd0cmF2ZXJzZScsXG4gICdpbW1lcnNlJyxcbiAgJ2F3YWtlbicsXG4gICdyZXZlbCcsXG4gICdwZXJjZWl2ZScsXG4gICd0cmVhc3VyZScsXG4gICdxdWVuY2gnLFxuICAnZW5yaWNoJyxcbiAgJ2N1bHRpdmF0ZScsXG5dO1xuIiwiZXhwb3J0IGNvbnN0IGNvc21vcyA9IFtcbiAgJ3RhcmRpcycsXG4gICdjb3Ntb3MnLFxuICAnZ2FsYXh5JyxcbiAgJ3VuaXZlcnNlJyxcbiAgJ3N0ZWxsYXInLFxuICAnbmVidWxhJyxcbiAgJ3F1YXNhcicsXG4gICdzdXBlcm5vdmEnLFxuICAnZ3Jhdml0eScsXG4gICdjZWxlc3RpYWwnLFxuICAnaW50ZXJzdGVsbGFyJyxcbiAgJ2luZmluaXR5JyxcbiAgJ3Npbmd1bGFyaXR5JyxcbiAgJ211bHRpdmVyc2UnLFxuICAnYXN0cm9waHlzaWNzJyxcbiAgJ2x1bWlub3VzJyxcbiAgJ2NvbnN0ZWxsYXRpb24nLFxuICAncHVsc2FyJyxcbiAgJ3BhcmFsbGF4JyxcbiAgJ3ZvcnRleCcsXG4gICdjb21ldCcsXG4gICdzcGFjZXRpbWUnLFxuICAnZ2FtbWEnLFxuICAnb3JiaXRhbCcsXG4gICdpbnRlcmdhbGFjdGljJyxcbiAgJ2V4dHJhdGVycmVzdHJpYWwnLFxuICAnemVuaXRoJyxcbiAgJ2luZmxhdGlvbicsXG4gICd2b2lkJyxcbiAgJ2h5cGVyc3BhY2UnLFxuICAncXVhcmsnLFxuICAnc3RhcmJ1cnN0JyxcbiAgJ2Nvc21vbmF1dCcsXG4gICdtb29uYmVhbScsXG4gICdhbnRpbWF0dGVyJyxcbiAgJ2hvcml6b24nLFxuICAnYXN0cm9ub21lcicsXG4gICdhc3Ryb2xhYmUnLFxuICAnc3RhcmdhemVyJyxcbiAgJ3JlZHNoaWZ0Jyxcbl07XG4iLCJleHBvcnQgY29uc3QgZW1vamlzID0gW1xuICAn8J+mhCcsXG4gICfwn5C8JyxcbiAgJ/CfkL4nLFxuICAn8J+NgCcsXG4gICfwn5CgJyxcbiAgJ/CfjLsnLFxuICAn8J+NkycsXG4gICfwn4y6JyxcbiAgJ/CfjYQnLFxuICAn8J+MvCcsXG4gICfwn5C1JyxcbiAgJ/CfkLYnLFxuICAn8J+QuicsXG4gICfwn5CxJyxcbiAgJ/CfpoEnLFxuICAn8J+QrycsXG4gICfwn5C0JyxcbiAgJ/CfkK4nLFxuICAn8J+QtycsXG4gICfwn5CXJyxcbiAgJ/CfkK0nLFxuICAn8J+QuScsXG4gICfwn5CwJyxcbiAgJ/CfkLsnLFxuICAn8J+QqCcsXG4gICfwn5C8JyxcbiAgJ/CfppgnLFxuICAn8J+moScsXG4gICfwn5C+JyxcbiAgJ/CfppQnLFxuICAn8J+QlCcsXG4gICfwn5CTJyxcbiAgJ/CfkKMnLFxuICAn8J+QpCcsXG4gICfwn5ClJyxcbiAgJ/CfkKYnLFxuICAn8J+QpycsXG4gICfwn6aFJyxcbiAgJ/CfpoYnLFxuICAn8J+moicsXG4gICfwn6aJJyxcbiAgJ/CfpponLFxuICAn8J+mnCcsXG4gICfwn6apJyxcbiAgJ/CfkLgnLFxuICAn8J+QiicsXG4gICfwn5CiJyxcbiAgJ/Cfpo4nLFxuICAn8J+QjScsXG4gICfwn5CyJyxcbiAgJ/CfkIknLFxuICAn8J+mlScsXG4gICfwn6aWJyxcbiAgJ/CfjLUnLFxuICAn8J+MtCcsXG4gICfwn4yyJyxcbiAgJ/CfjLMnLFxuICAn8J+MsScsXG4gICfwn4y/JyxcbiAgJ+KYmO+4jycsXG4gICfwn42AJyxcbiAgJ/Cfjo0nLFxuICAn8J+OiycsXG4gICfwn42DJyxcbiAgJ/CfjYInLFxuICAn8J+NgScsXG4gICfwn42EJyxcbiAgJ/CfjL4nLFxuICAn8J+NhScsXG4gICfwn42GJyxcbiAgJ/CfjL0nLFxuICAn8J+MticsXG4gICfwn42gJyxcbiAgJ/CfjYcnLFxuICAn8J+NiCcsXG4gICfwn42JJyxcbiAgJ/CfjYonLFxuICAn8J+NiycsXG4gICfwn42MJyxcbiAgJ/CfjY0nLFxuICAn8J+NjicsXG4gICfwn42PJyxcbiAgJ/CfjZAnLFxuICAn8J+NkScsXG4gICfwn42SJyxcbiAgJ/CfjZMnLFxuICAn8J+lnScsXG4gICfwn42FJyxcbiAgJ/CfpZEnLFxuICAn8J+NhicsXG4gICfwn6WSJyxcbiAgJ/CfjYQnLFxuICAn8J+lnCcsXG4gICfwn4ywJyxcbiAgJ/CfjZ4nLFxuICAn8J+lkCcsXG4gICfwn6WWJyxcbiAgJ/CfpagnLFxuICAn8J+lrycsXG4gICfwn6WeJyxcbiAgJ/Cfja4nLFxuICAn8J+NrycsXG4gICfwn6WkJyxcbl07XG4iLCJpbXBvcnQge1xuICBzZWFzb25zLFxuICBhZGplY3RpdmVzLFxuICBub3VucyxcbiAgY29sb3JzLFxuICBhbmltYWxzLFxuICB2ZXJicyxcbiAgY29zbW9zIGFzIGNvc21vc1dvcmRzLFxufSBmcm9tICcuL2RpY3Rpb25hcnkvZW4nO1xuXG5pbXBvcnQgeyBlbW9qaXMgfSBmcm9tICcuL2RpY3Rpb25hcnkvZW1vamlzJztcblxuZXhwb3J0ICogZnJvbSAnLi9kaWN0aW9uYXJ5L2Vtb2ppcyc7XG5leHBvcnQgKiBmcm9tICcuL2RpY3Rpb25hcnkvZW4nO1xuXG5leHBvcnQgY29uc3Qgc3BhY2VTbHVnRGVmYXVsdERpY3Rpb25hcnk6IFNwYWNlU2x1Z0RpY3Rpb25hcnkgPSB7XG4gIGVuOiB7XG4gICAgc2Vhc29ucyxcbiAgICBlbW9qaXMsXG4gICAgYWRqZWN0aXZlcyxcbiAgICBub3VucyxcbiAgICBjb2xvcnMsXG4gICAgYW5pbWFscyxcbiAgICB2ZXJicyxcbiAgICBjb3Ntb3M6IGNvc21vc1dvcmRzLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNwYWNlU2x1Z0RlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPFNwYWNlU2x1Z09wdGlvbnM+ID0ge1xuICBsb2NhbGU6ICdlbicsXG4gIHNlcGFyYXRvcjogJy0nLFxuICBkaWN0aW9uYXJ5OiBzcGFjZVNsdWdEZWZhdWx0RGljdGlvbmFyeSxcbn07XG5cbmV4cG9ydCB0eXBlIFNwYWNlU2x1Z0RpY3Rpb25hcnkgPSBSZWNvcmQ8XG4gIHN0cmluZyxcbiAgUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nW107XG4gICAgYWRqZWN0aXZlczogc3RyaW5nW107XG4gICAgYW5pbWFsczogc3RyaW5nW107XG4gICAgY29sb3JzOiBzdHJpbmdbXTtcbiAgICBjb3Ntb3M6IHN0cmluZ1tdO1xuICAgIGVtb2ppczogc3RyaW5nW107XG4gICAgbm91bnM6IHN0cmluZ1tdO1xuICAgIHNlYXNvbnM6IHN0cmluZ1tdO1xuICAgIHZlcmJzOiBzdHJpbmdbXTtcbiAgfT5cbj47XG5cbmV4cG9ydCB0eXBlIFNwYWNlU2x1Z09wdGlvbnMgPSB7XG4gIGNsZWFuU3RyaW5nPzogKHdvcmQ6IHN0cmluZykgPT4gc3RyaW5nO1xuICBkaWN0aW9uYXJ5PzogU3BhY2VTbHVnRGljdGlvbmFyeTtcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBzZXBhcmF0b3I/OiBzdHJpbmc7XG4gIHRyYW5zZm9ybT86ICh3b3JkOiBzdHJpbmcpID0+IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNwYWNlU2x1Z0ZuID0gKG9wdGlvbnM6IFNwYWNlU2x1Z09wdGlvbnMpID0+IFNwYWNlU2x1Z0ZuT3V0cHV0O1xuXG5leHBvcnQgdHlwZSBTcGFjZVNsdWdGbk91dHB1dCA9IFNldDxzdHJpbmc+IHwgc3RyaW5nIHwgc3RyaW5nW107XG5cbmV4cG9ydCB0eXBlIFNwYWNlU2x1Z0lucHV0ID0gU3BhY2VTbHVnRm4gfCBTcGFjZVNsdWdGbk91dHB1dDtcblxuZXhwb3J0IHR5cGUgVW5pcXVlU3BhY2VTbHVnT3B0aW9ucyA9IHtcbiAgaXNVbmlxdWU/OiAoc2x1Zzogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICBtYWtlVW5pcXVlPzogKHNsdWc6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBtYXhBdHRlbXB0cz86IG51bWJlcjtcbiAgdXNlZFNsdWdzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgY29uc3Qgd29yZCA9XG4gICh0eXBlOiBzdHJpbmcpID0+XG4gIChjb3VudD86IG51bWJlciwgX3dvcmRzPzogc3RyaW5nW10pID0+XG4gIChvcHRpb25zOiBTcGFjZVNsdWdPcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgd29yZHMgPSAoXG4gICAgICBfd29yZHM/Lmxlbmd0aFxuICAgICAgICA/IF93b3Jkc1xuICAgICAgICA6IChvcHRpb25zLmRpY3Rpb25hcnk/LltvcHRpb25zLmxvY2FsZSFdIGFzIGFueSlbdHlwZV1cbiAgICApIGFzIHN0cmluZ1tdO1xuXG4gICAgaWYgKCF3b3Jkcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHdvcmRzIGZvdW5kIGZvciAke3R5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYyA9IGNvdW50IHx8IDE7XG5cbiAgICBpZiAoYyA+IHdvcmRzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IGdlbmVyYXRlICR7Y30gdW5pcXVlIHdvcmRzIGZyb20gJHt3b3Jkcy5sZW5ndGh9IHdvcmRzYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIHdoaWxlIChzZXQuc2l6ZSA8IGMpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogd29yZHMubGVuZ3RoKTtcbiAgICAgIHNldC5hZGQod29yZHNbaW5kZXhdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0O1xuICB9O1xuXG5leHBvcnQgY29uc3Qgbm91biA9IHdvcmQoJ25vdW5zJyk7XG5cbmV4cG9ydCBjb25zdCBhZGplY3RpdmUgPSB3b3JkKCdhZGplY3RpdmVzJyk7XG5cbmV4cG9ydCBjb25zdCBjb2xvciA9IHdvcmQoJ2NvbG9ycycpO1xuXG5leHBvcnQgY29uc3Qgc2Vhc29uID0gd29yZCgnc2Vhc29ucycpO1xuXG5leHBvcnQgY29uc3QgZW1vamkgPSB3b3JkKCdlbW9qaXMnKTtcblxuZXhwb3J0IGNvbnN0IHZlcmIgPSB3b3JkKCd2ZXJicycpO1xuXG5leHBvcnQgY29uc3QgYW5pbWFsID0gd29yZCgnYW5pbWFscycpO1xuXG5leHBvcnQgY29uc3QgY29zbW9zID0gd29yZCgnY29zbW9zJyk7XG5cbmV4cG9ydCBjb25zdCBkaWdpdHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIChjb3VudD86IG51bWJlciwgbm9Db25zZWN1dGl2ZT86IGJvb2xlYW4pID0+IChvcHRpb25zOiBTcGFjZVNsdWdPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgYyA9IGNvdW50IHx8IDQ7XG5cbiAgICBjb25zdCBsaXN0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgd2hpbGUgKGxpc3QubGVuZ3RoIDwgYykge1xuICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCkudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGxhdGVzdCA9IGxpc3QubGVuZ3RoID8gbGlzdFtsaXN0Lmxlbmd0aCAtIDFdIDogbnVsbDtcbiAgICAgIGlmIChub0NvbnNlY3V0aXZlICYmIGxhdGVzdCAhPT0gbnVsbCAmJiBsYXRlc3QgPT09IHZhbHVlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3QubWFwKCh4KSA9PiB4LnRvU3RyaW5nKCkpLmpvaW4oJycpO1xuICB9O1xuXG5leHBvcnQgY29uc3QgY2xlYW5TdHJpbmcgPSAoaW5wdXRTdHJpbmc6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcpID0+XG4gIGlucHV0U3RyaW5nXG4gICAgLnJlcGxhY2UoL1xccysvZywgc2VwYXJhdG9yKVxuICAgIC50cmltKClcbiAgICAucmVwbGFjZShuZXcgUmVnRXhwKGBbXmEtekEtWjAtOSR7c2VwYXJhdG9yfV0rYCwgJ2cnKSwgJycpXG4gICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgKD86JHtzZXBhcmF0b3J9KXsyLH1gLCAnZycpLCBzZXBhcmF0b3IpXG4gICAgLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7c2VwYXJhdG9yfXwke3NlcGFyYXRvcn0kYCwgJ2cnKSwgJycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbmNvbnN0IF91bmlxdWVTcGFjZVNsdWcgPSBhc3luYyAoXG4gIHNwYWNlU2x1Z0ZuOiBTcGFjZVNsdWdJbnB1dFtdLFxuICBvcHRpb25zOiBTcGFjZVNsdWdPcHRpb25zICYgVW5pcXVlU3BhY2VTbHVnT3B0aW9ucyxcbiAgYXR0ZW1wdHM6IG51bWJlclxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3Qgc2x1ZyA9IHNwYWNlU2x1ZyhzcGFjZVNsdWdGbiwgb3B0aW9ucyk7XG4gIGNvbnN0IG1heEF0dGVtcHRzID0gb3B0aW9ucy5tYXhBdHRlbXB0cyB8fCA1O1xuXG4gIGlmIChhdHRlbXB0cyA+IG1heEF0dGVtcHRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENvdWxkIG5vdCBnZW5lcmF0ZSB1bmlxdWUgc2x1ZyBhZnRlciAke29wdGlvbnMubWF4QXR0ZW1wdHN9IGF0dGVtcHRzYFxuICAgICk7XG4gIH1cblxuICBpZiAob3B0aW9ucy51c2VkU2x1Z3MgJiYgb3B0aW9ucy51c2VkU2x1Z3MuaW5jbHVkZXMoc2x1ZykpIHtcbiAgICByZXR1cm4gX3VuaXF1ZVNwYWNlU2x1ZyhzcGFjZVNsdWdGbiwgb3B0aW9ucywgYXR0ZW1wdHMgKyAxKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmlzVW5pcXVlKSB7XG4gICAgY29uc3QgaXNVbmlxdWUgPSBhd2FpdCBvcHRpb25zLmlzVW5pcXVlKHNsdWcpO1xuXG4gICAgaWYgKCFpc1VuaXF1ZSkge1xuICAgICAgaWYgKG9wdGlvbnMubWFrZVVuaXF1ZSkge1xuICAgICAgICBjb25zdCB1bmlxdWVTbHVnID0gYXdhaXQgb3B0aW9ucy5tYWtlVW5pcXVlKHNsdWcpO1xuICAgICAgICByZXR1cm4gX3VuaXF1ZVNwYWNlU2x1ZyhbdW5pcXVlU2x1Z10sIG9wdGlvbnMsIGF0dGVtcHRzICsgMSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfdW5pcXVlU3BhY2VTbHVnKHNwYWNlU2x1Z0ZuLCBvcHRpb25zLCBhdHRlbXB0cyArIDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzbHVnO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuaXF1ZVNwYWNlU2x1ZyA9IGFzeW5jIChcbiAgc3BhY2VTbHVnRm46IFNwYWNlU2x1Z0lucHV0W10sXG4gIG9wdGlvbnM6IFNwYWNlU2x1Z09wdGlvbnMgJiBVbmlxdWVTcGFjZVNsdWdPcHRpb25zID0ge31cbikgPT4gX3VuaXF1ZVNwYWNlU2x1ZyhzcGFjZVNsdWdGbiwgb3B0aW9ucywgMSk7XG5cbmV4cG9ydCBjb25zdCBzcGFjZVNsdWcgPSAoXG4gIHNwYWNlU2x1Z0lucHV0cz86IFNwYWNlU2x1Z0lucHV0W10sXG4gIG9wdGlvbnM6IFNwYWNlU2x1Z09wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgLi4uc3BhY2VTbHVnRGVmYXVsdE9wdGlvbnMsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcblxuICBjb25zdCB0cmFuc2Zvcm1GbiA9IG1lcmdlZE9wdGlvbnMudHJhbnNmb3JtIHx8ICgoeCkgPT4geC50b0xvd2VyQ2FzZSgpKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgY29uc3QgX3NwYWNlU2x1Z0ZucyA9ICFzcGFjZVNsdWdJbnB1dHM/Lmxlbmd0aFxuICAgID8gW2FkamVjdGl2ZSgxKSwgbm91bigxKSwgZGlnaXRzKDIpXVxuICAgIDogc3BhY2VTbHVnSW5wdXRzO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICBjb25zdCBfY2xlYW5TdHJpbmcgPSBvcHRpb25zLmNsZWFuU3RyaW5nXG4gICAgPyBvcHRpb25zLmNsZWFuU3RyaW5nXG4gICAgOiAoczogc3RyaW5nKSA9PiBjbGVhblN0cmluZyhzLCBtZXJnZWRPcHRpb25zLnNlcGFyYXRvciBhcyBzdHJpbmcpO1xuXG4gIGNvbnN0IHNsdWcgPSBfc3BhY2VTbHVnRm5zLm1hcCgoZm4pID0+IHtcbiAgICBjb25zdCBzZXQgPSB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgPyBmbihtZXJnZWRPcHRpb25zKSA6IGZuO1xuXG4gICAgbGV0IHM6IHN0cmluZztcblxuICAgIGlmICh0eXBlb2Ygc2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgcyA9IF9jbGVhblN0cmluZyhzZXQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNldCA9PT0gJ29iamVjdCcgJiYgc2V0IGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICBzID0gQXJyYXkuZnJvbShzZXQpLm1hcChfY2xlYW5TdHJpbmcpLmpvaW4obWVyZ2VkT3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzZXQpKSB7XG4gICAgICBzID0gc2V0Lm1hcChfY2xlYW5TdHJpbmcpLmpvaW4obWVyZ2VkT3B0aW9ucy5zZXBhcmF0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3BhY2Ugc2x1ZyBmdW5jdGlvbiBvdXRwdXQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtRm4ocyk7XG4gIH0pO1xuXG4gIHJldHVybiBzbHVnLmpvaW4obWVyZ2VkT3B0aW9ucy5zZXBhcmF0b3IpO1xufTtcbiJdfQ==