function $AdfFireBugLogWriter$$($parentWindow$$5$$, $backupLogWriter$$11$$) {
  $AdfAssert$$.assert(window.console && window.console.firebug, "Firebug not installed");
  $AdfFireBugLogWriter$$.$_originalAssertionFailed$ = $AdfAssert$$.$assertionFailed$;
  $AdfAssert$$.$assertionFailed$ = $AdfFireBugLogWriter$$.$_assertionHook$;
  this.Init($parentWindow$$5$$, $backupLogWriter$$11$$);
}
$goog$exportSymbol$$("AdfFireBugLogWriter", $AdfFireBugLogWriter$$);
$AdfObject$$.$createSubclass$($AdfFireBugLogWriter$$, $AdfLogWriter$$);
$AdfFireBugLogWriter$$.prototype.Init = function $$AdfFireBugLogWriter$$$$Init$($parentWindow$$6$$, $backupLogWriter$$12$$) {
  $AdfFireBugLogWriter$$.$superclass$.Init.call(this, $parentWindow$$6$$, $backupLogWriter$$12$$);
  this.$_errorLogWriter$ = $AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$ ? new $AdfConsoleLogWriter$$($parentWindow$$6$$, $backupLogWriter$$12$$) : null;
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.Init", {Init:$AdfFireBugLogWriter$$.prototype.Init});
$AdfFireBugLogWriter$$.prototype.$PublishImpl$ = function $$AdfFireBugLogWriter$$$$$PublishImpl$$($logRecord$$14_when$$10$$) {
  this.$CheckIfClosed$();
  $AdfAssert$$.assert($logRecord$$14_when$$10$$, "null logRecord");
  var $errorLogWriter_firebugConsole$$ = this.$_errorLogWriter$, $error$$14$$ = $logRecord$$14_when$$10$$[$AdfLogRecord$$.$ERROR_FIELD$];
  if ($error$$14$$ && $errorLogWriter_firebugConsole$$) {
    $errorLogWriter_firebugConsole$$.$publish$($logRecord$$14_when$$10$$);
  } else {
    var $errorLogWriter_firebugConsole$$ = window.console, $logFunc$$1_severity$$9$$ = $logRecord$$14_when$$10$$[$AdfLogRecord$$.$LEVEL_FIELD$], $logFunc$$1_severity$$9$$ = $logFunc$$1_severity$$9$$ >= $AdfLogger$$.SEVERE ? $errorLogWriter_firebugConsole$$.error : $logFunc$$1_severity$$9$$ >= $AdfLogger$$.WARNING ? $errorLogWriter_firebugConsole$$.warn : $logFunc$$1_severity$$9$$ >= $AdfLogger$$.INFO ? $errorLogWriter_firebugConsole$$.info : $errorLogWriter_firebugConsole$$.debug, $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$;
    $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$ = $logRecord$$14_when$$10$$[$AdfLogRecord$$.$MESSAGE_FIELD$];
    if (null == $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$) {
      $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$ = null;
    } else {
      if ($AdfAssert$$.$assertString$($formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$), !(100 >= $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$.length)) {
        $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$ = $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$.split("\n");
        for (var $outTextArray$$inline_460$$ = [], $inTextCount$$inline_461$$ = $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$.length, $inTextIndex$$inline_462$$ = 0;$inTextIndex$$inline_462$$ < $inTextCount$$inline_461$$;$inTextIndex$$inline_462$$++) {
          var $textStart$$inline_463$$ = 0, $inText$$inline_464$$ = $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$[$inTextIndex$$inline_462$$], $inTextLength$$inline_465$$ = $inText$$inline_464$$.length;
          if (100 > $inTextLength$$inline_465$$) {
            $outTextArray$$inline_460$$.push($inText$$inline_464$$);
          } else {
            for (;$textStart$$inline_463$$ < $inTextLength$$inline_465$$;) {
              var $endIndex$$inline_466_skip$$inline_469$$ = $textStart$$inline_463$$ + 100, $spaceIndex$$inline_467$$ = $inText$$inline_464$$.lastIndexOf(" ", $endIndex$$inline_466_skip$$inline_469$$), $tabIndex$$inline_468$$ = $inText$$inline_464$$.lastIndexOf("\t", $endIndex$$inline_466_skip$$inline_469$$);
              $tabIndex$$inline_468$$ > $spaceIndex$$inline_467$$ && ($spaceIndex$$inline_467$$ = $tabIndex$$inline_468$$);
              $spaceIndex$$inline_467$$ < $textStart$$inline_463$$ ? ($spaceIndex$$inline_467$$ = $endIndex$$inline_466_skip$$inline_469$$, $endIndex$$inline_466_skip$$inline_469$$ = 0) : $endIndex$$inline_466_skip$$inline_469$$ = 1;
              $outTextArray$$inline_460$$.push("\t" + $inText$$inline_464$$.substring($textStart$$inline_463$$, $spaceIndex$$inline_467$$));
              $textStart$$inline_463$$ = $spaceIndex$$inline_467$$ + $endIndex$$inline_466_skip$$inline_469$$;
            }
          }
        }
        $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$ = $outTextArray$$inline_460$$.join("\n");
      }
    }
    $logRecord$$14_when$$10$$ = $logRecord$$14_when$$10$$[$AdfLogRecord$$.$WHEN_FIELD$];
    $error$$14$$ ? $logFunc$$1_severity$$9$$.call($errorLogWriter_firebugConsole$$, "Message:%s\nError:%o\nWhen:%o", $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$, $error$$14$$, $logRecord$$14_when$$10$$) : $logFunc$$1_severity$$9$$.call($errorLogWriter_firebugConsole$$, "Message:%s\nWhen:%o", $formattedMessage$$1_inTextArray$$inline_459_theText$$inline_458$$, $logRecord$$14_when$$10$$);
  }
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.PublishImpl", {$PublishImpl$:$AdfFireBugLogWriter$$.prototype.$PublishImpl$});
$AdfFireBugLogWriter$$.prototype.flush = function $$AdfFireBugLogWriter$$$$flush$() {
  $AdfFireBugLogWriter$$.$superclass$.flush.call(this);
  var $errorLogWriter$$1$$ = this.$_errorLogWriter$;
  $errorLogWriter$$1$$ && $errorLogWriter$$1$$.flush();
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.flush", {flush:$AdfFireBugLogWriter$$.prototype.flush});
$AdfFireBugLogWriter$$.prototype.close = function $$AdfFireBugLogWriter$$$$close$() {
  $AdfFireBugLogWriter$$.$superclass$.close.call(this);
  var $errorLogWriter$$2$$ = this.$_errorLogWriter$;
  $errorLogWriter$$2$$ && $errorLogWriter$$2$$.close();
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.close", {close:$AdfFireBugLogWriter$$.prototype.close});
$AdfFireBugLogWriter$$.$_assertionHook$ = function $$AdfFireBugLogWriter$$$$_assertionHook$$($message$$51$$, $skipLevel$$3$$, $reason$$10$$) {
  var $theConsole$$1$$ = window.console;
  if ($theConsole$$1$$) {
    var $format$$12$$ = "Assertion %sfailed ", $params$$13$$ = [null, null == $message$$51$$ ? "" : $message$$51$$ + " "];
    null != $reason$$10$$ && ($format$$12$$ += " because %s ", $params$$13$$[2] = $reason$$10$$);
    $params$$13$$[0] = $format$$12$$ + "at:";
    $theConsole$$1$$.group.apply($theConsole$$1$$, $params$$13$$);
    $theConsole$$1$$.trace();
    $theConsole$$1$$.groupEnd();
  }
  $AdfFireBugLogWriter$$.$_originalAssertionFailed$($message$$51$$, $skipLevel$$3$$ + 1, $reason$$10$$);
};
$AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$ = !0;
$goog$exportSymbol$$("AdfFireBugLogWriter.WRITE_ERRORS_TO_CONSOLE", $AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$);
