@Override
	public void populateVals()
	{
		byte[] temp1 = new byte[7];    // PtgRef3d is 7 bytes
		byte[] temp2 = new byte[7];
		// Encoded Cell Range Address:
		// 0-2= first row
		// 2-4= last row
		// 4-6= first col
		// 6-8= last col
		// Encoded Cell Address:
		// 0-2=	row index
		// 2-4= col index + relative flags
		try
		{
			temp1[0] = 0x3a;
			temp1[1] = record[1];    // ixti
			temp1[2] = record[2];    // ""
			temp1[3] = record[3];    // first row
			temp1[4] = record[4];    // ""
			temp1[5] = record[7];    // first col
			temp1[6] = record[8];    // ""

			temp2[0] = 0x3a;
			temp2[1] = record[1];        // ixti
			temp2[2] = record[2];        // ""
			temp2[3] = record[5];        // last row
			temp2[4] = record[6];        // ""
			temp2[5] = record[9];        // last col
			temp2[6] = record[10];        //	""
		}
		catch( Exception e )
		{
			//should never happen!
			return;
		}
		// pass in parent_rec so can properly set formulaRow/formulaCol
		firstPtg = new PtgRef3d( false );

		// the following method registers the Ptg with the ReferenceTracker
		firstPtg.setParentRec( parent_rec );
		firstPtg.setSheetName( getSheetName() );
		firstPtg.init( temp1 );

		lastPtg = new PtgRef3d( false );
		lastPtg.setParentRec( parent_rec );
		lastPtg.setSheetName( getLastSheetName() );
		lastPtg.init( temp2 );
		// flag if it's an external reference

		isExternalRef = (((PtgRef3d) firstPtg).isExternalLink() || ((PtgRef3d) lastPtg).isExternalLink());

		setWholeRowCol();

		// take 1st Ptg as sample for relative state
		fColRel = firstPtg.isColRel();
		fRwRel = firstPtg.isRowRel();
		//init sets formula row to 1st row for a shared formula; adjust here
		if( (parent_rec != null) && (parent_rec instanceof Shrfmla) )
		{
			lastPtg.formulaRow = ((Shrfmla) parent_rec).getLastRow();
			lastPtg.formulaCol = ((Shrfmla) parent_rec).getLastCol();
		}
		hashcode = super.getHashCode();
	}