+static const int bmap[] = {
+ -1,
+ -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1,
+ 9, 25, 11, 8, -1, 7, -1, -1, 5, -1, 6, 12, 13, -1, 19, 16, 21, 20, -1, 21,
+};
+static const int imap[] = {
+ -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27,
+};
+static const int *umap = bmap;
+static int mapn = sizeof(bmap) / sizeof(*bmap);
+
+static int mappin(int num)
+{
+ if((num < 0) || (num >= mapn))
+ return(-1);
+ return(umap[num]);
+}
+