[Pkg-mozext-commits] [firebug] 05/09: Imported Upstream version 2.0.16

David Prévot taffit at moszumanska.debian.org
Sat Apr 2 01:40:38 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository firebug.

commit 5fd42179d13b9291ab2f9ca5190aefc8dd004357
Merge: 8741367 edf44cd
Author: David Prévot <david at tilapin.org>
Date:   Fri Apr 1 21:19:13 2016 -0400

    Imported Upstream version 2.0.16

 META-INF/manifest.mf                      |  29 +++++++++++--------
 META-INF/mozilla.rsa                      | Bin 4188 -> 4188 bytes
 META-INF/mozilla.sf                       |   4 +--
 content/firebug/branch.properties         |   2 +-
 content/firebug/firefox/browserOverlay.js |  11 ++-----
 content/firebug/lib/channel.js            |  46 ++++++++++++++++++++++++++++++
 content/firebug/lib/http.js               |  14 +++------
 content/firebug/net/sourceCache.js        |  16 +++--------
 content/firebug/net/tabCache.js           |  13 +++------
 install.rdf                               |   6 ++--
 10 files changed, 84 insertions(+), 57 deletions(-)

diff --cc META-INF/manifest.mf
index 4e39f9f,0000000..4dbc8f6
mode 100644,000000..100644
--- a/META-INF/manifest.mf
+++ b/META-INF/manifest.mf
@@@ -1,3157 -1,0 +1,3162 @@@
 +Manifest-Version: 1.0
 +
 +Name: install.rdf
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: G592m92RITOyHEIJt/5QDw==
- SHA1-Digest: eYxW8uq/kChYUBGA/X+xy8IQicw=
++MD5-Digest: xRusy5pQyUvlRY7HRawzBw==
++SHA1-Digest: 7YjIi1dfIfXUgjAcGqdfYBGuGGg=
 +
 +Name: chrome.manifest
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: bdcjVC3MPhyaQDhDfbOh6A==
 +SHA1-Digest: e884HHfJg++1lsgHg/Z+FvYLM+4=
 +
 +Name: bootstrap.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: w/4lqvFkLBAM88mkSlAfPQ==
 +SHA1-Digest: 2VyPyLcNKkp4rqIg4cZf9bL5ciM=
 +
 +Name: build.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hDscyxUedUWHS3CPE6/fwQ==
 +SHA1-Digest: ySlbVIfMcV5XlSvqEME00GAoxNM=
 +
 +Name: content/firebug/branch.properties
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: AlrMPMU4aBLHq3yahFreWw==
- SHA1-Digest: Yn6359RQQYn9c5aN1sSRm01Wg3g=
++MD5-Digest: nh94sscGsIbPe9TJ0zwimQ==
++SHA1-Digest: J8XBAa297u8g5uw3ERPXCwDEavs=
 +
 +Name: content/firebug/firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MQUAuUtQ+N0RP9BdiVLeRQ==
 +SHA1-Digest: XpMkLp1UY+6GThNZu2cEOmskL2M=
 +
 +Name: content/firebug/firebug.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: r/QjQ/uJlspfQL2GQcMeiQ==
 +SHA1-Digest: pSKqp41rol4yvvXI2WLvbzhifeA=
 +
 +Name: content/firebug/firebugOverlay.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yz4K2TFMmJplsYA8cAlzFQ==
 +SHA1-Digest: A1xja27+mGZOBe79eZLU5ZjFjaY=
 +
 +Name: content/firebug/legacy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cyOW1DFRc3Va8V/ZkdfMdA==
 +SHA1-Digest: XHSukn6s2dd3wD3Mj4MZp09VGpQ=
 +
 +Name: content/firebug/main.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6jr/9rY8z+Xxeq+IxwrFTQ==
 +SHA1-Digest: 81D8MZQ81fOkzqCrMuuOIieUguI=
 +
 +Name: content/firebug/moduleConfig.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fpoL0QD2LRX4oG+r3w20Vg==
 +SHA1-Digest: TedHD9/Ksyia66k9R9fPNqHTVrE=
 +
 +Name: content/firebug/trace.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kBBL0ffN+Iqbins4CIb+GA==
 +SHA1-Digest: gz7eAP1oeWQsIWCAIyz4RZO1rJo=
 +
 +Name: content/firebug/accessible/a11y.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1GMHJA6cYhlEnJFDBg0STA==
 +SHA1-Digest: 1foz3CTUzwqK51J4qVFymaYx0Nk=
 +
 +Name: content/firebug/bti/inProcess/browser.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2Mj/QRZaqswkbQj1JUaQyA==
 +SHA1-Digest: vtk0WnWyDr7NQ++0vvkXRtZkyWM=
 +
 +Name: content/firebug/bti/inProcess/compilationunit.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: F3Qp980L5CrTY/+kEyWyCA==
 +SHA1-Digest: JYzQg5NrV7t7XrccSZUJetB9GlU=
 +
 +Name: content/firebug/bti/inProcess/javascripttool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MLLmOIMMPK8mirXlkC/Brg==
 +SHA1-Digest: 9GhR0RfQ8kmcvFpAiv5Qt9UpGUs=
 +
 +Name: content/firebug/bti/inProcess/webApp.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZmFYBvLYXa5tdiHyddkz/g==
 +SHA1-Digest: HFS7yQCI/Uvv9I1xDTG3zf6Rgbc=
 +
 +Name: content/firebug/chrome/activableModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pPl+YUw1q6hsMj/1hSigLg==
 +SHA1-Digest: igfoscZz+jeC3MCsmFDzSxv0DZQ=
 +
 +Name: content/firebug/chrome/activablePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: o5t7i1P2w3fjXtj8VphGgA==
 +SHA1-Digest: CEPlzQfBTYEuELdxkB8+xT6Y0cM=
 +
 +Name: content/firebug/chrome/activation.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LjftwhVIyEw3r3xKyBq2CA==
 +SHA1-Digest: FOzQ1heSaTLORKD/GXh7QPeqqpA=
 +
 +Name: content/firebug/chrome/annotations.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Efni1TVUHpCuKEizqEkH4A==
 +SHA1-Digest: J19yiDaLSC92GDLzgzR4RUBBIj4=
 +
 +Name: content/firebug/chrome/balloonNote.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: HcbPGUB96cOiodIRoN+SFg==
 +SHA1-Digest: SudHI+wA+KO+beL7GLI2XXv/Pt8=
 +
 +Name: content/firebug/chrome/chrome.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5sCnpBRt9vXcB6jAXno3yg==
 +SHA1-Digest: rFqv0piYpfyX9To/aB5474ptKnM=
 +
 +Name: content/firebug/chrome/domTree.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6eRbKGi/8KpRijTc9x2g7g==
 +SHA1-Digest: OrQN54zVTFJpfefxY0f8364k+7s=
 +
 +Name: content/firebug/chrome/eventSource.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZXjDxxpoC0N0RGtBWYib3w==
 +SHA1-Digest: 8qWnSghi0XJxRzEalownN0DedZU=
 +
 +Name: content/firebug/chrome/firefox.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: t8otGbiNLZ3GsXjKOIKvFg==
 +SHA1-Digest: r+qp46W0Q6nOUiv4Kv6mATffG7o=
 +
 +Name: content/firebug/chrome/infotip.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fq2D+/BM72RCBxjX34XpsA==
 +SHA1-Digest: w8iUQ1+akBSCuQ4Byf6V3E76pP4=
 +
 +Name: content/firebug/chrome/knownIssues.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vSjjxd2airNqOr1mRo135w==
 +SHA1-Digest: RRk++e99zZnNzIddzbaUZvBgMRc=
 +
 +Name: content/firebug/chrome/measureBox.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3iONxHzwPF+rt9eCV+bWIQ==
 +SHA1-Digest: I3LWwk/gE8JydAKKv5HWrOVUOXU=
 +
 +Name: content/firebug/chrome/menu.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VT4M9ru0umaWrGpzCgcLMA==
 +SHA1-Digest: bN7wZkVCQV1IeNZ/ehb3Ixi496U=
 +
 +Name: content/firebug/chrome/module.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3k6GA4mkrc3KWoenNLbpuA==
 +SHA1-Digest: YgbpguJWvC3+W2ToC2DRVAJ4vxg=
 +
 +Name: content/firebug/chrome/navigationHistory.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: agIx3H91FeiO20ZnmBwFcQ==
 +SHA1-Digest: mvCgwBOHvzBQKft5SdqWlU3HQ/s=
 +
 +Name: content/firebug/chrome/panel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9QszMBUbPM5H5IlnN7jg5A==
 +SHA1-Digest: 8fScKnmdFOdNMw4u6NrpYoYlEBU=
 +
 +Name: content/firebug/chrome/panelActivation.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8dTdQykizF7/+CzEMAXYoQ==
 +SHA1-Digest: uyyj5Ol5ScO5ukWlen3YsTmiQeI=
 +
 +Name: content/firebug/chrome/panelNotification.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: O+cTZGGqslrssWg4OtIo6g==
 +SHA1-Digest: SyPlj/V7BJdMtX2TNuhC+k6Otfs=
 +
 +Name: content/firebug/chrome/panelSelector.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mIqlVDOyOKNY6z7QRjdFgQ==
 +SHA1-Digest: b/Kpg3gYKlzwaA02peeCJlTZHyo=
 +
 +Name: content/firebug/chrome/plugin.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GuRDXNnJO9WBgccPkRqZTg==
 +SHA1-Digest: T3xNIfbpmG228xLM3jDsgkhqdSc=
 +
 +Name: content/firebug/chrome/privacy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kwR5G8zLWs7lZku0TFfMJQ==
 +SHA1-Digest: dUVDhmIlJTpUMm6uNlb6ycVcKwI=
 +
 +Name: content/firebug/chrome/rep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: T5px3PEYhlQv/7U08Wf0SA==
 +SHA1-Digest: 2x6Ktpqn/KUxjVpL1toO5LImRDs=
 +
 +Name: content/firebug/chrome/reps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SEKAZPSSH/+j6FM81o5JwA==
 +SHA1-Digest: 4+LYpBp5wbM6/hxQQX9eqtDUWUw=
 +
 +Name: content/firebug/chrome/searchBox.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: o5RaYdFLsNxz7b8RIWCdYQ==
 +SHA1-Digest: Yqe1to6z7thN3853hhSkhyIt04s=
 +
 +Name: content/firebug/chrome/shortcuts.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ek8Kw0O0VNudh99qvr8zlg==
 +SHA1-Digest: ZIlylR2MHsOPIrSbeeoG7g1GhRo=
 +
 +Name: content/firebug/chrome/statusPath.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ifiEwstyrFR7gi+ls82VEg==
 +SHA1-Digest: AxswfvZhrU5iFcbTzPZ74tnIwn8=
 +
 +Name: content/firebug/chrome/tabContext.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: CQqjQCFDhREXxNxz6zTHug==
 +SHA1-Digest: p7ecfjvXu8hZmdsP9ttRf+/5bUE=
 +
 +Name: content/firebug/chrome/tableRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MHRGhpp/XZqSR+H7NCfmbA==
 +SHA1-Digest: W7iK3khdHR8vYO556yrKtuxp9fM=
 +
 +Name: content/firebug/chrome/tabWatcher.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: HDl82NHua+zHRgt5+msErg==
 +SHA1-Digest: vZGmak2HlK7LlAkmS16rwQgpzK4=
 +
 +Name: content/firebug/chrome/toggleSidePanels.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ES6bpjFN5EpKjzkRFN7aug==
 +SHA1-Digest: 6GZuQMN+Zk1gHCwaNS2HxHKpe0o=
 +
 +Name: content/firebug/chrome/tool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: NhqAqLh5lYrCFsrWa9rp7g==
 +SHA1-Digest: 2Gju+OjFTys6z7jpK9UUsTG7Png=
 +
 +Name: content/firebug/chrome/toolbar.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lfNbMHYniXPjgNlOfMLJJg==
 +SHA1-Digest: t7xjHuJmHYwYf8FppaLoHvz6A90=
 +
 +Name: content/firebug/chrome/window.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dLuj7T0wPUhwaRKcK1wf5A==
 +SHA1-Digest: LB2PZ6J2DZyXQ/SC8rMqBO8IEKQ=
 +
 +Name: content/firebug/console/autoCompleter.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mMxxyaTrR6iefZSIBE4mpQ==
 +SHA1-Digest: hfrpBfgI8gF65jFM/BRaVAat9FA=
 +
 +Name: content/firebug/console/closureInspector.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: FcLSdH54BABNk0+LZfSjMg==
 +SHA1-Digest: DGbwFkIo0BoJGKJiTLjeBK2z438=
 +
 +Name: content/firebug/console/commandEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qUMZrYah8SrHnHY3Pbo4fg==
 +SHA1-Digest: +g3HoqMwzPgLGHyatWArhlAw4ss=
 +
 +Name: content/firebug/console/commandHistory.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: FfnqJsgQ3rftXr+QEd8Aog==
 +SHA1-Digest: T8XS6RXU7uLWYpiOmgEgvDCBNsk=
 +
 +Name: content/firebug/console/commandLine.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4v5EME+X1YUkbVwPUqQDJQ==
 +SHA1-Digest: DT6Me54v0Qn1mQ+Zoamfzgxoovs=
 +
 +Name: content/firebug/console/commandLineAPI.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4UADeSvsxDSEN4cmTtOOiA==
 +SHA1-Digest: 3fpcB05PTrUniKyofollHAA+v8A=
 +
 +Name: content/firebug/console/commandLineExposed.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vAU58xiSWbyu/scBWXRhRA==
 +SHA1-Digest: FP+P85XiqQymQOlkoCYBIukcCaA=
 +
 +Name: content/firebug/console/commandLinePopup.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: THhlFARwA0dU4bUhGVgVIA==
 +SHA1-Digest: I8ChsVIM1lUf6lFPpMStBAG3IJc=
 +
 +Name: content/firebug/console/console.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5v7uFz05eVHHXqdyYlCayA==
 +SHA1-Digest: wsKDx1BYOkgPTp/a5xzPHIe0Kto=
 +
 +Name: content/firebug/console/consoleBase.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XxKBPyceMrD1abacIfuk4g==
 +SHA1-Digest: 0CvgbEzchC2nbYyi/mw5J8Ttef0=
 +
 +Name: content/firebug/console/consoleExposed.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: M2rY8Uj2Eun8SCK0mqplLA==
 +SHA1-Digest: JW/fNJRpWKT94PO2rVIoUKQMKVU=
 +
 +Name: content/firebug/console/consoleInjector.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: frUTZEcGBBUUSwfjgmdrAg==
 +SHA1-Digest: D+4Nla0el6vLT1nBGXA3MdOc7HI=
 +
 +Name: content/firebug/console/consolePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 14OzKPcN4BwDpsBrIBl88Q==
 +SHA1-Digest: C/URVuUwCszOj1XW8t0BYb+l5kA=
 +
 +Name: content/firebug/console/errorCopy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: g0WHqyRu2a81fLLcf5DyTA==
 +SHA1-Digest: fluPTGkAR7Hn6ickgTpvOMnhCE8=
 +
 +Name: content/firebug/console/errorMessageObj.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Gcxuew98nvIrgnyzx0VyYg==
 +SHA1-Digest: qEpB5j+yBZh4K0U72PXhCImzM9o=
 +
 +Name: content/firebug/console/errorMessageRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hZnrZDxEY06V7oCyHof8HQ==
 +SHA1-Digest: yO6hKCZE0Zte30Ud9wwCn2F861Y=
 +
 +Name: content/firebug/console/errors.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dJ07bvcSFJvbztrl2nHl/w==
 +SHA1-Digest: 2TWxBLQZMQZcg5bcfswlhvY+ZaA=
 +
 +Name: content/firebug/console/errorStackTraceObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9Gc+sw4GDe/0csVBE9bAiA==
 +SHA1-Digest: IjzDWM8EJ9Cqkgp13Gtir3UqaMY=
 +
 +Name: content/firebug/console/exceptionRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SaDu1rIDzYX1NPPSattqrw==
 +SHA1-Digest: 3uWxFRXfNOzOBQ5oq0yZ+kUgu6U=
 +
 +Name: content/firebug/console/functionMonitor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: g8k+3oGn1m1vNkaf3LYH+A==
 +SHA1-Digest: KEnJ/TxBEK6zzDtq+RVOk3WZ5Pg=
 +
 +Name: content/firebug/console/inlineJSEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LA4+dyhBn/1o6elTJ63YoQ==
 +SHA1-Digest: sAh6B99EBXBbNWZ+pj+XoaIijaI=
 +
 +Name: content/firebug/console/performanceTiming.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: biGPATlsVgese6+d6hHaVQ==
 +SHA1-Digest: HfqCrdF0Ycicw1yNxoCAPAYLGjk=
 +
 +Name: content/firebug/console/profilerEngine.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: NqiwkaKuuzp3eVLeRo5PiA==
 +SHA1-Digest: lMabs7scnoztr7fwcb2lbDPYaOw=
 +
 +Name: content/firebug/console/toggleCommandEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mMIEa3vAWoiPoclM6mf83g==
 +SHA1-Digest: sg7CVWpI6r7JdwiEB06MGpAZC/o=
 +
 +Name: content/firebug/console/commands/commandLineHelp.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SwZ0+hc695auKqMh0FysCg==
 +SHA1-Digest: paEmsvg2cXflb20+/HyfInnBBvs=
 +
 +Name: content/firebug/console/commands/commandLineInclude.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ydr+icJ2WiRle5EMY7AQvg==
 +SHA1-Digest: FBEgBlDxvO9zPi/Pfu9C6l4blmc=
 +
 +Name: content/firebug/console/commands/eventMonitor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rDb6YTD84YMsmVF+/DEmsw==
 +SHA1-Digest: sCMVWQudiNxv4C5VFrdycsE9KE0=
 +
 +Name: content/firebug/console/commands/getEventListeners.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0/U6g6gXTm3YuysZcVRObw==
 +SHA1-Digest: gVEX4SGMvFF4N15H4gT/UZN5y3Q=
 +
 +Name: content/firebug/console/commands/lastCommandLineResult.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mAOGyFU3c6EYJHrD78MHzg==
 +SHA1-Digest: Yew6aNCC30yNb2HpSy9jcClld94=
 +
 +Name: content/firebug/console/commands/profiler.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: a5KgtDOa/jzRXUKHnQXvZQ==
 +SHA1-Digest: fHzxH/mXOQIRsnLybKn7I13QKzA=
 +
 +Name: content/firebug/console/commands/useInCommandLine.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: AJrh6rv2jTUJrloWgyuClA==
 +SHA1-Digest: e0RquhNhq72Mfz1ylBAXEg2FSkE=
 +
 +Name: content/firebug/cookies/baseObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2gR0Ly27h0/9akTEZo576A==
 +SHA1-Digest: rj3GoVWziv/RxoBVHix733NpRJc=
 +
 +Name: content/firebug/cookies/breakpoints.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qgGzOP9Rv1hYkEz27WtG+w==
 +SHA1-Digest: GpYZr4Uv6p30jV6kaNADMyCnsNI=
 +
 +Name: content/firebug/cookies/cookie.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JG7T4oGdstrRUTwRygHsWQ==
 +SHA1-Digest: nCdHpYBrrR4ITdN/8LsLRDEeT4U=
 +
 +Name: content/firebug/cookies/cookieClipboard.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GICei1DzjUfnDYdZNwWKyg==
 +SHA1-Digest: 8MDIJekCsEYnR0KbV6as7JzLuWU=
 +
 +Name: content/firebug/cookies/cookieEvents.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Ksu7L13yLxJny7Uqsio8Vw==
 +SHA1-Digest: LCXdLfvMoptd3Oftycv5vcoqSvI=
 +
 +Name: content/firebug/cookies/cookieModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: a3hZ2YLHwFprClhWYOCNTA==
 +SHA1-Digest: P+LLPyPSQwE2wwF8nOkule1k67g=
 +
 +Name: content/firebug/cookies/cookieObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: tD/okH6S5j8Efv/Ic9I4cA==
 +SHA1-Digest: ir+/CRPVnKJBRHBUvFYrAk7ridY=
 +
 +Name: content/firebug/cookies/cookiePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qLMHtssSiEhBhKeko1WlBg==
 +SHA1-Digest: KSmZGNwjglfIKCSaZDPf+QAlWD8=
 +
 +Name: content/firebug/cookies/cookiePanel.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6fRG9WEJaUF9dZiURWKwrw==
 +SHA1-Digest: woYy8y+XMb+d5Gns0AYwb41swEg=
 +
 +Name: content/firebug/cookies/cookiePermissions.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: PD6yz53Byismd3TFnfTolw==
 +SHA1-Digest: jzr3GORI4I3wdy6q0Pa4YDbZ0aI=
 +
 +Name: content/firebug/cookies/cookieReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: H5bX/taDSaRIWHnjvdALxA==
 +SHA1-Digest: /BR9D0/UyyzspSZFr2BxC/MVD00=
 +
 +Name: content/firebug/cookies/cookies.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 543ZGbnpZKrGG2eOM61w9A==
 +SHA1-Digest: V9vJEg6iHn+wQOxleELu3B+z27o=
 +
 +Name: content/firebug/cookies/cookieUtils.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LQhPY8Ripb2DfTB36rWkIw==
 +SHA1-Digest: ajy1ZNBPU1oHJpn81BOU1KvYuj4=
 +
 +Name: content/firebug/cookies/dateTimePicker.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1onma4s13lMt3dX9zqE6sg==
 +SHA1-Digest: 6pZw26RXutE+OLZkPjrVMVVqcac=
 +
 +Name: content/firebug/cookies/editCookie.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fxlZVS+v/qP8jsOsm1yl1Q==
 +SHA1-Digest: 63IdJtVfGdFMUBceGk0nkZJrTPY=
 +
 +Name: content/firebug/cookies/editCookie.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dxBCq+5RfuExjNaid2K4pA==
 +SHA1-Digest: tYObghcYWWa/bP/tIW4/e8DawV4=
 +
 +Name: content/firebug/cookies/editCookie.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9EPHPzT8/DetOLEsi22Qnw==
 +SHA1-Digest: lCWX2Q8iNrNiQCGkz+LXtKqhpus=
 +
 +Name: content/firebug/cookies/headerResizer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TZ6K9/C8MOIIlA0Q4qrDrA==
 +SHA1-Digest: mmYYES9ZyjEEG6OiliAZ6wivonU=
 +
 +Name: content/firebug/cookies/httpObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zNMTjNzMkpEg33BkYQ2dGw==
 +SHA1-Digest: 2ox3XVKDP3SEw9obWXfX9I8aru0=
 +
 +Name: content/firebug/cookies/legacy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: l67sr/87QYikaDOvuMvBUg==
 +SHA1-Digest: UAIyncRorgrWWylVu1wOhFOO1G0=
 +
 +Name: content/firebug/cookies/menuUtils.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rwb0RSH9acr504vMAc7rCg==
 +SHA1-Digest: zW/sdqG9qpZhytGkTgHDjai/Zp4=
 +
 +Name: content/firebug/cookies/popupFilterPanel.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JU/ejY09fhZ4wz7cu+obVg==
 +SHA1-Digest: 9PCqgo81sMl26Fwxg0SZg/0lKLE=
 +
 +Name: content/firebug/css/autoCompleter.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vb55QChxkhxluPkhyFJmHg==
 +SHA1-Digest: hdHQc4eqIVezaZpFZesIdYNeHgE=
 +
 +Name: content/firebug/css/computedPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nLdeScK9hayrLYZwYKAuLg==
 +SHA1-Digest: 0rFd95THTnBLExRCqt2leJkrRRI=
 +
 +Name: content/firebug/css/cssDirtyListener.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vuUygix3nyVIu+QB0/LNMg==
 +SHA1-Digest: uQUCmMo2kE2dc6UC9tXQUqxAQps=
 +
 +Name: content/firebug/css/cssEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hB37Fv1MZG3tINES0cQrlA==
 +SHA1-Digest: obBM3fZ+zId3tCENnHDSSTCtQvg=
 +
 +Name: content/firebug/css/cssModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: I/l0OHKw+DSHfidPkV8stQ==
 +SHA1-Digest: 5CHP4k0+gJXGW06o9KsG0TVm5Xg=
 +
 +Name: content/firebug/css/cssPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: IaImERV/rdRvfCPrrlyJXQ==
 +SHA1-Digest: QBjIzzw8T3OQ+z977hK3ZIH93Sk=
 +
 +Name: content/firebug/css/cssPanelMutationObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: W5VS3gBcz5dm83UZHJ76yg==
 +SHA1-Digest: LNPkq9tECH+niKe+T+u9XfhmdSo=
 +
 +Name: content/firebug/css/cssPanelUpdater.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qYDETXFkKb/VowtgxKRsng==
 +SHA1-Digest: PL+OALjH6xy0rZspVr22YHLs8vs=
 +
 +Name: content/firebug/css/cssReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 13rf6zFQWtQL7t/9VgDzVQ==
 +SHA1-Digest: ACep+cO4NaJcqcG60RRUci7Nu2o=
 +
 +Name: content/firebug/css/cssRuleEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: NmqX1kDYBWdHl2quTyrr5g==
 +SHA1-Digest: Jj8GOK1+BWm9/7JF4iG7ctQB9F4=
 +
 +Name: content/firebug/css/loadHandler.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BAB3tcdDd5Er/KjXgCXT2A==
 +SHA1-Digest: s4JgGBh6uAx3kWSxxoOdoI1VOOY=
 +
 +Name: content/firebug/css/selectorEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: r33k8QUa7oaQGgthQm/8DQ==
 +SHA1-Digest: vDtX2qYo+bdJnI58GkzdYAbCTPI=
 +
 +Name: content/firebug/css/selectorModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Hfa1pdkd/PlTXSv7NwxCIA==
 +SHA1-Digest: oL6YU/o+656ZsKbJZcZiakUWaCo=
 +
 +Name: content/firebug/css/selectorPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: s3ZFQA/dO/6OxXtm7uJlFw==
 +SHA1-Digest: wxujNtvezemNpBlvIzbgu1b57+I=
 +
 +Name: content/firebug/css/stylePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uCsxnMnBrYKYKNsG7OE8tQ==
 +SHA1-Digest: ydCShYfVFVc6KWgfY7dc17BPc0E=
 +
 +Name: content/firebug/css/styleSheetEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: x5uhY3UV2bsC7GuSVYSzMg==
 +SHA1-Digest: 1pfwNsHPo2X9hyrrPNsWTMO+HvE=
 +
 +Name: content/firebug/debugger/commands.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BpbzwOCK3IrAX1xtBNbVvw==
 +SHA1-Digest: fZKfvVqi2xCUMOJrutz/F3LhCwE=
 +
 +Name: content/firebug/debugger/debugger.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: B68XNsaRMMyY6bJZopN/6g==
 +SHA1-Digest: LfYUpkt4zEllFxrfu5mpcViftmE=
 +
 +Name: content/firebug/debugger/debuggerHalter.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Ese0ZF+LwcrD5oPFaEeI7w==
 +SHA1-Digest: aTwFVb418R3Od08obFsBqqEdASQ=
 +
 +Name: content/firebug/debugger/debuggerLib.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gs1IH+6MMHld9RGUYmbkCA==
 +SHA1-Digest: wxJgdWxw7IMstbe10xJqxCTuBvc=
 +
 +Name: content/firebug/debugger/debuggerTool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iRSK02MKBEEHIsOJE+WFoQ==
 +SHA1-Digest: xv2NQao537zbs1Sar35quFJk9vE=
 +
 +Name: content/firebug/debugger/main.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZkL6JXdxDL15dNs8hRrwGg==
 +SHA1-Digest: D7F9vqSGEFsthSgq9ji0xgKd+xI=
 +
 +Name: content/firebug/debugger/rdp.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5Eo+KqpBRsT7yECOgA8rqQ==
 +SHA1-Digest: ac4gIaBPSX8BPLz3qK3FYuC2xmg=
 +
 +Name: content/firebug/debugger/actors/breakpointActor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xzIRFdVR7OFoMxTMzYGOpA==
 +SHA1-Digest: 8tzbIyvHI3SgOpQBpgxVhHo6jHQ=
 +
 +Name: content/firebug/debugger/actors/elementActor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: UC3qb9vBea8V3fOfxhYMwQ==
 +SHA1-Digest: iBVZcVeYo1pG223ZTfkp/LqjUFc=
 +
 +Name: content/firebug/debugger/actors/objectActor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: RgHhHGW7UFNkBOfvjCYg2w==
 +SHA1-Digest: I+sE6SrQG+opbz1nOT+1+loBXtU=
 +
 +Name: content/firebug/debugger/actors/threadActor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: jAdle0p0+3xRG3vEYeRpVw==
 +SHA1-Digest: 9xfoZU1B1x7lo5hQgmHdiv5qjSM=
 +
 +Name: content/firebug/debugger/breakpoints/breakOnError.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dvm7+x4eh09Hej20OxfqFw==
 +SHA1-Digest: xl8Ax81xREdxyLeWz0agGKrN+Rk=
 +
 +Name: content/firebug/debugger/breakpoints/breakOnNext.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qhLxckaVC35yUrnX086g4Q==
 +SHA1-Digest: vkYB/9VRfgxJq1Gps/E8aYSNMIM=
 +
 +Name: content/firebug/debugger/breakpoints/breakpoint.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: C7VZ7xWR5c23wilBH54ueA==
 +SHA1-Digest: PYBtI2Xhyrf344eYkAiN1SsU7b8=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointConditionEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Atob6ArNYcoyLYAmbqz6Tg==
 +SHA1-Digest: te3dSb/0sEXwvX47O5V2hUNkSmk=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointGroup.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qBVLaEBaEehMrhX12R84ng==
 +SHA1-Digest: iBu2sV9x4QFl/R4VbRPmYnVGEkg=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xciGCDmlAPXQAT83+FZg4A==
 +SHA1-Digest: 1P2BFTXUF6VU0umZa5OKdQ2uoJk=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rEj4gJeVrq6W0x4eBWWdkA==
 +SHA1-Digest: j46RCOQTPVLh34EnjT5Jf50SDvU=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4z/EW8/P9QY1VYJm+hEOqg==
 +SHA1-Digest: W2XMapUC854NCRrJ+8ekhLNy0dg=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointStore.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oXm06sh2KKabSnJkxRi9kA==
 +SHA1-Digest: dU2cY5Bg+3pLdLlj53uvIQXFmHY=
 +
 +Name: content/firebug/debugger/breakpoints/breakpointTool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EQFPiQEISolcAJBDWK7y3w==
 +SHA1-Digest: yapMtTnwaP+H3DVVjEeAx77NM4s=
 +
 +Name: content/firebug/debugger/breakpoints/debuggerKeyword.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: AsIKvH9VqG+75zxB2ITXWA==
 +SHA1-Digest: RKYyzLFNJOMOU/LPhCWN/l+95cw=
 +
 +Name: content/firebug/debugger/clients/clientCache.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6E4WtACirBpdoTfkAtOXpA==
 +SHA1-Digest: IdiK+r8sQPvmYdLRyUXHC7BefeQ=
 +
 +Name: content/firebug/debugger/clients/clientFactory.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lBJmxuh4pa/5QgftS+3Sdw==
 +SHA1-Digest: Utn4Y1ZfEhQp7vUtNc/ejkwZrSQ=
 +
 +Name: content/firebug/debugger/clients/clientProvider.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kzyUSM2BZKLd39aFYLNXig==
 +SHA1-Digest: +PPPJFkeXoH/qvBAD5xjq946hZE=
 +
 +Name: content/firebug/debugger/clients/functionClient.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nlHGRLhmaCxvFZJu9V4jew==
 +SHA1-Digest: rwvgFveb/vfYKzuVXB/QxfqBZRU=
 +
 +Name: content/firebug/debugger/clients/grip.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SYRsgZA1Nc5md+gQOiS4Gw==
 +SHA1-Digest: FZoRuBGCVtoJRJxY1TWCpgpJEdY=
 +
 +Name: content/firebug/debugger/clients/objectClient.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lKHGplOJPk3kbX6q/uCHkQ==
 +SHA1-Digest: zxkPhh9/Cu5rRF3GNd2D3G1ole8=
 +
 +Name: content/firebug/debugger/clients/remoteNodeListRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Rz++YU1yXL7jKtfONJQFgg==
 +SHA1-Digest: PagbMO4RohjvYjQWV6DHysBT/cw=
 +
 +Name: content/firebug/debugger/clients/scopeClient.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VDrV1lWAkpRy4J0v783AlQ==
 +SHA1-Digest: m3UKAsvfZAqqEbPE/XsOFtaYTpc=
 +
 +Name: content/firebug/debugger/script/breakNotification.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rSOUGI+uGetl0yRIg4IWdA==
 +SHA1-Digest: HGrMkQc/Nru6fgUnp6u2sZIUPNY=
 +
 +Name: content/firebug/debugger/script/scriptPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zXbgk5FnQFymm0voARHfMA==
 +SHA1-Digest: idYuzjc4VJEt8qmijXuM9hGeIOs=
 +
 +Name: content/firebug/debugger/script/scriptPanelLineUpdater.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dEAl+tAYGRqsxYjoJzTDrg==
 +SHA1-Digest: k0yA0C9m6cuNKB7VBunhSHmcK58=
 +
 +Name: content/firebug/debugger/script/scriptPanelWarning.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lZRnLCtNxPtU9djYpOccww==
 +SHA1-Digest: XfyIRXZl48o20FeO3m+yWsaLq7Q=
 +
 +Name: content/firebug/debugger/script/scriptView.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oTyw2ihoNhoO5QcDhN1h2w==
 +SHA1-Digest: VLCLtsjriQ8nJf1346x6JtGqEEg=
 +
 +Name: content/firebug/debugger/script/sourceFile.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rM/295lviCm8bbHgPjDWqw==
 +SHA1-Digest: hAF1bezPSvz4sPj5P60D6xMBJXs=
 +
 +Name: content/firebug/debugger/script/sourceLink.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Jn13Cud2wHZlFWAjwnekvQ==
 +SHA1-Digest: rMa08mqqTj8n8hu8GkjGSwMneJ4=
 +
 +Name: content/firebug/debugger/script/sourceTool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: DCzKAzSP377r5Kg0E0qc3w==
 +SHA1-Digest: NcOMcr5H+lcIQYJYZZ08LPEIevQ=
 +
 +Name: content/firebug/debugger/stack/callstackPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: C1BDO1cXcEyA7GikqXYB4Q==
 +SHA1-Digest: t3CRf/SfrARRF4vJiddQd2Ix6Rg=
 +
 +Name: content/firebug/debugger/stack/stackFrame.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GY0P8WT6u+pZwrEOOhG+qg==
 +SHA1-Digest: 5Z7HhzjNFO3CmmHw7Wh5RTT+MbY=
 +
 +Name: content/firebug/debugger/stack/stackFrameRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: HrrOAWnrMjBQPNueuqNrvA==
 +SHA1-Digest: 2LQH1RqZJxmDi9ajxaXwL1PIBuw=
 +
 +Name: content/firebug/debugger/stack/stackTrace.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Z65z/sFW9J7u4D2UaWKgNQ==
 +SHA1-Digest: xWzycxH7Ox/Eqnmyba9ArCHiW5Y=
 +
 +Name: content/firebug/debugger/stack/stackTraceRep.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nhLaFy4B6o7eOPKxNiLymQ==
 +SHA1-Digest: K0t583qqzGbm7Xwzkz+079tIG3o=
 +
 +Name: content/firebug/debugger/watch/returnValueModifier.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Fr5q+4wkizDFHCVqUBYnpg==
 +SHA1-Digest: HOUvT71P3DNFvNGWyDjDi0otSes=
 +
 +Name: content/firebug/debugger/watch/watchEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fTSaHKG3MgA+8tdz8Tasew==
 +SHA1-Digest: yljn9nE6JOmuxl2pRZky2rDZPAE=
 +
 +Name: content/firebug/debugger/watch/watchExpression.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +Z7z4mFj7V97ZHTELafzTw==
 +SHA1-Digest: e9kinvB6pK3JxZ+S5xN+MFrjSXg=
 +
 +Name: content/firebug/debugger/watch/watchPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: X9O95wmwTnMUez34R15Kpg==
 +SHA1-Digest: quJloGQu1kFcastRUN/kEio8qzU=
 +
 +Name: content/firebug/debugger/watch/watchProvider.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ne6LbLAymTXQncmxH2Oa1Q==
 +SHA1-Digest: vAOW5mAi2ZisfS2NBEog71dlC80=
 +
 +Name: content/firebug/debugger/watch/watchTree.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: O7EWZhFPVN3377bwHN+ojg==
 +SHA1-Digest: jCoIVtLAyR1ghMf59811jdxkm4w=
 +
 +Name: content/firebug/dom/domBasePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: x6FQ6nq0GgLgEp72e82NTQ==
 +SHA1-Digest: gaHR6+F8j3D/CLpXIXk8FBfSVno=
 +
 +Name: content/firebug/dom/domBaseTree.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: D2EjShIa1aCvL1EmQfjDiA==
 +SHA1-Digest: PWLgplHLwNSwg476hzZo95KQ+90=
 +
 +Name: content/firebug/dom/domBreakpoint.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nZYEzfMO1zwK0vmKZT4ZfQ==
 +SHA1-Digest: eBX+0rkcR01Mcxf9OOkqSuiwBcI=
 +
 +Name: content/firebug/dom/domBreakpointGroup.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: z5bbR29HP/dKGVY/obX4Bg==
 +SHA1-Digest: OErD0Bg+Mp2ktllPt+cLEvlPvgc=
 +
 +Name: content/firebug/dom/domEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pRs2Bx9wwOe6GFGtQ2djHg==
 +SHA1-Digest: xdSuDoTd93jOi/bcSWMhO3GvmkY=
 +
 +Name: content/firebug/dom/domMemberProvider.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ehf3uZ3AlnEbqbgQuppTyA==
 +SHA1-Digest: 1MzJNans/rjAK1LQGLWxW3fS8qM=
 +
 +Name: content/firebug/dom/domModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oZ5peQN/6Vcc/QX+FcmRxQ==
 +SHA1-Digest: PPH6EL40bhtPpZrKtNqkxJtWCy0=
 +
 +Name: content/firebug/dom/domPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kUnbAZqTyIqlQx0zmKb4HA==
 +SHA1-Digest: QtgIzAdO3G8xJNyjaI4+Oz9Lmsc=
 +
 +Name: content/firebug/dom/domPanelTree.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xq9KnuQBkkagi5Lsa+UZ0Q==
 +SHA1-Digest: f+9TwR/uSn+MDESY+Ubqcg/3NhQ=
 +
 +Name: content/firebug/dom/domProvider.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1qXcP/WdZoTLuTQm1ptBAA==
 +SHA1-Digest: M07KoUrIyXPBAUd1679op9nijVc=
 +
 +Name: content/firebug/dom/domReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Fx4vPCzHRlrSHOmO3i1dDg==
 +SHA1-Digest: Uk8Ll7aa9yJoIqP1JcPSJB+M1Xc=
 +
 +Name: content/firebug/dom/domSidePanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: i+TgkA4Po937UrPxorUeFw==
 +SHA1-Digest: XoGAqSGqmf0Z9kSUweGWwFsSHdA=
 +
 +Name: content/firebug/dom/toggleBranch.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mvQLKNHQ4oLZ8CPwZFEMxQ==
 +SHA1-Digest: jPzuKD53u/9WehQ1F6QqxKctkVE=
 +
 +Name: content/firebug/editor/baseEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: UxspthyOUJ/m+/7S7vRaqg==
 +SHA1-Digest: Ik1hPhNk1KgFa+pOE34+uo/L1rA=
 +
 +Name: content/firebug/editor/editor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7etXJ1h1t/gQ0+k8T2jPoQ==
 +SHA1-Digest: 7l350fx3Uhl/AcVK63MsQk4N1ME=
 +
 +Name: content/firebug/editor/editorSelector.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hwpDAtw9sWqJVb+IvW9Ubg==
 +SHA1-Digest: nctZkWyJgsp9NbrwyJq/82zjjxw=
 +
 +Name: content/firebug/editor/inlineEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: H1YfTVawgOxKmbtweoFPuw==
 +SHA1-Digest: ijchCMpayd+FofZN0WrTtFZl8Ik=
 +
 +Name: content/firebug/editor/sourceEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: D7bKxzUhRVr6YJsEgkQ4ZQ==
 +SHA1-Digest: d0MPJQoe4RxD5s4WCixjfCUlG9w=
 +
 +Name: content/firebug/editor/sourceSearch.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cKr/wHqshBl69SFWawXJxw==
 +SHA1-Digest: DQekC6BTACMJcy0ssGXRm9QpC8g=
 +
 +Name: content/firebug/editor/codemirror/codemirror.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gE628u3RvPz2TQ0w+QktTQ==
 +SHA1-Digest: /EQRXrMmLt+H+ILqQY65wjUu7to=
 +
 +Name: content/firebug/editor/codemirror/html-hint-data.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: odBNcZCF06BhhxxA1eaQjg==
 +SHA1-Digest: 9lM+A53rIncXimO0nIRu/cPJ5KA=
 +
 +Name: content/firebug/editor/codemirror/LICENSE.txt
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 26MnU3xeMstQWSa7bZZ79Q==
 +SHA1-Digest: oRTQUnAg/oiUesqa11pQdx0UR1Q=
 +
 +Name: content/firebug/editor/codemirror/addon/show-hint.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: e2XAU2v0DQw9ItnipzoZOg==
 +SHA1-Digest: ZiufavWq7bWri4v6OCeCMxsHOdk=
 +
 +Name: content/firebug/editor/codemirror/addon/search/searchcursor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: S+8jlGS3qdFl2/C9BJQzdg==
 +SHA1-Digest: ZIVIOilyPUhjM889FcMT2dF5BwQ=
 +
 +Name: content/firebug/editor/codemirror/mode/css.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Liokkw3lQVGtx//C9khlkA==
 +SHA1-Digest: U+/6jKwx2ndy+RhFzOkqBOqgMwA=
 +
 +Name: content/firebug/editor/codemirror/mode/htmlmixed.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YV9kUeuaYXWFz2s/Pp55yQ==
 +SHA1-Digest: 2fhuYOBy4uInUEfV1YBesaQoR8U=
 +
 +Name: content/firebug/editor/codemirror/mode/javascript.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: REarX0obfKLah6jIKjP42Q==
 +SHA1-Digest: NN8HToKK0k8YEj42R0oNau11eeg=
 +
 +Name: content/firebug/editor/codemirror/mode/xml.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2hjcO4QSnd3nB4rIJttDig==
 +SHA1-Digest: pNY5b4VJAVnrTWKV4U41Mq/ZMWw=
 +
 +Name: content/firebug/firebugui/blank.gif
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mT/Cyl/sFEhojbwyvrX3oQ==
 +SHA1-Digest: z6C4LpYW5bemhNyExp0cVFO/164=
 +
 +Name: content/firebug/firebugui/codemirror-firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MDkZxTqPS8u6gQpXp7e7qQ==
 +SHA1-Digest: igOrIxVKsMHDRq83eB1MOPvvN7c=
 +
 +Name: content/firebug/firebugui/codemirror-showhint.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WD7LUeJnh8WtVdfJZ5ORYQ==
 +SHA1-Digest: hncLYSKfOC1zRQQ5KKJV4x8jvYc=
 +
 +Name: content/firebug/firebugui/codemirror.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: c03j79nN/P7Bsr2oGyDSSg==
 +SHA1-Digest: rooF5X3Sa2r1EPtmZxkQmqPYHDo=
 +
 +Name: content/firebug/firebugui/commandEditor.html
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: G5wMNcFi9u8a2++tQSZwrg==
 +SHA1-Digest: DDhKeAvlDiny7ATTBXXW7g8Fx30=
 +
 +Name: content/firebug/firebugui/filters.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: opHcWcpECzjpTQWJbX3uqg==
 +SHA1-Digest: +z9rbeXt4V33cHpZ3dxshMMFfaI=
 +
 +Name: content/firebug/firebugui/panel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: drHQa51GGPdfPOsoP8GCsg==
 +SHA1-Digest: 9yxEZDMBXLergpBztwlBoZhDgjQ=
 +
 +Name: content/firebug/firebugui/panel.html
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: C/DzU9z8JPtSH1DoVK8+hQ==
 +SHA1-Digest: qEsXddDTmAxS4rFmoM6lD017QYI=
 +
 +Name: content/firebug/firefox/auroraNotificationPanel.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /3X9NUCl2x8FGMJ6ZEcJ3g==
 +SHA1-Digest: g//uthVvPwfF/c57ZgNNETGMEm4=
 +
 +Name: content/firebug/firefox/bindings.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9HJr21HDQ/wX6yxjnWGzRg==
 +SHA1-Digest: ycVMAYpS5vYMNOyrb9+04UdPD+I=
 +
 +Name: content/firebug/firefox/browserCommands.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /y5ifRCWPyJNYRLy/rmq9Q==
 +SHA1-Digest: BC6I0g3LxAjVc8zSQjWex7c7gGQ=
 +
 +Name: content/firebug/firefox/browserMenu.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ftvBUdJNLcUdY0PFyx8evA==
 +SHA1-Digest: KPvObxUQqe7cz83xRq4wIrmP0+0=
 +
 +Name: content/firebug/firefox/browserOverlay.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Ev9dUUEMghgvqMVMCorjAQ==
 +SHA1-Digest: VEcUgqJR5uffopVZ2bWXBpHQE5U=
 +
 +Name: content/firebug/firefox/browserOverlay.js
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: mKjrm9KK0rlzA9o62pU4Lw==
- SHA1-Digest: ijf+ea19It3QTeV/BA01mx+tgqM=
++MD5-Digest: Xs64+vHRt4IHwZbDVe2vwQ==
++SHA1-Digest: 8sYIuHF/jMT6WgeE0Sa+mOMJO+c=
 +
 +Name: content/firebug/firefox/browserOverlayLib.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /YHVS3H5fUUj4qSRPQuIuw==
 +SHA1-Digest: eOm89ZN5zzSpK1fBEdYNL5yb9uA=
 +
 +Name: content/firebug/firefox/browserToolbar.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EuCBDyy3z64ZIB2wnZjqvg==
 +SHA1-Digest: i/W664I5SsNg6SytQkShGp43Ljc=
 +
 +Name: content/firebug/firefox/customizeShortcuts.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: B9ayJwTonCHV2+pg66OOqQ==
 +SHA1-Digest: CI1zxNUd01Qwsj+NYq+HOJ9QLrI=
 +
 +Name: content/firebug/firefox/customizeShortcuts.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fDfEUKLLxwcQAhgibzBQRg==
 +SHA1-Digest: OACt1y7S8G2hih0YP0a952qTxg0=
 +
 +Name: content/firebug/firefox/firebug.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VCgTXEOFXozBqiwQ74GEmA==
 +SHA1-Digest: vy0HhriSSWF0OaNR+1q88+3mZGQ=
 +
 +Name: content/firebug/firefox/firebugFrame.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: c2kt2Jdu6Vc+aV2qxtwA/w==
 +SHA1-Digest: DUeIco5kxtWWyHhthYAyK5yDsCw=
 +
 +Name: content/firebug/firefox/firebugMenuOverlay.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /vcFdOcIWsoFTPTV4pDYjg==
 +SHA1-Digest: 3f7DdE7fak1peMkxNpKYnTE3QiU=
 +
 +Name: content/firebug/firefox/macBrowserOverlay.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: T2lbezOvCO1+2g8rK+eKVg==
 +SHA1-Digest: bLKhdzNtbreRev4hiXGxleLSQ38=
 +
 +Name: content/firebug/firefox/multiprocessNotificationPanel.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XQDYaH6CfRuZTijD7+4mwg==
 +SHA1-Digest: LNvX0VgiFQD3WgrmmSSjVJGADNo=
 +
 +Name: content/firebug/firefox/newMultiprocessNotificationPanel.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: B0IIJ/srQkGFxPDQdGoENA==
 +SHA1-Digest: xBgH0uB6xYHln8MCneCBV9265TQ=
 +
 +Name: content/firebug/firefox/panelBarWaiter.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nlrLJcio+tymUxnYS69T+g==
 +SHA1-Digest: AfX4NFLKU5EMngxQTW+7L7ehhhk=
 +
 +Name: content/firebug/firefox/searchBox.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iZWaxfqIfZs4f29pHr24Cw==
 +SHA1-Digest: l8wA+/cBO45/+D4bAEo9valR95E=
 +
 +Name: content/firebug/firefox/upgradeFirebugPanel.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7CtQ47hjbbWbpci8gt7Dbg==
 +SHA1-Digest: OVT8hrZfxpKcoo3vm7hbVNrrfyc=
 +
 +Name: content/firebug/firefox/external-editors/changeeditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dSDfR7EqOzhrmKM17U6KWA==
 +SHA1-Digest: Y3oMiaCegASlMbP1qQvoQ1opDng=
 +
 +Name: content/firebug/firefox/external-editors/changeeditor.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: KTUDFa0+jDhIRebcFg0mpQ==
 +SHA1-Digest: A7PDuha2lyVn1q2ZRCkCerj74WY=
 +
 +Name: content/firebug/firefox/external-editors/editors.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8PNM7Fs9zxUDFuW4CXthHg==
 +SHA1-Digest: z7vTFHyfk5KwLpELgySO9jzBOyM=
 +
 +Name: content/firebug/firefox/external-editors/editors.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: FV7MrXvZV98mytPIsK+WfA==
 +SHA1-Digest: 5qQWETRlcHDk1EWzPtT7Wga2lX0=
 +
 +Name: content/firebug/firefox/external-editors/externalEditors.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wBgcH4qXxUjYUZQgPtZonQ==
 +SHA1-Digest: 7g8YzKigNxqV75h23eI4c7kTYs4=
 +
 +Name: content/firebug/firefox/start-button/startButton.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Qr4B95pXfRk+F8HP23AYpQ==
 +SHA1-Digest: lHqjuJdcqfo0eQp8Ap6Rmd3j4LQ=
 +
 +Name: content/firebug/firefox/start-button/startButtonOverlay.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Kk6P60eC78G6thxntMAnaQ==
 +SHA1-Digest: jgGlhWcwkESjStppQRjXdxOPTbE=
 +
 +Name: content/firebug/html/attributeEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4SV0aLpCC7WWReK+PtGTAA==
 +SHA1-Digest: zrzqPz/t/rtMaRyA0laVPKldw/A=
 +
 +Name: content/firebug/html/eventsPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vmapVDxXdaaWkS052d/4EA==
 +SHA1-Digest: qJLi/f5wasVtOrfiV+uYcTJddFo=
 +
 +Name: content/firebug/html/highlighter.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: V6/6HZoPvN3V5vDNa/yVjg==
 +SHA1-Digest: Np1PqGiBhHVL7YE254KlNZgqi4Y=
 +
 +Name: content/firebug/html/highlighterCache.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: IOY5UySg2c0vETFskkiXTg==
 +SHA1-Digest: DR6fSQ03LKWygajjPN4/M14HhFA=
 +
 +Name: content/firebug/html/htmlEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sKgQuWo97DbXKY//fvT/Qw==
 +SHA1-Digest: KAiS+q5eGnkZkpj8x87asoHh/4A=
 +
 +Name: content/firebug/html/htmlEditorSearch.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hn99+y+0SNyvVNLlJsYHdA==
 +SHA1-Digest: 0ZK336QUuT2u2yIUv7aMvE/G+oU=
 +
 +Name: content/firebug/html/htmlLib.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: t+Y0viD04M1j0dXJUwxIZQ==
 +SHA1-Digest: /hh1wHyi+hH4gVitGACYoTeebrQ=
 +
 +Name: content/firebug/html/htmlModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wW98NhRIjs/1fIOksmKJfQ==
 +SHA1-Digest: DOsqNR6yKs7Nl8r5jSEw8RVJ5bQ=
 +
 +Name: content/firebug/html/htmlPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wYXUYHTpZY/yp11HLF5AsA==
 +SHA1-Digest: QJ7VVt3uIENxk84s2mTx59aVtnY=
 +
 +Name: content/firebug/html/htmlReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yyosCVfdtl9k++urlZ04vA==
 +SHA1-Digest: Vi1I1K2hWDa0ixuuGUsc861nLj4=
 +
 +Name: content/firebug/html/insideOutBox.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +Egr6bD3M841TIVwRuAUAw==
 +SHA1-Digest: PM9qr/D0JJzEp5+wtA60bhiEXi4=
 +
 +Name: content/firebug/html/inspector.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Qs+bMYc8YT1s7c3bN6xKsQ==
 +SHA1-Digest: 0FtRTRa0iexk6/OYa8Fa+QBKpZs=
 +
 +Name: content/firebug/html/layout.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oWB+RcTsg1kIthE3sEFN6A==
 +SHA1-Digest: lPkxrW9N2wNaUfwDLHSMRTUvvgE=
 +
 +Name: content/firebug/html/quickInfoBox.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TwAl+4GCcFffv5yGPK+wqw==
 +SHA1-Digest: CApl2w7UE2WT+t5Z8+wYWPN0jKg=
 +
 +Name: content/firebug/html/quickInfoBox.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: IQ4xknkE75a4Y6qfUDux+w==
 +SHA1-Digest: HsTgoxke9JptSzOb3Tcxk91SFhY=
 +
 +Name: content/firebug/html/textDataEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MrCWTXb0+Vp9nazZLjmd9g==
 +SHA1-Digest: VZezaNqdVP6eexUgg44VOajDKWA=
 +
 +Name: content/firebug/html/textNodeEditor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EEZK2ohIN/WDxWHcjL7qPg==
 +SHA1-Digest: p4uevcns4SkNowlko/fQPngi5eI=
 +
 +Name: content/firebug/lib/array.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qAEgJviwnazzflw8hgh/Gg==
 +SHA1-Digest: As2vJphrKp4CsIlqdVP8e8B/vTk=
 +
