Text Editors

When I was first learning structured programming, I used an IDE (TurboPascal).  Since then, I have rarely used an IDE outside of specialized language development environments like VisualBASIC.  Mostly, I use a text editor that I link up with a good sftp program to edit remotely or that I use in conjunction with subversion.  For a long time, when I was still programming heavily on PCs, I used TextPad.  It’s probably still toward the top of my list, but it’s been so long since I used a PC as one of my primary machines that it’s hard for me to know.

The lack of TextPad for mac has left me searching, on and off, almost constantly for the “right” mac text editor.  Most of the time now, that search leaves me right back at Komodo Edit, the free cross-platform text editor built on Gecko and Scintilla that I’ve been using for a logn time now.  Every other major editor just seems to be missing something I’ve come to really like in Komodo Edit, even as slow and clumsy as the interface can be sometimes.

I really wanted to like BBEdit, TextWranger, TextMate, skEdit, subEthaEdit, Coda, etc., but none of them seemed to have the simplicity of code-completion (including variable and constant name completion) and intelligent code auto-indenting that Komodo Edit does.  I wanted to like the integration of various resources in Coda, but having the reference materials in the one program versus in a web browser window over on that second monitor there just didn’t seem to make enough of a difference.  I wanted to think that having an editor that could do sftp and subversion was worthwhile, but it just didn’t seem to matter to my workflow.

It’s been so long since I’ve been away from TextPad that I’m not sure even it would compare to Komodo Edit.  Of course, the one tool that is poised at any moment to start eating into Komodo Edit’s share of my use time is MacVim (this is apparently a new port of vim).  Vi/vim is so unbelievably powerful… and so much more my style than Emacs.  Vi has been my text editor of choice at the command line for about a decade or so now.  See also Why, oh WHY, do those #[email protected]! nutheads use vi? and the two graphics below.

Learning Curves

Real Programmers

Share and Enjoy:
  • Print
  • email
  • RSS
  • del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Ping.fm
  • Mixx
  • Reddit
  • StumbleUpon
  • Twitter
