Rating:
Basic steps:
1. Use the provided fingerprint algorithm to build a grid of positions and counts from the fingerprint of the flag
2. Use the fingerprint algorithm to write a function to produce the grid for partial walks
3. Iterate through the valid characters in the regex to determine if the projected walk would be inconsistent with the flag's fingerprint, and recurse on the characters that are consistent (depth-first search)
4. For strings that produce a walk matching the flag's, calculate the md5 and generate the fingerprint to ensure it matches the provided fingerprint of md5(flag)
Full writeup: https://mechanicalnull.github.io/walking-with-sober-bishop/