Lethal ForensicELFication

Cranberry Pi #8
East Hall Corridor

Hi, I'm Tangle Coalbox.

Any chance you can help me with an investigation?
Elf Resources assigned me to look into a case, but it seems to require digital forensic skills.
Do you know anything about Linux terminal editors and digital traces they leave behind?
Apparently editors can leave traces of data behind, but where and how escapes me!

                       ............'''',,,;;;::ccclloooddxxkkOO00KKXXNNWWMMMMMM
                       ............'''',,,;;;::ccclloooddxxkkOO00KKXXNNWWMMMMMM
   .,.   ,. .......,.  .',..'',,..:::::,,;:c:::ccooooodxkkOOkOO0KKXXXNNWMMMMMMM
   ldd: .d' ';... .o:  .d;.;:....'dl,;do,:lloc:codddodOOxxk0KOOKKKKXNNNWMMMMMMM
   lo.ol.d' ';'..  ,d'.lc..;:,,,.'docod:,:l:locldlddokOxdxxOK0OKKKXXXNNWMMMMMMM
   lo  lod' ';      co:o...;:....'dl':dl,:l::oodlcddoxOkxxk0KOOKKKKXNNNWMMMMMMM
   ,,   ,;. ......  .;:....',,,,''c:'':l;;c:;:llccoooodkkOOOkOO0KKKXNNNWMMMMMMM
                       ............'''',,,;;;::ccclloooddxxkkOO00KKXXNNWWMMMMMM
                       ............'''',,,;;;::ccclloooddxxkkOO00KKXXNNWWMMMMMM
 
Christmas is coming, and so it would seem,
ER (Elf Resources) crushes elves' dreams.
One tells me she was disturbed by a bloke.
He tells me this must be some kind of joke.
 
Please do your best to determine what's real.
Has this jamoke, for this elf, got some feels?
Lethal forensics ain't my cup of tea;
If YOU can fake it, my hero you'll be.
 
One more quick note that might help you complete,
Clearing this mess up that's now at your feet.
Certain text editors can leave some clue.
Did our young Romeo leave one for you?
 
- Tangle Coalbox, ER Investigator
 
  Find the first name of the elf of whom a love poem
  was written.  Complete this challenge by submitting
  that name to runtoanswer.
Vim Artifacts hint from Tangle Coalbox
Forensic Relevance of Vim Artifacts

Poem itself is located at ~/.secrets/her/poem.txt, but digital forensic footprints are left in .viminfo. By reading the poem, it can be seen that recipients name is replaced with NEVERMORE! and searching for that in .viminfo reveals previous value, elf of whom a love poem was written, Elionore.