++Name: content/firebug/lib/channel.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: jCZmzuD219CqPvJkLvSynA==
++SHA1-Digest: WJ65ywdTbQ5zZC+yidjQVfv3+Q8=
++
 +Name: content/firebug/lib/css.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WonlTDlrHNkF1EJ9wrKUqA==
 +SHA1-Digest: NQZ81ndHML4EvWdJkbl9slWhUO4=
 +
 +Name: content/firebug/lib/deprecated.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3ie4NZ4z+VrzC2LkM5k8Ug==
 +SHA1-Digest: N+hhkfo3bu/yelk7UT+5GygWvow=
 +
 +Name: content/firebug/lib/devtools.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +M+RVzdosvXlWWgZk4Uz0w==
 +SHA1-Digest: huMfsmm1QhYV/diclBmzT3YA3lM=
 +
 +Name: content/firebug/lib/dom.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: p6LN/MnOdqkMwWBSdxLhPw==
 +SHA1-Digest: x4MPLSCbXIf1eEriKbzLuwfXtoI=
 +
 +Name: content/firebug/lib/domplate.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lZODMSB1qFcQwUhzKdAlKA==
 +SHA1-Digest: GCmwFeGNrME0vom2sUwJK9sW9/4=
 +
 +Name: content/firebug/lib/dragdrop.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ar9qIUviNap9z6SxqCr15A==
 +SHA1-Digest: z5MgCOjElOabAI4HpCK1e0rYIoY=
 +
 +Name: content/firebug/lib/events.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZrTkp/GvPzkTgnGjCV02GA==
 +SHA1-Digest: u1LxYLA3swFu/Zz3x6wuWQh95FI=
 +
 +Name: content/firebug/lib/fonts.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gX+3uJPBVpd6xJIhhUpKKQ==
 +SHA1-Digest: r9vK1e4yLSHvhvNHQH+mohkTQuE=
 +
 +Name: content/firebug/lib/http.js
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: OkwzxXak5hteo5VUSaGs/Q==
- SHA1-Digest: kS2EQnXr7Jx5i+zOh2ujI1GDT+E=
++MD5-Digest: omiLqkHXDfYCOwsLeHcuBg==
++SHA1-Digest: jIKVAdrES5uuV9ipWLOELWQ4Gyo=
 +
 +Name: content/firebug/lib/json.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 32tgRRclahr2E6onx5nbMw==
 +SHA1-Digest: nv3mwJOCFvBPr6qRU1AGmc2KnSs=
 +
 +Name: content/firebug/lib/keywords.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: toErtEhdLAH9v2CKkLxTxg==
 +SHA1-Digest: XV7OT5hNLEpckrT/NDzh5/goAsY=
 +
 +Name: content/firebug/lib/lib.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Xhzd1qSBU4brVuFk9J5v1g==
 +SHA1-Digest: wDoUFivGi/W+o4KOKJKWGU3THns=
 +
 +Name: content/firebug/lib/locale.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nzd2BAU/ul718Y+vctK2Vw==
 +SHA1-Digest: nXm0d03fFkST1ypnePrTCTcnJfo=
 +
 +Name: content/firebug/lib/object.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uQ5c+0/w0Te3rbIeIbhY5Q==
 +SHA1-Digest: a6V3h1y5+sejFTFjBDDY/FJsBBc=
 +
 +Name: content/firebug/lib/options.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vB92K749KOekOWjvgB9Hdg==
 +SHA1-Digest: KHHG0F6ERvFrgB9es9uHurhWFF8=
 +
 +Name: content/firebug/lib/persist.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vO91YITDRedCI/vvY1mdGA==
 +SHA1-Digest: j20ZISrXqw7ne2olwjVco/xxZes=
 +
 +Name: content/firebug/lib/promise.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Y7txepiz/p+y/FRj6A6lxg==
 +SHA1-Digest: ZaANkRa0yRO0rB9rBBPllix5kS0=
 +
 +Name: content/firebug/lib/search.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: liDvvZtiwiIHt6sYVUiLyw==
 +SHA1-Digest: FURevgDks+1C0QcsaNT21qy5zjc=
 +
 +Name: content/firebug/lib/string.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EJi1nogoRKnTTdFW/oXLeA==
 +SHA1-Digest: XasJEBU4ldLlSXkZtS1LdGUdmOw=
 +
 +Name: content/firebug/lib/system.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BffUgoH9AoH6HH0Ink3jlw==
 +SHA1-Digest: OpN7qGnEtsB7UQ7tO2ygRNG3+Tw=
 +
 +Name: content/firebug/lib/tool.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: FZF0qZ1NlRflLm8LlNApLg==
 +SHA1-Digest: 4pCcCCvlBYOPQFZMLxo7TQIVnUw=
 +
 +Name: content/firebug/lib/trace.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mbgMUI+sHCLRbSl15iXztQ==
 +SHA1-Digest: lw+dI/HMVCKygEF4INUiS5qlzkE=
 +
 +Name: content/firebug/lib/url.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZCHWhFGRmWK1lOBeUtYNVg==
 +SHA1-Digest: L4I2xDJZNpFPWMK/qf36A30aIDg=
 +
 +Name: content/firebug/lib/wrapper.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: AlI94gW2VJTQjaVkyFSNUg==
 +SHA1-Digest: IJYXQWVCvGTURffA++TVDUfzZC8=
 +
 +Name: content/firebug/lib/xml.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pit4ewUqlkANyo4blOW4Og==
 +SHA1-Digest: 5O+HOLrH1uyxwhndiWmlZvjhGT8=
 +
 +Name: content/firebug/lib/xpath.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VGqm9uRCLOIj7tQnbCUNKw==
 +SHA1-Digest: dGyYtiOO5rTyLrmZ/eu0HMHwKKE=
 +
 +Name: content/firebug/lib/xpcom.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oB8tv/eFS97zZtdu10HIEw==
 +SHA1-Digest: YRdnJuLIw0L73qUixQA49FoT1Uo=
 +
 +Name: content/firebug/net/fontViewer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: msU8WjIqks+fd0smsPh9hg==
 +SHA1-Digest: 2SlRuIFBTh2tlPJqCbd625wCzzY=
 +
 +Name: content/firebug/net/httpActivityObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sbsqpPCmQnSG7g4YPJbw9Q==
 +SHA1-Digest: /PdYB5d3fOiB5zVKrONJhE86Af0=
 +
 +Name: content/firebug/net/jsonViewer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qSiGdJ0DmfSZcv8na/vD/w==
 +SHA1-Digest: kQ01KoT8S2jtd+Rg/CTs9orPmiA=
 +
 +Name: content/firebug/net/netCacheReader.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pDtxl2znJ+xFvsD/bYL0TA==
 +SHA1-Digest: 5PcMP7hPq8X+ffhskdpFNCex/y0=
 +
 +Name: content/firebug/net/netDebugger.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MwOGZnjZT/jA6I53uiV04Q==
 +SHA1-Digest: +kRhVGeFudd/Egyu0p2hLXDaYrI=
 +
 +Name: content/firebug/net/netMonitor.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Q1+piMoKZfEjmn89CTcpJQ==
 +SHA1-Digest: jCGQ3XqdWONm6Kaif6hDRQYZUyg=
 +
 +Name: content/firebug/net/netPanel.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: bOGavUqFYzOUBcKKVhztIw==
 +SHA1-Digest: DzW0U5Nd4j9SCoIROs15wLrileo=
 +
 +Name: content/firebug/net/netProgress.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LHlV+Z7xsqXIMUTiGFJVVg==
 +SHA1-Digest: bi/+CwyNG7Dy5Sn5/6qqswrtYAg=
 +
 +Name: content/firebug/net/netReps.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 91y8gqAdFNqJV6q1SYlMkA==
 +SHA1-Digest: BbBfjRrUJTHkIvgpdsosVRWrebg=
 +
 +Name: content/firebug/net/netUtils.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +9IsxDdvL/08nxtGij3Abw==
 +SHA1-Digest: 7vUp2UpS+wHs5eH+XQFUvEzZzVQ=
 +
 +Name: content/firebug/net/requestObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sZyasnbT9fLpxz9/sewS6Q==
 +SHA1-Digest: e/a8BoFvr8aHaJ22YZ1jJ3LbF9Y=
 +
 +Name: content/firebug/net/responseObserver.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: PBKkV92E1q8v6Ulrrb9fGw==
 +SHA1-Digest: pnuXXrn3oRY6fU0kOKzdwg3SBSw=
 +
 +Name: content/firebug/net/sourceCache.js
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: KgN3qK7zGVaqf+0pi4jeyQ==
- SHA1-Digest: 94IX9DqfNRWqiSjb6PHpOmBDEUM=
++MD5-Digest: mwpPc0eEk/SQ5bI7etY1vQ==
++SHA1-Digest: 04Dw9s6Yyhn5ws0Ev4psCBWgDRc=
 +
 +Name: content/firebug/net/spy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: RxR2bA0s9TmlebpZ4iJviA==
 +SHA1-Digest: Jyy9xec71itZLxaEyUNDSR2wmkw=
 +
 +Name: content/firebug/net/svgViewer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /sPAHayRHOgo+KnsoJLbEA==
 +SHA1-Digest: rEaU60QQktgONA1Pte+PWvHMfcE=
 +
 +Name: content/firebug/net/tabCache.js
 +Digest-Algorithms: MD5 SHA1