2 . 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 0 2 8 7 4 7 1 3 5 2 6 6 2 4 9 7 7 5 7 2 4 7 0 9 3 6 9 9 9 5 9 5 7 4 9 6 6 9 6 7 6 2 7 7 2 4 0 7 6 6 3 0 3 5 3 5 4 7 5 9 4 5 7 1 3 8 2 1 7 8 5 2 5 1 6 6 4 2 7 4 2 7 4 6 6 3 9 1 9 3 2 0 0 3 0 5 9 9 2 1 8 1 7 4 1 3 5 9 6 6 2 9 0 4 3 5 7 2 9 0 0 3 3 4 2 9 5 2 6 0 5 9 5 6 3 0 7 3 8 1 3 2 3 2 8 6 2 7 9 4 3 4 9 0 7 6 3 2 3 3 8 2 9 8 8 0 7 5 3 1 9 5 2 5 1 0 1 9 0 1 1 5 7 3 8 3 4 1 8 7 9 3 0 7 0 2 1 5 4 0 8 9 1 4 9 9 3 4 8 8 4 1 6 7 5 0 9 2 4 4 7 6 1 4 6 0 6 6 8 0 8 2 2 6 4 8 0 0 1 6 8 4 7 7 4 1 1 8 5 3 7 4 2 3 4 5 4 4 2 4 3 7 1 0 7 5 3 9 0 7 7 7 4 4 9 9 2 0 6 9 5 5 1 7 0 2 7 6 1 8 3 8 6 0 6 2 6 1 3 3 1 3 8 4 5 8 3 0 0 0 7 5 2 0 4 4 9 3 3 8 2 6 5 6 0 2 9 7 6 0 6 7 3 7 1 1 3 2 0 0 7 0 9 3 2 8 7 0 9 1 2 7 4 4 3 7 4 7 0 4 7 2 3 0 6 9 6 9 7 7 2 0 9 3 1 0 1 4 1 6 9 2 8 3 6 8 1 9 0 2 5 5 1 5 1 0 8 6 5 7 4 6 3 7 7 2 1 1 1 2 5 2 3 8 9 7 8 4 4 2 5 0 5 6 9 5 3 6 9 6 7 7 0 7 8 5 4 4 9 9 6 9 9 6 7 9 4 6 8 6 4 4 5 4 9 0 5 9 8 7 9 3 1 6 3 6 8 8 9 2 3 0 0 9 8 7 9 3 1 2 7 7 3 6 1 7 8 2 1 5 4 2 4 9 9 9 2 2 9 5 7 6 3 5 1 4 8 2 2 0 8 2 6 9 8 9 5 1 9 3 6 6 8 0 3 3 1 8 2 5 2 8 8 6 9 3 9 8 4 9 6 4 6 5 1 0 5 8 2 0 9 3 9 2 3 9 8 2 9 4 8 8 7 9 3 3 2 0 3 6 2 5 0 9 4 4 3 1 1 7 3 0 1 2 3 8 1 9 7 0 6 8 4 1 6 1 4 0 3 9 7 0 1 9 8 3 7 6 7 9 3 2 0 6 8 3 2 8 2 3 7 6 4 6 4 8 0 4 2 9 5 3 1 1 8 0 2 3 2 8 7 8 2 5 0 9 8 1 9 4 5 5 8 1 5 3 0 1 7 5 6 7 1 7 3 6 1 3 3 2 0 6 9 8 1 1 2 5 0 9 9 6 1 8 1 8 8 1 5 9 3 0 4 1 6 9 0 3 5 1 5 9 8 8 8 8 5 1 9 3 4 5 8 0 7 2 7 3 8 6 6 7 3 8 5 8 9 4 2 2 8 7 9 2 2 8 4 9 9 8 9 2 0 8 6 8 0 5 8 2 5 7 4 9 2 7 9 6 1 0 4 8 4 1 9 8 4 4 4 3 6 3 4 6 3 2 4 4 9 6 8 4 8 7 5 6 0 2 3 3 6 2 4 8 2 7 0 4 1 9 7 8 6 2 3 2 0 9 0 0 2 1 6 0 9 9 0 2 3 5 3 0 4 3 6 9 9 4 1 8 4 9 1 4 6 3 1 4 0 9 3 4 3 1 7 3 8 1 4 3 6 4 0 5 4 6 2 5 3 1 5 2 0 9 6 1 8 3 6 9 0 8 8 8 7 0 7 0 1 6 7 6 8 3 9 6 4 2 4 3 7 8 1 4 0 5 9 2 7 1 4 5 6 3 5 4 9 0 6 1 3 0 3 1 0 7 2 0 8 5 1 0 3 8 3 7 5 0 5 1 0 1 1 5 7 4 7 7 0 4 1 7 1 8 9 8 6 1 0 6 8 7 3 9 6 9 6 5 5 2 1 2 6 7 1 5 4 6 8 8 9 5 7 0 3 5 0 3 5 4 0 2 1 2 3 4 0 7 8 4 9 8 1 9 3 3 4 3 2 1 0 6 8 1 7 0 1 2 1 0 0 5 6 2 7 8 8 0 2 3 5 1 9 3 0 3 3 2 2 4 7 4 5 0 1 5 8 5 3 9 0 4 7 3 0 4 1 9 9 5 7 7 7 7 0 9 3 5 0 3 6 6 0 4 1 6 9 9 7 3 2 9 7 2 5 0 8 8 6 8 7 6 9 6 6 4 0 3 5 5 5 7 0 7 1 6 2 2 6 8 4 4 7 1 6 2 5 6 0 7 9 8 8 2 6 5 1 7 8 7 1 3 4 1 9 5 1 2 4 6 6 5 2 0 1 0 3 0 5 9 2 1 2 3 6 6 7 7 1 9 4 3 2 5 2 7 8 6 7 5 3 9 8 5 5 8 9 4 4 8 9 6 9 7 0 9 6 4 0 9 7 5 4 5 9 1 8 5 6 9 5 6 3 8 0 2 3 6 3 7 0 1 6 2 1 1 2 0 4 7 7 4 2 7 2 2 8 3 6 4 8 9 6 1 3 4 2 2 5 1 6 4 4 5 0 7 8 1 8 2 4 4 2 3 5 2 9 4 8 6 3 6 3 7 2 1 4 1 7 4 0 2 3 8 8 9 3 4 4 1 2 4 7 9 6 3 5 7 4 3 7 0 2 6 3 7 5 5 2 9 4 4 4 8 3 3 7 9 9 8 0 1 6 1 2 5 4 9 2 2 7 8 5 0 9 2 5 7 7 8 2 5 6 2 0 9 2 6 2 2 6 4 8 3 2 6 2 7 7 9 3 3 3 8 6 5 6 6 4 8 1 6 2 7 7 2 5 1 6 4 0 1 9 1 0 5 9 0 0 4 9 1 6 4 4 9 9 8 2 8 9 3 1 5 0 5 6 6 0 4 7 2 5 8 0 2 7 7 8 6 3 1 8 6 4 1 5 5 1 9 5 6 5 3 2 4 4 2 5 8 6 9 8 2 9 4 6 9 5 9 3 0 8 0 1 9 1 5 2 9 8 7 2 1 1 7 2 5 5 6 3 4 7 5 4 6 3 9 6 4 4 7 9 1 0 1 4 5 9 0 4 0 9 0 5 8 6 2 9 8 4 9 6 7 9 1 2 8 7 4 0 6 8 7 0 5 0 4 8 9 5 8 5 8 6 7 1 7 4 7 9 8 5 4 6 6 7 7 5 7 5 7 3 2 0 5 6 8 1 2 8 8 4 5 9 2 0 5 4 1 3 3 4 0 5 3 9 2 2 0 0 0 1 1 3 7 8 6 3 0 0 9 4 5 5 6 0 6 8 8 1 6 6 7 4 0 0 1 6 9 8 4 2 0 5 5 8 0 4 0 3 3 6 3 7 9 5 3 7 6 4 5 2 0 3 0 4 0 2 4 3 2 2 5 6 6 1 3 5 2 7 8 3 6 9 5 1 1 7 7 8 8 3 8 6 3 8 7 4 4 3 9 6 6 2 5 3 2 2 4 9 8 5 0 6 5 4 9 9 5 8 8 6 2 3 4 2 8 1 8 9 9 7 0 7 7 3 3 2 7 6 1 7 1 7 8 3 9 2 8 0 3 4 9 4 6 5 0 1 4 3 4 5 5 8 8 9 7 0 7 1 9 4 2 5 8 6 3 9 8 7 7 2 7 5 4 7 1 0 9 6 2 9 5 3 7 4 1 5 2 1 1 1 5 1 3 6 8 3 5 0 6 2 7 5 2 6 0 2 3 2 6 4 8 4 7 2 8 7 0 3 9 2 0 7 6 4 3 1 0 0 5 9 5 8 4 1 1 6 6 1 2 0 5 4 5 2 9 7 0 3 0 2 3 6 4 7 2 5 4 9 2 9 6 6 6 9 3 8 1 1 5 1 3 7 3 2 2 7 5 3 6 4 5 0 9 8 8 8 9 0 3 1 3 6 0 2 0 5 7 2 4 8 1 7 6 5 8 5 1 1 8 0 6 3 0 3 6 4 4 2 8 1 2 3 1 4 9 6 5 5 0 7 0 4 7 5 1 0 2 5 4 4 6 5 0 1 1 7 2 7 2 1 1 5 5 5 1 9 4 8 6 6 8 5 0 8 0 0 3 6 8 5 3 2 2 8 1 8 3 1 5 2 1 9 6 0 0 3 7 3 5 6 2 5 2 7 9 4 4 9 5 1 5 8 2 8 4 1 8 8 2 9 4 7 8 7 6 1 0 8 5 2 6 3 9 8 1 3 9 5 5 9 9 0 0 6 7 3 7 6 4 8 2 9 2 2 4 4 3 7 5 2 8 7 1 8 4 6 2 4 5 7 8 0 3 6 1 9 2 9 8 1 9 7 1 3 9 9 1 4 7 5 6 4 4 8 8 2 6 2 6 0 3 9 0 3 3 8 1 4 4 1 8 2 3 2 6 2 5 1 5 0 9 7 4 8 2 7 9 8 7 7 7 9 9 6 4 3 7 3 0 8 9 9 7 0 3 8 8 8 6 7 7 8 2 2 7 1 3 8 3 6 0 5 7 7 2 9 7 8 8 2 4 1 2 5 6 1 1 9 0 7 1 7 6 6 3 9 4 6 5 0 7 0 6 3 3 0 4 5 2 7 9 5 4 6 6 1 8 5 5 0 9 6 6 6 6 1 8 5 6 6 4 7 0 9 7 1 1 3 4 4 4 7 4 0 1 6 0 7 0 4 6 2 6 2 1 5 6 8 0 7 1 7 4 8 1 8 7 7 8 4 4 3 7 1 4 3 6 9 8 8 2 1 8 5 5 9 6 7 0 9 5 9 1 0 2 5 9 6 8 6 2 0 0 2 3 5 3 7 1 8 5 8 8 7 4 8 5 6 9 6 5 2 2 0 0 0 5 0 3 1 1 7 3 4 3 9 2 0 7 3 2 1 1 3 9 0 8 0 3 2 9 3 6 3 4 4 7 9 7 2 7 3 5 5 9 5 5 2 7 7 3 4 9 0 7 1 7 8 3 7 9 3 4 2 1 6 3 7 0 1 2 0 5 0 0 5 4 5 1 3 2 6 3 8 3 5 4 4 0 0 0 1 8 6 3 2 3 9 9 1 4 9 0 7 0 5 4 7 9 7 7 8 0 5 6 6 9 7 8 5 3 3 5 8 0 4 8 9 6 6 9 0 6 2 9 5 1 1 9 4 3 2 4 7 3 0 9 9 5 8 7 6 5 5 2 3 6 8 1 2 8 5 9 0 4 1 3 8 3 2 4 1 1 6 0 7 2 2 6 0 2 9 9 8 3 3 0 5 3 5 3 7 0 8 7 6 1 3 8 9 3 9 6 3 9 1 7 7 9 5 7 4 5 4 0 1 6 1 3 7 2 2 3 6 1 8 7 8 9 3 6 5 2 6 0 5 3 8 1 5 5 8 4 1 5 8 7 1 8 6 9 2 5 5 3 8 6 0 6 1 6 4 7 7 9 8 3 4 0 2 5 4 3 5 1 2 8 4 3 9 6 1 2 9 4 6 0 3 5 2 9 1 3 3 2 5 9 4 2 7 9 4 9 0 4 3 3 7 2 9 9 0 8 5 7 3 1 5 8 0 2 9 0 9 5 8 6 3 1 3 8 2 6 8 3 2 9 1 4 7 7 1 1 6 3 9 6 3 3 7 0 9 2 4 0 0 3 1 6 8 9 4 5 8 6 3 6 0 6 0 6 4 5 8 4 5 9 2 5 1 2 6 9 9 4 6 5 5 7 2 4 8 3 9 1 8 6 5 6 4 2 0 9 7 5 2 6 8 5 0 8 2 3 0 7 5 4 4 2 5 4 5 9 9 3 7 6 9 1 7 0 4 1 9 7 7 7 8 0 0 8 5 3 6 2 7 3 0 9 4 1 7 1 0 1 6 3 4 3 4 9 0 7 6 9 6 4 2 3 7 2 2 2 9 4 3 5 2 3 6 6 1 2 5 5 7 2 5 0 8 8 1 4 7 7 9 2 2 3 1 5 1 9 7 4 7 7 8 0 6 0 5 6 9 6 7 2 5 3 8 0 1 7 1 8 0 7 7 6 3 6 0 3 4 6 2 4 5 9 2 7 8 7 7 8 4 6 5 8 5 0 6 5 6 0 5 0 7 8 0 8 4 4 2 1 1 5 2 9 6 9 7 5 2 1 8 9 0 8 7 4 0 1 9 6 6 0 9 0 6 6 5 1 8 0 3 5 1 6 5 0 1 7 9 2 5 0 4 6 1 9 5 0 1 3 6 6 5 8 5 4 3 6 6 3 2 7 1 2 5 4 9 6 3 9 9 0 8 5 4 9 1 4 4 2 0 0 0 1 4 5 7 4 7 6 0 8 1 9 3 0 2 2 1 2 0 6 6 0 2 4 3 3 0 0 9 6 4 1 2 7 0 4 8 9 4 3 9 0 3 9 7 1 7 7 1 9 5 1 8 0 6 9 9 0 8 6 9 9 8 6 0 6 6 3 6 5 8 3 2 3 2 2 7 8 7 0 9 3 7 6 5 0 2 2 6 0 1 4 9 2 9 1 0 1 1 5 1 7 1 7 7 6 3 5 9 4 4 6 0 2 0 2 3 2 4 9 3 0 0 2 8 0 4 0 1 8 6 7 7 2 3 9 1 0 2 8 8 0 9 7 8 6 6 6 0 5 6 5 1 1 8 3 2 6 0 0 4 3 6 8 8 5 0 8 8 1 7 1 5 7 2 3 8 6 6 9 8 4 2 2 4 2 2 0 1 0 2 4 9 5 0 5 5 1 8 8 1 6 9 4 8 0 3 2 2 1 0 0 2 5 1 5 4 2 6 4 9 4 6 3 9 8 1 2 8 7 3 6 7 7 6 5 8 9 2 7 6 8 8 1 6 3 5 9 8 3 1 2 4 7 7 8 8 6 5 2 0 1 4 1 1 7 4 1 1 0 9 1 3 6 0 1 1 6 4 9 9 5 0 7 6 6 2 9 0 7 7 9 4 3 6 4 6 0 0 5 8 5 1 9 4 1 9 9 8 5 6 0 1 6 2 6 4 7 9 0 7 6 1 5 3 2 1 0 3 8 7 2 7 5 5 7 1 2 6 9 9 2 5 1 8 2 7 5 6 8 7 9 8 9 3 0 2 7 6 1 7 6 1 1 4 6 1 6 2 5 4 9 3 5 6 4 9 5 9 0 3 7 9 8 0 4 5 8 3 8 1 8 2 3 2 3 3 6 8 6 1 2 0 1 6 2 4 3 7 3 6 5 6 9 8 4 6 7 0 3 7 8 5 8 5 3 3 0 5 2 7 5 8 3 3 3 3 7 9 3 9 9 0 7 5 2 1 6 6 0 6 9 2 3 8 0 5 3 3 6 9 8 8 7 9 5 6 5 1 3 7 2 8 5 5 9 3 8 8 3 4 9 9 8 9 4 7 0 7 4 1 6 1 8 1 5 5 0 1 2 5 3 9 7 0 6 4 6 4 8 1 7 1 9 4 6 7 0 8 3 4 8 1 9 7 2 1 4 4 8 8 8 9 8 7 9 0 6 7 6 5 0 3 7 9 5 9 0 3 6 6 9 6 7 2 4 9 4 9 9 2 5 4 5 2 7 9 0 3 3 7 2 9 6 3 6 1 6 2 6 5 8 9 7 6 0 3 9 4 9 8 5 7 6 7 4 1 3 9 7 3 5 9 4 4 1 0 2 3 7 4 4 3 2 9 7 0 9 3 5 5 4 7 7 9 8 2 6 2 9 6 1 4 5 9 1 4 4 2 9 3 6 4 5 1 4 2 8 6 1 7 1 5 8 5 8 7 3 3 9 7 4 6 7 9 1 8 9 7 5 7 1 2 1 1 9 5 6 1 8 7 3 8 5 7 8 3 6 4 4 7 5 8 4 4 8 4 2 3 5 5 5 5 8 1 0 5 0 0 2 5 6 1 1 4 9 2 3 9 1 5 1 8 8 9 3 0 9 9 4 6 3 4 2 8 4 1 3 9 3 6 0 8 0 3 8 3 0 9 1 6 6 2 8 1 8 8 1 1 5 0 3 7 1 5 2 8 4 9 6 7 0 5 9 7 4 1 6 2 5 6 2 8 2 3 6 0 9 2 1 6 8 0 7 5 1 5 0 1 7 7 7 2 5 3 8 7 4 0 2 5 6 4 2 5 3 4 7 0 8 7 9 0 8 9 1 3 7 2 9 1 7 2 2 8 2 8 6 1 1 5 1 5 9 1 5 6 8 3 7 2 5 2 4 1 6 3 0 7 7 2 2 5 4 4 0 6 3 3 7 8 7 5 9 3 1 0 5 9 8 2 6 7 6 0 9 4 4 2 0 3 2 6 1 9 2 4 2 8 5 3 1 7 0 1 8 7 8 1 7 7 2 9 6 0 2 3 5 4 1 3 0 6 0 6 7 2 1 3 6 0 4 6 0 0 0 3 8 9 6 6 1 0 9 3 6 4 7 0 9 5 1 4 1 4 1 7 1 8 5 7 7 7 0 1 4 1 8 0 6 0 6 4 4 3 6 3 6 8 1 5 4 6 4 4 4 0 0 5 3 3 1 6 0 8 7 7 8 3 1 4 3 1 7 4 4 4 0 8 1 1 9 4 9 4 2 2 9 7 5 5 9 9 3 1 4 0 1 1 8 8 8 6 8 3 3 1 4 8 3 2 8 0 2 7 0 6 5 5 3 8 3 3 0 0 4 6 9 3 2 9 0 1 1 5 7 4 4 1 4 7 5 6 3 1 3 9 9 9 7 2 2 1 7 0 3 8 0 4 6 1 7 0 9 2 8 9 4 5 7 9 0 9 6 2 7 1 6 6 2 2 6 0 7 4 0 7 1 8 7 4 9 9 7 5 3 5 9 2 1 2 7 5 6 0 8 4 4 1 4 7 3 7 8 2 3 3 0 3 2 7 0 3 3 0 1 6 8 2 3 7 1 9 3 6 4 8 0 0 2 1 7 3 2 8 5 7 3 4 9 3 5 9 4 7 5 6 4 3 3 4 1 2 9 9 4 3 0 2 4 8 5 0 2 3 5 7 3 2 2 1 4 5 9 7 8 4 3 2 8 2 6 4 1 4 2 1 6 8 4 8 7 8 7 2 1 6 7 3 3 6 7 0 1 0 6 1 5 0 9 4 2 4 3 4 5 6 9 8 4 4 0 1 8 7 3 3 1 2 8 1 0 1 0 7 9 4 5 1 2 7 2 2 3 7 3 7 8 8 6 1 2 6 0 5 8 1 6 5 6 6 8 0 5 3 7 1 4 3 9 6 1 2 7 8 8 8 7 3 2 5 2 7 3 7 3 8 9 0 3 9 2 8 9 0 5 0 6 8 6 5 3 2 4 1 3 8 0 6 2 7 9 6 0 2 5 9 3 0 3 8 7 7 2 7 6 9 7 7 8 3 7 9 2 8 6 8 4 0 9 3 2 5 3 6 5 8 8 0 7 3 3 9 8 8 4 5 7 2 1 8 7 4 6 0 2 1 0 0 5 3 1 1 4 8 3 3 5 1 3 2 3 8 5 0 0 4 7 8 2 7 1 6 9 3 7 6 2 1 8 0 0 4 9 0 4 7 9 5 5 9 7 9 5 9 2 9 0 5 9 1 6 5 5 4 7 0 5 0 5 7 7 7 5 1 4 3 0 8 1 7 5 1 1 2 6 9 8 9 8 5 1 8 8 4 0 8 7 1 8 5 6 4 0 2 6 0 3 5 3 0 5 5 8 3 7 3 7 8 3 2 4 2 2 9 2 4 1 8 5 6 2 5 6 4 4 2 5 5 0 2 2 6 7 2 1 5 5 9 8 0 2 7 4 0 1 2 6 1 7 9 7 1 9 2 8 0 4 7 1 3 9 6 0 0 6 8 9 1 6 3 8 2 8 6 6 5 2 7 7 0 0 9 7 5 2 7 6 7 0 6 9 7 7 7 0 3 6 4 3 9 2 6 0 2 2 4 3 7 2 8 4 1 8 4 0 8 8 3 2 5 1 8 4 8 7 7 0 4 7 2 6 3 8 4 4 0 3 7 9 5 3 0 1 6 6 9 0 5 4 6 5 9 3 7 4 6 1 6 1 9 3 2 3 8 4 0 3 6 3 8 9 3 1 3 1 3 6 4 3 2 7 1 3 7 6 8 8 8 4 1 0 2 6 8 1 1 2 1 9 8 9 1 2 7 5 2 2 3 0 5 6 2 5 6 7 5 6 2 5 4 7 0 1 7 2 5 0 8 6 3 4 9 7 6 5 3 6 7 2 8 8 6 0 5 9 6 6 7 5 2 7 4 0 8 6 8 6 2 7 4 0 7 9 1 2 8 5 6 5 7 6 9 9 6 3 1 3 7 8 9 7 5 3 0 3 4 6 6 0 6 1 6 6 6 9 8 0 4 2 1 8 2 6 7 7 2 4 5 6 0 5 3 0 6 6 0 7 7 3 8 9 9 6 2 4 2 1 8 3 4 0 8 5 9 8 8 2 0 7 1 8 6 4 6 8 2 6 2 3 2 1 5 0 8 0 2 8 8 2 8 6 3 5 9 7 4 6 8 3 9 6 5 4 3 5 8 8 5 6 6 8 5 5 0 3 7 7 3 1 3 1 2 9 6 5 8 7 9 7 5 8 1 0 5 0 1 2 1 4 9 1 6 2 0 7 6 5 6 7 6 9 9 5 0 6 5 9 7 1 5 3 4 4 7 6 3 4 7 0 3 2 0 8 5 3 2 1 5 6 0 3 6 7 4 8 2 8 6 0 8 3 7 8 6 5 6 8 0 3 0 7 3 0 6 2 6 5 7 6 3 3 4 6 9 7 7 4 2 9 5 6 3 4 6 4 3 7 1 6 7 0 9 3 9 7 1 9 3 0 6 0 8 7 6 9 6 3 4 9 5 3 2 8 8 4 6 8 3 3 6 1 3 0 3 8 8 2 9 4 3 1 0 4 0 8 0 0 2 9 6 8 7 3 8 6 9 1 1 7 0 6 6 6 6 6 1 4 6 8 0 0 0 1 5 1 2 1 1 4 3 4 4 2 2 5 6 0 2 3 8 7 4 4 7 4 3 2 5 2 5 0 7 6 9 3 8 7 0 7 7 7 7 5 1 9 3 2 9 9 9 4 2 1 3 7 2 7 7 2 1 1 2 5 8 8 4 3 6 0 8 7 1 5 8 3 4 8 3 5 6 2 6 9 6 1 6 6 1 9 8 0 5 7 2 5 2 6 6 1 2 2 0 6 7 9 7 5 4 0 6 2 1 0 6 2 0 8 0 6 4 9 8 8 2 9 1 8 4 5 4 3 9 5 3 0 1 5 2 9 9 8 2 0 9 2 5 0 3 0 0 5 4 9 8 2 5 7 0 4 3 3 9 0 5 5 3 5 7 0 1 6 8 6 5 3 1 2 0 5 2 6 4 9 5 6 1 4 8 5 7 2 4 9 2 5 7 3 8 6 2 0 6 9 1 7 4 0 3 6 9 5 2 1 3 5 3 3 7 3 2 5 3 1 6 6 6 3 4 5 4 6 6 5 8 8 5 9 7 2 8 6 6 5 9 4 5 1 1 3 6 4 4 1 3 7 0 3 3 1 3 9 3 6 7 2 1 1 8 5 6 9 5 5 3 9 5 2 1 0 8 4 5 8 4 0 7 2 4 4 3 2 3 8 3 5 5 8 6 0 6 3 1 0 6 8 0 6 9 6 4 9 2 4 8 5 1 2 3 2 6 3 2 6 9 9 5 1 4 6 0 3 5 9 6 0 3 7 2 9 7 2 5 3 1 9 8 3 6 8 4 2 3 3 6 3 9 0 4 6 3 2 1 3 6 7 1 0 1 1 6 1 9 2 8 2 1 7 1 1 1 5 0 2 8 2 8 0 1 6 0 4 4 8 8 0 5 8 8 0 2 3 8 2 0 3 1 9 8 1 4 9 3 0 9 6 3 6 9 5 9 6 7 3 5 8 3 2 7 4 2 0 2 4 9 8 8 2 4 5 6 8 4 9 4 1 2 7 3 8 6 0 5 6 6 4 9 1 3 5 2 5 2 6 7 0 6 0 4 6 2 3 4 4 5 0 5 4 9 2 2 7 5 8 1 1 5 1 7 0 9 3 1 4 9 2 1 8 7 9 5 9 2 7 1 8 0 0 1 9 4 0 9 6 8 8 6 6 9 8 6 8 3 7 0 3 7 3 0 2 2 0 0 4 7 5 3 1 4 3 3 8 1 8 1 0 9 2 7 0 8 0 3 0 0 1 7 2 0 5 9 3 5 5 3 0 5 2 0 7 0 0 7 0 6 0 7 2 2 3 3 9 9 9 4 6 3 9 9 0 5 7 1 3 1 1 5 8 7 0 9 9 6 3 5 7 7 7 3 5 9 0 2 7 1 9 6 2 8 5 0 6 1 1 4 6 5 1 4 8 3 7 5 2 6 2 0 9 5 6 5 3 4 6 7 1 3 2 9 0 0 2 5 9 9 4 3 9 7 6 6 3 1 1 4 5 4 5 9 0 2 6 8 5 8 9 8 9 7 9 1 1 5 8 3 7 0 9 3 4 1 9 3 7 0 4 4 1 1 5 5 1 2 1 9 2 0 1 1 7 1 6 4 8 8 0 5 6 6 9 4 5 9 3 8 1 3 1 1 8 3 8 4 3 7 6 5 6 2 0 6 2 7 8 4 6 3 1 0 4 9 0 3 4 6 2 9 3 9 5 0 0 2 9 4 5 8 3 4 1 1 6 4 8 2 4 1 1 4 9 6 9 7 5 8 3 2 6 0 1 1 8 0 0 7 3 1 6 9 9 4 3 7 3 9 3 5 0 6 9 6 6 2 9 5 7 1 2 4 1 0 2 7 3 2 3 9 1 3 8 7 4 1 7 5 4 9 2 3 0 7 1 8 6 2 4 5 4 5 4 3 2 2 2 0 3 9 5 5 2 7 3 5 2 9 5 2 4 0 2 4 5 9 0 3 8 0 5 7 4 4 5 0 2 8 9 2 2 4 6 8 8 6 2 8 5 3 3 6 5 4 2 2 1 3 8 1 5 7 2 2 1 3 1 1 6 3 2 8 8 1 1 2 0 5 2 1 4 6 4 8 9 8 0 5 1 8 0 0 9 2 0 2 4 7 1 9 3 9 1 7 1 0 5 5 5 3 9 0 1 1 3 9 4 3 3 1 6 6 8 1 5 1 5 8 2 8 8 4 3 6 8 7 6 0 6 9 6 1 1 0 2 5 0 5 1 7 1 0 0 7 3 9 2 7 6 2 3 8 5 5 5 3 3 8 6 2 7 2 5 5 3 5 3 8 8 3 0 9 6 0 6 7 1 6 4 4 6 6 2 3 7 0 9 2 2 6 4 6 8 0 9 6 7 1 2 5 4 0 6 1 8 6 9 5 0 2 1 4 3 1 7 6 2 1 1 6 6 8 1 4 0 0 9 7 5 9 5 2 8 1 4 9 3 9 0 7 2 2 2 6 0 1 1 1 2 6 8 1 1 5 3 1 0 8 3 8 7 3 1 7 6 1 7 3 2 3 2 3 5 2 6 3 6 0 5 8 3 8 1 7 3 1 5 1 0 3 4 5 9 5 7 3 6 5 3 8 2 2 3 5 3 4 9 9 2 9 3 5 8 2 2 8 3 6 8 5 1 0 0 7 8 1 0 8 8 4 6 3 4 3 4 9 9 8 3 5 1 8 4 0 4 4 5 1 7 0 4 2 7 0 1 8 9 3 8 1 9 9 4 2 4 3 4 1 0 0 9 0 5 7 5 3 7 6 2 5 7 7 6 7 5 7 1 1 1 8 0 9 0 0 8 8 1 6 4 1 8 3 3 1 9 2 0 1 9 6 2 6 2 3 4 1 6 2 8 8 1 6 6 5 2 1 3 7 4 7 1 7 3 2 5 4 7 7 7 2 7 7 8 3 4 8 8 7 7 4 3 6 6 5 1 8 8 2 8 7 5 2 1 5 6 6 8 5 7 1 9 5 0 6 3 7 1 9 3 6 5 6 5 3 9 0 3 8 9 4 4 9 3 6 6 4 2 1 7 6 4 0 0 3 1 2 1 5 2 7 8 7 0 2 2 2 3 6 6 4 6 3 6 3 5 7 5 5 5 0 3 5 6 5 5 7 6 9 4 8 8 8 6 5 4 9 5 0 0 2 7 0 8 5 3 9 2 3 6 1 7 1 0 5 5 0 2 1 3 1 1 4 7 4 1 3 7 4 4 1 0 6 1 3 4 4 4 5 5 4 4 1 9 2 1 0 1 3 3 6 1 7 2 9 9 6 2 8 5 6 9 4 8 9 9 1 9 3 3 6 9 1 8 4 7 2 9 4 7 8 5 8 0 7 2 9 1 5 6 0 8 8 5 1 0 3 9 6 7 8 1 9 5 9 4 2 9 8 3 3 1 8 6 4 8 0 7 5 6 0 8 3 6 7 9 5 5 1 4 9 6 6 3 6 4 4 8 9 6 5 5 9 2 9 4 8 1 8 7 8 5 1 7 8 4 0 3 8 7 7 3 3 2 6 2 4 7 0 5 1 9 4 5 0 5 0 4 1 9 8 4 7 7 4 2 0 1 4 1 8 3 9 4 7 7 3 1 2 0 2 8 1 5 8 8 6 8 4 5 7 0 7 2 9 0 5 4 4 0 5 7 5 1 0 6 0 1 2 8 5 2 5 8 0 5 6 5 9 4 7 0 3 0 4 6 8 3 6 3 4 4 5 9 2 6 5 2 5 5 2 1 3 7 0 0 8 0 6 8 7 5 2 0 0 9 5 9 3 4 5 3 6 0 7 3 1 6 2 2 6 1 1 8 7 2 8 1 7 3 9 2 8 0 7 4 6 2 3 0 9 4 6 8 5 3 6 7 8 2 3 1 0 6 0 9 7 9 2 1 5 9 9 3 6 0 0 1 9 9 4 6 2 3 7 9 9 3 4 3 4 2 1 0 6 8 7 8 1 3 4 9 7 3 4 6 9 5 9 2 4 6 4 6 9 7 5 2 5 0 6 2 4 6 9 5 8 6 1 6 9 0 9 1 7 8 5 7 3 9 7 6 5 9 5 1 9 9 3 9 2 9 9 3 9 9 5 5 6 7 5 4 2 7 1 4 6 5 4 9 1 0 4 5 6 8 6 0 7 0 2 0 9 9 0 1 2 6 0 6 8 1 8 7 0 4 9 8 4 1 7 8 0 7 9 1 7 3 9 2 4 0 7 1 9 4 5 9 9 6 3 2 3 0 6 0 2 5 4 7 0 7 9 0 1 7 7 4 5 2 7 5 1 3 1 8 6 8 0 9 9 8 2 2 8 4 7 3 0 8 6 0 7 6 6 5 3 6 8 6 6 8 5 5 5 1 6 4 6 7 7 0 2 9 1 1 3 3 6 8 2 7 5 6 3 1 0 7 2 2 3 3 4 6 7 2 6 1 1 3 7 0 5 4 9 0 7 9 5 3 6 5 8 3 4 5 3 8 6 3 7 1 9 6 2 3 5 8 5 6 3 1 2 6 1 8 3 8 7 1 5 6 7 7 4 1 1 8 7 3 8 5 2 7 7 2 2 9 2 2 5 9 4 7 4 3 3 7 3 7 8 5 6 9 5 5 3 8 4 5 6 2 4 6 8 0 1 0 1 3 9 0 5 7 2 7 8 7 1 0 1 6 5 1 2 9 6 6 6 3 6 7 6 4 4 5 1 8 7 2 4 6 5 6 5 3 7 3 0 4 0 2 4 4 3 6 8 4 1 4 0 8 1 4 4 8 8 7 3 2 9 5 7 8 4 7 3 4 8 4 9 0 0 0 3 0 1 9 4 7 7 8 8 8 0 2 0 4 6 0 3 2 4 6 6 0 8 4 2 8 7 5 3 5 1 8 4 8 3 6 4 9 5 9 1 9 5 0 8 2 8 8 8 3 2 3 2 0 6 5 2 2 1 2 8 1 0 4 1 9 0 4 4 8 0 4 7 2 4 7 9 4 9 2 9 1 3 4 2 2 8 4 9 5 1 9 7 0 0 2 2 6 0 1 3 1 0 4 3 0 0 6 2 4 1 0 7 1 7 9 7 1 5 0 2 7 9 3 4 3 3 2 6 3 4 0 7 9 9 5 9 6 0 5 3 1 4 4 6 0 5 3 2 3 0 4 8 8 5 2 8 9 7 2 9 1 7 6 5 9 8 7 6 0 1 6 6 6 7 8 1 1 9 3 7 9 3 2 3 7 2 4 5 3 8 5 7 2 0 9 6 0 7 5 8 2 2 7 7 1 7 8 4 8 3 3 6 1 6 1 3 5 8 2 6 1 2 8 9 6 2 2 6 1 1 8 1 2 9 4 5 5 9 2 7 4 6 2 7 6 7 1 3 7 7 9 4 4 8 7 5 8 6 7 5 3 6 5 7 5 4 4 8 6 1 4 0 7 6 1 1 9 3 1 1 2 5 9 5 8 5 1 2 6 5 5 7 5 9 7 3 4 5 7 3 0 1 5 3 3 3 6 4 2 6 3 0 7 6 7 9 8 5 4 4 3 3 8 5 7 6 1 7 1 5 3 3 3 4 6 2 3 2 5 2 7 0 5 7 2 0 0 5 3 0 3 9 8 8 2 8 9 4 9 9 0 3 4 2 5 9 5 6 6 2 3 2 9 7 5 7 8 2 4 8 8 7 3 5 0 2 9 2 5 9 1 6 6 8 2 5 8 9 4 4 5 6 8 9 4 6 5 5 9 9 2 6 5 8 4 5 4 7 6 2 6 9 4 5 2 8 7 8 0 5 1 6 5 0 1 7 2 0 6 7 4 7 8 5 4 1 7 8 8 7 9 8 2 2 7 6 8 0 6 5 3 6 6 5 0 6 4 1 9 1 0 9 7 3 4 3 4 5 2 8 8 7 8 3 3 8 6 2 1 7 2 6 1 5 6 2 6 9 5 8 2 6 5 4 4 7 8 2 0 5 6 7 2 9 8 7 7 5 6 4 2 6 3 2 5 3 2 1 5 9 4 2 9 4 4 1 8 0 3 9 9 4 3 2 1 7 0 0 0 0 9 0 5 4 2 6 5 0 7 6 3 0 9 5 5 8 8 4 6 5 8 9 5 1 7 1 7 0 9 1 4 7 6 0 7 4 3 7 1 3 6 8 9 3 3 1 9 4 6 9 0 9 0 9 8 1 9 0 4 5 0 1 2 9 0 3 0 7 0 9 9 5 6 6 2 2 6 6 2 0 3 0 3 1 8 2 6 4 9 3 6 5 7 3 3 6 9 8 4 1 9 5 5 5 7 7 6 9 6 3 7 8 7 6 2 4 9 1 8 8 5 2 8 6 5 6 8 6 6 0 7 6 0 0 5 6 6 0 2 5 6 0 5 4 4 5 7 1 1 3 3 7 2 8 6 8 4 0 2 0 5 5 7 4 4 1 6 0 3 0 8 3 7 0 5 2 3 1 2 2 4 2 5 8 7 2 2 3 4 3 8 8 5 4 1 2 3 1 7 9 4 8 1 3 8 8 5 5 0 0 7 5 6 8 9 3 8 1 1 2 4 9 3 5 3 8 6 3 1 8 6 3 5 2 8 7 0 8 3 7 9 9 8 4 5 6 9 2 6 1 9 9 8 1 7 9 4 5 2 3 3 6 4 0 8 7 4 2 9 5 9 1 1 8 0 7 4 7 4 5 3 4 1 9 5 5 1 4 2 0 3 5 1 7 2 6 1 8 4 2 0 0 8 4 5 5 0 9 1 7 0 8 4 5 6 8 2 3 6 8 2 0 0 8 9 7 7 3 9 4 5 5 8 4 2 6 7 9 2 1 4 2 7 3 4 7 7 5 6 0 8 7 9 6 4 4 2 7 9 2 0 2 7 0 8 3 1 2 1 5 0 1 5 6 4 0 6 3 4 1 3 4 1 6 1 7 1 6 6 4 4 8 0 6 9 8 1 5 4 8 3 7 6 4 4 9 1 5 7 3 9 0 0 1 2 1 2 1 7 0 4 1 5 4 7 8 7 2 5 9 1 9 9 8 9 4 3 8 2 5 3 6 4 9 5 0 5 1 4 7 7 1 3 7 9 3 9 9 1 4 7 2 0 5 2 1 9 5 2 9 0 7 9 3 9 6 1 3 7 6 2 1 1 0 7 2 3 8 4 9 4 2 9 0 6 1 6 3 5 7 6 0 4 5 9 6 2 3 1 2 5 3 5 0 6 0 6 8 5 3 7 6 5 1 4 2 3 1