code: function TbsStoreGet($idx, $caller) {
  		$this->LastReadNotStored = false;
  		if ($idx===$this->TbsCurrIdx) {
  			return $this->TBS->Source;
  		} elseif (isset($this->TbsStoreLst[$idx])) {
  			$txt = $this->TbsStoreLst[$idx]['src'];
  			if ($caller===false) $this->TbsStoreLst[$idx]['src'] = ''; // save memory space
  			return $txt;
  		} else {
  			$this->LastReadNotStored = true;
  			$txt = $this->FileRead($idx, true);
  			if ($this->LastReadComp>0) {
  				if ($caller===false) {
  					return $txt; // return the uncompressed contents
  				} else {
  					return $this->RaiseError("(".$caller.") unable to uncompress '".$this->TbsGetFileName($idx)."'.");
  				}
  			} else {
  				return $txt;
  			}
  		}
  	}
docs: Return a source from the current merging, the store, or the archive.
  Take care that if the source it taken from the archive, then it is not saved in the store.
  @param {integer} $idx The index of the file to read.
  @param {string|false} $caller A text describing the calling function, for error reporting purpose. If caller=false it means TbsStoreLoad().