- MD5-Digest: oHKFu17doAsChfHJyjicgg==
- SHA1-Digest: GPE8ZYEtiRbaciK/+UaofNZqmpE=
++MD5-Digest: P4s85h57lWLZrZKYWLamag==
++SHA1-Digest: 6eJblcjgutjnMpndn2SCvCvi1hA=
 +
 +Name: content/firebug/net/timeInfoTip.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YWSld+I39RIRZR6BZVHTSw==
 +SHA1-Digest: 5GHKQ3GXa6dXcYO7rb4Y24ahQFw=
 +
 +Name: content/firebug/net/xmlViewer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iGhgr7oCcxjl8MAc/wmQow==
 +SHA1-Digest: pUFj+aTH5BQeEmx4runa/teyVg8=
 +
 +Name: content/firebug/remoting/connectionMenu.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: eg7QLg9QhV2jaAGT7FfNaQ==
 +SHA1-Digest: Q6yMbCMB+pqU8sGSiPN8tercj1w=
 +
 +Name: content/firebug/remoting/connectionMenu.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZopdkMeFn8tGGdh0G3jziQ==
 +SHA1-Digest: Clevk0lS/Byz9aCMAzBFvJVYBwg=
 +
 +Name: content/firebug/remoting/connectionMenu.xul
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GHmNJ9GlcaXrEV/mQp3CYQ==
 +SHA1-Digest: DdfSoykv7YNs4qoTM7bzF2fHk54=
 +
 +Name: content/firebug/remoting/debuggerClient.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kB6HMV3rwszwLuxdDyPBPQ==
 +SHA1-Digest: Z3A0mP5p/ZyISJdnkpRPHrUBT0U=
 +
 +Name: content/firebug/remoting/tabClient.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +KNzp5A5siySY10c+35J4w==
 +SHA1-Digest: Rl/ZUtBkVoSp05NpEcFWowlEu5k=
 +
 +Name: content/firebug/remoting/tabListMenu.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SaNKYYHJr7C9BT6ibTy5Zg==
 +SHA1-Digest: 4oBSjo1ElubUrcCgpxtdNvZKaUA=
 +
 +Name: content/firebug/remoting/tabWatcherProxy.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZwZRDWRa1VhhQWlgJLIJzw==
 +SHA1-Digest: VceVpZpcISjVeaQmY31rJQGNpsE=
 +
 +Name: content/firebug/server/main.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vNpE2RG/8AYyicePiDZ2XQ==
 +SHA1-Digest: yYP4SAjfWxcBNJ949xbVps/+8ME=
 +
 +Name: content/firebug/server/server.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: PXGFikwG/0AKXYNNOfmItQ==
 +SHA1-Digest: O3WTU2UUVtxaUAqu1fWcXcWVq6s=
 +
 +Name: content/firebug/trace/debug.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TegX7xoKTgbf97Bc12DoTQ==
 +SHA1-Digest: L9f7Cb08z+TzDO6wCNSqmr9+QBI=
 +
 +Name: content/firebug/trace/traceListener.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0Ogkmk23U3+EfQztD3Zlpg==
 +SHA1-Digest: HFRwXtie674wQdosLgxV2ookKlM=
 +
 +Name: content/firebug/trace/traceModule.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OFy7yhQvxtHL8ZXLaEHkow==
 +SHA1-Digest: p3srnKKF5g34cXZwE1KOwuAQBwc=
 +
 +Name: defaults/preferences/cookies.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VWlaDLikaW0MjRz+Hgpq6g==
 +SHA1-Digest: 7X+GlQUQUp25aNtwGq3m4cJhfXs=
 +
 +Name: defaults/preferences/firebug.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: y6aTX3ET+bc7tRYCVTNfnA==
 +SHA1-Digest: oTKp5eFPHsu8RQBwZf6V0nvCneY=
 +
 +Name: defaults/preferences/tracingConsole.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WR/PYbj7EIWnmgHyHJ49Sw==
 +SHA1-Digest: +yNE6mQ3quU4nIaU0B2CPVF7/go=
 +
 +Name: icons/default/firebug.ico
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WgnXzDizNuDIcs8X4PCihw==
 +SHA1-Digest: WRKQFDt7R/E782K3AnsTjJdariE=
 +
 +Name: locale/bg/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rXgWnJnl7vSg3wzeikXyEg==
 +SHA1-Digest: cEjPDwRIC/OQ/kuRH4uwdMT6JRo=
 +
 +Name: locale/bg/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SECRtamqQ8bxgD900UOPHA==
 +SHA1-Digest: aFiZTAWWg0j42uXyZlemYL8VFjE=
 +
 +Name: locale/bg/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WjlPLs8Ma0+6AaHohD6lpQ==
 +SHA1-Digest: OExJeMF0AZYQil/TQ/HqY868H6U=
 +
 +Name: locale/bg/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yEpwLn+bYEyWk3OBx7dbdA==
 +SHA1-Digest: n5Wu77XEIat0ZiCP9rNVmqHQNck=
 +
 +Name: locale/bg/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sJ4qw+tsLXLofTZjcoA46Q==
 +SHA1-Digest: N5eeaAAAeHWPaOqQIq9P8HM58RE=
 +
 +Name: locale/bg/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nP97ysYG4wRxleXZNW65Ag==
 +SHA1-Digest: kqU3DtBH69QgP+07k/lGHcV62PQ=
 +
 +Name: locale/ca-AD/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9XnTENM//Ey/HNNXfmGJBQ==
 +SHA1-Digest: 3ijeJjOfw97P6t86E7kJE/EuE6U=
 +
 +Name: locale/ca-AD/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iGa+UK601QYef/iefwDDmA==
 +SHA1-Digest: Z+cAHxnLxaS75ehA2fZalvqk2Tk=
 +
 +Name: locale/ca-AD/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zYNVGD6A6VLuc8YZ9t5M+Q==
 +SHA1-Digest: UApsfsF7cIkA+rIpAlu4WXMdsF8=
 +
 +Name: locale/ca-AD/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BcQuxWt9o/WTsHQTfC/Y5g==
 +SHA1-Digest: AYwIToyZOdEcAQ4L3QiDif8VI8g=
 +
 +Name: locale/cs/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: bW1Bi4Sw1hcjVqkBQ8n58g==
 +SHA1-Digest: VfruYOa4jGqmAPMJan6o4OaXN6Y=
 +
 +Name: locale/cs/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qSgGj7/1m5YI/ZXwtgdL2A==
 +SHA1-Digest: HOQJ9r8uoCRKMpYQejw1RK79ni0=
 +
 +Name: locale/cs/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gb3mXOy6ewOy/1khf1aRCw==
 +SHA1-Digest: sbunlylGsc/FmZKUYmL8wEslj0k=
 +
 +Name: locale/cs/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BcevMkJbOjIow29BXRf9gA==
 +SHA1-Digest: Bbm6uYyQTKGD/sTJSpY9djcHWFM=
 +
 +Name: locale/da/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/da/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 57//Ath8EdG2IJTUknuleQ==
 +SHA1-Digest: 9EIMZ//xuAPQ32WHVe6BNJFQsKM=
 +
 +Name: locale/da/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9vJqXoS4T6ObPDn8qZarGQ==
 +SHA1-Digest: xXpY4YgeRNXbtOobcP6VgzLoGRM=
 +
 +Name: locale/da/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ErnL8BXPRmMJsfhiWo/qSg==
 +SHA1-Digest: 40A2l69TglvSHJZAsM5KLB15iAI=
 +
 +Name: locale/de/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WFoqK3tZHOSxfQvhrisxbw==
 +SHA1-Digest: mGCHsMS/Xnafe3+d70uR631t0qw=
 +
 +Name: locale/de/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: o3qF0CfCaGpx4Bsog/Z9uQ==
 +SHA1-Digest: lOcbC9MHRF4lzMFMgQ0ntvWLkRo=
 +
 +Name: locale/de/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5mTiaUT1O/xTdjL69hVcCA==
 +SHA1-Digest: H22iTw0HcOV6rebGc79PzB2riHQ=
 +
 +Name: locale/de/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Vvy9MCtM7FHEoCmm18uVPg==
 +SHA1-Digest: CS2Sg1rUT9G028x56LPCjvIUbYE=
 +
 +Name: locale/de/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7OuEMCOgBi0rKB7nUPguXQ==
 +SHA1-Digest: XIBALSFzBNoqIVnuVUnBXLp+wfo=
 +
 +Name: locale/de/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: a4WtfAVkEpqIZgwn3hAYUQ==
 +SHA1-Digest: JMEGS51lWSS4Vsw3wYfSWQ6if00=
 +
 +Name: locale/el/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1LVdw0xKYrFck+2haDRpMQ==
 +SHA1-Digest: CdNbwzAtR4rx+o7AI3SqH8GhlrE=
 +
 +Name: locale/el/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 75k2K+My7wacgKkK3RyWgA==
 +SHA1-Digest: vSI9AYh+v/IQf5mD/mbAhfQVGz4=
 +
 +Name: locale/el/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: R53yStFcRXZU72SRpcEhCw==
 +SHA1-Digest: V5RAx7EOo6Vryb9Ha7Yc0Ju6YcQ=
 +
 +Name: locale/el/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: PB1RbZ1HbvNOmqmb1bxyfg==
 +SHA1-Digest: hAJ+sQ4qSyUkkiDQaQh0r1oWHP8=
 +
 +Name: locale/en-US/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 14us+sy+DJcf6s9Kq8uFGw==
 +SHA1-Digest: GS9fmheOtB7qcX1d35lupYfic8w=
 +
 +Name: locale/en-US/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cNh9wY6oW3eN0bZR1+usbw==
 +SHA1-Digest: Xnf3i/Sj0g5vqRiSpo826x9d6Uc=
 +
 +Name: locale/en-US/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: dQ8KI57G9qFHKQtAsWj2qA==
 +SHA1-Digest: VFsYe437rwgYLJFDcjBPiYUG0zE=
 +
 +Name: locale/en-US/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wfgrzqK9ukoDWSHegY0veA==
 +SHA1-Digest: Xmn/jT1tjchvcThKj9f0mlmODI4=
 +
 +Name: locale/en-US/multiprocess-notification.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qpA+OHCEUbIL9JLnM25Q9w==
 +SHA1-Digest: JKM4iEqUCqc36wxAODo6tUPIGZ0=
 +
 +Name: locale/en-US/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: i+AIR+15HqS+r9McB0qJrg==
 +SHA1-Digest: 1tj5Da+Z08Tj5BLIzMcY1MfLC+8=
 +
 +Name: locale/es-AR/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mZGKtBVUnkz8+vNuHRCeng==
 +SHA1-Digest: G7QX/8H60sMKmXdP8G5jlS9h4Og=
 +
 +Name: locale/es-AR/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SoWYiXT5o3GrRCU/RfzdBQ==
 +SHA1-Digest: +7tJYw54JwiVWFXCEhmC/nQap+A=
 +
 +Name: locale/es-AR/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: tmiC+pAARQJcY2CT4cI4fA==
 +SHA1-Digest: bTl8xuwvGxAg132wlr26b4SWU9U=
 +
 +Name: locale/es-AR/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6p8pR6/apsNNMIuZjLTMLg==
 +SHA1-Digest: r0qDcL0KJYyIc9JSBa0WYEjJPJQ=
 +
 +Name: locale/es-AR/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: J+OdFzYebBjNPCwdQ8VwRg==
 +SHA1-Digest: RX8CvWimF2fdyw7i+J3B1EsyGig=
 +
 +Name: locale/es-AR/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 16zhKIZfpryv99GExutCLA==
 +SHA1-Digest: UPegNAuE1ID8yyAr8wRGdWqCRZw=
 +
 +Name: locale/es/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ifWNLXrw+QeACKoxebEd4A==
 +SHA1-Digest: gOZH4t190cClaNzWt745xi8oYrw=
 +
 +Name: locale/es-ES/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +zwD0qgtRXsTK2D6RJSA1A==
 +SHA1-Digest: RNjdiN8clS/G7ehcjftv6UiPVHU=
 +
 +Name: locale/es-ES/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MYcrk+oex76ZUOdpMSaBxw==
 +SHA1-Digest: IovLgTqT3HS00Xx1dn2XvKSNkJI=
 +
 +Name: locale/es-ES/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lPcxscq248G6uXFZeOPLLw==
 +SHA1-Digest: yEkFvxYTKhfvRbwSfrBmR8b8zqI=
 +
 +Name: locale/es-ES/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3vyf3xnZSyGxopAwaDPijg==
 +SHA1-Digest: wz+q6tj2onFk1T/T0wuRoDrOxdo=
 +
 +Name: locale/es-ES/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rRL5WearUBxafo0mZ3MUCw==
 +SHA1-Digest: s22mPglN+SAfe/c4kAot/81u5VM=
 +
 +Name: locale/es-ES/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nGzo135ppbQulqGkKAJC/Q==
 +SHA1-Digest: JwCiUnwJqXWN89nAQkqznTxfBx0=
 +
 +Name: locale/es/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rzreeKxntFTiH+swFYBGwg==
 +SHA1-Digest: zju3gJXTXssADwbS02C8INozH10=
 +
 +Name: locale/es/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: NBLIdLJfNBHufT9ssPJaJA==
 +SHA1-Digest: k4kVBwpd1iq+PCuuPm0kXstwHaM=
 +
 +Name: locale/es/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9gTGnYoLivQcTSg/chhnxQ==
 +SHA1-Digest: cIIui1BkG+ODGeWQ4kDa+1O4IXo=
 +
 +Name: locale/eu/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sHUAEdli7igTBnInZybHzA==
 +SHA1-Digest: sQyL4vFJiQ7kAI+eXTJN5ubHHxQ=
 +
 +Name: locale/eu/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: r4LDyWdJv2qGKW6YjBrp+w==
 +SHA1-Digest: S6e/5TqVM4/FY91ehsKGz81gWN4=
 +
 +Name: locale/eu/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vyF4ig8o4ZIfKWavUO6uzQ==
 +SHA1-Digest: J7r3qBKPX6IRoDTF0NRlVIo1iXE=
 +
 +Name: locale/eu/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: jYG21+1F7RzRNx10A2LM2g==
 +SHA1-Digest: vX5nl9LVZMc9AT5QCxO8b+JzDgM=
 +
 +Name: locale/fa/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/fa/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nU24py57gfzN7/3D9HrYgA==
 +SHA1-Digest: 63BInKs8/DhkaJDWoUiYYT6r7bw=
 +
 +Name: locale/fa/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aGaJ2ygIBPIJpuTBzkDYMQ==
 +SHA1-Digest: 0MNGHJO6ITi+K+Ikb7XgQxm+3mg=
 +
 +Name: locale/fa/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hvzi7OoAiikmm03F9YC84A==
 +SHA1-Digest: ai576Awm/B7jddt6YM+GCzTRwsw=
 +
 +Name: locale/fr/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wl0RyXUP6qDdoCed7M1oeQ==
 +SHA1-Digest: nUU33gpw71vqxs6Px/U7YoZKpTU=
 +
 +Name: locale/fr/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 07hj9W0gOVE7F6TnKzMqIw==
 +SHA1-Digest: 9pvcFJeZMfLGp/cI53U6DUCeHt8=
 +
 +Name: locale/fr/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9ViJCh6vyfJ4aCVbHkURxQ==
 +SHA1-Digest: WOCB+tvGXa53CBtwOldLOgSWios=
 +
 +Name: locale/fr/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: KjnO4j+0Dq5f16ue1hgLXg==
 +SHA1-Digest: kb/4kVFcdzRhH7V3PWWUFBFvE1s=
 +
 +Name: locale/fr/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iCt4WZggcRPTdv7yFyrWcQ==
 +SHA1-Digest: Twdm52MLw3WpJmjF00CBJyp2c7s=
 +
 +Name: locale/fr/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: q+ArEa9DdlOfZ/4EzQH/BQ==
 +SHA1-Digest: ruPdeZN60gMRMBF2Vawr+NcDVyc=
 +
 +Name: locale/he/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/he/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mIbIlE8o3kS0SINIcJZ5hQ==
 +SHA1-Digest: BqFVd/oRE/wkyjrOKJ7qDR3PoYk=
 +
 +Name: locale/he/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gWgYC9OeNan+6aFoFnB7Tg==
 +SHA1-Digest: LKdMiLL0E8YWNfHb0d+qP3xCngQ=
 +
 +Name: locale/he/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pjmHywSeVNlMA81ZBvcqCw==
 +SHA1-Digest: PJHlKb0z5zR8Z7SiwFWuolAu/rw=
 +
 +Name: locale/hr-HR/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/hr-HR/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: X8EKQts6HF/ej19KWUKqPw==
 +SHA1-Digest: XaCXHxp7CFjEy/mCSNt3s17XlIk=
 +
 +Name: locale/hr-HR/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Yd3FYYPCslsxbK5NcvCXsA==
 +SHA1-Digest: ttgUWQhDIxJ1ZUwQfyWFpBzxsUs=
 +
 +Name: locale/hr-HR/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JXyJ5pvOMbq7m0sJYnQeTw==
 +SHA1-Digest: 34bljLxiuo9xKC0ccFsgYr6QLyo=
 +
 +Name: locale/hu-HU/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TKU8JfUiwmF1h6+fXvnf6w==
 +SHA1-Digest: /ZRDcM8El/koFFDvIXxZNyK1C3M=
 +
 +Name: locale/hu-HU/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iwF+Qb0gBQ8IHzPcBBILuQ==
 +SHA1-Digest: O0uPDAy569Q8biJHesRAV1lBBQk=
 +
 +Name: locale/hu-HU/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8Eg1fMy3gC22GNP7zkwrzg==
 +SHA1-Digest: b9ZGhu2U5utn1mvoveuZJypeu7k=
 +
 +Name: locale/hu-HU/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iSu36KXhskGl5+bADXBVJw==
 +SHA1-Digest: 96jRuorWLU7DumsxIDJuD8VCVYk=
 +
 +Name: locale/hu-HU/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: bp1nMOu3BLuwLRH7aqTf3Q==
 +SHA1-Digest: uRXAm+kmjbPYM6chnEj+3AMizrI=
 +
 +Name: locale/hu-HU/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: gTlCOf7q0JXL4BnBNImO7g==
 +SHA1-Digest: LgcBDLlVcmQyFX4ygxJZ+pVrjAw=
 +
 +Name: locale/hy-AM/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/hy-AM/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: X81FjeCquWMfdjZf09SRng==
 +SHA1-Digest: 9s8tpB+YzVFNhsxIcFVGX5MQ5Go=
 +
 +Name: locale/hy-AM/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: n+uHD3l6yH9j1s1k+Bne9Q==
 +SHA1-Digest: YEU0oJ8w38K/AXcyXcxN993zokA=
 +
 +Name: locale/hy-AM/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rc7OvKriO2cdMM0TV5Kl9w==
 +SHA1-Digest: AogvGl7bhOPTX2N1Tm+HUtjq0qE=
 +
 +Name: locale/is-IS/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/is-IS/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: z8O3+1VN2nm1+e1W+/jZEw==
 +SHA1-Digest: 153ALT3YTVyvejtubZuQ3H/yX8g=
 +
 +Name: locale/is-IS/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Xdb/MnWwkGSXVqrIpd+ZUQ==
 +SHA1-Digest: aWF+0+oUxuMMFyIZvo/qC9+xIUg=
 +
 +Name: locale/is-IS/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: NOiImBdaSDBGNWQFjkfMLg==
 +SHA1-Digest: Qm6J+vD4HcG116LhB3dYndLvR1E=
 +
 +Name: locale/it/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: HCy/POFwpVFYk9Qtmt/S4w==
 +SHA1-Digest: NLyzqSxuRsg2yEsguNatKuvA/sY=
 +
 +Name: locale/it/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zpLZfvBY4O9htto3/EOJpA==
 +SHA1-Digest: KLlCmUkF9pzNEN5XurQD3lleQDo=
 +
 +Name: locale/it/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0KHtBEVX1ZC7vx72Nfct9w==
 +SHA1-Digest: cOkLwALOzLeuNmCVp8RT+McTOt4=
 +
 +Name: locale/it/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6Q/qSf51AGP2XGY7tPBuww==
 +SHA1-Digest: HMy93YvIVZjV8SUF5P0BznE3iS8=
 +
 +Name: locale/ja-JP/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: S6nBygaeGU51nBH/Ll5g5A==
 +SHA1-Digest: KG+NqNLM4Kux6b57P/J2EDhmuAw=
 +
 +Name: locale/ja-JP/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8bkepBFi6QjtacFvdCWT6g==
 +SHA1-Digest: SAh27FmX552QxyYBMylWq++4PWY=
 +
 +Name: locale/ja-JP/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: O+TgA/X9VdloipNUneKpmg==
 +SHA1-Digest: ynD/2YfcMyLyNfE1Og77FA39SFU=
 +
 +Name: locale/ja-JP/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1DCo83nkrI2IFFz0rFIyaQ==
 +SHA1-Digest: H0yCYNQZTiSM9VrBQairZWMDpfA=
 +
 +Name: locale/ja-JP/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uyYf36DpQ3WKYevSO3cZJQ==
 +SHA1-Digest: n7eNolrCpcGCifJ3jRgP0xw7fEg=
 +
 +Name: locale/ja-JP/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: k0csLrtxIqrY9ql03wtamw==
 +SHA1-Digest: 9hoTwjpicOHkGxspsv6SbpCUGXs=
 +
 +Name: locale/ko-KR/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XrKnrNy1B7cLMQvoLkJrpQ==
 +SHA1-Digest: IJ0ND3mZlJ1uGVdF9YAaMlJBBzI=
 +
 +Name: locale/ko-KR/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cBEv2Y9gVzKItFPNr/2vOQ==
 +SHA1-Digest: /lG/LHEwJVZbZrAD+VTZqrbp2gs=
 +
 +Name: locale/ko-KR/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aGaJ2ygIBPIJpuTBzkDYMQ==
 +SHA1-Digest: 0MNGHJO6ITi+K+Ikb7XgQxm+3mg=
 +
 +Name: locale/ko-KR/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0X2g/EBHM2xrlqd+8TrGSg==
 +SHA1-Digest: LRLmevKYbSNUrWTG4nfK+qZ0yLw=
 +
 +Name: locale/nl/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: pe8xQBQrx2KRA7aVo09qqQ==
 +SHA1-Digest: mQw1sf/HuOfrOgCAFW5QasK4eIU=
 +
 +Name: locale/nl/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vT877GmO0cYQjSmWvFq95Q==
 +SHA1-Digest: co/gn75CFRvtngOEfpxMs78Rrh8=
 +
 +Name: locale/nl/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: S7KqqLVZ47bXznAIEOZrXQ==
 +SHA1-Digest: YRFQlTscos+yxwfDijKuaLMuyoA=
 +
 +Name: locale/nl/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wVAjgmC14Qbd1/0j9siTBA==
 +SHA1-Digest: CjztlbM1XwHicBT9skla3dZAVJ8=
 +
 +Name: locale/nl/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rE9EQcGROimnSoR2QrNtwA==
 +SHA1-Digest: wOZY5Qg0xyKU9ivwMNVdR4nA28U=
 +
 +Name: locale/nl/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nt3rqQgkNhnO5Kjn9stBDA==
 +SHA1-Digest: xNfdrGtvuQO9XDOi0EZVtqFUGNw=
 +
 +Name: locale/pl/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OuG3wYAMl/MZEiNI3vCbLA==
 +SHA1-Digest: 0NFqFUnhNjCWUoxShi2nFoVum/A=
 +
 +Name: locale/pl/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aKYRegGT1bYH7frKR95JKA==
 +SHA1-Digest: hU58hWBSR6dvVaL2xxWhwRHMF24=
 +
 +Name: locale/pl/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4BVDxE6LMfgefVEScCiwgA==
 +SHA1-Digest: WvThaN3JyKJ1348Y88NRMIZCCOM=
 +
 +Name: locale/pl/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: FoIYZJbbi9kQcWDr5BQW/w==
 +SHA1-Digest: MBsCbggo8UZ6YzkwIrWO4C3pLG8=
 +
 +Name: locale/pl/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5Aw3rVEIJOrTDF7vK+HIWg==
 +SHA1-Digest: jTt0+cqvXW0GlaCmaJ/J0pmXM1Q=
 +
 +Name: locale/pl/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: snmJuZ7hptpZY5WS91ecbQ==
 +SHA1-Digest: SGpXvGi0ZaZggjWvugtkR/+RWJA=
 +
 +Name: locale/pt-BR/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3lX4w4cHZ8dsuaSzJIQoBg==
 +SHA1-Digest: 2fkUumYPTXDF/78ytZNSetjvzCA=
 +
 +Name: locale/pt-BR/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EeGN9+3RSVd8ujc32WfsWg==
 +SHA1-Digest: 0F0Ekq+CeCFfn3mEwTx4QSk2nh0=
 +
 +Name: locale/pt-BR/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aM86Zc1B8TDF2l0QnLG1Eg==
 +SHA1-Digest: Yi7hGq0TaH5UNRLiddoxaAeutWU=
 +
 +Name: locale/pt-BR/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: HOH+VagYw+J8mzj/DScT2A==
 +SHA1-Digest: xwTJhMNVEGRPJrQSj2n+NPtfQwo=
 +
 +Name: locale/pt-PT/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OSAqzIXSsXyFE5gZ/r03RA==
 +SHA1-Digest: Co+oDRu8mJZ2bmNBJcZR3bXWmm4=
 +
 +Name: locale/pt-PT/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: hu1aQ+mcNMKorgrmPOhVzw==
 +SHA1-Digest: oWd5m3Slh2esl+ZycWdxiY/AgRE=
 +
 +Name: locale/pt-PT/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: PXEifwfr3kjYK3lkEDjiKw==
 +SHA1-Digest: PhWFZJrajopt7ecJG4Ojdfc+LW8=
 +
 +Name: locale/pt-PT/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 18j7TuxEIoYn5Rsxj07cVw==
 +SHA1-Digest: 9GnJ4xSbIXD1ptuAWpJ4YwuXvVs=
 +
 +Name: locale/ro-RO/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: QOGgxSXSEye7EnjoqFxCIA==
 +SHA1-Digest: PHkwis9KLDgHr5Hy/YM/1FvzVxg=
 +
 +Name: locale/ro-RO/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kXN9rfKuDWdRcGJ6Xju59A==
 +SHA1-Digest: bOwdrOrByFzQI18L03QxxrlxTiI=
 +
 +Name: locale/ro-RO/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wO2n0jpKSlr0hL+muYbHdA==
 +SHA1-Digest: +J7vxGRgCEiYVjajWWybyXAAMjg=
 +
 +Name: locale/ro-RO/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 50TpUN10vbFAvLsgunbnUw==
 +SHA1-Digest: bhwo5IQLWeUOnnYTfz+4fuBl0kg=
 +
 +Name: locale/ru/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /9510+++KOfyKrVu3OZA2w==
 +SHA1-Digest: E2Xcot0EOEYO6yk5A3hg1pWpi/g=
 +
 +Name: locale/ru/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Hdzp0xqz3yx3J4VBYuEjYg==
 +SHA1-Digest: NpzfLclEFOrKkvu71M2uqNOBa2A=
 +
 +Name: locale/ru/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4m5LQ2dP5cL53Tu9LiPBFQ==
 +SHA1-Digest: C2h0UkI2F0eaehWgRcwN44Cqn3c=
 +
 +Name: locale/ru/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6cubDPjME9ACLgVqjusOaQ==
 +SHA1-Digest: TF2IKAWq8DKJwNvyvyqsY/9stgI=
 +
 +Name: locale/ru/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GHigRto4aHv/yuKasyckFg==
 +SHA1-Digest: R/dmyCZ1nG/rk7zJos7IyFs06bw=
 +
 +Name: locale/ru/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JKy0iJxosiX4982uXFa3Qw==
 +SHA1-Digest: ryES+0lCbk5BHHOFlC2++1OQo4s=
 +
 +Name: locale/sk-SK/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: RbG3GmlojxILc8m0B0eOjw==
 +SHA1-Digest: IqlFDso+rwJET+r9u5nXBVLFn5w=
 +
 +Name: locale/sk-SK/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EWQAwBNjqgjD661O4dXBtQ==
 +SHA1-Digest: KkS8LirICxgciX7oRN/Rg946tLs=
 +
 +Name: locale/sk-SK/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: J/c9NkL7olFJ8dlrKu/+KA==
 +SHA1-Digest: 9uzuyOC3hUMKtiFoklmOW5+YbT8=
 +
 +Name: locale/sk-SK/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: v5UaUXun1Ds2QNT4HxRz2A==
 +SHA1-Digest: d1gYWGCMZeCXMRODNss83h2ThMw=
 +
 +Name: locale/sk-SK/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rVI+Ojt9rxt53//du0K9GA==
 +SHA1-Digest: D81yPVHSA4RXkIV/QpS477BSbh8=
 +
 +Name: locale/sl-SI/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zQ/mpxMqh1GiD4PhdcL3cw==
 +SHA1-Digest: H4ZW5A446XeIJUcTHwJftBWMyNQ=
 +
 +Name: locale/sl-SI/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ahGZEAKMdln1fsoic5aB7Q==
 +SHA1-Digest: y3kkamgVLQRBE3F1tNJ+AoFsHd4=
 +
 +Name: locale/sl-SI/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 11h7ft2z9i4hZprlQLz8xQ==
 +SHA1-Digest: ifTKZgMA4HCAh6KCpfXAlyWaRWI=
 +
 +Name: locale/sl-SI/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7cwEGfZG+N1S+XSEifcwKg==
 +SHA1-Digest: zTkKKM1IWAqvVaygdfKUrRDdlPA=
 +
 +Name: locale/sl-SI/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OAcrAbF+EVyzsgedpxgnHw==
 +SHA1-Digest: vdjD0w1rl7X1R7HZXANnzFAHTdc=
 +
 +Name: locale/sr/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/sr/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LCvD542cYNnGOaLIMvFwjQ==
 +SHA1-Digest: HE4TWOOFEMFqWmOeYT+e58eh0Gc=
 +
 +Name: locale/sr/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: AJI+Xkkknz4yAQOtX2Iv7w==
 +SHA1-Digest: NxVKUsBIZodiJmNvDxegF6KtgrE=
 +
 +Name: locale/sr/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5lADmOocY0kligZf2kNeLQ==
 +SHA1-Digest: sdOkNh6XrM3cj4LNb+C8m9DdOko=
 +
 +Name: locale/sv-SE/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 4rZMWgho33Jl/KszsOTXhQ==
 +SHA1-Digest: ITIg0W9/0wmQYY8syEzK6biFgpA=
 +
 +Name: locale/sv-SE/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8CT0z6ThzKjrezh93x1TQA==
 +SHA1-Digest: 1FmsBadHuXIvYj++b5EPl1d0Qhs=
 +
 +Name: locale/sv-SE/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vwNjvC9LGXuNddIX0kUg6A==
 +SHA1-Digest: DvOijmOy+qiq6C/o8mxHw1i9e2o=
 +
 +Name: locale/sv-SE/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XSBaDVwaF/0Ap6q39zV+YQ==
 +SHA1-Digest: zP2h5VEZAc2lUHAWmMUzA0HMsgc=
 +
 +Name: locale/sv-SE/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: owqw1o9eOlyTHeQnq6hvLg==
 +SHA1-Digest: NjKY6m6KKYSEp+XxWFAKZ9NfuLk=
 +
 +Name: locale/tr/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 58jafukebWahNW6wccghAg==
 +SHA1-Digest: 1dVUU73Qc6SnVsIjz49l/i6ipgU=
 +
 +Name: locale/tr/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nU24py57gfzN7/3D9HrYgA==
 +SHA1-Digest: 63BInKs8/DhkaJDWoUiYYT6r7bw=
 +
 +Name: locale/tr/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aGaJ2ygIBPIJpuTBzkDYMQ==
 +SHA1-Digest: 0MNGHJO6ITi+K+Ikb7XgQxm+3mg=
 +
 +Name: locale/tr/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TcL+9Zcig3QjQXcfXU6FlQ==
 +SHA1-Digest: ZtJ0RmFnp7/iruEQ38uasK6LX5Q=
 +
 +Name: locale/uk-UA/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Ofm7872HgrzoMk7MRsrasA==
 +SHA1-Digest: qlBWyYHyLwIFpnr8hF8f7xHttMc=
 +
 +Name: locale/uk-UA/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: EB5y/dKjGJdMoYVUUTWBDg==
 +SHA1-Digest: YQqgq/9WpJsVbDDfwPRSbyjNw70=
 +
 +Name: locale/uk-UA/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: R7LKIC8ZZPmZft3F5h+EiQ==
 +SHA1-Digest: cQ8xnKSQPYEOvvkwLhlx29mWfV8=
 +
 +Name: locale/uk-UA/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Wl6gXykNyh6sRQ3d+V6rtQ==
 +SHA1-Digest: gQBODUgxiI1UgtC57a2Wajdi6wQ=
 +
 +Name: locale/vi/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qxweMkJB+v9s4w29kZtIfQ==
 +SHA1-Digest: PiFx9JwIrW43SUb0UHMG+z8/FPk=
 +
 +Name: locale/vi/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: KBEQkJh5QCDMdeV6yUgcdg==
 +SHA1-Digest: V7VOAXm/1cDgz5Dlg7FlVQm73+Y=
 +
 +Name: locale/vi/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vqSTAfZweQFlqe8ecGgJLw==
 +SHA1-Digest: cKS1JMvJ1IJItiSuOBdhm0JAAt8=
 +
 +Name: locale/vi/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yaft1RtGn4pO5LUy9GZHtg==
 +SHA1-Digest: 6DZm33F8kcyizXsLb8w9r4xqn24=
 +
 +Name: locale/zh-CN/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: aQMj7XbqqV3oCXGn3NRw5g==
 +SHA1-Digest: AlR/ToRfr6D+aww87Szmu5dO54U=
 +
 +Name: locale/zh-CN/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: mI6aP+EgNNIp2qtIsjLMmw==
 +SHA1-Digest: IoD4vALlopJ5JeQQ7eumm7E4BPE=
 +
 +Name: locale/zh-CN/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: icXCGTg8EZjlhGiPftaRtQ==
 +SHA1-Digest: nxH8YiUAwRx6ON1eSdcaAW6In8c=
 +
 +Name: locale/zh-CN/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: e3nB8Q4jOasdMYnQTwydAA==
 +SHA1-Digest: w6D0UfKJbOK97rs1RlajxqvHJe0=
 +
 +Name: locale/zh-CN/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uvaQzvf36AcNMhqVBIN7Jg==
 +SHA1-Digest: HV1m68qZTypfjrDMdPHmn1CZmiI=
 +
 +Name: locale/zh-CN/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8M8ZM3tu60dDBUthBM+0AQ==
 +SHA1-Digest: 4KltluFQeCpAvCpazwqJoZ9oEoQ=
 +
 +Name: locale/zh-TW/cookies.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8nXT6mCx75EgMDJGyvNuwQ==
 +SHA1-Digest: wprFvU5usflzf9/IKJyMabBC6C4=
 +
 +Name: locale/zh-TW/firebug-amo.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Pr+ICJcZnN5ctTePFO7ojg==
 +SHA1-Digest: itoh3Gv059oxrjvwOVuwE8dZtpg=
 +
 +Name: locale/zh-TW/firebug-tracing.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: RVpfYkgtXvyd3DXA1XT4Gg==
 +SHA1-Digest: ifq2h0PwBf5D2J5JGmmBE7T6gSk=
 +
 +Name: locale/zh-TW/firebug.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: IIPQoAPzweY/ZdON0oaj1g==
 +SHA1-Digest: D3rZsKBEKyjr9r8Wa52RD5+5CRg=
 +
 +Name: locale/zh-TW/keys.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OSZGxnpTwiX+S+CsQu5UqA==
 +SHA1-Digest: JuVH7pba0dNeRKN2NU9gs4HcNX0=
 +
 +Name: locale/zh-TW/selectors.properties
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: B5h9zWXqc4tQclIet1rRlg==
 +SHA1-Digest: +YilQxbEE9e8qSiMEwVenufEpcE=
 +
 +Name: modules/fbtrace.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: z4QYfokxxVdHd8kix7eStw==
 +SHA1-Digest: tExXtyByHY797+8W3PvSKS7VRtg=
 +
 +Name: modules/firebug-http-observer.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VENa8QoZxH7jdxufy234ow==
 +SHA1-Digest: FAHVkEsG5DCMYqoMfoj5xlBPpGE=
 +
 +Name: modules/firebug-trace-service.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xcdxDy/TCqsr0aX+JCkRzA==
 +SHA1-Digest: q0WJDbDsdiOeZS/eIxoCcfpayXQ=
 +
 +Name: modules/gcli.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7UbMfhbMNLfryGVF2fNgdw==
 +SHA1-Digest: nce2eAoYnqlYCJf6VAPiRZ9jBw4=
 +
 +Name: modules/loader.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zjx72h0LVYKxy4b76zE7fQ==
 +SHA1-Digest: /k0RYYd8gaDifhYHH3QAAwCDtmI=
 +
 +Name: modules/locale.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SIyhq4sFonw8hLH0VCePUA==
 +SHA1-Digest: EAPevGGcJLh/yuZ9ifHGw7Gzp14=
 +
 +Name: modules/mini-require.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YGk4IAmZWMdZ8qSJZrGEBA==
 +SHA1-Digest: f8SIoMTlIe6Bzgg9WBzKpx/iGmg=
 +
 +Name: modules/observer-service.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2oOgnKFFdnOgotXF8RAR5g==
 +SHA1-Digest: zZ60QzHd1BUDIgPAOltaqTH4AQE=
 +
 +Name: modules/prefLoader.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zXDfsge5qCdN89RO2lrViQ==
 +SHA1-Digest: cH8hL5aD/RG/eCLieEgMocOi4yc=
 +
 +Name: modules/require-debug.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SzQxRFaFGTc+ZbcftfyHAg==
 +SHA1-Digest: Ex4l2FE0Cb8CKjbHSgDys4Zw+w8=
 +
 +Name: modules/require.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YBBmgRo/U0qmfEK/3thQ2A==
 +SHA1-Digest: xsOFMLZ1FZ23ZRyrhsMojL6aYAs=
 +
 +Name: modules/storageService.js
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: OZmGbJuemhvms+xJcg676Q==
 +SHA1-Digest: Mf8K3InIhRyVWBQQLsa1HoXnEq4=
 +
 +Name: skin/classic/activation-menu-console.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YzRw6OeGVUc5O7Odv26cEw==
 +SHA1-Digest: hWsCMB5F4v5ppV8MaTdjqtmTYaY=
 +
 +Name: skin/classic/activation-menu-net.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cm82VszVZr02pgFejowIYA==
 +SHA1-Digest: ruESasmNmYpa5UMPN62dWUpfLEA=
 +
 +Name: skin/classic/activation-menu-script.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZRbIsfTnW4WJ5vBBbERM+A==
 +SHA1-Digest: BKfpumat2+NPrbZUY7V1m0L5Xck=
 +
 +Name: skin/classic/arrowDown.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: X452gzEGFMEZxLHGBB+wuA==
 +SHA1-Digest: fw69vi2FDZ+KJzWHPadvIYWGfgE=
 +
 +Name: skin/classic/arrowUp.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rxzPz904FDSUPQYPSefUSQ==
 +SHA1-Digest: BdDWNAc7lU6y1mq8xy+mq+L0B/E=
 +
 +Name: skin/classic/balloonNote.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7ICwohtry7rivuXSt60kPg==
 +SHA1-Digest: erOu1FLHUjZdMRZJPMqdk+O0+TQ=
 +
 +Name: skin/classic/bindings.xml
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ywcNtqFPM3qaO/yI6EAzKA==
 +SHA1-Digest: lK0Qwo/5tPJsal/tubis44jB1nA=
 +
 +Name: skin/classic/breakOn.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yx0ToKM/rwwL/XhjgTsNWw==
 +SHA1-Digest: wXSXv/Piloml5Neh2fG6SOOd2bI=
 +
 +Name: skin/classic/breakOnArmed.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: CcsMnUH4wWb0s7tLgsWF6w==
 +SHA1-Digest: U6VcW+g4WNeL/iZ0eWHJ7opFQIo=
 +
 +Name: skin/classic/breakpoint.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: YYeJV+ExpozYP6pSE5LRpw==
 +SHA1-Digest: BvKSa1uTOZ+PZOI9310nz7MIC24=
 +
 +Name: skin/classic/breakpoint.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ehYROf6zuawSgADaAaYERA==
 +SHA1-Digest: 7/GQylN6h3vH0whDH/GtopFm/e8=
 +
 +Name: skin/classic/breakpointCondition.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MBvIQdcbod8bS+IhA1iXuw==
 +SHA1-Digest: lw7enO/D0mIIP/5xvSJUXEm/oKw=
 +
 +Name: skin/classic/callstack.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: /GPxrYoBulKPSRCqpbKjtA==
 +SHA1-Digest: u/fGoAv7Vll5YMs5/XF52B1r3Rw=
 +
 +Name: skin/classic/callstackPanel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: H0wAojzfm9c2acfdLnEAFg==
 +SHA1-Digest: feqYZbyloj9m30zF1w1n3rHselM=
 +
 +Name: skin/classic/collapseSidePanels.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xRCQb6Uv+2SEi+ZtFZKKBA==
 +SHA1-Digest: PEpw9JQLx3WheIzEvq6wK1ExAJo=
 +
 +Name: skin/classic/collapseSidePanelsVertical.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: s6ewmqIT6xhA6hSTszLvVg==
 +SHA1-Digest: ix683m8uf39Fk63bAAZXWX/GIXw=
 +
 +Name: skin/classic/command.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wk3uz661qJ4o3DOYSv0I0A==
 +SHA1-Digest: xf9pDRhFMPJ5/exdnW4kljIIPqo=
 +
 +Name: skin/classic/commandLinePopup.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Obf2+tv0Tby0a6uV8lQznQ==
 +SHA1-Digest: VugMCQRldEEWEHY1HkNAQsiHG6Y=
 +
 +Name: skin/classic/console.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: idMff6A0iahlX3ja4wQqDQ==
 +SHA1-Digest: uT5ZzMIxgUirHg2lk/hi7KviTOk=
 +
 +Name: skin/classic/continue.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GbUcYKz1L5QONpApU3Fnwg==
 +SHA1-Digest: /qOX4q4oTcXgmGdvHwQ5GOMuU0E=
 +
 +Name: skin/classic/css.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7DS5aSZEPQ5kyX4BnRZqoQ==
 +SHA1-Digest: urE5w50zxsFoMswiiNt6VdXCB3Y=
 +
 +Name: skin/classic/customizeShortcuts.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kIQNK1iKf9a/H5El2fjNQg==
 +SHA1-Digest: 2W5Bon0YcO8kGvNYeHYUjWeBbi4=
 +
 +Name: skin/classic/debugger.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MQ4Yn2fJu1G3Y+vcokEU4Q==
 +SHA1-Digest: V3ofMjvk27apdS9ZHL/Hrezsvog=
 +
 +Name: skin/classic/disable.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0FMCCKn8iEKcxr/w147TAw==
 +SHA1-Digest: ULonwiGI+1wH/8fjzTJymSjxnnU=
 +
 +Name: skin/classic/dom.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0QoiZEeITcCifMUM/614mA==
 +SHA1-Digest: n/Yc4xFZ54FsSlXzyt39wRS+694=
 +
 +Name: skin/classic/dropMarker.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kqSmhcwXYTU/EQtKjkn7GA==
 +SHA1-Digest: cuztnU9b46wuldFNRp7GgS5ZthI=
 +
 +Name: skin/classic/error.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: SZd57RZhyO0ZxwUjVplqPQ==
 +SHA1-Digest: gxNlxnyjHI7oRX+Nr00m509mhCs=
 +
 +Name: skin/classic/errorColumnIndicator.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nTFrTC00x6aS8Lt2h45XbA==
 +SHA1-Digest: ZESW7vMmCjUpbap8uhHPRwKJyrw=
 +
 +Name: skin/classic/events.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: C9UMcX9hBXmhFRcz+FfjbQ==
 +SHA1-Digest: rBHaDseH1vOc4ILw0yW6yZmUJGo=
 +
 +Name: skin/classic/executionPointer.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wgqFCr9OBzT/ouPIRe5CxA==
 +SHA1-Digest: 6nZCNCQ98pDH6ilHTvH78Hsfqns=
 +
 +Name: skin/classic/expandSidePanels.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8+b1ShNLKRYGVRhzMltBCA==
 +SHA1-Digest: 9msnsn3BROtbGRXrlvbP2nebFMo=
 +
 +Name: skin/classic/expandSidePanelsVertical.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VreH/DcqptOWrEtPIOsiiQ==
 +SHA1-Digest: odAsshmqeViQAVeWhxzjl6KRFBU=
 +
 +Name: skin/classic/firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TGxsNWMwi82FVAoXuZZ2kQ==
 +SHA1-Digest: zfID0Q79DAFbvqlF2kamR8MDlJQ=
 +
 +Name: skin/classic/firebug64.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uwPmrK9kcN8fXgAO98jn+g==
 +SHA1-Digest: eDSm1PtR/6u+vwLioCP5lC8kTyU=
 +
 +Name: skin/classic/firebugBig.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LOFVnCKCorn57iSd/XFFtQ==
 +SHA1-Digest: oZybzzrQUNFRbAliczCopL22aXg=
 +
 +Name: skin/classic/firebugSmall.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1S8jOSwzS9jq+xVJlxJJ4g==
 +SHA1-Digest: tWNqtNwfoBPG1wI4+Nhg8qOxego=
 +
 +Name: skin/classic/fontViewer.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: c+zNkBXwqRDPcsSyhnf0qQ==
 +SHA1-Digest: zcQfLuxogrR/qVUwr88foIQYnjs=
 +
 +Name: skin/classic/html.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: UYnCEalAMMw9zepX2JP+wQ==
 +SHA1-Digest: fiySQ6cLy61Mzs9PDLcR8HAlxXU=
 +
 +Name: skin/classic/info.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LTkyUE+l9fsMPT8XSXtnDA==
 +SHA1-Digest: lstIPaPgHAQcpMOFGaZqHiGGI4k=
 +
 +Name: skin/classic/inspect.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vReHUiBRiQrM4txJurYP5g==
 +SHA1-Digest: T8yCLbyPx85LYF1drFa+bpXjROA=
 +
 +Name: skin/classic/jsonViewer.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BAsT7ivAwtd+25XGHCs8gg==
 +SHA1-Digest: KgC55/LsQ+IJMK93vMDYoA7f+Uo=
 +
 +Name: skin/classic/layout.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 23fCSpJ4unqKJmQCcY5J+g==
 +SHA1-Digest: JqmIuPdak7jodLS493xVdL5AIQs=
 +
 +Name: skin/classic/loading.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: wwS3HcG39HGTpnftsfDYrg==
 +SHA1-Digest: KBxqMg3C2FfvvGGvduGwvrZS/sQ=
 +
 +Name: skin/classic/navigationBack.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lu+io0xpOPKoicSSC3OFvQ==
 +SHA1-Digest: N4lAkf/yTGHskk54ch6xb9qxZlc=
 +
 +Name: skin/classic/navigationForward.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0v7bq2zIYwZ+u66mnVm11g==
 +SHA1-Digest: lF020imNMtKbj/SjVR+jqT6dTQo=
 +
 +Name: skin/classic/net.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: lQzGyX0YiIDDoFzL4Db4xQ==
 +SHA1-Digest: vHiWJgBsfn/aHUtof9buiraDmKo=
 +
 +Name: skin/classic/noteBorders.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8jdxtY6AvFnJ52QqAqvmIQ==
 +SHA1-Digest: bLWDAlr+GW9gdpv7A71en9t7Usg=
 +
 +Name: skin/classic/noteBordersUps.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3JvKcj3shtHXm13UiUNXDA==
 +SHA1-Digest: r+6MviNDlS/XIB5qvMRWtsSuJFg=
 +
 +Name: skin/classic/noteContent.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nXvIFiUzAjzqhTCdneJAdQ==
 +SHA1-Digest: K5qPuXjVYLHiMt1Iu7QTpudv3QI=
 +
 +Name: skin/classic/noteContentUps.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: khktnlZWbFfTA0MgK9pCOQ==
 +SHA1-Digest: UfDj1wL8DOQ3IfXNAJw2jHIhXww=
 +
 +Name: skin/classic/noteCorners.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 6mvT373MJe1yMp2FzGh0Ig==
 +SHA1-Digest: kiFQmOaNZUflRXRi+R5Pt56keyw=
 +
 +Name: skin/classic/noteCornersUps.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: oeYcrywOKQn3gBD4dzdKiA==
 +SHA1-Digest: 5pCKyTvuqKs5v0langp2n2Q0KjM=
 +
 +Name: skin/classic/optionsMenuTarget.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0McTIQB7fMZ9QGpVURBRAw==
 +SHA1-Digest: 8io6/72PTHZvrPyoQtnFZ9TwAM4=
 +
 +Name: skin/classic/optionsMenuTargetHover.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: F5MoY3yIDnvltHGzEvNdjg==
 +SHA1-Digest: UpFT882fcQpPMRUEflNhoHLBuK8=
 +
 +Name: skin/classic/panel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: p2WsFiBV0xlcpqA38vz8GQ==
 +SHA1-Digest: tXgTd6/ltm7uFc/Dtu471tfI9k4=
 +
 +Name: skin/classic/panelbase.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: kz1jATRZVpKB+h8L9NcH/w==
 +SHA1-Digest: 7IFci/ylzdFoL6rhicrm+J9FHZM=
 +
 +Name: skin/classic/panelNotification.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: d3PT7gd54jimp7ggnyT+RA==
 +SHA1-Digest: XAN9OB4LKlBmsC6Kh277jMgA9zY=
 +
 +Name: skin/classic/performanceTiming.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: WD8n+GKercHNPernPfLZAQ==
 +SHA1-Digest: ha5dzvFDoBqGVX65OrDL696ZpJQ=
 +
 +Name: skin/classic/prettyPrint.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TdenMGq+ev5nhCuOV/j7xQ==
 +SHA1-Digest: kjmXuwceW87YfQFx8GLrKSiLpbY=
 +
 +Name: skin/classic/quickInfoBox.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 9GoaPZP+E4L3QjzKaiDZwg==
 +SHA1-Digest: RyaG/XZ2QxphrGcCm/alJ709smU=
 +
 +Name: skin/classic/quickInfoBoxPanel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Nt/5wPhGKiECffZlTuCA+w==
 +SHA1-Digest: lvvrJ3EXn5aznvwctE/kmpM5fWA=
 +
 +Name: skin/classic/readOnlyProp.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LdxYSt/MRJNnMbGGcONKIA==
 +SHA1-Digest: gjrbzCuy5hzYHOhbgUJSG4S1ZzE=
 +
 +Name: skin/classic/rerun.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: tIPY9ONcadvzU/iETVZvTg==
 +SHA1-Digest: 6wpHFMcgt1HNQ9ih7ev+ZKMinBI=
 +
 +Name: skin/classic/rulerH.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: iAFuxMRm+s3wT/3qyfgpgw==
 +SHA1-Digest: hnkDaMEucNPQE4XZN/3X+lTpyUw=
 +
 +Name: skin/classic/rulerV.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: bSPSL1drREE9tLDXTVlsKw==
 +SHA1-Digest: Zlhy10ed7CRIQ6JaELa7d42kEOM=
 +
 +Name: skin/classic/scriptPanel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ctCwchB6JLsFMpiuK+mmXQ==
 +SHA1-Digest: DC09Nb3ECRhTRYAzEz25eKWQR68=
 +
 +Name: skin/classic/search.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ZNTEfg5LY27JQ+o3LDL3pQ==
 +SHA1-Digest: YL/NXAaSRjXiEz6MZpqDJGwpMaw=
 +
 +Name: skin/classic/searchCancel.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JCl9lqTG2s/DU54xarhexg==
 +SHA1-Digest: xkd8BmzrVO4VdGMcEwbf9ow6pyU=
 +
 +Name: skin/classic/searchNext.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Qkg7Sgq5C1cYx+24KbVK6Q==
 +SHA1-Digest: 8hCuqJcV0auctR682FzQIbYRiB4=
 +
 +Name: skin/classic/searchPrevious.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: JPTcwTUPrwxuNPT70zOI+Q==
 +SHA1-Digest: Ic+DUB0Zzf6GpfG1ikETQCGgynU=
 +
 +Name: skin/classic/selectors.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: azq+4PbptAy5hn8Q4LYuuA==
 +SHA1-Digest: vcNQ6nMM6D4vkpppxLg6A06uBp4=
 +
 +Name: skin/classic/spinner.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2NxT4DR8u1yo19noaSR/iQ==
 +SHA1-Digest: BV6SLbAqsLC4Oe8lW1zGsxrshLo=
 +
 +Name: skin/classic/statusPathSeparator.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 1RR7dFvs8mwEmsY25Bv9ig==
 +SHA1-Digest: vHFrYtWglNRZZk4VkHMCh+FdMZY=
 +
 +Name: skin/classic/stepInto.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ySZweJl8fClr9TT4O+BBNw==
 +SHA1-Digest: JRjpeBzHxFjBBlazv0plE2bzGOE=
 +
 +Name: skin/classic/stepOut.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: vHh0VTQYc6rFc0fRIbzPAg==
 +SHA1-Digest: 1F4ZM1CWATKV4U+dbiuTyeBWihI=
 +
 +Name: skin/classic/stepOver.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: GRNLt5ET+mtpCJ5rKQZgfw==
 +SHA1-Digest: UQyKot5Ax15ChZ2R+z9EgpxeU7Y=
 +
 +Name: skin/classic/tableRep.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: jJoTzqd+qgv6OzgL2UY57g==
 +SHA1-Digest: gH2n85pANmYvu05gPRhv7YI2J5g=
 +
 +Name: skin/classic/timeInfoTip.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yE+QQ273GeqqtpNp+kWX8Q==
 +SHA1-Digest: hnhYpzYzf1s1JsFZNvMS+Jn46JE=
 +
 +Name: skin/classic/trace.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: spYGvjQS/szDIxq9e8RbsA==
 +SHA1-Digest: /5MVb9m1E9Y3zAOux+h828Ti4wg=
 +
 +Name: skin/classic/warning.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 7kuQB0/nVEZGjArSBBepHg==
 +SHA1-Digest: BrMJgwGWyTyqX8O6nQOtwX7Taoo=
 +
 +Name: skin/classic/watch.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: U2BIJU10RtA6Nh6xyvYrhg==
 +SHA1-Digest: wVe44AVIikzJsgzBmkO9Vcdif6w=
 +
 +Name: skin/classic/window.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 8HvLiZArGotQvpEdRYF24A==
 +SHA1-Digest: clHrbs6lH6JQTyc0oHw6I2LfFq0=
 +
 +Name: skin/classic/wrappedListener.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: w62CBrLeQIx82KZJWWlJpQ==
 +SHA1-Digest: FM7Z0myFeJYssv/FyC5nKoK3XRE=
 +
 +Name: skin/classic/breakOn/breakOnError.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VAWCUsTpkCcr3lPRh3w6NA==
 +SHA1-Digest: TJgDGZu+Hs0KHdP7MJsBzInVaQA=
 +
 +Name: skin/classic/breakOn/breakOnMutate.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: DGn9nL4jXcgciGqCo1+dNA==
 +SHA1-Digest: Pg6gpWHcWOoVVV4OXYy8679wf8Q=
 +
 +Name: skin/classic/breakOn/breakOnNext.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: rF6hmIhGBUbt6rsfYC642A==
 +SHA1-Digest: i56tMFGnV/t2OshpxPuxOdx7gOM=
 +
 +Name: skin/classic/breakOn/breakOnXHR.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yO55ZAc+ysqozcanmOc9VA==
 +SHA1-Digest: ldaYzrE3LrcOnwTWIXJ2xTvZHpE=
 +
 +Name: skin/classic/cookies/activation-menu-cookies.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: CBrf4AoFoz6YzjcK6aM6sw==
 +SHA1-Digest: bwECpkirSLfrGkhEV0l4j7IUGDQ=
 +
 +Name: skin/classic/cookies/breakOnCookie.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: sTXTk/8IFFHRJ2Ma/VtmRw==
 +SHA1-Digest: 48ibbd8Ut2Ujxg+QbaOTJ00NsP8=
 +
 +Name: skin/classic/cookies/cookie.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zWkDVCT9MtshImvi37p3YQ==
 +SHA1-Digest: D7QxbxpVwv/6oeB1sZPi1xcNnUw=
 +
 +Name: skin/classic/cookies/cookies.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: K8XFEIdU0+zrjeR4ddGFSQ==
 +SHA1-Digest: eXmC5MvbFMHUCRiJZJeoBdxYGys=
 +
 +Name: skin/classic/cookies/editCookie.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: xdnJWh6K94HgcIsrftcG5A==
 +SHA1-Digest: nV3OSI6SMnPnRZLlDUthwJJE70Q=
 +
 +Name: skin/classic/cookies/trace.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: cbr+7tpWcpjDFkHK+C5WQA==
 +SHA1-Digest: NUBT0T8FnrO0XdHYYTsPpFU6cy4=
 +
 +Name: skin/classic/linux/console.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3M5hbgOS6j5zcgC7GQmr5g==
 +SHA1-Digest: FVExHMpmxOPZGcDDuywtt0v53JI=
 +
 +Name: skin/classic/linux/cookies.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: otdef/028KQOXjy9wNWNbw==
 +SHA1-Digest: +6ajqHVx2q6Yj4cpc1kqxAOf6lk=
 +
 +Name: skin/classic/linux/firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: qgk/lztleGEoy9mDC9CEnA==
 +SHA1-Digest: 5nuacJgS3FNMPKT5ZhsideBjyUY=
 +
 +Name: skin/classic/linux/net.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: g6X0t0oBST/6aGUsK4mm9A==
 +SHA1-Digest: NobYBVuI9xM1KFmRNYqwP9Rb0p4=
 +
 +Name: skin/classic/mac/breakpointConditionEditor.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: jWXCOzG5/7mh0bp4KV0OmA==
 +SHA1-Digest: EUBoPjNh+4sq9mrCkL7V/nLPkiQ=
 +
 +Name: skin/classic/mac/breakpointConditionEditorDown.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 5XvhlBw7wuqm2l1Nakk2dg==
 +SHA1-Digest: dEzvPad/BqvEuiYAFpsfebg73DQ=
 +
 +Name: skin/classic/mac/close.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2dXLbRXKBMYUm7Rrh62jZw==
 +SHA1-Digest: CKq6JqdwYTnShJX5Ozinbic4WL8=
 +
 +Name: skin/classic/mac/collapseSidePanels.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fIXrUnmyTPTtokB9uXKVPw==
 +SHA1-Digest: /Loiu87BblD5sKZNfkvBFyUXeGM=
 +
 +Name: skin/classic/mac/collapseSidePanelsVertical.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Y1T7uu35gCf2dHBbxSkqFw==
 +SHA1-Digest: 3oHX2HveXhN++Lewiro7Mi8qkiU=
 +
 +Name: skin/classic/mac/commandHistory.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: VzsRuQrurr71FfZl+LIP8Q==
 +SHA1-Digest: KafzYxh4IV5Bn4nFHRFqSi7RqWQ=
 +
 +Name: skin/classic/mac/console.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: BJcJpjLYJcBAlP6QW7Bt6g==
 +SHA1-Digest: nVuAntpRLUYqOgA5DK9xE8xff9g=
 +
 +Name: skin/classic/mac/cookies.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: fSdS2EobjhT4jT83nEj2xg==
 +SHA1-Digest: 7D+4o8lbbuf6Ld7jSHG9i+oq4AI=
 +
 +Name: skin/classic/mac/debugger.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: nsr2Qax8nMGx86Zj7rm8Fg==
 +SHA1-Digest: TGRAWEQWIZsTSG9QXUguZXeY8t4=
 +
 +Name: skin/classic/mac/detach.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XiYjNdPNuP4KgNTmbpKEBA==
 +SHA1-Digest: Z3ZLb8Na3mHL1/dSQoMyY9cl7kc=
 +
 +Name: skin/classic/mac/expandSidePanels.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: uC3EYFcE2AVeTFuWhllSwg==
 +SHA1-Digest: PYskgccaZToLIuq9y1xsPM2tfYA=
 +
 +Name: skin/classic/mac/expandSidePanelsVertical.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Dy5BAM78LacDxEqByRi8Og==
 +SHA1-Digest: Fz7tDcfezDYkNDqVi7HmKHDZC+M=
 +
 +Name: skin/classic/mac/firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 0vegIzoZK8GFEPquxXjtmA==
 +SHA1-Digest: BWjKRF3amvzbqouTDXhEg2iVsPI=
 +
 +Name: skin/classic/mac/minimize.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: grzvmpO/3ztgwv46+obpKw==
 +SHA1-Digest: 356hTQ/P840889mGA18QVc1hBjg=
 +
 +Name: skin/classic/mac/net.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: W514rvOzIPBYhH4m5+Ozbg==
 +SHA1-Digest: n3FUnl2o28+yaGZ941bOqxE8XVU=
 +
 +Name: skin/classic/mac/optionsMenuTarget.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: TIMLe6S/GVX+joWQAjI05Q==
 +SHA1-Digest: Lge8mJTk1NMHGxNvfHcBKjNs3xM=
 +
 +Name: skin/classic/mac/optionsMenuTargetHover.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: u9iO2DZffvT6PIrtLNdCyw==
 +SHA1-Digest: h7S+N/YxU1n4OYuVJ/EFvtDNfhA=
 +
 +Name: skin/classic/mac/panel.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: AlwXXqlR8g8yIkko897ZQA==
 +SHA1-Digest: 5YfgsVycjYB89tvNyasHkF3KkzA=
 +
 +Name: skin/classic/mac/pin.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: t7GFCUJIs7xKmy3TjYH3og==
 +SHA1-Digest: 7VxqX8eLcYDQhs4x/JSAxjwpQlE=
 +
 +Name: skin/classic/mac/pinned.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Rb1zp8rvCrluz2V5SoA4uw==
 +SHA1-Digest: hw1ESoG8Jnes//DI8v24DuFYlhw=
 +
 +Name: skin/classic/mac/quickInfoBox.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: Ky0dMiutA3JVmHnIboVICw==
 +SHA1-Digest: s1r0WLTQJrAWxAV27qmMrY8fVzQ=
 +
 +Name: skin/classic/mac/search.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: DS/3gTMGEmc7Ltd1310ffQ==
 +SHA1-Digest: 3VE4jVDtj0XkHEuygSK22JZc3G8=
 +
 +Name: skin/classic/mac/twistyClosed.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MbyvQBdAWB11H4YzuNATgw==
 +SHA1-Digest: EfBwNoy7MrPhTqUcbQeLRxi9kfU=
 +
 +Name: skin/classic/mac/twistyOpen.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: UebHwh2xwpy6Ml8hMVlN/Q==
 +SHA1-Digest: Jve+i9XgAefVKefaHH8zAOeqiNo=
 +
 +Name: skin/classic/mac/window.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: DoCyfVwz1NSQoyHT5RhYTA==
 +SHA1-Digest: m40kgCCkNOi/GNlPU9V8x9PPi7E=
 +
 +Name: skin/classic/win/breakpointConditionEditor.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: LqBX5xCLxcK/sWZVSWK7ew==
 +SHA1-Digest: MIZU+0NFKvfKgtJojuJcU/m7Jas=
 +
 +Name: skin/classic/win/breakpointConditionEditorDown.png
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: o+SshOp39W4Zb/TM85J1Lw==
 +SHA1-Digest: 5XJQEDhlynn+4t2z6UYF9Qkdz5Q=
 +
 +Name: skin/classic/win/close.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: MB/XP38hvJqX4AAgKqqhkQ==
 +SHA1-Digest: aZeswGD8G9LNMC/Qtu50kc0yMlw=
 +
 +Name: skin/classic/win/commandHistory.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: ivSOoxLqG8NvBuhE6xtc1w==
 +SHA1-Digest: XE5u39xTzHLDHNGdB0mAdfawWBo=
 +
 +Name: skin/classic/win/deactivate.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 93F5EJVhK7g2LKR4zLhCBg==
 +SHA1-Digest: C7QjcHRFATt3CYNzauYwZTcBm5o=
 +
 +Name: skin/classic/win/detach.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 2J9JwcSe7dtbvcYeb1pu/g==
 +SHA1-Digest: BmPV3ehAsxAxxfARo484vW/tA1Q=
 +
 +Name: skin/classic/win/down.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: zVuBnO6bnml895TX59F0QQ==
 +SHA1-Digest: pyvIvtSQ5Uktb10S6m/yVPQ8cPM=
 +
 +Name: skin/classic/win/firebug.css
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: b8rnmpfJMK/ygM12ea6I/w==
 +SHA1-Digest: RBriqIM6Ozv8cFir7QW/HHH8sWs=
 +
 +Name: skin/classic/win/minimize.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: IMRDWtdCAjQR7DYNqpb69w==
 +SHA1-Digest: C7/EmzwlNYT2V/jJCgimbk8D6x0=
 +
 +Name: skin/classic/win/pin.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 70TQX67PuV01CYjDbyeEGw==
 +SHA1-Digest: FHIuWaRPdswt5BL0lJrJO6TdnYc=
 +
 +Name: skin/classic/win/pinned.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: XeYo0SfE2P3hCXIuj/nq7Q==
 +SHA1-Digest: s8HzEdFyVf+5dneEcTwlL4uSyhA=
 +
 +Name: skin/classic/win/twistyClosed.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: yHOjTtsu6B1abGiHpNrZkg==
 +SHA1-Digest: oFs3XCeZQFVKnMUQhcdPxfyRHoA=
 +
 +Name: skin/classic/win/twistyOpen.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: 3+YKfsavEeDqdWunTA3wWQ==
 +SHA1-Digest: CBtyXq8AISFnnRsjrETtT8zE+ec=
 +
 +Name: skin/classic/win/up.svg
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: +ACY3yLS6QE33wZMuFLpKw==
 +SHA1-Digest: 3pyYOpIJSmgv6WaUMpMJxXQ9QlQ=
 +
 +Name: license.txt
 +Digest-Algorithms: MD5 SHA1
 +MD5-Digest: imDMjjQBGsHnSU9kxGaZSw==
 +SHA1-Digest: 6Q5Ia5b3ACtCPUpTIcDZDE6xxWM=
 +
