The squeezing is achieved by eliminating common prefixes, and replacing them with a single character which encodes the number of characters shared with the preceding word. The prefix size is encoded as a single printable character: 0-9 represent 0-9, A-Z represent 10-35, and a-z represent 36-61.

BUGS

sq and unsq can only handle words of up to 256 characters. The input must be sorted, and duplicates must be suppressed.