       ctx.translate(-wt / 2, +ht / 2)
       ctx.fillText(txt, 0, 0)
       ctx.restore()
-    # ILI over time
-    iVals = (i for i in [0...numWeeks])
-    iliVals = (@chartData[i].value for i in [0...numWeeks])
-    trace(iVals.map(i2x), iliVals.map(ili2y))
     # axes
     trace([0, numWeeks - 1].map(i2x), [0, 0].map(ili2y))
     trace([0, 0].map(i2x), [0, maxILI].map(ili2y))

        yr = ('00' + yr).slice(-2)
        wk = ('00' + wk).slice(-2)
        write("'#{yr}w#{wk}", x, h - 2 * padding.bottom / 3, -0.125)
    # title
    ctx.font = 24 * Math.min(1, w / 500) + 'px sans-serif'
    name = NAMES[@chartData[0].location]

      msg = "The Epidata API says '#{message}'. (error ##{result})"
      console.log(msg)
      alert.log(msg)

Epidata_fluview_single = (handler, location, epiweeks) ->
  if Epidata?.fluview?
    Epidata.fluview(handler, location, epiweeks)
  else
    fakeData = (getFakeRow(location, i) for i in [0...280])
    callback = () -> handler(1, 'debug', fakeData)
    delay = 250 + Math.round(Math.random() * 500)
    window.setTimeout(callback, delay)

Epidata_nowcast_single = (handler, location) ->
  if Epidata?.nowcast?
