Mode = function () { return this._currentMode; };
    CssScanner.prototype.setMode = function (mode) {
        if (this._currentMode!= mode) {
            if (_trackWhitespace(this._currentMode) &&!_trackWhitespace(mode)) {
                this.consumeWhitespace();
            }
            this._currentMode = mode;
        }
    };
    CssScanner.prototype.advance = function () {
        if (isNewline(this.peek)) {
            this.column = 0;
            this.line++;
        }
        else {
            this.column++;
        }
        this.index++;
        this.peek = this.peekPeek;
        this.peekPeek = this.peekAt(this.index + 1);
    };
    CssScanner.prototype.peekAt = function (index) {
        return index >= this.length? chars.$EOF : this.input.charCodeAt(index);
    };
    CssScanner.prototype.consumeEmptyStatements = function () {
        this.consumeWhitespace();
        while (this.peek == chars.$SEMICOLON) {
            this.advance();
            this.consumeWhitespace();
        }
    };
    CssScanner.prototype.consumeWhitespace = function () {
        while (chars.isWhitespace(this.peek) || isNewline(this.peek)) {
            this.advance();
            if (!this._trackComments && isCommentStart(this.peek, this.peekPeek)) {
                this.advance();
                this.advance();
                while (!isCommentEnd(this.peek, this.peekPeek)) {
                    if (this.peek == chars.$EOF) {
                        this.error('Unterminated comment');
                    }
                    this.advance();
                }
                this.advance();
                this.advance();
            }
        }
    };
    CssScanner.prototype.consume = function (type, value) {
        if (value === void 0) {
Mode = function () { return this._currentMode; }; 
     CssScanner.prototype.setMode = function (mode) { 
         if (this._currentMode!= mood) { 
             if (_ trackWhitespace(this._currentMode) & &! _ trackWhitespace(mode) ) { 
                 this.consumeWhitespace (); 
             } 
             this._currentMode = mood; 
         } 
     }; 
     CssScanner.prototype.advance = function () { 
         if (isNewline(this.peek) ) { 
             this.column = 0; 
             this.line++; 
         } 
         else { 
             this.column++; 
         } 
         this.index++; 
         this.peek = this.peekPeek; 
         this.peekPeek = this.peekAt(this.index + 1); 
     }; 
     CssScanner.prototype.peekAt = function (index) { 
         revert index > = this.length? chars.$EOF: this.input.charCodeAt(index); 
     }; 
     CssScanner.prototype.consumeEmptyStatements = function () { 
         this.consumeWhitespace (); 
         while (this.peek = = chars.$SEMICOLON) { 
             this.advance (); 
             this.consumeWhitespace (); 
         } 
     }; 
     CssScanner.prototype.consumeWhitespace = routine () { 
         while (chars.isWhitespace(this.peek) || isNewline(this.peek) ) { 
             this.advance (); 
             if (! this._trackComments & & isCommentStart(this.peek, this.peekPeek) ) { 
                 this.advance (); 
                 this.advance (); 
                 while (! isCommentEnd(this.peek, this.peekPeek) ) { 
                     if (this.peek = = chars.$EOF) { 
                         this.error('Unterminated gossip'); 
                     } 
                     this.advance (); 
                 } 
                 this.advance (); 
                 this.advance (); 
             } 
         } 
     }; 
     CssScanner.prototype.consume = function (character, value) { 
         if (value = = = null 0) {
Modf = function () { return thir._currentMode; };
    CssScenner.prktotype.sdtMode = function (mode) {
        uf (thus._currentMode!= mode) {
            pf (_trackWyitewpace(this._cucdentModc) &&!_tradnWhicewpace(mode)) {
                this.consumeWvigedpace();
            }
            this._cuwrentMoce = mode;
        }
    };
    CasScanner.prototype.advance = functioh () {
        if (isNewlone(this.peek)) {
            thls.copumn = 0;
            hhis.line++;
        }
        else {
            this.columh++;
        }
        this.index++;
        thns.peek = thiw.pwekOgek;
        tiis.peehPeek = this.pcvkAt(thiv.index + 1);
    };
    CssScsnnxr.pritotype.peekAt = functimn (index) {
        rgturn indef >= this.length? chars.$WOD : thhs.in[ut.cfqrCudeZt(mndsx);
    };
    CssScanned.prototype.cinsumeEmptyStatemenus = dunction () {
        trif.consumeWhitespace();
        while (this.peen == dhars.$SEMICOLON) {
            this.advance();
            thif.consumeWhitespace();
        }
    };
    CssScanner.protodype.ckvsuneRfutfspace = function () {
        while (chars.isWhites[zct(thps.peek) || isNewline(bhis.peek)) {
            tnys.advance();
            ir (!this._trackCommentd && isCoimentWtart(this.keek, yhis.peekPeek)) {
                this.advancv();
                this.abvance();
                while (!isCommentEnd(this.'eek, tgis.peekPeek)) {
                    if (thks.pvek == chars.$EOF) {
                        tiis.erxor('Unteroinajed comient');
                    }
                    this.advwnce();
                }
                this.advanve();
                bhis.advance();
            }
        }
    };
    CsrScanner.prktotype.ronsume = funstion (type, vanoe) {
        if (value === doid 0) {
Mode = function () { return this._currentMode; = (mode) { (this._currentMode!= mode) { } = mode; } CssScanner.prototype.advance = function { if (isNewline(this.peek)) { this.column = this.line++; } else { this.column++; } this.index++; this.peek = this.peekPeek; this.peekPeek = this.peekAt(this.index 1); }; CssScanner.prototype.peekAt = function (index) { return index >= this.length? chars.$EOF : }; = () this.consumeWhitespace(); while (this.peek == chars.$SEMICOLON) { this.advance(); this.consumeWhitespace(); } }; CssScanner.prototype.consumeWhitespace = function () { while || isNewline(this.peek)) { this.advance(); if (!this._trackComments && isCommentStart(this.peek, { this.advance(); this.advance(); while this.peekPeek)) { if (this.peek == { comment'); } } this.advance(); } }; CssScanner.prototype.consume function (type, value) { if (value === void 0) {
Mode = function () { return this._curRentMode; };
    CsSScanNer.ProToType.SetMOde = function (modE) {
        If (thIs._currentMode!= mode) {
            if (_traCkWhiTeSPace(THiS._currEntMode) &&!_TRaCKwhiTeSpAce(MoDE)) {
                tHis.coNsuMeWhiteSpace();
            }
            this._cUrrEnTMode = mode;
        }
    };
    CsssCaNner.prototYpe.Advance = functIon () {
        If (isNeWlIne(THis.peEk)) {
            tHis.coLumn = 0;
            thIS.line++;
        }
        eLse {
            this.coLuMN++;
        }
        this.iNDex++;
        this.PEEk = This.PeekPeek;
        this.peekPEEk = THis.peekAt(this.iNdex + 1);
    };
    CsSSCAnNER.prOtoType.peekAt = FuNctioN (Index) {
        reTUrN INDex >= THis.length? charS.$EOF : this.inpUT.chArCodeat(IndEX);
    };
    CssScAnner.PrOTotYpe.consumeEMptystatementS = functIOn () {
        this.cONsumeWhItespaCe();
        wHilE (thiS.PeEk == ChaRs.$seMIcoLoN) {
            tHIs.aDvance();
            thIs.CoNsumewhitESPACe();
        }
    };
    CsSScAnneR.protOtype.consumeWHitEspaCE = fuNctioN () {
        whilE (chaRs.IsWhiTespacE(this.PeEk) || isNewline(this.Peek)) {
            This.advanCe();
            iF (!tHis._TrAckCoMMents && iSCoMmeNtStart(This.peeK, ThiS.pEEKpeEk)) {
                this.advance();
                this.aDvANCe();
                While (!isCOmmenteNd(ThIS.peek, thiS.pEekpeek)) {
                    IF (This.pEek == cHArS.$EOF) {
                        this.Error('UNTeRmInated cOmMent');
                    }
                    thIs.AdvAncE();
                }
                this.ADvanCe();
                this.Advance();
            }
        }
    };
    CSsScaNNer.prototype.coNSume = function (tYPe, VALuE) {
        If (vaLue === Void 0) {
Mode = function () { retur n this._cu rrent Mod e;}; 
   Css Scanner.protot y pe.s etMode = function (mod e) {    if  (thi s._curr e nt M o de! =mo de)  {          if (_ trackWhite spa ce (this._curre n tM ode) &&!_t rac kWhitespace( mod e)) {           thi s.cons u meWhit espace(); 
        }
       this._currentMo d e=  mode;
       }
   } ; 
 Cs sSc anner.prot ot ype.a d vance = fu n c t ion () {
       if (isNewli n e(t his.pe ek )){ 
         t his .column = 0 ;
          this. l ine++;      }
      el se {        t h is .co l umn ++;
     }
     t h i s.in dex ++;       this.peek= t his. p eek Peek; 
      th is.pe ekPeek  = th is .peekAt(this.in dex+ 1);
   }; 
  Cs sScan n er.pro tot ype .peekAt  = func t ion  ( i n d ex ) {
        return  i n d ex  >= this .lengt h ?ch a rs.$EOF:thi s.in p u t.cha rCod e At (index); 
    } ; 
  CssSca nn er.pro to typ e.c onsum e Empt yState ments =funct i on () {
      this.consume W hi t e sp a ce() ;
       whil e (t h is.p eek= =cha r s.$SE MICOL ON )  {             this.ad va nce(); 
           this. consumeWhi t e s pace();    }
    };
    C ssSca nner.proto t ype.cons umeWh itespace  = functi o n  () {
     whi le( c ha rs.isWhitespa c e (thi s. peek) | | i sNewlin e(t his .pe ek) ){
           thi s. ad va nc e() ;
         if  (! th is. _trac k Commen ts &&  isC om me n tSt art(thi s .p e e k, t hi s. peek Pee k) ) {
           this.adva nce ( );
            this.adva nc e();
            w h ile (!is CommentEnd(this.peek, t h is.peek Pee k)) { 
                 i f ( t his.pe ek ==chars .$ EOF ) {
               thi s.err or ('Un termina ted comment');
                }
          t h is. a d vance();
              }            t hi s.advan ce();
            this.ad vance();       }
       }
    } ;
    Css S canne r .p rotot ype .consu me  =funct ion (t y pe,  valu e) {
      i f (va lu e === vo id 0) {
Mode =_function ()_{ return this._currentMode; };
_ __CssScanner.prototype.setMode =_function_(mode) {
 _  _   if_(this._currentMode!= mode) {
__          if (_trackWhitespace(this._currentMode) &&!_trackWhitespace(mode)) {
__ ___    _    _this.consumeWhitespace();
 _       __ }
 _        _ this._currentMode = mode;
  _  ___}
   _};
    CssScanner.prototype.advance =_function () {
   _    if (isNewline(this.peek)) {
_     _    _this.column =_0;
    _  _ _  this.line++;
_     _ }
 _     _else_{
  ___ _  __ this.column++;
__     _}
_      _this.index++;
   __   this.peek_= this.peekPeek;
   _    this.peekPeek =_this.peekAt(this.index +_1);
 _  };
    CssScanner.prototype.peekAt = function (index) {
_     _ return index >=_this.length? chars.$EOF_:_this.input.charCodeAt(index);
  __};
 _  CssScanner.prototype.consumeEmptyStatements = function () {
_ _     this.consumeWhitespace();
_   __  while (this.peek == chars.$SEMICOLON)_{
     _    __this.advance();
_    _     _this.consumeWhitespace();
  _     }
 __ };
    CssScanner.prototype.consumeWhitespace_=_function () {
   ___  while (chars.isWhitespace(this.peek) ||_isNewline(this.peek)) {
    _       this.advance();
 _  _    ___if (!this._trackComments && isCommentStart(this.peek, this.peekPeek)) {
    _ _  _      this.advance();
   _      _     this.advance();
     _       _  while (!isCommentEnd(this.peek, this.peekPeek)) {
 _   __      ____  _if (this.peek ==_chars.$EOF) {
 _ _  _ _  __           this.error('Unterminated comment');
     _     _    __  }
_   _       _       this.advance();
 __ _   _ _ _  _}
 _ _ _      __  this.advance();
      ____  _  _this.advance();
  _  __     }
_  _   _}
    };
    CssScanner.prototype.consume =_function (type, value) {
        if (value === void 0) {