private boolean findSSSInstance() {
		if (sss == null) {
			ListIterator<Line> it = gct.getCodeLines().listIterator();
			ArrayList<Line> code = new ArrayList<Line>();
			ArrayList<Integer> skipCounts = new ArrayList<Integer>(3);
			int pointInSkeleton = 0;
			boolean keepLooking = true;
			while (it.hasNext() && keepLooking) {
				Line l = it.next();
				if (!l.startsWith(SKELETON[pointInSkeleton])) {
					pointInSkeleton = 0;
					code.clear();
				} else {
					code.add(l);
					if (pointInSkeleton == 13 || pointInSkeleton == 15 || pointInSkeleton == 16) {
						int skipCount = l.data[7] & 0xff;
						skipCounts.add(skipCount);
						int skipLines = (skipCount+7)/8;
						
						for (int j=0; j<skipLines; j++) {
							l = it.next();
							code.add(l);
						}
					}
					pointInSkeleton++;
					if (pointInSkeleton == SKELETON.length) {
						keepLooking = false;
						sss = new SSS(code, skipCounts);
						gct.recordDynamicCode(sss);
					}
				}
			}
		}
		return (sss != null);
	}