/// <summary>Must be called for a nonempty array or object at start():</summary> protected internal virtual int findDataOffset() { int fsm = ObjectArrayUtil.getFirstSubMap(this.head ()); int offset; if (fsm <= 2 && this.vpack[this.start + 2] != 0) { offset = 2; } else { if (fsm <= 3 && this.vpack[this.start + 3] != 0) { offset = 3; } else { if (fsm <= 5 && this.vpack[this.start + 6] != 0) { offset = 5; } else { offset = 9; } } } return(offset); }