     console.log "####   #{i}. #{normalizedRle part}"
     #now analyze this part
     res = analyzeFragment rule, part, time
-    console.log "####        #{JSON.stringify res}"
 
     
 

  while true
    phase = mod2 time
    sub_rule_idx = mod time, vacuum_period
    curPattern = evaluateCellList stable_rules[sub_rule_idx], curPattern, phase
    time += 1
    if mod(time, vacuum_period) is 0
      break unless callback curPattern, time
  return

class Library

    #wait for the cycle  
    result = {cycle: false}
    patternEvolution rule, pattern, time, (curPattern, t) ->
      dt = t-time
      if dt is 0 then return true
      Cells.sortXY curPattern
      eq = Cells.shiftEqual pattern, curPattern, mod2 dt
      if eq
        result.cycle = true
