public static Kind read(DataInputStream s) throws IOException {
public static Kind read(VersionedDataInputStream s) throws IOException {
        public static Kind read(DataInputStream s) throws IOException {            int key = s.readByte();            switch(key) {                case 1: return SINGLETON;                case 2: return PERCFLOW;                case 3: return PEROBJECT;                case 4: return FROMSUPER;            }            throw new BCException("weird kind " + key);        }