diff --cc META-INF/mozilla.rsa
index c8cbb9d,0000000..36b6cb3
mode 100644,000000..100644
Binary files differ
diff --cc META-INF/mozilla.sf
index 7996f86,0000000..8ae8ceb
mode 100644,000000..100644
--- a/META-INF/mozilla.sf
+++ b/META-INF/mozilla.sf
@@@ -1,4 -1,0 +1,4 @@@
 +Signature-Version: 1.0
- MD5-Digest-Manifest: ZPBXK7KQDV5STKw9poHXjw==
- SHA1-Digest-Manifest: 3MMr23DaSW6iEYcEEOU+flsj34A=
++MD5-Digest-Manifest: KgXeJ/PXkKQgvdET8xAE4w==
++SHA1-Digest-Manifest: YG9VuLoxjWpjOnRTwQgG4Sa7jOI=
 +
diff --cc content/firebug/branch.properties
index 3e68b01,0000000..354a2a6
mode 100644,000000..100644
--- a/content/firebug/branch.properties
+++ b/content/firebug/branch.properties
@@@ -1,8 -1,0 +1,8 @@@
 +# DO NOT MERGE INTO TRUNK
- RELEASE=.15
++RELEASE=.16
 +VERSION=2.0
 +TRUNK=
 +# To allow build.xml to drop the xpi directly into the svn working copy for getfirebug.com
 +# the root of the fbug svn tree must be be at the same level as the root of getfirebug.com
 +# Otherwise specify your own path.
 +GETFIREBUG=../../../../getfirebug.com/tags/production
