code: def extend_back(self, missing_dts):
          
          delta = len(missing_dts)
  
          if not delta:
              raise ValueError(
                  'missing_dts must be a non-empty index',
              )
  
          self._window += delta
  
          self._pos += delta
  
          self.date_buf = self.date_buf.copy()
          self.date_buf.resize(self.cap)
          self.date_buf = np.roll(self.date_buf, delta)
  
          old_vals = self.buffer.values
          shape = old_vals.shape
          nan_arr = np.empty((shape[0], delta, shape[2]))
          nan_arr.fill(np.nan)
  
          new_vals = np.column_stack(
              (nan_arr,
               old_vals,
               np.empty((shape[0], delta * (self.cap_multiple - 1), shape[2]))),
          )
  
          self.buffer = pd.Panel(
              data=new_vals,
              items=self.items,
              minor_axis=self.minor_axis,
              major_axis=np.arange(self.cap),
              dtype=self.dtype,
          )
  
          # Fill the delta with the dates we calculated.
          where = slice(self._start_index, self._start_index + delta)
          self.date_buf[where] = missing_dts
docs: Resizes the buffer to hold a new window with a new cap_multiple.
          If cap_multiple is None, then the old cap_multiple is used.