the patch## Код:
```
PROCEDURE (rd: StdReader) ReadRun (OUT attr: Attributes);
      VAR t: StdModel; a0: Attributes; u, trailer: Run; pos: INTEGER;
   BEGIN
      t := rd.base;
      IF rd.era # t.era THEN Reset(rd) END;
      a0 := rd.attr; u := rd.run; pos := rd.pos - rd.off; trailer := t.trailer;
      WHILE (u.attr = a0) & ~(u IS ViewRef) & (u # trailer) DO
         INC(pos, u.len); u := u.next
      END;
      rd.run := u; rd.pos := pos; rd.off := 0;
      rd.Read;
      attr := rd.attr;
      IF (rd.view # NIL) THEN rd.attr :=NIL;END;
   END ReadRun;
```
use this test code## Код:
```
PROCEDURE TestHere* (IN what: ARRAY OF CHAR);
      VAR a: TextModels.Attributes; s: ARRAY 16 OF CHAR; p: DevCommanders.Par; fail: BOOLEAN;
         rd, rdr: TextModels.Reader; beg, end: INTEGER; ch: CHAR;
   BEGIN p := DevCommanders.par;
      IF p # NIL THEN rdr := p.text.NewReader(rdr); rd := p.text.NewReader(NIL); 
         beg := p.beg; rdr.SetPos(beg); fail := FALSE;
         REPEAT
            IF what = "BUG" THEN rdr.ReadRun(a)
            ELSIF what = "DOCU" THEN Docu(rdr, a)
            ELSIF what = "UNBUG" THEN ReadRun(rdr, a) 
            ELSE fail := TRUE 
            END; 
            IF what = "BUG" THEN 
            beg:=rdr.Pos()-1;Log.Int(beg);Log.Tab();
            END;
            end := rdr.Pos(); rd.SetPos(beg); 
            IF a # NIL THEN Log.Char('"'); 
               WHILE beg < end DO rd.ReadChar(ch); Log.Char(ch); INC(beg) END; Log.Char('"'); 
               GetColName(a.color, s); Log.String(s); Log.Ln; 
            END 
         UNTIL (rdr.Pos() >= p.end) OR rdr.eot OR fail;
         IF fail THEN Log.String("BUG or UNBUG or DOCU expected"); Log.Ln END
      END
   END TestHere;
```