diff --cc content/firebug/firefox/browserOverlay.js
index f1688e1,0000000..6e207c3
mode 100644,000000..100644
--- a/content/firebug/firefox/browserOverlay.js
+++ b/content/firebug/firefox/browserOverlay.js
@@@ -1,1001 -1,0 +1,996 @@@
 +/* See license.txt for terms of usage */
 +
 +define([
 +    "firebug/lib/trace",
 +    "firebug/lib/options",
 +    "firebug/lib/locale",
 +    "firebug/lib/events",
 +    "firebug/lib/array",
 +    "firebug/lib/string",
 +    "firebug/lib/xpcom",
 +    "firebug/firefox/browserOverlayLib",
 +    "firebug/firefox/browserCommands",
 +    "firebug/firefox/browserMenu",
 +    "firebug/firefox/browserToolbar",
 +    "firebug/lib/system",
 +    "firebug/lib/devtools",
++    "firebug/lib/channel",
 +],
 +function(FBTrace, Options, Locale, Events, Arr, Str, Xpcom, BrowserOverlayLib,
-     BrowserCommands, BrowserMenu, BrowserToolbar, System, DevTools) {
++    BrowserCommands, BrowserMenu, BrowserToolbar, System, DevTools, Channel) {
 +
 +// ********************************************************************************************* //
 +// Constants
 +
 +var Cc = Components.classes;
 +var Ci = Components.interfaces;
 +var Cu = Components.utils;
 +
 +var {$, $el, $stylesheet, $menuitem, $menuseparator} = BrowserOverlayLib;
 +
 +Locale.registerStringBundle("chrome://firebug/locale/firebug.properties");
 +Locale.registerStringBundle("chrome://firebug/locale/cookies.properties");
 +Locale.registerStringBundle("chrome://firebug/locale/selectors.properties");
 +Locale.registerStringBundle("chrome://firebug/locale/keys.properties");
 +Locale.registerStringBundle("chrome://global-platform/locale/platformKeys.properties");
 +Locale.registerStringBundle("chrome://global/locale/keys.properties");
 +Locale.registerStringBundle("chrome://firebug/locale/multiprocess-notification.properties");
 +
 +Cu.import("resource://firebug/loader.js");
 +Cu.import("resource://firebug/fbtrace.js");
 +Cu.import("resource://gre/modules/AddonManager.jsm");
- Cu.import("resource://gre/modules/NetUtil.jsm");
 +
 +var servicesScope = {};
 +Cu.import("resource://gre/modules/Services.jsm", servicesScope);
 +
 +const firstRunPage = "https://getfirebug.com/firstrun#Firebug ";
 +
 +var auroraChannel = "";
 +try {
 +  var value = servicesScope.Services.prefs.getCharPref("app.update.channel");
 +  auroraChannel = (value == "aurora") || (value == "nightly-gum");
 +}
 +catch (err) {
 +}
 +
 +// xxxHonza: getfirebug.com (or just the firebug/3.0 directory) is
 +// surprisingly often not available.
 +var downloadError = "Failed to get the latest Firebug 3 XPI from:\n\n" +
 +    "https://getfirebug.com/releases/firebug/3.0/\n\n" +
 +    "Try again or download the latest XPI manually.";
 +
 +// ********************************************************************************************* //
 +// BrowserOverlay Implementation
 +
 +function BrowserOverlay(win)
 +{
 +    this.win = win;
 +    this.doc = win.document;
 +}
 +
 +BrowserOverlay.prototype =
 +{
 +    // When Firebug is disabled or uninstalled this elements must be removed from
 +    // chrome UI (XUL).
 +    nodesToRemove: [],
 +
 +    auroraChannel: auroraChannel,
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Initialization
 +
 +    initialize: function(reason)
 +    {
 +        // Expose BrowserOverlayLib object to extensions.
 +        this.win.Firebug.BrowserOverlayLib = BrowserOverlayLib;
 +
 +        // This element (a broadcaster) is storing Firebug state information. Other elements
 +        // (like for example the Firebug start button) can watch it and display the info to
 +        // the user.
 +        $el(this.doc, "broadcaster", {id: "firebugStatus", suspended: true},
 +            $(this.doc, "mainBroadcasterSet"));
 +
 +        var node = $stylesheet(this.doc, "chrome://firebug/content/firefox/browserOverlay.css");
 +
 +        if (System.isMac(this.win))
 +            $stylesheet(this.doc, "chrome://firebug/content/firefox/macBrowserOverlay.css");
 +
 +        this.nodesToRemove.push(node);
 +
 +        this.loadContextMenuOverlay();
 +        this.loadFirstRunPage(reason);
 +
 +        var version = this.getVersion();
 +
 +        BrowserCommands.overlay(this.doc);
 +        BrowserMenu.overlay(this);
 +        BrowserToolbar.overlay(this.doc, version);
 +
 +        this.internationalize();
 +        this.allPagesActivation();
 +    },
 +
 +    internationalize: function()
 +    {
 +        // Internationalize all elements with 'fbInternational' class. Clone
 +        // before internationalization.
 +        var elements = Arr.cloneArray(this.doc.getElementsByClassName("fbInternational"));
 +        Locale.internationalizeElements(this.doc, elements, ["label", "tooltiptext", "aria-label"]);
 +    },
 +
 +    allPagesActivation: function()
 +    {
 +        // Load Firebug by default if activation is on for all pages (see issue 5522)
 +        if (Options.get("allPagesActivation") == "on" || !Options.get("delayLoad"))
 +        {
 +            var self = this;
 +            this.startFirebug(function(Firebug)
 +            {
 +                var browser = Firebug.Firefox.getBrowserForWindow(self.win);
 +                var uri = Firebug.Firefox.getCurrentURI();
 +
 +                // Open Firebug UI (e.g. if the annotations say so, issue 5623)
 +                if (uri && Firebug.TabWatcher.shouldCreateContext(browser, uri.spec, null))
 +                    Firebug.toggleBar(true);
 +
 +                FBTrace.sysout("Firebug loaded by default since 'allPagesActivation' is on " +
 +                    "or 'delayLoad' is false");
 +            });
 +        }
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Load Rest of Firebug
 +
 +    /**
 +     * This method is called by the Framework to load entire Firebug. It's executed when
 +     * the user requires Firebug for the first time.
 +     *
 +     * @param {Object} callback Executed when Firebug is fully loaded
 +     */
 +    startFirebug: function(callback)
 +    {
 +        // Special case for e10s enabled browser.
 +        if (this.isMultiprocessEnabled()) {
 +            this.showNewMultiprocessNotification();
 +            return;
 +        }
 +
 +        /*if (this.isMultiprocessEnabled()) {
 +            this.showMultiprocessNotification();
 +            return;
 +        }
 +        else if (this.isAuroraChannel()) {
 +            this.showAuroraNotification();
 +            return;
 +        }*/
 +
 +        if (this.win.Firebug.waitingForFirstLoad)
 +            return;
 +
 +        if (this.win.Firebug.isInitialized)
 +            return callback && callback(this.win.Firebug);
 +
 +        if (FBTrace.DBG_INITIALIZE)
 +            FBTrace.sysout("overlay; Load Firebug...", (callback ? callback.toString() : ""));
 +
 +        this.win.Firebug.waitingForFirstLoad = true;
 +
 +        // List of Firebug scripts that must be loaded into the global scope (browser.xul)
 +        // FBTrace is no longer loaded into the global space.
 +        var scriptSources = [
 +            "chrome://firebug/content/legacy.js",
 +            "chrome://firebug/content/moduleConfig.js"
 +        ];
 +
 +        // Create script elements.
 +        var self = this;
 +        scriptSources.forEach(function(url)
 +        {
 +            servicesScope.Services.scriptloader.loadSubScript(url, self.doc);
 +
 +            // xxxHonza: This doesn't work since Firefox 28. From some reason the script
 +            // isn't parsed when inserted into the second browser window. See issue 6731
 +            // $script(self.doc, url);
 +        });
 +
 +        var container = $(this.doc, "appcontent");
 +
 +        // Create Firebug splitter element.
 +        $el(this.doc, "splitter", {id: "fbContentSplitter", collapsed: "true"}, container);
 +
 +        // Create Firebug main frame and container.
 +        $el(this.doc, "vbox", {id: "fbMainFrame", collapsed: "true", persist: "height,width"}, [
 +            $el(this.doc, "browser", {
 +                id: "fbMainContainer",
 +                flex: "2",
 +                src: "chrome://firebug/content/firefox/firebugFrame.xul",
 +                disablehistory: "true"
 +            })
 +        ], container);
 +
 +        // When Firebug is fully loaded and initialized it fires a "FirebugLoaded"
 +        // event to the browser document (browser.xul scope). Wait for that to happen.
 +        this.doc.addEventListener("FirebugLoaded", function onLoad()
 +        {
 +            self.doc.removeEventListener("FirebugLoaded", onLoad, false);
 +            self.win.Firebug.waitingForFirstLoad = false;
 +
 +            // xxxHonza: TODO find a better place for notifying extensions
 +            FirebugLoader.dispatchToScopes("firebugFrameLoad", [self.win.Firebug]);
 +            if (callback)
 +                callback(self.win.Firebug);
 +        }, false);
 +    },
 +
 +    stopFirebug: function()
 +    {
 +        this.unloadContextMenuOverlay();
 +        BrowserCommands.resetDisabledKeys(this.win);
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Firebug Menu Handlers
 +
 +    onOptionsShowing: function(popup)
 +    {
 +        for (var child = popup.firstChild; child; child = child.nextSibling)
 +        {
 +            if (child.localName == "menuitem")
 +            {
 +                var option = child.getAttribute("option");
 +                if (option)
 +                {
 +                    var checked = Options.get(option);
 +
 +                    // xxxHonza: I believe that allPagesActivation could be simple boolean option.
 +                    if (option == "allPagesActivation")
 +                        checked = (checked == "on") ? true : false;
 +
 +                    child.setAttribute("checked", checked);
 +                }
 +            }
 +        }
 +    },
 +
 +    onToggleOption: function(menuItem)
 +    {
 +        var option = menuItem.getAttribute("option");
 +        var checked = menuItem.getAttribute("checked") == "true";
 +
 +        Options.set(option, checked);
 +    },
 +
 +    onMenuShowing: function(popup, event)
 +    {
 +        // If the event comes from a sub menu, just ignore it.
 +        if (popup != event.target)
 +            return;
 +
 +        while (popup.lastChild)
 +            popup.removeChild(popup.lastChild);
 +
 +        // Generate dynamic content.
 +        for (var i=0; i<BrowserMenu.firebugMenuContent.length; i++)
 +            popup.appendChild(BrowserMenu.firebugMenuContent[i].cloneNode(true));
 +
 +        var collapsed = "true";
 +        if (this.win.Firebug.chrome)
 +        {
 +            var fbContentBox = this.win.Firebug.chrome.$("fbContentBox");
 +            collapsed = fbContentBox.getAttribute("collapsed");
 +        }
 +
 +        var currPos = Options.get("framePosition");
 +        var placement = this.win.Firebug.getPlacement ? this.win.Firebug.getPlacement() : "";
 +
 +        // Switch between "Open Firebug" and "Hide Firebug" label in the popup menu.
 +        var toggleFirebug = popup.querySelector("#menu_firebug_toggleFirebug");
 +        if (toggleFirebug)
 +        {
 +            var hiddenUI = (collapsed == "true" || placement == "minimized");
 +            toggleFirebug.setAttribute("label", (hiddenUI ?
 +                Locale.$STR("firebug.ShowFirebug") : Locale.$STR("firebug.HideFirebug")));
 +
 +            toggleFirebug.setAttribute("tooltiptext", (hiddenUI ?
 +                Locale.$STR("firebug.menu.tip.Open_Firebug") :
 +                Locale.$STR("firebug.menu.tip.Minimize_Firebug")));
 +
 +            var currentLocation = toggleFirebug.ownerDocument.defaultView.top.location.href;
 +            var inDetachedWindow = currentLocation.indexOf("firebug.xul") > 0;
 +
 +            // If Firebug is detached, use "Focus Firebug Window" label
 +            // instead of "Hide Firebug" when the menu isn't opened from
 +            // within the detached Firebug window. the 'placement' is used
 +            // to ensure Firebug isn't closed with close button of detached window
 +            // and 'inDetachedWindow' variable is also used to ensure the menu is
 +            // opened from within the detached window.
 +            if (currPos == "detached" && this.win.Firebug.currentContext &&
 +                placement != "minimized" && !inDetachedWindow)
 +            {
 +                toggleFirebug.setAttribute("label", Locale.$STR("firebug.FocusFirebug"));
 +                toggleFirebug.setAttribute("tooltiptext",
 +                    Locale.$STR("firebug.menu.tip.Focus_Firebug"));
 +            }
 +        }
 +
 +        // Hide "Deactivate Firebug" menu if Firebug is not active.
 +        var closeFirebug = popup.querySelector("#menu_firebug_closeFirebug");
 +        if (closeFirebug)
 +        {
 +            closeFirebug.setAttribute("collapsed",
 +                (this.win.Firebug.currentContext ? "false" : "true"));
 +        }
 +
 +        // Update About Menu
 +        var version = this.getVersion();
 +        if (version)
 +        {
 +            var node = popup.getElementsByClassName("firebugAbout")[0];
 +            var aboutLabel = node.getAttribute("label");
 +            node.setAttribute("label", aboutLabel + " " + version);
 +            node.classList.remove("firebugAbout");
 +        }
 +
 +        // Allow Firebug menu customization (see FBTest and FBTrace as an example).
 +        var event = new this.win.CustomEvent("firebugMenuShowing", {detail: popup});
 +        this.doc.dispatchEvent(event);
 +    },
 +
 +    onMenuHiding: function(popup, event)
 +    {
 +        if (popup != event.target)
 +            return;
 +
 +        // xxxHonza: I don't know why the timeout must be here, but if it isn't
 +        // the icon menu is broken (see issue 5427)
 +        this.win.setTimeout(function()
 +        {
 +            while (popup.lastChild)
 +                popup.removeChild(popup.lastChild);
 +        });
 +    },
 +
 +    onViewMenuShowing: function()
 +    {
 +        // Check whether Firebug is open
 +        var open = false;
 +        if (this.win.Firebug.chrome)
 +        {
 +            var fbContentBox = this.win.Firebug.chrome.$("fbContentBox");
 +            open = fbContentBox.getAttribute("collapsed") == "true" ? false : true;
 +        }
 +
 +        var firebugViewMenuItem = this.win.document.
 +            getElementById("menu_firebug_viewToggleFirebug");
 +        firebugViewMenuItem.setAttribute("checked", open);
 +    },
 +
 +    onPositionPopupShowing: function(popup)
 +    {
 +        while (popup.lastChild)
 +            popup.removeChild(popup.lastChild);
 +
 +        // Load Firebug before the position is changed.
 +        var oncommand = "Firebug.browserOverlay.startFirebug(function(){" +
 +            "Firebug.chrome.setPosition('%pos%')" + "})";
 +
 +        var items = [];
 +        var currPos = Options.get("framePosition");
 +
 +        var positions = ["detached", "top", "bottom", "left", "right"];
 +        for (var i=0; i<positions.length; i++)
 +        {
 +            var pos = positions[i];
 +            var label = Str.capitalize(pos);
 +
 +            var item = $menuitem(this.doc, {
 +                label: "firebug.menu." + label,
 +                tooltiptext: "firebug.menu.tip." + label,
 +                type: "radio",
 +                oncommand: oncommand.replace("%pos%", pos),
 +                checked: (currPos == pos)
 +            });
 +
 +            if (pos == "detached")
 +                items.key = "key_firebug_detachFirebug";
 +
 +            popup.appendChild(item);
 +        }
 +
 +        return true;
 +    },
 +
 +    openAboutDialog: function()
 +    {
 +        var self = this;
 +
 +        // Firefox 4.0+
 +        Cu["import"]("resource://gre/modules/AddonManager.jsm");
 +        this.win.AddonManager.getAddonByID("firebug at software.joehewitt.com", function(addon)
 +        {
 +            self.win.openDialog("chrome://mozapps/content/extensions/about.xul", "",
 +                "chrome,centerscreen,modal", addon);
 +        });
 +    },
 +
 +    setPosition: function(newPosition)
 +    {
 +        // todo
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Firebug PanelSelector Menu
 +
 +    onPanelSelectorShowing: function(popup)
 +    {
 +        var self = this;
 +        this.startFirebug(function()
 +        {
 +            self.win.Firebug.PanelSelector.onMenuShowing(popup);
 +        });
 +    },
 +
 +    onPanelSelectorHiding: function(popup)
 +    {
 +        var self = this;
 +        this.startFirebug(function()
 +        {
 +            self.win.Firebug.PanelSelector.onMenuHiding(popup);
 +        });
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Firebug Version
 +
 +    getVersion: function()
 +    {
 +        var versionURL = "chrome://firebug/content/branch.properties";
-         var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
 +
 +        var loadingPrincipal = servicesScope.Services.scriptSecurityManager.getSystemPrincipal();
 +
-         var channel = NetUtil.newChannel({
-             uri: versionURL,
-             loadUsingSystemPrincipal: true
-         });
- 
++        var channel = Channel.new(versionURL);
 +        var input = channel.open();
 +        var sis = Cc["@mozilla.org/scriptableinputstream;1"].
 +            createInstance(Ci.nsIScriptableInputStream);
 +        sis.init(input);
 +
 +        var content = sis.readBytes(input.available());
 +        sis.close();
 +
 +        var m = /RELEASE=(.*)/.exec(content);
 +        if (!m)
 +            return "no RELEASE in " + versionURL;
 +
 +        var release = m[1];
 +
 +        m = /VERSION=(.*)/.exec(content);
 +        if (!m)
 +            return "no VERSION in " + versionURL;
 +
 +        var version = m[1];
 +
 +        return version+""+release;
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // External Editors
 +
 +    onEditorsShowing: function(popup)
 +    {
 +        var self = this;
 +        this.startFirebug(function()
 +        {
 +            self.win.Firebug.ExternalEditors.onEditorsShowing(popup);
 +        });
 +
 +        return true;
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Page Context Menu Overlay
 +
 +    loadContextMenuOverlay: function()
 +    {
 +        var contextMenu = this.win.nsContextMenu;
 +        if (typeof(contextMenu) == "undefined")
 +            return;
 +
 +        // isTargetAFormControl is removed, see:
 +        // https://bugzilla.mozilla.org/show_bug.cgi?id=433168
 +        if (typeof(contextMenu.prototype.isTargetAFormControl) != "undefined")
 +        {
 +            var setTargetOriginal = this.setTargetOriginal = contextMenu.prototype.setTarget;
 +            contextMenu.prototype.setTarget = function(aNode, aRangeParent, aRangeOffset)
 +            {
 +                setTargetOriginal.apply(this, arguments);
 +
 +                if (this.isTargetAFormControl(aNode))
 +                    this.shouldDisplay = true;
 +            };
 +        }
 +
 +        // Hide built-in inspector if the pref says so.
 +        var initItemsOriginal = this.initItemsOriginal = contextMenu.prototype.initItems;
 +        contextMenu.prototype.initItems = function()
 +        {
 +            initItemsOriginal.apply(this, arguments);
 +
 +            // Hide built-in inspector menu item if the pref "extensions.firebug.hideDefaultInspector"
 +            // says so. Note that there is also built-in preference "devtools.inspector.enable" that
 +            // can be used for the same purpose.
 +            var hideInspect = Options.get("hideDefaultInspector");
 +            if (hideInspect)
 +            {
 +                this.showItem("inspect-separator", false);
 +                this.showItem("context-inspect", false);
 +            }
 +        };
 +    },
 +
 +    unloadContextMenuOverlay: function()
 +    {
 +        var contextMenu = this.win.nsContextMenu;
 +        if (typeof(contextMenu) == "undefined")
 +            return;
 +
 +        if (this.setTargetOriginal)
 +            contextMenu.prototype.setTarget = this.setTargetOriginal;
 +
 +        if (this.initItemsOriginal)
 +            contextMenu.prototype.initItems = this.initItemsOriginal;
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // First Run Page
 +
 +    loadFirstRunPage: function(reason)
 +    {
 +        if (this.checkFirebugVersion(Options.get("currentVersion")) <= 0)
 +            return;
 +
 +        // Do not show the first run page when Firebug is being updated. It'll be displayed
 +        // the next time the browser is restarted
 +        // # ADDON_UPGRADE == 7
 +        if (reason == 7)
 +            return;
 +
 +        // Open the page in the top most window, so the user can see it immediately.
 +        var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
 +        if (wm.getMostRecentWindow("navigator:browser") == this.win.top)
 +        {
 +            // Update the preference to make sure the page is not displayed again.
 +            // To avoid being annoying when Firefox crashes, forcibly save it, too.
 +            var version = this.getVersion();
 +            Options.set("currentVersion", version);
 +
 +            if (Options.get("showFirstRunPage"))
 +            {
 +                var self = this;
 +                var timeout = this.win.setTimeout(function()
 +                {
 +                    if (self.win.closed)
 +                        return;
 +
 +                    self.openFirstRunPage(self.win);
 +                }, 1000);
 +
 +                this.win.addEventListener("unload", function()
 +                {
 +                    self.win.clearTimeout(timeout);
 +                }, false);
 +            }
 +        }
 +    },
 +
 +    openFirstRunPage: function(win)
 +    {
 +        var version = this.getVersion();
 +        var url = firstRunPage + version;
 +
 +        var browser = win.gBrowser || win.getBrowser();
 +        if (!browser)
 +        {
 +            FBTrace.sysout("browserOverlay.openFirstRunPage; ERROR there is no gBrowser!");
 +            return;
 +        }
 +
 +        // Open the firstRunPage in background
 +        /*gBrowser.selectedTab = */browser.addTab(url, null, null, null);
 +
 +        // Make sure prefs are stored, otherwise the firstRunPage would be displayed
 +        // again if Firefox crashes.
 +        this.win.setTimeout(function()
 +        {
 +            Options.forceSave();
 +        }, 400);
 +    },
 +
 +    // xxxsz: Can't System.checkFirebugVersion() be used for that?
 +    checkFirebugVersion: function(currentVersion)
 +    {
 +        if (!currentVersion)
 +            return 1;
 +
 +        var version = this.getVersion();
 +
 +        // Use Firefox comparator service
 +        var versionChecker = Xpcom.CCSV("@mozilla.org/xpcom/version-comparator;1",
 +            "nsIVersionComparator");
 +
 +        return versionChecker.compare(version, currentVersion);
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Upgrade Firebug
 +
 +    upgradeFirebug: function(event)
 +    {
 +        Events.cancelEvent(event);
 +
 +        this.showUpgradeNotification();
 +
 +        // Start download automatically
 +        this.onUpgradeFirebug(event, 'fbUpgradeNotificationPanel');
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Remote Browser (aka e10s enabled browser)
 +
 +    isMultiprocessEnabled: function()
 +    {
 +        var content = $(this.doc, "content");
 +        if (content.mCurrentBrowser.isRemoteBrowser)
 +          return true;
 +
 +        var browser = this.win.gBrowser || this.win.getBrowser();
 +        if (browser.isRemoteBrowser)
 +          return true;
 +
 +        if (servicesScope.Services.appinfo.browserTabsRemoteAutostart)
 +          return true;
 +
 +        return false;
 +    },
 +
 +    isAuroraChannel: function() {
 +      if (this.notNow)
 +          return false;
 +
 +      if (Options.get("noThanksFirebugNext"))
 +          return false;
 +
 +      return auroraChannel;
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Aurora notification
 +
 +    showAuroraNotification: function()
 +    {
 +        var popupSet = $(this.doc, "mainPopupSet");
 +        var panel = this.doc.querySelector("fbAuroraNotificationPanel");
 +        if (!panel)
 +        {
 +            panel = this.doc.createElement("fbAuroraNotificationPanel");
 +            panel.setAttribute("upgradecommand", "Firebug.browserOverlay.onUpgradeFirebug(event, 'fbAuroraNotificationPanel')");
 +            panel.setAttribute("notnowcommand", "Firebug.browserOverlay.onNotNow(event)");
 +            panel.setAttribute("nothankscommand", "Firebug.browserOverlay.onNoThanks(event)");
 +            panel.setAttribute("cancelcommand", "Firebug.browserOverlay.onCancelUpgrade(event, 'fbAuroraNotificationPanel')");
 +            popupSet.appendChild(panel);
 +        }
 +
 +        panel.internationalize(Locale);
 +        panel.open();
 +    },
 +
 +    onNoThanks: function(event)
 +    {
 +        Events.cancelEvent(event);
 +
 +        // Not sure why the timeout needs to be here, but the 'close'
 +        // method is only available asynchronously.
 +        this.win.setTimeout(() => {
 +          Options.set("noThanksFirebugNext", true);
 +          this.openFirebug2(event.target);
 +        });
 +    },
 +
 +    onNotNow: function(event)
 +    {
 +        Events.cancelEvent(event);
 +
 +        this.win.setTimeout(() => {
 +          this.notNow = true;
 +          this.openFirebug2(event.target);
 +        });
 +    },
 +
 +    openFirebug2: function(panel)
 +    {
 +        var button = this.doc.getElementById("firebug-button");
 +        button.enableFirebugActions();
 +        panel.close();
 +
 +        this.startFirebug(function(Firebug) {
 +            Firebug.toggleBar(true);
 +        });
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // Manual upgrade panel
 +
 +    showUpgradeNotification: function()
 +    {
 +        var popupSet = $(this.doc, "mainPopupSet");
 +        var panel = this.doc.querySelector("fbUpgradeNotificationPanel");
 +        if (!panel)
 +        {
 +            panel = this.doc.createElement("fbUpgradeNotificationPanel");
 +            panel.setAttribute("upgradecommand", "Firebug.browserOverlay.onUpgradeFirebug(event, 'fbUpgradeNotificationPanel')");
 +            panel.setAttribute("cancelcommand", "Firebug.browserOverlay.onCancelUpgrade(event, 'fbUpgradeNotificationPanel')");
 +            popupSet.appendChild(panel);
 +        }
 +
 +        panel.internationalize(Locale);
 +        panel.open();
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // e10s enabled browser Notification
 +
 +    showMultiprocessNotification: function()
 +    {
 +        var popupSet = $(this.doc, "mainPopupSet");
 +        var panel = this.doc.querySelector("fbMultiprocessNotificationPanel");
 +        if (!panel)
 +        {
 +            panel = this.doc.createElement("fbMultiprocessNotificationPanel");
 +            panel.setAttribute("upgradecommand", "Firebug.browserOverlay.onUpgradeFirebug(event, 'fbMultiprocessNotificationPanel')");
 +            panel.setAttribute("disablecommand", "Firebug.browserOverlay.onDisableE10s(event)");
 +            panel.setAttribute("cancelcommand", "Firebug.browserOverlay.onCancelUpgrade(event, 'fbMultiprocessNotificationPanel')");
 +            popupSet.appendChild(panel);
 +        }
 +
 +        panel.internationalize(Locale);
 +        panel.open();
 +    },
 +
 +    showNewMultiprocessNotification: function()
 +    {
 +        if (Options.get("noMultiprocessMessage"))
 +        {
 +          this.toggleDevTools();
 +          return;
 +        }
 +
 +        var popupSet = $(this.doc, "mainPopupSet");
 +        var panel = this.doc.querySelector("fbNewMultiprocessNotificationPanel");
 +        if (!panel)
 +        {
 +            panel = this.doc.createElement("fbNewMultiprocessNotificationPanel");
 +            panel.setAttribute("opendevtoolscommand", "Firebug.browserOverlay.onOpenDevTools(event, 'fbMultiprocessNotificationPanel')");
 +            panel.setAttribute("disablecommand", "Firebug.browserOverlay.onDisableE10s(event)");
 +            popupSet.appendChild(panel);
 +        }
 +
 +        panel.internationalize(Locale);
 +        panel.open();
 +    },
 +
 +    onDisableE10s: function(event)
 +    {
 +      Events.cancelEvent(event);
 +
 +      // xxxHonza: there is no other way to disable e10s that set
 +      // both realated prefs. It's unlikely that there will be .2
 +      Options.setPref("browser.tabs", "remote.autostart", false);
 +      Options.setPref("browser.tabs", "remote.autostart.1", false);
 +
 +      var panel = this.doc.querySelector("fbNewMultiprocessNotificationPanel");
 +      Options.set("noMultiprocessMessage", panel.notAgain.checked);
 +
 +      restartFirefox();
 +    },
 +
 +    onOpenDevTools: function(event)
 +    {
 +      Events.cancelEvent(event);
 +
 +      var panel = this.doc.querySelector("fbNewMultiprocessNotificationPanel");
 +      Options.set("noMultiprocessMessage", panel.notAgain.checked);
 +
 +      panel.close();
 +
 +      this.toggleDevTools(true);
 +    },
 +
 +    toggleDevTools: function(forceOpen) {
 +      var toolbox = getToolbox(this.win);
 +      if (toolbox && forceOpen) {
 +        return;
 +      }
 +
 +      if (toolbox) {
 +        destroyToolbox(this.win);
 +      } else {
 +        showToolbox(this.win);
 +      }
 +    },
 +
 +    onUpgradeFirebug: function(event, panelId)
 +    {
 +        Events.cancelEvent(event);
 +
 +        var self = this;
 +        var panel = this.doc.querySelector(panelId);
 +
 +        // Listen for installation end
 +        var listener =
 +        {
 +          onInstallEnded: function(install, addon)
 +          {
 +              install.removeListener(listener);
 +              self.install = null;
 +
 +              // Bug 749745: on FF14+, onInstallEnded is called just before `startup()`
 +              // is called, but we expect to resolve the promise only after it.
 +              // As startup is called synchronously just after onInstallEnded,
 +              // a simple setTimeout(0) is enough
 +              self.win.setTimeout(function()
 +              {
 +                restartFirefox();
 +              }, 0);
 +          },
 +          onInstallFailed: function (install)
 +          {
 +              install.removeListener(listener);
 +              self.install = null;
 +
 +              Cu.reportError(install.error);
 +              Cu.reportError(downloadError);
 +
 +              panel.upgradeButton.removeAttribute("collapsed");
 +              panel.progress.setAttribute("collapsed", "true");
 +              panel.cancelButton.setAttribute("collapsed", "true");
 +
 +              self.win.alert(downloadError);
 +          },
 +          onDownloadFailed: function(install)
 +          {
 +              this.onInstallFailed(install);
 +          },
 +          onDownloadStarted: function(install)
 +          {
 +              panel.progress.setAttribute("value", "0");
 +              panel.upgradeButton.setAttribute("collapsed", "true");
 +              panel.progress.removeAttribute("collapsed");
 +              panel.cancelButton.removeAttribute("collapsed");
 +          },
 +          onDownloadProgress: function(install)
 +          {
 +              var value = install.progress / (install.maxProgress / 100);
 +              panel.progress.value = value;
 +          }
 +        };
 +
 +        findFirebugUpdate(function(url)
 +        {
 +            if (!url)
 +            {
 +                Cu.reportError(downloadError);
 +                self.win.alert(downloadError);
 +                return;
 +            }
 +
 +            AddonManager.getInstallForURL(url, (install) =>
 +            {
 +                install.addListener(listener);
 +                install.install();
 +                self.install = install;
 +            }, "application/x-xpinstall");
 +        });
 +    },
 +
 +    onCancelUpgrade: function(event, panelId)
 +    {
 +        Events.cancelEvent(event);
 +
 +        if (!this.install)
 +          return;
 +
 +        this.install.cancel();
 +        this.install = null;
 +
 +        var panel = this.doc.querySelector(panelId);
 +        panel.upgradeButton.removeAttribute("collapsed");
 +        panel.progress.setAttribute("value", "0");
 +        panel.progress.setAttribute("collapsed", "true");
 +        panel.cancelButton.setAttribute("collapsed", "true");
 +    },
 +};
 +
 +// Helpers
 +
 +function findFirebugUpdate(callback)
 +{
 +    var xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
 +    var url = "https://getfirebug.com/releases/firebug/3.0/update.rdf";
 +    xhr.open("GET", url, true);
 +
 +    xhr.onload = function()
 +    {
 +        if (xhr.readyState !== 4)
 +            return;
 +
 +        if (xhr.status !== 200)
 +        {
 +            callback(null);
 +            return;
 +        }
 +
 +        try
 +        {
 +            var parser = Xpcom.CCIN("@mozilla.org/xmlextras/domparser;1", "nsIDOMParser");
 +            var doc = parser.parseFromString(xhr.responseText, "text/xml");
 +            var root = doc.documentElement;
 +            var link = root.querySelector("updateLink");
 +            callback(link.textContent);
 +        }
 +        catch (err)
 +        {
 +            FBTrace.sysout("EXCEPTION " + err, err);
 +            callback(null);
 +        }
 +    };
 +
 +    xhr.onerror = function(e)
 +    {
 +        Cu.reportError(e.target.status);
 +    };
 +
 +    xhr.send(null);
 +}
 +
 +function restartFirefox()
 +{
 +    Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup).
 +        quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit);
 +}
 +
 +function getCurrentTab(win)
 +{
 +    let browserDoc = win.top.document;
 +    let browser = browserDoc.getElementById("content");
 +    return browser.selectedTab;
 +}
 +
 +function showToolbox(win)
 +{
 +    let tab = getCurrentTab(win);
 +    let target = DevTools.devtools.TargetFactory.forTab(tab);
 +    return DevTools.gDevTools.showToolbox(target);
 +}
 +
 +function destroyToolbox(win)
 +{
 +    let toolbox = getToolbox(win);
 +    if (toolbox) {
 +      return toolbox.destroy();
 +    }
 +}
 +
 +function getToolbox(win)
 +{
 +    let tab = getCurrentTab(win);
 +    let target = DevTools.devtools.TargetFactory.forTab(tab);
 +    return DevTools.gDevTools.getToolbox(target);
 +}
 +
 +// ********************************************************************************************* //
 +// Registration
 +
 +return BrowserOverlay;
 +
 +// ********************************************************************************************* //
 +});
diff --cc content/firebug/lib/channel.js
index 0000000,0000000..a616ca3
new file mode 100644
--- /dev/null
+++ b/content/firebug/lib/channel.js
@@@ -1,0 -1,0 +1,46 @@@
++/* See license.txt for terms of usage */
++
++define([
++],
++function() {
++
++"use strict";
++
++const Cc = Components.classes;
++const Ci = Components.interfaces;
++const Cu = Components.utils;
++
++var appInfo = Cc["@mozilla.org/xre/app-info;1"]
++    .getService(Ci.nsIXULAppInfo);
++var versionComparator = Cc["@mozilla.org/xpcom/version-comparator;1"]
++    .getService(Ci.nsIVersionComparator);
++var fx47OrEarlier = (versionComparator.compare(appInfo.version, "47a1") < 0);
++
++const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
++
++Cu.import("resource://gre/modules/NetUtil.jsm");
++
++// ********************************************************************************************* //
++// Module
++
++var Channel = {};
++
++Channel.new = function(url)
++{
++    if (fx47OrEarlier)
++    {
++        return ioService.newChannel(url, null, null);
++    }
++    else
++    {
++      return NetUtil.newChannel({
++          uri: url,
++          loadUsingSystemPrincipal: true
++      });
++    }
++}
++
++return Channel;
++
++// ********************************************************************************************* //
++});
diff --cc content/firebug/lib/http.js
index 424cfff,0000000..08ed1c0
mode 100644,000000..100644
--- a/content/firebug/lib/http.js
+++ b/content/firebug/lib/http.js
@@@ -1,543 -1,0 +1,537 @@@
 +/* See license.txt for terms of usage */
 +
 +define([
 +    "firebug/lib/xpcom",
 +    "firebug/lib/trace",
 +    "firebug/lib/deprecated",
 +    "firebug/debugger/stack/stackFrame",
-     "firebug/lib/string"
++    "firebug/lib/string",
++    "firebug/lib/channel",
 +],
- function(Xpcom, FBTrace, Deprecated, StackFrame, Str) {
++function(Xpcom, FBTrace, Deprecated, StackFrame, Str, Channel) {
 +
 +"use strict";
 +
 +// ********************************************************************************************* //
 +// Constants
 +
 +const Cc = Components.classes;
 +const Ci = Components.interfaces;
 +const Cr = Components.results;
 +const Cu = Components.utils;
 +
 +const NS_SEEK_SET = Ci.nsISeekableStream.NS_SEEK_SET;
- const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
- 
- Cu.import("resource://gre/modules/NetUtil.jsm");
 +
 +var Http = {};
 +
 +// ********************************************************************************************* //
 +// Module Implementation
 +
 +Http.readFromStream = function(stream, charset, noClose)
 +{
 +    // Causes a memory leak (see https://bugzilla.mozilla.org/show_bug.cgi?id=699801)
 +    //var sis = Cc["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream);
 +    //sis.setInputStream(stream);
 +
 +    var sis = Cc["@mozilla.org/scriptableinputstream;1"].
 +        createInstance(Ci.nsIScriptableInputStream);
 +    sis.init(stream);
 +
 +    var segments = [];
 +    for (var count = stream.available(); count; count = stream.available())
 +        segments.push(sis.readBytes(count));
 +
 +    if (!noClose)
 +        sis.close();
 +
 +    var text = segments.join("");
 +
 +    try
 +    {
 +        return Str.convertToUnicode(text, charset);
 +    }
 +    catch (err)
 +    {
 +        if (FBTrace.DBG_ERRORS)
 +            FBTrace.sysout("http.readFromStream EXCEPTION charset: " + charset, err);
 +    }
 +
 +    return text;
 +};
 +
 +Http.readPostTextFromPage = function(url, context)
 +{
 +    if (url == context.browser.contentWindow.location.href)
 +    {
 +        try
 +        {
 +            var webNav = context.browser.webNavigation;
 +            var descriptor = (webNav instanceof Ci.nsIWebPageDescriptor) ?
 +                webNav.currentDescriptor : null;
 +
 +            if (!(descriptor instanceof Ci.nsISHEntry))
 +                return;
 +
 +            var entry = descriptor;
 +            if (entry && entry.postData)
 +            {
 +                if (!(entry.postData instanceof Ci.nsISeekableStream))
 +                    return;
 +
 +                var postStream = entry.postData;
 +                postStream.seek(NS_SEEK_SET, 0);
 +
 +                var charset = context.window.document.characterSet;
 +                return Http.readFromStream(postStream, charset, true);
 +            }
 +         }
 +         catch (exc)
 +         {
 +             if (FBTrace.DBG_ERRORS)
 +                FBTrace.sysout("http.readPostText FAILS, url:"+url, exc);
 +         }
 +     }
 +};
 +
 +Http.getResource = function(aURL, ignoreMissing)
 +{
 +    try
 +    {
-         var channel = NetUtil.newChannel({
-             uri: aURL,
-             loadUsingSystemPrincipal: true
-         });
- 
++        var channel = Channel.new(aURL);
 +        var input = channel.open();
 +
 +        return Http.readFromStream(input);
 +    }
 +    catch (e)
 +    {
 +        if (!ignoreMissing && FBTrace.DBG_ERRORS)
 +            FBTrace.sysout("lib.getResource FAILS for \'"+aURL+"\'", e);
 +    }
 +};
 +
 +/**
 + * Returns a posted data for specified request object. The return value might contain
 + * headers (if request.uploadStreamHasHeaders is set to true). You can remove these
 + * headers using {@link Http.removeHeadersFromPostText}
 + *
 + * @param {Object} request The request object
 + * @param {Object} context Current Firebug context (to get charset of the current document)
 + */
 +Http.readPostTextFromRequest = function(request, context)
 +{
 +    try
 +    {
 +        var is = (request instanceof Ci.nsIUploadChannel) ? request.uploadStream : null;
 +        if (is)
 +        {
 +            if (!(is instanceof Ci.nsISeekableStream))
 +                return;
 +
 +            var ss = is;
 +            var prevOffset;
 +            if (ss)
 +            {
 +                prevOffset = ss.tell();
 +                ss.seek(NS_SEEK_SET, 0);
 +            }
 +
 +            // Read data from the stream..
 +            var charset = (context && context.window) ? context.window.document.characterSet : null;
 +            var text = Http.readFromStream(is, charset, true);
 +
 +            // Seek locks the file, so seek to the beginning only if necko hasn't read it yet,
 +            // since necko doesn't seek to 0 before reading (at least not till 459384 is fixed).
 +            if (ss && prevOffset == 0)
 +                ss.seek(NS_SEEK_SET, 0);
 +
 +            return text;
 +        }
 +    }
 +    catch(exc)
 +    {
 +        if (FBTrace.DBG_ERRORS)
 +            FBTrace.sysout("http.readPostTextFromRequest FAILS ", exc);
 +    }
 +
 +    return null;
 +};
 +
 +/**
 + * Remove headers from post body, https://bugzilla.mozilla.org/show_bug.cgi?id=649338
 + *
 + * @param {Object} request Channel implementing nsIUploadChannel2
 + * @param {Object} text Extracted text (can include headers at the beginning).
 + */
 +Http.removeHeadersFromPostText = function(request, text)
 +{
 +    if (!text)
 +        return text;
 +
 +    if (typeof(Ci.nsIUploadChannel2) == "undefined")
 +        return text;
 +
 +    if (!(request instanceof Ci.nsIUploadChannel2))
 +        return text;
 +
 +    if (!request.uploadStreamHasHeaders)
 +        return text;
 +
 +    var headerSeparator = "\r\n\r\n";
 +    var index = text.indexOf(headerSeparator);
 +    if (index == -1)
 +        return text;
 +
 +    return text.substring(index + headerSeparator.length);
 +};
 +
 +/**
 + * Returns an array of headers from posted data (appended by Firefox)
 + *
 + * @param {Object} request Channel implementing nsIUploadChannel2
 + * @param {Object} text Posted data from the channel object.
 + */
 +Http.getHeadersFromPostText = function(request, text)
 +{
 +    var headers = [];
 +    if (!text)
 +        return headers;
 +
 +    if (typeof(Ci.nsIUploadChannel2) == "undefined")
 +        return headers;
 +
 +    if (!(request instanceof Ci.nsIUploadChannel2))
 +        return headers;
 +
 +    if (!request.uploadStreamHasHeaders)
 +        return headers;
 +
 +    var headerSeparator = "\r\n\r\n";
 +    var index = text.indexOf(headerSeparator);
 +    if (index == -1)
 +        return headers;
 +
 +    var text = text.substring(0, index);
 +    var lines = Str.splitLines(text);
 +
 +    for (var i=0; i<lines.length; i++)
 +    {
 +        var header = lines[i].split(":");
 +        if (header.length != 2)
 +            continue;
 +
 +        headers.push({
 +            name: Str.trim(header[0]),
 +            value: Str.trim(header[1]),
 +        });
 +    }
 +
 +    return headers;
 +};
 +
 +Http.getInputStreamFromString = function(dataString)
 +{
 +    var stringStream = Cc["@mozilla.org/io/string-input-stream;1"].
 +        createInstance(Ci.nsIStringInputStream);
 +
 +    if ("data" in stringStream) // Gecko 1.9 or newer
 +        stringStream.data = dataString;
 +    else // 1.8 or older
 +        stringStream.setData(dataString, dataString.length);
 +
 +    return stringStream;
 +};
 +
 +Http.getWindowForRequest = function(request)
 +{
 +    var loadContext = Http.getRequestLoadContext(request);
 +    try
 +    {
 +        if (loadContext)
 +            return loadContext.associatedWindow;
 +    }
 +    catch (ex)
 +    {
 +    }
 +
 +    return null;
 +};
 +
 +Http.getRequestLoadContext = function(request)
 +{
 +    try
 +    {
 +        if (request && request.notificationCallbacks)
 +        {
 +            StackFrame.suspendShowStackTrace();
 +            return request.notificationCallbacks.getInterface(Ci.nsILoadContext);
 +        }
 +    }
 +    catch (exc)
 +    {
 +    }
 +    finally
 +    {
 +        StackFrame.resumeShowStackTrace();
 +    }
 +
 +    try
 +    {
 +        if (request && request.loadGroup && request.loadGroup.notificationCallbacks)
 +        {
 +            StackFrame.suspendShowStackTrace();
 +            return request.loadGroup.notificationCallbacks.getInterface(Ci.nsILoadContext);
 +        }
 +    }
 +    catch (exc)
 +    {
 +    }
 +    finally
 +    {
 +        StackFrame.resumeShowStackTrace();
 +    }
 +
 +    return null;
 +};
 +
 +Http.getRequestWebProgress = Deprecated.method("Use getRequestLoadContext function",
 +    Http.getRequestLoadContext);
 +
 +// ********************************************************************************************* //
 +// HTTP Channel Fields
 +
 +Http.safeGetRequestName = function(request)
 +{
 +    try
 +    {
 +        return request.name;
 +    }
 +    catch (exc)
 +    {
 +    }
 +
 +    return null;
 +};
 +
 +Http.safeGetURI = function(browser)
 +{
 +    try
 +    {
 +        return browser.currentURI;
 +    }
 +    catch (exc)
 +    {
 +    }
 +
 +    return null;
 +};
 +
 +Http.safeGetContentType = function(request)
 +{
 +    try
 +    {
 +        return new String(request.contentType).toLowerCase();
 +    }
 +    catch (err)
 +    {
 +    }
 +
 +    return null;
 +};
 +
 +Http.safeGetXHRResponseText = function(xhr)
 +{
 +    try
 +    {
 +        return xhr.responseText;
 +    }
 +    catch (err)
 +    {
 +    }
 +
 +    return null;
 +};
 +
 +// ********************************************************************************************* //
 +// IP Address and port number (Requires Gecko 5).
 +
 +Http.safeGetLocalAddress = function(request)
 +{
 +    try
 +    {
 +        if (request instanceof Ci.nsIHttpChannelInternal)
 +            return request.localAddress;
 +    }
 +    catch (err)
 +    {
 +    }
 +    return null;
 +};
 +
 +Http.safeGetLocalPort = function(request)
 +{
 +    try
 +    {
 +        if (request instanceof Ci.nsIHttpChannelInternal)
 +            return request.localPort;
 +    }
 +    catch (err)
 +    {
 +    }
 +    return null;
 +};
 +
 +Http.safeGetRemoteAddress = function(request)
 +{
 +    try
 +    {
 +        if (request instanceof Ci.nsIHttpChannelInternal)
 +            return request.remoteAddress;
 +    }
 +    catch (err)
 +    {
 +    }
 +    return null;
 +};
 +
 +Http.safeGetRemotePort = function(request)
 +{
 +    try
 +    {
 +        if (request instanceof Ci.nsIHttpChannelInternal)
 +            return request.remotePort;
 +    }
 +    catch (err)
 +    {
 +    }
 +    return null;
 +};
 +
 +// ********************************************************************************************* //
 +// XHR
 +
 +Http.isXHR = function(request)
 +{
 +    try
 +    {
 +        var callbacks = request.notificationCallbacks;
 +        StackFrame.suspendShowStackTrace();
 +        var xhrRequest = callbacks ? callbacks.getInterface(Ci.nsIXMLHttpRequest) : null;
 +        return (xhrRequest != null);
 +    }
 +    catch (exc)
 +    {
 +    }
 +    finally
 +    {
 +        StackFrame.resumeShowStackTrace();
 +    }
 +
 +    return false;
 +};
 +
 +// ********************************************************************************************* //
 +// Conversions
 +
 +Http.convertToUnicode = Deprecated.method("Function moved to 'firebug/lib/string' module",
 +    Str.convertToUnicode);
 +
 +Http.convertFromUnicode = Deprecated.method("Function moved to 'firebug/lib/string' module",
 +    Str.convertFromUnicode);
 +
 +// ********************************************************************************************* //
 +// Network Tracing
 +
 +Http.getStateDescription = function(flag)
 +{
 +    var state = [];
 +    var nsIWebProgressListener = Ci.nsIWebProgressListener;
 +    if (flag & nsIWebProgressListener.STATE_START) state.push("STATE_START");
 +    else if (flag & nsIWebProgressListener.STATE_REDIRECTING) state.push("STATE_REDIRECTING");
 +    else if (flag & nsIWebProgressListener.STATE_TRANSFERRING) state.push("STATE_TRANSFERRING");
 +    else if (flag & nsIWebProgressListener.STATE_NEGOTIATING) state.push("STATE_NEGOTIATING");
 +    else if (flag & nsIWebProgressListener.STATE_STOP) state.push("STATE_STOP");
 +
 +    if (flag & nsIWebProgressListener.STATE_IS_REQUEST) state.push("STATE_IS_REQUEST");
 +    if (flag & nsIWebProgressListener.STATE_IS_DOCUMENT) state.push("STATE_IS_DOCUMENT");
 +    if (flag & nsIWebProgressListener.STATE_IS_NETWORK) state.push("STATE_IS_NETWORK");
 +    if (flag & nsIWebProgressListener.STATE_IS_WINDOW) state.push("STATE_IS_WINDOW");
 +    if (flag & nsIWebProgressListener.STATE_RESTORING) state.push("STATE_RESTORING");
 +    if (flag & nsIWebProgressListener.STATE_IS_INSECURE) state.push("STATE_IS_INSECURE");
 +    if (flag & nsIWebProgressListener.STATE_IS_BROKEN) state.push("STATE_IS_BROKEN");
 +    if (flag & nsIWebProgressListener.STATE_IS_SECURE) state.push("STATE_IS_SECURE");
 +    if (flag & nsIWebProgressListener.STATE_SECURE_HIGH) state.push("STATE_SECURE_HIGH");
 +    if (flag & nsIWebProgressListener.STATE_SECURE_MED) state.push("STATE_SECURE_MED");
 +    if (flag & nsIWebProgressListener.STATE_SECURE_LOW) state.push("STATE_SECURE_LOW");
 +
 +    return state.join(", ");
 +};
 +
 +Http.getStatusDescription = function(status)
 +{
 +    var nsISocketTransport = Ci.nsISocketTransport;
 +    var nsITransport = Ci.nsITransport;
 +
 +    if (status == nsISocketTransport.STATUS_RESOLVING) return "STATUS_RESOLVING";
 +    if (status == nsISocketTransport.STATUS_CONNECTING_TO) return "STATUS_CONNECTING_TO";
 +    if (status == nsISocketTransport.STATUS_CONNECTED_TO) return "STATUS_CONNECTED_TO";
 +    if (status == nsISocketTransport.STATUS_SENDING_TO) return "STATUS_SENDING_TO";
 +    if (status == nsISocketTransport.STATUS_WAITING_FOR) return "STATUS_WAITING_FOR";
 +    if (status == nsISocketTransport.STATUS_RECEIVING_FROM) return "STATUS_RECEIVING_FROM";
 +    if (status == nsITransport.STATUS_READING) return "STATUS_READING";
 +    if (status == nsITransport.STATUS_WRITING) return "STATUS_WRITING";
 +};
 +
 +Http.getLoadFlagsDescription = function(loadFlags)
 +{
 +    var flags = [];
 +    var nsIChannel = Ci.nsIChannel;
 +    var nsICachingChannel = Ci.nsICachingChannel;
 +
 +    if (loadFlags & nsIChannel.LOAD_DOCUMENT_URI) flags.push("LOAD_DOCUMENT_URI");
 +    if (loadFlags & nsIChannel.LOAD_RETARGETED_DOCUMENT_URI) flags.push("LOAD_RETARGETED_DOCUMENT_URI");
 +    if (loadFlags & nsIChannel.LOAD_REPLACE) flags.push("LOAD_REPLACE");
 +    if (loadFlags & nsIChannel.LOAD_INITIAL_DOCUMENT_URI) flags.push("LOAD_INITIAL_DOCUMENT_URI");
 +    if (loadFlags & nsIChannel.LOAD_TARGETED) flags.push("LOAD_TARGETED");
 +    if (loadFlags & nsIChannel.LOAD_CALL_CONTENT_SNIFFERS) flags.push("LOAD_CALL_CONTENT_SNIFFERS");
 +    if (loadFlags & nsICachingChannel.LOAD_NO_NETWORK_IO) flags.push("LOAD_NO_NETWORK_IO");
 +    if (loadFlags & nsICachingChannel.LOAD_CHECK_OFFLINE_CACHE) flags.push("LOAD_CHECK_OFFLINE_CACHE");
 +    if (loadFlags & nsICachingChannel.LOAD_BYPASS_LOCAL_CACHE) flags.push("LOAD_BYPASS_LOCAL_CACHE");
 +    if (loadFlags & nsICachingChannel.LOAD_BYPASS_LOCAL_CACHE_IF_BUSY) flags.push("LOAD_BYPASS_LOCAL_CACHE_IF_BUSY");
 +    if (loadFlags & nsICachingChannel.LOAD_ONLY_FROM_CACHE) flags.push("LOAD_ONLY_FROM_CACHE");
 +    if (loadFlags & nsICachingChannel.LOAD_ONLY_IF_MODIFIED) flags.push("LOAD_ONLY_IF_MODIFIED");
 +
 +    return flags.join(", ");
 +};
 +
 +// ********************************************************************************************* //
 +
 +Http.BaseProgressListener =
 +{
 +    QueryInterface : function(iid)
 +    {
 +        if (iid.equals(Ci.nsIWebProgressListener) ||
 +            iid.equals(Ci.nsISupportsWeakReference) ||
 +            iid.equals(Ci.nsISupports))
 +        {
 +            return this;
 +        }
 +
 +        throw Components.results.NS_NOINTERFACE;
 +    },
 +
 +    stateIsRequest: false,
 +    onLocationChange: function() {},
 +    onStateChange : function() {},
 +    onProgressChange : function() {},
 +    onStatusChange : function() {},
 +    onSecurityChange : function() {},
 +    onLinkIconAvailable : function() {}
 +};
 +
 +// ********************************************************************************************* //
 +// Registration
 +
 +return Http;
 +
 +// ********************************************************************************************* //
 +});
diff --cc content/firebug/net/sourceCache.js
index af86da2,0000000..b953546
mode 100644,000000..100644
--- a/content/firebug/net/sourceCache.js
+++ b/content/firebug/net/sourceCache.js
@@@ -1,438 -1,0 +1,430 @@@
 +/* See license.txt for terms of usage */
 +
 +define([
 +    "firebug/chrome/eventSource",
 +    "firebug/lib/object",
 +    "firebug/firebug",
 +    "firebug/lib/xpcom",
 +    "firebug/lib/url",
 +    "firebug/lib/http",
 +    "firebug/lib/options",
-     "firebug/lib/string"
++    "firebug/lib/string",
++    "firebug/lib/channel"
 +],
- function(EventSource, Obj, Firebug, Xpcom, Url, Http, Options, Str) {
++function(EventSource, Obj, Firebug, Xpcom, Url, Http, Options, Str, Channel) {
 +
 +// ********************************************************************************************* //
 +// Constants
 +
 +const Cc = Components.classes;
 +const Ci = Components.interfaces;
 +const Cu = Components.utils;
 +
- const nsIIOService = Ci.nsIIOService;
 +const nsIRequest = Ci.nsIRequest;
 +const nsICachingChannel = Ci.nsICachingChannel;
 +const nsIScriptableInputStream = Ci.nsIScriptableInputStream;
 +const nsIUploadChannel = Ci.nsIUploadChannel;
 +const nsIHttpChannel = Ci.nsIHttpChannel;
 +
- const IOService = Cc["@mozilla.org/network/io-service;1"];
- const ioService = IOService.getService(nsIIOService);
 +const ScriptableInputStream = Cc["@mozilla.org/scriptableinputstream;1"];
 +const chromeReg = Xpcom.CCSV("@mozilla.org/chrome/chrome-registry;1", "nsIToolkitChromeRegistry");
 +
 +const LOAD_FROM_CACHE = nsIRequest.LOAD_FROM_CACHE;
 +const LOAD_BYPASS_LOCAL_CACHE_IF_BUSY = nsICachingChannel.LOAD_BYPASS_LOCAL_CACHE_IF_BUSY;
 +
 +const NS_BINDING_ABORTED = 0x804b0002;
 +
- Cu.import("resource://gre/modules/NetUtil.jsm");
- 
 +// ********************************************************************************************* //
 +
 +Firebug.SourceCache = function(context)
 +{
 +    this.context = context;
 +    this.cache = {};
 +};
 +
 +Firebug.SourceCache.prototype = Obj.extend(new EventSource(),
 +{
 +    isCached: function(url)
 +    {
 +        return (this.cache[url] ? true : false);
 +    },
 +
 +    loadText: function(url, method, file, options)
 +    {
 +        var lines = this.load(url, method, file, options);
 +        return lines ? lines.join("") : null;
 +    },
 +
 +    load: function(url, method, file, options)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +        {
 +            FBTrace.sysout("sourceCache.load: " + url);
 +
 +            if (!this.cache.hasOwnProperty(url) && this.cache[url])
 +                FBTrace.sysout("sourceCache.load; ERROR - hasOwnProperty returns false, " +
 +                    "but the URL is cached: " + url, this.cache[url]);
 +        }
 +
 +        // xxxHonza: sometimes hasOwnProperty return false even if the URL is obviously there.
 +        //if (this.cache.hasOwnProperty(url))
 +        var response = this.cache[this.removeAnchor(url)];
 +        if (response)
 +            return response;
 +
 +        if (FBTrace.DBG_CACHE)
 +        {
 +            var urls = [];
 +            for (var prop in this.cache)
 +                urls.push(prop);
 +
 +            FBTrace.sysout("sourceCache.load: Not in the Firebug internal cache", urls);
 +        }
 +
 +        var d = Url.splitDataURL(url);  //TODO the RE should not have baseLine
 +        if (d)
 +        {
 +            var src = d.encodedContent;
 +            var data = decodeURIComponent(src);
 +            var lines = Str.splitLines(data);
 +            this.cache[url] = lines;
 +
 +            return lines;
 +        }
 +
 +        var j = Url.reJavascript.exec(url);
 +        if (j)
 +        {
 +            var src = url.substring(Url.reJavascript.lastIndex);
 +            var lines = Str.splitLines(src);
 +            this.cache[url] = lines;
 +
 +            return lines;
 +        }
 +
 +        var c = Url.reChrome.test(url);
 +        if (c)
 +        {
 +            if (Options.get("filterSystemURLs"))
 +                return ["Filtered chrome url "+url];  // ignore chrome
 +
 +            // If the chrome.manifest has  xpcnativewrappers=no, platform munges the url
 +            var reWrapperMunge = /(\S*)\s*->\s*(\S*)/;
 +            var m = reWrapperMunge.exec(url);
 +            if (m)
 +            {
 +                url = m[2];
 +
 +                if (FBTrace.DBG_CACHE)
 +                {
 +                    FBTrace.sysout("sourceCache found munged xpcnativewrapper url " +
 +                        "and set it to " + url + " m " + m + " m[0]:" + m[0] + " [1]" +
 +                        m[1], m);
 +                }
 +            }
 +
 +            var chromeURI = Url.makeURI(url);
 +            if (!chromeURI)
 +            {
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("sourceCache.load failed to convert chrome to local: " + url);
 +
 +                return ["sourceCache failed to make URI from " + url];
 +            }
 +
 +            var localURI = chromeReg.convertChromeURL(chromeURI);
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("sourceCache.load converting chrome to local: " + url,
 +                    " -> "+localURI.spec);
 +
 +            return this.loadFromLocal(localURI.spec);
 +        }
 +
 +        c = Url.reFile.test(url);
 +        if (c)
 +        {
 +            return this.loadFromLocal(url);
 +        }
 +
 +        if (Str.hasPrefix(url, 'resource://'))
 +        {
 +            var fileURL = Url.resourceToFile(url);
 +            return this.loadFromLocal(url);
 +        }
 +
 +        // Unfortunately, the URL isn't available, so let's try to use FF cache.
 +        // Note that an additional network request to the server could be made
 +        // in this method (a double-load).
 +        return this.loadFromCache(url, method, file, options);
 +    },
 +
 +    store: function(url, text)
 +    {
 +        var tempURL = this.removeAnchor(url);
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("sourceCache for " + this.context.getName() + " store url=" +
 +                url + ((tempURL != url) ? " -> " + tempURL : ""), text);
 +
 +        var lines = Str.splitLines(text);
 +        return this.storeSplitLines(tempURL, lines);
 +    },
 +
 +    removeAnchor: function(url)
 +    {
 +        if (FBTrace.DBG_ERRORS && !url)
 +            FBTrace.sysout("sourceCache.removeAnchor; ERROR url must not be null");
 +
 +        var index = url ? url.indexOf("#") : -1;
 +        if (index < 0)
 +            return url;
 +
 +        return url.substr(0, index);
 +    },
 +
 +    loadFromLocal: function(url)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.loadFromLocal url: " + url);
 +
 +        // if we get this far then we have either a file: or chrome: url converted to file:
 +        var src = Http.getResource(url);
 +        if (src)
 +        {
 +            var lines = Str.splitLines(src);
 +
 +            // Don't cache locale files to get latest version (issue 1328)
 +            // Local files can be currently fetched any time.
 +            //this.cache[url] = lines;
 +
 +            return lines;
 +        }
 +    },
 +
 +    loadFromCache: function(url, method, file)
 +    {
 +        if (FBTrace.DBG_CACHE) FBTrace.sysout("sourceCache.loadFromCache url:"+url);
 +
 +        var doc = this.context.window.document;
 +        if (doc)
 +            var charset = doc.characterSet;
 +        else
 +            var charset = "UTF-8";
 +
 +        var channel;
 +        try
 +        {
-             channel = NetUtil.newChannel({
-                 uri: url,
-                 loadUsingSystemPrincipal: true
-             });
- 
++            channel = Channel.new(url);
 +            channel.loadFlags |= LOAD_FROM_CACHE | LOAD_BYPASS_LOCAL_CACHE_IF_BUSY;
 +
 +            if (method && (channel instanceof nsIHttpChannel))
 +            {
 +                var httpChannel = Xpcom.QI(channel, nsIHttpChannel);
 +                httpChannel.requestMethod = method;
 +            }
 +        }
 +        catch (exc)
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("sourceCache for url:" + url + " window=" +
 +                    this.context.window.location.href + " FAILS:", exc);
 +            return;
 +        }
 +
 +        if (url == this.context.browser.contentWindow.location.href)
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("sourceCache.load content window href");
 +
 +            if (channel instanceof nsIUploadChannel)
 +            {
 +                var postData = this.getPostStream();
 +                if (postData)
 +                {
 +                    var uploadChannel = Xpcom.QI(channel, nsIUploadChannel);
 +                    uploadChannel.setUploadStream(postData, "", -1);
 +
 +                    if (FBTrace.DBG_CACHE)
 +                        FBTrace.sysout("sourceCache.load uploadChannel set");
 +                }
 +            }
 +
 +            if (channel instanceof nsICachingChannel)
 +            {
 +                var cacheChannel = Xpcom.QI(channel, nsICachingChannel);
 +                cacheChannel.cacheKey = this.getCacheKey();
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("sourceCache.load cacheChannel key" + cacheChannel.cacheKey);
 +            }
 +        }
 +        else if ((method == "POST" || method == "PUT" || method == "PATCH") && file)
 +        {
 +            if (channel instanceof nsIUploadChannel)
 +            {
 +                // In case of PUT and POST, don't forget to use the original body.
 +                var postData = getPostText(file, this.context);
 +                if (postData)
 +                {
 +                    var postDataStream = Http.getInputStreamFromString(postData);
 +                    var uploadChannel = Xpcom.QI(channel, nsIUploadChannel);
 +                    uploadChannel.setUploadStream(postDataStream,
 +                        "application/x-www-form-urlencoded", -1);
 +
 +                    if (FBTrace.DBG_CACHE)
 +                        FBTrace.sysout("sourceCache.load uploadChannel set");
 +                }
 +            }
 +        }
 +
 +        var stream;
 +        try
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("sourceCache.load url:" + url + " with charset" + charset);
 +
 +            stream = channel.open();
 +        }
 +        catch (exc)
 +        {
 +            if (FBTrace.DBG_ERRORS)
 +            {
 +                var isCache = (channel instanceof nsICachingChannel) ?
 +                    "nsICachingChannel" : "NOT caching channel";
 +                var isUp = (channel instanceof nsIUploadChannel) ?
 +                    "nsIUploadChannel" : "NOT nsIUploadChannel";
 +
 +                FBTrace.sysout(url + " vs " + this.context.browser.contentWindow.location.href +
 +                    " and " + isCache + " " + isUp);
 +                FBTrace.sysout("sourceCache.load fails channel.open for url=" + url +
 +                    " cause:", exc);
 +                FBTrace.sysout("sourceCache.load fails channel=", channel);
 +            }
 +
 +            return ["sourceCache.load FAILS for url=" + url, exc.toString()];
 +        }
 +
 +        try
 +        {
 +            var data = Http.readFromStream(stream, charset);
 +            var lines = Str.splitLines(data);
 +            this.cache[url] = lines;
 +            return lines;
 +        }
 +        catch (exc)
 +        {
 +            if (FBTrace.DBG_ERRORS)
 +                FBTrace.sysout("sourceCache.load FAILS, url="+url, exc);
 +            return ["sourceCache.load FAILS for url="+url, exc.toString()];
 +        }
 +        finally
 +        {
 +            stream.close();
 +        }
 +    },
 +
 +    storeSplitLines: function(url, lines)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +        {
 +            FBTrace.sysout("sourceCache for window=" + this.context.getName() +
 +                " store url=" + url);
 +        }
 +
 +        return this.cache[url] = lines;
 +    },
 +
 +    invalidate: function(url)
 +    {
 +        url = this.removeAnchor(url);
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("sourceCache.invalidate; " + url);
 +
 +        delete this.cache[url];
 +    },
 +
 +    getLine: function(url, lineNo)
 +    {
 +        var lines;
 +
 +        try
 +        {
 +            lines = this.load(url);
 +        }
 +        catch (e)
 +        {
 +            if (FBTrace.DBG_ERRORS)
 +                FBTrace.sysout("sourceCache.getLine; EXCEPTION " + e, e);
 +        }
 +
 +        if (!lines)
 +            return "(no source for " + url + ")";
 +
 +        if (lineNo <= lines.length)
 +        {
 +            return lines[lineNo-1];
 +        }
 +        else
 +        {
 +            return (lines.length == 1) ?
 +                lines[0] : "(" + lineNo + " out of range " + lines.length + ")";
 +        }
 +    },
 +
 +    getCacheKey: function()
 +    {
 +        try
 +        {
 +            var webNav = this.context.browser.webNavigation;
 +            var descriptor = Xpcom.QI(webNav, Ci.nsIWebPageDescriptor).currentDescriptor;
 +            var entry = Xpcom.QI(descriptor, Ci.nsISHEntry);
 +            return entry.cacheKey;
 +        }
 +        catch (exc)
 +        {
 +        }
 +    },
 +
 +    getPostStream: function()
 +    {
 +        try
 +        {
 +            var webNav = this.context.browser.webNavigation;
 +            var descriptor = Xpcom.QI(webNav, Ci.nsIWebPageDescriptor).currentDescriptor;
 +            var entry = Xpcom.QI(descriptor, Ci.nsISHEntry);
 +
 +            if (entry.postData)
 +            {
 +                // Seek to the beginning, or it will probably start reading at the end
 +                var postStream = Xpcom.QI(entry.postData, Ci.nsISeekableStream);
 +                postStream.seek(0, 0);
 +                return postStream;
 +            }
 +         }
 +         catch (exc)
 +         {
 +         }
 +    },
 +});
 +
 +// xxxHonza getPostText and Http.readPostTextFromRequest are copied from
 +// net.js. These functions should be removed when this cache is
 +// refactored due to the double-load problem.
 +function getPostText(file, context)
 +{
 +    if (!file.postText)
 +        file.postText = Http.readPostTextFromPage(file.href, context);
 +
 +    if (!file.postText)
 +        file.postText = Http.readPostTextFromRequest(file.request, context);
 +
 +    return file.postText;
 +}
 +
 +// ********************************************************************************************* //
 +// Registration
 +
 +return Firebug.SourceCache;
 +
 +// ********************************************************************************************* //
 +});
diff --cc content/firebug/net/tabCache.js
index fadbc58,0000000..d6f7cb2
mode 100644,000000..100644
--- a/content/firebug/net/tabCache.js
+++ b/content/firebug/net/tabCache.js
@@@ -1,684 -1,0 +1,679 @@@
 +/* See license.txt for terms of usage */
 +
 +define([
 +    "firebug/chrome/activableModule",
 +    "firebug/lib/object",
 +    "firebug/firebug",
 +    "firebug/lib/xpcom",
 +    "firebug/net/requestObserver",
 +    "firebug/net/responseObserver",
 +    "firebug/lib/locale",
 +    "firebug/lib/events",
 +    "firebug/lib/url",
 +    "firebug/lib/http",
 +    "firebug/lib/string",
 +    "firebug/chrome/window",
 +    "firebug/net/jsonViewer",
 +    "firebug/trace/traceModule",
 +    "firebug/trace/traceListener",
 +    "firebug/net/sourceCache",
 +    "firebug/lib/options",
++    "firebug/lib/channel",
 +],
 +function(ActivableModule, Obj, Firebug, Xpcom, HttpRequestObserver, HttpResponseObserver, Locale,
-     Events, Url, Http, Str, Win, JSONViewerModel, TraceModule, TraceListener, SourceCache, Options) {
++    Events, Url, Http, Str, Win, JSONViewerModel, TraceModule, TraceListener, SourceCache,
++    Options, Channel) {
 +
 +// ********************************************************************************************* //
 +// Constants
 +
 +const Cc = Components.classes;
 +const Ci = Components.interfaces;
 +const Cu = Components.utils;
 +
- const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
- 
- Cu.import("resource://gre/modules/NetUtil.jsm");
- 
 +// List of text content types. These content-types are cached.
 +var contentTypes =
 +{
 +    "text/plain": 1,
 +    "text/html": 1,
 +    "text/xml": 1,
 +    "text/xsl": 1,
 +    "text/xul": 1,
 +    "text/css": 1,
 +    "text/sgml": 1,
 +    "text/rtf": 1,
 +    "text/x-setext": 1,
 +    "text/richtext": 1,
 +    "text/javascript": 1,
 +    "text/jscript": 1,
 +    "text/tab-separated-values": 1,
 +    "text/rdf": 1,
 +    "text/xif": 1,
 +    "text/ecmascript": 1,
 +    "text/vnd.curl": 1,
 +    "text/x-json": 1,
 +    "text/x-js": 1,
 +    "text/js": 1,
 +    "text/vbscript": 1,
 +    "view-source": 1,
 +    "view-fragment": 1,
 +    "application/xml": 1,
 +    "application/xhtml+xml": 1,
 +    "application/atom+xml": 1,
 +    "application/rss+xml": 1,
 +    "application/mathml+xml": 1,
 +    "application/rdf+xml": 1,
 +    "application/vnd.mozilla.maybe.feed": 1,
 +    "application/vnd.mozilla.xul+xml": 1,
 +    "application/javascript": 1,
 +    "application/x-javascript": 1,
 +    "application/x-httpd-php": 1,
 +    "application/rdf+xml": 1,
 +    "application/ecmascript": 1,
 +    "application/http-index-format": 1,
 +    "application/json": 1,
 +    "application/x-js": 1,
 +    "multipart/mixed" : 1,
 +    "multipart/x-mixed-replace" : 1,
 +    "image/svg+xml" : 1
 +};
 +
 +// ********************************************************************************************* //
 +// Model implementation
 +
 +/**
 + * Implementation of cache model. The only purpose of this object is to register an HTTP
 + * observer, so that HTTP communication can be intercepted and all incoming data stored
 + * within a cache.
 + */
 +Firebug.TabCacheModel = Obj.extend(ActivableModule,
 +{
 +    dispatchName: "tabCache",
 +    contentTypes: contentTypes,
 +    fbListeners: [],
 +
 +    initialize: function()
 +    {
 +        ActivableModule.initialize.apply(this, arguments);
 +
 +        this.traceListener = new TraceListener("tabCache.", "DBG_CACHE", false);
 +        TraceModule.addListener(this.traceListener);
 +    },
 +
 +    initializeUI: function(owner)
 +    {
 +        ActivableModule.initializeUI.apply(this, arguments);
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.initializeUI;");
 +
 +        // Read additional text MIME types from preferences.
 +        var mimeTypes = Options.get("cache.mimeTypes");
 +        if (mimeTypes)
 +        {
 +            var list = mimeTypes.split(" ");
 +            for (var i=0; i<list.length; i++)
 +                contentTypes[list[i]] = 1;
 +        }
 +
 +        // Merge with JSON types
 +        var jsonTypes = JSONViewerModel.contentTypes;
 +        for (var p in jsonTypes)
 +            contentTypes[p] = 1;
 +    },
 +
 +    onObserverChange: function(observer)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.onObserverChange; hasObservers: " + this.hasObservers());
 +
 +        // If Firebug is in action, we need to test to see if we need to addObserver
 +        if (!Firebug.getSuspended())
 +            this.onResumeFirebug();
 +    },
 +
 +    onResumeFirebug: function()
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.onResumeFirebug; hasObsevers: " + this.hasObservers());
 +
 +        if (this.hasObservers() && !this.observing)
 +        {
 +            HttpRequestObserver.addObserver(this, "firebug-http-event", false);
 +            this.observing = true;
 +        }
 +    },
 +
 +    onSuspendFirebug: function()
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.onSuspendFirebug; hasObsevers: " + this.hasObservers());
 +
 +        if (this.observing)
 +        {
 +            HttpRequestObserver.removeObserver(this, "firebug-http-event");
 +            this.observing = false;
 +        }
 +    },
 +
 +    shutdown: function()
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.shutdown; Cache model destroyed.");
 +
 +        TraceModule.removeListener(this.traceListener);
 +
 +        if (this.observing)
 +            HttpRequestObserver.removeObserver(this, "firebug-http-event");
 +    },
 +
 +    initContext: function(context)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.initContext for: " + context.getName());
 +    },
 +
 +    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 +    // nsIObserver
 +
 +    observe: function(subject, topic, data)
 +    {
 +        try
 +        {
 +            if (!(subject instanceof Ci.nsIHttpChannel))
 +                return;
 +
 +            // XXXjjb this same code is in net.js, better to have it only once
 +            var win = Http.getWindowForRequest(subject);
 +            if (!win)
 +            {
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("tabCache.observe; " + topic + ", NO WINDOW");
 +                return;
 +            }
 +
 +            if (topic == "http-on-modify-request")
 +                this.onModifyRequest(subject, win);
 +            else if (topic == "http-on-examine-response")
 +                this.onExamineResponse(subject, win);
 +            else if (topic == "http-on-examine-cached-response")
 +                this.onCachedResponse(subject, win);
 +        }
 +        catch (err)
 +        {
 +            if (FBTrace.DBG_ERRORS)
 +                FBTrace.sysout("tabCache.observe EXCEPTION", err);
 +        }
 +    },
 +
 +    onModifyRequest: function(request, win)
 +    {
 +    },
 +
 +    onExamineResponse: function(request, win)
 +    {
 +        this.registerStreamListener(request, win);
 +    },
 +
 +    onCachedResponse: function(request, win)
 +    {
 +        this.registerStreamListener(request, win);
 +    },
 +
 +    registerStreamListener: function(request, win, forceRegister)
 +    {
 +        if (Firebug.getSuspended() && !forceRegister)
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.registerStreamListener; DO NOT TRACK, " +
 +                    "Firebug suspended for: " + Http.safeGetRequestName(request));
 +            return;
 +        }
 +
 +        if (!this.hasObservers())
 +            return;
 +
 +        try
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.registerStreamListener; " +
 +                    Http.safeGetRequestName(request));
 +
 +            HttpResponseObserver.register(win, request, new ChannelListenerProxy(win));
 +        }
 +        catch (err)
 +        {
 +            if (FBTrace.DBG_ERRORS)
 +                FBTrace.sysout("tabCache.Register Traceable Listener EXCEPTION", err);
 +        }
 +    },
 +
 +    shouldCacheRequest: function(request)
 +    {
 +        if (!(request instanceof Ci.nsIHttpChannel))
 +            return;
 +
 +        // Allow to customize caching rules.
 +        if (Events.dispatch2(this.fbListeners, "shouldCacheRequest", [request]))
 +            return true;
 +
 +        // Cache only text responses for now.
 +        var contentType = request.contentType;
 +        if (contentType)
 +            contentType = contentType.split(";")[0];
 +
 +        contentType = Str.trim(contentType);
 +        if (contentTypes[contentType])
 +            return true;
 +
 +        // Hack to work around application/octet-stream for js files (see issue 2063).
 +        // Let's cache all files with js extensions.
 +        var extension = Url.getFileExtension(Http.safeGetRequestName(request));
 +        if (extension == "js")
 +            return true;
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.shouldCacheRequest; Request not cached: " +
 +                request.contentType + ", " + Http.safeGetRequestName(request));
 +
 +        return false;
 +    },
 +});
 +
 +// ********************************************************************************************* //
 +// Tab Cache
 +
 +/**
 + * This cache object is intended to cache all responses made by a specific tab.
 + * The implementation is based on nsITraceableChannel interface introduced in
 + * Firefox 3.0.4. This interface allows to intercept all incoming HTTP data.
 + *
 + * This object replaces the SourceCache, which still exist only for backward
 + * compatibility.
 + *
 + * The object is derived from SourceCache, so the same interface and most of the
 + * implementation is used.
 + */
 +Firebug.TabCache = function(context)
 +{
 +    if (FBTrace.DBG_CACHE)
 +        FBTrace.sysout("tabCache.TabCache Created for: " + context.getName());
 +
 +    SourceCache.call(this, context);
 +
 +    // Set of HTTP responses (URLs) that has been limited in the cache.
 +    // Used by the UI to notify the user.
 +    this.limitedResponses = {};
 +};
 +
 +Firebug.TabCache.prototype = Obj.extend(SourceCache.prototype,
 +{
 +    // Responses in progress
 +    responses: [],
 +
 +    storePartialResponse: function(request, responseText, win, offset)
 +    {
 +        if (!offset)
 +            offset = 0;
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.storePartialResponse " + Http.safeGetRequestName(request),
 +                request.contentCharset);
 +
 +        var url = Http.safeGetRequestName(request);
 +        var response = this.getResponse(request);
 +
 +        // Skip any response data that we have received before (f ex when
 +        // response packets are repeated due to quirks in how authentication
 +        // requests are projected to the channel listener)
 +        var newRawSize = offset + responseText.length;
 +        var addRawBytes = newRawSize - response.rawSize;
 +
 +        if (responseText.length > addRawBytes)
 +            responseText = responseText.substr(responseText.length - addRawBytes);
 +
 +        try
 +        {
 +            responseText = Str.convertToUnicode(responseText, win.document.characterSet);
 +        }
 +        catch (err)
 +        {
 +            if (FBTrace.DBG_ERRORS || FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.storePartialResponse EXCEPTION " +
 +                    Http.safeGetRequestName(request), err);
 +
 +            // Even responses that are not converted are stored into the cache.
 +            // return false;
 +        }
 +
 +        // Size of each response is limited.
 +        var limitNotReached = true;
 +        var responseSizeLimit = Options.get("cache.responseLimit");
 +        if (response.size + responseText.length >= responseSizeLimit)
 +        {
 +            limitNotReached = false;
 +            responseText = responseText.substr(0, responseSizeLimit - response.size);
 +
 +            this.limitedResponses[url] = true;
 +
 +            if (FBTrace.DBG_CACHE)
 +            {
 +                FBTrace.sysout("tabCache.storePartialResponse; Maximum response limit " +
 +                    "reached for: " + url);
 +            }
 +        }
 +
 +        response.size += responseText.length;
 +        response.rawSize = newRawSize;
 +
 +        // Store partial content into the cache.
 +        this.store(url, responseText);
 +
 +        // Return false if furhter parts of this response should be ignored.
 +        return limitNotReached;
 +    },
 +
 +    isLimited: function(url)
 +    {
 +        return this.limitedResponses[url];
 +    },
 +
 +    getResponse: function(request)
 +    {
 +        var url = Http.safeGetRequestName(request);
 +        var response = this.responses[url];
 +        if (!response)
 +        {
 +            this.invalidate(url);
 +            this.responses[url] = response = {
 +                request: request,
 +                size: 0,
 +                rawSize: 0
 +            };
 +        }
 +
 +        return response;
 +    },
 +
 +    storeSplitLines: function(url, lines)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.storeSplitLines: " + url, lines);
 +
 +        var currLines = this.cache[url];
 +        if (!currLines)
 +            currLines = this.cache[url] = [];
 +
 +        // Join the last line with the new first one to make the source code
 +        // lines properly formatted...
 +        if (currLines.length && lines.length)
 +        {
 +            // ... but only if the last line isn't already completed.
 +            var lastLine = currLines[currLines.length-1];
 +            if (lastLine && lastLine.search(/\r|\n/) == -1)
 +                currLines[currLines.length-1] += lines.shift();
 +        }
 +
 +        // Append new lines (if any) into the array for specified url.
 +        if (lines.length)
 +            this.cache[url] = currLines.concat(lines);
 +
 +        return this.cache[url];
 +    },
 +
 +    loadFromCache: function(url, method, file, options)
 +    {
 +        // The ancestor implementation (SourceCache) uses ioService.newChannel, which
 +        // can result in additional request to the server (in case the response can't
 +        // be loaded from the Firefox cache) - known as the double-load problem.
 +        // This new implementation (TabCache) uses nsITraceableChannel, so all responses
 +        // should be already cached.
 +
 +        // xxxHonza: TODO entire implementation of this method should be removed in Firebug 1.5
 +        // xxxHonza: let's try to get the response from the cache till #449198 is fixed.
 +        var stream;
 +        var responseText;
 +        try
 +        {
 +            if (!url)
 +                return responseText;
 +
 +            if (url === "<unknown>")
 +                return [Locale.$STR("message.sourceNotAvailableFor") + ": " + url];
 +
-             var channel = NetUtil.newChannel({
-                 uri: url,
-                 loadUsingSystemPrincipal: true
-             });
++            var channel = Channel.new(url);
 +
 +            // These flag combination doesn't repost the request.
 +            channel.loadFlags = Ci.nsIRequest.LOAD_FROM_CACHE |
 +                Ci.nsICachingChannel.LOAD_ONLY_FROM_CACHE |
 +                Ci.nsICachingChannel.LOAD_BYPASS_LOCAL_CACHE_IF_BUSY;
 +
 +            var charset = "UTF-8";
 +
 +            if (!this.context.window)
 +            {
 +                if (FBTrace.DBG_ERRORS)
 +                {
 +                    FBTrace.sysout("tabCache.loadFromCache; ERROR this.context.window " +
 +                        "is undefined");
 +                }
 +            }
 +
 +            var doc = this.context.window ? this.context.window.document : null;
 +            if (doc)
 +                charset = doc.characterSet;
 +
 +            // xxxSimon We could probably instead check
 +            // (url == this.context.browser.contentWindow.location.href)
 +            // here, just like sourceCache, but I'd rather avoid changing behavior
 +            // of crufty-but-working legacy code.
 +            if (options && options.addPostData)
 +            {
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("tabCache.load with post data");
 +
 +                if (channel instanceof Ci.nsIUploadChannel)
 +                {
 +                    var postData = this.getPostStream();
 +                    if (postData)
 +                    {
 +                        var uploadChannel = Xpcom.QI(channel, Ci.nsIUploadChannel);
 +                        uploadChannel.setUploadStream(postData, "", -1);
 +
 +                        if (FBTrace.DBG_CACHE)
 +                            FBTrace.sysout("tabCache.load uploadChannel set");
 +                    }
 +                }
 +
 +                if (channel instanceof Ci.nsICachingChannel)
 +                {
 +                    var cacheChannel = Xpcom.QI(channel, Ci.nsICachingChannel);
 +                    cacheChannel.cacheKey = this.getCacheKey();
 +                    if (FBTrace.DBG_CACHE)
 +                        FBTrace.sysout("tabCache.load cacheChannel key" + cacheChannel.cacheKey);
 +                }
 +            }
 +
 +            stream = channel.open();
 +
 +            // The response doesn't have to be in the browser cache.
 +            if (!stream.available())
 +            {
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("tabCache.loadFromCache; Failed to load source for: " + url);
 +
 +                stream.close();
 +                return [Locale.$STR("message.sourceNotAvailableFor") + ": " + url];
 +            }
 +
 +            // Don't load responses that shouldn't be cached.
 +            if (!Firebug.TabCacheModel.shouldCacheRequest(channel))
 +            {
 +                if (FBTrace.DBG_CACHE)
 +                    FBTrace.sysout("tabCache.loadFromCache; The resource from this URL is not text: " + url);
 +
 +                stream.close();
 +                return [Locale.$STR("message.The resource from this URL is not text") + ": " + url];
 +            }
 +
 +            responseText = Http.readFromStream(stream, charset);
 +
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.loadFromCache (response coming from FF Cache) " +
 +                    url, responseText);
 +
 +            responseText = this.store(url, responseText);
 +        }
 +        catch (err)
 +        {
 +            if (FBTrace.DBG_ERRORS || FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.loadFromCache EXCEPTION on url \'" + url +"\'", err);
 +        }
 +        finally
 +        {
 +            if (stream)
 +                stream.close();
 +        }
 +
 +        return responseText;
 +    },
 +
 +    // nsIStreamListener - callbacks from channel stream listener component.
 +    onStartRequest: function(request, requestContext)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.channel.startRequest: " + Http.safeGetRequestName(request));
 +
 +        // Make sure the response-entry (used to count total response size) is properly
 +        // initialized (cleared) now. If no data is received, the response entry remains empty.
 +        var response = this.getResponse(request);
 +
 +        Events.dispatch(Firebug.TabCacheModel.fbListeners, "onStartRequest", [this.context, request]);
 +        Events.dispatch(this.fbListeners, "onStartRequest", [this.context, request]);
 +    },
 +
 +    onDataAvailable: function(request, requestContext, inputStream, offset, count)
 +    {
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.channel.onDataAvailable: " + Http.safeGetRequestName(request));
 +
 +        // If the stream is read a new one must be provided (the stream doesn't implement
 +        // nsISeekableStream).
 +        var stream = {
 +            value: inputStream
 +        };
 +
 +        Events.dispatch(Firebug.TabCacheModel.fbListeners, "onDataAvailable",
 +            [this.context, request, requestContext, stream, offset, count]);
 +        Events.dispatch(this.fbListeners, "onDataAvailable", [this.context,
 +            request, requestContext, stream, offset, count]);
 +
 +        return stream.value;
 +    },
 +
 +    onStopRequest: function(request, requestContext, statusCode)
 +    {
 +        // The response has been received; remove the request from the list of
 +        // current responses.
 +        var url = Http.safeGetRequestName(request);
 +        delete this.responses[url];
 +
 +        var lines = this.cache[this.removeAnchor(url)];
 +        var responseText = lines ? lines.join("") : "";
 +
 +        if (FBTrace.DBG_CACHE)
 +            FBTrace.sysout("tabCache.channel.stopRequest: " + Http.safeGetRequestName(request),
 +                responseText);
 +
 +        Events.dispatch(Firebug.TabCacheModel.fbListeners, "onStopRequest",
 +            [this.context, request, responseText]);
 +        Events.dispatch(this.fbListeners, "onStopRequest", [this.context, request, responseText]);
 +    }
 +});
 +
 +// ********************************************************************************************* //
 +// Proxy Listener
 +
 +function ChannelListenerProxy(win)
 +{
 +    this.window = win;
 +}
 +
 +ChannelListenerProxy.prototype =
 +{
 +    onStartRequest: function(request, requestContext)
 +    {
 +        var context = this.getContext();
 +        if (context)
 +            context.sourceCache.onStartRequest(request, requestContext);
 +    },
 +
 +    onDataAvailable: function(request, requestContext, inputStream, offset, count)
 +    {
 +        var context = this.getContext();
 +        if (!context)
 +            return null;
 +
 +        return context.sourceCache.onDataAvailable(request, requestContext,
 +            inputStream, offset, count);
 +    },
 +
 +    onStopRequest: function(request, requestContext, statusCode)
 +    {
 +        var context = this.getContext();
 +        if (context)
 +            context.sourceCache.onStopRequest(request, requestContext, statusCode);
 +    },
 +
 +    onCollectData: function(request, data, offset)
 +    {
 +        var context = this.getContext();
 +        if (!context)
 +        {
 +            if (FBTrace.DBG_CACHE)
 +                FBTrace.sysout("tabCache.channel.onCollectData: NO CONTEXT " +
 +                    Http.safeGetRequestName(request), data);
 +
 +            return false;
 +        }
 +
 +        // Store received data into the cache as they come. If the method returns
 +        // false, the rest of the response is ignored (not cached). This is used
 +        // to limit size of a cached response.
 +        return context.sourceCache.storePartialResponse(request, data, this.window, offset);
 +    },
 +
 +    getContext: function()
 +    {
 +        try
 +        {
 +            return Firebug.connection.getContextByWindow(this.window);
 +        }
 +        catch (e)
 +        {
 +        }
 +        return null;
 +    },
 +
 +    shouldCacheRequest: function(request)
 +    {
 +        try
 +        {
 +            return Firebug.TabCacheModel.shouldCacheRequest(request);
 +        }
 +        catch (err)
 +        {
 +        }
 +        return false;
 +    }
 +};
 +
 +// ********************************************************************************************* //
 +// Registration
 +
 +Firebug.registerActivableModule(Firebug.TabCacheModel);
 +
 +return Firebug.TabCacheModel;
 +
 +// ********************************************************************************************* //
 +});
