Something I’ve been working on putting off for a while, finally done. I’m still not quite happy with it, but I suspect I never will be. So, I’m posting it now before I can start messing it up rather than making it any better.