WWNXXK00OOkkxddoolllcc::;;;,,,'''.............                                 
WWNXXK00OOkkxddoolllcc::;;;,,,'''.............                                 
WWNXXK00OOkkxddoolllcc::;;;,,,'''.............                                 
WWNXXKK00OOOxddddollcccll:;,;:;,'...,,.....'',,''.    .......    .''''''       
WWNXXXKK0OOkxdxxxollcccoo:;,ccc:;...:;...,:;'...,:;.  ,,....,,.  ::'....       
WWNXXXKK0OOkxdxxxollcccoo:;,cc;::;..:;..,::...   ;:,  ,,.  .,,.  ::'...        
WWNXXXKK0OOkxdxxxollcccoo:;,cc,';:;':;..,::...   ,:;  ,,,',,'    ::,'''.       
WWNXXXK0OOkkxdxxxollcccoo:;,cc,'';:;:;..'::'..  .;:.  ,,.  ','   ::.           
WWNXXXKK00OOkdxxxddooccoo:;,cc,''.,::;....;:;,,;:,.   ,,.   ','  ::;;;;;       
WWNXXKK0OOkkxdddoollcc:::;;,,,'''...............                               
WWNXXK00OOkkxddoolllcc::;;;,,,'''.............                                 
WWNXXK00OOkkxddoolllcc::;;;,,,'''.............                                 
 
Thank you for solving this mystery, Slick.
Reading the .viminfo sure did the trick.
Leave it to me; I will handle the rest.
Thank you for giving this challenge your best.
 
-Tangle Coalbox
-ER Investigator
 
Congratulations!

Afterwards, chat with Tangle Coalbox:

Tangle Coalbox

Hey, thanks for the help with the investigation, gumshoe.
Have you been able to solve the lock with the funny shapes?
It reminds me of something called "de Bruijn Sequences."
You can optimize the guesses because there is no start and stop -- each new value is added to the end and the first is removed.
I've even seen de Bruijn sequence generators online.
Here the length of the alphabet is 4 (only 4 buttons) and the length of the PIN is 4 as well.
Mathematically this is k=4, n=4 to generate the de Bruijn sequence.
Math is like your notepad and pencil - can't leave home without it!
I heard Alabaster lost his badge! That's pretty bad. What do you think someone could do with that?

details

  • .bashrc - relevant part
  • cat /etc/motd

  • /etc/motd
  • .bash_history
  • set -o history
    whoami
    echo "No, really...  /-:"
    mkdir -p .secrets/her/
    firefox https://www.google.com/search?q=love+poetry
    vim
    ls -lAR
    exit
    set -o history
    df -h
    who
    firefox https://www.google.com/search?q=replacing+strings+in+vim
    time vim
    ls -lAR
    exit
    set -o history
    vim
    exit
    
    ls -lA
    cat .bash_history
    echo "" >> .bash_history
    firefox https://www.google.com/search?q=turn+off+bash+history
    set +o history
    set +o history

  • ~/.secrets/her/poem.txt
  • Once upon a sleigh so weary, Morcel scrubbed the grime so dreary,
    Shining many a beautiful sleighbell bearing cheer and sound so pure--
      There he cleaned them, nearly napping, suddenly there came a tapping,
    As of someone gently rapping, rapping at the sleigh house door.
    "'Tis some caroler," he muttered, "tapping at my sleigh house door--
      Only this and nothing more."
    
    Then, continued with more vigor, came the sound he didn't figure,
    Could belong to one so lovely, walking 'bout the North Pole grounds.
      But the truth is, she WAS knocking, 'cause with him she would be talking,
    Off with fingers interlocking, strolling out with love newfound?
    Gazing into eyes so deeply, caring not who sees their rounds.
      Oh, 'twould make his heart resound!
    
    Hurried, he, to greet the maiden, dropping rag and brush - unlaiden.
    Floating over, more than walking, moving toward the sound still knocking,
      Pausing at the elf-length mirror, checked himself to study clearer,
    Fixing hair and looking nearer, what a hunky elf - not shocking!
    Peering through the peephole smiling, reaching forward and unlocking:
      NEVERMORE in tinsel stocking!
    
    Greeting her with smile dashing, pearly-white incisors flashing,
    Telling jokes to keep her laughing, soaring high upon the tidings,
      Of good fortune fates had borne him.  Offered her his dexter forelimb,
    Never was his future less dim!  Should he now consider gliding--
    No - they shouldn't but consider taking flight in sleigh and riding
      Up above the Pole abiding?
    
    Smile, she did, when he suggested that their future surely rested,
    Up in flight above their cohort flying high like ne'er before!
      So he harnessed two young reindeer, bold and fresh and bearing no fear.
    In they jumped and seated so near, off they flew - broke through the door!
    Up and up climbed team and humor, Morcel being so adored,
      By his lovely NEVERMORE!
    
    -Morcel Nougat

  • decompiled viminfo.py from runtoanswer (read about decompilation process in Cranberry Pi hacks)
  • Answer is checked case-insensitive (line 56).
    There is this challenge's HMAC key 48e41d5cc5e041c0869395bb8cab791e (used to verify challenge completion).
    Some debugging code is still lingering in source. Also, there is some dead code (lines 40-41), probably, due to using copy-and-paste programming.

    import sys, os, base64, time, signal, json
    from hashlib import sha256
    import hmac
    
    def calcHmac(secret, resourceId):
        return hmac.new(secret.encode('utf8'), resourceId.encode('utf8'), sha256).hexdigest()
    
    
    def printResponse(hash, resourceId):
        print('#####hhc:%s#####' % json.dumps({'hash': hash, 'resourceId': resourceId}))
    
    
    def signal_handler(signal, frame):
        print('')
        sys.exit(0)
    
    
    def errorandexit(msg2):
        error = "\nI'm very sorry, but we seem to have an internal issue preventing the successful\ncompletion of this challenge. Please email support@holidayhackchallenge.com with\na screen-shot or any other details you can provide. Thank you!\n\n"
        print(error)
        if msg2 != '':
            print(msg2)
        if debuggin:
            print('\nHit errorandexit(), quitting')
        sys.exit(-1)
    
    
    if __name__ == '__main__':
        debuggin = False
        if debuggin:
            print('\nKONAMI CODE ENTERED; DEBUG MODE ON!\n')
        signal.signal(signal.SIGINT, signal_handler)
    try:
        RESOURCEID = os.environ.get('RESOURCE_ID')
        if RESOURCEID == '' or RESOURCEID == None:
            errorandexit('Unable to obtain resource ID information.')
        if debuggin:
            print('\nRESOURCEID = ' + RESOURCEID)
        key = '48e41d5cc5e041c0869395bb8cab791e'
        h = hmac.new(key.encode('utf8'), RESOURCEID.encode('utf8'), sha256)
        payload = {'hash': h.hexdigest(), 'resourceid': RESOURCEID}
        if debuggin:
            print('\nPayload = ')
        if debuggin:
            print(payload)
        sys.stdout.write('Loading, please wait.')
        sys.stdout.flush()
        for i in range(0, 5):
            if not debuggin:
                time.sleep(1)
            sys.stdout.write('.')
            sys.stdout.flush()
    
        print('\n')
        guess = input('\n\nWho was the poem written about? ')
        if guess.lower() == 'elinore':
            hmac256 = calcHmac(key, RESOURCEID)
            printResponse(hmac256, RESOURCEID)
            time.sleep(0.5)
            print("\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0m\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0m\x1b[37md\x1b[0m\x1b[37mo\x1b[0m\x1b[37mo\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0m\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0m\x1b[37md\x1b[0m\x1b[37mo\x1b[0m\x1b[37mo\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mXK\x1b[37m0\x1b[0m\x1b[37m0\x1b[0mOOkkx\x1b[37md\x1b[0m\x1b[37md\x1b[0m\x1b[37mo\x1b[0m\x1b[37mo\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m:\x1b[37m:\x1b[0m;;\x1b[37m;\x1b[0m,\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m'\x1b[0m'\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m...\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.\x1b[37m.\x1b[0m...\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m     \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0mdddo\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[31ml\x1b[0m\x1b[31ml\x1b[0m\x1b[37m:\x1b[0m;,;:;,'\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.,,.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m,\x1b[0m\x1b[31m,\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m .\x1b[32m.\x1b[0m\x1b[32m.\x1b[0m\x1b[32m.\x1b[0m\x1b[32m.\x1b[0m\x1b[32m.\x1b[0m.   \x1b[37m \x1b[0m\x1b[31m.\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0mxxxo\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[31mo\x1b[0m\x1b[31mo\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m,ccc\x1b[32m:\x1b[0m;.\x1b[37m.\x1b[0m.\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[31m,\x1b[0m\x1b[31m:\x1b[0m\x1b[31m;\x1b[0m\x1b[31m'\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m,\x1b[0m\x1b[31m:\x1b[0m\x1b[31m;\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m \x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m.\x1b[0m..\x1b[32m.\x1b[0m\x1b[32m,\x1b[0m\x1b[32m,\x1b[0m.\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m'\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0mx\x1b[37md\x1b[0mxxxo\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[31mo\x1b[0m\x1b[31mo\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m,c\x1b[32mc\x1b[0m;:\x1b[32m:\x1b[0m;..\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m..\x1b[31m,\x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[31m;\x1b[0m\x1b[31m:\x1b[0m\x1b[31m,\x1b[0m\x1b[37m \x1b[0m \x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m.\x1b[0m  .\x1b[32m,\x1b[0m\x1b[32m,\x1b[0m.\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m'\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0mx\x1b[37md\x1b[0mxxxo\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[31mo\x1b[0m\x1b[31mo\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m,c\x1b[32mc\x1b[0m,';\x1b[32m:\x1b[0m;'\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m.\x1b[37m.\x1b[0m\x1b[31m,\x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[31m,\x1b[0m\x1b[31m:\x1b[0m\x1b[31m;\x1b[0m\x1b[37m \x1b[0m \x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m'\x1b[0m\x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m'\x1b[0m   \x1b[37m \x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m,\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m'\x1b[0m\x1b[31m.\x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0mOOkkx\x1b[37md\x1b[0mxxxo\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0mc\x1b[37mc\x1b[0m\x1b[31mo\x1b[0m\x1b[31mo\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m,c\x1b[32mc\x1b[0m,\x1b[37m'\x1b[0m';\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m..\x1b[31m'\x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m'\x1b[0m\x1b[37m.\x1b[0m. \x1b[37m \x1b[0m\x1b[31m.\x1b[0m\x1b[31m;\x1b[0m\x1b[31m:\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m \x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m.\x1b[0m  \x1b[32m'\x1b[0m\x1b[32m,\x1b[0m\x1b[32m'\x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0mX\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0mdxxxddooc\x1b[37mc\x1b[0m\x1b[31mo\x1b[0m\x1b[31mo\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m,c\x1b[32mc\x1b[0m,\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m.,\x1b[32m:\x1b[0m\x1b[32m:\x1b[0m\x1b[32m;\x1b[0m..\x1b[37m.\x1b[0m\x1b[31m.\x1b[0m\x1b[31m;\x1b[0m\x1b[31m:\x1b[0m\x1b[31m;\x1b[0m\x1b[31m,\x1b[0m\x1b[31m,\x1b[0m\x1b[31m;\x1b[0m\x1b[31m:\x1b[0m\x1b[31m,\x1b[0m\x1b[31m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[32m,\x1b[0m\x1b[32m,\x1b[0m\x1b[32m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[32m'\x1b[0m\x1b[32m,\x1b[0m\x1b[32m'\x1b[0m \x1b[37m \x1b[0m\x1b[31m:\x1b[0m\x1b[31m:\x1b[0m\x1b[31m;\x1b[0m\x1b[31m;\x1b[0m\x1b[31m;\x1b[0m\x1b[31m;\x1b[0m\x1b[31m;\x1b[0m\x1b[31m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0m\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0mdddoollcc\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m,\x1b[0m,,'\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m.....\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m..\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m    \x1b[37m \x1b[0m       \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0m\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0m\x1b[37md\x1b[0m\x1b[37mo\x1b[0m\x1b[37mo\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\x1b[37mW\x1b[0m\x1b[37mW\x1b[0m\x1b[37mN\x1b[0m\x1b[37mX\x1b[0m\x1b[37mX\x1b[0m\x1b[37mK\x1b[0m\x1b[37m0\x1b[0m\x1b[37m0\x1b[0m\x1b[37mO\x1b[0m\x1b[37mO\x1b[0m\x1b[37mk\x1b[0m\x1b[37mk\x1b[0m\x1b[37mx\x1b[0m\x1b[37md\x1b[0m\x1b[37md\x1b[0m\x1b[37mo\x1b[0m\x1b[37mo\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37ml\x1b[0m\x1b[37mc\x1b[0m\x1b[37mc\x1b[0m\x1b[37m:\x1b[0m\x1b[37m:\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m;\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m,\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m'\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m.\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m.\x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m  \x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\x1b[37m \x1b[0m\n\nThank you for solving this mystery, Slick.\nReading the .viminfo sure did the trick.\nLeave it to me; I will handle the rest.\nThank you for giving this challenge your best.\n\n-Tangle Coalbox\n-ER Investigator\n\nCongratulations!\n")
        else:
            print("Sorry, I don't think that's what the forensic data shows.")
    except Exception as e:
        errorandexit(str(e))
        sys.exit(0)