diff --cc install.rdf
index 98c230d,0000000..5789e73
mode 100644,000000..100644
--- a/install.rdf
+++ b/install.rdf
@@@ -1,98 -1,0 +1,98 @@@
 +<?xml version="1.0" encoding="utf-8"?>
 +
 +<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 +     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 +
 +  <Description about="urn:mozilla:install-manifest">
 +    <em:id>firebug at software.joehewitt.com</em:id>
-     <em:version>2.0.15</em:version>
++    <em:version>2.0.16</em:version>
 +    <em:type>2</em:type>
 +    <em:bootstrap>true</em:bootstrap>
 +
 +    <!-- Any suitably modern toolkit application -->
 +    <em:targetApplication>
 +      <Description>
 +        <em:id>toolkit at mozilla.org</em:id>
 +        <em:minVersion>30.0a1</em:minVersion>
-         <em:maxVersion>47.0</em:maxVersion>
++        <em:maxVersion>48.0</em:maxVersion>
 +      </Description>
 +    </em:targetApplication>
 +
 +    <!-- Firefox -->
 +    <em:targetApplication>
 +      <Description>
 +        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
 +        <em:minVersion>30.0a1</em:minVersion>
-         <em:maxVersion>47.0</em:maxVersion>
++        <em:maxVersion>48.0</em:maxVersion>
 +      </Description>
 +    </em:targetApplication>
 +
 +    <em:name>Firebug</em:name>
 +    <em:description>Web Development Evolved. Firebug is free and open source software distributed under the BSD License.</em:description>
 +    <em:creator>Joe Hewitt</em:creator>
 +    <em:contributor>John J. Barton (IBM Almaden)</em:contributor>
 +    <em:contributor>Jan Odvarko (Mozilla Corp.)</em:contributor>
 +    <em:contributor>Max Stepanov (Aptana Inc.)</em:contributor>
 +    <em:contributor>Rob Campbell (Mozilla Corp.)</em:contributor>
 +    <em:contributor>Hans Hillen (Paciello Group, Mozilla)</em:contributor>
 +    <em:contributor>Curtis Bartley (Mozilla Corp.)</em:contributor>
 +    <em:contributor>Mike Collins (IBM Almaden)</em:contributor>
 +    <em:contributor>Kevin Decker</em:contributor>
 +    <em:contributor>Mike Ratcliffe (Mozilla Corp.)</em:contributor>
 +    <em:contributor>Hernan Rodriguez Colmeiro</em:contributor>
 +    <em:contributor>Austin Andrews</em:contributor>
 +    <em:contributor>Christoph Dorn</em:contributor>
 +    <em:contributor>Steven Roussey (Illuminations for Developers)</em:contributor>
 +    <em:contributor>Sebastian Zartner</em:contributor>
 +    <em:contributor>Harutyun Amirjanyan</em:contributor>
 +    <em:contributor>Simon Lindholm</em:contributor>
 +    <em:contributor>Stampolidis Anastasios</em:contributor>
 +    <em:contributor>Joe Walker (Mozilla Corp.)</em:contributor>
 +    <em:contributor>Vladimir Zhuravlev</em:contributor>
 +    <em:contributor>Farshid Beheshti</em:contributor>
 +    <em:contributor>Leon Sorokin</em:contributor>
 +    <em:contributor>Florent Fayolle</em:contributor>
 +    <em:contributor>Hector Zhao</em:contributor>
 +    <em:contributor>Bharath Thiruveedula</em:contributor>
 +    <em:contributor>Nathan Mische</em:contributor>
 +    <em:contributor>Belakhdar Abdeldjalil</em:contributor>
 +    <em:contributor>Jakob Kaltenbrunner</em:contributor>
 +
 +    <em:iconURL>chrome://firebug/skin/firebugBig.png</em:iconURL>
 +    <em:homepageURL>http://www.getfirebug.com/</em:homepageURL>
 +
 +
 +    <em:translator>Leszek(teo)Zyczkowski (pl-PL)</em:translator>
 +    <em:translator>markh (nl)</em:translator>
 +    <em:translator>peter3 (sv-SE)</em:translator>
 +    <em:translator>AlleyKat (da-DK)</em:translator>
 +    <em:translator>Hector Zhao, lovelywcm (zh-CN)</em:translator>
 +    <em:translator>Lukas Kucharczyk, Michal Kec (cs-CZ)</em:translator>
 +    <em:translator>Team erweiterungen.de, ReinekeFux, Benedikt Langens, Sebastian Zartner (de-DE)</em:translator>
 +    <em:translator>l0stintranslation, gonzalopirobutirro, Luigi Grilli (it-IT)</em:translator>
 +    <em:translator>alexxed (ro-RO)</em:translator>
 +    <em:translator>Nicolas Martin, Franck Marcia (fr-FR)</em:translator>
 +    <em:translator>gLes (hu-HU)</em:translator>
 +    <em:translator>Xavi Ivars - Softcatala (ca)</em:translator>
 +    <em:translator>gezmen (tr-TR)</em:translator>
 +    <em:translator>eternoendless (es-AR)</em:translator>
 +    <em:translator>Dark Preacher (ru)</em:translator>
 +    <em:translator>Tiago Oliveira, Diego de Carvalho Zimmermann, Alexandre Rapaki (pt-BR)</em:translator>
 +    <em:translator>Juan Botias, Alvaro G. Vicario (es-ES)</em:translator>
 +    <em:translator>Andriy Zhouck (uk-UA)</em:translator>
 +    <em:translator>Hisateru Tanaka, k2jp (ja-JP)</em:translator>
 +    <em:translator>Mohsen Shadroo (fa-IR)</em:translator>
 +    <em:translator>Eduard Babayan (hy-AM)</em:translator>
 +    <em:translator>Helder Magalhaes (pt-PT)</em:translator>
 +    <em:translator>Tomaz Macus (sl-SI)</em:translator>
 +    <em:translator>Stoyan Stefanov, Alexander Shopov (bg)</em:translator>
 +    <em:translator>Kristjan Bjarni Guomundsson (is-IS)</em:translator>
 +    <em:translator>NGUYEN Manh Hung (vi-VN)</em:translator>
 +    <em:translator>Bwah (hr-HR)</em:translator>
 +    <em:translator>Sonickydon (el)</em:translator>
 +    <em:translator>David Gonzales (es)</em:translator>
 +    <em:translator>DakSrbija (sr)</em:translator>
 +    <em:translator>bootleq (zh-TW)</em:translator>
 +    <em:translator>Asier Iturralde Sarasola, Julen Irazoki Oteiza (eu)</em:translator>
 +  </Description>
 +</RDF>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firebug.git



More information about the Pkg-mozext-commits mailing list