Bug 1378712 - Remove all trailing whitespaces r?ehsan draft
authorSylvestre Ledru <sledru@mozilla.com>
Thu, 06 Jul 2017 14:00:35 +0200
changeset 604779 7cb719f5f0c619c3a8e8213e2bca541e00771bdd
parent 604727 018b3829d0a7f6944a5ae1489f3a64c9e2893909
child 636287 a4fa0fff521411d9ac16bd6c05afa630ccbc37b0
push id67183
push userbmo:sledru@mozilla.com
push dateThu, 06 Jul 2017 12:01:32 +0000
reviewersehsan
bugs1378712
milestone56.0a1
Bug 1378712 - Remove all trailing whitespaces r?ehsan MozReview-Commit-ID: Kdz2xtTF9EG
accessible/atk/AccessibleWrap.cpp
accessible/atk/DocAccessibleWrap.h
accessible/atk/TextLeafAccessibleWrap.h
accessible/atk/nsMaiInterfaceText.cpp
accessible/atk/nsStateMap.h
accessible/base/FocusManager.cpp
accessible/base/Role.h
accessible/base/States.h
accessible/base/nsAccUtils.cpp
accessible/base/nsAccUtils.h
accessible/base/nsAccessibilityService.cpp
accessible/base/nsEventShell.cpp
accessible/base/nsTextEquivUtils.cpp
accessible/base/nsTextEquivUtils.h
accessible/generic/DocAccessible.cpp
accessible/generic/DocAccessible.h
accessible/generic/ImageAccessible.cpp
accessible/generic/OuterDocAccessible.h
accessible/generic/RootAccessible.cpp
accessible/generic/TableAccessible.h
accessible/generic/TextLeafAccessible.h
accessible/html/HTMLFormControlAccessible.cpp
accessible/html/HTMLSelectAccessible.cpp
accessible/html/HTMLTableAccessible.cpp
accessible/ipc/other/ProxyAccessible.cpp
accessible/other/AccessibleWrap.cpp
accessible/other/AccessibleWrap.h
accessible/other/DocAccessibleWrap.h
accessible/other/RootAccessibleWrap.h
accessible/other/TextLeafAccessibleWrap.h
accessible/windows/ia2/ia2AccessibleTable.h
accessible/windows/msaa/AccessibleWrap.cpp
accessible/windows/msaa/AccessibleWrap.h
accessible/windows/msaa/ApplicationAccessibleWrap.h
accessible/windows/msaa/HTMLWin32ObjectAccessible.cpp
accessible/windows/uia/uiaRawElmProvider.cpp
accessible/xpcom/xpcAccessibleHyperLink.cpp
accessible/xpcom/xpcAccessibleHyperText.cpp
accessible/xul/XULColorPickerAccessible.h
accessible/xul/XULFormControlAccessible.cpp
accessible/xul/XULMenuAccessible.cpp
accessible/xul/XULTreeAccessible.cpp
browser/components/about/AboutRedirector.h
browser/components/feeds/nsFeedSniffer.cpp
browser/components/shell/nsGNOMEShellService.cpp
browser/components/shell/nsMacShellService.cpp
chrome/RegistryMessageUtils.h
chrome/nsChromeRegistry.cpp
chrome/nsChromeRegistryContent.cpp
docshell/base/nsDocShell.cpp
dom/base/DOMException.h
dom/base/DOMIntersectionObserver.cpp
dom/base/DOMIntersectionObserver.h
dom/base/DOMParser.cpp
dom/base/DOMParser.h
dom/base/DOMRect.cpp
dom/base/DOMRect.h
dom/base/DirectionalityUtils.cpp
dom/base/DocumentType.cpp
dom/base/Link.h
dom/base/NameSpaceConstants.h
dom/base/NodeInfo.h
dom/base/NodeIterator.h
dom/base/Selection.cpp
dom/base/ThirdPartyUtil.cpp
dom/base/TreeWalker.h
dom/base/nsAttrValue.cpp
dom/base/nsContentAreaDragDrop.cpp
dom/base/nsContentCID.h
dom/base/nsContentList.cpp
dom/base/nsContentList.h
dom/base/nsContentPermissionHelper.h
dom/base/nsContentPolicy.cpp
dom/base/nsContentPolicy.h
dom/base/nsContentPolicyUtils.h
dom/base/nsContentSink.cpp
dom/base/nsContentSink.h
dom/base/nsCopySupport.cpp
dom/base/nsCopySupport.h
dom/base/nsDOMAttributeMap.h
dom/base/nsDOMMutationObserver.cpp
dom/base/nsDOMMutationObserver.h
dom/base/nsDOMSerializer.cpp
dom/base/nsDOMWindowList.cpp
dom/base/nsFocusManager.cpp
dom/base/nsFocusManager.h
dom/base/nsGlobalWindowCommands.cpp
dom/base/nsHTMLContentSerializer.cpp
dom/base/nsIAttribute.h
dom/base/nsIContentSerializer.h
dom/base/nsIDocumentObserver.h
dom/base/nsIMutationObserver.h
dom/base/nsIScriptNameSpaceManager.h
dom/base/nsJSUtils.h
dom/base/nsLineBreaker.cpp
dom/base/nsLineBreaker.h
dom/base/nsMappedAttributeElement.h
dom/base/nsNameSpaceManager.h
dom/base/nsObjectLoadingContent.cpp
dom/base/nsPlainTextSerializer.cpp
dom/base/nsPlainTextSerializer.h
dom/base/nsPropertyTable.cpp
dom/base/nsPropertyTable.h
dom/base/nsRange.cpp
dom/base/nsRange.h
dom/base/nsReferencedElement.cpp
dom/base/nsReferencedElement.h
dom/base/nsScriptNameSpaceManager.cpp
dom/base/nsStyleLinkElement.cpp
dom/base/nsStyleLinkElement.h
dom/base/nsStyledElement.cpp
dom/base/nsSyncLoadService.cpp
dom/base/nsTextFragment.cpp
dom/base/nsTextFragment.h
dom/base/nsTextNode.cpp
dom/base/nsTraversal.h
dom/base/nsTreeSanitizer.cpp
dom/base/nsXHTMLContentSerializer.h
dom/base/nsXMLContentSerializer.h
dom/bindings/IterableIterator.h
dom/bindings/test/TestBindingHeader.h
dom/canvas/MurmurHash3.cpp
dom/events/BeforeUnloadEvent.cpp
dom/events/ContentEventHandler.cpp
dom/events/DataTransfer.cpp
dom/events/DragEvent.cpp
dom/events/Event.cpp
dom/events/EventDispatcher.cpp
dom/events/EventDispatcher.h
dom/events/EventListenerManager.h
dom/events/EventStateManager.cpp
dom/events/EventStateManager.h
dom/events/IMEStateManager.cpp
dom/events/MutationEvent.cpp
dom/events/PaintRequest.h
dom/events/SimpleGestureEvent.cpp
dom/events/UIEvent.cpp
dom/events/WheelEvent.cpp
dom/events/WheelHandlingHelper.h
dom/events/XULCommandEvent.cpp
dom/file/ipc/IPCBlobUtils.h
dom/file/nsHostObjectURI.cpp
dom/geolocation/nsGeoPosition.h
dom/html/HTMLAnchorElement.cpp
dom/html/HTMLAreaElement.cpp
dom/html/HTMLAreaElement.h
dom/html/HTMLBodyElement.cpp
dom/html/HTMLButtonElement.cpp
dom/html/HTMLDivElement.cpp
dom/html/HTMLFormControlsCollection.cpp
dom/html/HTMLFormControlsCollection.h
dom/html/HTMLFormSubmission.h
dom/html/HTMLFrameSetElement.cpp
dom/html/HTMLHRElement.cpp
dom/html/HTMLIFrameElement.cpp
dom/html/HTMLLinkElement.cpp
dom/html/HTMLMetaElement.cpp
dom/html/HTMLOptGroupElement.h
dom/html/HTMLOptionsCollection.cpp
dom/html/HTMLPreElement.cpp
dom/html/HTMLSharedElement.cpp
dom/html/HTMLSharedObjectElement.cpp
dom/html/HTMLStyleElement.cpp
dom/html/HTMLTableCellElement.cpp
dom/html/HTMLTableColElement.cpp
dom/html/HTMLTableRowElement.cpp
dom/html/ImageDocument.cpp
dom/html/MediaDocument.cpp
dom/html/MediaDocument.h
dom/html/nsDOMStringMap.cpp
dom/html/nsGenericHTMLElement.cpp
dom/html/nsGenericHTMLElement.h
dom/html/nsHTMLDNSPrefetch.cpp
dom/html/nsHTMLDNSPrefetch.h
dom/html/nsIFormProcessor.h
dom/html/nsITextControlElement.h
dom/html/nsTextEditorState.cpp
dom/indexedDB/Key.cpp
dom/jsurl/nsJSProtocolHandler.cpp
dom/jsurl/nsJSProtocolHandler.h
dom/mathml/nsMathMLElement.cpp
dom/mathml/nsMathMLElement.h
dom/media/VideoLimits.h
dom/media/systemservices/MediaSystemResourceManagerParent.cpp
dom/media/webaudio/blink/DynamicsCompressor.cpp
dom/media/webaudio/blink/HRTFDatabase.cpp
dom/media/webaudio/blink/HRTFDatabase.h
dom/media/webaudio/blink/HRTFDatabaseLoader.cpp
dom/media/webaudio/blink/HRTFDatabaseLoader.h
dom/media/webaudio/blink/HRTFElevation.cpp
dom/media/webaudio/blink/HRTFElevation.h
dom/media/webaudio/blink/HRTFKernel.h
dom/media/webaudio/blink/ReverbConvolver.cpp
dom/media/webaudio/blink/ReverbConvolverStage.cpp
dom/media/webaudio/blink/ZeroPole.cpp
dom/media/webaudio/blink/ZeroPole.h
dom/network/TCPSocket.cpp
dom/offline/nsDOMOfflineResourceList.cpp
dom/plugins/base/PluginPRLibrary.cpp
dom/plugins/base/android/ANPAudio.cpp
dom/plugins/base/android/ANPEvent.cpp
dom/plugins/base/android/ANPKeyCodes.h
dom/plugins/base/android/ANPSurface.cpp
dom/plugins/base/nsNPAPIPluginStreamListener.cpp
dom/plugins/base/nsNPAPIPluginStreamListener.h
dom/plugins/base/nsPluginDirServiceProvider.h
dom/plugins/base/nsPluginInstanceOwner.h
dom/plugins/base/nsPluginManifestLineReader.h
dom/plugins/base/nsPluginNativeWindow.h
dom/plugins/base/nsPluginsDirDarwin.cpp
dom/plugins/base/nsPluginsDirUnix.cpp
dom/plugins/base/nsPluginsDirUtils.h
dom/plugins/base/nsPluginsDirWin.cpp
dom/plugins/ipc/BrowserStreamChild.cpp
dom/plugins/ipc/ChildAsyncCall.h
dom/plugins/ipc/MiniShmParent.h
dom/plugins/ipc/NPEventUnix.h
dom/plugins/ipc/PluginHangUIParent.cpp
dom/plugins/ipc/PluginHangUIParent.h
dom/plugins/ipc/PluginInstanceChild.cpp
dom/plugins/ipc/PluginInstanceChild.h
dom/plugins/ipc/PluginInstanceParent.h
dom/plugins/ipc/PluginMessageUtils.h
dom/plugins/ipc/PluginModuleChild.cpp
dom/plugins/ipc/PluginModuleChild.h
dom/plugins/ipc/PluginModuleParent.cpp
dom/plugins/ipc/PluginModuleParent.h
dom/plugins/ipc/PluginScriptableObjectUtils.h
dom/plugins/ipc/PluginStreamChild.cpp
dom/plugins/ipc/hangui/MiniShmBase.h
dom/plugins/ipc/hangui/MiniShmChild.h
dom/plugins/ipc/hangui/PluginHangUIChild.cpp
dom/plugins/ipc/hangui/PluginHangUIChild.h
dom/plugins/test/testplugin/nptest.h
dom/plugins/test/testplugin/nptest_droid.cpp
dom/plugins/test/testplugin/nptest_gtk2.cpp
dom/plugins/test/testplugin/nptest_platform.h
dom/plugins/test/testplugin/nptest_utils.cpp
dom/plugins/test/testplugin/nptest_utils.h
dom/plugins/test/testplugin/nptest_windows.cpp
dom/power/PowerManagerService.h
dom/security/nsCSPParser.cpp
dom/security/nsCSPUtils.h
dom/smil/nsSMILParserUtils.cpp
dom/smil/nsSMILValue.cpp
dom/storage/StorageDBThread.h
dom/svg/DOMSVGLengthList.h
dom/svg/DOMSVGPathSegList.cpp
dom/svg/DOMSVGStringList.cpp
dom/svg/SVGAnimatedNumberList.h
dom/svg/SVGAnimatedPathSegList.h
dom/svg/SVGContentUtils.cpp
dom/svg/SVGContentUtils.h
dom/svg/SVGFEColorMatrixElement.cpp
dom/svg/SVGFEPointLightElement.cpp
dom/svg/SVGGeometryElement.cpp
dom/svg/SVGMarkerElement.cpp
dom/svg/SVGMotionSMILPathUtils.cpp
dom/svg/SVGMotionSMILPathUtils.h
dom/svg/SVGMotionSMILType.cpp
dom/svg/SVGPathSegListSMILType.cpp
dom/svg/SVGPathSegUtils.cpp
dom/svg/SVGPointList.h
dom/svg/SVGPolyElement.cpp
dom/svg/SVGTransformListParser.h
dom/svg/SVGTransformableElement.cpp
dom/svg/SVGTransformableElement.h
dom/svg/SVGViewBoxSMILType.cpp
dom/svg/nsSVGAngle.cpp
dom/svg/nsSVGAnimatedTransformList.cpp
dom/svg/nsSVGDataParser.h
dom/svg/nsSVGElement.cpp
dom/svg/nsSVGEnum.cpp
dom/svg/nsSVGFilters.cpp
dom/svg/nsSVGLength2.cpp
dom/svg/nsSVGPathDataParser.cpp
dom/svg/nsSVGPathDataParser.h
dom/svg/nsSVGViewBox.cpp
dom/time/DateCacheCleaner.h
dom/vr/VRDisplayEvent.cpp
dom/webbrowserpersist/nsWebBrowserPersist.cpp
dom/xhr/XMLHttpRequestWorker.cpp
dom/xml/XMLStylesheetProcessingInstruction.cpp
dom/xml/nsIXMLContentSink.h
dom/xml/nsXMLContentSink.h
dom/xml/nsXMLFragmentContentSink.cpp
dom/xml/nsXMLPrettyPrinter.cpp
dom/xslt/base/txErrorObserver.h
dom/xslt/base/txExpandedNameMap.h
dom/xslt/base/txList.cpp
dom/xslt/base/txList.h
dom/xslt/base/txNamespaceMap.cpp
dom/xslt/base/txOwningArray.h
dom/xslt/nsIDocumentTransformer.h
dom/xslt/xml/txXMLUtils.h
dom/xslt/xpath/XPathResult.cpp
dom/xslt/xpath/txBooleanExpr.cpp
dom/xslt/xpath/txCoreFunctionCall.cpp
dom/xslt/xpath/txExpr.h
dom/xslt/xpath/txExprLexer.cpp
dom/xslt/xpath/txExprLexer.h
dom/xslt/xpath/txExprParser.cpp
dom/xslt/xpath/txExprParser.h
dom/xslt/xpath/txExprResult.h
dom/xslt/xpath/txIXPathContext.h
dom/xslt/xpath/txNameTest.cpp
dom/xslt/xpath/txNodeSet.cpp
dom/xslt/xpath/txNodeSet.h
dom/xslt/xpath/txNodeSetAdaptor.h
dom/xslt/xpath/txPathExpr.cpp
dom/xslt/xpath/txRelationalExpr.cpp
dom/xslt/xpath/txRootExpr.cpp
dom/xslt/xpath/txXPathOptimizer.cpp
dom/xslt/xslt/txCurrentFunctionCall.cpp
dom/xslt/xslt/txDocumentFunctionCall.cpp
dom/xslt/xslt/txEXSLTFunctions.cpp
dom/xslt/xslt/txExecutionState.cpp
dom/xslt/xslt/txFormatNumberFunctionCall.cpp
dom/xslt/xslt/txGenerateIdFunctionCall.cpp
dom/xslt/xslt/txInstructions.cpp
dom/xslt/xslt/txInstructions.h
dom/xslt/xslt/txKey.h
dom/xslt/xslt/txKeyFunctionCall.cpp
dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
dom/xslt/xslt/txMozillaTextOutput.cpp
dom/xslt/xslt/txMozillaXMLOutput.cpp
dom/xslt/xslt/txMozillaXMLOutput.h
dom/xslt/xslt/txNodeSorter.cpp
dom/xslt/xslt/txPatternParser.cpp
dom/xslt/xslt/txStylesheet.cpp
dom/xslt/xslt/txStylesheet.h
dom/xslt/xslt/txStylesheetCompileHandlers.cpp
dom/xslt/xslt/txStylesheetCompileHandlers.h
dom/xslt/xslt/txStylesheetCompiler.cpp
dom/xslt/xslt/txStylesheetCompiler.h
dom/xslt/xslt/txToplevelItems.h
dom/xslt/xslt/txVariableMap.h
dom/xslt/xslt/txXMLEventHandler.h
dom/xslt/xslt/txXPathResultComparator.cpp
dom/xslt/xslt/txXPathResultComparator.h
dom/xslt/xslt/txXSLTFunctions.h
dom/xslt/xslt/txXSLTNumber.cpp
dom/xslt/xslt/txXSLTNumber.h
dom/xslt/xslt/txXSLTNumberCounters.cpp
dom/xslt/xslt/txXSLTPatterns.cpp
dom/xslt/xslt/txXSLTPatterns.h
dom/xul/XULDocument.cpp
dom/xul/XULDocument.h
dom/xul/nsXULCommandDispatcher.cpp
dom/xul/nsXULCommandDispatcher.h
dom/xul/nsXULControllers.cpp
dom/xul/nsXULControllers.h
dom/xul/nsXULPopupListener.cpp
dom/xul/nsXULPopupListener.h
dom/xul/nsXULPrototypeDocument.cpp
dom/xul/templates/nsRDFBinding.cpp
dom/xul/templates/nsResourceSet.h
dom/xul/templates/nsRuleNetwork.h
dom/xul/templates/nsTemplateRule.cpp
dom/xul/templates/nsTemplateRule.h
dom/xul/templates/nsTreeRows.h
dom/xul/templates/nsXULContentBuilder.cpp
dom/xul/templates/nsXULSortService.cpp
dom/xul/templates/nsXULSortService.h
dom/xul/templates/nsXULTemplateBuilder.cpp
dom/xul/templates/nsXULTemplateBuilder.h
dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp
dom/xul/templates/nsXULTemplateQueryProcessorRDF.h
dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp
dom/xul/templates/nsXULTemplateQueryProcessorXML.cpp
dom/xul/templates/nsXULTemplateQueryProcessorXML.h
dom/xul/templates/nsXULTemplateResultSetRDF.cpp
dom/xul/templates/nsXULTreeBuilder.cpp
dom/xul/templates/nsXULTreeBuilder.h
extensions/auth/gssapi.h
extensions/auth/nsAuth.h
extensions/auth/nsAuthFactory.cpp
extensions/auth/nsAuthGSSAPI.cpp
extensions/auth/nsAuthGSSAPI.h
extensions/auth/nsAuthSASL.cpp
extensions/auth/nsAuthSSPI.cpp
extensions/auth/nsAuthSSPI.h
extensions/auth/nsAuthSambaNTLM.cpp
extensions/auth/nsAuthSambaNTLM.h
extensions/auth/nsHttpNegotiateAuth.cpp
extensions/cookie/nsPopupWindowManager.cpp
extensions/permissions/nsContentBlocker.cpp
extensions/pref/autoconfig/src/nsAutoConfig.cpp
extensions/pref/autoconfig/src/nsAutoConfig.h
extensions/pref/autoconfig/src/nsReadConfig.cpp
extensions/pref/autoconfig/src/nsReadConfig.h
extensions/spellcheck/hunspell/glue/hunspell_alloc_hooks.h
extensions/spellcheck/hunspell/glue/hunspell_fopen_hooks.h
extensions/spellcheck/hunspell/glue/mozHunspell.h
extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.cpp
extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.h
extensions/spellcheck/src/mozEnglishWordUtils.cpp
extensions/spellcheck/src/mozInlineSpellChecker.cpp
extensions/spellcheck/src/mozInlineSpellChecker.h
extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
extensions/spellcheck/src/mozInlineSpellWordUtil.h
extensions/spellcheck/src/mozPersonalDictionary.cpp
extensions/spellcheck/src/mozSpellChecker.cpp
extensions/universalchardet/src/base/CharDistribution.cpp
extensions/universalchardet/src/base/CharDistribution.h
extensions/universalchardet/src/base/JpCntx.cpp
extensions/universalchardet/src/base/JpCntx.h
extensions/universalchardet/src/base/nsCharSetProber.cpp
extensions/universalchardet/src/base/nsCharSetProber.h
extensions/universalchardet/src/base/nsCodingStateMachine.h
extensions/universalchardet/src/base/nsEUCJPProber.cpp
extensions/universalchardet/src/base/nsEscCharsetProber.h
extensions/universalchardet/src/base/nsEscSM.cpp
extensions/universalchardet/src/base/nsLatin1Prober.cpp
extensions/universalchardet/src/base/nsLatin1Prober.h
extensions/universalchardet/src/base/nsMBCSGroupProber.cpp
extensions/universalchardet/src/base/nsMBCSSM.cpp
extensions/universalchardet/src/base/nsPkgInt.h
extensions/universalchardet/src/base/nsSJISProber.cpp
extensions/universalchardet/src/base/nsUTF8Prober.cpp
extensions/universalchardet/src/base/nsUTF8Prober.h
extensions/universalchardet/src/base/nsUniversalDetector.cpp
extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.cpp
extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.h
hal/cocoa/smslib.h
hal/fallback/FallbackTime.cpp
hal/linux/LinuxPower.cpp
hal/windows/WindowsSensor.cpp
image/RasterImage.h
image/VectorImage.cpp
image/imgFrame.cpp
image/test/gtest/Common.h
image/test/gtest/TestDecoders.cpp
intl/chardet/nsCyrillicClass.h
intl/chardet/nsCyrillicDetector.cpp
intl/chardet/nsCyrillicDetector.h
intl/chardet/nsCyrillicProb.h
intl/chardet/nsDetectionConfident.h
intl/chardet/nsICharsetDetector.h
intl/chardet/nsIStringCharsetDetector.h
intl/chardet/tools/GenCyrillicClass.cpp
intl/hyphenation/glue/nsHyphenator.cpp
intl/locale/android/nsAndroidCharset.cpp
intl/locale/mac/nsMacCharset.cpp
intl/locale/nsCollationFactory.h
intl/locale/nsIPlatformCharset.h
intl/locale/nsLocale.cpp
intl/locale/nsLocale.h
intl/locale/nsLocaleService.cpp
intl/locale/nsScriptableDateFormat.cpp
intl/locale/nsWin32Locale.h
intl/locale/unix/nsPosixLocale.cpp
intl/locale/unix/nsUNIXCharset.cpp
intl/locale/windows/nsWin32Locale.cpp
intl/locale/windows/nsWinCharset.cpp
intl/lwbrk/jisx4051class.h
intl/lwbrk/nsILineBreaker.h
intl/lwbrk/nsIWordBreaker.h
intl/lwbrk/nsJISx4051LineBreaker.cpp
intl/lwbrk/nsSampleWordBreaker.cpp
intl/lwbrk/nsUniscribeBreaker.cpp
intl/lwbrk/rulebrk.c
intl/lwbrk/rulebrk.h
intl/lwbrk/th_char.h
intl/strres/nsStringBundleTextOverride.cpp
intl/uconv/nsTextToSubURI.cpp
intl/uconv/nsUConvCID.h
intl/unicharutil/normalization_data.h
intl/unicharutil/nsSaveAsCharset.cpp
intl/unicharutil/nsUnicodeNormalizer.cpp
intl/unicharutil/nsUnicodeNormalizer.h
intl/unicharutil/tests/NormalizationTest.cpp
intl/unicharutil/tools/ucgendat.c
intl/unicharutil/ucdata.c
intl/unicharutil/util/nsBidiUtils.h
ipc/glue/MessageLink.cpp
ipc/glue/MessageLink.h
ipc/glue/WindowsMessageLoop.cpp
ipc/ipdl/test/cxx/IPDLUnitTests.template.cpp
ipc/ipdl/test/cxx/TestCrashCleanup.h
ipc/ipdl/test/cxx/TestDataStructures.cpp
ipc/ipdl/test/cxx/TestDataStructures.h
ipc/ipdl/test/cxx/TestFailedCtor.h
ipc/ipdl/test/cxx/TestInterruptErrorCleanup.h
ipc/ipdl/test/cxx/TestInterruptShutdownRace.h
ipc/ipdl/test/cxx/TestJSON.h
ipc/ipdl/test/cxx/TestMultiMgrs.h
ipc/ipdl/test/cxx/TestNestedLoops.h
ipc/ipdl/test/cxx/TestOffMainThreadPainting.cpp
ipc/ipdl/test/cxx/TestRPC.h
ipc/ipdl/test/cxx/TestRaceDeferral.h
ipc/ipdl/test/cxx/TestRacyInterruptReplies.h
ipc/ipdl/test/cxx/TestRacyReentry.h
ipc/ipdl/test/cxx/TestRacyUndefer.h
ipc/ipdl/test/cxx/TestSanity.h
ipc/ipdl/test/cxx/TestSelfManageRoot.h
ipc/ipdl/test/cxx/TestShmem.h
ipc/ipdl/test/cxx/TestSyncError.h
ipc/ipdl/test/cxx/TestSyncWakeup.h
ipc/ipdl/test/cxx/TestUrgency.cpp
layout/base/FrameProperties.h
layout/base/nsBidiPresUtils.cpp
layout/base/nsBidiPresUtils.h
layout/base/nsCSSColorUtils.cpp
layout/base/nsCSSColorUtils.h
layout/base/nsCSSFrameConstructor.h
layout/base/nsCaret.cpp
layout/base/nsChangeHint.h
layout/base/nsCounterManager.h
layout/base/nsDocumentViewer.cpp
layout/base/nsFrameManager.cpp
layout/base/nsFrameTraversal.cpp
layout/base/nsIPercentBSizeObserver.h
layout/build/nsContentDLF.cpp
layout/forms/nsButtonFrameRenderer.cpp
layout/forms/nsButtonFrameRenderer.h
layout/forms/nsComboboxControlFrame.h
layout/forms/nsFieldSetFrame.cpp
layout/forms/nsFieldSetFrame.h
layout/forms/nsFileControlFrame.cpp
layout/forms/nsFormControlFrame.cpp
layout/forms/nsGfxButtonControlFrame.cpp
layout/forms/nsGfxCheckboxControlFrame.cpp
layout/forms/nsGfxRadioControlFrame.cpp
layout/forms/nsHTMLButtonControlFrame.cpp
layout/forms/nsHTMLButtonControlFrame.h
layout/forms/nsIComboboxControlFrame.h
layout/forms/nsIFormControlFrame.h
layout/forms/nsISelectControlFrame.h
layout/forms/nsITextControlFrame.h
layout/forms/nsListControlFrame.h
layout/forms/nsRangeFrame.cpp
layout/forms/nsRangeFrame.h
layout/forms/nsSelectsAreaFrame.cpp
layout/forms/nsSelectsAreaFrame.h
layout/forms/nsTextControlFrame.cpp
layout/forms/nsTextControlFrame.h
layout/generic/BlockReflowInput.cpp
layout/generic/ReflowInput.cpp
layout/generic/ReflowInput.h
layout/generic/ReflowOutput.h
layout/generic/StickyScrollContainer.cpp
layout/generic/TextOverflow.cpp
layout/generic/WritingModes.h
layout/generic/nsAbsoluteContainingBlock.cpp
layout/generic/nsBlockReflowContext.cpp
layout/generic/nsCanvasFrame.cpp
layout/generic/nsCanvasFrame.h
layout/generic/nsColumnSetFrame.cpp
layout/generic/nsContainerFrame.cpp
layout/generic/nsContainerFrame.h
layout/generic/nsFrame.cpp
layout/generic/nsFrame.h
layout/generic/nsFrameList.cpp
layout/generic/nsFrameSelection.cpp
layout/generic/nsFrameSelection.h
layout/generic/nsFrameSetFrame.h
layout/generic/nsFrameState.h
layout/generic/nsFrameUtil.cpp
layout/generic/nsGfxScrollFrame.cpp
layout/generic/nsGfxScrollFrame.h
layout/generic/nsHTMLCanvasFrame.cpp
layout/generic/nsHTMLParts.h
layout/generic/nsIFrameUtil.h
layout/generic/nsIScrollableFrame.h
layout/generic/nsIStatefulFrame.h
layout/generic/nsImageFrame.cpp
layout/generic/nsImageFrame.h
layout/generic/nsImageMap.h
layout/generic/nsInlineFrame.cpp
layout/generic/nsInlineFrame.h
layout/generic/nsLeafFrame.h
layout/generic/nsLineBox.cpp
layout/generic/nsLineLayout.cpp
layout/generic/nsLineLayout.h
layout/generic/nsPageContentFrame.cpp
layout/generic/nsPageFrame.cpp
layout/generic/nsPageFrame.h
layout/generic/nsPlaceholderFrame.cpp
layout/generic/nsPlaceholderFrame.h
layout/generic/nsPluginFrame.cpp
layout/generic/nsPluginFrame.h
layout/generic/nsRubyBaseContainerFrame.cpp
layout/generic/nsRubyFrame.cpp
layout/generic/nsSimplePageSequenceFrame.cpp
layout/generic/nsSimplePageSequenceFrame.h
layout/generic/nsSplittableFrame.cpp
layout/generic/nsSplittableFrame.h
layout/generic/nsSubDocumentFrame.cpp
layout/generic/nsTextRunTransformations.cpp
layout/generic/nsTextRunTransformations.h
layout/generic/nsVideoFrame.h
layout/inspector/inCSSValueSearch.cpp
layout/inspector/inDOMView.cpp
layout/inspector/inDeepTreeWalker.cpp
layout/ipc/RenderFrameParent.h
layout/mathml/nsIMathMLFrame.h
layout/mathml/nsMathMLChar.cpp
layout/mathml/nsMathMLContainerFrame.cpp
layout/mathml/nsMathMLContainerFrame.h
layout/mathml/nsMathMLFrame.cpp
layout/mathml/nsMathMLFrame.h
layout/mathml/nsMathMLOperators.cpp
layout/mathml/nsMathMLOperators.h
layout/mathml/nsMathMLSelectedFrame.h
layout/mathml/nsMathMLmactionFrame.cpp
layout/mathml/nsMathMLmactionFrame.h
layout/mathml/nsMathMLmencloseFrame.cpp
layout/mathml/nsMathMLmencloseFrame.h
layout/mathml/nsMathMLmfencedFrame.cpp
layout/mathml/nsMathMLmfencedFrame.h
layout/mathml/nsMathMLmfracFrame.cpp
layout/mathml/nsMathMLmfracFrame.h
layout/mathml/nsMathMLmmultiscriptsFrame.cpp
layout/mathml/nsMathMLmmultiscriptsFrame.h
layout/mathml/nsMathMLmoFrame.cpp
layout/mathml/nsMathMLmoFrame.h
layout/mathml/nsMathMLmpaddedFrame.cpp
layout/mathml/nsMathMLmpaddedFrame.h
layout/mathml/nsMathMLmrootFrame.cpp
layout/mathml/nsMathMLmrootFrame.h
layout/mathml/nsMathMLmrowFrame.h
layout/mathml/nsMathMLmspaceFrame.cpp
layout/mathml/nsMathMLmspaceFrame.h
layout/mathml/nsMathMLmsqrtFrame.h
layout/mathml/nsMathMLmtableFrame.cpp
layout/mathml/nsMathMLmunderoverFrame.cpp
layout/mathml/nsMathMLsemanticsFrame.cpp
layout/painting/FrameLayerBuilder.cpp
layout/painting/FrameLayerBuilder.h
layout/painting/nsCSSRendering.h
layout/painting/nsDisplayItemTypes.h
layout/printing/nsPagePrintTimer.cpp
layout/printing/nsPrintPreviewListener.cpp
layout/style/CSSStyleSheet.cpp
layout/style/ImageLoader.cpp
layout/style/nsCSSKeywords.cpp
layout/style/nsCSSPropertyID.h
layout/style/nsCSSProps.cpp
layout/style/nsCSSProps.h
layout/style/nsCSSRuleProcessor.cpp
layout/style/nsCSSRuleProcessor.h
layout/style/nsCSSRules.h
layout/style/nsCSSValue.h
layout/style/nsDOMCSSRect.cpp
layout/style/nsFontFaceLoader.h
layout/style/nsHTMLCSSStyleSheet.h
layout/style/nsHTMLStyleSheet.cpp
layout/style/nsIStyleRuleProcessor.h
layout/style/nsMediaList.h
layout/style/nsRuleProcessorData.h
layout/svg/SVGGeometryFrame.cpp
layout/svg/SVGTextFrame.h
layout/svg/SVGViewFrame.cpp
layout/svg/nsISVGSVGFrame.h
layout/svg/nsSVGAFrame.cpp
layout/svg/nsSVGContainerFrame.cpp
layout/svg/nsSVGContainerFrame.h
layout/svg/nsSVGDisplayableFrame.h
layout/svg/nsSVGForeignObjectFrame.cpp
layout/svg/nsSVGGenericContainerFrame.cpp
layout/svg/nsSVGImageFrame.cpp
layout/svg/nsSVGMarkerFrame.cpp
layout/svg/nsSVGOuterSVGFrame.h
layout/svg/nsSVGSwitchFrame.cpp
layout/svg/nsSVGUtils.cpp
layout/svg/nsSVGUtils.h
layout/tables/BasicTableLayoutStrategy.cpp
layout/tables/nsITableCellLayout.h
layout/tables/nsTableCellFrame.h
layout/tables/nsTableColGroupFrame.cpp
layout/tables/nsTableColGroupFrame.h
layout/tables/nsTableRowFrame.h
layout/tables/nsTableWrapperFrame.cpp
layout/tables/nsTableWrapperFrame.h
layout/tools/layout-debug/src/nsLayoutDebugCLH.cpp
layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp
layout/tools/layout-debug/src/nsRegressionTester.cpp
layout/tools/layout-debug/src/nsRegressionTester.h
layout/xul/ContainerBoxObject.cpp
layout/xul/grid/nsGrid.cpp
layout/xul/grid/nsGrid.h
layout/xul/grid/nsGridCell.cpp
layout/xul/grid/nsGridCell.h
layout/xul/grid/nsGridLayout2.cpp
layout/xul/grid/nsGridLayout2.h
layout/xul/grid/nsGridRow.cpp
layout/xul/grid/nsGridRow.h
layout/xul/grid/nsGridRowGroupFrame.h
layout/xul/grid/nsGridRowGroupLayout.cpp
layout/xul/grid/nsGridRowGroupLayout.h
layout/xul/grid/nsGridRowLayout.cpp
layout/xul/grid/nsGridRowLayout.h
layout/xul/grid/nsGridRowLeafFrame.cpp
layout/xul/grid/nsGridRowLeafFrame.h
layout/xul/grid/nsGridRowLeafLayout.cpp
layout/xul/grid/nsGridRowLeafLayout.h
layout/xul/grid/nsIGridPart.h
layout/xul/nsBox.cpp
layout/xul/nsBoxFrame.cpp
layout/xul/nsBoxFrame.h
layout/xul/nsBoxLayoutState.h
layout/xul/nsButtonBoxFrame.cpp
layout/xul/nsButtonBoxFrame.h
layout/xul/nsDeckFrame.cpp
layout/xul/nsDeckFrame.h
layout/xul/nsGroupBoxFrame.cpp
layout/xul/nsImageBoxFrame.cpp
layout/xul/nsImageBoxFrame.h
layout/xul/nsLeafBoxFrame.cpp
layout/xul/nsListBoxBodyFrame.cpp
layout/xul/nsListBoxBodyFrame.h
layout/xul/nsListBoxLayout.cpp
layout/xul/nsListItemFrame.cpp
layout/xul/nsMenuBarFrame.cpp
layout/xul/nsMenuBarFrame.h
layout/xul/nsMenuBarListener.cpp
layout/xul/nsMenuFrame.cpp
layout/xul/nsMenuFrame.h
layout/xul/nsMenuPopupFrame.cpp
layout/xul/nsMenuPopupFrame.h
layout/xul/nsResizerFrame.cpp
layout/xul/nsResizerFrame.h
layout/xul/nsRootBoxFrame.cpp
layout/xul/nsScrollBoxFrame.cpp
layout/xul/nsScrollbarButtonFrame.cpp
layout/xul/nsScrollbarButtonFrame.h
layout/xul/nsScrollbarFrame.cpp
layout/xul/nsSliderFrame.cpp
layout/xul/nsSliderFrame.h
layout/xul/nsSplitterFrame.cpp
layout/xul/nsSplitterFrame.h
layout/xul/nsSprocketLayout.h
layout/xul/nsStackFrame.h
layout/xul/nsStackLayout.cpp
layout/xul/nsStackLayout.h
layout/xul/nsTextBoxFrame.cpp
layout/xul/nsTitleBarFrame.h
layout/xul/nsXULLabelFrame.cpp
layout/xul/nsXULLabelFrame.h
layout/xul/nsXULPopupManager.cpp
layout/xul/nsXULPopupManager.h
layout/xul/nsXULTooltipListener.cpp
layout/xul/tree/nsTreeBodyFrame.cpp
layout/xul/tree/nsTreeBodyFrame.h
layout/xul/tree/nsTreeColFrame.cpp
layout/xul/tree/nsTreeColFrame.h
layout/xul/tree/nsTreeColumns.cpp
layout/xul/tree/nsTreeContentView.cpp
layout/xul/tree/nsTreeContentView.h
layout/xul/tree/nsTreeSelection.cpp
layout/xul/tree/nsTreeSelection.h
media/libaom/config/generic/aom_config.h
media/libaom/config/linux/arm/aom_config.h
media/libaom/config/linux/ia32/aom_config.h
media/libaom/config/linux/x64/aom_config.h
media/libaom/config/mac/x64/aom_config.h
media/libaom/config/win/ia32/aom_config.h
media/libaom/config/win/x64/aom_config.h
media/mtransport/sigslot.h
media/omx-plugin/include/ics/android/native_window.h
media/omx-plugin/include/ics/binder/IInterface.h
media/omx-plugin/include/ics/cutils/log.h
media/omx-plugin/include/ics/cutils/native_handle.h
media/omx-plugin/include/ics/hardware/gralloc.h
media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Core.h
media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Index.h
media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Types.h
media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Video.h
media/omx-plugin/include/ics/pixelflinger/format.h
media/omx-plugin/include/ics/pixelflinger/pixelflinger.h
media/omx-plugin/include/ics/ui/GraphicBuffer.h
media/omx-plugin/include/ics/ui/Point.h
media/omx-plugin/include/ics/ui/Rect.h
media/omx-plugin/include/ics/utils/Errors.h
media/omx-plugin/include/ics/utils/KeyedVector.h
media/omx-plugin/include/ics/utils/List.h
media/omx-plugin/include/ics/utils/RefBase.h
media/omx-plugin/include/ics/utils/SharedBuffer.h
media/omx-plugin/include/ics/utils/SortedVector.h
media/omx-plugin/include/ics/utils/String16.h
media/omx-plugin/include/ics/utils/String8.h
media/omx-plugin/include/ics/utils/StrongPointer.h
media/omx-plugin/include/ics/utils/Timers.h
media/omx-plugin/include/ics/utils/TypeHelpers.h
media/omx-plugin/include/ics/utils/threads.h
media/openmax_il/il112/OMX_Audio.h
media/openmax_il/il112/OMX_Component.h
media/openmax_il/il112/OMX_ComponentExt.h
media/openmax_il/il112/OMX_ContentPipe.h
media/openmax_il/il112/OMX_Core.h
media/openmax_il/il112/OMX_CoreExt.h
media/openmax_il/il112/OMX_IVCommon.h
media/openmax_il/il112/OMX_Image.h
media/openmax_il/il112/OMX_Index.h
media/openmax_il/il112/OMX_IndexExt.h
media/openmax_il/il112/OMX_Other.h
media/openmax_il/il112/OMX_Types.h
media/openmax_il/il112/OMX_Video.h
media/openmax_il/il112/OMX_VideoExt.h
media/webrtc/signaling/src/common/YuvStamper.cpp
media/webrtc/signaling/src/media-conduit/VideoConduit.h
modules/libjar/nsJARInputStream.cpp
modules/libjar/nsJARInputStream.h
modules/libjar/nsJARProtocolHandler.cpp
modules/libjar/nsJARProtocolHandler.h
modules/libjar/nsJARURI.cpp
modules/libjar/nsJARURI.h
modules/libjar/nsZipArchive.cpp
modules/libjar/nsZipArchive.h
modules/libjar/zipstruct.h
modules/libjar/zipwriter/nsDeflateConverter.cpp
modules/libjar/zipwriter/nsDeflateConverter.h
modules/libjar/zipwriter/nsZipWriter.cpp
modules/libpref/Preferences.cpp
modules/libpref/nsPrefBranch.cpp
modules/libpref/nsPrefsFactory.cpp
modules/libpref/prefread.cpp
modules/libpref/prefread.h
mozglue/linker/ElfLoader.h
mozglue/linker/Mappable.h
mozglue/linker/Utils.h
netwerk/base/AutoClose.h
netwerk/base/EventTokenBucket.cpp
netwerk/base/EventTokenBucket.h
netwerk/base/nsASocketHandler.h
netwerk/base/nsAsyncRedirectVerifyHelper.cpp
netwerk/base/nsAsyncRedirectVerifyHelper.h
netwerk/base/nsBaseChannel.cpp
netwerk/base/nsBaseChannel.h
netwerk/base/nsBaseContentStream.cpp
netwerk/base/nsBaseContentStream.h
netwerk/base/nsBufferedStreams.cpp
netwerk/base/nsBufferedStreams.h
netwerk/base/nsDNSPrefetch.cpp
netwerk/base/nsDNSPrefetch.h
netwerk/base/nsDirectoryIndexStream.cpp
netwerk/base/nsDirectoryIndexStream.h
netwerk/base/nsDownloader.cpp
netwerk/base/nsFileStreams.h
netwerk/base/nsIOService.cpp
netwerk/base/nsIncrementalDownload.cpp
netwerk/base/nsInputStreamChannel.cpp
netwerk/base/nsInputStreamPump.cpp
netwerk/base/nsInputStreamPump.h
netwerk/base/nsLoadGroup.cpp
netwerk/base/nsMediaFragmentURIParser.cpp
netwerk/base/nsNetAddr.cpp
netwerk/base/nsNetAddr.h
netwerk/base/nsPreloadedStream.cpp
netwerk/base/nsPreloadedStream.h
netwerk/base/nsProtocolProxyService.h
netwerk/base/nsProxyInfo.cpp
netwerk/base/nsRequestObserverProxy.cpp
netwerk/base/nsServerSocket.cpp
netwerk/base/nsSimpleNestedURI.cpp
netwerk/base/nsSimpleNestedURI.h
netwerk/base/nsSimpleURI.h
netwerk/base/nsSocketTransport2.cpp
netwerk/base/nsSocketTransportService2.cpp
netwerk/base/nsSocketTransportService2.h
netwerk/base/nsStandardURL.cpp
netwerk/base/nsStandardURL.h
netwerk/base/nsStreamListenerTee.cpp
netwerk/base/nsStreamLoader.cpp
netwerk/base/nsStreamTransportService.cpp
netwerk/base/nsSyncStreamListener.cpp
netwerk/base/nsTemporaryFileInputStream.cpp
netwerk/base/nsURLHelper.cpp
netwerk/base/nsURLHelper.h
netwerk/base/nsURLHelperOSX.cpp
netwerk/base/nsURLHelperUnix.cpp
netwerk/base/nsURLHelperWin.cpp
netwerk/base/nsURLParsers.cpp
netwerk/base/nsURLParsers.h
netwerk/build/nsNetCID.h
netwerk/build/nsNetModule.cpp
netwerk/cache/nsCache.cpp
netwerk/cache/nsCacheEntry.cpp
netwerk/cache/nsCacheEntry.h
netwerk/cache/nsCacheEntryDescriptor.cpp
netwerk/cache/nsCacheEntryDescriptor.h
netwerk/cache/nsCacheMetaData.cpp
netwerk/cache/nsCacheMetaData.h
netwerk/cache/nsCacheRequest.h
netwerk/cache/nsCacheService.cpp
netwerk/cache/nsCacheSession.cpp
netwerk/cache/nsCacheSession.h
netwerk/cache/nsDiskCache.h
netwerk/cache/nsDiskCacheBinding.cpp
netwerk/cache/nsDiskCacheBlockFile.cpp
netwerk/cache/nsDiskCacheBlockFile.h
netwerk/cache/nsDiskCacheDevice.cpp
netwerk/cache/nsDiskCacheDevice.h
netwerk/cache/nsDiskCacheDeviceSQL.cpp
netwerk/cache/nsDiskCacheDeviceSQL.h
netwerk/cache/nsDiskCacheEntry.cpp
netwerk/cache/nsDiskCacheEntry.h
netwerk/cache/nsDiskCacheMap.cpp
netwerk/cache/nsDiskCacheMap.h
netwerk/cache/nsDiskCacheStreams.cpp
netwerk/cache/nsDiskCacheStreams.h
netwerk/cache/nsMemoryCacheDevice.cpp
netwerk/cache/nsMemoryCacheDevice.h
netwerk/cache2/CacheEntry.cpp
netwerk/cache2/CacheFile.cpp
netwerk/cache2/CacheFileUtils.h
netwerk/cache2/CacheIOThread.cpp
netwerk/cookie/CookieServiceChild.cpp
netwerk/cookie/nsCookie.h
netwerk/dns/nameprep.c
netwerk/dns/nameprep_template.c
netwerk/dns/nameprepdata.c
netwerk/dns/nsDNSService2.cpp
netwerk/dns/nsHostResolver.cpp
netwerk/dns/nsHostResolver.h
netwerk/dns/nsIDNKitInterface.h
netwerk/dns/nsIDNService.cpp
netwerk/ipc/NeckoChild.cpp
netwerk/ipc/NeckoCommon.h
netwerk/mime/nsMIMEHeaderParamImpl.cpp
netwerk/mime/nsMIMEHeaderParamImpl.h
netwerk/mime/nsMimeTypes.h
netwerk/protocol/about/nsAboutBlank.h
netwerk/protocol/about/nsAboutProtocolHandler.cpp
netwerk/protocol/data/nsDataChannel.cpp
netwerk/protocol/data/nsDataHandler.cpp
netwerk/protocol/data/nsDataModule.cpp
netwerk/protocol/device/AndroidCaptureProvider.cpp
netwerk/protocol/device/nsDeviceChannel.cpp
netwerk/protocol/device/nsDeviceProtocolHandler.cpp
netwerk/protocol/file/nsFileChannel.cpp
netwerk/protocol/file/nsFileChannel.h
netwerk/protocol/file/nsFileProtocolHandler.cpp
netwerk/protocol/ftp/FTPChannelChild.cpp
netwerk/protocol/ftp/FTPChannelParent.cpp
netwerk/protocol/ftp/nsFTPChannel.cpp
netwerk/protocol/ftp/nsFtpConnectionThread.cpp
netwerk/protocol/ftp/nsFtpConnectionThread.h
netwerk/protocol/ftp/nsFtpControlConnection.cpp
netwerk/protocol/ftp/nsFtpProtocolHandler.cpp
netwerk/protocol/ftp/nsFtpProtocolHandler.h
netwerk/protocol/gio/nsGIOProtocolHandler.cpp
netwerk/protocol/http/Http2Session.cpp
netwerk/protocol/http/HttpChannelChild.cpp
netwerk/protocol/http/nsHttpAuthManager.cpp
netwerk/protocol/http/nsHttpConnectionMgr.cpp
netwerk/protocol/http/nsHttpNTLMAuth.cpp
netwerk/protocol/http/nsHttpTransaction.cpp
netwerk/protocol/viewsource/nsViewSourceChannel.cpp
netwerk/protocol/viewsource/nsViewSourceHandler.cpp
netwerk/protocol/websocket/BaseWebSocketChannel.cpp
netwerk/protocol/websocket/WebSocketChannel.cpp
netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp
netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp
netwerk/protocol/wyciwyg/nsWyciwygChannel.h
netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.cpp
netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.h
netwerk/sctp/datachannel/DataChannelProtocol.h
netwerk/socket/nsSOCKSIOLayer.cpp
netwerk/socket/nsSOCKSIOLayer.h
netwerk/socket/nsSOCKSSocketProvider.cpp
netwerk/socket/nsSocketProviderService.cpp
netwerk/socket/nsUDPSocketProvider.cpp
netwerk/streamconv/converters/ParseFTPList.cpp
netwerk/streamconv/converters/ParseFTPList.h
netwerk/streamconv/converters/mozTXTToHTMLConv.cpp
netwerk/streamconv/converters/mozTXTToHTMLConv.h
netwerk/streamconv/converters/nsDirIndexParser.cpp
netwerk/streamconv/converters/nsDirIndexParser.h
netwerk/streamconv/converters/nsFTPDirListingConv.cpp
netwerk/streamconv/converters/nsHTTPCompressConv.cpp
netwerk/streamconv/converters/nsIndexedToHTML.cpp
netwerk/streamconv/converters/nsIndexedToHTML.h
netwerk/streamconv/converters/nsMultiMixedConv.cpp
netwerk/streamconv/converters/nsMultiMixedConv.h
netwerk/streamconv/converters/nsTXTToHTMLConv.h
netwerk/streamconv/converters/nsUnknownDecoder.cpp
netwerk/streamconv/converters/nsUnknownDecoder.h
netwerk/streamconv/nsStreamConverterService.cpp
rdf/base/nsCompositeDataSource.cpp
rdf/base/nsContainerEnumerator.cpp
rdf/base/nsInMemoryDataSource.cpp
rdf/base/nsNameSpaceMap.h
rdf/base/nsRDFContainer.cpp
rdf/base/nsRDFContainerUtils.cpp
rdf/base/nsRDFContentSink.cpp
rdf/base/nsRDFResource.cpp
rdf/base/nsRDFXMLDataSource.cpp
rdf/base/nsRDFXMLSerializer.cpp
rdf/datasource/nsFileSystemDataSource.cpp
rdf/datasource/nsLocalStore.cpp
security/manager/pki/nsASN1Tree.h
security/manager/pki/nsNSSDialogHelper.cpp
security/manager/pki/nsNSSDialogs.cpp
security/manager/ssl/NSSErrorsService.cpp
security/manager/ssl/PSMContentListener.cpp
security/manager/ssl/PSMRunnable.cpp
security/manager/ssl/TransportSecurityInfo.cpp
security/manager/ssl/TransportSecurityInfo.h
security/manager/ssl/nsCertOverrideService.h
security/manager/ssl/nsCertTree.cpp
security/manager/ssl/nsCertTree.h
security/manager/ssl/nsKeygenThread.cpp
security/manager/ssl/nsKeygenThread.h
security/manager/ssl/nsNSSASN1Object.cpp
security/manager/ssl/nsNSSCallbacks.cpp
security/manager/ssl/nsNSSCertTrust.cpp
security/manager/ssl/nsNSSCertTrust.h
security/manager/ssl/nsNSSCertificateDB.cpp
security/manager/ssl/nsNSSCertificateDB.h
security/manager/ssl/nsNSSErrors.cpp
security/manager/ssl/nsNSSHelper.h
security/manager/ssl/nsNSSShutDown.cpp
security/manager/ssl/nsNSSVersion.h
security/manager/ssl/nsNTLMAuthModule.cpp
security/manager/ssl/nsPKCS12Blob.cpp
security/manager/ssl/nsPKCS12Blob.h
security/manager/ssl/nsProtectedAuthThread.cpp
security/manager/ssl/nsSSLSocketProvider.cpp
security/manager/ssl/nsSecureBrowserUIImpl.cpp
security/manager/ssl/nsSecureBrowserUIImpl.h
security/manager/ssl/nsSmartCardMonitor.h
security/manager/ssl/nsTLSSocketProvider.cpp
security/sandbox/chromium-shim/base/win/sdkdecls.h
startupcache/StartupCache.cpp
startupcache/StartupCache.h
startupcache/StartupCacheUtils.cpp
startupcache/StartupCacheUtils.h
storage/StorageBaseStatementInternal.h
storage/TelemetryVFS.cpp
storage/VacuumManager.cpp
storage/mozStorageAsyncStatementExecution.h
storage/mozStorageSQLFunctions.cpp
storage/mozStorageSQLFunctions.h
storage/mozStorageService.h
storage/mozStorageStatement.cpp
storage/test/gtest/test_true_async.cpp
testing/mochitest/ssltunnel/ssltunnel.cpp
testing/mozbase/mozprocess/tests/iniparser/dictionary.c
testing/mozbase/mozprocess/tests/iniparser/iniparser.c
testing/mozbase/mozprocess/tests/proclaunch.c
testing/web-platform/tests/resources/webidl2/test/widlproc/src/comment.c
testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.c
testing/web-platform/tests/resources/webidl2/test/widlproc/src/parse.c
toolkit/components/autocomplete/nsAutoCompleteController.cpp
toolkit/components/autocomplete/nsAutoCompleteController.h
toolkit/components/browser/nsEmbedCID.h
toolkit/components/commandlines/nsCommandLine.cpp
toolkit/components/filepicker/nsFileView.cpp
toolkit/components/find/nsFindService.cpp
toolkit/components/find/nsFindService.h
toolkit/components/maintenanceservice/maintenanceservice.cpp
toolkit/components/maintenanceservice/maintenanceservice.h
toolkit/components/maintenanceservice/resource.h
toolkit/components/maintenanceservice/servicebase.cpp
toolkit/components/maintenanceservice/servicebase.h
toolkit/components/maintenanceservice/serviceinstall.cpp
toolkit/components/maintenanceservice/serviceinstall.h
toolkit/components/parentalcontrols/nsParentalControlsServiceWin.cpp
toolkit/components/places/nsNavHistoryQuery.cpp
toolkit/components/printingui/mac/nsPrintProgress.cpp
toolkit/components/printingui/mac/nsPrintProgressParams.cpp
toolkit/components/printingui/mac/nsPrintingPromptService.cpp
toolkit/components/printingui/unixshared/nsPrintProgress.cpp
toolkit/components/printingui/unixshared/nsPrintProgress.h
toolkit/components/printingui/unixshared/nsPrintProgressParams.cpp
toolkit/components/printingui/unixshared/nsPrintProgressParams.h
toolkit/components/printingui/unixshared/nsPrintingPromptService.cpp
toolkit/components/printingui/unixshared/nsPrintingPromptService.h
toolkit/components/printingui/win/nsPrintDialogUtil.cpp
toolkit/components/printingui/win/nsPrintProgress.cpp
toolkit/components/printingui/win/nsPrintProgress.h
toolkit/components/printingui/win/nsPrintProgressParams.cpp
toolkit/components/printingui/win/nsPrintProgressParams.h
toolkit/components/printingui/win/nsPrintingPromptService.cpp
toolkit/components/printingui/win/nsPrintingPromptService.h
toolkit/components/remote/nsGTKRemoteService.h
toolkit/components/remote/nsXRemoteService.cpp
toolkit/components/remote/nsXRemoteService.h
toolkit/components/startup/nsAppStartup.cpp
toolkit/components/startup/nsUserInfoMac.h
toolkit/components/startup/nsUserInfoUnix.cpp
toolkit/components/statusfilter/nsBrowserStatusFilter.cpp
toolkit/components/statusfilter/nsBrowserStatusFilter.h
toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
toolkit/components/typeaheadfind/nsTypeAheadFind.h
toolkit/components/url-classifier/tests/gtest/TestUrlClassifierUtils.cpp
toolkit/crashreporter/LoadLibraryRemote.cpp
toolkit/crashreporter/breakpad-client/mac/handler/protected_memory_allocator.h
toolkit/crashreporter/breakpad-client/mac/tests/spawn_child_process.h
toolkit/crashreporter/breakpad-client/minidump_file_writer-inl.h
toolkit/crashreporter/breakpad-client/windows/sender/crash_report_sender.h
toolkit/crashreporter/client/crashreporter_osx.h
toolkit/crashreporter/client/crashreporter_win.cpp
toolkit/crashreporter/injector/injector.cpp
toolkit/library/nsDllMain.cpp
toolkit/mozapps/update/common/certificatecheck.cpp
toolkit/mozapps/update/common/certificatecheck.h
toolkit/mozapps/update/common/pathhash.cpp
toolkit/mozapps/update/common/pathhash.h
toolkit/mozapps/update/common/readstrings.h
toolkit/mozapps/update/common/registrycertificates.cpp
toolkit/mozapps/update/common/uachelper.cpp
toolkit/mozapps/update/common/uachelper.h
toolkit/mozapps/update/common/updatecommon.h
toolkit/mozapps/update/updater/archivereader.cpp
toolkit/mozapps/update/updater/archivereader.h
toolkit/mozapps/update/updater/bspatch.cpp
toolkit/mozapps/update/updater/bspatch.h
toolkit/mozapps/update/updater/progressui_win.cpp
toolkit/mozapps/update/updater/resource.h
toolkit/profile/nsProfileLock.h
toolkit/system/gnome/nsAlertsIconListener.cpp
toolkit/system/gnome/nsGConfService.cpp
toolkit/system/gnome/nsSystemAlertsService.cpp
toolkit/system/unixproxy/nsLibProxySettings.cpp
toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
toolkit/xre/glxtest.cpp
toolkit/xre/nsAppStartupNotifier.cpp
toolkit/xre/nsGDKErrorHandler.cpp
toolkit/xre/nsIAppStartupNotifier.h
toolkit/xre/nsNativeAppSupportWin.h
toolkit/xre/nsSigHandlers.cpp
toolkit/xre/nsWindowsRestart.cpp
toolkit/xre/nsX11ErrorHandler.cpp
tools/jprof/leaky.cpp
tools/jprof/stub/libmalloc.cpp
tools/profiler/core/EHABIStackWalk.cpp
tools/profiler/core/platform-linux-android.cpp
tools/profiler/core/platform.h
tools/profiler/lul/LulDwarf.cpp
tools/profiler/lul/LulDwarfSummariser.cpp
tools/profiler/lul/LulDwarfSummariser.h
tools/profiler/lul/LulMain.cpp
tools/profiler/tests/gtest/LulTestDwarf.cpp
tools/profiler/tests/gtest/LulTestInfrastructure.cpp
tools/profiler/tests/gtest/LulTestInfrastructure.h
view/nsView.h
view/nsViewManager.cpp
xpcom/base/MemoryReportingProcess.h
xpcom/build/XPCOMInit.cpp
xpcom/build/mach_override.c
xpcom/build/mach_override.h
xpcom/ds/Tokenizer.cpp
xpcom/ds/nsDeque.cpp
xpcom/io/nsAppDirectoryServiceDefs.h
xpcom/reflect/xptcall/md/test/invoke_test.cpp
xpcom/reflect/xptcall/md/test/stub_test.cpp
xpcom/reflect/xptcall/md/unix/vtable_layout_x86.cpp
xpcom/reflect/xptcall/md/unix/xptc_gcc_x86_unix.h
xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390x.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_aix.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_rhapsody.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_netbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_solaris.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_sparcv9_solaris.cpp
xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_solaris.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390x.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix64.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_linux.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_netbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_netbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_openbsd.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_solaris.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_darwin.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp
xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_solaris.cpp
xpcom/reflect/xptcall/md/win32/xptcinvoke_x86_gnu.cpp
xpcom/reflect/xptcall/md/win32/xptcstubs.cpp
xpcom/reflect/xptcall/xptcall.h
xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp
xpcom/string/nsStringObsolete.cpp
xpcom/tests/RegFactory.cpp
xpcom/tests/SizeTest02.cpp
xpcom/tests/SizeTest03.cpp
xpcom/tests/SizeTest06.cpp
xpcom/tests/TestArguments.cpp
xpcom/tests/TestStreamUtils.cpp
xpcom/tests/gtest/TestCRT.cpp
xpcom/tests/gtest/TestCallTemplates.cpp
xpcom/tests/gtest/TestExpirationTracker.cpp
xpcom/tests/gtest/TestRacingServiceManager.cpp
xpcom/tests/gtest/TestStrings.cpp
xpcom/tests/gtest/TestTArray2.cpp
xpcom/tests/gtest/TestThreads.cpp
xpcom/tests/windows/TestHelloXPLoop.cpp
xpcom/threads/CondVar.h
xpcom/typelib/xpt/xpt_arena.cpp
xpcom/typelib/xpt/xpt_arena.h
xpcom/typelib/xpt/xpt_struct.cpp
xpcom/typelib/xpt/xpt_struct.h
xpfe/appshell/nsAppShellWindowEnumerator.cpp
xpfe/appshell/nsAppShellWindowEnumerator.h
xpfe/appshell/nsChromeTreeOwner.cpp
xpfe/appshell/nsChromeTreeOwner.h
xpfe/appshell/nsContentTreeOwner.cpp
xpfe/appshell/nsWebShellWindow.cpp
xpfe/appshell/nsWebShellWindow.h
xpfe/appshell/nsWindowMediator.cpp
xpfe/appshell/nsXULWindow.cpp
xpfe/appshell/nsXULWindow.h
xpfe/components/directory/nsDirectoryViewer.cpp
xpfe/components/directory/nsDirectoryViewer.h
--- a/accessible/atk/AccessibleWrap.cpp
+++ b/accessible/atk/AccessibleWrap.cpp
@@ -60,17 +60,17 @@ enum MaiInterfaceType {
     MAI_INTERFACE_ACTION,
     MAI_INTERFACE_VALUE,
     MAI_INTERFACE_EDITABLE_TEXT,
     MAI_INTERFACE_HYPERTEXT,
     MAI_INTERFACE_HYPERLINK_IMPL,
     MAI_INTERFACE_SELECTION,
     MAI_INTERFACE_TABLE,
     MAI_INTERFACE_TEXT,
-    MAI_INTERFACE_DOCUMENT, 
+    MAI_INTERFACE_DOCUMENT,
     MAI_INTERFACE_IMAGE, /* 10 */
     MAI_INTERFACE_TABLE_CELL
 };
 
 static GType GetAtkTypeForMai(MaiInterfaceType type)
 {
   switch (type) {
     case MAI_INTERFACE_COMPONENT:
@@ -97,23 +97,23 @@ static GType GetAtkTypeForMai(MaiInterfa
       return ATK_TYPE_IMAGE;
     case MAI_INTERFACE_TABLE_CELL:
       MOZ_ASSERT(false);
   }
   return G_TYPE_INVALID;
 }
 
 #define NON_USER_EVENT ":system"
-    
+
 // The atk interfaces we can expose without checking what version of ATK we are
 // dealing with.  At the moment AtkTableCell is the only interface we can't
 // always expose.
 static const GInterfaceInfo atk_if_infos[] = {
     {(GInterfaceInitFunc)componentInterfaceInitCB,
-     (GInterfaceFinalizeFunc) nullptr, nullptr}, 
+     (GInterfaceFinalizeFunc) nullptr, nullptr},
     {(GInterfaceInitFunc)actionInterfaceInitCB,
      (GInterfaceFinalizeFunc) nullptr, nullptr},
     {(GInterfaceInitFunc)valueInterfaceInitCB,
      (GInterfaceFinalizeFunc) nullptr, nullptr},
     {(GInterfaceInitFunc)editableTextInterfaceInitCB,
      (GInterfaceFinalizeFunc) nullptr, nullptr},
     {(GInterfaceInitFunc)hypertextInterfaceInitCB,
      (GInterfaceFinalizeFunc) nullptr, nullptr},
@@ -323,17 +323,17 @@ AccessibleWrap::GetAtkObject(void)
 
 // Get AtkObject from Accessible interface
 /* static */
 AtkObject *
 AccessibleWrap::GetAtkObject(Accessible* acc)
 {
     void *atkObjPtr = nullptr;
     acc->GetNativeInterface(&atkObjPtr);
-    return atkObjPtr ? ATK_OBJECT(atkObjPtr) : nullptr;    
+    return atkObjPtr ? ATK_OBJECT(atkObjPtr) : nullptr;
 }
 
 /* private */
 uint16_t
 AccessibleWrap::CreateMaiInterfaces(void)
 {
   uint16_t interfacesBits = 0;
 
@@ -367,17 +367,17 @@ AccessibleWrap::CreateMaiInterfaces(void
   // HyperLink interface.
   if (IsLink())
     interfacesBits |= 1 << MAI_INTERFACE_HYPERLINK_IMPL;
 
   if (!nsAccUtils::MustPrune(this)) {  // These interfaces require children
     // Table interface.
     if (AsTable())
       interfacesBits |= 1 << MAI_INTERFACE_TABLE;
- 
+
     if (AsTableCell())
       interfacesBits |= 1 << MAI_INTERFACE_TABLE_CELL;
 
     // Selection interface.
     if (IsSelect()) {
       interfacesBits |= 1 << MAI_INTERFACE_SELECTION;
     }
   }
--- a/accessible/atk/DocAccessibleWrap.h
+++ b/accessible/atk/DocAccessibleWrap.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-/* For documentation of the accessibility architecture, 
+/* For documentation of the accessibility architecture,
  * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
  */
 
 #ifndef mozilla_a11y_DocAccessibleWrap_h__
 #define mozilla_a11y_DocAccessibleWrap_h__
 
 #include "DocAccessible.h"
 
--- a/accessible/atk/TextLeafAccessibleWrap.h
+++ b/accessible/atk/TextLeafAccessibleWrap.h
@@ -6,15 +6,15 @@
 
 #ifndef mozilla_a11y_TextLeafAccessibleWrap_h__
 #define mozilla_a11y_TextLeafAccessibleWrap_h__
 
 #include "TextLeafAccessible.h"
 
 namespace mozilla {
 namespace a11y {
- 
+
 typedef class TextLeafAccessible TextLeafAccessibleWrap;
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
--- a/accessible/atk/nsMaiInterfaceText.cpp
+++ b/accessible/atk/nsMaiInterfaceText.cpp
@@ -121,17 +121,17 @@ ConvertToAtkTextAttributeSet(nsIPersiste
 
   // libatk-adaptor will free it
   return objAttributeSet;
 }
 
 static void
 ConvertTexttoAsterisks(AccessibleWrap* accWrap, nsAString& aString)
 {
-  // convert each char to "*" when it's "password text" 
+  // convert each char to "*" when it's "password text"
   if (accWrap->NativeRole() == roles::PASSWORD_TEXT) {
     for (uint32_t i = 0; i < aString.Length(); i++)
       aString.Replace(i, 1, NS_LITERAL_STRING("*"));
   }
 }
 
 extern "C" {
 
--- a/accessible/atk/nsStateMap.h
+++ b/accessible/atk/nsStateMap.h
@@ -26,17 +26,17 @@ The following accessible states aren't t
   STATE_PINNED:          The object is pinned, usually indicating it is fixed in
                          place and has permanence. No ATK equivalent. The
                          accessible state is not currently supported.
 
 The following ATK states are not supported:
   ATK_STATE_ARMED:       No clear use case, used briefly when button is activated
   ATK_STATE_HAS_TOOLTIP: No clear use case, no IA2 equivalent
   ATK_STATE_ICONIFIED:   Mozilla does not have elements which are collapsable into icons
-  ATK_STATE_TRUNCATED:   No clear use case. Indicates that an object's onscreen content is truncated, 
+  ATK_STATE_TRUNCATED:   No clear use case. Indicates that an object's onscreen content is truncated,
                          e.g. a text value in a spreadsheet cell. No IA2 state.
 ******************************************************************************/
 
 enum EStateMapEntryType {
   kMapDirectly,
   kMapOpposite,   // For example, UNAVAILABLE is the opposite of ENABLED
   kNoStateChange, // Don't fire state change event
   kNoSuchState
--- a/accessible/base/FocusManager.cpp
+++ b/accessible/base/FocusManager.cpp
@@ -31,17 +31,17 @@ FocusManager::~FocusManager()
 Accessible*
 FocusManager::FocusedAccessible() const
 {
   if (mActiveItem)
     return mActiveItem;
 
   nsINode* focusedNode = FocusedDOMNode();
   if (focusedNode) {
-    DocAccessible* doc = 
+    DocAccessible* doc =
       GetAccService()->GetDocAccessible(focusedNode->OwnerDoc());
     return doc ? doc->GetAccessibleEvenIfNotInMapOrContainer(focusedNode) : nullptr;
   }
 
   return nullptr;
 }
 
 bool
@@ -54,17 +54,17 @@ FocusManager::IsFocused(const Accessible
   if (focusedNode) {
     // XXX: Before getting an accessible for node having a DOM focus make sure
     // they belong to the same document because it can trigger unwanted document
     // accessible creation for temporary about:blank document. Without this
     // peculiarity we would end up with plain implementation based on
     // FocusedAccessible() method call. Make sure this issue is fixed in
     // bug 638465.
     if (focusedNode->OwnerDoc() == aAccessible->GetNode()->OwnerDoc()) {
-      DocAccessible* doc = 
+      DocAccessible* doc =
         GetAccService()->GetDocAccessible(focusedNode->OwnerDoc());
       return aAccessible ==
         (doc ? doc->GetAccessibleEvenIfNotInMapOrContainer(focusedNode) : nullptr);
     }
   }
   return false;
 }
 
--- a/accessible/base/Role.h
+++ b/accessible/base/Role.h
@@ -125,17 +125,17 @@ enum Role {
   PANE = 16,
 
   /**
    * Represents a graphical image used to represent data.
    */
   CHART = 17,
 
   /**
-   * Represents a dialog box or message box. It is used for xul:dialog, 
+   * Represents a dialog box or message box. It is used for xul:dialog,
    * role="dialog".
    */
   DIALOG = 18,
 
   /**
    * Represents a window border.
    */
   BORDER = 19,
@@ -290,26 +290,26 @@ enum Role {
    */
   PUSHBUTTON = 43,
 
   /**
    * Represents a check box control. It is used for xul:checkbox,
    * html:input@type="checkbox", role="checkbox".
    */
   CHECKBUTTON = 44,
-  
+
   /**
    * Represents an option button, also called a radio button. It is one of a
    * group of mutually exclusive options. All objects sharing a single parent
    * that have this attribute are assumed to be part of single mutually
    * exclusive group. It is used for xul:radio, html:input@type="radio",
    * role="radio".
    */
   RADIOBUTTON = 45,
-  
+
   /**
    * Represents a combo box; an edit control with an associated list box that
    * provides a set of predefined choices. It is used for html:select,
    * xul:menulist, role="combobox".
    */
   COMBOBOX = 46,
 
   /**
@@ -348,17 +348,17 @@ enum Role {
    * with the spin box. It is used for xul:spinbuttons.
    */
   SPINBUTTON = 52,
 
   /**
    * Represents a graphical image used to diagram data. It is used for svg:svg.
    */
   DIAGRAM = 53,
-  
+
   /**
    * Represents an animation control, which contains content that changes over
    * time, such as a control that displays a series of bitmap frames.
    */
   ANIMATION = 54,
 
   /**
    * Represents a mathematical equation. It is used by MATHML, where there is a
--- a/accessible/base/States.h
+++ b/accessible/base/States.h
@@ -68,17 +68,17 @@ namespace states {
    * The expandable object's children are displayed, the opposite of collapsed,
    * applied to trees, list and other controls.
    * @see COLLAPSED state
    */
   const uint64_t EXPANDED = ((uint64_t) 0x1) << 9;
 
   /**
    * The expandable object's children are not displayed, the opposite of
-   * expanded, applied to tree lists and other controls, 
+   * expanded, applied to tree lists and other controls,
    * @see EXPANDED state.
    */
   const uint64_t COLLAPSED = ((uint64_t) 0x1) << 10;
 
   /**
    * The control or document can not accept input at this time.
    */
   const uint64_t BUSY = ((uint64_t) 0x1) << 11;
@@ -283,9 +283,9 @@ namespace states {
    */
   const uint64_t CURRENT = ((uint64_t) 0x1) << 48;
 
 } // namespace states
 } // namespace a11y
 } // namespace mozilla
 
 #endif
-	
+
--- a/accessible/base/nsAccUtils.cpp
+++ b/accessible/base/nsAccUtils.cpp
@@ -79,17 +79,17 @@ nsAccUtils::GetDefaultLevel(Accessible* 
 
   if (role == roles::OUTLINEITEM)
     return 1;
 
   if (role == roles::ROW) {
     Accessible* parent = aAccessible->Parent();
     // It is a row inside flatten treegrid. Group level is always 1 until it
     // is overriden by aria-level attribute.
-    if (parent && parent->Role() == roles::TREE_TABLE) 
+    if (parent && parent->Role() == roles::TREE_TABLE)
       return 1;
   }
 
   return 0;
 }
 
 int32_t
 nsAccUtils::GetARIAOrDefaultLevel(Accessible* aAccessible)
@@ -410,17 +410,17 @@ nsAccUtils::TextLength(Accessible* aAcce
   }
 
   TextLeafAccessible* textLeaf = aAccessible->AsTextLeaf();
   if (textLeaf)
     return textLeaf->Text().Length();
 
   // For list bullets (or anything other accessible which would compute its own
   // text. They don't have their own frame.
-  // XXX In the future, list bullets may have frame and anon content, so 
+  // XXX In the future, list bullets may have frame and anon content, so
   // we should be able to remove this at that point
   nsAutoString text;
   aAccessible->AppendTextTo(text); // Get all the text
   return text.Length();
 }
 
 bool
 nsAccUtils::MustPrune(Accessible* aAccessible)
--- a/accessible/base/nsAccUtils.h
+++ b/accessible/base/nsAccUtils.h
@@ -85,19 +85,19 @@ public:
    * @param aTopContent    node to end at
    */
   static void SetLiveContainerAttributes(nsIPersistentProperties *aAttributes,
                                          nsIContent* aStartContent,
                                          mozilla::dom::Element* aTopEl);
 
   /**
    * Any ARIA property of type boolean or NMTOKEN is undefined if the ARIA
-   * property is not present, or is "" or "undefined". Do not call 
+   * property is not present, or is "" or "undefined". Do not call
    * this method for properties of type string, decimal, IDREF or IDREFS.
-   * 
+   *
    * Return true if the ARIA property is defined, otherwise false
    */
   static bool HasDefinedARIAToken(nsIContent *aContent, nsIAtom *aAtom);
 
   /**
    * Return atomic value of ARIA attribute of boolean or NMTOKEN type.
    */
   static nsIAtom* GetARIAToken(mozilla::dom::Element* aElement, nsIAtom* aAttr);
--- a/accessible/base/nsAccessibilityService.cpp
+++ b/accessible/base/nsAccessibilityService.cpp
@@ -740,17 +740,17 @@ nsAccessibilityService::GetStringRole(ui
 
 #undef ROLE
 }
 
 void
 nsAccessibilityService::GetStringStates(uint32_t aState, uint32_t aExtraState,
                                         nsISupports** aStringStates)
 {
-  RefPtr<DOMStringList> stringStates = 
+  RefPtr<DOMStringList> stringStates =
     GetStringStates(nsAccUtils::To64State(aState, aExtraState));
 
   // unknown state
   if (!stringStates->Length()) {
     stringStates->Add(NS_LITERAL_STRING("unknown"));
   }
 
   stringStates.forget(aStringStates);
--- a/accessible/base/nsEventShell.cpp
+++ b/accessible/base/nsEventShell.cpp
@@ -55,17 +55,17 @@ nsEventShell::FireEvent(uint32_t aEventT
   NS_ENSURE_TRUE_VOID(aAccessible);
 
   RefPtr<AccEvent> event = new AccEvent(aEventType, aAccessible,
                                           aIsFromUserInput);
 
   FireEvent(event);
 }
 
-void 
+void
 nsEventShell::GetEventAttributes(nsINode *aNode,
                                  nsIPersistentProperties *aAttributes)
 {
   if (aNode != sEventTargetNode)
     return;
 
   nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::eventFromInput,
                          sEventFromUserInput ? NS_LITERAL_STRING("true") :
--- a/accessible/base/nsTextEquivUtils.cpp
+++ b/accessible/base/nsTextEquivUtils.cpp
@@ -130,42 +130,42 @@ nsTextEquivUtils::AppendTextEquivFromTex
             display->mDisplay == StyleDisplay::TableCell) {
           isHTMLBlock = true;
           if (!aString->IsEmpty()) {
             aString->Append(char16_t(' '));
           }
         }
       }
     }
-    
+
     if (aContent->TextLength() > 0) {
       nsIFrame *frame = aContent->GetPrimaryFrame();
       if (frame) {
         nsIFrame::RenderedText text = frame->GetRenderedText(0,
             UINT32_MAX, nsIFrame::TextOffsetType::OFFSETS_IN_CONTENT_TEXT,
             nsIFrame::TrailingWhitespace::DONT_TRIM_TRAILING_WHITESPACE);
         aString->Append(text.mString);
       } else {
         // If aContent is an object that is display: none, we have no a frame.
         aContent->AppendTextTo(*aString);
       }
       if (isHTMLBlock && !aString->IsEmpty()) {
         aString->Append(char16_t(' '));
       }
     }
-    
+
     return NS_OK;
   }
-  
+
   if (aContent->IsHTMLElement() &&
       aContent->NodeInfo()->Equals(nsGkAtoms::br)) {
     aString->AppendLiteral("\r\n");
     return NS_OK;
   }
-  
+
   return NS_OK_NO_NAME_CLAUSE_HANDLED;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsTextEquivUtils. Private.
 
 nsresult
 nsTextEquivUtils::AppendFromAccessibleChildren(Accessible* aAccessible,
--- a/accessible/base/nsTextEquivUtils.h
+++ b/accessible/base/nsTextEquivUtils.h
@@ -116,17 +116,17 @@ public:
 
 private:
   /**
    * Iterates accessible children and calculates text equivalent from each
    * child.
    */
   static nsresult AppendFromAccessibleChildren(Accessible* aAccessible,
                                                nsAString *aString);
-  
+
   /**
    * Calculates text equivalent from the given accessible and its subtree if
    * allowed.
    */
   static nsresult AppendFromAccessible(Accessible* aAccessible,
                                        nsAString *aString);
 
   /**
--- a/accessible/generic/DocAccessible.cpp
+++ b/accessible/generic/DocAccessible.cpp
@@ -662,17 +662,17 @@ DocAccessible::ScrollPositionDidChange(n
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIObserver
 
 NS_IMETHODIMP
 DocAccessible::Observe(nsISupports* aSubject, const char* aTopic,
                        const char16_t* aData)
 {
-  if (!nsCRT::strcmp(aTopic,"obs_documentCreated")) {    
+  if (!nsCRT::strcmp(aTopic,"obs_documentCreated")) {
     // State editable will now be set, readonly is now clear
     // Normally we only fire delayed events created from the node, not an
     // accessible object. See the AccStateChangeEvent constructor for details
     // about this exceptional case.
     RefPtr<AccEvent> event =
       new AccStateChangeEvent(this, states::EDITABLE, true);
     FireDelayedEvent(event);
   }
@@ -815,17 +815,17 @@ DocAccessible::AttributeChangedImpl(Acce
   // DOM attribute & resulting layout to actually change. Otherwise,
   // assistive technology will retrieve the wrong state/value/selection info.
 
   // XXX todo
   // We still need to handle special HTML cases here
   // For example, if an <img>'s usemap attribute is modified
   // Otherwise it may just be a state change, for example an object changing
   // its visibility
-  // 
+  //
   // XXX todo: report aria state changes for "undefined" literal value changes
   // filed as bug 472142
   //
   // XXX todo:  invalidate accessible when aria state changes affect exposed role
   // filed as bug 472143
 
   // Universal boolean properties that don't require a role. Fire the state
   // change when disabled or aria-disabled attribute is set.
--- a/accessible/generic/DocAccessible.h
+++ b/accessible/generic/DocAccessible.h
@@ -157,17 +157,17 @@ public:
     // document and all its subdocuments are ready
     eCompletelyLoaded = eReady | 1 << 2
   };
 
   /**
    * Return true if the document has given document state.
    */
   bool HasLoadState(LoadState aState) const
-    { return (mLoadState & static_cast<uint32_t>(aState)) == 
+    { return (mLoadState & static_cast<uint32_t>(aState)) ==
         static_cast<uint32_t>(aState); }
 
   /**
    * Return a native window handler or pointer depending on platform.
    */
   virtual void* GetNativeWindow() const;
 
   /**
--- a/accessible/generic/ImageAccessible.cpp
+++ b/accessible/generic/ImageAccessible.cpp
@@ -106,17 +106,17 @@ ImageAccessible::ActionCount()
   return HasLongDesc() ? actionCount + 1 : actionCount;
 }
 
 void
 ImageAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
   if (IsLongDescIndex(aIndex) && HasLongDesc())
-    aName.AssignLiteral("showlongdesc"); 
+    aName.AssignLiteral("showlongdesc");
   else
     LinkableAccessible::ActionNameAt(aIndex, aName);
 }
 
 bool
 ImageAccessible::DoAction(uint8_t aIndex)
 {
   // Get the long description uri and open in a new window.
--- a/accessible/generic/OuterDocAccessible.h
+++ b/accessible/generic/OuterDocAccessible.h
@@ -9,17 +9,17 @@
 #include "AccessibleWrap.h"
 
 namespace mozilla {
 namespace a11y {
 class DocAccessibleParent;
 
 /**
  * Used for <browser>, <frame>, <iframe>, <page> or editor> elements.
- * 
+ *
  * In these variable names, "outer" relates to the OuterDocAccessible as
  * opposed to the DocAccessibleWrap which is "inner". The outer node is
  * a something like tags listed above, whereas the inner node corresponds to
  * the inner document root.
  */
 
 class OuterDocAccessible final : public AccessibleWrap
 {
--- a/accessible/generic/RootAccessible.cpp
+++ b/accessible/generic/RootAccessible.cpp
@@ -99,17 +99,17 @@ RootAccessible::NativeRole()
   return DocAccessibleWrap::NativeRole();
 }
 
 // RootAccessible protected member
 #ifdef MOZ_XUL
 uint32_t
 RootAccessible::GetChromeFlags()
 {
-  // Return the flag set for the top level window as defined 
+  // Return the flag set for the top level window as defined
   // by nsIWebBrowserChrome::CHROME_WINDOW_[FLAGNAME]
   // Not simple: nsIXULWindow is not just a QI from nsIDOMWindow
   nsCOMPtr<nsIDocShell> docShell = nsCoreUtils::GetDocShellFor(mDocumentNode);
   NS_ENSURE_TRUE(docShell, 0);
   nsCOMPtr<nsIDocShellTreeOwner> treeOwner;
   docShell->GetTreeOwner(getter_AddRefs(treeOwner));
   NS_ENSURE_TRUE(treeOwner, 0);
   nsCOMPtr<nsIXULWindow> xulWin(do_GetInterface(treeOwner));
@@ -198,17 +198,17 @@ RootAccessible::AddEventListeners()
 
   return DocAccessible::AddEventListeners();
 }
 
 nsresult
 RootAccessible::RemoveEventListeners()
 {
   nsCOMPtr<EventTarget> target = mDocumentNode;
-  if (target) { 
+  if (target) {
     for (const char* const* e = kEventTypes,
                    * const* e_end = ArrayEnd(kEventTypes);
          e < e_end; ++e) {
       nsresult rv = target->RemoveEventListener(NS_ConvertASCIItoUTF16(*e), this, true);
       NS_ENSURE_SUCCESS(rv, rv);
     }
   }
 
@@ -280,17 +280,17 @@ RootAccessible::ProcessDOMEvent(nsIDOMEv
     HandlePopupHidingEvent(origTargetNode);
     return;
   }
 
   DocAccessible* targetDocument = GetAccService()->
     GetDocAccessible(origTargetNode->OwnerDoc());
   NS_ASSERTION(targetDocument, "No document while accessible is in document?!");
 
-  Accessible* accessible = 
+  Accessible* accessible =
     targetDocument->GetAccessibleOrContainer(origTargetNode);
   if (!accessible)
     return;
 
 #ifdef MOZ_XUL
   XULTreeAccessible* treeAcc = accessible->AsXULTree();
   if (treeAcc) {
     if (eventType.EqualsLiteral("TreeRowCountChanged")) {
@@ -512,31 +512,31 @@ RootAccessible::HandlePopupShownEvent(Ac
     // Don't fire menupopup events for combobox and autocomplete lists.
     nsEventShell::FireEvent(nsIAccessibleEvent::EVENT_MENUPOPUP_START,
                             aAccessible);
     return;
   }
 
   if (role == roles::TOOLTIP) {
     // There is a single <xul:tooltip> node which Mozilla moves around.
-    // The accessible for it stays the same no matter where it moves. 
-    // AT's expect to get an EVENT_SHOW for the tooltip. 
+    // The accessible for it stays the same no matter where it moves.
+    // AT's expect to get an EVENT_SHOW for the tooltip.
     // In event callback the tooltip's accessible will be ready.
     nsEventShell::FireEvent(nsIAccessibleEvent::EVENT_SHOW, aAccessible);
     return;
   }
 
   if (role == roles::COMBOBOX_LIST) {
     // Fire expanded state change event for comboboxes and autocompeletes.
     Accessible* combobox = aAccessible->Parent();
     if (!combobox)
       return;
 
     roles::Role comboboxRole = combobox->Role();
-    if (comboboxRole == roles::COMBOBOX || 
+    if (comboboxRole == roles::COMBOBOX ||
 	comboboxRole == roles::AUTOCOMPLETE) {
       RefPtr<AccEvent> event =
         new AccStateChangeEvent(combobox, states::EXPANDED, true);
       if (event)
         nsEventShell::FireEvent(event);
     }
   }
 }
--- a/accessible/generic/TableAccessible.h
+++ b/accessible/generic/TableAccessible.h
@@ -51,31 +51,31 @@ public:
    * Return the index of the cell at the given row and column.
    */
   virtual int32_t CellIndexAt(uint32_t aRowIdx, uint32_t aColIdx)
     { return ColCount() * aRowIdx + aColIdx; }
 
   /**
    * Return the column index of the cell with the given index.
    */
-  virtual int32_t ColIndexAt(uint32_t aCellIdx) 
+  virtual int32_t ColIndexAt(uint32_t aCellIdx)
     { return aCellIdx % ColCount(); }
 
   /**
    * Return the row index of the cell with the given index.
    */
-  virtual int32_t RowIndexAt(uint32_t aCellIdx) 
+  virtual int32_t RowIndexAt(uint32_t aCellIdx)
     { return aCellIdx / ColCount(); }
 
   /**
    * Get the row and column indices for the cell at the given index.
    */
   virtual void RowAndColIndicesAt(uint32_t aCellIdx, int32_t* aRowIdx,
-                                  int32_t* aColIdx) 
-    { 
+                                  int32_t* aColIdx)
+    {
       uint32_t colCount = ColCount();
       *aRowIdx = aCellIdx / colCount;
       *aColIdx = aCellIdx % colCount;
     }
 
   /**
    * Return the number of columns occupied by the cell at the given row and
    * column indices.
--- a/accessible/generic/TextLeafAccessible.h
+++ b/accessible/generic/TextLeafAccessible.h
@@ -5,17 +5,17 @@
 
 #ifndef mozilla_a11y_TextLeafAccessible_h__
 #define mozilla_a11y_TextLeafAccessible_h__
 
 #include "BaseAccessibles.h"
 
 namespace mozilla {
 namespace a11y {
- 
+
 /**
  * Generic class used for text nodes.
  */
 class TextLeafAccessible : public LinkableAccessible
 {
 public:
   TextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~TextLeafAccessible();
--- a/accessible/html/HTMLFormControlAccessible.cpp
+++ b/accessible/html/HTMLFormControlAccessible.cpp
@@ -84,17 +84,17 @@ HTMLCheckboxAccessible::NativeState()
   if (!input)
     return state;
 
   if (input->Indeterminate())
     return state | states::MIXED;
 
   if (input->Checked())
     return state | states::CHECKED;
- 
+
   return state;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLCheckboxAccessible: Widgets
 
 bool
 HTMLCheckboxAccessible::IsWidget() const
--- a/accessible/html/HTMLSelectAccessible.cpp
+++ b/accessible/html/HTMLSelectAccessible.cpp
@@ -147,17 +147,17 @@ ENameValueFlag
 HTMLSelectOptionAccessible::NativeName(nsString& aName)
 {
   // CASE #1 -- great majority of the cases
   // find the label attribute - this is what the W3C says we should use
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
   if (!aName.IsEmpty())
     return eNameOK;
 
-  // CASE #2 -- no label parameter, get the first child, 
+  // CASE #2 -- no label parameter, get the first child,
   // use it if it is a text node
   nsIContent* text = mContent->GetFirstChild();
   if (text && text->IsNodeOfType(nsINode::eTEXT)) {
     nsTextEquivUtils::AppendTextEquivFromTextContent(text, &aName);
     aName.CompressWhitespace();
     return aName.IsEmpty() ? eNameOK : eNameFromSubtree;
   }
 
--- a/accessible/html/HTMLTableAccessible.cpp
+++ b/accessible/html/HTMLTableAccessible.cpp
@@ -971,17 +971,17 @@ HTMLTableAccessible::IsProbablyLayoutTab
   // Check for legitimate data table attributes.
   nsAutoString summary;
   if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::summary, summary) &&
       !summary.IsEmpty())
     RETURN_LAYOUT_ANSWER(false, "Has summary -- legitimate table structures");
 
   // Check for legitimate data table elements.
   Accessible* caption = FirstChild();
-  if (caption && caption->Role() == roles::CAPTION && caption->HasChildren()) 
+  if (caption && caption->Role() == roles::CAPTION && caption->HasChildren())
     RETURN_LAYOUT_ANSWER(false, "Not empty caption -- legitimate table structures");
 
   for (nsIContent* childElm = mContent->GetFirstChild(); childElm;
        childElm = childElm->GetNextSibling()) {
     if (!childElm->IsHTMLElement())
       continue;
 
     if (childElm->IsAnyOfHTMLElements(nsGkAtoms::col,
--- a/accessible/ipc/other/ProxyAccessible.cpp
+++ b/accessible/ipc/other/ProxyAccessible.cpp
@@ -834,17 +834,17 @@ ProxyAccessible::GetSelectedItem(uint32_
 
 bool
 ProxyAccessible::IsItemSelected(uint32_t aIndex)
 {
   bool selected = false;
   Unused << mDoc->SendIsItemSelected(mID, aIndex, &selected);
   return selected;
 }
- 
+
 bool
 ProxyAccessible::AddItemToSelection(uint32_t aIndex)
 {
   bool success = false;
   Unused << mDoc->SendAddItemToSelection(mID, aIndex, &success);
   return success;
 }
 
--- a/accessible/other/AccessibleWrap.cpp
+++ b/accessible/other/AccessibleWrap.cpp
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "AccessibleWrap.h"
 
 using namespace mozilla::a11y;
 
 //-----------------------------------------------------
-// construction 
+// construction
 //-----------------------------------------------------
 AccessibleWrap::
   AccessibleWrap(nsIContent* aContent, DocAccessible* aDoc) :
   Accessible(aContent, aDoc)
 {
 }
 
 //-----------------------------------------------------
--- a/accessible/other/AccessibleWrap.h
+++ b/accessible/other/AccessibleWrap.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-/* For documentation of the accessibility architecture, 
+/* For documentation of the accessibility architecture,
  * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
  */
 
 #ifndef mozilla_a11y_AccessibleWrap_h_
 #define mozilla_a11y_AccessibleWrap_h_
 
 #include "nsCOMPtr.h"
 #include "Accessible.h"
--- a/accessible/other/DocAccessibleWrap.h
+++ b/accessible/other/DocAccessibleWrap.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-/* For documentation of the accessibility architecture, 
+/* For documentation of the accessibility architecture,
  * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
  */
 
 #ifndef mozilla_a11y_DocAccessibleWrap_h__
 #define mozilla_a11y_DocAccessibleWrap_h__
 
 #include "DocAccessible.h"
 
--- a/accessible/other/RootAccessibleWrap.h
+++ b/accessible/other/RootAccessibleWrap.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-/* For documentation of the accessibility architecture, 
+/* For documentation of the accessibility architecture,
  * see http://lxr.mozilla.org/seamonkey/source/accessible/accessible-docs.html
  */
 
 #ifndef mozilla_a11y_RootAccessibleWrap_h__
 #define mozilla_a11y_RootAccessibleWrap_h__
 
 #include "RootAccessible.h"
 
--- a/accessible/other/TextLeafAccessibleWrap.h
+++ b/accessible/other/TextLeafAccessibleWrap.h
@@ -5,15 +5,15 @@
 
 #ifndef mozilla_a11y_TextLeafAccessibleWrap_h__
 #define mozilla_a11y_TextLeafAccessibleWrap_h__
 
 #include "TextLeafAccessible.h"
 
 namespace mozilla {
 namespace a11y {
- 
+
 typedef class TextLeafAccessible TextLeafAccessibleWrap;
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
--- a/accessible/windows/ia2/ia2AccessibleTable.h
+++ b/accessible/windows/ia2/ia2AccessibleTable.h
@@ -37,17 +37,17 @@ public:
       /* [in] */ long rowIndex,
       /* [in] */ long columnIndex,
       /* [retval][out] */ long *childIndex);
 
   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
       /* [in] */ long column,
       /* [retval][out] */ BSTR *description);
 
-  virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt( 
+  virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
       /* [in] */ long row,
       /* [in] */ long column,
       /* [retval][out] */ long *nColumnsSpanned);
 
   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
       /* [out] */ IAccessibleTable **accessibleTable,
       /* [retval][out] */ long *startingRowIndex);
 
@@ -156,17 +156,17 @@ public:
       /* [out, size_is(,*nSelectedCells,)] */ IUnknown ***cells,
       /* [out, retval] */ long *nSelectedCells);
 
   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
       /* [out, size_is(,*nColumns)] */ long **selectedColumns,
       /* [out, retval] */ long *nColumns);
 
   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
-      /* [out, size_is(,*nRows)] */ long **selectedRows, 
+      /* [out, size_is(,*nRows)] */ long **selectedRows,
       /* [out, retval] */ long *nRows);
 
 protected:
   ia2AccessibleTable(TableAccessible* aTable) : mTable(aTable) {}
 
   TableAccessible* mTable;
 };
 
--- a/accessible/windows/msaa/AccessibleWrap.cpp
+++ b/accessible/windows/msaa/AccessibleWrap.cpp
@@ -1553,17 +1553,17 @@ AccessibleWrap::GetRemoteIAccessibleFor(
   }
 
   return nullptr;
 }
 
 void
 AccessibleWrap::UpdateSystemCaretFor(Accessible* aAccessible)
 {
-  // Move the system caret so that Windows Tablet Edition and tradional ATs with 
+  // Move the system caret so that Windows Tablet Edition and tradional ATs with
   // off-screen model can follow the caret
   ::DestroyCaret();
 
   HyperTextAccessible* text = aAccessible->AsHyperText();
   if (!text)
     return;
 
   nsIWidget* widget = nullptr;
--- a/accessible/windows/msaa/AccessibleWrap.h
+++ b/accessible/windows/msaa/AccessibleWrap.h
@@ -45,98 +45,98 @@ public: // construction, destruction
 
   public: // IUnknown methods - see iunknown.h for documentation
     STDMETHODIMP QueryInterface(REFIID, void**) override;
 
   // Return the registered OLE class ID of this object's CfDataObj.
     CLSID GetClassID() const;
 
   public: // COM interface IAccessible
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accParent( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accParent(
         /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispParent) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accChildCount( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accChildCount(
         /* [retval][out] */ long __RPC_FAR *pcountChildren) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accChild( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accChild(
         /* [in] */ VARIANT varChild,
         /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispChild) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accName( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accName(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszName) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accValue( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accValue(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszValue) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accDescription( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accDescription(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszDescription) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accRole( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accRole(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ VARIANT __RPC_FAR *pvarRole) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accState( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accState(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ VARIANT __RPC_FAR *pvarState) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accHelp( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accHelp(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszHelp) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accHelpTopic( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accHelpTopic(
         /* [out] */ BSTR __RPC_FAR *pszHelpFile,
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ long __RPC_FAR *pidTopic) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accKeyboardShortcut( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accKeyboardShortcut(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszKeyboardShortcut) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accFocus( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accFocus(
         /* [retval][out] */ VARIANT __RPC_FAR *pvarChild) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accSelection( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accSelection(
         /* [retval][out] */ VARIANT __RPC_FAR *pvarChildren) override;
 
-    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accDefaultAction( 
+    virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accDefaultAction(
         /* [optional][in] */ VARIANT varChild,
         /* [retval][out] */ BSTR __RPC_FAR *pszDefaultAction) override;
 
-    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accSelect( 
+    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accSelect(
         /* [in] */ long flagsSelect,
         /* [optional][in] */ VARIANT varChild) override;
 
-    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accLocation( 
+    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accLocation(
         /* [out] */ long __RPC_FAR *pxLeft,
         /* [out] */ long __RPC_FAR *pyTop,
         /* [out] */ long __RPC_FAR *pcxWidth,
         /* [out] */ long __RPC_FAR *pcyHeight,
         /* [optional][in] */ VARIANT varChild) override;
 
-    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accNavigate( 
+    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accNavigate(
         /* [in] */ long navDir,
         /* [optional][in] */ VARIANT varStart,
         /* [retval][out] */ VARIANT __RPC_FAR *pvarEndUpAt) override;
 
-    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accHitTest( 
+    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accHitTest(
         /* [in] */ long xLeft,
         /* [in] */ long yTop,
         /* [retval][out] */ VARIANT __RPC_FAR *pvarChild) override;
 
-    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accDoDefaultAction( 
+    virtual /* [id] */ HRESULT STDMETHODCALLTYPE accDoDefaultAction(
         /* [optional][in] */ VARIANT varChild) override;
 
-    virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_accName( 
+    virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_accName(
         /* [optional][in] */ VARIANT varChild,
         /* [in] */ BSTR szName) override;
 
-    virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_accValue( 
+    virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_accValue(
         /* [optional][in] */ VARIANT varChild,
         /* [in] */ BSTR szValue) override;
 
   // IDispatch (support of scripting languages like VB)
   virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo) override;
 
   virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid,
                                                 ITypeInfo **ppTInfo) override;
@@ -160,17 +160,17 @@ public: // construction, destruction
 
   // Helper methods
   static int32_t GetChildIDFor(Accessible* aAccessible);
   static HWND GetHWNDFor(Accessible* aAccessible);
 
   static void FireWinEvent(Accessible* aTarget, uint32_t aEventType);
 
   /**
-   * System caret support: update the Windows caret position. 
+   * System caret support: update the Windows caret position.
    * The system caret works more universally than the MSAA caret
    * For example, Window-Eyes, JAWS, ZoomText and Windows Tablet Edition use it
    * We will use an invisible system caret.
    * Gecko is still responsible for drawing its own caret
    */
   void UpdateSystemCaretFor(Accessible* aAccessible);
   static void UpdateSystemCaretFor(ProxyAccessible* aProxy,
                                    const LayoutDeviceIntRect& aCaretRect);
--- a/accessible/windows/msaa/ApplicationAccessibleWrap.h
+++ b/accessible/windows/msaa/ApplicationAccessibleWrap.h
@@ -9,17 +9,17 @@
 #define mozilla_a11y_ApplicationAccessibleWrap_h__
 
 #include "ApplicationAccessible.h"
 
 #include "AccessibleApplication.h"
 
 namespace mozilla {
 namespace a11y {
- 
+
 class ApplicationAccessibleWrap: public ApplicationAccessible,
                                  public IAccessibleApplication
 {
   ~ApplicationAccessibleWrap() {}
 
 public:
   // nsISupporst
   NS_DECL_ISUPPORTS_INHERITED
--- a/accessible/windows/msaa/HTMLWin32ObjectAccessible.cpp
+++ b/accessible/windows/msaa/HTMLWin32ObjectAccessible.cpp
@@ -76,17 +76,17 @@ HTMLWin32ObjectAccessible::HTMLWin32Obje
         return;
       }
 
       mCOMProxy.reset(proxyHolder.Release());
       return;
     }
 #endif
 
-    // The plugin is not windowless. In this situation we use 
+    // The plugin is not windowless. In this situation we use
     // use its inner child owned by the plugin so that we don't get
     // in an infinite loop, where the WM_GETOBJECT's get forwarded
     // back to us and create another HTMLWin32ObjectAccessible
     mHwnd = ::GetWindow((HWND)aHwnd, GW_CHILD);
   }
 }
 
 void
--- a/accessible/windows/uia/uiaRawElmProvider.cpp
+++ b/accessible/windows/uia/uiaRawElmProvider.cpp
@@ -152,17 +152,17 @@ uiaRawElmProvider::GetPropertyValue(PROP
       if (!keyString.IsEmpty()) {
         aPropertyValue->vt = VT_BSTR;
         aPropertyValue->bstrVal = ::SysAllocString(keyString.get());
         return S_OK;
       }
 
       break;
     }
-    
+
     //ARIA Role / shortcut
     case UIA_AriaRolePropertyId: {
       nsAutoString xmlRoles;
 
       nsCOMPtr<nsIPersistentProperties> attributes = mAcc->Attributes();
       attributes->GetStringProperty(NS_LITERAL_CSTRING("xml-roles"), xmlRoles);
 
       if(!xmlRoles.IsEmpty()) {
--- a/accessible/xpcom/xpcAccessibleHyperLink.cpp
+++ b/accessible/xpcom/xpcAccessibleHyperLink.cpp
@@ -132,17 +132,17 @@ xpcAccessibleHyperLink::GetURI(int32_t a
 NS_IMETHODIMP
 xpcAccessibleHyperLink::GetAnchor(int32_t aIndex, nsIAccessible** aAccessible)
 {
   NS_ENSURE_ARG_POINTER(aAccessible);
   *aAccessible = nullptr;
 
   if (Intl().IsNull())
     return NS_ERROR_FAILURE;
-  
+
   if (aIndex < 0)
     return NS_ERROR_INVALID_ARG;
 
   if (Intl().IsAccessible()) {
     if (aIndex >= static_cast<int32_t>(Intl().AsAccessible()->AnchorCount()))
       return NS_ERROR_INVALID_ARG;
 
     NS_IF_ADDREF(*aAccessible = ToXPC(Intl().AsAccessible()->AnchorAt(aIndex)));
--- a/accessible/xpcom/xpcAccessibleHyperText.cpp
+++ b/accessible/xpcom/xpcAccessibleHyperText.cpp
@@ -86,17 +86,17 @@ xpcAccessibleHyperText::GetTextBeforeOff
   NS_ENSURE_ARG_POINTER(aEndOffset);
   *aStartOffset = *aEndOffset = 0;
   aText.Truncate();
 
   if (mIntl.IsNull())
     return NS_ERROR_FAILURE;
 
   if (mIntl.IsAccessible()) {
-    Intl()->TextBeforeOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, 
+    Intl()->TextBeforeOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset,
                              aText);
   } else {
     nsString text;
     mIntl.AsProxy()->GetTextBeforeOffset(aOffset, aBoundaryType, text,
                                          aStartOffset, aEndOffset);
     aText = text;
   }
   return NS_OK;
@@ -112,21 +112,21 @@ xpcAccessibleHyperText::GetTextAtOffset(
   NS_ENSURE_ARG_POINTER(aEndOffset);
   *aStartOffset = *aEndOffset = 0;
   aText.Truncate();
 
   if (mIntl.IsNull())
     return NS_ERROR_FAILURE;
 
   if (mIntl.IsAccessible()) {
-    Intl()->TextAtOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, 
+    Intl()->TextAtOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset,
                          aText);
   } else {
     nsString text;
-    mIntl.AsProxy()->GetTextAtOffset(aOffset, aBoundaryType, text, 
+    mIntl.AsProxy()->GetTextAtOffset(aOffset, aBoundaryType, text,
                                      aStartOffset, aEndOffset);
     aText = text;
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 xpcAccessibleHyperText::GetTextAfterOffset(int32_t aOffset,
@@ -138,21 +138,21 @@ xpcAccessibleHyperText::GetTextAfterOffs
   NS_ENSURE_ARG_POINTER(aEndOffset);
   *aStartOffset = *aEndOffset = 0;
   aText.Truncate();
 
   if (mIntl.IsNull())
     return NS_ERROR_FAILURE;
 
   if (mIntl.IsAccessible()) {
-    Intl()->TextAfterOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset, 
+    Intl()->TextAfterOffset(aOffset, aBoundaryType, aStartOffset, aEndOffset,
                             aText);
   } else {
     nsString text;
-    mIntl.AsProxy()->GetTextAfterOffset(aOffset, aBoundaryType, text, 
+    mIntl.AsProxy()->GetTextAfterOffset(aOffset, aBoundaryType, text,
                                         aStartOffset, aEndOffset);
     aText = text;
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 xpcAccessibleHyperText::GetCharacterAtOffset(int32_t aOffset,
@@ -392,24 +392,24 @@ xpcAccessibleHyperText::GetSelectionBoun
     return NS_ERROR_FAILURE;
 
   if (aSelectionNum < 0)
     return NS_ERROR_INVALID_ARG;
 
   if (mIntl.IsAccessible()) {
     if (aSelectionNum >= Intl()->SelectionCount())
       return NS_ERROR_INVALID_ARG;
-      
+
     Intl()->SelectionBoundsAt(aSelectionNum, aStartOffset, aEndOffset);
   } else {
 #if defined(XP_WIN)
     return NS_ERROR_NOT_IMPLEMENTED;
 #else
     nsString unused;
-    mIntl.AsProxy()->SelectionBoundsAt(aSelectionNum, unused, aStartOffset, 
+    mIntl.AsProxy()->SelectionBoundsAt(aSelectionNum, unused, aStartOffset,
                                        aEndOffset);
 #endif
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 xpcAccessibleHyperText::SetSelectionBounds(int32_t aSelectionNum,
@@ -418,25 +418,25 @@ xpcAccessibleHyperText::SetSelectionBoun
 {
   if (mIntl.IsNull())
     return NS_ERROR_FAILURE;
 
   if (aSelectionNum < 0)
     return NS_ERROR_INVALID_ARG;
 
   if (mIntl.IsAccessible()) {
-      if (!Intl()->SetSelectionBoundsAt(aSelectionNum, aStartOffset, 
+      if (!Intl()->SetSelectionBoundsAt(aSelectionNum, aStartOffset,
                                         aEndOffset)) {
         return NS_ERROR_INVALID_ARG;
       }
   } else {
 #if defined(XP_WIN)
     return NS_ERROR_NOT_IMPLEMENTED;
 #else
-      if (!mIntl.AsProxy()->SetSelectionBoundsAt(aSelectionNum, aStartOffset, 
+      if (!mIntl.AsProxy()->SetSelectionBoundsAt(aSelectionNum, aStartOffset,
                                                 aEndOffset)) {
         return NS_ERROR_INVALID_ARG;
       }
 #endif
   }
   return NS_OK;
 }
 
--- a/accessible/xul/XULColorPickerAccessible.h
+++ b/accessible/xul/XULColorPickerAccessible.h
@@ -49,9 +49,9 @@ public:
   virtual bool AreItemsOperable() const override;
 
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
 
-#endif  
+#endif
--- a/accessible/xul/XULFormControlAccessible.cpp
+++ b/accessible/xul/XULFormControlAccessible.cpp
@@ -107,17 +107,17 @@ XULButtonAccessible::NativeState()
     if (type.EqualsLiteral("checkbox") || type.EqualsLiteral("radio")) {
       state |= states::CHECKABLE;
       bool checked = false;
       int32_t checkState = 0;
       xulButtonElement->GetChecked(&checked);
       if (checked) {
         state |= states::PRESSED;
         xulButtonElement->GetCheckState(&checkState);
-        if (checkState == nsIDOMXULButtonElement::CHECKSTATE_MIXED) { 
+        if (checkState == nsIDOMXULButtonElement::CHECKSTATE_MIXED) {
           state |= states::MIXED;
         }
       }
     }
   }
 
   if (ContainsMenu())
     state |= states::HASPOPUP;
@@ -332,19 +332,19 @@ XULCheckboxAccessible::DoAction(uint8_t 
 }
 
 uint64_t
 XULCheckboxAccessible::NativeState()
 {
   // Possible states: focused, focusable, unavailable(disabled), checked
   // Get focus and disable status from base class
   uint64_t state = LeafAccessible::NativeState();
-  
+
   state |= states::CHECKABLE;
-  
+
   // Determine Checked state
   nsCOMPtr<nsIDOMXULCheckboxElement> xulCheckboxElement =
     do_QueryInterface(mContent);
   if (xulCheckboxElement) {
     bool checked = false;
     xulCheckboxElement->GetChecked(&checked);
     if (checked) {
       state |= states::CHECKED;
@@ -462,25 +462,25 @@ XULRadioButtonAccessible::ContainerWidge
 ////////////////////////////////////////////////////////////////////////////////
 // XULRadioGroupAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 /**
   * XUL Radio Group
   *   The Radio Group proxies for the Radio Buttons themselves. The Group gets
   *   focus whereas the Buttons do not. So we only have an accessible object for
-  *   this for the purpose of getting the proper RadioButton. Need this here to 
+  *   this for the purpose of getting the proper RadioButton. Need this here to
   *   avoid circular reference problems when navigating the accessible tree and
   *   for getting to the radiobuttons.
   */
 
 XULRadioGroupAccessible::
   XULRadioGroupAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   XULSelectControlAccessible(aContent, aDoc)
-{ 
+{
 }
 
 role
 XULRadioGroupAccessible::NativeRole()
 {
   return roles::RADIO_GROUP;
 }
 
--- a/accessible/xul/XULMenuAccessible.cpp
+++ b/accessible/xul/XULMenuAccessible.cpp
@@ -249,22 +249,22 @@ XULMenuitemAccessible::NativeRole()
   nsCOMPtr<nsIDOMXULContainerElement> xulContainer(do_QueryInterface(mContent));
   if (xulContainer)
     return roles::PARENT_MENUITEM;
 
   if (mParent && mParent->Role() == roles::COMBOBOX_LIST)
     return roles::COMBOBOX_OPTION;
 
   if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
-                            nsGkAtoms::radio, eCaseMatters)) 
+                            nsGkAtoms::radio, eCaseMatters))
     return roles::RADIO_MENU_ITEM;
 
   if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type,
                             nsGkAtoms::checkbox,
-                            eCaseMatters)) 
+                            eCaseMatters))
     return roles::CHECK_MENU_ITEM;
 
   return roles::MENUITEM;
 }
 
 int32_t
 XULMenuitemAccessible::GetLevelInternal()
 {
--- a/accessible/xul/XULTreeAccessible.cpp
+++ b/accessible/xul/XULTreeAccessible.cpp
@@ -499,17 +499,17 @@ XULTreeAccessible::ContainerWidget() con
     nsCOMPtr<nsIDOMXULMenuListElement> menuListElm =
       do_QueryInterface(mContent->GetParent());
     if (menuListElm) {
       nsCOMPtr<nsIDOMNode> inputElm;
       menuListElm->GetInputField(getter_AddRefs(inputElm));
       if (inputElm) {
         nsCOMPtr<nsINode> inputNode = do_QueryInterface(inputElm);
         if (inputNode) {
-          Accessible* input = 
+          Accessible* input =
             mDoc->GetAccessible(inputNode);
           return input ? input->ContainerWidget() : nullptr;
         }
       }
     }
   }
   return nullptr;
 }
--- a/browser/components/about/AboutRedirector.h
+++ b/browser/components/about/AboutRedirector.h
@@ -11,17 +11,17 @@
 namespace mozilla {
 namespace browser {
 
 class AboutRedirector : public nsIAboutModule
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSIABOUTMODULE
- 
+
   AboutRedirector() {}
 
   static nsresult
     Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);
 
 protected:
   virtual ~AboutRedirector() {}
 
--- a/browser/components/feeds/nsFeedSniffer.cpp
+++ b/browser/components/feeds/nsFeedSniffer.cpp
@@ -61,18 +61,18 @@ nsFeedSniffer::ConvertEncodedData(nsIReq
   mozilla::Unused << httpChannel->GetResponseHeader(NS_LITERAL_CSTRING("Content-Encoding"),
                                                     contentEncoding);
   if (!contentEncoding.IsEmpty()) {
     nsCOMPtr<nsIStreamConverterService> converterService(do_GetService(NS_STREAMCONVERTERSERVICE_CONTRACTID));
     if (converterService) {
       ToLowerCase(contentEncoding);
 
       nsCOMPtr<nsIStreamListener> converter;
-      rv = converterService->AsyncConvertData(contentEncoding.get(), 
-                                              "uncompressed", this, nullptr, 
+      rv = converterService->AsyncConvertData(contentEncoding.get(),
+                                              "uncompressed", this, nullptr,
                                               getter_AddRefs(converter));
       NS_ENSURE_SUCCESS(rv, rv);
 
       converter->OnStartRequest(request, nullptr);
 
       nsCOMPtr<nsIStringInputStream> rawStream =
         do_CreateInstance(NS_STRINGINPUTSTREAM_CONTRACTID);
       if (!rawStream)
@@ -137,35 +137,35 @@ FindChar(char c, const char *begin, cons
  * another type, e.g. a HTML document, and we don't want to show the preview
  * page if the document isn't actually a feed.
  *
  * @param   start
  *          The beginning of the data being sniffed
  * @param   end
  *          The end of the data being sniffed, right before the substring that
  *          was found.
- * @returns true if the found substring is the documentElement, false 
+ * @returns true if the found substring is the documentElement, false
  *          otherwise.
  */
 static bool
 IsDocumentElement(const char *start, const char* end)
 {
-  // For every tag in the buffer, check to see if it's a PI, Doctype or 
+  // For every tag in the buffer, check to see if it's a PI, Doctype or
   // comment, our desired substring or something invalid.
   while ( (start = FindChar('<', start, end)) ) {
     ++start;
     if (start >= end)
       return false;
 
     // Check to see if the character following the '<' is either '?' or '!'
     // (processing instruction or doctype or comment)... these are valid nodes
-    // to have in the prologue. 
+    // to have in the prologue.
     if (*start != '?' && *start != '!')
       return false;
-    
+
     // Now advance the iterator until the '>' (We do this because we don't want
     // to sniff indicator substrings that are embedded within other nodes, e.g.
     // comments: <!-- <rdf:RDF .. > -->
     start = FindChar('>', start, end);
     if (!start)
       return false;
 
     ++start;
@@ -179,17 +179,17 @@ IsDocumentElement(const char *start, con
  * @param   dataString
  *          The data being sniffed
  * @param   substring
  *          The substring being tested for existence and root-ness.
  * @returns true if the substring exists and is the documentElement, false
  *          otherwise.
  */
 static bool
-ContainsTopLevelSubstring(nsACString& dataString, const char *substring) 
+ContainsTopLevelSubstring(nsACString& dataString, const char *substring)
 {
   nsACString::const_iterator start, end;
   dataString.BeginReading(start);
   dataString.EndReading(end);
 
   if (!FindInReadable(nsCString(substring), start, end)){
     return false;
   }
@@ -198,62 +198,62 @@ ContainsTopLevelSubstring(nsACString& da
 
   const char *begin = dataString.BeginReading();
 
   // Only do the validation when we find the substring.
   return IsDocumentElement(begin, begin + offset);
 }
 
 NS_IMETHODIMP
-nsFeedSniffer::GetMIMETypeFromContent(nsIRequest* request, 
-                                      const uint8_t* data, 
-                                      uint32_t length, 
+nsFeedSniffer::GetMIMETypeFromContent(nsIRequest* request,
+                                      const uint8_t* data,
+                                      uint32_t length,
                                       nsACString& sniffedType)
 {
   nsCOMPtr<nsIHttpChannel> channel(do_QueryInterface(request));
   if (!channel)
     return NS_ERROR_NO_INTERFACE;
 
   // Check that this is a GET request, since you can't subscribe to a POST...
   nsAutoCString method;
   mozilla::Unused << channel->GetRequestMethod(method);
   if (!method.EqualsLiteral("GET")) {
     sniffedType.Truncate();
     return NS_OK;
   }
 
   // We need to find out if this is a load of a view-source document. In this
   // case we do not want to override the content type, since the source display
-  // does not need to be converted from feed format to XUL. More importantly, 
-  // we don't want to change the content type from something 
-  // nsContentDLF::CreateInstance knows about (e.g. application/xml, text/html 
-  // etc) to something that only the application fe knows about (maybe.feed) 
+  // does not need to be converted from feed format to XUL. More importantly,
+  // we don't want to change the content type from something
+  // nsContentDLF::CreateInstance knows about (e.g. application/xml, text/html
+  // etc) to something that only the application fe knows about (maybe.feed)
   // thus deactivating syntax highlighting.
   nsCOMPtr<nsIURI> originalURI;
   channel->GetOriginalURI(getter_AddRefs(originalURI));
 
   nsAutoCString scheme;
   originalURI->GetScheme(scheme);
   if (scheme.EqualsLiteral("view-source")) {
     sniffedType.Truncate();
     return NS_OK;
   }
 
-  // Check the Content-Type to see if it is set correctly. If it is set to 
+  // Check the Content-Type to see if it is set correctly. If it is set to
   // something specific that we think is a reliable indication of a feed, don't
-  // bother sniffing since we assume the site maintainer knows what they're 
-  // doing. 
+  // bother sniffing since we assume the site maintainer knows what they're
+  // doing.
   nsAutoCString contentType;
   channel->GetContentType(contentType);
   bool noSniff = contentType.EqualsLiteral(TYPE_RSS) ||
                    contentType.EqualsLiteral(TYPE_ATOM);
 
   // Check to see if this was a feed request from the location bar or from
   // the feed: protocol. This is also a reliable indication.
-  // The value of the header doesn't matter.  
+  // The value of the header doesn't matter.
   if (!noSniff) {
     nsAutoCString sniffHeader;
     nsresult foundHeader =
       channel->GetRequestHeader(NS_LITERAL_CSTRING("X-Moz-Is-Feed"),
                                 sniffHeader);
     noSniff = NS_SUCCEEDED(foundHeader);
   }
 
@@ -280,23 +280,23 @@ nsFeedSniffer::GetMIMETypeFromContent(ns
       !contentType.EqualsLiteral(APPLICATION_OCTET_STREAM) &&
       // Same criterion as XMLHttpRequest.  Should we be checking for "+xml"
       // and check for text/xml and application/xml by hand instead?
       contentType.Find("xml") == -1) {
     sniffedType.Truncate();
     return NS_OK;
   }
 
-  // Now we need to potentially decompress data served with 
+  // Now we need to potentially decompress data served with
   // Content-Encoding: gzip
   nsresult rv = ConvertEncodedData(request, data, length);
   if (NS_FAILED(rv))
     return rv;
 
-  // We cap the number of bytes to scan at MAX_BYTES to prevent picking up 
+  // We cap the number of bytes to scan at MAX_BYTES to prevent picking up
   // false positives by accidentally reading document content, e.g. a "how to
   // make a feed" page.
   const char* testData;
   if (mDecodedData.IsEmpty()) {
     testData = (const char*)data;
     length = std::min(length, MAX_BYTES);
   } else {
     testData = mDecodedData.get();
@@ -352,22 +352,22 @@ nsFeedSniffer::AppendSegmentToString(nsI
   nsCString* decodedData = static_cast<nsCString*>(closure);
   decodedData->Append(rawSegment, count);
   *writeCount = count;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFeedSniffer::OnDataAvailable(nsIRequest* request, nsISupports* context,
-                               nsIInputStream* stream, uint64_t offset, 
+                               nsIInputStream* stream, uint64_t offset,
                                uint32_t count)
 {
   uint32_t read;
-  return stream->ReadSegments(AppendSegmentToString, &mDecodedData, count, 
+  return stream->ReadSegments(AppendSegmentToString, &mDecodedData, count,
                               &read);
 }
 
 NS_IMETHODIMP
-nsFeedSniffer::OnStopRequest(nsIRequest* request, nsISupports* context, 
+nsFeedSniffer::OnStopRequest(nsIRequest* request, nsISupports* context,
                              nsresult status)
 {
-  return NS_OK; 
+  return NS_OK;
 }
--- a/browser/components/shell/nsGNOMEShellService.cpp
+++ b/browser/components/shell/nsGNOMEShellService.cpp
@@ -354,19 +354,19 @@ WriteImage(const nsCString& aPath, imgIC
       return NS_ERROR_NOT_AVAILABLE;
 
   gboolean res = gdk_pixbuf_save(pixbuf, aPath.get(), "png", nullptr, nullptr);
 
   g_object_unref(pixbuf);
   return res ? NS_OK : NS_ERROR_FAILURE;
 #endif
 }
-                 
+
 NS_IMETHODIMP
-nsGNOMEShellService::SetDesktopBackground(nsIDOMElement* aElement, 
+nsGNOMEShellService::SetDesktopBackground(nsIDOMElement* aElement,
                                           int32_t aPosition)
 {
   nsresult rv;
   nsCOMPtr<nsIImageLoadingContent> imageContent = do_QueryInterface(aElement, &rv);
   if (!imageContent) return rv;
 
   // get the image container
   nsCOMPtr<imgIRequest> request;
@@ -415,17 +415,17 @@ nsGNOMEShellService::SetDesktopBackgroun
 
   // write the image to a file in the home dir
   rv = WriteImage(filePath, container);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Try GSettings first. If we don't have GSettings or the right schema, fall back
   // to using GConf instead. Note that if GSettings works ok, the changes get
   // mirrored to GConf by the gsettings->gconf bridge in gnome-settings-daemon
-  nsCOMPtr<nsIGSettingsService> gsettings = 
+  nsCOMPtr<nsIGSettingsService> gsettings =
     do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
   if (gsettings) {
     nsCOMPtr<nsIGSettingsCollection> background_settings;
     gsettings->GetCollectionForSchema(
       NS_LITERAL_CSTRING(kDesktopBGSchema), getter_AddRefs(background_settings));
     if (background_settings) {
       gchar *file_uri = g_filename_to_uri(filePath.get(), nullptr, nullptr);
       if (!file_uri)
@@ -463,17 +463,17 @@ nsGNOMEShellService::SetDesktopBackgroun
 }
 
 #define COLOR_16_TO_8_BIT(_c) ((_c) >> 8)
 #define COLOR_8_TO_16_BIT(_c) ((_c) << 8 | (_c))
 
 NS_IMETHODIMP
 nsGNOMEShellService::GetDesktopBackgroundColor(uint32_t *aColor)
 {
-  nsCOMPtr<nsIGSettingsService> gsettings = 
+  nsCOMPtr<nsIGSettingsService> gsettings =
     do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
   nsCOMPtr<nsIGSettingsCollection> background_settings;
   nsAutoCString background;
 
   if (gsettings) {
     gsettings->GetCollectionForSchema(
       NS_LITERAL_CSTRING(kDesktopBGSchema), getter_AddRefs(background_settings));
     if (background_settings) {
@@ -612,21 +612,21 @@ nsGNOMEShellService::OpenApplication(int
 
   return err ? NS_OK : NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP
 nsGNOMEShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI)
 {
   nsresult rv;
-  nsCOMPtr<nsIProcess> process = 
+  nsCOMPtr<nsIProcess> process =
     do_CreateInstance("@mozilla.org/process/util;1", &rv);
   if (NS_FAILED(rv))
     return rv;
-  
+
   rv = process->Init(aApplication);
   if (NS_FAILED(rv))
     return rv;
 
   const nsCString spec(aURI);
   const char* specStr = spec.get();
   return process->Run(false, &specStr, 1);
 }
--- a/browser/components/shell/nsMacShellService.cpp
+++ b/browser/components/shell/nsMacShellService.cpp
@@ -93,17 +93,17 @@ nsMacShellService::SetDefaultBrowser(boo
     // before it is silenced.
     (void) prefs->SetIntPref(PREF_DEFAULTBROWSERCHECKCOUNT, 0);
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsMacShellService::SetDesktopBackground(nsIDOMElement* aElement, 
+nsMacShellService::SetDesktopBackground(nsIDOMElement* aElement,
                                         int32_t aPosition)
 {
   // Note: We don't support aPosition on OS X.
 
   // Get the image URI:
   nsresult rv;
   nsCOMPtr<nsIImageLoadingContent> imageContent = do_QueryInterface(aElement,
                                                                     &rv);
@@ -146,17 +146,17 @@ nsMacShellService::SetDesktopBackground(
   // and add the imgage file name itself:
   mBackgroundFile->Append(fileNameUnicode);
 
   // Download the image; the desktop background will be set in OnStateChange()
   nsCOMPtr<nsIWebBrowserPersist> wbp
     (do_CreateInstance("@mozilla.org/embedding/browser/nsWebBrowserPersist;1", &rv));
   NS_ENSURE_SUCCESS(rv, rv);
 
-  uint32_t flags = nsIWebBrowserPersist::PERSIST_FLAGS_NO_CONVERSION | 
+  uint32_t flags = nsIWebBrowserPersist::PERSIST_FLAGS_NO_CONVERSION |
                    nsIWebBrowserPersist::PERSIST_FLAGS_REPLACE_EXISTING_FILES |
                    nsIWebBrowserPersist::PERSIST_FLAGS_FROM_CACHE;
 
   wbp->SetPersistFlags(flags);
   wbp->SetProgressListener(this);
 
   nsCOMPtr<nsILoadContext> loadContext;
   nsCOMPtr<nsISupports> container = content->OwnerDoc()->GetContainer();
@@ -360,42 +360,42 @@ nsMacShellService::SetDesktopBackgroundC
 NS_IMETHODIMP
 nsMacShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI)
 {
   nsCOMPtr<nsILocalFileMac> lfm(do_QueryInterface(aApplication));
   CFURLRef appURL;
   nsresult rv = lfm->GetCFURL(&appURL);
   if (NS_FAILED(rv))
     return rv;
-  
+
   const nsCString spec(aURI);
   const UInt8* uriString = (const UInt8*)spec.get();
   CFURLRef uri = ::CFURLCreateWithBytes(nullptr, uriString, aURI.Length(),
                                         kCFStringEncodingUTF8, nullptr);
-  if (!uri) 
+  if (!uri)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   CFArrayRef uris = ::CFArrayCreate(nullptr, (const void**)&uri, 1, nullptr);
   if (!uris) {
     ::CFRelease(uri);
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   LSLaunchURLSpec launchSpec;
   launchSpec.appURL = appURL;
   launchSpec.itemURLs = uris;
   launchSpec.passThruParams = nullptr;
   launchSpec.launchFlags = kLSLaunchDefaults;
   launchSpec.asyncRefCon = nullptr;
-  
+
   OSErr err = ::LSOpenFromURLSpec(&launchSpec, nullptr);
-  
+
   ::CFRelease(uris);
   ::CFRelease(uri);
-  
+
   return err != noErr ? NS_ERROR_FAILURE : NS_OK;
 }
 
 NS_IMETHODIMP
 nsMacShellService::GetDefaultFeedReader(nsIFile** _retval)
 {
   nsresult rv = NS_ERROR_FAILURE;
   *_retval = nullptr;
--- a/chrome/RegistryMessageUtils.h
+++ b/chrome/RegistryMessageUtils.h
@@ -85,37 +85,37 @@ struct ParamTraits<SerializedURI>
         ReadParam(aMsg, aIter, &charset)) {
       aResult->spec = spec;
       aResult->charset = charset;
       return true;
     }
     return false;
   }
 };
-  
+
 template <>
 struct ParamTraits<ChromePackage>
 {
   typedef ChromePackage paramType;
-  
+
   static void Write(Message* aMsg, const paramType& aParam)
   {
     WriteParam(aMsg, aParam.package);
     WriteParam(aMsg, aParam.contentBaseURI);
     WriteParam(aMsg, aParam.localeBaseURI);
     WriteParam(aMsg, aParam.skinBaseURI);
     WriteParam(aMsg, aParam.flags);
   }
-  
+
   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
   {
     nsCString package;
     SerializedURI contentBaseURI, localeBaseURI, skinBaseURI;
     uint32_t flags;
-    
+
     if (ReadParam(aMsg, aIter, &package) &&
         ReadParam(aMsg, aIter, &contentBaseURI) &&
         ReadParam(aMsg, aIter, &localeBaseURI) &&
         ReadParam(aMsg, aIter, &skinBaseURI) &&
         ReadParam(aMsg, aIter, &flags)) {
       aResult->package = package;
       aResult->contentBaseURI = contentBaseURI;
       aResult->localeBaseURI = localeBaseURI;
@@ -134,29 +134,29 @@ struct ParamTraits<ChromePackage>
                              aParam.skinBaseURI.spec.get(), aParam.flags));
   }
 };
 
 template <>
 struct ParamTraits<SubstitutionMapping>
 {
   typedef SubstitutionMapping paramType;
-  
+
   static void Write(Message* aMsg, const paramType& aParam)
   {
     WriteParam(aMsg, aParam.scheme);
     WriteParam(aMsg, aParam.path);
     WriteParam(aMsg, aParam.resolvedURI);
   }
-  
+
   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
   {
     nsCString scheme, path;
     SerializedURI resolvedURI;
-    
+
     if (ReadParam(aMsg, aIter, &scheme) &&
         ReadParam(aMsg, aIter, &path) &&
         ReadParam(aMsg, aIter, &resolvedURI)) {
       aResult->scheme = scheme;
       aResult->path = path;
       aResult->resolvedURI = resolvedURI;
       return true;
     }
@@ -171,28 +171,28 @@ struct ParamTraits<SubstitutionMapping>
                              aParam.resolvedURI.spec.get()));
   }
 };
 
 template <>
 struct ParamTraits<OverrideMapping>
 {
   typedef OverrideMapping paramType;
-  
+
   static void Write(Message* aMsg, const paramType& aParam)
   {
     WriteParam(aMsg, aParam.originalURI);
     WriteParam(aMsg, aParam.overrideURI);
   }
-  
+
   static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
   {
     SerializedURI originalURI;
     SerializedURI overrideURI;
-    
+
     if (ReadParam(aMsg, aIter, &originalURI) &&
         ReadParam(aMsg, aIter, &overrideURI)) {
       aResult->originalURI = originalURI;
       aResult->overrideURI = overrideURI;
       return true;
     }
     return false;
   }
--- a/chrome/nsChromeRegistry.cpp
+++ b/chrome/nsChromeRegistry.cpp
@@ -44,17 +44,17 @@ using mozilla::StyleSheet;
 using mozilla::dom::IsChromeURI;
 using mozilla::dom::Location;
 
 ////////////////////////////////////////////////////////////////////////////////
 
 void
 nsChromeRegistry::LogMessage(const char* aMsg, ...)
 {
-  nsCOMPtr<nsIConsoleService> console 
+  nsCOMPtr<nsIConsoleService> console
     (do_GetService(NS_CONSOLESERVICE_CONTRACTID));
   if (!console)
     return;
 
   va_list args;
   va_start(args, aMsg);
   mozilla::SmprintfPointer formatted = mozilla::Vsmprintf(aMsg, args);
   va_end(args);
@@ -65,17 +65,17 @@ nsChromeRegistry::LogMessage(const char*
 }
 
 void
 nsChromeRegistry::LogMessageWithContext(nsIURI* aURL, uint32_t aLineNumber, uint32_t flags,
                                         const char* aMsg, ...)
 {
   nsresult rv;
 
-  nsCOMPtr<nsIConsoleService> console 
+  nsCOMPtr<nsIConsoleService> console
     (do_GetService(NS_CONSOLESERVICE_CONTRACTID));
 
   nsCOMPtr<nsIScriptError> error
     (do_CreateInstance(NS_SCRIPTERROR_CONTRACTID));
   if (!console || !error)
     return;
 
   va_list args;
@@ -244,17 +244,17 @@ nsChromeRegistry::Canonify(nsIURL* aChro
         case '.':
           if (pos[1] == '.')
             return NS_ERROR_DOM_BAD_URI;
           break;
         case '%':
           // chrome: URIs with double-escapes are trying to trick us.
           // watch for %2e, and %25 in case someone triple unescapes
           if (pos[1] == '2' &&
-               ( pos[2] == 'e' || pos[2] == 'E' || 
+               ( pos[2] == 'e' || pos[2] == 'E' ||
                  pos[2] == '5' ))
             return NS_ERROR_DOM_BAD_URI;
           break;
         case '?':
         case '#':
           pos = end;
           continue;
       }
@@ -350,17 +350,17 @@ NS_IMETHODIMP nsChromeRegistry::RefreshS
     windowEnumerator->GetNext(getter_AddRefs(protoWindow));
     if (protoWindow) {
       nsCOMPtr<nsPIDOMWindowOuter> domWindow = do_QueryInterface(protoWindow);
       if (domWindow)
         RefreshWindow(domWindow);
     }
     windowEnumerator->HasMoreElements(&more);
   }
-   
+
   return NS_OK;
 }
 
 void
 nsChromeRegistry::FlushSkinCaches()
 {
   nsCOMPtr<nsIObserverService> obsSvc =
     mozilla::services::GetObserverService();
@@ -466,17 +466,17 @@ void
 nsChromeRegistry::FlushAllCaches()
 {
   nsCOMPtr<nsIObserverService> obsSvc =
     mozilla::services::GetObserverService();
   NS_ASSERTION(obsSvc, "Couldn't get observer service.");
 
   obsSvc->NotifyObservers((nsIChromeRegistry*) this,
                           NS_CHROME_FLUSH_TOPIC, nullptr);
-}  
+}
 
 // xxxbsmedberg Move me to nsIWindowMediator
 NS_IMETHODIMP
 nsChromeRegistry::ReloadChrome()
 {
   FlushAllCaches();
   // Do a reload of all top level windows.
   nsresult rv = NS_OK;
--- a/chrome/nsChromeRegistryContent.cpp
+++ b/chrome/nsChromeRegistryContent.cpp
@@ -137,17 +137,17 @@ nsChromeRegistryContent::RegisterOverrid
                           nullptr, io);
   if (NS_FAILED(rv))
     return;
 
   rv = NS_NewURI(getter_AddRefs(overrideURI), aOverride.overrideURI.spec,
                  aOverride.overrideURI.charset.get(), nullptr, io);
   if (NS_FAILED(rv))
     return;
-  
+
   mOverrideTable.Put(chromeURI, overrideURI);
 }
 
 nsIURI*
 nsChromeRegistryContent::GetBaseURIFromPackage(const nsCString& aPackage,
                                                const nsCString& aProvider,
                                                const nsCString& aPath)
 {
@@ -230,17 +230,17 @@ nsChromeRegistryContent::GetSelectedLoca
     return NS_ERROR_NOT_AVAILABLE;
   }
   aLocale = mLocale;
   if (aAsBCP47) {
     SanitizeForBCP47(aLocale);
   }
   return NS_OK;
 }
-  
+
 NS_IMETHODIMP
 nsChromeRegistryContent::Observe(nsISupports* aSubject, const char* aTopic,
                                  const char16_t* aData)
 {
   CONTENT_NOT_IMPLEMENTED();
 }
 
 NS_IMETHODIMP
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -11003,17 +11003,17 @@ nsDocShell::DoURILoad(nsIURI* aURI,
       DATA_NAVIGATED = 0,
       DATA_TYPED = 1,
       NO_DATA = 2,
     };
     bool isDataURI = (NS_SUCCEEDED(aURI->SchemeIs("data", &isDataURI)) && isDataURI);
     if (isDataURI) {
       // In all cases where the toplevel document is navigated to a data: URI
       // the triggeringPrincipal is a CodeBasePrincipal. In all other cases
-      // e.g. typing a data: URL into the URL-Bar or also clicking a bookmark 
+      // e.g. typing a data: URL into the URL-Bar or also clicking a bookmark
       // uses a SystemPrincipal as the triggeringPrincipal.
       if (aTriggeringPrincipal->GetIsCodebasePrincipal()) {
         Telemetry::Accumulate(Telemetry::DOCUMENT_DATA_URI_LOADS, DATA_NAVIGATED);
       } else {
         Telemetry::Accumulate(Telemetry::DOCUMENT_DATA_URI_LOADS, DATA_TYPED);
       }
     } else {
       Telemetry::Accumulate(Telemetry::DOCUMENT_DATA_URI_LOADS, NO_DATA);
--- a/dom/base/DOMException.h
+++ b/dom/base/DOMException.h
@@ -48,17 +48,17 @@ class Exception : public nsIXPCException
                   public nsWrapperCache
 {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(MOZILLA_EXCEPTION_IID)
 
   NS_DEFINE_STATIC_CID_ACCESSOR(NS_XPCEXCEPTION_CID)
 
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(Exception)
-  
+
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_NSIEXCEPTION
   NS_DECL_NSIXPCEXCEPTION
 
   // Cruft used by XPConnect for exceptions originating in JS implemented
   // components.
   bool StealJSVal(JS::Value* aVp);
   void StowJSVal(JS::Value& aVp);
@@ -73,17 +73,17 @@ public:
 
   uint32_t Result() const;
 
   void GetName(nsString& retval);
 
   virtual void GetErrorMessage(nsAString& aRetVal)
   {
     // Since GetName and GetMessageMoz are non-virtual and they deal with
-    // different member variables in Exception vs. DOMException, have a 
+    // different member variables in Exception vs. DOMException, have a
     // virtual method to ensure the right error message creation.
     nsAutoString name;
     nsAutoString message;
     GetName(name);
     GetMessageMoz(message);
     CreateErrorMessage(name, message, aRetVal);
   }
 
--- a/dom/base/DOMIntersectionObserver.cpp
+++ b/dom/base/DOMIntersectionObserver.cpp
@@ -160,17 +160,17 @@ DOMIntersectionObserver::Observe(Element
 
 void
 DOMIntersectionObserver::Unobserve(Element& aTarget)
 {
   if (mObservationTargets.Length() == 1) {
     Disconnect();
     return;
   }
- 
+
   mObservationTargets.RemoveElement(&aTarget);
   aTarget.UnregisterIntersectionObserver(this);
 }
 
 void
 DOMIntersectionObserver::UnlinkTarget(Element& aTarget)
 {
   mObservationTargets.RemoveElement(&aTarget);
@@ -420,17 +420,17 @@ DOMIntersectionObserver::Update(nsIDocum
         }
         intersectionRect = Some(rect);
       }
     }
 
     double targetArea = targetRect.width * targetRect.height;
     double intersectionArea = !intersectionRect ?
       0 : intersectionRect->width * intersectionRect->height;
-    
+
     double intersectionRatio;
     if (targetArea > 0.0) {
       intersectionRatio = intersectionArea / targetArea;
     } else {
       intersectionRatio = intersectionRect.isSome() ? 1.0 : 0.0;
     }
 
     size_t threshold = -1;
--- a/dom/base/DOMIntersectionObserver.h
+++ b/dom/base/DOMIntersectionObserver.h
@@ -174,20 +174,20 @@ protected:
                                       double aIntersectionRatio);
 
   nsCOMPtr<nsPIDOMWindowInner>                    mOwner;
   RefPtr<nsIDocument>                             mDocument;
   RefPtr<mozilla::dom::IntersectionCallback>      mCallback;
   RefPtr<Element>                                 mRoot;
   nsCSSRect                                       mRootMargin;
   nsTArray<double>                                mThresholds;
-  
+
   // Holds raw pointers which are explicitly cleared by UnlinkTarget().
   nsTArray<Element*>                              mObservationTargets;
-  
+
   nsTArray<RefPtr<DOMIntersectionObserverEntry>>  mQueuedEntries;
   bool                                            mConnected;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(DOMIntersectionObserver, NS_DOM_INTERSECTION_OBSERVER_IID)
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/DOMParser.cpp
+++ b/dom/base/DOMParser.cpp
@@ -62,18 +62,18 @@ DOMParser::ParseFromString(const nsAStri
   nsCOMPtr<nsIDOMDocument> domDocument;
   rv = ParseFromString(aStr,
                        StringFromSupportedType(aType),
                        getter_AddRefs(domDocument));
   nsCOMPtr<nsIDocument> document(do_QueryInterface(domDocument));
   return document.forget();
 }
 
-NS_IMETHODIMP 
-DOMParser::ParseFromString(const char16_t *str, 
+NS_IMETHODIMP
+DOMParser::ParseFromString(const char16_t *str,
                            const char *contentType,
                            nsIDOMDocument **aResult)
 {
   NS_ENSURE_ARG(str);
   // Converting a string to an enum value manually is a bit of a pain,
   // so let's just use a helper that takes a content-type string.
   return ParseFromString(nsDependentString(str), contentType, aResult);
 }
@@ -152,17 +152,17 @@ DOMParser::ParseFromBuffer(const Uint8Ar
   nsCOMPtr<nsIDOMDocument> domDocument;
   rv = DOMParser::ParseFromBuffer(aBuf.Data(), aBufLen,
                                     StringFromSupportedType(aType),
                                     getter_AddRefs(domDocument));
   nsCOMPtr<nsIDocument> document(do_QueryInterface(domDocument));
   return document.forget();
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 DOMParser::ParseFromBuffer(const uint8_t *buf,
                            uint32_t bufLen,
                            const char *contentType,
                            nsIDOMDocument **aResult)
 {
   NS_ENSURE_ARG_POINTER(buf);
   NS_ENSURE_ARG_POINTER(aResult);
 
@@ -190,19 +190,19 @@ DOMParser::ParseFromStream(nsIInputStrea
                                   NS_ConvertUTF16toUTF8(aCharset).get(),
                                   aContentLength,
                                   StringFromSupportedType(aType),
                                   getter_AddRefs(domDocument));
   nsCOMPtr<nsIDocument> document(do_QueryInterface(domDocument));
   return document.forget();
 }
 
-NS_IMETHODIMP 
-DOMParser::ParseFromStream(nsIInputStream *stream, 
-                           const char *charset, 
+NS_IMETHODIMP
+DOMParser::ParseFromStream(nsIInputStream *stream,
+                           const char *charset,
                            int32_t contentLength,
                            const char *contentType,
                            nsIDOMDocument **aResult)
 {
   NS_ENSURE_ARG(stream);
   NS_ENSURE_ARG(contentType);
   NS_ENSURE_ARG_POINTER(aResult);
   *aResult = nullptr;
@@ -230,17 +230,17 @@ DOMParser::ParseFromStream(nsIInputStrea
     stream = bufferedStream;
   }
 
   nsCOMPtr<nsIDOMDocument> domDocument;
   rv = SetUpDocument(svg ? DocumentFlavorSVG : DocumentFlavorLegacyGuess,
                      getter_AddRefs(domDocument));
   NS_ENSURE_SUCCESS(rv, rv);
 
-  // Create a fake channel 
+  // Create a fake channel
   nsCOMPtr<nsIChannel> parserChannel;
   NS_NewInputStreamChannel(getter_AddRefs(parserChannel),
                            mDocumentURI,
                            nullptr, // aStream
                            mPrincipal,
                            nsILoadInfo::SEC_FORCE_INHERIT_PRINCIPAL,
                            nsIContentPolicy::TYPE_OTHER,
                            nsDependentCString(contentType));
@@ -260,18 +260,18 @@ DOMParser::ParseFromStream(nsIInputStrea
   if (!document) return NS_ERROR_FAILURE;
 
   // Keep the XULXBL state in sync with the HTML case
 
   if (mOriginalPrincipalWasSystem) {
     document->ForceEnableXULXBL();
   }
 
-  rv = document->StartDocumentLoad(kLoadAsData, parserChannel, 
-                                   nullptr, nullptr, 
+  rv = document->StartDocumentLoad(kLoadAsData, parserChannel,
+                                   nullptr, nullptr,
                                    getter_AddRefs(listener),
                                    false);
 
   if (NS_FAILED(rv) || !listener) {
     return NS_ERROR_FAILURE;
   }
 
   // Now start pumping data to the listener
@@ -306,17 +306,17 @@ DOMParser::ParseFromStream(nsIInputStrea
 NS_IMETHODIMP
 DOMParser::Init(nsIPrincipal* principal, nsIURI* documentURI,
                 nsIURI* baseURI, nsIGlobalObject* aScriptObject)
 {
   NS_ENSURE_STATE(!mAttemptedInit);
   mAttemptedInit = true;
   NS_ENSURE_ARG(principal || documentURI);
   mDocumentURI = documentURI;
-  
+
   if (!mDocumentURI) {
     principal->GetURI(getter_AddRefs(mDocumentURI));
     // If we have the system principal, then we'll just use the null principals
     // uri.
     if (!mDocumentURI && !nsContentUtils::IsSystemPrincipal(principal)) {
       return NS_ERROR_INVALID_ARG;
     }
   }
--- a/dom/base/DOMParser.h
+++ b/dom/base/DOMParser.h
@@ -24,17 +24,17 @@ namespace dom {
 class DOMParser final : public nsIDOMParser,
                         public nsSupportsWeakReference,
                         public nsWrapperCache
 {
   typedef mozilla::dom::GlobalObject GlobalObject;
 
   virtual ~DOMParser();
 
-public: 
+public:
   DOMParser();
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(DOMParser,
                                                          nsIDOMParser)
 
   // nsIDOMParser
   NS_DECL_NSIDOMPARSER
--- a/dom/base/DOMRect.cpp
+++ b/dom/base/DOMRect.cpp
@@ -87,17 +87,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMRect
 
 NS_IMETHODIMP
 DOMRectList::GetLength(uint32_t* aLength)
 {
   *aLength = Length();
   return NS_OK;
 }
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 DOMRectList::Item(uint32_t aIndex, nsIDOMClientRect** aReturn)
 {
   NS_IF_ADDREF(*aReturn = Item(aIndex));
   return NS_OK;
 }
 
 JSObject*
 DOMRectList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
--- a/dom/base/DOMRect.h
+++ b/dom/base/DOMRect.h
@@ -83,17 +83,17 @@ public:
                    double aWidth = 0, double aHeight = 0)
     : DOMRectReadOnly(aParent)
     , mX(aX)
     , mY(aY)
     , mWidth(aWidth)
     , mHeight(aHeight)
   {
   }
-  
+
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_NSIDOMCLIENTRECT
 
   static already_AddRefed<DOMRect>
   Constructor(const GlobalObject& aGlobal, ErrorResult& aRV);
   static already_AddRefed<DOMRect>
   Constructor(const GlobalObject& aGlobal, double aX, double aY,
               double aWidth, double aHeight, ErrorResult& aRV);
@@ -155,17 +155,17 @@ public:
   explicit DOMRectList(nsISupports *aParent) : mParent(aParent)
   {
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMRectList)
 
   NS_DECL_NSIDOMCLIENTRECTLIST
-  
+
   virtual JSObject* WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override;
 
   nsISupports* GetParentObject()
   {
     return mParent;
   }
 
   void Append(DOMRect* aElement) { mArray.AppendElement(aElement); }
--- a/dom/base/DirectionalityUtils.cpp
+++ b/dom/base/DirectionalityUtils.cpp
@@ -537,17 +537,17 @@ private:
     if (rootNode->GetParentNode() && rootNode->HasDirAuto()) {
       newTextNode = WalkDescendantsSetDirectionFromText(rootNode, true,
                                                         oldTextNode);
     }
 
     AutoRestore<Element*> restore(data->mMap->mElementToBeRemoved);
     data->mMap->mElementToBeRemoved = rootNode;
     if (newTextNode) {
-      nsINode* oldDirAutoSetBy = 
+      nsINode* oldDirAutoSetBy =
         static_cast<nsTextNode*>(rootNode->GetProperty(nsGkAtoms::dirAutoSetBy));
       if (oldDirAutoSetBy == newTextNode) {
         // We're already registered.
         return OpNext;
       }
       nsTextNodeDirectionalityMap::AddEntryToMap(newTextNode, rootNode);
     } else {
       rootNode->ClearHasDirAutoSet();
--- a/dom/base/DocumentType.cpp
+++ b/dom/base/DocumentType.cpp
@@ -97,17 +97,17 @@ DocumentType::IsNodeOfType(uint32_t aFla
 }
 
 const nsTextFragment*
 DocumentType::GetText()
 {
   return nullptr;
 }
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 DocumentType::GetName(nsAString& aName)
 {
   aName = NodeName();
   return NS_OK;
 }
 
 NS_IMETHODIMP
 DocumentType::GetPublicId(nsAString& aPublicId)
--- a/dom/base/Link.h
+++ b/dom/base/Link.h
@@ -85,33 +85,33 @@ public:
   /**
    * Invalidates any link caching, and resets the state to the default.
    *
    * @param aNotify
    *        true if ResetLinkState should notify the owning document about style
    *        changes or false if it should not.
    */
   void ResetLinkState(bool aNotify, bool aHasHref);
-  
+
   // This method nevers returns a null element.
   Element* GetElement() const { return mElement; }
 
   /**
    * DNS prefetch has been deferred until later, e.g. page load complete.
    */
   virtual void OnDNSPrefetchDeferred() { /*do nothing*/ }
-  
+
   /**
    * DNS prefetch has been submitted to Host Resolver.
    */
   virtual void OnDNSPrefetchRequested() { /*do nothing*/ }
 
   /**
    * Checks if DNS Prefetching is ok
-   * 
+   *
    * @returns boolean
    *          Defaults to true; should be overridden for specialised cases
    */
   virtual bool HasDeferredDNSPrefetchRequest() { return true; }
 
   virtual size_t
     SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
 
--- a/dom/base/NameSpaceConstants.h
+++ b/dom/base/NameSpaceConstants.h
@@ -6,17 +6,17 @@
 
 #ifndef mozilla_dom_NameSpaceConstants_h__
 #define mozilla_dom_NameSpaceConstants_h__
 
 #define kNameSpaceID_Unknown -1
 // 0 is special at C++, so use a static const int32_t for
 // kNameSpaceID_None to keep if from being cast to pointers
 // Note that the XBL cache assumes (and asserts) that it can treat a
-// single-byte value higher than kNameSpaceID_LastBuiltin specially. 
+// single-byte value higher than kNameSpaceID_LastBuiltin specially.
 static const int32_t kNameSpaceID_None = 0;
 #define kNameSpaceID_XMLNS    1 // not really a namespace, but it needs to play the game
 #define kNameSpaceID_XML      2
 #define kNameSpaceID_XHTML    3
 #define kNameSpaceID_XLink    4
 #define kNameSpaceID_XSLT     5
 #define kNameSpaceID_XBL      6
 #define kNameSpaceID_MathML   7
--- a/dom/base/NodeInfo.h
+++ b/dom/base/NodeInfo.h
@@ -201,17 +201,17 @@ public:
    * Retrieve a pointer to the document that owns this node info.
    */
   nsIDocument* GetDocument() const
   {
     return mDocument;
   }
 
 private:
-  NodeInfo() = delete; 
+  NodeInfo() = delete;
   NodeInfo(const NodeInfo& aOther) = delete;
 
   // NodeInfo is only constructed by nsNodeInfoManager which is a friend class.
   // aName and aOwnerManager may not be null.
   NodeInfo(nsIAtom* aName, nsIAtom* aPrefix, int32_t aNamespaceID,
            uint16_t aNodeType, nsIAtom* aExtraName,
            nsNodeInfoManager* aOwnerManager);
 
--- a/dom/base/NodeIterator.h
+++ b/dom/base/NodeIterator.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
  * Implementation of DOM Traversal's nsIDOMNodeIterator
  */
 
 #ifndef mozilla_dom_NodeIterator_h
 #define mozilla_dom_NodeIterator_h
 
 #include "nsIDOMNodeIterator.h"
--- a/dom/base/Selection.cpp
+++ b/dom/base/Selection.cpp
@@ -84,17 +84,17 @@ using mozilla::layers::ScrollInputMethod
 //#define DEBUG_TABLE 1
 
 static bool IsValidSelectionPoint(nsFrameSelection *aFrameSel, nsINode *aNode);
 
 #ifdef PRINT_RANGE
 static void printRange(nsRange *aDomRange);
 #define DEBUG_OUT_RANGE(x)  printRange(x)
 #else
-#define DEBUG_OUT_RANGE(x)  
+#define DEBUG_OUT_RANGE(x)
 #endif // PRINT_RANGE
 
 /******************************************************************************
  * Utility methods defined in nsISelectionController.idl
  ******************************************************************************/
 
 namespace mozilla {
 
@@ -307,27 +307,27 @@ nsresult NS_NewDomSelection(nsISelection
   *aDomSelection = (nsISelection *)rlist;
   NS_ADDREF(rlist);
   return NS_OK;
 }
 
 /*
 The limiter is used specifically for the text areas and textfields
 In that case it is the DIV tag that is anonymously created for the text
-areas/fields.  Text nodes and BR nodes fall beneath it.  In the case of a 
+areas/fields.  Text nodes and BR nodes fall beneath it.  In the case of a
 BR node the limiter will be the parent and the offset will point before or
-after the BR node.  In the case of the text node the parent content is 
+after the BR node.  In the case of the text node the parent content is
 the text node itself and the offset will be the exact character position.
-The offset is not important to check for validity.  Simply look at the 
+The offset is not important to check for validity.  Simply look at the
 passed in content.  If it equals the limiter then the selection point is valid.
-If its parent it the limiter then the point is also valid.  In the case of 
+If its parent it the limiter then the point is also valid.  In the case of
 NO limiter all points are valid since you are in a topmost iframe. (browser
 or composer)
 */
-bool         
+bool
 IsValidSelectionPoint(nsFrameSelection *aFrameSel, nsINode *aNode)
 {
   if (!aFrameSel || !aNode)
     return false;
 
   nsIContent *limiter = aFrameSel->GetLimiter();
   if (limiter && limiter != aNode && limiter != aNode->GetParent()) {
     //if newfocus == the limiter. that's ok. but if not there and not parent bad
@@ -442,22 +442,22 @@ void printRange(nsRange *aDomRange)
   if (!aDomRange)
   {
     printf("NULL nsIDOMRange\n");
   }
   nsINode* startNode = aDomRange->GetStartParent();
   nsINode* endNode = aDomRange->GetEndParent();
   int32_t startOffset = aDomRange->StartOffset();
   int32_t endOffset = aDomRange->EndOffset();
-  
+
   printf("range: 0x%lx\t start: 0x%lx %ld, \t end: 0x%lx,%ld\n",
          (unsigned long)aDomRange,
          (unsigned long)startNode, (long)startOffset,
          (unsigned long)endNode, (long)endOffset);
-         
+
 }
 #endif /* PRINT_RANGE */
 
 NS_IMETHODIMP
 Selection::ToString(nsAString& aReturn)
 {
   // We need FlushType::Frames here to make sure frames have been created for
   // the selected content.  Use mFrameSelection->GetShell() which returns
@@ -621,17 +621,17 @@ Selection::GetTableCellLocationFromRange
   *aRow = 0;
   *aCol = 0;
 
   // Must have access to frame selection to get cell info
   if (!mFrameSelection) return NS_OK;
 
   nsresult result = GetTableSelectionType(aRange, aSelectionType);
   if (NS_FAILED(result)) return result;
-  
+
   // Don't fail if range does not point to a single table cell,
   //  let aSelectionType tell user if we don't have a cell
   if (*aSelectionType  != nsISelectionPrivate::TABLESELECTION_CELL)
     return NS_OK;
 
   // Get the child content (the cell) pointed to by starting node of range
   // We do minimal checking since GetTableSelectionType assures
   //   us that this really is a table cell
@@ -651,17 +651,17 @@ Selection::GetTableCellLocationFromRange
     return NS_ERROR_FAILURE;
 
   return cellLayout->GetCellIndexes(*aRow, *aCol);
 }
 
 nsresult
 Selection::AddTableCellRange(nsRange* aRange, bool* aDidAddRange,
                              int32_t* aOutIndex)
-{  
+{
   if (!aDidAddRange || !aOutIndex)
     return NS_ERROR_NULL_POINTER;
 
   *aDidAddRange = false;
   *aOutIndex = -1;
 
   if (!mFrameSelection)
     return NS_OK;
@@ -670,25 +670,25 @@ Selection::AddTableCellRange(nsRange* aR
     return NS_ERROR_NULL_POINTER;
 
   nsresult result;
 
   // Get if we are adding a cell selection and the row, col of cell if we are
   int32_t newRow, newCol, tableMode;
   result = GetTableCellLocationFromRange(aRange, &tableMode, &newRow, &newCol);
   if (NS_FAILED(result)) return result;
-  
+
   // If not adding a cell range, we are done here
   if (tableMode != nsISelectionPrivate::TABLESELECTION_CELL)
   {
     mFrameSelection->mSelectingTableCellMode = tableMode;
     // Don't fail if range isn't a selected cell, aDidAddRange tells caller if we didn't proceed
     return NS_OK;
   }
-  
+
   // Set frame selection mode only if not already set to a table mode
   //  so we don't lose the select row and column flags (not detected by getTableCellLocation)
   if (mFrameSelection->mSelectingTableCellMode == TABLESELECTION_NONE)
     mFrameSelection->mSelectingTableCellMode = tableMode;
 
   *aDidAddRange = true;
   return AddItem(aRange, aOutIndex);
 }
@@ -696,25 +696,25 @@ Selection::AddTableCellRange(nsRange* aR
 //TODO: Figure out TABLESELECTION_COLUMN and TABLESELECTION_ALLCELLS
 nsresult
 Selection::GetTableSelectionType(nsIDOMRange* aDOMRange,
                                  int32_t* aTableSelectionType)
 {
   if (!aDOMRange || !aTableSelectionType)
     return NS_ERROR_NULL_POINTER;
   nsRange* range = static_cast<nsRange*>(aDOMRange);
-  
+
   *aTableSelectionType = nsISelectionPrivate::TABLESELECTION_NONE;
- 
+
   // Must have access to frame selection to get cell info
   if(!mFrameSelection) return NS_OK;
 
   nsINode* startNode = range->GetStartParent();
   if (!startNode) return NS_ERROR_FAILURE;
-  
+
   nsINode* endNode = range->GetEndParent();
   if (!endNode) return NS_ERROR_FAILURE;
 
   // Not a single selected node
   if (startNode != endNode) return NS_OK;
 
   int32_t startOffset = range->StartOffset();
   int32_t endOffset = range->EndOffset();
@@ -853,17 +853,17 @@ Selection::GetAnchorNode(nsIDOMNode** aA
   return NS_OK;
 }
 
 nsINode*
 Selection::GetAnchorNode()
 {
   if (!mAnchorFocusRange)
     return nullptr;
-   
+
   if (GetDirection() == eDirNext) {
     return mAnchorFocusRange->GetStartParent();
   }
 
   return mAnchorFocusRange->GetEndParent();
 }
 
 NS_IMETHODIMP
@@ -1669,17 +1669,17 @@ Selection::GetIndicesForInterval(nsINode
   return NS_OK;
 }
 
 NS_IMETHODIMP
 Selection::GetPrimaryFrameForAnchorNode(nsIFrame** aReturnFrame)
 {
   if (!aReturnFrame)
     return NS_ERROR_NULL_POINTER;
-  
+
   int32_t frameOffset = 0;
   *aReturnFrame = 0;
   nsCOMPtr<nsIContent> content = do_QueryInterface(GetAnchorNode());
   if (content && mFrameSelection)
   {
     *aReturnFrame = mFrameSelection->
       GetFrameForNodeOffset(content, AnchorOffset(),
                             mFrameSelection->GetHint(), &frameOffset);
@@ -1691,35 +1691,35 @@ Selection::GetPrimaryFrameForAnchorNode(
 
 NS_IMETHODIMP
 Selection::GetPrimaryFrameForFocusNode(nsIFrame** aReturnFrame,
                                        int32_t* aOffsetUsed,
                                        bool aVisual)
 {
   if (!aReturnFrame)
     return NS_ERROR_NULL_POINTER;
-  
+
   nsCOMPtr<nsIContent> content = do_QueryInterface(GetFocusNode());
   if (!content || !mFrameSelection)
     return NS_ERROR_FAILURE;
-  
+
   int32_t frameOffset = 0;
   *aReturnFrame = 0;
   if (!aOffsetUsed)
     aOffsetUsed = &frameOffset;
-    
+
   CaretAssociationHint hint = mFrameSelection->GetHint();
 
   if (aVisual) {
     nsBidiLevel caretBidiLevel = mFrameSelection->GetCaretBidiLevel();
 
     return nsCaret::GetCaretFrameForNodeOffset(mFrameSelection,
       content, FocusOffset(), hint, caretBidiLevel, aReturnFrame, aOffsetUsed);
   }
-  
+
   *aReturnFrame = mFrameSelection->
     GetFrameForNodeOffset(content, FocusOffset(),
                           hint, aOffsetUsed);
   if (!*aReturnFrame)
     return NS_ERROR_FAILURE;
 
   return NS_OK;
 }
@@ -1997,43 +1997,43 @@ NS_IMETHODIMP
 Selection::Repaint(nsPresContext* aPresContext)
 {
   int32_t arrCount = (int32_t)mRanges.Length();
 
   if (arrCount < 1)
     return NS_OK;
 
   int32_t i;
-  
+
   for (i = 0; i < arrCount; i++)
   {
     nsresult rv = SelectFrames(aPresContext, mRanges[i].mRange, true);
 
     if (NS_FAILED(rv)) {
       return rv;
     }
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 Selection::GetCanCacheFrameOffset(bool* aCanCacheFrameOffset)
-{ 
+{
   NS_ENSURE_ARG_POINTER(aCanCacheFrameOffset);
 
   if (mCachedOffsetForFrame)
     *aCanCacheFrameOffset = mCachedOffsetForFrame->mCanCacheFrameOffset;
   else
     *aCanCacheFrameOffset = false;
 
   return NS_OK;
 }
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 Selection::SetCanCacheFrameOffset(bool aCanCacheFrameOffset)
 {
   if (!mCachedOffsetForFrame) {
     mCachedOffsetForFrame = new CachedOffsetForFrame;
   }
 
   mCachedOffsetForFrame->mCanCacheFrameOffset = aCanCacheFrameOffset;
 
@@ -2041,42 +2041,42 @@ Selection::SetCanCacheFrameOffset(bool a
   // fix bug 207936
   if (!aCanCacheFrameOffset) {
     mCachedOffsetForFrame->mLastCaretFrame = nullptr;
   }
 
   return NS_OK;
 }
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 Selection::GetCachedFrameOffset(nsIFrame* aFrame, int32_t inOffset,
                                 nsPoint& aPoint)
 {
   if (!mCachedOffsetForFrame) {
     mCachedOffsetForFrame = new CachedOffsetForFrame;
   }
 
   nsresult rv = NS_OK;
   if (mCachedOffsetForFrame->mCanCacheFrameOffset &&
       mCachedOffsetForFrame->mLastCaretFrame &&
       (aFrame == mCachedOffsetForFrame->mLastCaretFrame) &&
       (inOffset == mCachedOffsetForFrame->mLastContentOffset))
   {
      // get cached frame offset
      aPoint = mCachedOffsetForFrame->mCachedFrameOffset;
-  } 
+  }
   else
   {
      // Recalculate frame offset and cache it. Don't cache a frame offset if
      // GetPointFromOffset fails, though.
      rv = aFrame->GetPointFromOffset(inOffset, &aPoint);
      if (NS_SUCCEEDED(rv) && mCachedOffsetForFrame->mCanCacheFrameOffset) {
        mCachedOffsetForFrame->mCachedFrameOffset = aPoint;
        mCachedOffsetForFrame->mLastCaretFrame = aFrame;
-       mCachedOffsetForFrame->mLastContentOffset = inOffset; 
+       mCachedOffsetForFrame->mLastContentOffset = inOffset;
      }
   }
 
   return rv;
 }
 
 NS_IMETHODIMP
 Selection::GetAncestorLimiter(nsIContent** aContent)
@@ -2325,17 +2325,17 @@ Selection::AddRangeInternal(nsRange& aRa
     }
   }
 
   if (rangeIndex < 0) {
     return;
   }
 
   SetAnchorFocusRange(rangeIndex);
-  
+
   // Make sure the caret appears on the next line, if at a newline
   if (mSelectionType == SelectionType::eNormal) {
     SetInterlinePosition(true);
   }
 
   RefPtr<nsPresContext>  presContext = GetPresContext();
   SelectFrames(presContext, &aRange, true);
 
@@ -2386,17 +2386,17 @@ Selection::RemoveRange(nsRange& aRange, 
 
   nsINode* beginNode = aRange.GetStartParent();
   nsINode* endNode = aRange.GetEndParent();
 
   if (!beginNode || !endNode) {
     // Detached range; nothing else to do here.
     return;
   }
-  
+
   // find out the length of the end node, so we can select all of it
   int32_t beginOffset, endOffset;
   if (endNode->IsNodeOfType(nsINode::eTEXT)) {
     // Get the length of the text. We can't just use the offset because
     // another range could be touching this text node but not intersect our
     // range.
     beginOffset = 0;
     endOffset = static_cast<nsIContent*>(endNode)->TextLength();
@@ -4058,17 +4058,17 @@ Selection::SelectionLanguageChange(bool 
     //  is equal to the frame level
     levelBefore = levelAfter = level;
   else {
     // the cursor is at a frame boundary, so use GetPrevNextBidiLevels to find the level of the characters
     //  before and after the cursor
     nsCOMPtr<nsIContent> focusContent = do_QueryInterface(GetFocusNode());
     nsPrevNextBidiLevels levels = frameSelection->
       GetPrevNextBidiLevels(focusContent, focusOffset, false);
-      
+
     levelBefore = levels.mLevelBefore;
     levelAfter = levels.mLevelAfter;
   }
 
   if (IS_SAME_DIRECTION(levelBefore, levelAfter)) {
     // if cursor is between two characters with the same orientation, changing the keyboard language
     //  must toggle the cursor level between the level of the character with the lowest level
     //  (if the new language corresponds to the orientation of that character) and this level plus 1
@@ -4083,21 +4083,21 @@ Selection::SelectionLanguageChange(bool 
   else {
     // if cursor is between characters with opposite orientations, changing the keyboard language must change
     //  the cursor level to that of the adjacent character with the orientation corresponding to the new language.
     if (IS_SAME_DIRECTION(levelBefore, kbdBidiLevel))
       frameSelection->SetCaretBidiLevel(levelBefore);
     else
       frameSelection->SetCaretBidiLevel(levelAfter);
   }
-  
+
   // The caret might have moved, so invalidate the desired position
   // for future usages of up-arrow or down-arrow
   frameSelection->InvalidateDesiredPos();
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 Selection::SetColors(const nsAString& aForegroundColor,
                      const nsAString& aBackgroundColor,
                      const nsAString& aAltForegroundColor,
                      const nsAString& aAltBackgroundColor)
--- a/dom/base/ThirdPartyUtil.cpp
+++ b/dom/base/ThirdPartyUtil.cpp
@@ -172,17 +172,17 @@ ThirdPartyUtil::IsThirdPartyWindow(mozID
 
   NS_NOTREACHED("should've returned");
   return NS_ERROR_UNEXPECTED;
 }
 
 // Determine if the URI associated with aChannel or any URI of the window
 // hierarchy associated with the channel is foreign with respect to aSecondURI.
 // See docs for mozIThirdPartyUtil.
-NS_IMETHODIMP 
+NS_IMETHODIMP
 ThirdPartyUtil::IsThirdPartyChannel(nsIChannel* aChannel,
                                     nsIURI* aURI,
                                     bool* aResult)
 {
   LOG(("ThirdPartyUtil::IsThirdPartyChannel [channel=%p]", aChannel));
   NS_ENSURE_ARG(aChannel);
   NS_ASSERTION(aResult, "null outparam pointer");
 
--- a/dom/base/TreeWalker.h
+++ b/dom/base/TreeWalker.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* vim: set ts=4 et sw=4 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
  * Implementation of DOM Traversal's nsIDOMTreeWalker
  */
 
 #ifndef mozilla_dom_TreeWalker_h
 #define mozilla_dom_TreeWalker_h
 
 #include "nsIDOMTreeWalker.h"
--- a/dom/base/nsAttrValue.cpp
+++ b/dom/base/nsAttrValue.cpp
@@ -275,17 +275,17 @@ nsAttrValue::SetTo(const nsAttrValue& aO
       NS_ADDREF(atom);
       SetPtrValueAndType(atom, eAtomBase);
       return;
     }
     case eIntegerBase:
     {
       ResetIfSet();
       mBits = aOther.mBits;
-      return;      
+      return;
     }
   }
 
   MiscContainer* otherCont = aOther.GetMiscContainer();
   if (otherCont->IsRefCounted()) {
     delete ClearMiscContainer();
     NS_ADDREF(otherCont);
     SetPtrValueAndType(otherCont, eOtherBase);
@@ -830,23 +830,23 @@ nsAttrValue::GetAtomCount() const
   return 0;
 }
 
 nsIAtom*
 nsAttrValue::AtomAt(int32_t aIndex) const
 {
   NS_PRECONDITION(aIndex >= 0, "Index must not be negative");
   NS_PRECONDITION(GetAtomCount() > uint32_t(aIndex), "aIndex out of range");
-  
+
   if (BaseType() == eAtomBase) {
     return GetAtomValue();
   }
 
   NS_ASSERTION(Type() == eAtomArray, "GetAtomCount must be confused");
-  
+
   return GetAtomArrayValue()->ElementAt(aIndex);
 }
 
 uint32_t
 nsAttrValue::HashValue() const
 {
   switch(BaseType()) {
     case eStringBase:
@@ -1105,17 +1105,17 @@ bool
 nsAttrValue::Equals(nsIAtom* aValue, nsCaseTreatment aCaseSensitive) const
 {
   if (aCaseSensitive != eCaseMatters) {
     // Need a better way to handle this!
     nsAutoString value;
     aValue->ToString(value);
     return Equals(value, aCaseSensitive);
   }
-  
+
   switch (BaseType()) {
     case eStringBase:
     {
       nsStringBuffer* str = static_cast<nsStringBuffer*>(GetPtr());
       if (str) {
         nsDependentString dep(static_cast<char16_t*>(str->Data()),
                               str->StorageSize()/sizeof(char16_t) - 1);
         return aValue->Equals(dep);
@@ -1251,17 +1251,17 @@ nsAttrValue::ParseAtom(const nsAString& 
 
 void
 nsAttrValue::ParseAtomArray(const nsAString& aValue)
 {
   nsAString::const_iterator iter, end;
   aValue.BeginReading(iter);
   aValue.EndReading(end);
   bool hasSpace = false;
-  
+
   // skip initial whitespace
   while (iter != end && nsContentUtils::IsHTMLWhitespace(*iter)) {
     hasSpace = true;
     ++iter;
   }
 
   if (iter == end) {
     SetTo(aValue);
@@ -1297,17 +1297,17 @@ nsAttrValue::ParseAtomArray(const nsAStr
     return;
   }
 
   if (!EnsureEmptyAtomArray()) {
     return;
   }
 
   AtomArray* array = GetAtomArrayValue();
-  
+
   if (!array->AppendElement(classAtom)) {
     Reset();
     return;
   }
 
   // parse the rest of the classnames
   while (iter != end) {
     start = iter;
--- a/dom/base/nsContentAreaDragDrop.cpp
+++ b/dom/base/nsContentAreaDragDrop.cpp
@@ -407,17 +407,17 @@ DragDataProducer::Produce(DataTransfer* 
     while (findFormParent) {
       nsCOMPtr<nsIFormControl> form(do_QueryInterface(findFormParent));
       if (form && !form->AllowDraggableChildren()) {
         return NS_OK;
       }
       findFormParent = findFormParent->GetParent();
     }
   }
-    
+
   // if set, serialize the content under this node
   nsCOMPtr<nsIContent> nodeToSerialize;
 
   nsCOMPtr<nsIDocShellTreeItem> dsti = mWindow->GetDocShell();
   const bool isChromeShell =
     dsti && dsti->ItemType() == nsIDocShellTreeItem::typeChrome;
 
   // In chrome shells, only allow dragging inside editable areas.
@@ -591,17 +591,17 @@ DragDataProducer::Produce(DataTransfer* 
               nsAutoCString spec;
               rv = imgUrl->GetSpec(spec);
               NS_ENSURE_SUCCESS(rv, rv);
 
               // pass out the image source string
               CopyUTF8toUTF16(spec, mImageSourceString);
 
               bool validExtension;
-              if (extension.IsEmpty() || 
+              if (extension.IsEmpty() ||
                   NS_FAILED(mimeInfo->ExtensionExists(extension,
                                                       &validExtension)) ||
                   !validExtension) {
                 // Fix the file extension in the URL
                 nsresult rv = imgUrl->Clone(getter_AddRefs(imgUri));
                 NS_ENSURE_SUCCESS(rv, rv);
 
                 imgUrl = do_QueryInterface(imgUri);
--- a/dom/base/nsContentCID.h
+++ b/dom/base/nsContentCID.h
@@ -162,17 +162,17 @@
   "@mozilla.org/parentprocessmessagemanager;1"
 
   #define NS_CHILDPROCESSMESSAGEMANAGER_CID           \
  { /* fe0ff7c3-8e97-448b-9a8a-86afdb9fbbb6 */         \
     0xfe0ff7c3, 0x8e97, 0x448b,                       \
   { 0x9a, 0x8a, 0x86, 0xaf, 0xdb, 0x9f, 0xbb, 0xb6 } }
 #define NS_CHILDPROCESSMESSAGEMANAGER_CONTRACTID \
   "@mozilla.org/childprocessmessagemanager;1"
-  
+
 // {f96f5ec9-755b-447e-b1f3-717d1a84bb41}
 #define NS_PLUGINDOCUMENT_CID \
 { 0xf96f5ec9, 0x755b, 0x447e, { 0xb1, 0xf3, 0x71, 0x7d, 0x1a, 0x84, 0xbb, 0x41 } }
 
 // {08c6cc8b-cfb0-421d-b1f7-683ff2989681}
 #define THIRDPARTYUTIL_CID \
  {0x08c6cc8b, 0xcfb0, 0x421d, {0xb1, 0xf7, 0x68, 0x3f, 0xf2, 0x98, 0x96, 0x81}}
 
--- a/dom/base/nsContentList.cpp
+++ b/dom/base/nsContentList.cpp
@@ -184,17 +184,17 @@ ContentListHashtableMatchEntry(const PLD
     static_cast<const ContentListHashEntry *>(entry);
   const nsContentList* list = e->mContentList;
   const nsContentListKey* ourKey = static_cast<const nsContentListKey *>(key);
 
   return list->MatchesKey(*ourKey);
 }
 
 already_AddRefed<nsContentList>
-NS_GetContentList(nsINode* aRootNode, 
+NS_GetContentList(nsINode* aRootNode,
                   int32_t  aMatchNameSpaceId,
                   const nsAString& aTagname)
 {
   NS_ASSERTION(aRootNode, "content list has to have a root");
 
   RefPtr<nsContentList> list;
   nsContentListKey hashKey(aRootNode, aMatchNameSpaceId, aTagname,
                            aRootNode->OwnerDoc()->IsHTMLDocument());
@@ -462,17 +462,17 @@ nsContentList::WrapObject(JSContext *cx,
 NS_IMPL_ISUPPORTS_INHERITED(nsContentList, nsBaseContentList,
                             nsIHTMLCollection, nsIDOMHTMLCollection,
                             nsIMutationObserver)
 
 uint32_t
 nsContentList::Length(bool aDoFlush)
 {
   BringSelfUpToDate(aDoFlush);
-    
+
   return mElements.Length();
 }
 
 nsIContent *
 nsContentList::Item(uint32_t aIndex, bool aDoFlush)
 {
   if (mRootNode && aDoFlush && mFlushesNeeded) {
     // XXX sXBL/XBL2 issue
@@ -565,17 +565,17 @@ nsContentList::GetSupportedNames(nsTArra
     atoms[i]->ToString(names[i]);
   }
 }
 
 int32_t
 nsContentList::IndexOf(nsIContent *aContent, bool aDoFlush)
 {
   BringSelfUpToDate(aDoFlush);
-    
+
   return mElements.IndexOf(aContent);
 }
 
 int32_t
 nsContentList::IndexOf(nsIContent* aContent)
 {
   return IndexOf(aContent, true);
 }
@@ -662,17 +662,17 @@ nsContentList::AttributeChanged(nsIDocum
 
   if (!mFunc || !mFuncMayDependOnAttr || mState == LIST_DIRTY ||
       !MayContainRelevantNodes(aElement->GetParentNode()) ||
       !nsContentUtils::IsInSameAnonymousTree(mRootNode, aElement)) {
     // Either we're already dirty or this notification doesn't affect
     // whether we might match aElement.
     return;
   }
-  
+
   if (Match(aElement)) {
     if (mElements.IndexOf(aElement) == mElements.NoIndex) {
       // We match aElement now, and it's not in our list already.  Just dirty
       // ourselves; this is simpler than trying to figure out where to insert
       // aElement.
       SetDirty();
     }
   } else {
@@ -685,17 +685,17 @@ nsContentList::AttributeChanged(nsIDocum
 }
 
 void
 nsContentList::ContentAppended(nsIDocument* aDocument, nsIContent* aContainer,
                                nsIContent* aFirstNewContent,
                                int32_t aNewIndexInContainer)
 {
   NS_PRECONDITION(aContainer, "Can't get at the new content if no container!");
-  
+
   /*
    * If the state is LIST_DIRTY then we have no useful information in our list
    * and we want to put off doing work as much as possible.
    *
    * Also, if aContainer is anonymous from our point of view, we know that we
    * can't possibly be matching any of the kids.
    *
    * Optimize out also the common case when just one new node is appended and
@@ -713,17 +713,17 @@ nsContentList::ContentAppended(nsIDocume
   /*
    * We want to handle the case of ContentAppended by sometimes
    * appending the content to our list, not just setting state to
    * LIST_DIRTY, since most of our ContentAppended notifications
    * should come during pageload and be at the end of the document.
    * Do a bit of work to see whether we could just append to what we
    * already have.
    */
-  
+
   int32_t count = aContainer->GetChildCount();
 
   if (count > 0) {
     uint32_t ourCount = mElements.Length();
     bool appendToList = false;
     if (ourCount == 0) {
       appendToList = true;
     } else {
@@ -731,17 +731,17 @@ nsContentList::ContentAppended(nsIDocume
       /*
        * We want to append instead of invalidating if the first thing
        * that got appended comes after ourLastContent.
        */
       if (nsContentUtils::PositionIsBefore(ourLastContent, aFirstNewContent)) {
         appendToList = true;
       }
     }
-    
+
 
     if (!appendToList) {
       // The new stuff is somewhere in the middle of our list; check
       // whether we need to invalidate
       for (nsIContent* cur = aFirstNewContent; cur; cur = cur->GetNextSibling()) {
         if (MatchSelf(cur)) {
           // Uh-oh.  We're gonna have to add elements into the middle
           // of our list. That's not worth the effort.
@@ -832,17 +832,17 @@ nsContentList::Match(Element *aElement)
   if (mFunc) {
     return (*mFunc)(aElement, mMatchNameSpaceId, mXMLMatchAtom, mData);
   }
 
   if (!mXMLMatchAtom)
     return false;
 
   NodeInfo *ni = aElement->NodeInfo();
- 
+
   bool unknown = mMatchNameSpaceId == kNameSpaceID_Unknown;
   bool wildcard = mMatchNameSpaceId == kNameSpaceID_Wildcard;
   bool toReturn = mMatchAll;
   if (!unknown && !wildcard)
     toReturn &= ni->NamespaceEquals(mMatchNameSpaceId);
 
   if (toReturn)
     return toReturn;
@@ -854,50 +854,50 @@ nsContentList::Match(Element *aElement)
     return matchHTML ? ni->QualifiedNameEquals(mHTMLMatchAtom) :
                        ni->QualifiedNameEquals(mXMLMatchAtom);
   }
 
   if (wildcard) {
     return matchHTML ? ni->Equals(mHTMLMatchAtom) :
                        ni->Equals(mXMLMatchAtom);
   }
-  
+
   return matchHTML ? ni->Equals(mHTMLMatchAtom, mMatchNameSpaceId) :
                      ni->Equals(mXMLMatchAtom, mMatchNameSpaceId);
 }
 
-bool 
+bool
 nsContentList::MatchSelf(nsIContent *aContent)
 {
   NS_PRECONDITION(aContent, "Can't match null stuff, you know");
   NS_PRECONDITION(mDeep || aContent->GetParentNode() == mRootNode,
                   "MatchSelf called on a node that we can't possibly match");
 
   if (!aContent->IsElement()) {
     return false;
   }
-  
+
   if (Match(aContent->AsElement()))
     return true;
 
   if (!mDeep)
     return false;
 
   for (nsIContent* cur = aContent->GetFirstChild();
        cur;
        cur = cur->GetNextNode(aContent)) {
     if (cur->IsElement() && Match(cur->AsElement())) {
       return true;
     }
   }
-  
+
   return false;
 }
 
-void 
+void
 nsContentList::PopulateSelf(uint32_t aNeededLength)
 {
   if (!mRootNode) {
     return;
   }
 
   ASSERT_IN_SYNC;
 
@@ -952,17 +952,17 @@ nsContentList::PopulateSelf(uint32_t aNe
 
 void
 nsContentList::RemoveFromHashtable()
 {
   if (mFunc) {
     // This can't be in the table anyway
     return;
   }
-  
+
   nsDependentAtomString str(mXMLMatchAtom);
   nsContentListKey key(mRootNode, mMatchNameSpaceId, str, mIsHTMLDocument);
   uint32_t recentlyUsedCacheIndex = RecentlyUsedCacheIndex(key);
   if (sRecentlyUsedContentLists[recentlyUsedCacheIndex] == this) {
     sRecentlyUsedContentLists[recentlyUsedCacheIndex] = nullptr;
   }
 
   if (!gContentListHashTable)
@@ -985,17 +985,17 @@ nsContentList::BringSelfUpToDate(bool aD
     if (doc) {
       // Flush pending content changes Bug 4891.
       doc->FlushPendingNotifications(FlushType::ContentAndNotify);
     }
   }
 
   if (mState != LIST_UP_TO_DATE)
     PopulateSelf(uint32_t(-1));
-    
+
   ASSERT_IN_SYNC;
   NS_ASSERTION(!mRootNode || mState == LIST_UP_TO_DATE,
                "PopulateSelf dod not bring content list up to date!");
 }
 
 nsCacheableFuncStringContentList::~nsCacheableFuncStringContentList()
 {
   RemoveFromFuncStringHashtable();
--- a/dom/base/nsContentList.h
+++ b/dom/base/nsContentList.h
@@ -44,17 +44,17 @@ public:
 
   // nsIDOMNodeList
   NS_DECL_NSIDOMNODELIST
 
   // nsINodeList
   virtual int32_t IndexOf(nsIContent* aContent) override;
   virtual nsIContent* Item(uint32_t aIndex) override;
 
-  uint32_t Length() const { 
+  uint32_t Length() const {
     return mElements.Length();
   }
 
   NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(nsBaseContentList)
 
   void AppendElement(nsIContent *aContent)
   {
     mElements.AppendElement(aContent);
@@ -171,17 +171,17 @@ struct nsContentListKey
       mHash(aContentListKey.mHash)
   {
   }
 
   inline uint32_t GetHash(void) const
   {
     return mHash;
   }
-  
+
   nsINode* const mRootNode; // Weak ref
   const int32_t mMatchNameSpaceId;
   const nsAString& mTagname;
   bool mIsHTMLDocument;
   const uint32_t mHash;
 };
 
 /**
@@ -225,17 +225,17 @@ public:
    *                          If kNameSpaceID_Wildcard, then aMatchAtom is the
    *                          localName to match.
    *                          Otherwise we match nodes whose namespace is
    *                          aMatchNameSpaceId and localName matches
    *                          aMatchAtom.
    * @param aDeep If false, then look only at children of the root, nothing
    *              deeper.  If true, then look at the whole subtree rooted at
    *              our root.
-   */  
+   */
   nsContentList(nsINode* aRootNode,
                 int32_t aMatchNameSpaceId,
                 nsIAtom* aHTMLMatchAtom,
                 nsIAtom* aXMLMatchAtom,
                 bool aDeep = true);
 
   /**
    * @param aRootNode The node under which to limit our search.
@@ -247,17 +247,17 @@ public:
    * @param aData closure data that will need to be passed back to aFunc
    * @param aDeep If false, then look only at children of the root, nothing
    *              deeper.  If true, then look at the whole subtree rooted at
    *              our root.
    * @param aMatchAtom an atom to be passed back to aFunc
    * @param aMatchNameSpaceId a namespace id to be passed back to aFunc
    * @param aFuncMayDependOnAttr a boolean that indicates whether this list is
    *                             sensitive to attribute changes.
-   */  
+   */
   nsContentList(nsINode* aRootNode,
                 nsContentListMatchFunc aFunc,
                 nsContentListDestroyFunc aDestroyFunc,
                 void* aData,
                 bool aDeep = true,
                 nsIAtom* aMatchAtom = nullptr,
                 int32_t aMatchNameSpaceId = kNameSpaceID_None,
                 bool aFuncMayDependOnAttr = true);
@@ -308,17 +308,17 @@ public:
   NamedItem(const nsAString& aName, bool aDoFlush);
 
   // nsIMutationObserver
   NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTAPPENDED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED
   NS_DECL_NSIMUTATIONOBSERVER_NODEWILLBEDESTROYED
-  
+
   static nsContentList* FromSupports(nsISupports* aSupports)
   {
     nsINodeList* list = static_cast<nsINodeList*>(aSupports);
 #ifdef DEBUG
     {
       nsCOMPtr<nsINodeList> list_qi = do_QueryInterface(aSupports);
 
       // If this assertion fires the QI implementation for the object in
@@ -441,17 +441,17 @@ protected:
    * LIST_UP_TO_DATE, LIST_LAZY, LIST_DIRTY
    */
   uint8_t mState;
 
   // The booleans have to use uint8_t to pack with mState, because MSVC won't
   // pack different typedefs together.  Once we no longer have to worry about
   // flushes in XML documents, we can go back to using bool for the
   // booleans.
-  
+
   /**
    * True if we are looking for elements named "*"
    */
   uint8_t mMatchAll : 1;
   /**
    * Whether to actually descend the tree.  If this is false, we won't
    * consider grandkids of mRootNode.
    */
--- a/dom/base/nsContentPermissionHelper.h
+++ b/dom/base/nsContentPermissionHelper.h
@@ -78,17 +78,17 @@ public:
 
   static PContentPermissionRequestParent*
   CreateContentPermissionRequestParent(const nsTArray<PermissionRequest>& aRequests,
                                        Element* element,
                                        const IPC::Principal& principal,
                                        const TabId& aTabId);
 
   static nsresult
-  AskPermission(nsIContentPermissionRequest* aRequest, 
+  AskPermission(nsIContentPermissionRequest* aRequest,
                 nsPIDOMWindowInner* aWindow);
 
   static nsTArray<PContentPermissionRequestParent*>
   GetContentPermissionRequestParentById(const TabId& aTabId);
 
   static void
   NotifyRemoveContentPermissionRequestParent(PContentPermissionRequestParent* aParent);
 
--- a/dom/base/nsContentPolicy.cpp
+++ b/dom/base/nsContentPolicy.cpp
@@ -117,17 +117,17 @@ nsContentPolicy::CheckPolicy(CPMethod   
         if (doc) {
             requestingLocation = doc->GetDocumentURI();
         }
     }
 
     nsContentPolicyType externalType =
         nsContentUtils::InternalContentPolicyTypeToExternal(contentType);
 
-    /* 
+    /*
      * Enumerate mPolicies and ask each of them, taking the logical AND of
      * their permissions.
      */
     nsresult rv;
     const nsCOMArray<nsIContentPolicy>& entries = mPolicies.GetCachedEntries();
 
     nsCOMPtr<nsPIDOMWindowOuter> window;
     if (nsCOMPtr<nsINode> node = do_QueryInterface(requestingContext)) {
--- a/dom/base/nsContentPolicy.h
+++ b/dom/base/nsContentPolicy.h
@@ -6,17 +6,17 @@
 
 #ifndef __nsContentPolicy_h__
 #define __nsContentPolicy_h__
 
 #include "nsIContentPolicy.h"
 #include "nsISimpleContentPolicy.h"
 #include "nsCategoryCache.h"
 
-/* 
+/*
  * Implementation of the "@mozilla.org/layout/content-policy;1" contract.
  */
 
 class nsContentPolicy : public nsIContentPolicy
 {
  public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSICONTENTPOLICY
--- a/dom/base/nsContentPolicyUtils.h
+++ b/dom/base/nsContentPolicyUtils.h
@@ -277,17 +277,17 @@ NS_CheckContentProcessPolicy(uint32_t   
  * returned.
  * If the context is a non-document DOM node, the docshell of its ownerDocument
  * will be returned.
  *
  * @param aContext the context to find a docshell for (can be null)
  *
  * @return a WEAK pointer to the docshell, or nullptr if it could
  *     not be obtained
- *     
+ *
  * @note  As of this writing, calls to nsIContentPolicy::Should{Load,Process}
  * for TYPE_DOCUMENT and TYPE_SUBDOCUMENT pass in an aContext that either
  * points to the frameElement of the window the load is happening in
  * (in which case NS_CP_GetDocShellFromContext will return the parent of the
  * docshell the load is happening in), or points to the window the load is
  * happening in (in which case NS_CP_GetDocShellFromContext will return
  * the docshell the load is happening in).  It's up to callers to QI aContext
  * and handle things accordingly if they want the docshell the load is
@@ -315,17 +315,17 @@ NS_CP_GetDocShellFromContext(nsISupports
                 doc = content->OwnerDoc();
             }
         }
 
         if (doc) {
             if (doc->GetDisplayDocument()) {
                 doc = doc->GetDisplayDocument();
             }
-            
+
             window = doc->GetWindow();
         }
     }
 
     if (!window) {
         return nullptr;
     }
 
--- a/dom/base/nsContentSink.cpp
+++ b/dom/base/nsContentSink.cpp
@@ -249,37 +249,37 @@ nsContentSink::StyleSheetLoaded(StyleShe
         // StartLayout() stuff that needs to happen has already happened, so we
         // don't need to worry about it.
         StartLayout(false);
       }
 
       // Go ahead and try to scroll to our ref if we have one
       ScrollToRef();
     }
-    
+
     mScriptLoader->RemoveParserBlockingScriptExecutionBlocker();
   }
 
   return NS_OK;
 }
 
 nsresult
 nsContentSink::ProcessHTTPHeaders(nsIChannel* aChannel)
 {
   nsCOMPtr<nsIHttpChannel> httpchannel(do_QueryInterface(aChannel));
-  
+
   if (!httpchannel) {
     return NS_OK;
   }
 
   // Note that the only header we care about is the "link" header, since we
   // have all the infrastructure for kicking off stylesheet loads.
-  
+
   nsAutoCString linkHeader;
-  
+
   nsresult rv = httpchannel->GetResponseHeader(NS_LITERAL_CSTRING("link"),
                                                linkHeader);
   if (NS_SUCCEEDED(rv) && !linkHeader.IsEmpty()) {
     mDocument->SetHeaderData(nsGkAtoms::link,
                              NS_ConvertASCIItoUTF16(linkHeader));
 
     NS_ASSERTION(!mProcessLinkHeaderEvent.get(),
                  "Already dispatched an event?");
@@ -288,17 +288,17 @@ nsContentSink::ProcessHTTPHeaders(nsICha
       NewNonOwningRunnableMethod("nsContentSink::DoProcessLinkHeader",
                                  this,
                                  &nsContentSink::DoProcessLinkHeader);
     rv = NS_DispatchToCurrentThread(mProcessLinkHeaderEvent.get());
     if (NS_FAILED(rv)) {
       mProcessLinkHeaderEvent.Forget();
     }
   }
-  
+
   return NS_OK;
 }
 
 nsresult
 nsContentSink::ProcessHeaderData(nsIAtom* aHeader, const nsAString& aValue,
                                  nsIContent* aContent)
 {
   nsresult rv = NS_OK;
@@ -366,34 +366,34 @@ nsContentSink::LinkContextIsOurDocument(
 
   nsIURI* docUri = mDocument->GetDocumentURI();
 
   // the document URI might contain a fragment identifier ("#...')
   // we want to ignore that because it's invisible to the server
   // and just affects the local interpretation in the recipient
   nsCOMPtr<nsIURI> contextUri;
   nsresult rv = docUri->CloneIgnoringRef(getter_AddRefs(contextUri));
-  
+
   if (NS_FAILED(rv)) {
     // copying failed
     return false;
   }
-  
-  // resolve anchor against context    
+
+  // resolve anchor against context
   nsCOMPtr<nsIURI> resolvedUri;
   rv = NS_NewURI(getter_AddRefs(resolvedUri), aAnchor,
       nullptr, contextUri);
-  
+
   if (NS_FAILED(rv)) {
     // resolving failed
     return false;
   }
 
   bool same;
-  rv = contextUri->Equals(resolvedUri, &same); 
+  rv = contextUri->Equals(resolvedUri, &same);
   if (NS_FAILED(rv)) {
     // comparison failed
     return false;
   }
 
   return same;
 }
 
@@ -475,31 +475,31 @@ nsContentSink::ProcessLinkHeader(const n
     while ((*start != kNullCh) && nsCRT::IsAsciiSpace(*start)) {
       ++start;
     }
 
     end = start;
     last = end - 1;
 
     bool wasQuotedString = false;
-    
+
     // look for semicolon or comma
     while (*end != kNullCh && *end != kSemicolon && *end != kComma) {
       char16_t ch = *end;
 
       if (ch == kQuote || ch == kLessThan) {
         // quoted string
 
         char16_t quote = ch;
         if (quote == kLessThan) {
           quote = kGreaterThan;
         }
-        
+
         wasQuotedString = (ch == kQuote);
-        
+
         char16_t* closeQuote = (end + 1);
 
         // seek closing quote
         while (*closeQuote != kNullCh && quote != *closeQuote) {
           // in quoted-string, "\" is an escape character
           if (wasQuotedString && *closeQuote == kBackSlash && *(closeQuote + 1) != kNullCh) {
             ++closeQuote;
           }
@@ -574,27 +574,27 @@ nsContentSink::ProcessLinkHeader(const n
             *last = kNullCh;
             value++;
           }
 
           if (wasQuotedString) {
             // unescape in-place
             char16_t* unescaped = value;
             char16_t *src = value;
-            
+
             while (*src != kNullCh) {
               if (*src == kBackSlash && *(src + 1) != kNullCh) {
                 src++;
               }
               *unescaped++ = *src++;
             }
 
             *unescaped = kNullCh;
           }
-          
+
           if (attr.LowerCaseEqualsLiteral("rel")) {
             if (rel.IsEmpty()) {
               rel = value;
               rel.CompressWhitespace();
             }
           } else if (attr.LowerCaseEqualsLiteral("title")) {
             if (title.IsEmpty()) {
               title = value;
@@ -656,23 +656,23 @@ nsContentSink::ProcessLinkHeader(const n
 
       href.Truncate();
       rel.Truncate();
       title.Truncate();
       type.Truncate();
       media.Truncate();
       anchor.Truncate();
       crossOrigin.SetIsVoid(true);
-      
+
       seenParameters = false;
     }
 
     start = ++end;
   }
-                
+
   href.Trim(" \t\n\r\f"); // trim HTML5 whitespace
   if (!href.IsEmpty() && !rel.IsEmpty()) {
     rv = ProcessLink(anchor, href, rel,
                      // prefer RFC 5987 variant over non-I18zed version
                      titleStar.IsEmpty() ? title : titleStar,
                      type, media, crossOrigin);
   }
 
@@ -754,17 +754,17 @@ nsContentSink::ProcessStyleLink(nsIConte
   if (!mimeType.IsEmpty() && !mimeType.LowerCaseEqualsLiteral("text/css")) {
     // Unknown stylesheet language
     return NS_OK;
   }
 
   nsCOMPtr<nsIURI> url;
   nsresult rv = NS_NewURI(getter_AddRefs(url), aHref, nullptr,
                           mDocument->GetDocBaseURI());
-  
+
   if (NS_FAILED(rv)) {
     // The URI is bad, move along, don't propagate the error (for now)
     return NS_OK;
   }
 
   NS_ASSERTION(!aElement ||
                aElement->NodeType() == nsIDOMNode::PROCESSING_INSTRUCTION_NODE,
                "We only expect processing instructions here");
@@ -782,17 +782,17 @@ nsContentSink::ProcessStyleLink(nsIConte
   // If this is a fragment parser, we don't want to observe.
   // We don't support CORS for processing instructions
   bool isAlternate;
   rv = mCSSLoader->LoadStyleLink(aElement, url, aTitle, aMedia, aAlternate,
                                  CORS_NONE, mDocument->GetReferrerPolicy(),
                                  integrity, mRunsToCompletion ? nullptr : this,
                                  &isAlternate);
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   if (!isAlternate && !mRunsToCompletion) {
     ++mPendingSheetCount;
     mScriptLoader->AddParserBlockingScriptExecutionBlocker();
   }
 
   return NS_OK;
 }
 
@@ -814,17 +814,17 @@ nsContentSink::ProcessMETATag(nsIContent
         (mDocument->GetSandboxFlags() & SANDBOXED_AUTOMATIC_FEATURES)) {
       return NS_OK;
     }
 
     nsAutoString result;
     aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::content, result);
     if (!result.IsEmpty()) {
       nsCOMPtr<nsIAtom> fieldAtom(NS_Atomize(header));
-      rv = ProcessHeaderData(fieldAtom, result, aContent); 
+      rv = ProcessHeaderData(fieldAtom, result, aContent);
     }
   }
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::name,
                             nsGkAtoms::handheldFriendly, eIgnoreCase)) {
     nsAutoString result;
     aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::content, result);
@@ -1156,18 +1156,18 @@ nsContentSink::ProcessOfflineManifest(co
                                             mDocument->NodePrincipal(), domdoc);
     }
     break;
   }
   case CACHE_SELECTION_RELOAD: {
     // This situation occurs only for toplevel documents, see bottom
     // of SelectDocAppCache method.
     // The document has been loaded from a different offline cache group than
-    // the manifest it refers to, i.e. this is a foreign entry, mark it as such 
-    // and force a reload to avoid loading it.  The next attempt will not 
+    // the manifest it refers to, i.e. this is a foreign entry, mark it as such
+    // and force a reload to avoid loading it.  The next attempt will not
     // choose it.
 
     applicationCacheChannel->MarkOfflineCacheEntryAsForeign();
 
     nsCOMPtr<nsIWebNavigation> webNav = do_QueryInterface(mDocShell);
 
     webNav->Stop(nsIWebNavigation::STOP_ALL);
     webNav->Reload(nsIWebNavigation::LOAD_FLAGS_NONE);
@@ -1188,17 +1188,17 @@ nsContentSink::ScrollToRef()
 
 void
 nsContentSink::StartLayout(bool aIgnorePendingSheets)
 {
   if (mLayoutStarted) {
     // Nothing to do here
     return;
   }
-  
+
   mDeferredLayoutStart = true;
 
   if (!aIgnorePendingSheets && WaitForPendingSheets()) {
     // Bail out; we'll start layout when the sheets load
     return;
   }
 
   mDeferredLayoutStart = false;
@@ -1241,17 +1241,17 @@ nsContentSink::NotifyAppend(nsIContent* 
 {
   if (aContainer->GetUncomposedDoc() != mDocument) {
     // aContainer is not actually in our document anymore.... Just bail out of
     // here; notifying on our document for this append would be wrong.
     return;
   }
 
   mInNotification++;
-  
+
   {
     // Scope so we call EndUpdate before we decrease mInNotification
     MOZ_AUTO_DOC_UPDATE(mDocument, UPDATE_CONTENT_MODEL, !mBeganUpdate);
     nsNodeUtils::ContentAppended(aContainer,
                                  aContainer->GetChildAt(aStartIndex),
                                  aStartIndex);
     mLastNotificationTime = PR_Now();
   }
@@ -1262,17 +1262,17 @@ nsContentSink::NotifyAppend(nsIContent* 
 NS_IMETHODIMP
 nsContentSink::Notify(nsITimer *timer)
 {
   if (mParsing) {
     // We shouldn't interfere with our normal DidProcessAToken logic
     mDroppedTimer = true;
     return NS_OK;
   }
-  
+
   if (WaitForPendingSheets()) {
     mDeferredFlushTags = true;
   } else {
     FlushTags();
 
     // Now try and scroll to the reference
     // XXX Should we scroll unconditionally for history loads??
     ScrollToRef();
@@ -1500,27 +1500,27 @@ nsContentSink::DidBuildModelImpl(bool aT
   // Cancel a timer if we had one out there
   if (mNotificationTimer) {
     SINK_TRACE(static_cast<LogModule*>(gContentSinkLogModuleInfo),
                SINK_TRACE_REFLOW,
                ("nsContentSink::DidBuildModel: canceling notification "
                 "timeout"));
     mNotificationTimer->Cancel();
     mNotificationTimer = nullptr;
-  }	
+  }
 }
 
 void
 nsContentSink::DropParserAndPerfHint(void)
 {
   if (!mParser) {
     // Make sure we don't unblock unload too many times
     return;
   }
-  
+
   // Ref. Bug 49115
   // Do this hack to make sure that the parser
   // doesn't get destroyed, accidently, before
   // the circularity, between sink & parser, is
   // actually broken.
   // Drop our reference to the parser to get rid of a circular
   // reference.
   RefPtr<nsParserBase> kungFuDeathGrip(mParser.forget());
@@ -1561,23 +1561,23 @@ nsContentSink::WillParseImpl(void)
     NS_ENSURE_TRUE(vm, NS_ERROR_FAILURE);
     uint32_t lastEventTime;
     vm->GetLastUserEventTime(lastEventTime);
 
     bool newDynLower =
       mDocument->IsInBackgroundWindow() ||
       ((currentTime - mBeginLoadTime) > uint32_t(sInitialPerfTime) &&
        (currentTime - lastEventTime) < uint32_t(sInteractiveTime));
-    
+
     if (mDynamicLowerValue != newDynLower) {
       FavorPerformanceHint(!newDynLower, 0);
       mDynamicLowerValue = newDynLower;
     }
   }
-  
+
   mDeflectedCount = 0;
   mHasPendingEvent = false;
 
   mCurrentParseEndTime = currentTime +
     (mDynamicLowerValue ? sInteractiveParseTime : sPerfParseTime);
 
   return NS_OK;
 }
--- a/dom/base/nsContentSink.h
+++ b/dom/base/nsContentSink.h
@@ -217,17 +217,17 @@ public:
   // Searches for the offline cache manifest attribute and calls one
   // of the above defined methods to select the document's application
   // cache, let it be associated with the document and eventually
   // schedule the cache update process.
   // This method MUST be called with the empty string as the argument
   // when there is no manifest attribute!
   void ProcessOfflineManifest(const nsAString& aManifestSpec);
 
-  // Extracts the manifest attribute from the element if it is the root 
+  // Extracts the manifest attribute from the element if it is the root
   // element and calls the above method.
   void ProcessOfflineManifest(nsIContent *aElement);
 
   // For Preconnect() aHref can either be the usual
   // URI format or of the form "//www.hostname.com" without a scheme.
   void Preconnect(const nsAString& aHref, const nsAString& aCrossOrigin);
 
 protected:
@@ -300,17 +300,17 @@ protected:
   uint8_t mDeferredFlushTags : 1;
   // If false, we're not ourselves a document observer; that means we
   // shouldn't be performing any more content model notifications,
   // since we're not longer updating our child counts.
   uint8_t mIsDocumentObserver : 1;
   // True if this is parser is a fragment parser or an HTML DOMParser.
   // XML DOMParser leaves this to false for now!
   uint8_t mRunsToCompletion : 1;
-  
+
   //
   // -- Can interrupt parsing members --
   //
 
   // The number of tokens that have been processed since we measured
   // if it's time to return to the main event loop.
   uint32_t mDeflectedCount;
 
--- a/dom/base/nsCopySupport.cpp
+++ b/dom/base/nsCopySupport.cpp
@@ -3,17 +3,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsCopySupport.h"
 #include "nsIDocumentEncoder.h"
 #include "nsISupports.h"
 #include "nsIContent.h"
-#include "nsIComponentManager.h" 
+#include "nsIComponentManager.h"
 #include "nsIServiceManager.h"
 #include "nsIClipboard.h"
 #include "nsIFormControl.h"
 #include "nsISelection.h"
 #include "nsWidgetsCID.h"
 #include "nsXPCOM.h"
 #include "nsISupportsPrimitives.h"
 #include "nsIDOMRange.h"
@@ -395,44 +395,44 @@ nsresult nsCopySupport::DoHooks(nsIDocum
 
   return rv;
 }
 
 nsresult
 nsCopySupport::GetContents(const nsACString& aMimeType, uint32_t aFlags, nsISelection *aSel, nsIDocument *aDoc, nsAString& outdata)
 {
   nsresult rv = NS_OK;
-  
+
   nsCOMPtr<nsIDocumentEncoder> docEncoder;
 
   nsAutoCString encoderContractID(NS_DOC_ENCODER_CONTRACTID_BASE);
   encoderContractID.Append(aMimeType);
-    
+
   docEncoder = do_CreateInstance(encoderContractID.get());
   NS_ENSURE_TRUE(docEncoder, NS_ERROR_FAILURE);
 
   uint32_t flags = aFlags | nsIDocumentEncoder::SkipInvisibleContent;
-  
+
   if (aMimeType.EqualsLiteral("text/plain"))
     flags |= nsIDocumentEncoder::OutputPreformatted;
 
   NS_ConvertASCIItoUTF16 unicodeMimeType(aMimeType);
 
   nsCOMPtr<nsIDOMDocument> domDoc = do_QueryInterface(aDoc);
   NS_ASSERTION(domDoc, "Need a document");
 
   rv = docEncoder->Init(domDoc, unicodeMimeType, flags);
   if (NS_FAILED(rv)) return rv;
-  
+
   if (aSel)
   {
     rv = docEncoder->SetSelection(aSel);
     if (NS_FAILED(rv)) return rv;
-  } 
-  
+  }
+
   // encode the selection
   return docEncoder->EncodeToString(outdata);
 }
 
 
 nsresult
 nsCopySupport::ImageCopy(nsIImageLoadingContent* aImageElement,
                          nsILoadContext* aLoadContext,
--- a/dom/base/nsCopySupport.h
+++ b/dom/base/nsCopySupport.h
@@ -30,17 +30,17 @@ class nsCopySupport
                              int16_t aClipboardID, bool aWithRubyAnnotation);
     static nsresult DoHooks(nsIDocument *aDoc, nsITransferable *aTrans,
                             bool *aDoPutOnClipboard);
 
     // Get the selection, or entire document, in the format specified by the mime type
     // (text/html or text/plain). If aSel is non-null, use it, otherwise get the entire
     // doc.
     static nsresult GetContents(const nsACString& aMimeType, uint32_t aFlags, nsISelection *aSel, nsIDocument *aDoc, nsAString& outdata);
-    
+
     static nsresult ImageCopy(nsIImageLoadingContent* aImageElement,
                               nsILoadContext* aLoadContext,
                               int32_t aCopyFlags);
 
     // Get the selection as a transferable. Similar to HTMLCopy except does
     // not deal with the clipboard.
     static nsresult GetTransferableForSelection(nsISelection* aSelection,
                                                 nsIDocument* aDocument,
--- a/dom/base/nsDOMAttributeMap.h
+++ b/dom/base/nsDOMAttributeMap.h
@@ -138,17 +138,17 @@ public:
 
   // WebIDL
   Attr* GetNamedItem(const nsAString& aAttrName);
   Attr* NamedGetter(const nsAString& aAttrName, bool& aFound);
   already_AddRefed<Attr>
   RemoveNamedItem(mozilla::dom::NodeInfo* aNodeInfo, ErrorResult& aError);
   already_AddRefed<Attr>
   RemoveNamedItem(const nsAString& aName, ErrorResult& aError);
- 
+
   Attr* Item(uint32_t aIndex);
   Attr* IndexedGetter(uint32_t aIndex, bool& aFound);
   uint32_t Length() const;
 
   Attr*
   GetNamedItemNS(const nsAString& aNamespaceURI,
                  const nsAString& aLocalName);
   already_AddRefed<Attr>
--- a/dom/base/nsDOMMutationObserver.cpp
+++ b/dom/base/nsDOMMutationObserver.cpp
@@ -209,17 +209,17 @@ nsMutationReceiver::CharacterDataWillCha
     Observer()->CurrentRecord(nsGkAtoms::characterData);
 
   NS_ASSERTION(!m->mTarget || m->mTarget == aContent,
                "Wrong target!");
 
   if (!m->mTarget) {
     m->mTarget = aContent;
   }
-  if (CharacterDataOldValue() && m->mPrevValue.IsVoid()) { 
+  if (CharacterDataOldValue() && m->mPrevValue.IsVoid()) {
     aContent->GetText()->AppendTo(m->mPrevValue);
   }
 }
 
 void
 nsMutationReceiver::ContentAppended(nsIDocument* aDocument,
                                     nsIContent* aContainer,
                                     nsIContent* aFirstNewContent,
@@ -281,17 +281,17 @@ nsMutationReceiver::ContentInserted(nsID
     }
     return;
   }
 
   nsDOMMutationRecord* m =
     Observer()->CurrentRecord(nsGkAtoms::childList);
   if (m->mTarget) {
     // Already handled case.
-    return;  
+    return;
   }
   m->mTarget = parent;
   m->mAddedNodes = new nsSimpleContentList(parent);
   m->mAddedNodes->AppendElement(aChild);
   m->mPreviousSibling = aChild->GetPreviousSibling();
   m->mNextSibling = aChild->GetNextSibling();
 }
 
@@ -563,17 +563,17 @@ nsDOMMutationObserver::GetAllSubtreeObse
       nsMutationReceiver* r = GetReceiverFor(n, false, false);
       if (r && r->Subtree() && !aReceivers.Contains(r)) {
         aReceivers.AppendElement(r);
         // If we've found all the receivers the observer has,
         // no need to search for more.
         if (mReceivers.Count() == int32_t(aReceivers.Length())) {
           return;
         }
-      }                                            
+      }
       nsCOMArray<nsMutationReceiver>* transientReceivers = nullptr;
       if (mTransientReceivers.Get(n, &transientReceivers) && transientReceivers) {
         for (int32_t i = 0; i < transientReceivers->Count(); ++i) {
           nsMutationReceiver* r = transientReceivers->ObjectAt(i);
           nsMutationReceiver* parent = r->GetParent();
           if (r->Subtree() && parent && !aReceivers.Contains(parent)) {
             aReceivers.AppendElement(parent);
           }
--- a/dom/base/nsDOMMutationObserver.h
+++ b/dom/base/nsDOMMutationObserver.h
@@ -121,17 +121,17 @@ public:
   nsCOMPtr<nsINode>             mNextSibling;
   AnimationArray                mAddedAnimations;
   AnimationArray                mRemovedAnimations;
   AnimationArray                mChangedAnimations;
 
   RefPtr<nsDOMMutationRecord> mNext;
   nsCOMPtr<nsISupports>         mOwner;
 };
- 
+
 // Base class just prevents direct access to
 // members to make sure we go through getters/setters.
 class nsMutationReceiverBase : public nsStubAnimationObserver
 {
 public:
   virtual ~nsMutationReceiverBase() { }
 
   nsDOMMutationObserver* Observer();
@@ -229,17 +229,17 @@ public:
   {
     mTransientReceivers.AppendObject(aClone);
   }
 
   void RemoveClone(nsMutationReceiverBase* aClone)
   {
     mTransientReceivers.RemoveObject(aClone);
   }
-  
+
 protected:
   nsMutationReceiverBase(nsINode* aTarget, nsDOMMutationObserver* aObserver)
     : mTarget(aTarget)
     , mObserver(aObserver)
     , mRegisterTarget(aTarget)
     , mSubtree(false)
     , mChildList(false)
     , mCharacterData(false)
@@ -320,17 +320,17 @@ protected:
   RefPtr<nsMutationReceiverBase>   mParent; // Cleared after microtask.
   // The node to which Gecko-internal nsIMutationObserver was registered to.
   // This is different than mTarget when dealing with transient observers.
   nsINode*                           mRegisterTarget;
   nsCOMArray<nsMutationReceiverBase> mTransientReceivers;
   // While we have transient receivers, keep the original mutation receiver
   // alive so it doesn't go away and disconnect all its transient receivers.
   nsCOMPtr<nsINode>                  mKungFuDeathGrip;
-  
+
 private:
   bool                               mSubtree;
   bool                               mChildList;
   bool                               mCharacterData;
   bool                               mCharacterDataOldValue;
   bool                               mNativeAnonymousChildList;
   bool                               mAttributes;
   bool                               mAllAttributes;
@@ -653,17 +653,17 @@ protected:
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsDOMMutationObserver, NS_DOM_MUTATION_OBSERVER_IID)
 
 class nsAutoMutationBatch
 {
 public:
   nsAutoMutationBatch()
   : mPreviousBatch(nullptr), mBatchTarget(nullptr), mRemovalDone(false),
-    mFromFirstToLast(false), mAllowNestedBatches(false)    
+    mFromFirstToLast(false), mAllowNestedBatches(false)
   {
   }
 
   nsAutoMutationBatch(nsINode* aTarget, bool aFromFirstToLast,
                       bool aAllowNestedBatches)
   : mPreviousBatch(nullptr), mBatchTarget(nullptr), mRemovalDone(false),
     mFromFirstToLast(false), mAllowNestedBatches(false)
   {
@@ -708,21 +708,21 @@ public:
   static void UpdateObserver(nsDOMMutationObserver* aObserver,
                              bool aWantsChildList)
   {
     uint32_t l = sCurrentBatch->mObservers.Length();
     for (uint32_t i = 0; i < l; ++i) {
       if (sCurrentBatch->mObservers[i].mObserver == aObserver) {
         if (aWantsChildList) {
           sCurrentBatch->mObservers[i].mWantsChildList = aWantsChildList;
-        } 
+        }
         return;
       }
     }
-    BatchObserver* bo = sCurrentBatch->mObservers.AppendElement(); 
+    BatchObserver* bo = sCurrentBatch->mObservers.AppendElement();
     bo->mObserver = aObserver;
     bo->mWantsChildList = aWantsChildList;
   }
 
 
   static nsINode* GetBatchTarget() { return sCurrentBatch->mBatchTarget; }
 
   // Mutation receivers notify the batch about removed child nodes.
@@ -754,17 +754,17 @@ public:
   }
 
 private:
   struct BatchObserver
   {
     nsDOMMutationObserver* mObserver;
     bool                   mWantsChildList;
   };
-  
+
   static nsAutoMutationBatch* sCurrentBatch;
   nsAutoMutationBatch* mPreviousBatch;
   AutoTArray<BatchObserver, 2> mObservers;
   nsTArray<nsCOMPtr<nsIContent> > mRemovedNodes;
   nsTArray<nsCOMPtr<nsIContent> > mAddedNodes;
   nsINode* mBatchTarget;
   bool mRemovalDone;
   bool mFromFirstToLast;
--- a/dom/base/nsDOMSerializer.cpp
+++ b/dom/base/nsDOMSerializer.cpp
@@ -39,17 +39,17 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMSer
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMSerializer)
 
 
 static nsresult
 SetUpEncoder(nsIDOMNode *aRoot, const nsACString& aCharset,
              nsIDocumentEncoder **aEncoder)
 {
   *aEncoder = nullptr;
-   
+
   nsresult rv;
   nsCOMPtr<nsIDocumentEncoder> encoder =
     do_CreateInstance(NS_DOC_ENCODER_CONTRACTID_BASE "application/xhtml+xml", &rv);
   if (NS_FAILED(rv))
     return rv;
 
   bool entireDocument = true;
   nsCOMPtr<nsIDOMDocument> domDoc(do_QueryInterface(aRoot));
@@ -97,17 +97,17 @@ nsDOMSerializer::SerializeToString(nsINo
 {
   rv = nsDOMSerializer::SerializeToString(aRoot.AsDOMNode(), aStr);
 }
 
 NS_IMETHODIMP
 nsDOMSerializer::SerializeToString(nsIDOMNode *aRoot, nsAString& _retval)
 {
   NS_ENSURE_ARG_POINTER(aRoot);
-  
+
   _retval.Truncate();
 
   if (!nsContentUtils::CanCallerAccess(aRoot)) {
     return NS_ERROR_DOM_SECURITY_ERR;
   }
 
   nsCOMPtr<nsIDocumentEncoder> encoder;
   nsresult rv = SetUpEncoder(aRoot, EmptyCString(), getter_AddRefs(encoder));
@@ -121,18 +121,18 @@ void
 nsDOMSerializer::SerializeToStream(nsINode& aRoot, nsIOutputStream* aStream,
                                    const nsAString& aCharset, ErrorResult& rv)
 {
   rv = nsDOMSerializer::SerializeToStream(aRoot.AsDOMNode(), aStream,
                                           NS_ConvertUTF16toUTF8(aCharset));
 }
 
 NS_IMETHODIMP
-nsDOMSerializer::SerializeToStream(nsIDOMNode *aRoot, 
-                                   nsIOutputStream *aStream, 
+nsDOMSerializer::SerializeToStream(nsIDOMNode *aRoot,
+                                   nsIOutputStream *aStream,
                                    const nsACString& aCharset)
 {
   NS_ENSURE_ARG_POINTER(aRoot);
   NS_ENSURE_ARG_POINTER(aStream);
   // The charset arg can be empty, in which case we get the document's
   // charset and use that when serializing.
 
   if (!nsContentUtils::CanCallerAccess(aRoot)) {
--- a/dom/base/nsDOMWindowList.cpp
+++ b/dom/base/nsDOMWindowList.cpp
@@ -70,17 +70,17 @@ nsDOMWindowList::GetLength()
 
   int32_t length;
   nsresult rv = mDocShellNode->GetChildCount(&length);
   NS_ENSURE_SUCCESS(rv, 0);
 
   return uint32_t(length);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDOMWindowList::GetLength(uint32_t* aLength)
 {
   *aLength = GetLength();
   return NS_OK;
 }
 
 already_AddRefed<nsPIDOMWindowOuter>
 nsDOMWindowList::IndexedGetter(uint32_t aIndex)
@@ -91,25 +91,25 @@ nsDOMWindowList::IndexedGetter(uint32_t 
   }
 
   nsCOMPtr<nsPIDOMWindowOuter> window = item->GetWindow();
   MOZ_ASSERT(window);
 
   return window.forget();
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDOMWindowList::Item(uint32_t aIndex, mozIDOMWindowProxy** aReturn)
 {
   nsCOMPtr<nsPIDOMWindowOuter> window = IndexedGetter(aIndex);
   window.forget(aReturn);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDOMWindowList::NamedItem(const nsAString& aName, mozIDOMWindowProxy** aReturn)
 {
   nsCOMPtr<nsIDocShellTreeItem> item;
 
   *aReturn = nullptr;
 
   EnsureFresh();
 
--- a/dom/base/nsFocusManager.cpp
+++ b/dom/base/nsFocusManager.cpp
@@ -261,31 +261,31 @@ nsFocusManager::Observe(nsISupports *aSu
     mWindowBeingLowered = nullptr;
     mDelayedBlurFocusEvents.Clear();
     mMouseButtonEventHandlingDocument = nullptr;
   }
 
   return NS_OK;
 }
 
-// given a frame content node, retrieve the nsIDOMWindow displayed in it 
+// given a frame content node, retrieve the nsIDOMWindow displayed in it
 static nsPIDOMWindowOuter*
 GetContentWindow(nsIContent* aContent)
 {
   nsIDocument* doc = aContent->GetComposedDoc();
   if (doc) {
     nsIDocument* subdoc = doc->GetSubDocumentFor(aContent);
     if (subdoc)
       return subdoc->GetWindow();
   }
 
   return nullptr;
 }
 
-// get the current window for the given content node 
+// get the current window for the given content node
 static nsPIDOMWindowOuter*
 GetCurrentWindow(nsIContent* aContent)
 {
   nsIDocument* doc = aContent->GetComposedDoc();
   return doc ? doc->GetWindow() : nullptr;
 }
 
 // static
@@ -392,17 +392,17 @@ nsFocusManager::GetActiveWindow(mozIDOMW
   NS_IF_ADDREF(*aWindow = mActiveWindow);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFocusManager::SetActiveWindow(mozIDOMWindowProxy* aWindow)
 {
   NS_ENSURE_STATE(aWindow);
-  
+
   // only top-level windows can be made active
   nsCOMPtr<nsPIDOMWindowOuter> piWindow = nsPIDOMWindowOuter::From(aWindow);
   NS_ENSURE_TRUE(piWindow == piWindow->GetPrivateRoot(), NS_ERROR_INVALID_ARG);
 
   RaiseWindow(piWindow);
   return NS_OK;
 }
 
@@ -1242,17 +1242,17 @@ nsFocusManager::SetFocusInner(nsIContent
     if (beingDestroyed)
       return;
 
     nsCOMPtr<nsIDocShellTreeItem> parentDsti;
     docShell->GetParent(getter_AddRefs(parentDsti));
     docShell = do_QueryInterface(parentDsti);
   }
 
-  // if the new element is in the same window as the currently focused element 
+  // if the new element is in the same window as the currently focused element
   bool isElementInFocusedWindow = (mFocusedWindow == newWindow);
 
   if (!isElementInFocusedWindow && mFocusedWindow && newWindow &&
       nsContentUtils::IsHandlingKeyBoardEvent()) {
     nsCOMPtr<nsIScriptObjectPrincipal> focused =
       do_QueryInterface(mFocusedWindow);
     nsCOMPtr<nsIScriptObjectPrincipal> newFocus =
       do_QueryInterface(newWindow);
@@ -1474,17 +1474,17 @@ nsFocusManager::AdjustWindowFocus(nsPIDO
 
   nsCOMPtr<nsPIDOMWindowOuter> window(aWindow);
   while (window) {
     // get the containing <iframe> or equivalent element so that it can be
     // focused below.
     nsCOMPtr<Element> frameElement = window->GetFrameElementInternal();
 
     nsCOMPtr<nsIDocShellTreeItem> dsti = window->GetDocShell();
-    if (!dsti) 
+    if (!dsti)
       return;
     nsCOMPtr<nsIDocShellTreeItem> parentDsti;
     dsti->GetParent(getter_AddRefs(parentDsti));
     if (!parentDsti) {
       return;
     }
 
     window = parentDsti->GetWindow();
@@ -1609,17 +1609,17 @@ nsFocusManager::CheckIfFocusable(nsICont
   // offscreen browsers can still be focused.
   nsIDocument* subdoc = doc->GetSubDocumentFor(aContent);
   if (subdoc && IsWindowVisible(subdoc->GetWindow())) {
     const nsStyleUserInterface* ui = frame->StyleUserInterface();
     int32_t tabIndex = (ui->mUserFocus == StyleUserFocus::Ignore ||
                         ui->mUserFocus == StyleUserFocus::None) ? -1 : 0;
     return aContent->IsFocusable(&tabIndex, aFlags & FLAG_BYMOUSE) ? aContent : nullptr;
   }
-  
+
   return frame->IsFocusable(nullptr, aFlags & FLAG_BYMOUSE) ? aContent : nullptr;
 }
 
 bool
 nsFocusManager::Blur(nsPIDOMWindowOuter* aWindowToClear,
                      nsPIDOMWindowOuter* aAncestorWindowToFocus,
                      bool aIsLeavingDocument,
                      bool aAdjustWidgets,
@@ -2521,17 +2521,17 @@ nsFocusManager::GetSelectionLocation(nsI
       domRange->GetStartContainer(getter_AddRefs(startNode));
       domRange->GetEndContainer(getter_AddRefs(endNode));
       domRange->GetStartOffset(&startOffset);
 
       nsIContent *childContent = nullptr;
 
       startContent = do_QueryInterface(startNode);
       if (startContent && startContent->IsElement()) {
-        NS_ASSERTION(startOffset >= 0, "Start offset cannot be negative");  
+        NS_ASSERTION(startOffset >= 0, "Start offset cannot be negative");
         childContent = startContent->GetChildAt(startOffset);
         if (childContent) {
           startContent = childContent;
         }
       }
 
       endContent = do_QueryInterface(endNode);
       if (endContent && endContent->IsElement()) {
@@ -2899,17 +2899,17 @@ nsFocusManager::DetermineElementToMoveFo
 
       // found a content node to focus.
       if (nextFocus) {
         LOGCONTENTNAVIGATION("Next Content: %s", nextFocus.get());
 
         // as long as the found node was not the same as the starting node,
         // set it as the return value. For document navigation, we can return
         // the same element in case there is only one content node that could
-        // be returned, for example, in a child process document. 
+        // be returned, for example, in a child process document.
         if (nextFocus != originalStartContent || forDocumentNavigation) {
           nextFocus.forget(aNextContent);
         }
         return NS_OK;
       }
 
       if (popupFrame && !forDocumentNavigation) {
         // in a popup, so start again from the beginning of the popup. However,
--- a/dom/base/nsFocusManager.h
+++ b/dom/base/nsFocusManager.h
@@ -511,17 +511,17 @@ protected:
    * Retrieves and returns the root node as with GetRootForFocus but only if
    * aContent is a frame with a valid child document.
    */
   nsIContent* GetRootForChildDocument(nsIContent* aContent);
 
   /**
    * Retreives a focusable element within the current selection of aWindow.
    * Currently, this only detects links.
-   *  
+   *
    * This is used when MoveFocus is called with a type of MOVEFOCUS_CARET,
    * which is used, for example, to focus links as the caret is moved over
    * them.
    */
   void GetFocusInSelection(nsPIDOMWindowOuter* aWindow,
                            nsIContent* aStartSelection,
                            nsIContent* aEndSelection,
                            nsIContent** aFocusedContent);
--- a/dom/base/nsGlobalWindowCommands.cpp
+++ b/dom/base/nsGlobalWindowCommands.cpp
@@ -316,17 +316,17 @@ static constexpr struct BrowseCommand {
 };
 
 nsresult
 nsSelectMoveScrollCommand::DoCommand(const char *aCommandName, nsISupports *aCommandContext)
 {
   nsCOMPtr<nsPIDOMWindowOuter> piWindow(do_QueryInterface(aCommandContext));
   nsCOMPtr<nsISelectionController> selCont;
   GetSelectionControllerFromWindow(piWindow, getter_AddRefs(selCont));
-  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);       
+  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);
 
   bool caretOn = IsCaretOnInWindow(piWindow, selCont);
 
   for (size_t i = 0; i < ArrayLength(browseCommands); i++) {
     bool forward = !strcmp(aCommandName, browseCommands[i].forward);
     if (forward || !strcmp(aCommandName, browseCommands[i].reverse)) {
       if (caretOn && browseCommands[i].move &&
           NS_SUCCEEDED((selCont->*(browseCommands[i].move))(forward, false))) {
@@ -378,17 +378,17 @@ static const struct PhysicalBrowseComman
 
 nsresult
 nsPhysicalSelectMoveScrollCommand::DoCommand(const char *aCommandName,
                                              nsISupports *aCommandContext)
 {
   nsCOMPtr<nsPIDOMWindowOuter> piWindow(do_QueryInterface(aCommandContext));
   nsCOMPtr<nsISelectionController> selCont;
   GetSelectionControllerFromWindow(piWindow, getter_AddRefs(selCont));
-  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);       
+  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);
 
   bool caretOn = IsCaretOnInWindow(piWindow, selCont);
 
   for (size_t i = 0; i < ArrayLength(physicalBrowseCommands); i++) {
     const PhysicalBrowseCommand& cmd = physicalBrowseCommands[i];
     if (!strcmp(aCommandName, cmd.command)) {
       int16_t dir = cmd.direction;
       if (caretOn &&
@@ -430,17 +430,17 @@ static const struct SelectCommand {
 
 nsresult
 nsSelectCommand::DoCommand(const char *aCommandName,
                            nsISupports *aCommandContext)
 {
   nsCOMPtr<nsPIDOMWindowOuter> piWindow(do_QueryInterface(aCommandContext));
   nsCOMPtr<nsISelectionController> selCont;
   GetSelectionControllerFromWindow(piWindow, getter_AddRefs(selCont));
-  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);       
+  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);
 
   // These commands are so the browser can use caret navigation key bindings -
   // Helps with accessibility - aaronl@netscape.com
   for (size_t i = 0; i < ArrayLength(selectCommands); i++) {
     bool forward = !strcmp(aCommandName, selectCommands[i].forward);
     if (forward || !strcmp(aCommandName, selectCommands[i].reverse)) {
       return (selCont->*(selectCommands[i].select))(forward, true);
     }
@@ -468,17 +468,17 @@ static const struct PhysicalSelectComman
 
 nsresult
 nsPhysicalSelectCommand::DoCommand(const char *aCommandName,
                                    nsISupports *aCommandContext)
 {
   nsCOMPtr<nsPIDOMWindowOuter> piWindow(do_QueryInterface(aCommandContext));
   nsCOMPtr<nsISelectionController> selCont;
   GetSelectionControllerFromWindow(piWindow, getter_AddRefs(selCont));
-  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);       
+  NS_ENSURE_TRUE(selCont, NS_ERROR_NOT_INITIALIZED);
 
   for (size_t i = 0; i < ArrayLength(physicalSelectCommands); i++) {
     if (!strcmp(aCommandName, physicalSelectCommands[i].command)) {
       return selCont->PhysicalMove(physicalSelectCommands[i].direction,
                                    physicalSelectCommands[i].amount,
                                    true);
     }
   }
@@ -599,19 +599,19 @@ public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSICONTROLLERCOMMAND
 
 protected:
   virtual ~nsSelectionCommand() {}
 
   virtual nsresult    IsClipboardCommandEnabled(const char * aCommandName, nsIContentViewerEdit* aEdit, bool *outCmdEnabled) = 0;
   virtual nsresult    DoClipboardCommand(const char *aCommandName, nsIContentViewerEdit* aEdit, nsICommandParams* aParams) = 0;
-  
+
   static nsresult     GetContentViewerEditFromContext(nsISupports *aContext, nsIContentViewerEdit **aEditInterface);
-  
+
   // no member variables, please, we're stateless!
 };
 
 
 NS_IMPL_ISUPPORTS(nsSelectionCommand, nsIControllerCommand)
 
 
 /*---------------------------------------------------------------------------
@@ -733,17 +733,17 @@ nsClipboardImageCommands::IsClipboardCom
 
 nsresult
 nsClipboardImageCommands::DoClipboardCommand(const char *aCommandName, nsIContentViewerEdit* aEdit, nsICommandParams* aParams)
 {
   if (!nsCRT::strcmp(sCopyImageLocationString, aCommandName))
     return aEdit->CopyImage(nsIContentViewerEdit::COPY_IMAGE_TEXT);
   if (!nsCRT::strcmp(sCopyImageContentsString, aCommandName))
     return aEdit->CopyImage(nsIContentViewerEdit::COPY_IMAGE_DATA);
-  int32_t copyFlags = nsIContentViewerEdit::COPY_IMAGE_DATA | 
+  int32_t copyFlags = nsIContentViewerEdit::COPY_IMAGE_DATA |
                       nsIContentViewerEdit::COPY_IMAGE_HTML;
   if (aParams)
     aParams->GetLongValue("imageCopy", &copyFlags);
   return aEdit->CopyImage(copyFlags);
 }
 
 #if 0
 #pragma mark -
@@ -781,44 +781,44 @@ nsClipboardGetContentsCommand::DoClipboa
 {
   NS_ENSURE_ARG(aParams);
 
   nsAutoCString mimeType("text/plain");
 
   nsXPIDLCString format;    // nsICommandParams needs to use nsACString
   if (NS_SUCCEEDED(aParams->GetCStringValue("format", getter_Copies(format))))
     mimeType.Assign(format);
-  
+
   bool selectionOnly = false;
   aParams->GetBooleanValue("selection_only", &selectionOnly);
-  
+
   nsAutoString contents;
   nsresult rv = aEdit->GetContents(mimeType.get(), selectionOnly, contents);
   if (NS_FAILED(rv))
     return rv;
-    
+
   return aParams->SetStringValue("result", contents);
 }
 
 #if 0   // Remove unless needed again, bug 204777
 class nsWebNavigationBaseCommand : public nsIControllerCommand
 {
 public:
   virtual ~nsWebNavigationBaseCommand() {}
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSICONTROLLERCOMMAND
 
 protected:
 
   virtual nsresult    IsWebNavCommandEnabled(const char * aCommandName, nsIWebNavigation* aWebNavigation, bool *outCmdEnabled) = 0;
   virtual nsresult    DoWebNavCommand(const char *aCommandName, nsIWebNavigation* aWebNavigation) = 0;
-  
+
   static nsresult     GetWebNavigationFromContext(nsISupports *aContext, nsIWebNavigation **aWebNavigation);
-  
+
   // no member variables, please, we're stateless!
 };
 
 class nsGoForwardCommand : public nsWebNavigationBaseCommand
 {
 protected:
 
   virtual nsresult    IsWebNavCommandEnabled(const char * aCommandName, nsIWebNavigation* aWebNavigation, bool *outCmdEnabled);
@@ -849,17 +849,17 @@ nsWebNavigationBaseCommand::IsCommandEna
                                           bool *outCmdEnabled)
 {
   NS_ENSURE_ARG_POINTER(outCmdEnabled);
   *outCmdEnabled = false;
 
   nsCOMPtr<nsIWebNavigation> webNav;
   GetWebNavigationFromContext(aCommandContext, getter_AddRefs(webNav));
   NS_ENSURE_TRUE(webNav, NS_ERROR_INVALID_ARG);
-  
+
   return IsCommandEnabled(aCommandName, webNav, outCmdEnabled);
 }
 
 NS_IMETHODIMP
 nsWebNavigationBaseCommand::GetCommandStateParams(const char *aCommandName,
                                             nsICommandParams *aParams, nsISupports *aCommandContext)
 {
   // XXX we should probably return the enabled state
@@ -868,17 +868,17 @@ nsWebNavigationBaseCommand::GetCommandSt
 
 NS_IMETHODIMP
 nsWebNavigationBaseCommand::DoCommand(const char *aCommandName,
                                    nsISupports *aCommandContext)
 {
   nsCOMPtr<nsIWebNavigation> webNav;
   GetWebNavigationFromContext(aCommandContext, getter_AddRefs(webNav));
   NS_ENSURE_TRUE(webNav, NS_ERROR_INVALID_ARG);
-  
+
   return DoWebNavCommand(aCommandName, webNav);
 }
 
 NS_IMETHODIMP
 nsWebNavigationBaseCommand::DoCommandParams(const char *aCommandName,
                                        nsICommandParams *aParams, nsISupports *aCommandContext)
 {
   return DoCommand(aCommandName, aCommandContext);
@@ -930,17 +930,17 @@ class nsClipboardDragDropHookCommand fin
 {
   ~nsClipboardDragDropHookCommand() {}
 
 public:
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSICONTROLLERCOMMAND
 
-protected:                                                                                   
+protected:
   // no member variables, please, we're stateless!
 };
 
 
 NS_IMPL_ISUPPORTS(nsClipboardDragDropHookCommand, nsIControllerCommand)
 
 NS_IMETHODIMP
 nsClipboardDragDropHookCommand::IsCommandEnabled(const char * aCommandName,
@@ -1201,17 +1201,17 @@ nsLookUpDictionaryCommand::DoCommandPara
 // static
 nsresult
 nsWindowCommandRegistration::RegisterWindowCommands(
                                nsIControllerCommandTable *inCommandTable)
 {
   nsresult rv;
 
   // XXX rework the macros to use a loop is possible, reducing code size
-  
+
   // this set of commands is affected by the 'browse with caret' setting
   NS_REGISTER_FIRST_COMMAND(nsSelectMoveScrollCommand, sScrollTopString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollBottomString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollPageUpString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollPageDownString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollLineUpString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollLineDownString);
   NS_REGISTER_NEXT_COMMAND(nsSelectMoveScrollCommand, sScrollLeftString);
--- a/dom/base/nsHTMLContentSerializer.cpp
+++ b/dom/base/nsHTMLContentSerializer.cpp
@@ -89,34 +89,34 @@ nsHTMLContentSerializer::SerializeHTMLAt
     // Filter out any attribute starting with [-|_]moz
     nsDependentAtomString attrNameStr(attrName);
     if (StringBeginsWith(attrNameStr, NS_LITERAL_STRING("_moz")) ||
         StringBeginsWith(attrNameStr, NS_LITERAL_STRING("-moz"))) {
       continue;
     }
     aContent->GetAttr(namespaceID, attrName, valueStr);
 
-    // 
+    //
     // Filter out special case of <br type="_moz"> or <br _moz*>,
     // used by the editor.  Bug 16988.  Yuck.
     //
     if (aTagName == nsGkAtoms::br && aNamespace == kNameSpaceID_XHTML &&
         attrName == nsGkAtoms::type && namespaceID == kNameSpaceID_None &&
         StringBeginsWith(valueStr, _mozStr)) {
       continue;
     }
 
     if (mIsCopying && mIsFirstChildOfOL &&
         aTagName == nsGkAtoms::li && aNamespace == kNameSpaceID_XHTML &&
         attrName == nsGkAtoms::value && namespaceID == kNameSpaceID_None){
       // This is handled separately in SerializeLIValueAttribute()
       continue;
     }
     bool isJS = IsJavaScript(aContent, attrName, namespaceID, valueStr);
-    
+
     if (((attrName == nsGkAtoms::href &&
           (namespaceID == kNameSpaceID_None ||
            namespaceID == kNameSpaceID_XLink)) ||
          (attrName == nsGkAtoms::src && namespaceID == kNameSpaceID_None))) {
       // Make all links absolute when converting only the selection:
       if (mFlags & nsIDocumentEncoder::OutputAbsoluteLinks) {
         // Would be nice to handle OBJECT and APPLET tags,
         // but that gets more complicated since we have to
@@ -227,48 +227,48 @@ nsHTMLContentSerializer::AppendElementSt
   NS_ENSURE_TRUE(AppendToString(nsDependentAtomString(name), aStr), NS_ERROR_OUT_OF_MEMORY);
 
   MaybeEnterInPreContent(content);
 
   // for block elements, we increase the indentation
   if ((mDoFormat || forceFormat) && !mDoRaw && !PreLevel())
     NS_ENSURE_TRUE(IncrIndentation(name), NS_ERROR_OUT_OF_MEMORY);
 
-  // Need to keep track of OL and LI elements in order to get ordinal number 
+  // Need to keep track of OL and LI elements in order to get ordinal number
   // for the LI.
   if (mIsCopying && name == nsGkAtoms::ol && ns == kNameSpaceID_XHTML){
     // We are copying and current node is an OL;
     // Store its start attribute value in olState->startVal.
     nsAutoString start;
     int32_t startAttrVal = 0;
 
     aElement->GetAttr(kNameSpaceID_None, nsGkAtoms::start, start);
     if (!start.IsEmpty()){
       nsresult rv = NS_OK;
       startAttrVal = start.ToInteger(&rv);
       //If OL has "start" attribute, first LI element has to start with that value
       //Therefore subtracting 1 as all the LI elements are incrementing it before using it;
       //In failure of ToInteger(), default StartAttrValue to 0.
       if (NS_SUCCEEDED(rv))
-        startAttrVal--; 
+        startAttrVal--;
       else
         startAttrVal = 0;
     }
     mOLStateStack.AppendElement(olState(startAttrVal, true));
   }
 
   if (mIsCopying && name == nsGkAtoms::li && ns == kNameSpaceID_XHTML) {
     mIsFirstChildOfOL = IsFirstChildOfOL(aOriginalElement);
     if (mIsFirstChildOfOL){
       // If OL is parent of this LI, serialize attributes in different manner.
       NS_ENSURE_TRUE(SerializeLIValueAttribute(aElement, aStr), NS_ERROR_OUT_OF_MEMORY);
     }
   }
 
-  // Even LI passed above have to go through this 
+  // Even LI passed above have to go through this
   // for serializing attributes other than "value".
   nsAutoString dummyPrefix;
   NS_ENSURE_TRUE(SerializeHTMLAttributes(content,
                                          aOriginalElement,
                                          dummyPrefix,
                                          EmptyString(),
                                          name,
                                          ns,
@@ -288,18 +288,18 @@ nsHTMLContentSerializer::AppendElementSt
     LineBreakAfterOpen(ns, name)) {
     NS_ENSURE_TRUE(AppendNewLineToString(aStr), NS_ERROR_OUT_OF_MEMORY);
   }
 
   NS_ENSURE_TRUE(AfterElementStart(content, aOriginalElement, aStr), NS_ERROR_OUT_OF_MEMORY);
 
   return NS_OK;
 }
-  
-NS_IMETHODIMP 
+
+NS_IMETHODIMP
 nsHTMLContentSerializer::AppendElementEnd(Element* aElement,
                                           nsAString& aStr)
 {
   NS_ENSURE_ARG(aElement);
 
   nsIContent* content = aElement;
 
   nsIAtom *name = content->NodeInfo()->NameAtom();
@@ -328,23 +328,23 @@ nsHTMLContentSerializer::AppendElementEn
       // was missing in the source. Imitate that here by not serializing the end
       // tag.
       --PreLevel();
       return NS_OK;
     }
   }
   else if (mIsCopying && name == nsGkAtoms::ol && ns == kNameSpaceID_XHTML) {
     NS_ASSERTION((!mOLStateStack.IsEmpty()), "Cannot have an empty OL Stack");
-    /* Though at this point we must always have an state to be deleted as all 
+    /* Though at this point we must always have an state to be deleted as all
     the OL opening tags are supposed to push an olState object to the stack*/
     if (!mOLStateStack.IsEmpty()) {
       mOLStateStack.RemoveElementAt(mOLStateStack.Length() -1);
     }
   }
-  
+
   if (ns == kNameSpaceID_XHTML) {
     nsIParserService* parserService = nsContentUtils::GetParserService();
 
     if (parserService) {
       bool isContainer;
 
       parserService->
         IsContainer(parserService->HTMLCaseSensitiveAtomTagToId(name),
@@ -497,17 +497,17 @@ nsHTMLContentSerializer::AppendAndTransl
   if (!nonBasicEntities &&
       (mFlags & (nsIDocumentEncoder::OutputEncodeBasicEntities))) {
     const uint8_t* entityTable = mInAttribute ? kAttrEntities : kEntities;
     uint32_t start = 0;
     const uint32_t len = aStr.Length();
     for (uint32_t i = 0; i < len; ++i) {
       const char* entity = nullptr;
       i = FindNextBasicEntity(aStr, len, i, entityTable, &entity);
-      uint32_t normalTextLen = i - start; 
+      uint32_t normalTextLen = i - start;
       if (normalTextLen) {
         NS_ENSURE_TRUE(aOutputStr.Append(Substring(aStr, start, normalTextLen),
                                          mozilla::fallible), false);
       }
       if (entity) {
         NS_ENSURE_TRUE(aOutputStr.AppendASCII(entity, mozilla::fallible), false);
         start = i + 1;
       }
@@ -576,17 +576,17 @@ nsHTMLContentSerializer::AppendAndTransl
               lengthReplaced = 2;
               break;
             }
             else {
               advanceLength++;
             }
           }
           else if (NS_SUCCEEDED(mEntityConverter->ConvertToEntity(val,
-                                nsIEntityConverter::entityW3C, 
+                                nsIEntityConverter::entityW3C,
                                 &fullEntityText))) {
             lengthReplaced = 1;
             break;
           }
         }
       }
 
       bool result = aOutputStr.Append(fragmentStart, advanceLength, mozilla::fallible);
--- a/dom/base/nsIAttribute.h
+++ b/dom/base/nsIAttribute.h
@@ -16,17 +16,17 @@ class nsDOMAttributeMap;
   { 0x8f, 0xbf, 0x95, 0x26, 0x78, 0x4d, 0x5e, 0x47 } }
 
 class nsIAttribute : public nsINode
 {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IATTRIBUTE_IID)
 
   virtual void SetMap(nsDOMAttributeMap *aMap) = 0;
-  
+
   nsDOMAttributeMap *GetMap()
   {
     return mAttrMap;
   }
 
   mozilla::dom::NodeInfo *NodeInfo() const
   {
     return mNodeInfo;
--- a/dom/base/nsIContentSerializer.h
+++ b/dom/base/nsIContentSerializer.h
@@ -20,17 +20,17 @@ class Element;
 } // namespace dom
 } // namespace mozilla
 
 #define NS_ICONTENTSERIALIZER_IID \
 { 0xb1ee32f2, 0xb8c4, 0x49b9, \
   { 0x93, 0xdf, 0xb6, 0xfa, 0xb5, 0xd5, 0x46, 0x88 } }
 
 class nsIContentSerializer : public nsISupports {
- public: 
+ public:
 
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICONTENTSERIALIZER_IID)
 
   NS_IMETHOD Init(uint32_t flags,
                   uint32_t aWrapColumn,
                   const mozilla::Encoding* aEncoding,
                   bool aIsCopying,
                   bool aIsWholeDocument,
@@ -59,18 +59,18 @@ class nsIContentSerializer : public nsIS
                                 nsAString& aStr) = 0;
 
   NS_IMETHOD AppendElementEnd(mozilla::dom::Element* aElement,
                               nsAString& aStr) = 0;
 
   NS_IMETHOD Flush(nsAString& aStr) = 0;
 
   /**
-   * Append any items in the beginning of the document that won't be 
-   * serialized by other methods. XML declaration is the most likely 
+   * Append any items in the beginning of the document that won't be
+   * serialized by other methods. XML declaration is the most likely
    * thing this method can produce.
    */
   NS_IMETHOD AppendDocumentStart(nsIDocument *aDocument,
                                  nsAString& aStr) = 0;
 
   // If Init() sets *aNeedsPerformatScanning to true, then these methods are
   // called when elements are started and ended, before AppendElementStart
   // and AppendElementEnd, respectively.  They are supposed to be used to
--- a/dom/base/nsIDocumentObserver.h
+++ b/dom/base/nsIDocumentObserver.h
@@ -57,26 +57,26 @@ public:
   /**
    * Notify the observer that a document load has finished. Note that
    * the associated reflow of the document will be done <b>before</b>
    * EndLoad is invoked, not after.
    */
   virtual void EndLoad(nsIDocument *aDocument) = 0;
 
   /**
-   * Notification that the state of a content node has changed. 
+   * Notification that the state of a content node has changed.
    * (ie: gained or lost focus, became active or hovered over)
-   * This method is called automatically by content objects 
-   * when their state is changed (therefore there is normally 
-   * no need to invoke this method directly).  The notification 
-   * is passed to any IDocumentObservers. The notification is 
+   * This method is called automatically by content objects
+   * when their state is changed (therefore there is normally
+   * no need to invoke this method directly).  The notification
+   * is passed to any IDocumentObservers. The notification is
    * passed on to all of the document observers. <p>
    *
    * This notification is not sent when a piece of content is
-   * added/removed from the document or the content itself changed 
+   * added/removed from the document or the content itself changed
    * (the other notifications are used for that).
    *
    * @param aDocument The document being observed
    * @param aContent the piece of content that changed
    */
   virtual void ContentStateChanged(nsIDocument* aDocument,
                                    nsIContent* aContent,
                                    mozilla::EventStates aStateMask) = 0;
@@ -110,59 +110,59 @@ public:
    * notification is passed on to all of the document observers.
    *
    * @param aStyleSheet the StyleSheet that has been removed
    * @param aDocumentSheet True if sheet is in document's style sheet list,
    *                       false if sheet is not (i.e., UA or user sheet)
    */
   virtual void StyleSheetRemoved(mozilla::StyleSheet* aStyleSheet,
                                  bool aDocumentSheet) = 0;
-  
+
   /**
    * A StyleSheet has just changed its applicable state.
    * This method is called automatically when the applicable state
    * of a StyleSheet gets changed. The style sheet passes this
-   * notification to the document. The notification is passed on 
+   * notification to the document. The notification is passed on
    * to all of the document observers.
    *
    * @param aStyleSheet the StyleSheet that has changed state
    */
   virtual void StyleSheetApplicableStateChanged(mozilla::StyleSheet* aStyleSheet) = 0;
 
   /**
    * A StyleRule has just been modified within a style sheet.
    * This method is called automatically when the rule gets
-   * modified. The style sheet passes this notification to 
-   * the document. The notification is passed on to all of 
+   * modified. The style sheet passes this notification to
+   * the document. The notification is passed on to all of
    * the document observers.
    *
    * @param aStyleSheet the StyleSheet that contians the rule
    * @param aStyleRule the changed rule
    */
   virtual void StyleRuleChanged(mozilla::StyleSheet* aStyleSheet,
                                 mozilla::css::Rule* aStyleRule) = 0;
 
   /**
    * A StyleRule has just been added to a style sheet.
    * This method is called automatically when the rule gets
    * added to the sheet. The style sheet passes this
-   * notification to the document. The notification is passed on 
+   * notification to the document. The notification is passed on
    * to all of the document observers.
    *
    * @param aStyleSheet the StyleSheet that has been modified
    * @param aStyleRule the added rule
    */
   virtual void StyleRuleAdded(mozilla::StyleSheet* aStyleSheet,
                               mozilla::css::Rule* aStyleRule) = 0;
 
   /**
    * A StyleRule has just been removed from a style sheet.
    * This method is called automatically when the rule gets
    * removed from the sheet. The style sheet passes this
-   * notification to the document. The notification is passed on 
+   * notification to the document. The notification is passed on
    * to all of the document observers.
    *
    * @param aStyleSheet the StyleSheet that has been modified
    * @param aStyleRule the removed rule
    */
   virtual void StyleRuleRemoved(mozilla::StyleSheet* aStyleSheet,
                                 mozilla::css::Rule* aStyleRule) = 0;
 };
--- a/dom/base/nsIMutationObserver.h
+++ b/dom/base/nsIMutationObserver.h
@@ -305,17 +305,17 @@ public:
    * not supported, however it is possible to get children and flags through
    * nsINode as well as calling IsNodeOfType(eCONTENT) and casting to
    * nsIContent to get attributes.
    *
    * NOTE: This notification is only called on observers registered directly
    * on the node. This is because when the node is destroyed it can not have
    * any ancestors. If you want to know when a descendant node is being
    * removed from the observed node, use the ContentRemoved notification.
-   * 
+   *
    * @param aNode The node being destroyed.
    *
    * @note Callers of this method might not hold a strong reference to
    *       the observer.  The observer is responsible for making sure it
    *       stays alive for the duration of the call as needed.
    */
   virtual void NodeWillBeDestroyed(const nsINode *aNode) = 0;
 
--- a/dom/base/nsIScriptNameSpaceManager.h
+++ b/dom/base/nsIScriptNameSpaceManager.h
@@ -8,13 +8,13 @@
 #define nsIScriptNameSpaceManager_h__
 
 #define JAVASCRIPT_GLOBAL_CONSTRUCTOR_CATEGORY \
   "JavaScript-global-constructor"
 
 #define JAVASCRIPT_GLOBAL_PROPERTY_CATEGORY \
   "JavaScript-global-property"
 
-// a global property that is only accessible to privileged script 
+// a global property that is only accessible to privileged script
 #define JAVASCRIPT_GLOBAL_PRIVILEGED_PROPERTY_CATEGORY \
   "JavaScript-global-privileged-property"
 
 #endif /* nsIScriptNameSpaceManager_h__ */
--- a/dom/base/nsJSUtils.h
+++ b/dom/base/nsJSUtils.h
@@ -3,17 +3,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsJSUtils_h__
 #define nsJSUtils_h__
 
 /**
- * This is not a generated file. It contains common utility functions 
+ * This is not a generated file. It contains common utility functions
  * invoked from the JavaScript code generated from IDL interfaces.
  * The goal of the utility functions is to cut down on the size of
  * the generated code itself.
  */
 
 #include "mozilla/Assertions.h"
 
 #include "GeckoProfiler.h"
--- a/dom/base/nsLineBreaker.cpp
+++ b/dom/base/nsLineBreaker.cpp
@@ -57,17 +57,17 @@ SetupCapitalization(const char16_t* aWor
 
 nsresult
 nsLineBreaker::FlushCurrentWord()
 {
   uint32_t length = mCurrentWord.Length();
   AutoTArray<uint8_t,4000> breakState;
   if (!breakState.AppendElements(length))
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   nsTArray<bool> capitalizationState;
 
   if (!mCurrentWordContainsComplexChar) {
     // For break-strict set everything internal to "break", otherwise
     // to "no break"!
     memset(breakState.Elements(),
            mWordBreak == nsILineBreaker::kWordBreak_BreakAll ?
              gfxTextRun::CompressedGlyph::FLAG_BREAK_TYPE_NORMAL :
@@ -129,17 +129,17 @@ nsLineBreaker::FlushCurrentWord()
           memset(capitalizationState.Elements(), false, length*sizeof(bool));
           SetupCapitalization(mCurrentWord.Elements(), length,
                               capitalizationState.Elements());
         }
         ti->mSink->SetCapitalization(ti->mSinkOffset, ti->mLength,
                                      capitalizationState.Elements() + offset);
       }
     }
-    
+
     offset += ti->mLength;
   }
 
   mCurrentWord.Clear();
   mTextItems.Clear();
   mCurrentWordContainsComplexChar = false;
   mCurrentWordContainsMixedLang = false;
   mCurrentWordLanguage = nullptr;
--- a/dom/base/nsLineBreaker.h
+++ b/dom/base/nsLineBreaker.h
@@ -26,51 +26,51 @@ public:
    * set the break-before state of a character more than once).
    * @param aBreakBefore the break-before states for the characters in the substring.
    * These are enum values from gfxTextRun::CompressedGlyph:
    *    FLAG_BREAK_TYPE_NONE     - no linebreak is allowed here
    *    FLAG_BREAK_TYPE_NORMAL   - a normal (whitespace) linebreak
    *    FLAG_BREAK_TYPE_HYPHEN   - a hyphenation point
    */
   virtual void SetBreaks(uint32_t aStart, uint32_t aLength, uint8_t* aBreakBefore) = 0;
-  
+
   /**
    * Indicates which characters should be capitalized. Only called if
    * BREAK_NEED_CAPITALIZATION was requested.
    */
   virtual void SetCapitalization(uint32_t aStart, uint32_t aLength, bool* aCapitalize) = 0;
 };
 
 /**
  * A line-breaking state machine. You feed text into it via AppendText calls
  * and it computes the possible line breaks. Because break decisions can
  * require a lot of context, the breaks for a piece of text are sometimes not
  * known until later text has been seen (or all text ends). So breaks are
  * returned via a call to SetBreaks on the nsILineBreakSink object passed
  * with each text chunk, which might happen during the corresponding AppendText
  * call, or might happen during a later AppendText call or even a Reset()
  * call.
- * 
+ *
  * The linebreak results MUST NOT depend on how the text is broken up
  * into AppendText calls.
- * 
+ *
  * The current strategy is that we break the overall text into
  * whitespace-delimited "words". Then those words are passed to the nsILineBreaker
  * service for deeper analysis if they contain a "complex" character as described
  * below.
- * 
+ *
  * This class also handles detection of which characters should be capitalized
  * for text-transform:capitalize. This is a good place to handle that because
  * we have all the context we need.
  */
 class nsLineBreaker {
 public:
   nsLineBreaker();
   ~nsLineBreaker();
-  
+
   static inline bool IsSpace(char16_t u) { return NS_IsSpace(u); }
 
   static inline bool IsComplexASCIIChar(char16_t u)
   {
     return !((0x0030 <= u && u <= 0x0039) ||
              (0x0041 <= u && u <= 0x005A) ||
              (0x0061 <= u && u <= 0x007A) ||
              (0x000a == u));
--- a/dom/base/nsMappedAttributeElement.h
+++ b/dom/base/nsMappedAttributeElement.h
@@ -14,34 +14,34 @@
 
 #include "mozilla/Attributes.h"
 #include "mozilla/GenericSpecifiedValues.h"
 #include "nsStyledElement.h"
 
 class nsMappedAttributes;
 struct nsRuleData;
 
-typedef void (*nsMapRuleToAttributesFunc)(const nsMappedAttributes* aAttributes, 
+typedef void (*nsMapRuleToAttributesFunc)(const nsMappedAttributes* aAttributes,
                                           mozilla::GenericSpecifiedValues* aData);
 
 typedef nsStyledElement nsMappedAttributeElementBase;
 
 class nsMappedAttributeElement : public nsMappedAttributeElementBase
 {
 
 protected:
 
   explicit nsMappedAttributeElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
     : nsMappedAttributeElementBase(aNodeInfo)
   {}
 
 public:
   virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const;
 
-  static void MapNoAttributesInto(const nsMappedAttributes* aAttributes, 
+  static void MapNoAttributesInto(const nsMappedAttributes* aAttributes,
                                   mozilla::GenericSpecifiedValues* aGenericData);
 
   NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker) override;
   virtual bool SetAndSwapMappedAttribute(nsIAtom* aName,
                                          nsAttrValue& aValue,
                                          bool* aValueWasSet,
                                          nsresult* aRetval) override;
 
--- a/dom/base/nsNameSpaceManager.h
+++ b/dom/base/nsNameSpaceManager.h
@@ -15,17 +15,17 @@
 #include "nsTArray.h"
 
 #include "mozilla/StaticPtr.h"
 
 class nsAString;
 
 /**
  * The Name Space Manager tracks the association between a NameSpace
- * URI and the int32_t runtime id. Mappings between NameSpaces and 
+ * URI and the int32_t runtime id. Mappings between NameSpaces and
  * NameSpace prefixes are managed by nsINameSpaces.
  *
  * All NameSpace URIs are stored in a global table so that IDs are
  * consistent accross the app. NameSpace IDs are only consistent at runtime
  * ie: they are not guaranteed to be consistent accross app sessions.
  *
  * The nsNameSpaceManager needs to have a live reference for as long as
  * the NameSpace IDs are needed.
@@ -75,10 +75,10 @@ private:
   ~nsNameSpaceManager() {};
 
   nsDataHashtable<nsISupportsHashKey, int32_t> mURIToIDTable;
   nsDataHashtable<nsISupportsHashKey, int32_t> mDisabledURIToIDTable;
   nsTArray<nsCOMPtr<nsIAtom>> mURIArray;
 
   static mozilla::StaticRefPtr<nsNameSpaceManager> sInstance;
 };
- 
+
 #endif // nsNameSpaceManager_h___
--- a/dom/base/nsObjectLoadingContent.cpp
+++ b/dom/base/nsObjectLoadingContent.cpp
@@ -3340,17 +3340,17 @@ static void initializeObjectLoadingConte
     Preferences::AddBoolVarCache(&sBlockURIs, kPrefBlockURIs, false);
     sPrefsInitialized = true;
   }
 }
 
 bool
 nsObjectLoadingContent::ShouldBlockContent()
 {
- 
+
   if (!sPrefsInitialized) {
     initializeObjectLoadingContentPrefs();
   }
 
   if (mContentBlockingEnabled && mURI && IsFlashMIME(mContentType) && sBlockURIs ) {
     return true;
   }
 
--- a/dom/base/nsPlainTextSerializer.cpp
+++ b/dom/base/nsPlainTextSerializer.cpp
@@ -285,40 +285,40 @@ nsPlainTextSerializer::IsIgnorableRubyAn
   }
 
   return
     aTag == nsGkAtoms::rp ||
     aTag == nsGkAtoms::rt ||
     aTag == nsGkAtoms::rtc;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlainTextSerializer::AppendText(nsIContent* aText,
                                   int32_t aStartOffset,
-                                  int32_t aEndOffset, 
+                                  int32_t aEndOffset,
                                   nsAString& aStr)
 {
   if (mIgnoreAboveIndex != (uint32_t)kNotFound) {
     return NS_OK;
   }
-    
+
   NS_ASSERTION(aStartOffset >= 0, "Negative start offset for text fragment!");
   if ( aStartOffset < 0 )
     return NS_ERROR_INVALID_ARG;
 
   NS_ENSURE_ARG(aText);
 
   nsresult rv = NS_OK;
 
   nsIContent* content = aText;
   const nsTextFragment* frag;
   if (!content || !(frag = content->GetText())) {
     return NS_ERROR_FAILURE;
   }
-  
+
   int32_t fragLength = frag->GetLength();
   int32_t endoffset = (aEndOffset == -1) ? fragLength : std::min(aEndOffset, fragLength);
   NS_ASSERTION(aStartOffset <= endoffset, "A start offset is beyond the end of the text fragment!");
 
   int32_t length = endoffset - aStartOffset;
   if (length <= 0) {
     return NS_OK;
   }
@@ -344,31 +344,31 @@ nsPlainTextSerializer::AppendText(nsICon
     if (offset>start) {
       // Pass in the line
       DoAddText(false,
                 Substring(textstr, start, offset-start));
     }
 
     // Pass in a newline
     DoAddText(true, mLineBreak);
-    
+
     start = offset+1;
     offset = textstr.FindCharInSet("\n\r", start);
   }
 
   // Consume the last bit of the string if there's any left
   if (start < length) {
     if (start) {
       DoAddText(false, Substring(textstr, start, length - start));
     }
     else {
       DoAddText(false, textstr);
     }
   }
-  
+
   mOutputString = nullptr;
 
   return rv;
 }
 
 NS_IMETHODIMP
 nsPlainTextSerializer::AppendCDATASection(nsIContent* aCDATASection,
                                           int32_t aStartOffset,
@@ -418,19 +418,19 @@ nsPlainTextSerializer::AppendElementStar
   mElement = nullptr;
   mOutputString = nullptr;
 
   if (id == nsGkAtoms::head) {
     ++mHeadLevel;
   }
 
   return rv;
-} 
- 
-NS_IMETHODIMP 
+}
+
+NS_IMETHODIMP
 nsPlainTextSerializer::AppendElementEnd(Element* aElement,
                                         nsAString& aStr)
 {
   NS_ENSURE_ARG(aElement);
 
   mElement = aElement;
 
   nsresult rv;
@@ -452,17 +452,17 @@ nsPlainTextSerializer::AppendElementEnd(
     NS_ASSERTION(mHeadLevel != 0,
                  "mHeadLevel being decremented below 0");
     --mHeadLevel;
   }
 
   return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlainTextSerializer::Flush(nsAString& aStr)
 {
   mOutputString = &aStr;
   FlushLine();
   mOutputString = nullptr;
   return NS_OK;
 }
 
@@ -539,17 +539,17 @@ nsPlainTextSerializer::DoOpenContainer(n
   if (mLineBreakDue && !isInCiteBlockquote)
     EnsureVerticalSpace(mFloatingLines);
 
   // Check if this tag's content that should not be output
   if ((aTag == nsGkAtoms::noscript &&
        !(mFlags & nsIDocumentEncoder::OutputNoScriptContent)) ||
       ((aTag == nsGkAtoms::iframe || aTag == nsGkAtoms::noframes) &&
        !(mFlags & nsIDocumentEncoder::OutputNoFramesContent))) {
-    // Ignore everything that follows the current tag in 
+    // Ignore everything that follows the current tag in
     // question until a matching end tag is encountered.
     mIgnoreAboveIndex = mTagStackIndex - 1;
     return NS_OK;
   }
 
   if (aTag == nsGkAtoms::body) {
     // Try to figure out here whether we have a
     // preformatted style attribute set by Thunderbird.
@@ -594,17 +594,17 @@ nsPlainTextSerializer::DoOpenContainer(n
       }
       else if (kNotFound != style.Find("pre", true, whitespace)) {
 #ifdef DEBUG_preformatted
         printf("Set mPreFormattedMail based on style pre\n");
 #endif
         mPreFormattedMail = true;
         mWrapColumn = 0;
       }
-    } 
+    }
     else {
       /* See comment at end of function. */
       mInWhitespace = true;
       mPreFormattedMail = false;
     }
 
     return NS_OK;
   }
@@ -922,17 +922,17 @@ nsPlainTextSerializer::DoCloseContainer(
     FlushLine(); // Doing this after decreasing OLStackIndex would be wrong.
     mIndent -= kIndentSizeList;
     NS_ASSERTION(mOLStackIndex, "Wrong OLStack level!");
     mOLStackIndex--;
     if (mULCount + mOLStackIndex == 0) {
       mFloatingLines = 1;
       mLineBreakDue = true;
     }
-  }  
+  }
   else if (aTag == nsGkAtoms::dl) {
     mFloatingLines = 1;
     mLineBreakDue = true;
   }
   else if (aTag == nsGkAtoms::dd) {
     FlushLine();
     mIndent -= kIndentSizeDD;
   }
@@ -986,34 +986,34 @@ nsPlainTextSerializer::DoCloseContainer(
   }
   //////////////////////////////////////////////////////////////
   // The rest of this routine is formatted output stuff,
   // which we should skip if we're not formatted:
   //////////////////////////////////////////////////////////////
 
   // Pop the currentConverted stack
   bool currentNodeIsConverted = IsCurrentNodeConverted();
-  
+
   if (aTag == nsGkAtoms::h1 || aTag == nsGkAtoms::h2 ||
       aTag == nsGkAtoms::h3 || aTag == nsGkAtoms::h4 ||
       aTag == nsGkAtoms::h5 || aTag == nsGkAtoms::h6) {
-    
-    if (mHeaderStrategy) {  /*numbered or indent increasingly*/ 
+
+    if (mHeaderStrategy) {  /*numbered or indent increasingly*/
       mIndent -= kIndentSizeHeaders;
     }
     if (mHeaderStrategy == 1 /*indent increasingly*/ ) {
       for (int32_t i = HeaderLevel(aTag); i > 1; i--) {
            // for h(x), run x-1 times
         mIndent -= kIndentIncrementHeaders;
       }
     }
     EnsureVerticalSpace(1);
   }
   else if (aTag == nsGkAtoms::a && !currentNodeIsConverted && !mURL.IsEmpty()) {
-    nsAutoString temp; 
+    nsAutoString temp;
     temp.AssignLiteral(" <");
     temp += mURL;
     temp.Append(char16_t('>'));
     Write(temp);
     mURL.Truncate();
   }
   else if ((aTag == nsGkAtoms::sup || aTag == nsGkAtoms::sub)
            && mStructs && !currentNodeIsConverted) {
@@ -1167,17 +1167,17 @@ nsPlainTextSerializer::DoAddLeaf(nsIAtom
     }
     else if (NS_SUCCEEDED(GetAttributeValue(nsGkAtoms::title,
                                             imageDescription))
              && !imageDescription.IsEmpty()) {
       imageDescription = NS_LITERAL_STRING(" [") +
                          imageDescription +
                          NS_LITERAL_STRING("] ");
     }
-   
+
     Write(imageDescription);
   }
 
   return NS_OK;
 }
 
 /**
  * Adds as many newline as necessary to get |noOfRows| empty lines
@@ -1229,17 +1229,17 @@ nsPlainTextSerializer::FlushLine()
 }
 
 /**
  * Prints the text to output to our current output device (the string mOutputString).
  * The only logic here is to replace non breaking spaces with a normal space since
  * most (all?) receivers of the result won't understand the nbsp and even be
  * confused by it.
  */
-void 
+void
 nsPlainTextSerializer::Output(nsString& aString)
 {
   if (!aString.IsEmpty()) {
     mStartedOutput = true;
   }
 
   if (!(mFlags & nsIDocumentEncoder::OutputPersistNBSP)) {
     // First, replace all nbsp characters with spaces,
@@ -1261,21 +1261,21 @@ IsSpaceStuffable(const char16_t *s)
 
 /**
  * This function adds a piece of text to the current stored line. If we are
  * wrapping text and the stored line will become too long, a suitable
  * location to wrap will be found and the line that's complete will be
  * output.
  */
 void
-nsPlainTextSerializer::AddToLine(const char16_t * aLineFragment, 
+nsPlainTextSerializer::AddToLine(const char16_t * aLineFragment,
                                  int32_t aLineFragmentLength)
 {
   uint32_t prefixwidth = (mCiteQuoteLevel > 0 ? mCiteQuoteLevel + 1:0)+mIndent;
-  
+
   if (mLineBreakDue)
     EnsureVerticalSpace(mFloatingLines);
 
   int32_t linelength = mCurrentLine.Length();
   if (0 == linelength) {
     if (0 == aLineFragmentLength) {
       // Nothing at all. Are you kidding me?
       return;
@@ -1283,31 +1283,31 @@ nsPlainTextSerializer::AddToLine(const c
 
     if (mFlags & nsIDocumentEncoder::OutputFormatFlowed) {
       if (IsSpaceStuffable(aLineFragment)
          && mCiteQuoteLevel == 0  // We space-stuff quoted lines anyway
          )
         {
           // Space stuffing a la RFC 2646 (format=flowed).
           mCurrentLine.Append(char16_t(' '));
-          
+
           if (MayWrap()) {
             mCurrentLineWidth += GetUnicharWidth(' ');
 #ifdef DEBUG_wrapping
             NS_ASSERTION(GetUnicharStringWidth(mCurrentLine.get(),
                                                mCurrentLine.Length()) ==
                          (int32_t)mCurrentLineWidth,
                          "mCurrentLineWidth and reality out of sync!");
 #endif
           }
         }
     }
     mEmptyLines=-1;
   }
-    
+
   mCurrentLine.Append(aLineFragment, aLineFragmentLength);
   if (MayWrap()) {
     mCurrentLineWidth += GetUnicharStringWidth(aLineFragment,
                                                aLineFragmentLength);
 #ifdef DEBUG_wrapping
     NS_ASSERTION(GetUnicharstringWidth(mCurrentLine.get(),
                                        mCurrentLine.Length()) ==
                  (int32_t)mCurrentLineWidth,
@@ -1328,30 +1328,30 @@ nsPlainTextSerializer::AddToLine(const c
 #endif
     // Yes, wrap!
     // The "+4" is to avoid wrap lines that only would be a couple
     // of letters too long. We give this bonus only if the
     // wrapcolumn is more than 20.
     uint32_t bonuswidth = (mWrapColumn > 20) ? 4 : 0;
 
     // XXX: Should calculate prefixwidth with GetUnicharStringWidth
-    while(mCurrentLineWidth+prefixwidth > mWrapColumn+bonuswidth) {      
+    while(mCurrentLineWidth+prefixwidth > mWrapColumn+bonuswidth) {
       // We go from the end removing one letter at a time until
       // we have a reasonable width
       int32_t goodSpace = mCurrentLine.Length();
       uint32_t width = mCurrentLineWidth;
       while(goodSpace > 0 && (width+prefixwidth > mWrapColumn)) {
         goodSpace--;
         width -= GetUnicharWidth(mCurrentLine[goodSpace]);
       }
 
       goodSpace++;
-      
+
       if (mLineBreaker) {
-        goodSpace = mLineBreaker->Prev(mCurrentLine.get(), 
+        goodSpace = mLineBreaker->Prev(mCurrentLine.get(),
                                     mCurrentLine.Length(), goodSpace);
         if (goodSpace != NS_LINEBREAKER_NEED_MORE_TEXT &&
             nsCRT::IsAsciiSpace(mCurrentLine.CharAt(goodSpace-1))) {
           --goodSpace;    // adjust the position since line breaker returns a position next to space
         }
       }
       // fallback if the line breaker is unavailable or failed
       if (!mLineBreaker) {
@@ -1360,53 +1360,53 @@ nsPlainTextSerializer::AddToLine(const c
         } else {
           goodSpace = std::min(mWrapColumn - prefixwidth, mCurrentLine.Length() - 1);
           while (goodSpace >= 0 &&
                  !nsCRT::IsAsciiSpace(mCurrentLine.CharAt(goodSpace))) {
             goodSpace--;
           }
         }
       }
-      
+
       nsAutoString restOfLine;
       if (goodSpace == NS_LINEBREAKER_NEED_MORE_TEXT) {
         // If we didn't find a good place to break, accept long line and
         // try to find another place to break
         goodSpace=(prefixwidth>mWrapColumn+1)?1:mWrapColumn-prefixwidth+1;
         if (mLineBreaker) {
           if ((uint32_t)goodSpace < mCurrentLine.Length())
-            goodSpace = mLineBreaker->Next(mCurrentLine.get(), 
+            goodSpace = mLineBreaker->Next(mCurrentLine.get(),
                                            mCurrentLine.Length(), goodSpace);
           if (goodSpace == NS_LINEBREAKER_NEED_MORE_TEXT)
             goodSpace = mCurrentLine.Length();
         }
         // fallback if the line breaker is unavailable or failed
         if (!mLineBreaker) {
           goodSpace=(prefixwidth>mWrapColumn)?1:mWrapColumn-prefixwidth;
           while (goodSpace < linelength &&
                  !nsCRT::IsAsciiSpace(mCurrentLine.CharAt(goodSpace))) {
             goodSpace++;
           }
         }
       }
-      
+
       if ((goodSpace < linelength) && (goodSpace > 0)) {
         // Found a place to break
 
         // -1 (trim a char at the break position)
         // only if the line break was a space.
         if (nsCRT::IsAsciiSpace(mCurrentLine.CharAt(goodSpace))) {
           mCurrentLine.Right(restOfLine, linelength-goodSpace-1);
         }
         else {
           mCurrentLine.Right(restOfLine, linelength-goodSpace);
         }
         // if breaker was U+0020, it has to consider for delsp=yes support
         bool breakBySpace = mCurrentLine.CharAt(goodSpace) == ' ';
-        mCurrentLine.Truncate(goodSpace); 
+        mCurrentLine.Truncate(goodSpace);
         EndLine(true, breakBySpace);
         mCurrentLine.Truncate();
         // Space stuff new line?
         if (mFlags & nsIDocumentEncoder::OutputFormatFlowed) {
           if (!restOfLine.IsEmpty() && IsSpaceStuffable(restOfLine.get())
               && mCiteQuoteLevel == 0  // We space-stuff quoted lines anyway
             )
           {
@@ -1415,24 +1415,24 @@ nsPlainTextSerializer::AddToLine(const c
             //XXX doesn't seem to work correctly for ' '
           }
         }
         mCurrentLine.Append(restOfLine);
         mCurrentLineWidth = GetUnicharStringWidth(mCurrentLine.get(),
                                                   mCurrentLine.Length());
         linelength = mCurrentLine.Length();
         mEmptyLines = -1;
-      } 
+      }
       else {
         // Nothing to do. Hopefully we get more data later
         // to use for a place to break line
         break;
       }
     }
-  } 
+  }
   else {
     // No wrapping.
   }
 }
 
 /**
  * Outputs the contents of mCurrentLine, and resets line specific
  * variables. Also adds an indentation and prefix if there is
@@ -1449,29 +1449,29 @@ nsPlainTextSerializer::EndLine(bool aSof
     return;
   }
 
   /* In non-preformatted mode, remove spaces from the end of the line for
    * format=flowed compatibility. Don't do this for these special cases:
    * "-- ", the signature separator (RFC 2646) shouldn't be touched and
    * "- -- ", the OpenPGP dash-escaped signature separator in inline
    * signed messages according to the OpenPGP standard (RFC 2440).
-   */  
+   */
   if (!(mFlags & nsIDocumentEncoder::OutputPreformatted) &&
       !(mFlags & nsIDocumentEncoder::OutputDontRemoveLineEndingSpaces) &&
-     (aSoftlinebreak || 
+     (aSoftlinebreak ||
      !(mCurrentLine.EqualsLiteral("-- ") || mCurrentLine.EqualsLiteral("- -- ")))) {
     // Remove spaces from the end of the line.
     while(currentlinelength > 0 &&
           mCurrentLine[currentlinelength-1] == ' ') {
       --currentlinelength;
     }
     mCurrentLine.SetLength(currentlinelength);
   }
-  
+
   if (aSoftlinebreak &&
      (mFlags & nsIDocumentEncoder::OutputFormatFlowed) &&
      (mIndent == 0)) {
     // Add the soft part of the soft linebreak (RFC 2646 4.1)
     // We only do this when there is no indentation since format=flowed
     // lines and indentation doesn't work well together.
 
     // If breaker character is ASCII space with RFC 3676 support (delsp=yes),
@@ -1479,17 +1479,17 @@ nsPlainTextSerializer::EndLine(bool aSof
     if ((mFlags & nsIDocumentEncoder::OutputFormatDelSp) && aBreakBySpace)
       mCurrentLine.AppendLiteral("  ");
     else
       mCurrentLine.Append(char16_t(' '));
   }
 
   if (aSoftlinebreak) {
     mEmptyLines=0;
-  } 
+  }
   else {
     // Hard break
     if (!mCurrentLine.IsEmpty() || !mInIndentString.IsEmpty()) {
       mEmptyLines=-1;
     }
 
     mEmptyLines++;
   }
@@ -1517,17 +1517,17 @@ nsPlainTextSerializer::EndLine(bool aSof
  * Outputs the calculated and stored indent and text in the indentation. That is
  * quote chars and numbers for numbered lists and such. It will also reset any
  * stored text to put in the indentation after using it.
  */
 void
 nsPlainTextSerializer::OutputQuotesAndIndent(bool stripTrailingSpaces /* = false */)
 {
   nsAutoString stringToOutput;
-  
+
   // Put the mail quote "> " chars in, if appropriate:
   if (mCiteQuoteLevel > 0) {
     nsAutoString quotes;
     for(int i=0; i < mCiteQuoteLevel; i++) {
       quotes.Append(char16_t('>'));
     }
     if (!mCurrentLine.IsEmpty()) {
       /* Better don't output a space here, if the line is empty,
@@ -1535,30 +1535,30 @@ nsPlainTextSerializer::OutputQuotesAndIn
          which it isn't - it's just empty.
          (Flowed lines may be joined with the following one,
          so the empty line may be lost completely.) */
       quotes.Append(char16_t(' '));
     }
     stringToOutput = quotes;
     mAtFirstColumn = false;
   }
-  
+
   // Indent if necessary
   int32_t indentwidth = mIndent - mInIndentString.Length();
   if (indentwidth > 0
       && (!mCurrentLine.IsEmpty() || !mInIndentString.IsEmpty())
       // Don't make empty lines look flowed
       ) {
     nsAutoString spaces;
     for (int i=0; i < indentwidth; ++i)
       spaces.Append(char16_t(' '));
     stringToOutput += spaces;
     mAtFirstColumn = false;
   }
-  
+
   if (!mInIndentString.IsEmpty()) {
     stringToOutput += mInIndentString;
     mAtFirstColumn = false;
     mInIndentString.Truncate();
   }
 
   if (stripTrailingSpaces) {
     int32_t lineLength = stringToOutput.Length();
@@ -1567,17 +1567,17 @@ nsPlainTextSerializer::OutputQuotesAndIn
       --lineLength;
     }
     stringToOutput.SetLength(lineLength);
   }
 
   if (!stringToOutput.IsEmpty()) {
     Output(stringToOutput);
   }
-    
+
 }
 
 /**
  * Write a string. This is the highlevel function to use to get text output.
  * By using AddToLine, Output, EndLine and other functions it handles quotation,
  * line wrapping, indentation, whitespace compression and other things.
  */
 void
@@ -1589,17 +1589,17 @@ nsPlainTextSerializer::Write(const nsASt
 
 #ifdef DEBUG_wrapping
   printf("Write(%s): wrap col = %d\n",
          NS_ConvertUTF16toUTF8(str).get(), mWrapColumn);
 #endif
 
   int32_t bol = 0;
   int32_t newline;
-  
+
   int32_t totLen = str.Length();
 
   // If the string is empty, do nothing:
   if (totLen <= 0) return;
 
   // For Flowed text change nbsp-ses to spaces at end of lines to allow them
   // to be cut off along with usual spaces if required. (bug #125928)
   if (mFlags & nsIDocumentEncoder::OutputFormatFlowed) {
@@ -1636,17 +1636,17 @@ nsPlainTextSerializer::Write(const nsASt
       bool atFirstColumn = mAtFirstColumn;
       bool outputLineBreak = false;
       bool spacesOnly = true;
 
       // Find one of '\n' or '\r' using iterators since nsAString
       // doesn't have the old FindCharInSet function.
       nsAString::const_iterator iter;           str.BeginReading(iter);
       nsAString::const_iterator done_searching; str.EndReading(done_searching);
-      iter.advance(bol); 
+      iter.advance(bol);
       int32_t new_newline = bol;
       newline = kNotFound;
       while(iter != done_searching) {
         if ('\n' == *iter || '\r' == *iter) {
           newline = new_newline;
           break;
         }
         if (' ' != *iter)
@@ -1660,25 +1660,25 @@ nsPlainTextSerializer::Write(const nsASt
       if (newline == kNotFound) {
         // No new lines.
         stringpart.Assign(Substring(str, bol, totLen - bol));
         if (!stringpart.IsEmpty()) {
           char16_t lastchar = stringpart[stringpart.Length()-1];
           if ((lastchar == '\t') || (lastchar == ' ') ||
              (lastchar == '\r') ||(lastchar == '\n')) {
             mInWhitespace = true;
-          } 
+          }
           else {
             mInWhitespace = false;
           }
         }
         mEmptyLines=-1;
         atFirstColumn = mAtFirstColumn && (totLen-bol)==0;
         bol = totLen;
-      } 
+      }
       else {
         // There is a newline
         stringpart.Assign(Substring(str, bol, newline-bol));
         mInWhitespace = true;
         outputLineBreak = true;
         mEmptyLines=0;
         atFirstColumn = true;
         bol = newline+1;
@@ -1724,17 +1724,17 @@ nsPlainTextSerializer::Write(const nsASt
     return;
   }
 
   // Intelligent handling of text
   // If needed, strip out all "end of lines"
   // and multiple whitespace between words
   int32_t nextpos;
   const char16_t * offsetIntoBuffer = nullptr;
-  
+
   while (bol < totLen) {    // Loop over lines
     // Find a place where we may have to do whitespace compression
     nextpos = str.FindCharInSet(" \t\n\r", bol);
 #ifdef DEBUG_wrapping
     nsAutoString remaining;
     str.Right(remaining, totLen - bol);
     foo = ToNewCString(remaining);
     //    printf("Next line: bol = %d, newlinepos = %d, totLen = %d, string = '%s'\n",
@@ -1743,17 +1743,17 @@ nsPlainTextSerializer::Write(const nsASt
 #endif
 
     if (nextpos == kNotFound) {
       // The rest of the string
       offsetIntoBuffer = str.get() + bol;
       AddToLine(offsetIntoBuffer, totLen-bol);
       bol=totLen;
       mInWhitespace=false;
-    } 
+    }
     else {
       // There's still whitespace left in the string
       if (nextpos != 0 && (nextpos + 1) < totLen) {
         offsetIntoBuffer = str.get() + nextpos;
         // skip '\n' if it is between CJ chars
         if (offsetIntoBuffer[0] == '\n' && IS_CJ_CHAR(offsetIntoBuffer[-1]) && IS_CJ_CHAR(offsetIntoBuffer[1])) {
           offsetIntoBuffer = str.get() + bol;
           AddToLine(offsetIntoBuffer, nextpos-bol);
@@ -1772,26 +1772,26 @@ nsPlainTextSerializer::Write(const nsASt
       if (nextpos == bol) {
         // Note that we are in whitespace.
         mInWhitespace = true;
         offsetIntoBuffer = str.get() + nextpos;
         AddToLine(offsetIntoBuffer, 1);
         bol++;
         continue;
       }
-      
+
       mInWhitespace = true;
-      
+
       offsetIntoBuffer = str.get() + bol;
       if (mPreFormattedMail || (mFlags & nsIDocumentEncoder::OutputPreformatted)) {
         // Preserve the real whitespace character
         nextpos++;
         AddToLine(offsetIntoBuffer, nextpos-bol);
         bol = nextpos;
-      } 
+      }
       else {
         // Replace the whitespace with a space
         AddToLine(offsetIntoBuffer, nextpos-bol);
         AddToLine(kSpace.get(),1);
         bol = nextpos + 1; // Let's eat the whitespace
       }
     }
   } // Continue looping over the string
@@ -1814,17 +1814,17 @@ nsPlainTextSerializer::GetAttributeValue
 
   return NS_ERROR_NOT_AVAILABLE;
 }
 
 /**
  * Returns true, if the element was inserted by Moz' TXT->HTML converter.
  * In this case, we should ignore it.
  */
-bool 
+bool
 nsPlainTextSerializer::IsCurrentNodeConverted()
 {
   nsAutoString value;
   nsresult rv = GetAttributeValue(nsGkAtoms::_class, value);
   return (NS_SUCCEEDED(rv) &&
           (value.EqualsIgnoreCase("moz-txt", 7) ||
            value.EqualsIgnoreCase("\"moz-txt", 8)));
 }
--- a/dom/base/nsPlainTextSerializer.h
+++ b/dom/base/nsPlainTextSerializer.h
@@ -59,17 +59,17 @@ public:
                                          int32_t aEndOffset,
                                          nsAString& aStr) override  { return NS_OK; }
   NS_IMETHOD AppendComment(nsIContent* aComment, int32_t aStartOffset,
                            int32_t aEndOffset, nsAString& aStr) override  { return NS_OK; }
   NS_IMETHOD AppendDoctype(nsIContent *aDoctype,
                            nsAString& aStr) override  { return NS_OK; }
   NS_IMETHOD AppendElementStart(mozilla::dom::Element* aElement,
                                 mozilla::dom::Element* aOriginalElement,
-                                nsAString& aStr) override; 
+                                nsAString& aStr) override;
   NS_IMETHOD AppendElementEnd(mozilla::dom::Element* aElement,
                               nsAString& aStr) override;
   NS_IMETHOD Flush(nsAString& aStr) override;
 
   NS_IMETHOD AppendDocumentStart(nsIDocument *aDocument,
                                  nsAString& aStr) override;
 
   NS_IMETHOD ScanElementForPreformat(mozilla::dom::Element* aElement) override;
@@ -155,18 +155,18 @@ private:
   int32_t          mFlags;
   int32_t          mFloatingLines; // To store the number of lazy line breaks
 
   // The wrap column is how many standard sized chars (western languages)
   // should be allowed on a line. There could be less chars if the chars
   // are wider than latin chars of more if the chars are more narrow.
   uint32_t         mWrapColumn;
 
-  // The width of the line as it will appear on the screen (approx.) 
-  uint32_t         mCurrentLineWidth; 
+  // The width of the line as it will appear on the screen (approx.)
+  uint32_t         mCurrentLineWidth;
 
   // Treat quoted text as though it's preformatted -- don't wrap it.
   // Having it on a pref is a temporary measure, See bug 69638.
   int32_t          mSpanLevel;
 
 
   int32_t          mEmptyLines; // Will be the number of empty lines before
                                 // the current. 0 if we are starting a new
@@ -198,17 +198,17 @@ private:
                                           the same depth and in the same
                                           section.
                                           mHeaderCounter[1] for <h1> etc. */
 
   RefPtr<mozilla::dom::Element> mElement;
 
   // For handling table rows
   AutoTArray<bool, 8> mHasWrittenCellsForRow;
-  
+
   // Values gotten in OpenContainer that is (also) needed in CloseContainer
   AutoTArray<bool, 8> mIsInCiteBlockquote;
 
   // The output data
   nsAString*            mOutputString;
 
   // The tag stack: the stack of tags we're operating on, so we can nest.
   // The stack only ever points to static atoms, so they don't need to be
--- a/dom/base/nsPropertyTable.cpp
+++ b/dom/base/nsPropertyTable.cpp
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  *
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM 
+ * This Original Code has been modified by IBM Corporation. Modifications made by IBM
  * described herein are Copyright (c) International Business Machines Corporation, 2000.
  * Modifications to Mozilla code or documentation identified per MPL Section 3.3
  *
  * Date             Modified by     Description of modification
  * 04/20/2000       IBM Corp.      OS/2 VisualAge build.
  */
 
 /**
@@ -57,17 +57,17 @@ public:
   size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf);
 
   nsCOMPtr<nsIAtom>  mName;           // property name
   PLDHashTable       mObjectValueMap; // map of object/value pairs
   NSPropertyDtorFunc mDtorFunc;       // property specific value dtor function
   void*              mDtorData;       // pointer to pass to dtor
   bool               mTransfer;       // whether to transfer in
                                       // TransferOrDeleteAllPropertiesFor
-  
+
   PropertyList*      mNext;
 };
 
 void
 nsPropertyTable::DeleteAllProperties()
 {
   while (mPropertyList) {
     PropertyList* tmp = mPropertyList;
--- a/dom/base/nsPropertyTable.h
+++ b/dom/base/nsPropertyTable.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  *
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM 
+ * This Original Code has been modified by IBM Corporation. Modifications made by IBM
  * described herein are Copyright (c) International Business Machines Corporation, 2000.
  * Modifications to Mozilla code or documentation identified per MPL Section 3.3
  *
  * Date             Modified by     Description of modification
  * 04/20/2000       IBM Corp.      OS/2 VisualAge build.
  */
 
 /**
@@ -156,17 +156,17 @@ class nsPropertyTable
   void EnumerateAll(NSPropertyFunc aCallback, void *aData);
 
   /**
    * Deletes all of the properties for all objects in the property
    * table, calling the destructor function for each property.
    */
   void DeleteAllProperties();
 
-  nsPropertyTable() : mPropertyList(nullptr) {}  
+  nsPropertyTable() : mPropertyList(nullptr) {}
   ~nsPropertyTable() {
     DeleteAllProperties();
   }
 
   /**
    * Function useable as destructor function for property data that is
    * XPCOM objects. The function will call NS_IF_RELASE on the value
    * to destroy it.
--- a/dom/base/nsRange.cpp
+++ b/dom/base/nsRange.cpp
@@ -79,39 +79,39 @@ static void InvalidateAllFrames(nsINode*
   }
 }
 
 // Utility routine to detect if a content node is completely contained in a range
 // If outNodeBefore is returned true, then the node starts before the range does.
 // If outNodeAfter is returned true, then the node ends after the range does.
 // Note that both of the above might be true.
 // If neither are true, the node is contained inside of the range.
-// XXX - callers responsibility to ensure node in same doc as range! 
+// XXX - callers responsibility to ensure node in same doc as range!
 
 // static
 nsresult
 nsRange::CompareNodeToRange(nsINode* aNode, nsRange* aRange,
                             bool *outNodeBefore, bool *outNodeAfter)
 {
   NS_ENSURE_STATE(aNode);
   // create a pair of dom points that expresses location of node:
   //     NODE(start), NODE(end)
   // Let incoming range be:
   //    {RANGE(start), RANGE(end)}
   // if (RANGE(start) <= NODE(start))  and (RANGE(end) => NODE(end))
   // then the Node is contained (completely) by the Range.
-  
-  if (!aRange || !aRange->IsPositioned()) 
-    return NS_ERROR_UNEXPECTED; 
-  
+
+  if (!aRange || !aRange->IsPositioned())
+    return NS_ERROR_UNEXPECTED;
+
   // gather up the dom point info
   int32_t nodeStart, nodeEnd;
   nsINode* parent = aNode->GetParentNode();
   if (!parent) {
-    // can't make a parent/offset pair to represent start or 
+    // can't make a parent/offset pair to represent start or
     // end of the root node, because it has no parent.
     // so instead represent it by (node,0) and (node,numChildren)
     parent = aNode;
     nodeStart = 0;
     nodeEnd = aNode->GetChildCount();
   }
   else {
     nodeStart = parent->IndexOf(aNode);
@@ -232,17 +232,17 @@ nsRange::IsNodeSelected(nsINode* aNode, 
   }
   return false;
 }
 
 /******************************************************
  * constructor/destructor
  ******************************************************/
 
-nsRange::~nsRange() 
+nsRange::~nsRange()
 {
   NS_ASSERTION(!IsInSelection(), "deleting nsRange that is in use");
 
   // we want the side effects (releases and list removals)
   DoSetRange(nullptr, 0, nullptr, 0, nullptr);
 }
 
 nsRange::nsRange(nsINode* aNode)
@@ -844,17 +844,17 @@ nsRange::IntersectsNode(nsINode& aNode, 
   if (!mIsPositioned) {
     aRv.Throw(NS_ERROR_NOT_INITIALIZED);
     return false;
   }
 
   // Step 3.
   nsINode* parent = aNode.GetParentNode();
   if (!parent) {
-    // Steps 2 and 4. 
+    // Steps 2 and 4.
     // |parent| is null, so |node|'s root is |node| itself.
     return GetRoot() == &aNode;
   }
 
   // Step 5.
   int32_t nodeIndex = parent->IndexOf(&aNode);
 
   // Steps 6-7.
@@ -873,19 +873,19 @@ nsRange::IntersectsNode(nsINode& aNode, 
   }
   return result;
 }
 
 /******************************************************
  * Private helper routines
  ******************************************************/
 
-// It's important that all setting of the range start/end points 
+// It's important that all setting of the range start/end points
 // go through this function, which will do all the right voodoo
-// for content notification of range ownership.  
+// for content notification of range ownership.
 // Calling DoSetRange with either parent argument null will collapse
 // the range to have both endpoints point to the other node
 void
 nsRange::DoSetRange(nsINode* aStartN, int32_t aStartOffset,
                     nsINode* aEndN, int32_t aEndOffset,
                     nsINode* aRoot, bool aNotInsertedYet)
 {
   NS_PRECONDITION((aStartN && aEndN && aRoot) ||
@@ -2915,17 +2915,17 @@ nsRange::ToString(nsAString& aReturn)
   */
 
   nsCOMPtr<nsIContentIterator> iter = NS_NewContentIterator();
   nsresult rv = iter->Init(this);
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsString tempString;
 
-  // loop through the content iterator, which returns nodes in the range in 
+  // loop through the content iterator, which returns nodes in the range in
   // close tag order, and grab the text from any text node
   while (!iter->IsDone())
   {
     nsINode *n = iter->GetCurrentNode();
 
 #ifdef DEBUG_range
     // If debug, dump it:
     n->List(stdout);
@@ -3186,17 +3186,17 @@ nsRange::GetBoundingClientRect(bool aCla
   if (!mStartParent) {
     return rect.forget();
   }
 
   nsLayoutUtils::RectAccumulator accumulator;
   CollectClientRectsAndText(&accumulator, nullptr, this, mStartParent,
     mStartOffset, mEndParent, mEndOffset, aClampToEdge, aFlushLayout);
 
-  nsRect r = accumulator.mResultRect.IsEmpty() ? accumulator.mFirstRect : 
+  nsRect r = accumulator.mResultRect.IsEmpty() ? accumulator.mFirstRect :
     accumulator.mResultRect;
   rect->SetLayoutRect(r);
   return rect.forget();
 }
 
 NS_IMETHODIMP
 nsRange::GetClientRects(nsIDOMClientRectList** aResult)
 {
--- a/dom/base/nsRange.h
+++ b/dom/base/nsRange.h
@@ -87,27 +87,27 @@ public:
   {
     return mStartOffset;
   }
 
   int32_t EndOffset() const
   {
     return mEndOffset;
   }
-  
+
   bool IsPositioned() const
   {
     return mIsPositioned;
   }
 
   void SetMaySpanAnonymousSubtrees(bool aMaySpanAnonymousSubtrees)
   {
     mMaySpanAnonymousSubtrees = aMaySpanAnonymousSubtrees;
   }
-  
+
   /**
    * Return true iff this range is part of a Selection object
    * and isn't detached.
    */
   bool IsInSelection() const
   {
     return !!mSelection;
   }
--- a/dom/base/nsReferencedElement.cpp
+++ b/dom/base/nsReferencedElement.cpp
@@ -159,17 +159,17 @@ nsReferencedElement::HaveNewDocument(nsI
   if (aWatch) {
     mWatchDocument = aDocument;
     if (mWatchDocument) {
       mElement = mWatchDocument->AddIDTargetObserver(mWatchID, Observe, this,
                                                      mReferencingImage);
     }
     return;
   }
-  
+
   if (!aDocument) {
     return;
   }
 
   Element *e = mReferencingImage ? aDocument->LookupImageElement(aRef) :
                                    aDocument->GetElementById(aRef);
   if (e) {
     mElement = e;
--- a/dom/base/nsReferencedElement.h
+++ b/dom/base/nsReferencedElement.h
@@ -12,17 +12,17 @@
 #include "nsIAtom.h"
 #include "nsIDocument.h"
 #include "nsThreadUtils.h"
 
 class nsIURI;
 
 /**
  * Class to track what element is referenced by a given ID.
- * 
+ *
  * To use it, call Reset() to set it up to watch a given URI. Call get()
  * anytime to determine the referenced element (which may be null if
  * the element isn't found). When the element changes, ElementChanged
  * will be called, so subclass this class if you want to receive that
  * notification. ElementChanged runs at safe-for-script time, i.e. outside
  * of the content update. Call Unlink() if you want to stop watching
  * for changes (get() will then return null).
  *
@@ -77,17 +77,17 @@ public:
 
   /**
    * Clears the reference. ElementChanged is not triggered. get() will return
    * null.
    */
   void Unlink();
 
   void Traverse(nsCycleCollectionTraversalCallback* aCB);
-  
+
 protected:
   /**
    * Override this to be notified of element changes. Don't forget
    * to call this superclass method to change mElement. This is called
    * at script-runnable time.
    */
   virtual void ElementChanged(Element* aFrom, Element* aTo) {
     mElement = aTo;
@@ -100,17 +100,17 @@ protected:
   virtual bool IsPersistent() { return false; }
 
   /**
    * Set ourselves up with our new document.  Note that aDocument might be
    * null.  Either aWatch must be false or aRef must be empty.
    */
   void HaveNewDocument(nsIDocument* aDocument, bool aWatch,
                        const nsString& aRef);
-  
+
 private:
   static bool Observe(Element* aOldElement,
                         Element* aNewElement, void* aData);
 
   class Notification : public nsISupports {
   public:
     virtual void SetTo(Element* aTo) = 0;
     virtual void Clear() { mTarget = nullptr; }
@@ -176,17 +176,17 @@ private:
   private:
     virtual ~DocumentLoadNotification() {}
 
     virtual void SetTo(Element* aTo) override { }
 
     nsString mRef;
   };
   friend class DocumentLoadNotification;
-  
+
   nsCOMPtr<nsIAtom>      mWatchID;
   nsCOMPtr<nsIDocument>  mWatchDocument;
   RefPtr<Element> mElement;
   RefPtr<Notification> mPendingNotification;
   bool                   mReferencingImage;
 };
 
 inline void
--- a/dom/base/nsScriptNameSpaceManager.cpp
+++ b/dom/base/nsScriptNameSpaceManager.cpp
@@ -172,17 +172,17 @@ nsScriptNameSpaceManager::Init()
   rv = FillHash(cm, JAVASCRIPT_GLOBAL_PROPERTY_CATEGORY);
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = FillHash(cm, JAVASCRIPT_GLOBAL_PRIVILEGED_PROPERTY_CATEGORY);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Initial filling of the has table has been done.
   // Now, listen for changes.
-  nsCOMPtr<nsIObserverService> serv = 
+  nsCOMPtr<nsIObserverService> serv =
     mozilla::services::GetObserverService();
 
   if (serv) {
     serv->AddObserver(this, NS_XPCOM_CATEGORY_ENTRY_ADDED_OBSERVER_ID, true);
     serv->AddObserver(this, NS_XPCOM_CATEGORY_ENTRY_REMOVED_OBSERVER_ID, true);
   }
 
   return NS_OK;
--- a/dom/base/nsStyleLinkElement.cpp
+++ b/dom/base/nsStyleLinkElement.cpp
@@ -57,41 +57,41 @@ nsStyleLinkElement::Unlink()
 
 void
 nsStyleLinkElement::Traverse(nsCycleCollectionTraversalCallback &cb)
 {
   nsStyleLinkElement* tmp = this;
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStyleSheet);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStyleLinkElement::SetStyleSheet(StyleSheet* aStyleSheet)
 {
   if (mStyleSheet) {
     mStyleSheet->SetOwningNode(nullptr);
   }
 
   mStyleSheet = aStyleSheet;
   if (mStyleSheet) {
     nsCOMPtr<nsINode> node = do_QueryObject(this);
     if (node) {
       mStyleSheet->SetOwningNode(node);
     }
   }
-    
+
   return NS_OK;
 }
 
 NS_IMETHODIMP_(StyleSheet*)
 nsStyleLinkElement::GetStyleSheet()
 {
   return mStyleSheet;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStyleLinkElement::InitStyleLinkElement(bool aDontLoadStyle)
 {
   mDontLoadStyle = aDontLoadStyle;
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
--- a/dom/base/nsStyleLinkElement.h
+++ b/dom/base/nsStyleLinkElement.h
@@ -36,17 +36,17 @@ class nsStyleLinkElement : public nsISty
 public:
   nsStyleLinkElement();
   virtual ~nsStyleLinkElement();
 
   NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override = 0;
 
   mozilla::StyleSheet* GetSheet() const { return mStyleSheet; }
 
-  // nsIStyleSheetLinkingElement  
+  // nsIStyleSheetLinkingElement
   NS_IMETHOD SetStyleSheet(mozilla::StyleSheet* aStyleSheet) override;
   NS_IMETHOD_(mozilla::StyleSheet*) GetStyleSheet() override;
   NS_IMETHOD InitStyleLinkElement(bool aDontLoadStyle) override;
   NS_IMETHOD UpdateStyleSheet(nsICSSLoaderObserver* aObserver,
                               bool* aWillNotify,
                               bool* aIsAlternate,
                               bool aForceReload) override;
   NS_IMETHOD SetEnableUpdates(bool aEnableUpdates) override;
--- a/dom/base/nsStyledElement.cpp
+++ b/dom/base/nsStyledElement.cpp
@@ -145,17 +145,17 @@ nsStyledElement::ReparseStyleAttribute(b
     ParseStyleAttribute(stringValue, attrValue, aForceInDataDoc);
     // Don't bother going through SetInlineStyleDeclaration; we don't
     // want to fire off mutation events or document notifications anyway
     bool oldValueSet;
     nsresult rv = mAttrsAndChildren.SetAndSwapAttr(nsGkAtoms::style, attrValue,
                                                    &oldValueSet);
     NS_ENSURE_SUCCESS(rv, rv);
   }
-  
+
   return NS_OK;
 }
 
 void
 nsStyledElement::NodeInfoChanged(nsIDocument* aOldDoc)
 {
   nsStyledElementBase::NodeInfoChanged(aOldDoc);
   if (OwnerDoc()->GetStyleBackendType() != aOldDoc->GetStyleBackendType()) {
--- a/dom/base/nsSyncLoadService.cpp
+++ b/dom/base/nsSyncLoadService.cpp
@@ -171,18 +171,18 @@ nsSyncLoader::LoadDocument(nsIChannel* a
     // Create document
     nsCOMPtr<nsIDocument> document;
     rv = NS_NewXMLDocument(getter_AddRefs(document));
     NS_ENSURE_SUCCESS(rv, rv);
 
     // Start the document load. Do this before we attach the load listener
     // since we reset the document which drops all observers.
     nsCOMPtr<nsIStreamListener> listener;
-    rv = document->StartDocumentLoad(kLoadAsData, mChannel, 
-                                     loadGroup, nullptr, 
+    rv = document->StartDocumentLoad(kLoadAsData, mChannel,
+                                     loadGroup, nullptr,
                                      getter_AddRefs(listener),
                                      true);
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (aForceToXML) {
         nsCOMPtr<nsIStreamListener> forceListener =
             new nsForceXMLListener(listener);
         listener.swap(forceListener);
@@ -222,17 +222,17 @@ nsSyncLoader::PushAsyncStream(nsIStreamL
     // Start reading from the channel
     nsresult rv = mChannel->AsyncOpen2(this);
 
     if (NS_SUCCEEDED(rv)) {
         // process events until we're finished.
         mLoading = true;
         nsIThread *thread = NS_GetCurrentThread();
         while (mLoading && NS_SUCCEEDED(rv)) {
-            bool processedEvent; 
+            bool processedEvent;
             rv = thread->ProcessNextEvent(true, &processedEvent);
             if (NS_SUCCEEDED(rv) && !processedEvent)
                 rv = NS_ERROR_UNEXPECTED;
         }
     }
 
     mListener = nullptr;
 
@@ -249,17 +249,17 @@ nsSyncLoader::PushSyncStream(nsIStreamLi
 {
     nsCOMPtr<nsIInputStream> in;
     nsresult rv = mChannel->Open2(getter_AddRefs(in));
     NS_ENSURE_SUCCESS(rv, rv);
 
     mLoading = true;
     rv = nsSyncLoadService::PushSyncStreamToListener(in, aListener, mChannel);
     mLoading = false;
-    
+
     return rv;
 }
 
 NS_IMETHODIMP
 nsSyncLoader::OnStartRequest(nsIRequest *aRequest, nsISupports *aContext)
 {
     return mListener->OnStartRequest(aRequest, aContext);
 }
--- a/dom/base/nsTextFragment.cpp
+++ b/dom/base/nsTextFragment.cpp
@@ -198,17 +198,17 @@ FirstNon8Bit(const char16_t *str, const 
 bool
 nsTextFragment::SetTo(const char16_t* aBuffer, int32_t aLength, bool aUpdateBidi)
 {
   ReleaseText();
 
   if (aLength == 0) {
     return true;
   }
-  
+
   char16_t firstChar = *aBuffer;
   if (aLength == 1 && firstChar < 256) {
     m1b = sSingleCharSharedString + firstChar;
     mState.mInHeap = false;
     mState.mIs2b = false;
     mState.mLength = 1;
 
     return true;
@@ -245,17 +245,17 @@ nsTextFragment::SetTo(const char16_t* aB
       if (firstChar != ' ') {
         ++m1b;
       }
 
       mState.mInHeap = false;
       mState.mIs2b = false;
       mState.mLength = aLength;
 
-      return true;        
+      return true;
     }
   }
 
   // See if we need to store the data in ucs2 or not
   int32_t first16bit = FirstNon8Bit(ucp, uend);
 
   if (first16bit != -1) { // aBuffer contains no non-8bit character
     // Use ucs2 storage because we have to
--- a/dom/base/nsTextFragment.h
+++ b/dom/base/nsTextFragment.h
@@ -76,26 +76,26 @@ public:
     return mState.mIsBidi;
   }
 
   /**
    * Get a pointer to constant char16_t data.
    */
   const char16_t *Get2b() const
   {
-    NS_ASSERTION(Is2b(), "not 2b text"); 
+    NS_ASSERTION(Is2b(), "not 2b text");
     return m2b;
   }
 
   /**
    * Get a pointer to constant char data.
    */
   const char *Get1b() const
   {
-    NS_ASSERTION(!Is2b(), "not 1b text"); 
+    NS_ASSERTION(!Is2b(), "not 1b text");
     return (const char *)m1b;
   }
 
   /**
    * Get the length of the fragment. The length is the number of logical
    * characters, not the number of bytes to store the characters.
    */
   uint32_t GetLength() const
@@ -221,17 +221,17 @@ public:
 private:
   void ReleaseText();
 
   /**
    * Scan the contents of the fragment and turn on mState.mIsBidi if it
    * includes any Bidi characters.
    */
   void UpdateBidiFlag(const char16_t* aBuffer, uint32_t aLength);
- 
+
   union {
     char16_t *m2b;
     const char *m1b; // This is const since it can point to shared data
   };
 
   union {
     uint32_t mAllBits;
     FragmentBits mState;
--- a/dom/base/nsTextNode.cpp
+++ b/dom/base/nsTextNode.cpp
@@ -28,17 +28,17 @@ using namespace mozilla::dom;
 /**
  * class used to implement attr() generated content
  */
 class nsAttributeTextNode final : public nsTextNode,
                                   public nsStubMutationObserver
 {
 public:
   NS_DECL_ISUPPORTS_INHERITED
-  
+
   nsAttributeTextNode(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo,
                       int32_t aNameSpaceID,
                       nsIAtom* aAttrName) :
     nsTextNode(aNodeInfo),
     mGrandparent(nullptr),
     mNameSpaceID(aNameSpaceID),
     mAttrName(aAttrName)
   {
@@ -201,17 +201,17 @@ nsTextNode::DumpContent(FILE* out, int32
 nsresult
 NS_NewAttributeContent(nsNodeInfoManager *aNodeInfoManager,
                        int32_t aNameSpaceID, nsIAtom* aAttrName,
                        nsIContent** aResult)
 {
   NS_PRECONDITION(aNodeInfoManager, "Missing nodeInfoManager");
   NS_PRECONDITION(aAttrName, "Must have an attr name");
   NS_PRECONDITION(aNameSpaceID != kNameSpaceID_Unknown, "Must know namespace");
-  
+
   *aResult = nullptr;
 
   already_AddRefed<mozilla::dom::NodeInfo> ni = aNodeInfoManager->GetTextNodeInfo();
 
   nsAttributeTextNode* textNode = new nsAttributeTextNode(ni,
                                                           aNameSpaceID,
                                                           aAttrName);
   NS_ADDREF(*aResult = textNode);
@@ -287,11 +287,11 @@ nsAttributeTextNode::NodeWillBeDestroyed
 
 void
 nsAttributeTextNode::UpdateText(bool aNotify)
 {
   if (mGrandparent) {
     nsAutoString attrValue;
     mGrandparent->GetAttr(mNameSpaceID, mAttrName, attrValue);
     SetText(attrValue, aNotify);
-  }  
+  }
 }
 
--- a/dom/base/nsTraversal.h
+++ b/dom/base/nsTraversal.h
@@ -1,14 +1,14 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
  * Implementation of DOM Traversal's nsIDOMTreeWalker
  */
 
 #ifndef nsTraversal_h___
 #define nsTraversal_h___
 
 #include "nsCOMPtr.h"
--- a/dom/base/nsTreeSanitizer.cpp
+++ b/dom/base/nsTreeSanitizer.cpp
@@ -1287,17 +1287,17 @@ nsTreeSanitizer::SanitizeURL(mozilla::do
   }
 
   nsIScriptSecurityManager* secMan = nsContentUtils::GetSecurityManager();
   uint32_t flags = nsIScriptSecurityManager::DISALLOW_INHERIT_PRINCIPAL;
 
   nsCOMPtr<nsIURI> baseURI = aElement->GetBaseURI();
   nsCOMPtr<nsIURI> attrURI;
   nsresult rv = NS_NewURI(getter_AddRefs(attrURI), v, nullptr, baseURI);
-  if (NS_SUCCEEDED(rv)) { 
+  if (NS_SUCCEEDED(rv)) {
     if (mCidEmbedsOnly &&
         kNameSpaceID_None == aNamespace) {
       if (nsGkAtoms::src == aLocalName || nsGkAtoms::background == aLocalName) {
         // comm-central uses a hack that makes nsIURIs created with cid: specs
         // actually have an about:blank spec. Therefore, nsIURI facilities are
         // useless for cid: when comm-central code is participating.
         if (!(v.Length() > 4 &&
               (v[0] == 'c' || v[0] == 'C') &&
--- a/dom/base/nsXHTMLContentSerializer.h
+++ b/dom/base/nsXHTMLContentSerializer.h
@@ -124,17 +124,17 @@ protected:
    * what so ever.
    */
   int32_t mDisableEntityEncoding;
 
   // This is to ensure that we only do meta tag fixups when dealing with
   // whole documents.
   bool          mRewriteEncodingDeclaration;
 
-  // To keep track of First LI child of OL in selected range 
+  // To keep track of First LI child of OL in selected range
   bool          mIsFirstChildOfOL;
 
   // To keep track of startvalue of OL and first list item for nested lists
   struct olState {
     olState(int32_t aStart, bool aIsFirst)
       : startVal(aStart),
         isFirstListItem(aIsFirst)
     {
--- a/dom/base/nsXMLContentSerializer.h
+++ b/dom/base/nsXMLContentSerializer.h
@@ -52,17 +52,17 @@ class nsXMLContentSerializer : public ns
 
   NS_IMETHOD AppendProcessingInstruction(nsIContent* aPI,
                                          int32_t aStartOffset,
                                          int32_t aEndOffset,
                                          nsAString& aStr) override;
 
   NS_IMETHOD AppendComment(nsIContent* aComment, int32_t aStartOffset,
                            int32_t aEndOffset, nsAString& aStr) override;
-  
+
   NS_IMETHOD AppendDoctype(nsIContent *aDoctype,
                            nsAString& aStr) override;
 
   NS_IMETHOD AppendElementStart(mozilla::dom::Element* aElement,
                                 mozilla::dom::Element* aOriginalElement,
                                 nsAString& aStr) override;
 
   NS_IMETHOD AppendElementEnd(mozilla::dom::Element* aElement,
@@ -232,17 +232,17 @@ class nsXMLContentSerializer : public ns
 
   bool IsJavaScript(nsIContent * aContent,
                       nsIAtom* aAttrNameAtom,
                       int32_t aAttrNamespaceID,
                       const nsAString& aValueString);
 
   /**
    * This method can be redefined to check if the element can be serialized.
-   * It is called when the serialization of the start tag is asked 
+   * It is called when the serialization of the start tag is asked
    * (AppendElementStart)
    * In this method you can also force the formating
    * by setting aForceFormat to true.
    * @return boolean  true if the element can be output
    */
   virtual bool CheckElementStart(nsIContent * aContent,
                                    bool & aForceFormat,
                                    nsAString& aStr,
@@ -267,17 +267,17 @@ class nsXMLContentSerializer : public ns
    */
   MOZ_MUST_USE
   virtual bool AfterElementStart(nsIContent* aContent,
                                  nsIContent* aOriginalElement,
                                  nsAString& aStr) { return true; };
 
   /**
    * This method can be redefined to check if the element can be serialized.
-   * It is called when the serialization of the end tag is asked 
+   * It is called when the serialization of the end tag is asked
    * (AppendElementEnd)
    * In this method you can also force the formating
    * by setting aForceFormat to true.
    * @return boolean  true if the element can be output
    */
   virtual bool CheckElementEnd(mozilla::dom::Element* aElement,
                                bool& aForceFormat,
                                nsAString& aStr);
@@ -354,17 +354,17 @@ class nsXMLContentSerializer : public ns
   // nsIDocumentEncoder flags
   MOZ_INIT_OUTSIDE_CTOR uint32_t  mFlags;
 
   // characters to use for line break
   nsString  mLineBreak;
 
   // The charset that was passed to Init()
   nsCString mCharset;
-  
+
   // current column position on the current line
   uint32_t   mColPos;
 
   // true = pretty formating should be done (OutputFormated flag)
   MOZ_INIT_OUTSIDE_CTOR bool mDoFormat;
 
   // true = no formatting,(OutputRaw flag)
   // no newline convertion and no rewrap long lines even if OutputWrap is set.
@@ -414,9 +414,9 @@ class nsXMLContentSerializer : public ns
 private:
   // number of nested elements which have preformated content
   MOZ_INIT_OUTSIDE_CTOR int32_t mPreLevel;
 };
 
 nsresult
 NS_NewXMLContentSerializer(nsIContentSerializer** aSerializer);
 
-#endif 
+#endif
--- a/dom/bindings/IterableIterator.h
+++ b/dom/bindings/IterableIterator.h
@@ -45,17 +45,17 @@ public:
   NS_DECL_CYCLE_COLLECTION_CLASS(IterableIteratorBase)
   typedef enum {
     Keys = 0,
     Values,
     Entries
   } IterableIteratorType;
 
   IterableIteratorBase() {}
-  
+
 protected:
   virtual ~IterableIteratorBase() {}
   virtual void UnlinkHelper() = 0;
   virtual void TraverseHelper(nsCycleCollectionTraversalCallback& cb) = 0;
 };
 
 template <typename T>
 class IterableIterator final : public IterableIteratorBase
--- a/dom/bindings/test/TestBindingHeader.h
+++ b/dom/bindings/test/TestBindingHeader.h
@@ -880,17 +880,17 @@ public:
   void Overload17(const Sequence<int32_t>&);
   void Overload17(const Record<nsString, int32_t>&);
   void Overload18(const Record<nsString, nsString>&);
   void Overload18(const Sequence<nsString>&);
   void Overload19(const Sequence<int32_t>&);
   void Overload19(JSContext*, const Dict&);
   void Overload20(JSContext*, const Dict&);
   void Overload20(const Sequence<int32_t>&);
-  
+
   // Variadic handling
   void PassVariadicThirdArg(const nsAString&, int32_t,
                             const Sequence<OwningNonNull<TestInterface> >&);
 
   // Conditionally exposed methods/attributes
   bool Prefable1();
   bool Prefable2();
   bool Prefable3();
--- a/dom/canvas/MurmurHash3.cpp
+++ b/dom/canvas/MurmurHash3.cpp
@@ -115,19 +115,19 @@ void MurmurHash3_x86_32 ( const void * k
 
   for(int i = -nblocks; i; i++)
   {
     uint32_t k1 = getblock(blocks,i);
 
     k1 *= c1;
     k1 = ROTL32(k1,15);
     k1 *= c2;
-    
+
     h1 ^= k1;
-    h1 = ROTL32(h1,13); 
+    h1 = ROTL32(h1,13);
     h1 = h1*5+0xe6546b64;
   }
 
   //----------
   // tail
 
   const uint8_t * tail = (const uint8_t*)(data + nblocks*4);
 
@@ -144,34 +144,34 @@ void MurmurHash3_x86_32 ( const void * k
   //----------
   // finalization
 
   h1 ^= len;
 
   h1 = fmix(h1);
 
   *(uint32_t*)out = h1;
-} 
+}
 
 //-----------------------------------------------------------------------------
 
 void MurmurHash3_x86_128 ( const void * key, const int len,
                            uint32_t seed, void * out )
 {
   const uint8_t * data = (const uint8_t*)key;
   const int nblocks = len / 16;
 
   uint32_t h1 = seed;
   uint32_t h2 = seed;
   uint32_t h3 = seed;
   uint32_t h4 = seed;
 
-  const uint32_t c1 = 0x239b961b; 
+  const uint32_t c1 = 0x239b961b;
   const uint32_t c2 = 0xab0e9789;
-  const uint32_t c3 = 0x38b34ae5; 
+  const uint32_t c3 = 0x38b34ae5;
   const uint32_t c4 = 0xa1e38b93;
 
   //----------
   // body
 
   const uint32_t * blocks = (const uint32_t *)(data + nblocks*16);
 
   for(int i = -nblocks; i; i++)
--- a/dom/events/BeforeUnloadEvent.cpp
+++ b/dom/events/BeforeUnloadEvent.cpp
@@ -34,14 +34,14 @@ BeforeUnloadEvent::GetReturnValue(nsAStr
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<BeforeUnloadEvent>
 NS_NewDOMBeforeUnloadEvent(EventTarget* aOwner,
                            nsPresContext* aPresContext,
-                           WidgetEvent* aEvent) 
+                           WidgetEvent* aEvent)
 {
   RefPtr<BeforeUnloadEvent> it =
     new BeforeUnloadEvent(aOwner, aPresContext, aEvent);
   return it.forget();
 }
--- a/dom/events/ContentEventHandler.cpp
+++ b/dom/events/ContentEventHandler.cpp
@@ -1691,17 +1691,17 @@ ContentEventHandler::GetLineBreakerRectB
     result.mRect.y = baseline - fontMetrics->MaxAscent();
     result.mRect.height = fontMetrics->MaxHeight();
   }
 
   // If aFrame isn't a <br> frame, caret should be at outside of it because
   // the line break is before its open tag.  For example, case of
   // |<div><p>some text</p></div>|, caret is before <p> element and in <div>
   // element, the caret should be left of top-left corner of <p> element like:
-  // 
+  //
   // +-<div>-------------------  <div>'s border box
   // | I +-<p>-----------------  <p>'s border box
   // | I |
   // | I |
   // |   |
   //   ^- caret
   //
   // However, this is a hack for unusual scenario.  This hack shouldn't be
--- a/dom/events/DataTransfer.cpp
+++ b/dom/events/DataTransfer.cpp
@@ -313,17 +313,17 @@ DataTransfer::GetFiles(nsIDOMFileList** 
 }
 
 void
 DataTransfer::GetTypes(nsTArray<nsString>& aTypes, CallerType aCallerType) const
 {
   // When called from bindings, aTypes will be empty, but since we might have
   // Gecko-internal callers too, clear it to be safe.
   aTypes.Clear();
-  
+
   const nsTArray<RefPtr<DataTransferItem>>* items = mItems->MozItemsAt(0);
   if (NS_WARN_IF(!items)) {
     return;
   }
 
   for (uint32_t i = 0; i < items->Length(); i++) {
     DataTransferItem* item = items->ElementAt(i);
     MOZ_ASSERT(item);
--- a/dom/events/DragEvent.cpp
+++ b/dom/events/DragEvent.cpp
@@ -121,14 +121,14 @@ DragEvent::Constructor(const GlobalObjec
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<DragEvent>
 NS_NewDOMDragEvent(EventTarget* aOwner,
                    nsPresContext* aPresContext,
-                   WidgetDragEvent* aEvent) 
+                   WidgetDragEvent* aEvent)
 {
   RefPtr<DragEvent> event =
     new DragEvent(aOwner, aPresContext, aEvent);
   return event.forget();
 }
--- a/dom/events/Event.cpp
+++ b/dom/events/Event.cpp
@@ -78,20 +78,20 @@ Event::ConstructorInit(EventTarget* aOwn
     mEventIsInternal = false;
   }
   else {
     mEventIsInternal = true;
     /*
       A derived class might want to allocate its own type of aEvent
       (derived from WidgetEvent). To do this, it should take care to pass
       a non-nullptr aEvent to this ctor, e.g.:
-      
+
         FooEvent::FooEvent(..., WidgetEvent* aEvent)
           : Event(..., aEvent ? aEvent : new WidgetEvent())
-      
+
       Then, to override the mEventIsInternal assignments done by the
       base ctor, it should do this in its own ctor:
 
         FooEvent::FooEvent(..., WidgetEvent* aEvent)
         ...
         {
           ...
           if (aEvent) {
@@ -119,17 +119,17 @@ Event::InitPresContextData(nsPresContext
     nsCOMPtr<nsIContent> content = GetTargetFromFrame();
     mExplicitOriginalTarget = content;
     if (content && content->IsInAnonymousSubtree()) {
       mExplicitOriginalTarget = nullptr;
     }
   }
 }
 
-Event::~Event() 
+Event::~Event()
 {
   NS_ASSERT_OWNINGTHREAD(Event);
 
   if (mEventIsInternal && mEvent) {
     delete mEvent;
   }
 }
 
@@ -1330,13 +1330,13 @@ Event::SetCancelBubble(bool aCancelBubbl
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<Event>
 NS_NewDOMEvent(EventTarget* aOwner,
                nsPresContext* aPresContext,
-               WidgetEvent* aEvent) 
+               WidgetEvent* aEvent)
 {
   RefPtr<Event> it = new Event(aOwner, aPresContext, aEvent);
   return it.forget();
 }
--- a/dom/events/EventDispatcher.cpp
+++ b/dom/events/EventDispatcher.cpp
@@ -252,17 +252,17 @@ public:
   {
     mFlags.mMayHaveManager = aMayHave;
   }
 
   bool MayHaveListenerManager()
   {
     return mFlags.mMayHaveManager;
   }
-  
+
   EventTarget* CurrentTarget()
   {
     return mTarget;
   }
 
   /**
    * Dispatches event through the event target chain.
    * Handles capture, target and bubble phases both in default
--- a/dom/events/EventDispatcher.h
+++ b/dom/events/EventDispatcher.h
@@ -27,17 +27,17 @@ namespace dom {
 class Event;
 class EventTarget;
 } // namespace dom
 
 /**
  * About event dispatching:
  * When either EventDispatcher::Dispatch or
  * EventDispatcher::DispatchDOMEvent is called an event target chain is
- * created. EventDispatcher creates the chain by calling GetEventTargetParent 
+ * created. EventDispatcher creates the chain by calling GetEventTargetParent
  * on each event target and the creation continues until either the mCanHandle
  * member of the EventChainPreVisitor object is false or the mParentTarget
  * does not point to a new target. The event target chain is created in the
  * heap.
  *
  * If the event needs retargeting, mEventTargetAtParent must be set in
  * GetEventTargetParent.
  *
@@ -240,17 +240,17 @@ public:
  * The generic class for event dispatching.
  * Must not be used outside Gecko!
  */
 class EventDispatcher
 {
 public:
   /**
    * aTarget should QI to EventTarget.
-   * If the target of aEvent is set before calling this method, the target of 
+   * If the target of aEvent is set before calling this method, the target of
    * aEvent is used as the target (unless there is event
    * retargeting) and the originalTarget of the DOM Event.
    * aTarget is always used as the starting point for constructing the event
    * target chain, no matter what the value of aEvent->mTarget is.
    * In other words, aEvent->mTarget is only a property of the event and it has
    * nothing to do with the construction of the event target chain.
    * Neither aTarget nor aEvent is allowed to be nullptr.
    *
--- a/dom/events/EventListenerManager.h
+++ b/dom/events/EventListenerManager.h
@@ -301,17 +301,17 @@ public:
                                bool aUseCapture,
                                bool aWantsUntrusted,
                                bool aSystemEventGroup);
   void RemoveListenerForAllEvents(nsIDOMEventListener* aListener,
                                   bool aUseCapture,
                                   bool aSystemEventGroup);
 
   /**
-  * Sets events listeners of all types. 
+  * Sets events listeners of all types.
   * @param an event listener
   */
   void AddEventListenerByType(nsIDOMEventListener *aListener,
                               const nsAString& type,
                               const EventListenerFlags& aFlags)
   {
     AddEventListenerByType(EventListenerHolder(aListener), type, aFlags);
   }
@@ -344,17 +344,17 @@ public:
                            bool aPermitUntrustedEvents,
                            dom::Element* aElement);
   /**
    * Remove the current "inline" event listener for aName.
    */
   void RemoveEventHandler(nsIAtom *aName, const nsAString& aTypeString);
 
   void HandleEvent(nsPresContext* aPresContext,
-                   WidgetEvent* aEvent, 
+                   WidgetEvent* aEvent,
                    nsIDOMEvent** aDOMEvent,
                    dom::EventTarget* aCurrentTarget,
                    nsEventStatus* aEventStatus)
   {
     if (mListeners.IsEmpty() || aEvent->PropagationStopped()) {
       return;
     }
 
--- a/dom/events/EventStateManager.cpp
+++ b/dom/events/EventStateManager.cpp
@@ -779,17 +779,17 @@ EventStateManager::PreHandleEvent(nsPres
       if (keyEvent->IsMeta())
         modifierMask |= NS_MODIFIER_META;
       if (keyEvent->IsOS())
         modifierMask |= NS_MODIFIER_OS;
 
       // Prevent keyboard scrolling while an accesskey modifier is in use.
       if (modifierMask) {
         bool matchesContentAccessKey = (modifierMask == Prefs::ContentAccessModifierMask());
-        
+
         if (modifierMask == Prefs::ChromeAccessModifierMask() ||
             matchesContentAccessKey) {
           AutoTArray<uint32_t, 10> accessCharCodes;
           keyEvent->GetAccessKeyCandidates(accessCharCodes);
 
           if (HandleAccessKey(keyEvent, aPresContext, accessCharCodes,
                               modifierMask, matchesContentAccessKey)) {
             *aStatus = nsEventStatus_eConsumeNoDefault;
@@ -1403,17 +1403,17 @@ EventStateManager::CreateClickHoldTimer(
 
   // if content clicked on has a popup, don't even start the timer
   // since we'll end up conflicting and both will show.
   if (mGestureDownContent) {
     // check for the |popup| attribute
     if (nsContentUtils::HasNonEmptyAttr(mGestureDownContent, kNameSpaceID_None,
                                         nsGkAtoms::popup))
       return;
-    
+
     // check for a <menubutton> like bookmarks
     if (mGestureDownContent->IsXULElement(nsGkAtoms::menubutton))
       return;
   }
 
   mClickHoldTimer = do_CreateInstance("@mozilla.org/timer;1");
   if (mClickHoldTimer) {
     int32_t clickHoldDelay =
@@ -1542,23 +1542,23 @@ EventStateManager::FireContextClick()
     }
 
     if (allowedToDispatch) {
       // init the event while mCurrentTarget is still good
       WidgetMouseEvent event(true, eContextMenu, targetWidget,
                              WidgetMouseEvent::eReal);
       event.mClickCount = 1;
       FillInEventFromGestureDown(&event);
-        
+
       // stop selection tracking, we're in control now
       if (mCurrentTarget)
       {
         RefPtr<nsFrameSelection> frameSel =
           mCurrentTarget->GetFrameSelection();
-        
+
         if (frameSel && frameSel->GetDragState()) {
           // note that this can cause selection changed events to fire if we're in
           // a text field, which will null out mCurrentTarget
           frameSel->SetDragState(false);
         }
       }
 
       nsIDocument* doc = mGestureDownContent->GetComposedDoc();
@@ -2955,17 +2955,17 @@ EventStateManager::PostHandleEvent(nsPre
       // When content calls PreventDefault on pointerdown, we also call
       // PreventDefault on the subsequent mouse events to suppress default
       // behaviors. Normally, aStatus should be nsEventStatus_eConsumeNoDefault
       // when the event is DefaultPrevented but it's reset to
       // nsEventStatus_eIgnore in EventStateManager::PreHandleEvent. So we also
       // check if the event is DefaultPrevented.
       if (nsEventStatus_eConsumeNoDefault != *aStatus &&
           !aEvent->DefaultPrevented()) {
-        nsCOMPtr<nsIContent> newFocus;      
+        nsCOMPtr<nsIContent> newFocus;
         bool suppressBlur = false;
         if (mCurrentTarget) {
           mCurrentTarget->GetContentForEvent(aEvent, getter_AddRefs(newFocus));
           const nsStyleUserInterface* ui = mCurrentTarget->StyleUserInterface();
           activeContent = mCurrentTarget->GetContent();
 
           // In some cases, we do not want to even blur the current focused
           // element. Those cases are:
@@ -3542,17 +3542,17 @@ EventStateManager::IsTargetCrossProcess(
 void
 EventStateManager::NotifyDestroyPresContext(nsPresContext* aPresContext)
 {
   IMEStateManager::OnDestroyPresContext(aPresContext);
   if (mHoverContent) {
     // Bug 70855: Presentation is going away, possibly for a reframe.
     // Reset the hover state so that if we're recreating the presentation,
     // we won't have the old hover state still set in the new presentation,
-    // as if the new presentation is resized, a new element may be hovered. 
+    // as if the new presentation is resized, a new element may be hovered.
     SetContentState(nullptr, NS_EVENT_STATE_HOVER);
   }
   mPointersEnterLeaveHelper.Clear();
 }
 
 void
 EventStateManager::SetPresContext(nsPresContext* aPresContext)
 {
@@ -4140,17 +4140,17 @@ EventStateManager::NotifyMouseOver(Widge
   if (wrapper->mLastOverElement == aContent)
     return;
 
   // Remember mLastOverElement as the related content for the
   // DispatchMouseOrPointerEvent() call below, since NotifyMouseOut() resets it, bug 298477.
   nsCOMPtr<nsIContent> lastOverElement = wrapper->mLastOverElement;
 
   bool isPointer = aMouseEvent->mClass == ePointerEventClass;
-  
+
   EnterLeaveDispatcher enterDispatcher(this, aContent, lastOverElement,
                                        aMouseEvent,
                                        isPointer ? ePointerEnter : eMouseEnter);
 
   NotifyMouseOut(aMouseEvent, aContent);
 
   // Store the first mouseOver event we fire and don't refire mouseOver
   // to that element while the first mouseOver is still ongoing.
@@ -4895,17 +4895,17 @@ EventStateManager::SetContentState(nsICo
       if (aContent != mActiveContent) {
         notifyContent1 = aContent;
         notifyContent2 = mActiveContent;
         mActiveContent = aContent;
       }
     } else {
       NS_ASSERTION(aState == NS_EVENT_STATE_HOVER, "How did that happen?");
       nsIContent* newHover;
-      
+
       if (mPresContext->IsDynamic()) {
         newHover = aContent;
       } else {
         NS_ASSERTION(!aContent ||
                      aContent->GetComposedDoc() ==
                        mPresContext->PresShell()->GetDocument(),
                      "Unexpected document");
         nsIFrame *frame = aContent ? aContent->GetPrimaryFrame() : nullptr;
--- a/dom/events/EventStateManager.h
+++ b/dom/events/EventStateManager.h
@@ -192,17 +192,17 @@ public:
   {
     return HandleAccessKey(aEvent, aPresContext, aAccessCharCodes,
                            aMatchesContentAccessKey, nullptr,
                            eAccessKeyProcessingNormal, aModifierMask);
   }
 
   nsresult SetCursor(int32_t aCursor, imgIContainer* aContainer,
                      bool aHaveHotspot, float aHotspotX, float aHotspotY,
-                     nsIWidget* aWidget, bool aLockCursor); 
+                     nsIWidget* aWidget, bool aLockCursor);
 
   static void StartHandlingUserInput()
   {
     ++sUserInputEventDepth;
     ++sUserInputCounter;
     if (sUserInputEventDepth == 1) {
       sLatestUserInputStart = sHandlingInputStart = TimeStamp::Now();
     }
@@ -1012,21 +1012,21 @@ public:
   static uint64_t sUserInputCounter;
 
   // The current depth of user inputs. This includes anything that is
   // initiated by user, with the exception of page load events or
   // mouse over events. Incremented whenever we start handling a user
   // input, decremented when we have finished handling a user
   // input. This depth is *not* reset in case of nested event loops.
   static int32_t sUserInputEventDepth;
-  
+
   static bool sNormalLMouseEventInProcess;
 
   static EventStateManager* sActiveESM;
-  
+
   static void ClearGlobalActiveContent(EventStateManager* aClearer);
 
   // Functions used for click hold context menus
   nsCOMPtr<nsITimer> mClickHoldTimer;
   void CreateClickHoldTimer(nsPresContext* aPresContext,
                             nsIFrame* aDownFrame,
                             WidgetGUIEvent* aMouseDownEvent);
   void KillClickHoldTimer();
--- a/dom/events/IMEStateManager.cpp
+++ b/dom/events/IMEStateManager.cpp
@@ -508,17 +508,17 @@ IMEStateManager::OnChangeFocusInternal(n
            "until new focused element (or document) in the child process "
            "will get focus actually"));
       }
     } else {
       // When focus is NOT changed actually, we shouldn't set IME state since
       // that means that the window is being activated and the child process
       // may have composition.  Then, we shouldn't commit the composition with
       // making IME state disabled.
-      setIMEState = false; 
+      setIMEState = false;
       MOZ_LOG(sISMLog, LogLevel::Debug,
         ("  OnChangeFocusInternal(), doesn't set IME "
          "state because focused element (or document) is already in the child "
          "process"));
     }
   }
 
   if (setIMEState) {
--- a/dom/events/MutationEvent.cpp
+++ b/dom/events/MutationEvent.cpp
@@ -105,26 +105,26 @@ MutationEvent::InitMutationEvent(const n
   if (!aPrevValueArg.IsEmpty())
     mutation->mPrevAttrValue = NS_Atomize(aPrevValueArg);
   if (!aNewValueArg.IsEmpty())
     mutation->mNewAttrValue = NS_Atomize(aNewValueArg);
   if (!aAttrNameArg.IsEmpty()) {
     mutation->mAttrName = NS_Atomize(aAttrNameArg);
   }
   mutation->mAttrChange = aAttrChangeArg;
-    
+
   return NS_OK;
 }
 
 } // namespace dom
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<MutationEvent>
 NS_NewDOMMutationEvent(EventTarget* aOwner,
                        nsPresContext* aPresContext,
-                       InternalMutationEvent* aEvent) 
+                       InternalMutationEvent* aEvent)
 {
   RefPtr<MutationEvent> it = new MutationEvent(aOwner, aPresContext, aEvent);
   return it.forget();
 }
--- a/dom/events/PaintRequest.h
+++ b/dom/events/PaintRequest.h
@@ -59,17 +59,17 @@ class PaintRequestList final : public ns
 {
 public:
   explicit PaintRequestList(nsIDOMEvent *aParent) : mParent(aParent)
   {
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(PaintRequestList)
-  
+
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
   nsISupports* GetParentObject()
   {
     return mParent;
   }
 
   void Append(PaintRequest* aElement)
   {
--- a/dom/events/SimpleGestureEvent.cpp
+++ b/dom/events/SimpleGestureEvent.cpp
@@ -104,17 +104,17 @@ SimpleGestureEvent::GetClickCount(uint32
 }
 
 void
 SimpleGestureEvent::InitSimpleGestureEvent(const nsAString& aTypeArg,
                                            bool aCanBubbleArg,
                                            bool aCancelableArg,
                                            nsGlobalWindow* aViewArg,
                                            int32_t aDetailArg,
-                                           int32_t aScreenX, 
+                                           int32_t aScreenX,
                                            int32_t aScreenY,
                                            int32_t aClientX,
                                            int32_t aClientY,
                                            bool aCtrlKeyArg,
                                            bool aAltKeyArg,
                                            bool aShiftKeyArg,
                                            bool aMetaKeyArg,
                                            uint16_t aButton,
--- a/dom/events/UIEvent.cpp
+++ b/dom/events/UIEvent.cpp
@@ -39,17 +39,17 @@ UIEvent::UIEvent(EventTarget* aOwner,
 {
   if (aEvent) {
     mEventIsInternal = false;
   }
   else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
   }
-  
+
   // Fill mDetail and mView according to the mEvent (widget-generated
   // event) we've got
   switch(mEvent->mClass) {
     case eUIEventClass:
     {
       mDetail = mEvent->AsUIEvent()->mDetail;
       break;
     }
@@ -513,13 +513,13 @@ UIEvent::InitModifiers(const EventModifi
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<UIEvent>
 NS_NewDOMUIEvent(EventTarget* aOwner,
                  nsPresContext* aPresContext,
-                 WidgetGUIEvent* aEvent) 
+                 WidgetGUIEvent* aEvent)
 {
   RefPtr<UIEvent> it = new UIEvent(aOwner, aPresContext, aEvent);
   return it.forget();
 }
--- a/dom/events/WheelEvent.cpp
+++ b/dom/events/WheelEvent.cpp
@@ -46,17 +46,17 @@ void
 WheelEvent::InitWheelEvent(const nsAString& aType,
                            bool aCanBubble,
                            bool aCancelable,
                            nsGlobalWindow* aView,
                            int32_t aDetail,
                            int32_t aScreenX,
                            int32_t aScreenY,
                            int32_t aClientX,
-                           int32_t aClientY, 
+                           int32_t aClientY,
                            uint16_t aButton,
                            EventTarget* aRelatedTarget,
                            const nsAString& aModifiersList,
                            double aDeltaX,
                            double aDeltaY,
                            double aDeltaZ,
                            uint32_t aDeltaMode)
 {
--- a/dom/events/WheelHandlingHelper.h
+++ b/dom/events/WheelHandlingHelper.h
@@ -127,17 +127,17 @@ public:
   static nsIFrame* GetTargetFrame() { return sTargetFrame; }
   static void EndTransaction();
   /**
    * WillHandleDefaultAction() is called before handling aWheelEvent on
    * aTargetFrame.
    *
    * @return    false if the caller cannot continue to handle the default
    *            action.  Otherwise, true.
-   */ 
+   */
   static bool WillHandleDefaultAction(WidgetWheelEvent* aWheelEvent,
                                       AutoWeakFrame& aTargetWeakFrame);
   static bool WillHandleDefaultAction(WidgetWheelEvent* aWheelEvent,
                                       nsIFrame* aTargetFrame)
   {
     AutoWeakFrame targetWeakFrame(aTargetFrame);
     return WillHandleDefaultAction(aWheelEvent, targetWeakFrame);
   }
--- a/dom/events/XULCommandEvent.cpp
+++ b/dom/events/XULCommandEvent.cpp
@@ -129,14 +129,14 @@ XULCommandEvent::InitCommandEvent(const 
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 already_AddRefed<XULCommandEvent>
 NS_NewDOMXULCommandEvent(EventTarget* aOwner,
                          nsPresContext* aPresContext,
-                         WidgetInputEvent* aEvent) 
+                         WidgetInputEvent* aEvent)
 {
   RefPtr<XULCommandEvent> it =
     new XULCommandEvent(aOwner, aPresContext, aEvent);
   return it.forget();
 }
--- a/dom/file/ipc/IPCBlobUtils.h
+++ b/dom/file/ipc/IPCBlobUtils.h
@@ -7,129 +7,129 @@
 #ifndef mozilla_dom_IPCBlobUtils_h
 #define mozilla_dom_IPCBlobUtils_h
 
 #include "mozilla/dom/File.h"
 
 /*
  * Blobs and IPC
  * ~~~~~~~~~~~~~
- * 
+ *
  * Simplifying, DOM Blob objects are chunks of data with a content type and a
  * size. DOM Files are Blobs with a name. They are are used in many APIs and
  * they can be cloned and sent cross threads and cross processes.
- * 
+ *
  * If we see Blobs from a platform point of view, the main (and often, the only)
  * interesting part is how to retrieve data from it. This is done via
  * nsIInputStream and, except for a couple of important details, this stream is
  * used in the parent process.
- * 
+ *
  * For this reason, when we consider the serialization of a blob via IPC
  * messages, the biggest effort is put in how to manage the nsInputStream
  * correctly. To serialize, we use the IPCBlob data struct: basically, the blob
  * properties (size, type, name if it's a file) and the nsIInputStream.
- * 
+ *
  * Before talking about the nsIInputStream it's important to say that we have
  * different kinds of Blobs, based on the different kinds of sources. A non
  * exaustive list is:
  * - a memory buffer: MemoryBlobImpl
  * - a string: StringBlobImpl
  * - a real OS file: FileBlobImpl
  * - a temporary OS file: TemporaryBlobImpl
  * - a generic nsIInputStream: StreamBlobImpl
  * - an empty blob: EmptyBlobImpl
  * - more blobs combined together: MultipartBlobImpl
  * Each one of these implementations has a custom ::GetInternalStream method.
  * So, basically, each one has a different kind of nsIInputStream (nsFileStream,
  * nsIStringInputStream, SlicedInputStream, and so on).
- * 
+ *
  * Another important point to keep in mind is that a Blob can be created on the
  * content process (for example: |new Blob([123])|) or it can be created on the
  * parent process and sent to content (a FilePicker creates Blobs and it runs on
  * the parent process).
- * 
+ *
  * Child to Parent Blob Serialization
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * 
+ *
  * When a document creates a blob, this can be sent, for different reasons to
  * the parent process. For instance it can be sent as part of a FormData, or it
  * can be converted to a BlobURL and broadcasted to any other existing
  * processes.
- * 
+ *
  * When this happens, we use the IPCStream data struct for the serialization
  * of the nsIInputStream. This means that, if the stream is fully serializable
  * and its size is lower than 1Mb, we are able to recreate the stream completely
  * on the parent side. This happens, basically with any kind of child-to-parent
  * stream except for huge memory streams. In this case we end up using
  * PChildToParentStream. See more information in IPCStreamUtils.h.
  *
  * In order to populate IPCStream correctly, we use AutoIPCStream as documented
  * in IPCStreamUtils.h. Note that we use the 'delayed start' feature because,
  * often, the stream doesn't need to be read on the parent side.
- * 
+ *
  * Parent to Child Blob Serialization
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * 
+ *
  * This scenario is common when we talk about Blobs pointing to real files:
  * HTMLInputElement (type=file), or Entries API, DataTransfer and so on. But we
  * also have this scenario when a content process creates a Blob and it
  * broadcasts it because of a BlobURL or because BroadcastChannel API is used.
- * 
+ *
  * The approach here is this: normally, the content process doesn't really read
  * data from the blob nsIInputStream. The content process needs to have the
  * nsIInputStream and be able to send it back to the parent process when the
  * "real" work needs to be done. This is true except for 2 usecases: FileReader
  * API and BlobURL usage. So, if we ignore these 2, normally, the parent sends a
  * blob nsIInputStream to a content process, and then, it will receive it back
  * in order to do some networking, or whatever.
- * 
+ *
  * For this reason, IPCBlobUtils uses a particular protocol for serializing
  * nsIInputStream parent to child: PIPCBlobInputStream. This protocol keeps the
  * original nsIInputStream alive on the parent side, and gives its size and a
  * UUID to the child side. The child side creates a IPCBlobInputStream and that
  * is incapsulated into a StreamBlobImpl.
- * 
+ *
  * The UUID is useful when the content process sends the same nsIInputStream
  * back to the parent process because, the only information it has to share is
  * the UUID. Each nsIInputStream sent via PIPCBlobInputStream, is registered
  * into the IPCBlobInputStreamStorage.
- * 
+ *
  * On the content process side, IPCBlobInputStream is a special inputStream:
  * the only reliable methods are:
  * - nsIInputStream.available() - the size is shared by PIPCBlobInputStream
  *   actor.
  * - nsIIPCSerializableInputStream.serialize() - we can give back this stream to
  *   the parent because we know its UUID.
  * - nsICloneableInputStream.cloneable() and nsICloneableInputStream.clone() -
  *   this stream can be cloned. We just need to have a reference of the
  *   PIPCBlobInputStream actor and its UUID.
  * - nsIAsyncInputStream.asyncWait() - see next section.
- * 
+ *
  * Any other method (read, readSegment and so on) will fail if asyncWait() is
  * not previously called (see the next section). Basically, this inputStream
  * cannot be used synchronously for any 'real' reading operation.
- * 
+ *
  * When the parent receives the serialization of a IPCBlobInputStream, it is
  * able to retrieve the correct nsIInputStream using the UUID and
  * IPCBlobInputStreamStorage.
- * 
+ *
  * Parent to Child Streams, FileReader and BlobURL
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * 
+ *
  * The FileReader and BlobURL scenarios are described here.
  *
  * When content process needs to read data from a Blob sent from the parent
  * process, it must do it asynchronously using IPCBlobInputStream as a
  * nsIAsyncInputStream stream. This happens calling
  * IPCBlobInputStream.asyncWait(). At that point, the child actor will send a
  * StreamNeeded() IPC message to the parent side. When this is received, the
  * parent retrieves the 'real' stream from IPCBlobInputStreamStorage using the
  * UUID, it will serialize the 'real' stream, and it will send it to the child
  * side.
- * 
+ *
  * When the 'real' stream is received (RecvStreamReady()), the asyncWait
  * callback will be executed and, from that moment, any IPCBlobInputStream
  * method will be forwarded to the 'real' stream ones. This means that the
  * reading will be available.
  *
  * DOM-File Thread
  * ~~~~~~~~~~~~~~~
  *
@@ -173,17 +173,17 @@
  *    retrieved from IPCBlobInputStreamStorage.
  * 7. In order to avoid leaks, IPCBlobInputStreamStorage will monitor child
  *    processes and in case one of them dies, it will release the
  *    nsIInputStream objects belonging to that process.
  *
  * If any API wants to retrieve a 'real inputStream when the migration is in
  * progress, that operation is stored in a pending queue and processed at the
  * end of the migration.
- */ 
+ */
 
 namespace mozilla {
 
 namespace ipc {
 class PBackgroundChild;
 class PBackgroundParent;
 }
 
--- a/dom/file/nsHostObjectURI.cpp
+++ b/dom/file/nsHostObjectURI.cpp
@@ -195,17 +195,17 @@ nsHostObjectURI::CloneInternal(mozilla::
 nsHostObjectURI::EqualsInternal(nsIURI* aOther,
                                 mozilla::net::nsSimpleURI::RefHandlingEnum aRefHandlingMode,
                                 bool* aResult)
 {
   if (!aOther) {
     *aResult = false;
     return NS_OK;
   }
-  
+
   RefPtr<nsHostObjectURI> otherUri;
   aOther->QueryInterface(kHOSTOBJECTURICID, getter_AddRefs(otherUri));
   if (!otherUri) {
     *aResult = false;
     return NS_OK;
   }
 
   // Compare the member data that our base class knows about.
@@ -223,66 +223,66 @@ nsHostObjectURI::EqualsInternal(nsIURI* 
     return mPrincipal->Equals(otherUri->mPrincipal, aResult);
   }
   // else, at least one of us lacks a principal; only equal if *both* lack it.
   *aResult = (!mPrincipal && !otherUri->mPrincipal);
   return NS_OK;
 }
 
 // nsIClassInfo methods:
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetInterfaces(uint32_t *count, nsIID * **array)
 {
   *count = 0;
   *array = nullptr;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetScriptableHelper(nsIXPCScriptable **_retval)
 {
   *_retval = nullptr;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetContractID(char * *aContractID)
 {
   // Make sure to modify any subclasses as needed if this ever
   // changes.
   *aContractID = nullptr;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetClassDescription(char * *aClassDescription)
 {
   *aClassDescription = nullptr;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetClassID(nsCID * *aClassID)
 {
   // Make sure to modify any subclasses as needed if this ever
   // changes to not call the virtual GetClassIDNoAlloc.
   *aClassID = (nsCID*) moz_xmalloc(sizeof(nsCID));
   NS_ENSURE_TRUE(*aClassID, NS_ERROR_OUT_OF_MEMORY);
 
   return GetClassIDNoAlloc(*aClassID);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetFlags(uint32_t *aFlags)
 {
   *aFlags = nsIClassInfo::MAIN_THREAD_ONLY;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHostObjectURI::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
 {
   *aClassIDNoAlloc = kHOSTOBJECTURICID;
   return NS_OK;
 }
 
 void
 nsHostObjectURI::ForgetBlobImpl()
--- a/dom/geolocation/nsGeoPosition.h
+++ b/dom/geolocation/nsGeoPosition.h
@@ -23,17 +23,17 @@
 /**
  * Simple object that holds a single point in space.
  */
 class nsGeoPositionCoords final : public nsIDOMGeoPositionCoords
 {
 public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIDOMGEOPOSITIONCOORDS
-  
+
   nsGeoPositionCoords(double aLat, double aLong,
                       double aAlt, double aHError,
                       double aVError, double aHeading,
                       double aSpeed);
 private:
   ~nsGeoPositionCoords();
   const double mLat, mLong, mAlt, mHError, mVError, mHeading, mSpeed;
 };
@@ -43,22 +43,22 @@ private:
 // nsGeoPosition
 ////////////////////////////////////////////////////
 
 class nsGeoPosition final : public nsIDOMGeoPosition
 {
 public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIDOMGEOPOSITION
-  
+
   nsGeoPosition(double aLat, double aLong,
                 double aAlt, double aHError,
                 double aVError, double aHeading,
                 double aSpeed, long long aTimestamp);
-  
+
 
   nsGeoPosition(nsIDOMGeoPositionCoords *aCoords,
                 long long aTimestamp);
 
   nsGeoPosition(nsIDOMGeoPositionCoords *aCoords,
                 DOMTimeStamp aTimestamp);
 
 private:
--- a/dom/html/HTMLAnchorElement.cpp
+++ b/dom/html/HTMLAnchorElement.cpp
@@ -315,26 +315,26 @@ IMPL_URI_PART(Host)
 IMPL_URI_PART(Hostname)
 IMPL_URI_PART(Pathname)
 IMPL_URI_PART(Search)
 IMPL_URI_PART(Port)
 IMPL_URI_PART(Hash)
 
 #undef IMPL_URI_PART
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 HTMLAnchorElement::GetText(nsAString& aText)
 {
   if(!nsContentUtils::GetNodeTextContent(this, true, aText, fallible)) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP    
+NS_IMETHODIMP
 HTMLAnchorElement::SetText(const nsAString& aText)
 {
   return nsContentUtils::SetNodeTextContent(this, aText, false);
 }
 
 NS_IMETHODIMP
 HTMLAnchorElement::ToString(nsAString& aSource)
 {
--- a/dom/html/HTMLAreaElement.cpp
+++ b/dom/html/HTMLAreaElement.cpp
@@ -102,17 +102,17 @@ void
 HTMLAreaElement::GetLinkTarget(nsAString& aTarget)
 {
   GetAttr(kNameSpaceID_None, nsGkAtoms::target, aTarget);
   if (aTarget.IsEmpty()) {
     GetBaseTarget(aTarget);
   }
 }
 
-nsDOMTokenList* 
+nsDOMTokenList*
 HTMLAreaElement::RelList()
 {
   if (!mRelList) {
     mRelList = new nsDOMTokenList(this, nsGkAtoms::rel,
                                   HTMLAnchorElement::sSupportedRelValues);
   }
   return mRelList;
 }
--- a/dom/html/HTMLAreaElement.h
+++ b/dom/html/HTMLAreaElement.h
@@ -100,26 +100,26 @@ public:
     SetHTMLAttr(nsGkAtoms::download, aDownload, aError);
   }
 
   // The XPCOM GetPing is OK for us
   void SetPing(const nsAString& aPing, ErrorResult& aError)
   {
     SetHTMLAttr(nsGkAtoms::ping, aPing, aError);
   }
-  
+
   void GetRel(DOMString& aValue)
   {
     GetHTMLAttr(nsGkAtoms::rel, aValue);
   }
 
   void SetRel(const nsAString& aRel, ErrorResult& aError)
   {
     SetHTMLAttr(nsGkAtoms::rel, aRel, aError);
-  } 
+  }
   nsDOMTokenList* RelList();
 
   void SetReferrerPolicy(const nsAString& aValue, mozilla::ErrorResult& rv)
   {
     SetHTMLAttr(nsGkAtoms::referrerpolicy, aValue, rv);
   }
   void GetReferrerPolicy(nsAString& aReferrer)
   {
--- a/dom/html/HTMLBodyElement.cpp
+++ b/dom/html/HTMLBodyElement.cpp
@@ -38,102 +38,102 @@ HTMLBodyElement::WrapNode(JSContext *aCx
   return HTMLBodyElementBinding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ISUPPORTS_INHERITED(HTMLBodyElement, nsGenericHTMLElement,
                             nsIDOMHTMLBodyElement)
 
 NS_IMPL_ELEMENT_CLONE(HTMLBodyElement)
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetBackground(const nsAString& aBackground)
 {
   ErrorResult rv;
   SetBackground(aBackground, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLBodyElement::GetBackground(nsAString& aBackground)
 {
   DOMString background;
   GetBackground(background);
   background.ToString(aBackground);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetVLink(const nsAString& aVLink)
 {
   ErrorResult rv;
   SetVLink(aVLink, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLBodyElement::GetVLink(nsAString& aVLink)
 {
   DOMString vLink;
   GetVLink(vLink);
   vLink.ToString(aVLink);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetALink(const nsAString& aALink)
 {
   ErrorResult rv;
   SetALink(aALink, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLBodyElement::GetALink(nsAString& aALink)
 {
   DOMString aLink;
   GetALink(aLink);
   aLink.ToString(aALink);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetLink(const nsAString& aLink)
 {
   ErrorResult rv;
   SetLink(aLink, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLBodyElement::GetLink(nsAString& aLink)
 {
   DOMString link;
   GetLink(link);
   link.ToString(aLink);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetText(const nsAString& aText)
 {
   ErrorResult rv;
   SetText(aText, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLBodyElement::GetText(nsAString& aText)
 {
   DOMString text;
   GetText(text);
   text.ToString(aText);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLBodyElement::SetBgColor(const nsAString& aBgColor)
 {
   ErrorResult rv;
   SetBgColor(aBgColor, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
--- a/dom/html/HTMLButtonElement.cpp
+++ b/dom/html/HTMLButtonElement.cpp
@@ -86,20 +86,20 @@ NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION
                                nsIDOMHTMLButtonElement,
                                nsIConstraintValidation)
 NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLFormElementWithState)
 
 // nsIConstraintValidation
 NS_IMPL_NSICONSTRAINTVALIDATION_EXCEPT_SETCUSTOMVALIDITY(HTMLButtonElement)
 
 NS_IMETHODIMP
-HTMLButtonElement::SetCustomValidity(const nsAString& aError) 
+HTMLButtonElement::SetCustomValidity(const nsAString& aError)
 {
   nsIConstraintValidation::SetCustomValidity(aError);
-  
+
   UpdateState(true);
 
   return NS_OK;
 }
 
 void
 HTMLButtonElement::UpdateBarredFromConstraintValidation()
 {
@@ -151,17 +151,17 @@ HTMLButtonElement::TabIndexDefault()
 
 bool
 HTMLButtonElement::IsHTMLFocusable(bool aWithMouse, bool *aIsFocusable, int32_t *aTabIndex)
 {
   if (nsGenericHTMLFormElementWithState::IsHTMLFocusable(aWithMouse, aIsFocusable, aTabIndex)) {
     return true;
   }
 
-  *aIsFocusable = 
+  *aIsFocusable =
 #ifdef XP_MACOSX
     (!aWithMouse || nsFocusManager::sMouseFocusesFormControl) &&
 #endif
     !IsDisabled();
 
   return false;
 }
 
@@ -451,17 +451,17 @@ HTMLButtonElement::AfterSetAttr(int32_t 
 }
 
 NS_IMETHODIMP
 HTMLButtonElement::SaveState()
 {
   if (!mDisabledChanged) {
     return NS_OK;
   }
-  
+
   nsPresState* state = GetPrimaryPresState();
   if (state) {
     // We do not want to save the real disabled state but the disabled
     // attribute.
     state->SetDisabled(HasAttr(kNameSpaceID_None, nsGkAtoms::disabled));
   }
 
   return NS_OK;
@@ -476,17 +476,17 @@ HTMLButtonElement::RestoreState(nsPresSt
 
   return false;
 }
 
 EventStates
 HTMLButtonElement::IntrinsicState() const
 {
   EventStates state = nsGenericHTMLFormElementWithState::IntrinsicState();
-  
+
   if (IsCandidateForConstraintValidation()) {
     if (IsValid()) {
       state |= NS_EVENT_STATE_VALID;
       if (!mForm || !mForm->HasAttr(kNameSpaceID_None, nsGkAtoms::novalidate)) {
         state |= NS_EVENT_STATE_MOZ_UI_VALID;
       }
     } else {
       state |= NS_EVENT_STATE_INVALID;
--- a/dom/html/HTMLDivElement.cpp
+++ b/dom/html/HTMLDivElement.cpp
@@ -80,17 +80,17 @@ HTMLDivElement::IsAttributeMapped(const 
 {
   if (mNodeInfo->Equals(nsGkAtoms::div)) {
     static const MappedAttributeEntry* const map[] = {
       sDivAlignAttributeMap,
       sCommonAttributeMap
     };
     return FindAttributeDependence(aAttribute, map);
   }
-  if (mNodeInfo->Equals(nsGkAtoms::marquee)) {  
+  if (mNodeInfo->Equals(nsGkAtoms::marquee)) {
     static const MappedAttributeEntry* const map[] = {
       sImageMarginSizeAttributeMap,
       sBackgroundColorAttributeMap,
       sCommonAttributeMap
     };
     return FindAttributeDependence(aAttribute, map);
   }
 
@@ -100,14 +100,14 @@ HTMLDivElement::IsAttributeMapped(const 
 nsMapRuleToAttributesFunc
 HTMLDivElement::GetAttributeMappingFunction() const
 {
   if (mNodeInfo->Equals(nsGkAtoms::div)) {
     return &MapAttributesIntoRule;
   }
   if (mNodeInfo->Equals(nsGkAtoms::marquee)) {
     return &MapMarqueeAttributesIntoRule;
-  }  
+  }
   return nsGenericHTMLElement::GetAttributeMappingFunction();
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLFormControlsCollection.cpp
+++ b/dom/html/HTMLFormControlsCollection.cpp
@@ -171,17 +171,17 @@ HTMLFormControlsCollection::Item(uint32_
     *aReturn = nullptr;
 
     return NS_OK;
   }
 
   return CallQueryInterface(item, aReturn);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLFormControlsCollection::NamedItem(const nsAString& aName,
                                       nsIDOMNode** aReturn)
 {
   FlushPendingNotifications();
 
   *aReturn = nullptr;
 
   nsCOMPtr<nsISupports> supports;
@@ -235,17 +235,17 @@ HTMLFormControlsCollection::AddElementTo
   return mForm->AddElementToTableInternal(mNameLookupTable, aChild, aName);
 }
 
 nsresult
 HTMLFormControlsCollection::IndexOfControl(nsIFormControl* aControl,
                                            int32_t* aIndex)
 {
   // Note -- not a DOM method; callers should handle flushing themselves
-  
+
   NS_ENSURE_ARG_POINTER(aIndex);
 
   *aIndex = mElements.IndexOf(aControl);
 
   return NS_OK;
 }
 
 nsresult
--- a/dom/html/HTMLFormControlsCollection.h
+++ b/dom/html/HTMLFormControlsCollection.h
@@ -60,17 +60,17 @@ public:
   nsresult AddImageElementToTable(HTMLImageElement* aChild,
                                   const nsAString& aName);
   nsresult RemoveElementFromTable(nsGenericHTMLFormElement* aChild,
                                   const nsAString& aName);
   nsresult IndexOfControl(nsIFormControl* aControl,
                           int32_t* aIndex);
 
   nsISupports* NamedItemInternal(const nsAString& aName, bool aFlushContent);
-  
+
   /**
    * Create a sorted list of form control elements. This list is sorted
    * in document order and contains the controls in the mElements and
    * mNotInElements list. This function does not add references to the
    * elements.
    *
    * @param aControls The list of sorted controls[out].
    * @return NS_OK or NS_ERROR_OUT_OF_MEMORY.
@@ -109,17 +109,17 @@ public:
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(HTMLFormControlsCollection)
 
 protected:
   // Drop all our references to the form elements
   void Clear();
 
   // Flush out the content model so it's up to date.
   void FlushPendingNotifications();
-  
+
   // A map from an ID or NAME attribute to the form control(s), this
   // hash holds strong references either to the named form control, or
   // to a list of named form controls, in the case where this hash
   // holds on to a list of named form controls the list has weak
   // references to the form control.
 
   nsInterfaceHashtable<nsStringHashKey,nsISupports> mNameLookupTable;
 };
--- a/dom/html/HTMLFormSubmission.h
+++ b/dom/html/HTMLFormSubmission.h
@@ -170,17 +170,17 @@ class FSMultipartFormData : public Encod
 {
 public:
   /**
    * @param aEncoding the character encoding of the form
    */
   FSMultipartFormData(mozilla::NotNull<const mozilla::Encoding*> aEncoding,
                       nsIContent* aOriginatingElement);
   ~FSMultipartFormData();
- 
+
   virtual nsresult
   AddNameValuePair(const nsAString& aName, const nsAString& aValue) override;
 
   virtual nsresult
   AddNameBlobOrNullPair(const nsAString& aName, Blob* aBlob) override;
 
   virtual nsresult
   AddNameDirectoryPair(const nsAString& aName, Directory* aDirectory) override;
--- a/dom/html/HTMLFrameSetElement.cpp
+++ b/dom/html/HTMLFrameSetElement.cpp
@@ -26,34 +26,34 @@ HTMLFrameSetElement::WrapNode(JSContext 
   return HTMLFrameSetElementBinding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ISUPPORTS_INHERITED(HTMLFrameSetElement, nsGenericHTMLElement,
                             nsIDOMHTMLFrameSetElement)
 
 NS_IMPL_ELEMENT_CLONE(HTMLFrameSetElement)
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLFrameSetElement::SetCols(const nsAString& aCols)
 {
   ErrorResult rv;
   SetCols(aCols, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 HTMLFrameSetElement::GetCols(nsAString& aCols)
 {
   DOMString cols;
   GetCols(cols);
   cols.ToString(aCols);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 HTMLFrameSetElement::SetRows(const nsAString& aRows)
 {
   ErrorResult rv;
   SetRows(aRows, rv);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
@@ -110,17 +110,17 @@ HTMLFrameSetElement::BeforeSetAttr(int32
 nsresult
 HTMLFrameSetElement::GetRowSpec(int32_t *aNumValues,
                                 const nsFramesetSpec** aSpecs)
 {
   NS_PRECONDITION(aNumValues, "Must have a pointer to an integer here!");
   NS_PRECONDITION(aSpecs, "Must have a pointer to an array of nsFramesetSpecs");
   *aNumValues = 0;
   *aSpecs = nullptr;
-  
+
   if (!mRowSpecs) {
     const nsAttrValue* value = GetParsedAttr(nsGkAtoms::rows);
     if (value && value->Type() == nsAttrValue::eString) {
       nsresult rv = ParseRowCol(value->GetStringValue(), mNumRows,
                                 &mRowSpecs);
       NS_ENSURE_SUCCESS(rv, rv);
     }
 
@@ -180,17 +180,17 @@ HTMLFrameSetElement::ParseAttribute(int3
     }
     if (aAttribute == nsGkAtoms::frameborder) {
       return nsGenericHTMLElement::ParseFrameborderValue(aValue, aResult);
     }
     if (aAttribute == nsGkAtoms::border) {
       return aResult.ParseIntWithBounds(aValue, 0, 100);
     }
   }
-  
+
   return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
                                               aResult);
 }
 
 nsChangeHint
 HTMLFrameSetElement::GetAttributeChangeHint(const nsIAtom* aAttribute,
                                             int32_t aModType) const
 {
@@ -221,17 +221,17 @@ HTMLFrameSetElement::ParseRowCol(const n
   static const char16_t sPercent('%');
   static const char16_t sComma(',');
 
   nsAutoString spec(aValue);
   // remove whitespace (Bug 33699) and quotation marks (bug 224598)
   // also remove leading/trailing commas (bug 31482)
   spec.StripChars(" \n\r\t\"\'");
   spec.Trim(",");
-  
+
   // Count the commas. Don't count more than X commas (bug 576447).
   static_assert(NS_MAX_FRAMESET_SPEC_COUNT * sizeof(nsFramesetSpec) < (1 << 30),
                 "Too many frameset specs allowed to allocate");
   int32_t commaX = spec.FindChar(sComma);
   int32_t count = 1;
   while (commaX != kNotFound && count < NS_MAX_FRAMESET_SPEC_COUNT) {
     count++;
     commaX = spec.FindChar(sComma, commaX + 1);
@@ -241,17 +241,17 @@ HTMLFrameSetElement::ParseRowCol(const n
   if (!specs) {
     *aSpecs = nullptr;
     aNumSpecs = 0;
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   // Pre-grab the compat mode; we may need it later in the loop.
   bool isInQuirks = InNavQuirksMode(OwnerDoc());
-      
+
   // Parse each comma separated token
 
   int32_t start = 0;
   int32_t specLen = spec.Length();
 
   for (int32_t i = 0; i < count; i++) {
     // Find our comma
     commaX = spec.FindChar(sComma, start);
@@ -303,17 +303,17 @@ HTMLFrameSetElement::ParseRowCol(const n
 
       // Treat 0* as 1* in quirks mode (bug 40383)
       if (isInQuirks) {
         if ((eFramesetUnit_Relative == specs[i].mUnit) &&
           (0 == specs[i].mValue)) {
           specs[i].mValue = 1;
         }
       }
-        
+
       // Catch zero and negative frame sizes for Nav compatibility
       // Nav resized absolute and relative frames to "1" and
       // percent frames to an even percentage of the width
       //
       //if (isInQuirks && (specs[i].mValue <= 0)) {
       //  if (eFramesetUnit_Percent == specs[i].mUnit) {
       //    specs[i].mValue = 100 / count;
       //  } else {
--- a/dom/html/HTMLHRElement.cpp
+++ b/dom/html/HTMLHRElement.cpp
@@ -191,17 +191,17 @@ HTMLHRElement::IsAttributeMapped(const n
   static const MappedAttributeEntry attributes[] = {
     { &nsGkAtoms::align },
     { &nsGkAtoms::width },
     { &nsGkAtoms::size },
     { &nsGkAtoms::color },
     { &nsGkAtoms::noshade },
     { nullptr },
   };
-  
+
   static const MappedAttributeEntry* const map[] = {
     attributes,
     sCommonAttributeMap,
   };
 
   return FindAttributeDependence(aAttribute, map);
 }
 
--- a/dom/html/HTMLIFrameElement.cpp
+++ b/dom/html/HTMLIFrameElement.cpp
@@ -136,17 +136,17 @@ HTMLIFrameElement::IsAttributeMapped(con
     { nullptr },
   };
 
   static const MappedAttributeEntry* const map[] = {
     attributes,
     sImageAlignAttributeMap,
     sCommonAttributeMap,
   };
-  
+
   return FindAttributeDependence(aAttribute, map);
 }
 
 
 
 nsMapRuleToAttributesFunc
 HTMLIFrameElement::GetAttributeMappingFunction() const
 {
--- a/dom/html/HTMLLinkElement.cpp
+++ b/dom/html/HTMLLinkElement.cpp
@@ -391,17 +391,17 @@ static const DOMTokenListSupportedToken 
   "next",
   "alternate",
   "preconnect",
   "icon",
   "search",
   nullptr
 };
 
-nsDOMTokenList* 
+nsDOMTokenList*
 HTMLLinkElement::RelList()
 {
   if (!mRelList) {
     mRelList = new nsDOMTokenList(this, nsGkAtoms::rel, sSupportedRelValues);
   }
   return mRelList;
 }
 
@@ -477,17 +477,17 @@ HTMLLinkElement::GetStyleSheetInfo(nsASt
   aType.AssignLiteral("text/css");
 
   return;
 }
 
 CORSMode
 HTMLLinkElement::GetCORSMode() const
 {
-  return AttrValueToCORSMode(GetParsedAttr(nsGkAtoms::crossorigin)); 
+  return AttrValueToCORSMode(GetParsedAttr(nsGkAtoms::crossorigin));
 }
 
 EventStates
 HTMLLinkElement::IntrinsicState() const
 {
   return Link::LinkState() | nsGenericHTMLElement::IntrinsicState();
 }
 
--- a/dom/html/HTMLMetaElement.cpp
+++ b/dom/html/HTMLMetaElement.cpp
@@ -105,17 +105,17 @@ HTMLMetaElement::BindToTree(nsIDocument*
 
   if (CSPService::sCSPEnabled && aDocument &&
       AttrValueIs(kNameSpaceID_None, nsGkAtoms::httpEquiv, nsGkAtoms::headerCSP, eIgnoreCase)) {
 
     // only accept <meta http-equiv="Content-Security-Policy" content=""> if it appears
     // in the <head> element.
     Element* headElt = aDocument->GetHeadElement();
     if (headElt && nsContentUtils::ContentIsDescendantOf(this, headElt)) {
-      
+
       nsAutoString content;
       rv = GetContent(content);
       NS_ENSURE_SUCCESS(rv, rv);
       content = nsContentUtils::TrimWhitespace<nsContentUtils::IsHTMLWhitespace>(content);
 
       nsIPrincipal* principal = aDocument->NodePrincipal();
       nsCOMPtr<nsIContentSecurityPolicy> csp;
       nsCOMPtr<nsIDOMDocument> domDoc = do_QueryInterface(aDocument);
--- a/dom/html/HTMLOptGroupElement.h
+++ b/dom/html/HTMLOptGroupElement.h
@@ -34,17 +34,17 @@ public:
                                  bool aNotify) override;
   virtual void RemoveChildAt(uint32_t aIndex, bool aNotify) override;
 
   // nsIContent
   virtual nsresult GetEventTargetParent(
                      EventChainPreVisitor& aVisitor) override;
 
   virtual EventStates IntrinsicState() const override;
- 
+
   virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult,
                          bool aPreallocateChildren) const override;
 
   virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
                                 const nsAttrValue* aValue,
                                 const nsAttrValue* aOldValue,
                                 bool aNotify) override;
 
--- a/dom/html/HTMLOptionsCollection.cpp
+++ b/dom/html/HTMLOptionsCollection.cpp
@@ -65,17 +65,17 @@ HTMLOptionsCollection::GetOptionIndex(El
   int32_t index;
 
   // Make the common case fast
   if (aStartIndex == 0 && aForward) {
     index = mElements.IndexOf(aOption);
     if (index == -1) {
       return NS_ERROR_FAILURE;
     }
-    
+
     *aIndex = index;
     return NS_OK;
   }
 
   int32_t high = mElements.Length();
   int32_t step = aForward ? 1 : -1;
 
   for (index = aStartIndex; index < high && index > -1; index += step) {
@@ -157,17 +157,17 @@ HTMLOptionsCollection::IndexedSetter(uin
     nsresult rv = SetLength(aIndex);
     if (NS_WARN_IF(NS_FAILED(rv))) {
       aError.Throw(rv);
       return;
     }
   }
 
   NS_ASSERTION(aIndex <= mElements.Length(), "SetLength lied");
-  
+
   if (aIndex == mElements.Length()) {
     mSelect->AppendChild(*aOption, aError);
     return;
   }
 
   // Find the option they're talking about and replace it
   // hold a strong reference to follow COM rules.
   RefPtr<HTMLOptionElement> refChild = ItemAsOption(aIndex);
--- a/dom/html/HTMLPreElement.cpp
+++ b/dom/html/HTMLPreElement.cpp
@@ -66,17 +66,17 @@ HTMLPreElement::IsAttributeMapped(const 
   if (!mNodeInfo->Equals(nsGkAtoms::pre)) {
     return nsGenericHTMLElement::IsAttributeMapped(aAttribute);
   }
 
   static const MappedAttributeEntry attributes[] = {
     { &nsGkAtoms::wrap },
     { nullptr },
   };
-  
+
   static const MappedAttributeEntry* const map[] = {
     attributes,
     sCommonAttributeMap,
   };
 
   return FindAttributeDependence(aAttribute, map);
 }
 
--- a/dom/html/HTMLSharedElement.cpp
+++ b/dom/html/HTMLSharedElement.cpp
@@ -71,17 +71,17 @@ HTMLSharedElement::GetHref(nsAString& aV
   nsIDocument* doc = OwnerDoc();
   nsContentUtils::NewURIWithDocumentCharset(
     getter_AddRefs(uri), href, doc, doc->GetFallbackBaseURI());
 
   if (!uri) {
     aValue = href;
     return NS_OK;
   }
-  
+
   nsAutoCString spec;
   uri->GetSpec(spec);
   CopyUTF8toUTF16(spec, aValue);
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
@@ -134,19 +134,19 @@ DirectoryMapAttributesIntoRule(const nsM
 
 NS_IMETHODIMP_(bool)
 HTMLSharedElement::IsAttributeMapped(const nsIAtom* aAttribute) const
 {
   if (mNodeInfo->Equals(nsGkAtoms::dir)) {
     static const MappedAttributeEntry attributes[] = {
       { &nsGkAtoms::type },
       // { &nsGkAtoms::compact }, // XXX
-      { nullptr} 
+      { nullptr}
     };
-  
+
     static const MappedAttributeEntry* const map[] = {
       attributes,
       sCommonAttributeMap,
     };
 
     return FindAttributeDependence(aAttribute, map);
   }
 
--- a/dom/html/HTMLSharedObjectElement.cpp
+++ b/dom/html/HTMLSharedObjectElement.cpp
@@ -237,17 +237,17 @@ HTMLSharedObjectElement::IsHTMLFocusable
 }
 
 nsIContent::IMEState
 HTMLSharedObjectElement::GetDesiredIMEState()
 {
   if (Type() == eType_Plugin) {
     return IMEState(IMEState::PLUGIN);
   }
-   
+
   return nsGenericHTMLElement::GetDesiredIMEState();
 }
 
 NS_IMPL_STRING_ATTR(HTMLSharedObjectElement, Align, align)
 NS_IMPL_STRING_ATTR(HTMLSharedObjectElement, Alt, alt)
 NS_IMPL_STRING_ATTR(HTMLSharedObjectElement, Archive, archive)
 NS_IMPL_STRING_ATTR(HTMLSharedObjectElement, Code, code)
 NS_IMPL_URI_ATTR(HTMLSharedObjectElement, CodeBase, codebase)
--- a/dom/html/HTMLStyleElement.cpp
+++ b/dom/html/HTMLStyleElement.cpp
@@ -144,17 +144,17 @@ HTMLStyleElement::BindToTree(nsIDocument
                                                  aBindingParent,
                                                  aCompileEventHandlers);
   NS_ENSURE_SUCCESS(rv, rv);
 
   void (HTMLStyleElement::*update)() = &HTMLStyleElement::UpdateStyleSheetInternal;
   nsContentUtils::AddScriptRunner(
     NewRunnableMethod("dom::HTMLStyleElement::BindToTree", this, update));
 
-  return rv;  
+  return rv;
 }
 
 void
 HTMLStyleElement::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   nsCOMPtr<nsIDocument> oldDoc = GetUncomposedDoc();
   ShadowRoot* oldShadow = GetContainingShadow();
 
--- a/dom/html/HTMLTableCellElement.cpp
+++ b/dom/html/HTMLTableCellElement.cpp
@@ -491,17 +491,17 @@ HTMLTableCellElement::MapAttributesIntoR
   nsGenericHTMLElement::MapBackgroundAttributesInto(aAttributes, aData);
   nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
 }
 
 NS_IMETHODIMP_(bool)
 HTMLTableCellElement::IsAttributeMapped(const nsIAtom* aAttribute) const
 {
   static const MappedAttributeEntry attributes[] = {
-    { &nsGkAtoms::align }, 
+    { &nsGkAtoms::align },
     { &nsGkAtoms::valign },
     { &nsGkAtoms::nowrap },
 #if 0
     // XXXldb If these are implemented, they might need to move to
     // GetAttributeChangeHint (depending on how, and preferably not).
     { &nsGkAtoms::abbr },
     { &nsGkAtoms::axis },
     { &nsGkAtoms::headers },
--- a/dom/html/HTMLTableColElement.cpp
+++ b/dom/html/HTMLTableColElement.cpp
@@ -10,17 +10,17 @@
 #include "nsAttrValueInlines.h"
 #include "mozilla/GenericSpecifiedValuesInlines.h"
 
 NS_IMPL_NS_NEW_HTML_ELEMENT(TableCol)
 
 namespace mozilla {
 namespace dom {
 
-// use the same protection as ancient code did 
+// use the same protection as ancient code did
 // http://lxr.mozilla.org/classic/source/lib/layout/laytable.c#46
 #define MAX_COLSPAN 1000
 
 HTMLTableColElement::~HTMLTableColElement()
 {
 }
 
 JSObject*
--- a/dom/html/HTMLTableRowElement.cpp
+++ b/dom/html/HTMLTableRowElement.cpp
@@ -273,17 +273,17 @@ HTMLTableRowElement::MapAttributesIntoRu
   nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
 }
 
 NS_IMETHODIMP_(bool)
 HTMLTableRowElement::IsAttributeMapped(const nsIAtom* aAttribute) const
 {
   static const MappedAttributeEntry attributes[] = {
     { &nsGkAtoms::align },
-    { &nsGkAtoms::valign }, 
+    { &nsGkAtoms::valign },
     { &nsGkAtoms::height },
     { nullptr }
   };
 
   static const MappedAttributeEntry* const map[] = {
     attributes,
     sCommonAttributeMap,
     sBackgroundAttributeMap,
--- a/dom/html/ImageDocument.cpp
+++ b/dom/html/ImageDocument.cpp
@@ -365,30 +365,30 @@ ImageDocument::ShrinkToFit()
     return;
   }
 
   // Keep image content alive while changing the attributes.
   nsCOMPtr<Element> imageContent = mImageContent;
   nsCOMPtr<nsIDOMHTMLImageElement> image = do_QueryInterface(imageContent);
   image->SetWidth(std::max(1, NSToCoordFloor(GetRatio() * mImageWidth)));
   image->SetHeight(std::max(1, NSToCoordFloor(GetRatio() * mImageHeight)));
-  
+
   // The view might have been scrolled when zooming in, scroll back to the
   // origin now that we're showing a shrunk-to-window version.
   ScrollImageTo(0, 0, false);
 
   if (!mImageContent) {
     // ScrollImageTo flush destroyed our content.
     return;
   }
 
   SetModeClass(eShrinkToFit);
-  
+
   mImageIsResized = true;
-  
+
   UpdateTitleAndCharset();
 }
 
 NS_IMETHODIMP
 ImageDocument::DOMShrinkToFit()
 {
   ShrinkToFit();
   return NS_OK;
@@ -432,30 +432,30 @@ ImageDocument::RestoreImage()
 {
   if (!mImageContent) {
     return;
   }
   // Keep image content alive while changing the attributes.
   nsCOMPtr<Element> imageContent = mImageContent;
   imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::width, true);
   imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::height, true);
-  
+
   if (ImageIsOverflowing()) {
     if (!mImageIsOverflowingVertically) {
       SetModeClass(eOverflowingHorizontalOnly);
     } else {
       SetModeClass(eOverflowingVertical);
     }
   }
   else {
     SetModeClass(eNone);
   }
-  
+
   mImageIsResized = false;
-  
+
   UpdateTitleAndCharset();
 }
 
 NS_IMETHODIMP
 ImageDocument::DOMRestoreImage()
 {
   RestoreImage();
   return NS_OK;
@@ -753,36 +753,36 @@ ImageDocument::CheckOverflowing(bool cha
       }
     }
   }
   mFirstResize = false;
 
   return NS_OK;
 }
 
-void 
+void
 ImageDocument::UpdateTitleAndCharset()
 {
   nsAutoCString typeStr;
   nsCOMPtr<imgIRequest> imageRequest;
   nsCOMPtr<nsIImageLoadingContent> imageLoader = do_QueryInterface(mImageContent);
   if (imageLoader) {
     imageLoader->GetRequest(nsIImageLoadingContent::CURRENT_REQUEST,
                             getter_AddRefs(imageRequest));
   }
-    
+
   if (imageRequest) {
     nsXPIDLCString mimeType;
     imageRequest->GetMimeType(getter_Copies(mimeType));
     ToUpperCase(mimeType);
     nsXPIDLCString::const_iterator start, end;
     mimeType.BeginReading(start);
     mimeType.EndReading(end);
     nsXPIDLCString::const_iterator iter = end;
-    if (FindInReadable(NS_LITERAL_CSTRING("IMAGE/"), start, iter) && 
+    if (FindInReadable(NS_LITERAL_CSTRING("IMAGE/"), start, iter) &&
         iter != end) {
       // strip out "X-" if any
       if (*iter == 'X') {
         ++iter;
         if (iter != end && *iter == '-') {
           ++iter;
           if (iter == end) {
             // looks like "IMAGE/X-" is the type??  Bail out of here.
@@ -804,17 +804,17 @@ ImageDocument::UpdateTitleAndCharset()
     ratioStr.AppendInt(NSToCoordFloor(GetRatio() * 100));
 
     const char16_t* formatString[1] = { ratioStr.get() };
     mStringBundle->FormatStringFromName(u"ScaledImage",
                                         formatString, 1,
                                         getter_Copies(status));
   }
 
-  static const char* const formatNames[4] = 
+  static const char* const formatNames[4] =
   {
     "ImageTitleWithNeitherDimensionsNorFile",
     "ImageTitleWithoutDimensions",
     "ImageTitleWithDimensions2",
     "ImageTitleWithDimensions2AndFile",
   };
 
   MediaDocument::UpdateTitleAndCharset(typeStr, mChannel, formatNames,
--- a/dom/html/MediaDocument.cpp
+++ b/dom/html/MediaDocument.cpp
@@ -94,18 +94,18 @@ MediaDocumentStreamListener::OnDataAvail
 {
   if (mNextStream) {
     return mNextStream->OnDataAvailable(request, ctxt, inStr, sourceOffset, count);
   }
 
   return NS_OK;
 }
 
-// default format names for MediaDocument. 
-const char* const MediaDocument::sFormatNames[4] = 
+// default format names for MediaDocument.
+const char* const MediaDocument::sFormatNames[4] =
 {
   "MediaTitleWithNoInfo",    // eWithNoInfo
   "MediaTitleWithFile",      // eWithFile
   "",                        // eWithDim
   ""                         // eWithDimAndFile
 };
 
 MediaDocument::MediaDocument()
@@ -147,34 +147,34 @@ MediaDocument::StartDocumentLoad(const c
 {
   nsresult rv = nsDocument::StartDocumentLoad(aCommand, aChannel, aLoadGroup,
                                               aContainer, aDocListener, aReset,
                                               aSink);
   if (NS_FAILED(rv)) {
     return rv;
   }
 
-  // We try to set the charset of the current document to that of the 
-  // 'genuine' (as opposed to an intervening 'chrome') parent document 
+  // We try to set the charset of the current document to that of the
+  // 'genuine' (as opposed to an intervening 'chrome') parent document
   // that may be in a different window/tab. Even if we fail here,
-  // we just return NS_OK because another attempt is made in 
-  // |UpdateTitleAndCharset| and the worst thing possible is a mangled 
+  // we just return NS_OK because another attempt is made in
+  // |UpdateTitleAndCharset| and the worst thing possible is a mangled
   // filename in the titlebar and the file picker.
 
   // Note that we
-  // exclude UTF-8 as 'invalid' because UTF-8 is likely to be the charset 
-  // of a chrome document that has nothing to do with the actual content 
-  // whose charset we want to know. Even if "the actual content" is indeed 
-  // in UTF-8, we don't lose anything because the default empty value is 
-  // considered synonymous with UTF-8. 
-    
+  // exclude UTF-8 as 'invalid' because UTF-8 is likely to be the charset
+  // of a chrome document that has nothing to do with the actual content
+  // whose charset we want to know. Even if "the actual content" is indeed
+  // in UTF-8, we don't lose anything because the default empty value is
+  // considered synonymous with UTF-8.
+
   nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(aContainer));
 
   // not being able to set the charset is not critical.
-  NS_ENSURE_TRUE(docShell, NS_OK); 
+  NS_ENSURE_TRUE(docShell, NS_OK);
 
   const Encoding* encoding;
   int32_t source;
   nsCOMPtr<nsIPrincipal> principal;
   // opening in a new tab
   docShell->GetParentCharset(encoding, &source, getter_AddRefs(principal));
 
   if (encoding && encoding != UTF_8_ENCODING &&
@@ -288,33 +288,33 @@ MediaDocument::GetFileName(nsAString& aR
   nsAutoCString fileName;
   url->GetFileName(fileName);
   if (fileName.IsEmpty())
     return;
 
   nsAutoCString docCharset;
   // Now that the charset is set in |StartDocumentLoad| to the charset of
   // the document viewer instead of a bogus value ("windows-1252" set in
-  // |nsDocument|'s ctor), the priority is given to the current charset. 
-  // This is necessary to deal with a media document being opened in a new 
-  // window or a new tab, in which case |originCharset| of |nsIURI| is not 
+  // |nsDocument|'s ctor), the priority is given to the current charset.
+  // This is necessary to deal with a media document being opened in a new
+  // window or a new tab, in which case |originCharset| of |nsIURI| is not
   // reliable.
-  if (mCharacterSetSource != kCharsetUninitialized) {  
+  if (mCharacterSetSource != kCharsetUninitialized) {
     mCharacterSet->Name(docCharset);
-  } else {  
+  } else {
     // resort to |originCharset|
     url->GetOriginCharset(docCharset);
     auto encoding = Encoding::ForLabelNoReplacement(docCharset);
     if (encoding) {
       SetDocumentCharacterSet(WrapNotNull(encoding));
     }
   }
 
   nsresult rv;
-  nsCOMPtr<nsITextToSubURI> textToSubURI = 
+  nsCOMPtr<nsITextToSubURI> textToSubURI =
     do_GetService(NS_ITEXTTOSUBURI_CONTRACTID, &rv);
   if (NS_SUCCEEDED(rv)) {
     // UnEscapeURIForUI always succeeds
     textToSubURI->UnEscapeURIForUI(docCharset, fileName, aResult);
   } else {
     CopyUTF8toUTF16(fileName, aResult);
   }
 }
@@ -325,17 +325,17 @@ MediaDocument::LinkStylesheet(const nsAS
   RefPtr<mozilla::dom::NodeInfo> nodeInfo;
   nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::link, nullptr,
                                            kNameSpaceID_XHTML,
                                            nsIDOMNode::ELEMENT_NODE);
 
   RefPtr<nsGenericHTMLElement> link = NS_NewHTMLLinkElement(nodeInfo.forget());
   NS_ENSURE_TRUE(link, NS_ERROR_OUT_OF_MEMORY);
 
-  link->SetAttr(kNameSpaceID_None, nsGkAtoms::rel, 
+  link->SetAttr(kNameSpaceID_None, nsGkAtoms::rel,
                 NS_LITERAL_STRING("stylesheet"), true);
 
   link->SetAttr(kNameSpaceID_None, nsGkAtoms::href, aStylesheet, true);
 
   Element* head = GetHeadElement();
   return head->AppendChildTo(link, false);
 }
 
@@ -354,17 +354,17 @@ MediaDocument::LinkScript(const nsAStrin
                   NS_LITERAL_STRING("text/javascript"), true);
 
   script->SetAttr(kNameSpaceID_None, nsGkAtoms::src, aScript, true);
 
   Element* head = GetHeadElement();
   return head->AppendChildTo(script, false);
 }
 
-void 
+void
 MediaDocument::UpdateTitleAndCharset(const nsACString& aTypeStr,
                                      nsIChannel* aChannel,
                                      const char* const* aFormatNames,
                                      int32_t aWidth, int32_t aHeight,
                                      const nsAString& aStatus)
 {
   nsXPIDLString fileStr;
   GetFileName(fileStr, aChannel);
@@ -376,66 +376,66 @@ MediaDocument::UpdateTitleAndCharset(con
     // if we got a valid size (not all media have a size)
     if (aWidth != 0 && aHeight != 0) {
       nsAutoString widthStr;
       nsAutoString heightStr;
       widthStr.AppendInt(aWidth);
       heightStr.AppendInt(aHeight);
       // If we got a filename, display it
       if (!fileStr.IsEmpty()) {
-        const char16_t *formatStrings[4]  = {fileStr.get(), typeStr.get(), 
+        const char16_t *formatStrings[4]  = {fileStr.get(), typeStr.get(),
           widthStr.get(), heightStr.get()};
         NS_ConvertASCIItoUTF16 fmtName(aFormatNames[eWithDimAndFile]);
         mStringBundle->FormatStringFromName(fmtName.get(), formatStrings, 4,
                                             getter_Copies(title));
-      } 
+      }
       else {
-        const char16_t *formatStrings[3]  = {typeStr.get(), widthStr.get(), 
+        const char16_t *formatStrings[3]  = {typeStr.get(), widthStr.get(),
           heightStr.get()};
         NS_ConvertASCIItoUTF16 fmtName(aFormatNames[eWithDim]);
         mStringBundle->FormatStringFromName(fmtName.get(), formatStrings, 3,
                                             getter_Copies(title));
       }
-    } 
+    }
     else {
     // If we got a filename, display it
       if (!fileStr.IsEmpty()) {
         const char16_t *formatStrings[2] = {fileStr.get(), typeStr.get()};
         NS_ConvertASCIItoUTF16 fmtName(aFormatNames[eWithFile]);
         mStringBundle->FormatStringFromName(fmtName.get(), formatStrings, 2,
                                             getter_Copies(title));
       }
       else {
         const char16_t *formatStrings[1] = {typeStr.get()};
         NS_ConvertASCIItoUTF16 fmtName(aFormatNames[eWithNoInfo]);
         mStringBundle->FormatStringFromName(fmtName.get(), formatStrings, 1,
                                             getter_Copies(title));
       }
     }
-  } 
+  }
 
   // set it on the document
   if (aStatus.IsEmpty()) {
     SetTitle(title);
   }
   else {
     nsXPIDLString titleWithStatus;
     const nsPromiseFlatString& status = PromiseFlatString(aStatus);
     const char16_t *formatStrings[2] = {title.get(), status.get()};
     mStringBundle->FormatStringFromName(u"TitleWithStatus", formatStrings, 2,
                                         getter_Copies(titleWithStatus));
     SetTitle(titleWithStatus);
   }
 }
 
-void 
+void
 MediaDocument::SetScriptGlobalObject(nsIScriptGlobalObject* aGlobalObject)
 {
     nsHTMLDocument::SetScriptGlobalObject(aGlobalObject);
     if (!mDocumentElementInserted && aGlobalObject) {
         mDocumentElementInserted = true;
         nsContentUtils::AddScriptRunner(
-            new nsDocElementCreatedNotificationRunner(this));        
+            new nsDocElementCreatedNotificationRunner(this));
     }
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/MediaDocument.h
+++ b/dom/html/MediaDocument.h
@@ -48,40 +48,40 @@ protected:
   friend class MediaDocumentStreamListener;
   nsresult StartLayout();
 
   void GetFileName(nsAString& aResult, nsIChannel* aChannel);
 
   nsresult LinkStylesheet(const nsAString& aStylesheet);
   nsresult LinkScript(const nsAString& aScript);
 
-  // |aFormatNames[]| needs to have four elements in the following order: 
+  // |aFormatNames[]| needs to have four elements in the following order:
   // a format name with neither dimension nor file, a format name with
   // filename but w/o dimension, a format name with dimension but w/o filename,
   // a format name with both of them.  For instance, it can have
   // "ImageTitleWithNeitherDimensionsNorFile", "ImageTitleWithoutDimensions",
   // "ImageTitleWithDimesions2",  "ImageTitleWithDimensions2AndFile".
   //
   // Also see MediaDocument.properties if you want to define format names
   // for a new subclass. aWidth and aHeight are pixels for |ImageDocument|,
-  // but could be in other units for other 'media', in which case you have to 
-  // define format names accordingly. 
+  // but could be in other units for other 'media', in which case you have to
+  // define format names accordingly.
   void UpdateTitleAndCharset(const nsACString&  aTypeStr,
                              nsIChannel* aChannel,
                              const char* const* aFormatNames = sFormatNames,
                              int32_t            aWidth = 0,
                              int32_t            aHeight = 0,
                              const nsAString&   aStatus = EmptyString());
 
   nsCOMPtr<nsIStringBundle>     mStringBundle;
   static const char* const      sFormatNames[4];
-  
+
 private:
   enum                          {eWithNoInfo, eWithFile, eWithDim, eWithDimAndFile};
-  bool                          mDocumentElementInserted;   
+  bool                          mDocumentElementInserted;
 };
 
 
 class MediaDocumentStreamListener: public nsIStreamListener
 {
 protected:
   virtual ~MediaDocumentStreamListener();
 
--- a/dom/html/nsDOMStringMap.cpp
+++ b/dom/html/nsDOMStringMap.cpp
@@ -112,17 +112,17 @@ nsDOMStringMap::NamedSetter(const nsAStr
 void
 nsDOMStringMap::NamedDeleter(const nsAString& aProp, bool& found)
 {
   // Currently removing property, attribute is already removed.
   if (mRemovingProp) {
     found = false;
     return;
   }
-  
+
   nsAutoString attr;
   if (!DataPropToAttr(aProp, attr)) {
     found = false;
     return;
   }
 
   nsCOMPtr<nsIAtom> attrAtom = NS_Atomize(attr);
   MOZ_ASSERT(attrAtom, "Should be infallible");
@@ -224,17 +224,17 @@ bool nsDOMStringMap::AttrToDataProp(cons
   // call is not that fast.
 
   // Iterate through attrName by character to form property name.
   // If there is a sequence of "-" followed by a character in the range "a" to
   // "z" then replace with upper case letter.
   // Otherwise append character to property name.
   for (; cur < end; ++cur) {
     const char16_t* next = cur + 1;
-    if (char16_t('-') == *cur && next < end && 
+    if (char16_t('-') == *cur && next < end &&
         char16_t('a') <= *next && *next <= char16_t('z')) {
       // Upper case the lower case letters that follow a "-".
       aResult.Append(*next - 'a' + 'A');
       // Consume character to account for "-" character.
       ++cur;
     } else {
       // Simply append character if camel case is not necessary.
       aResult.Append(*cur);
--- a/dom/html/nsGenericHTMLElement.cpp
+++ b/dom/html/nsGenericHTMLElement.cpp
@@ -528,17 +528,17 @@ nsGenericHTMLElement::BindToTree(nsIDocu
 }
 
 void
 nsGenericHTMLElement::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   if (IsInUncomposedDoc()) {
     UnregAccessKey();
   }
-  
+
   RemoveFromNameTable();
 
   if (GetContentEditableValue() == eTrue) {
     //XXXsmaug Fix this for Shadow DOM, bug 1066965.
     nsCOMPtr<nsIHTMLDocument> htmlDocument = do_QueryInterface(GetUncomposedDoc());
     if (htmlDocument) {
       htmlDocument->ChangeContentEditableCount(this, -1);
     }
@@ -610,17 +610,17 @@ nsGenericHTMLElement::CheckHandleEventFo
 {
   NS_PRECONDITION(nsCOMPtr<Link>(do_QueryObject(this)),
                   "should be called only when |this| implements |Link|");
 
   if (!aVisitor.mPresContext) {
     // We need a pres context to do link stuff. Some events (e.g. mutation
     // events) don't have one.
     // XXX: ideally, shouldn't we be able to do what we need without one?
-    return false; 
+    return false;
   }
 
   //Need to check if we hit an imagemap area and if so see if we're handling
   //the event on that map or on a link farther up the tree.  If we're on a
   //link farther up, do nothing.
   nsCOMPtr<nsIContent> target = aVisitor.mPresContext->EventStateManager()->
     GetEventTargetContent(aVisitor.mEvent);
 
@@ -940,17 +940,17 @@ nsGenericHTMLElement::ParseAttribute(int
                                      nsIAtom* aAttribute,
                                      const nsAString& aValue,
                                      nsAttrValue& aResult)
 {
   if (aNamespaceID == kNameSpaceID_None) {
     if (aAttribute == nsGkAtoms::dir) {
       return aResult.ParseEnumValue(aValue, kDirTable, false);
     }
-  
+
     if (aAttribute == nsGkAtoms::tabindex) {
       return aResult.ParseIntValue(aValue);
     }
 
     if (aAttribute == nsGkAtoms::referrerpolicy) {
       return ParseReferrerAttribute(aValue, aResult);
     }
 
@@ -1009,17 +1009,17 @@ nsGenericHTMLElement::ParseBackgroundAtt
 }
 
 bool
 nsGenericHTMLElement::IsAttributeMapped(const nsIAtom* aAttribute) const
 {
   static const MappedAttributeEntry* const map[] = {
     sCommonAttributeMap
   };
-  
+
   return FindAttributeDependence(aAttribute, map);
 }
 
 nsMapRuleToAttributesFunc
 nsGenericHTMLElement::GetAttributeMappingFunction() const
 {
   return &MapCommonAttributesInto;
 }
@@ -1514,17 +1514,17 @@ nsGenericHTMLElement::MapImageBorderAttr
 {
   if (!(aData->ShouldComputeStyleStruct(NS_STYLE_INHERIT_BIT(Border))))
     return;
 
   // border: pixels
   const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::border);
   if (!value)
     return;
-  
+
   nscoord val = 0;
   if (value->Type() == nsAttrValue::eInteger)
     val = value->GetIntegerValue();
 
   aData->SetPixelValueIfUnset(eCSSProperty_border_top_width, (float)val);
   aData->SetPixelValueIfUnset(eCSSProperty_border_right_width, (float)val);
   aData->SetPixelValueIfUnset(eCSSProperty_border_bottom_width, (float)val);
   aData->SetPixelValueIfUnset(eCSSProperty_border_left_width, (float)val);
@@ -1831,17 +1831,17 @@ void
 nsGenericHTMLFormElement::ClearForm(bool aRemoveFromForm, bool aUnbindOrDelete)
 {
   NS_ASSERTION((mForm != nullptr) == HasFlag(ADDED_TO_FORM),
                "Form control should have had flag set correctly");
 
   if (!mForm) {
     return;
   }
-  
+
   if (aRemoveFromForm) {
     nsAutoString nameVal, idVal;
     GetAttr(kNameSpaceID_None, nsGkAtoms::name, nameVal);
     GetAttr(kNameSpaceID_None, nsGkAtoms::id, idVal);
 
     mForm->RemoveElement(this, true);
 
     if (!nameVal.IsEmpty()) {
@@ -1933,17 +1933,17 @@ nsGenericHTMLFormElement::BindToTree(nsI
   return NS_OK;
 }
 
 void
 nsGenericHTMLFormElement::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   // Save state before doing anything
   SaveState();
-  
+
   if (mForm) {
     // Might need to unset mForm
     if (aNullParent) {
       // No more parent means no more form
       ClearForm(true, true);
     } else {
       // Recheck whether we should still have an mForm.
       if (HasAttr(kNameSpaceID_None, nsGkAtoms::form) ||
@@ -2173,17 +2173,17 @@ nsGenericHTMLFormElement::IntrinsicState
     if (IsDisabled()) {
       state |= NS_EVENT_STATE_DISABLED;
       state &= ~NS_EVENT_STATE_ENABLED;
     } else {
       state &= ~NS_EVENT_STATE_DISABLED;
       state |= NS_EVENT_STATE_ENABLED;
     }
   }
-  
+
   if (mForm && mForm->IsDefaultSubmitElement(this)) {
       NS_ASSERTION(IsSubmitControl(),
                    "Default submit element that isn't a submit control.");
       // We are the default submit element (:default)
       state |= NS_EVENT_STATE_DEFAULT;
   }
 
   // Make the text controls read-write
@@ -2289,17 +2289,17 @@ nsGenericHTMLFormElement::FormIdUpdated(
 
   NS_ASSERTION(element->IsHTMLElement(), "aData should be an HTML element");
 
   element->UpdateFormOwner(false, aNewElement);
 
   return true;
 }
 
-bool 
+bool
 nsGenericHTMLFormElement::IsElementDisabledForEvents(EventMessage aMessage,
                                                      nsIFrame* aFrame)
 {
   switch (aMessage) {
     case eMouseMove:
     case eMouseOver:
     case eMouseOut:
     case eMouseEnter:
--- a/dom/html/nsGenericHTMLElement.h
+++ b/dom/html/nsGenericHTMLElement.h
@@ -638,17 +638,17 @@ public:
    * A style attribute mapping function for the most common attributes, to be
    * called by subclasses' attribute mapping functions.  Currently handles
    * dir, lang and hidden, could handle others.
    *
    * @param aAttributes the list of attributes to map
    * @param aData the returned rule data [INOUT]
    * @see GetAttributeMappingFunction
    */
-  static void MapCommonAttributesInto(const nsMappedAttributes* aAttributes, 
+  static void MapCommonAttributesInto(const nsMappedAttributes* aAttributes,
                                       mozilla::GenericSpecifiedValues* aGenericData);
   /**
    * Same as MapCommonAttributesInto except that it does not handle hidden.
    *
    * @param aAttributes the list of attributes to map
    * @param aData the returned rule data [INOUT]
    * @see GetAttributeMappingFunction
    */
@@ -657,17 +657,17 @@ public:
 
   static const MappedAttributeEntry sCommonAttributeMap[];
   static const MappedAttributeEntry sImageMarginSizeAttributeMap[];
   static const MappedAttributeEntry sImageBorderAttributeMap[];
   static const MappedAttributeEntry sImageAlignAttributeMap[];
   static const MappedAttributeEntry sDivAlignAttributeMap[];
   static const MappedAttributeEntry sBackgroundAttributeMap[];
   static const MappedAttributeEntry sBackgroundColorAttributeMap[];
-  
+
   /**
    * Helper to map the align attribute into a style struct.
    *
    * @param aAttributes the list of attributes to map
    * @param aData the returned rule data [INOUT]
    * @see GetAttributeMappingFunction
    */
   static void MapImageAlignAttributeInto(const nsMappedAttributes* aAttributes,
--- a/dom/html/nsHTMLDNSPrefetch.cpp
+++ b/dom/html/nsHTMLDNSPrefetch.cpp
@@ -46,37 +46,37 @@ static nsHTMLDNSPrefetch::nsListener *sD
 
 nsresult
 nsHTMLDNSPrefetch::Initialize()
 {
   if (sInitialized) {
     NS_WARNING("Initialize() called twice");
     return NS_OK;
   }
-  
+
   sPrefetches = new nsHTMLDNSPrefetch::nsDeferrals();
   NS_ADDREF(sPrefetches);
 
   sDNSListener = new nsHTMLDNSPrefetch::nsListener();
   NS_ADDREF(sDNSListener);
 
   sPrefetches->Activate();
 
   Preferences::AddBoolVarCache(&sDisablePrefetchHTTPSPref,
                                "network.dns.disablePrefetchFromHTTPS");
-  
+
   // Default is false, so we need an explicit call to prime the cache.
-  sDisablePrefetchHTTPSPref = 
+  sDisablePrefetchHTTPSPref =
     Preferences::GetBool("network.dns.disablePrefetchFromHTTPS", true);
-  
+
   NS_IF_RELEASE(sDNSService);
   nsresult rv;
   rv = CallGetService(kDNSServiceCID, &sDNSService);
   if (NS_FAILED(rv)) return rv;
-  
+
   if (IsNeckoChild())
     NeckoChild::InitNeckoChild();
 
   sInitialized = true;
   return NS_OK;
 }
 
 nsresult
@@ -85,17 +85,17 @@ nsHTMLDNSPrefetch::Shutdown()
   if (!sInitialized) {
     NS_WARNING("Not Initialized");
     return NS_OK;
   }
   sInitialized = false;
   NS_IF_RELEASE(sDNSService);
   NS_IF_RELEASE(sPrefetches);
   NS_IF_RELEASE(sDNSListener);
-  
+
   return NS_OK;
 }
 
 bool
 nsHTMLDNSPrefetch::IsAllowed (nsIDocument *aDocument)
 {
   // There is no need to do prefetch on non UI scenarios such as XMLHttpRequest.
   return aDocument->IsDNSPrefetchAllowed() && aDocument->GetWindow();
@@ -324,17 +324,17 @@ nsHTMLDNSPrefetch::nsDeferrals::Add(uint
   mEntries[mHead].mElement = aElement;
   mHead = (mHead + 1) & sMaxDeferredMask;
 
   if (!mActiveLoaderCount && !mTimerArmed && mTimer) {
     mTimerArmed = true;
     mTimer->InitWithNamedFuncCallback(Tick, this, 2000, nsITimer::TYPE_ONE_SHOT,
                                       "nsHTMLDNSPrefetch::nsDeferrals::Tick");
   }
-  
+
   return NS_OK;
 }
 
 void
 nsHTMLDNSPrefetch::nsDeferrals::SubmitQueue()
 {
   NS_ASSERTION(NS_IsMainThread(), "nsDeferrals::SubmitQueue must be on main thread");
   nsCString hostName;
@@ -395,18 +395,18 @@ nsHTMLDNSPrefetch::nsDeferrals::SubmitQu
     mTimerArmed = false;
     mTimer->Cancel();
   }
 }
 
 void
 nsHTMLDNSPrefetch::nsDeferrals::Activate()
 {
-  // Register as an observer for the document loader  
-  nsCOMPtr<nsIWebProgress> progress = 
+  // Register as an observer for the document loader
+  nsCOMPtr<nsIWebProgress> progress =
     do_GetService(NS_DOCUMENTLOADER_SERVICE_CONTRACTID);
   if (progress)
     progress->AddProgressListener(this, nsIWebProgress::NOTIFY_STATE_DOCUMENT);
 
   // Register as an observer for xpcom shutdown events so we can drop any element refs
   nsCOMPtr<nsIObserverService> observerService =
     mozilla::services::GetObserverService();
   if (observerService)
@@ -424,103 +424,103 @@ nsHTMLDNSPrefetch::nsDeferrals::RemoveUn
       mEntries[tail].mElement = nullptr;
     }
     tail = (tail + 1) & sMaxDeferredMask;
   }
 }
 
 // nsITimer related method
 
-void 
+void
 nsHTMLDNSPrefetch::nsDeferrals::Tick(nsITimer *aTimer, void *aClosure)
 {
   nsHTMLDNSPrefetch::nsDeferrals *self = (nsHTMLDNSPrefetch::nsDeferrals *) aClosure;
 
   NS_ASSERTION(NS_IsMainThread(), "nsDeferrals::Tick must be on main thread");
   NS_ASSERTION(self->mTimerArmed, "Timer is not armed");
-  
+
   self->mTimerArmed = false;
 
   // If the queue is not submitted here because there are outstanding pages being loaded,
-  // there is no need to rearm the timer as the queue will be submtited when those 
+  // there is no need to rearm the timer as the queue will be submtited when those
   // loads complete.
-  if (!self->mActiveLoaderCount) 
+  if (!self->mActiveLoaderCount)
     self->SubmitQueue();
 }
 
 //////////// nsIWebProgressListener methods
 
-NS_IMETHODIMP 
-nsHTMLDNSPrefetch::nsDeferrals::OnStateChange(nsIWebProgress* aWebProgress, 
-                                              nsIRequest *aRequest, 
-                                              uint32_t progressStateFlags, 
+NS_IMETHODIMP
+nsHTMLDNSPrefetch::nsDeferrals::OnStateChange(nsIWebProgress* aWebProgress,
+                                              nsIRequest *aRequest,
+                                              uint32_t progressStateFlags,
                                               nsresult aStatus)
 {
   // The FIFO has no lock, so it can only be accessed on main thread
   NS_ASSERTION(NS_IsMainThread(), "nsDeferrals::OnStateChange must be on main thread");
-  
+
   if (progressStateFlags & STATE_IS_DOCUMENT) {
     if (progressStateFlags & STATE_STOP) {
 
       // Initialization may have missed a STATE_START notification, so do
       // not go negative
       if (mActiveLoaderCount)
         mActiveLoaderCount--;
 
       if (!mActiveLoaderCount)
         SubmitQueue();
     }
     else if (progressStateFlags & STATE_START)
       mActiveLoaderCount++;
   }
-            
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsHTMLDNSPrefetch::nsDeferrals::OnProgressChange(nsIWebProgress *aProgress,
-                                                 nsIRequest *aRequest, 
-                                                 int32_t curSelfProgress, 
-                                                 int32_t maxSelfProgress, 
-                                                 int32_t curTotalProgress, 
+                                                 nsIRequest *aRequest,
+                                                 int32_t curSelfProgress,
+                                                 int32_t maxSelfProgress,
+                                                 int32_t curTotalProgress,
                                                  int32_t maxTotalProgress)
 {
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsHTMLDNSPrefetch::nsDeferrals::OnLocationChange(nsIWebProgress* aWebProgress,
                                                  nsIRequest* aRequest,
                                                  nsIURI *location,
                                                  uint32_t aFlags)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHTMLDNSPrefetch::nsDeferrals::OnStatusChange(nsIWebProgress* aWebProgress,
                                                nsIRequest* aRequest,
                                                nsresult aStatus,
                                                const char16_t* aMessage)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsHTMLDNSPrefetch::nsDeferrals::OnSecurityChange(nsIWebProgress *aWebProgress, 
-                                                 nsIRequest *aRequest, 
+NS_IMETHODIMP
+nsHTMLDNSPrefetch::nsDeferrals::OnSecurityChange(nsIWebProgress *aWebProgress,
+                                                 nsIRequest *aRequest,
                                                  uint32_t state)
 {
   return NS_OK;
 }
 
 //////////// nsIObserver method
 
 NS_IMETHODIMP
 nsHTMLDNSPrefetch::nsDeferrals::Observe(nsISupports *subject,
                                         const char *topic,
                                         const char16_t *data)
 {
   if (!strcmp(topic, "xpcom-shutdown"))
     Flush();
-  
+
   return NS_OK;
 }
--- a/dom/html/nsHTMLDNSPrefetch.h
+++ b/dom/html/nsHTMLDNSPrefetch.h
@@ -24,33 +24,33 @@ class Link;
 } // namespace mozilla
 
 namespace mozilla {
 namespace net {
 class NeckoParent;
 } // namespace net
 } // namespace mozilla
 
-class nsHTMLDNSPrefetch 
+class nsHTMLDNSPrefetch
 {
 public:
   // The required aDocument parameter is the context requesting the prefetch - under
   // certain circumstances (e.g. headers, or security context) associated with
-  // the context the prefetch will not be performed. 
+  // the context the prefetch will not be performed.
   static bool     IsAllowed(nsIDocument *aDocument);
- 
+
   static nsresult Initialize();
   static nsresult Shutdown();
-  
+
   // Call one of the Prefetch* methods to start the lookup.
   //
   // The URI versions will defer DNS lookup until pageload is
-  // complete, while the string versions submit the lookup to 
+  // complete, while the string versions submit the lookup to
   // the DNS system immediately. The URI version is somewhat lighter
-  // weight, but its request is also more likely to be dropped due to a 
+  // weight, but its request is also more likely to be dropped due to a
   // full queue and it may only be used from the main thread.
 
   static nsresult PrefetchHigh(mozilla::dom::Link *aElement);
   static nsresult PrefetchMedium(mozilla::dom::Link *aElement);
   static nsresult PrefetchLow(mozilla::dom::Link *aElement);
   static nsresult PrefetchHigh(const nsAString &host,
                                const mozilla::OriginAttributes &aOriginAttributes);
   static nsresult PrefetchMedium(const nsAString &host,
@@ -72,67 +72,67 @@ private:
   static nsresult Prefetch(mozilla::dom::Link *aElement, uint16_t flags);
   static nsresult CancelPrefetch(const nsAString &hostname,
                                  const mozilla::OriginAttributes &aOriginAttributes,
                                  uint16_t flags,
                                  nsresult aReason);
   static nsresult CancelPrefetch(mozilla::dom::Link *aElement,
                                  uint16_t flags,
                                  nsresult aReason);
-  
+
 public:
   class nsListener final : public nsIDNSListener
   {
     // This class exists to give a safe callback no-op DNSListener
   public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIDNSLISTENER
 
     nsListener()  {}
   private:
     ~nsListener() {}
   };
-  
+
   class nsDeferrals final: public nsIWebProgressListener
                          , public nsSupportsWeakReference
                          , public nsIObserver
   {
   public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSIWEBPROGRESSLISTENER
     NS_DECL_NSIOBSERVER
 
     nsDeferrals();
-    
+
     void Activate();
     nsresult Add(uint16_t flags, mozilla::dom::Link *aElement);
-    
+
     void RemoveUnboundLinks();
 
   private:
     ~nsDeferrals();
     void Flush();
-    
+
     void SubmitQueue();
-    
+
     uint16_t                  mHead;
     uint16_t                  mTail;
     uint32_t                  mActiveLoaderCount;
 
     nsCOMPtr<nsITimer>        mTimer;
     bool                      mTimerArmed;
     static void Tick(nsITimer *aTimer, void *aClosure);
-    
+
     static const int          sMaxDeferred = 512;  // keep power of 2 for masking
     static const int          sMaxDeferredMask = (sMaxDeferred - 1);
-    
+
     struct deferred_entry
     {
       uint16_t                         mFlags;
       // Link implementation clears this raw pointer in its destructor.
       mozilla::dom::Link*              mElement;
     } mEntries[sMaxDeferred];
   };
 
   friend class mozilla::net::NeckoParent;
 };
 
-#endif 
+#endif
--- a/dom/html/nsIFormProcessor.h
+++ b/dom/html/nsIFormProcessor.h
@@ -3,17 +3,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 
 /**
  * MODULE NOTES:
  * @created  kmcclusk 10/19/99
- * 
+ *
  */
 
 #ifndef nsIFormProcessor_h__
 #define nsIFormProcessor_h__
 
 #include "nsISupports.h"
 #include "nsTArrayForwardDeclare.h"
 
@@ -36,45 +36,45 @@ class nsIDOMHTMLElement;
 // The before and after methods would be passed a nsISupports interface. The During would
 // Have the same method signature as ProcessValue.
 
 
 class nsIFormProcessor : public nsISupports {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IFORMPROCESSOR_IID)
 
-  /* ProcessValue is called for each name value pair that is 
+  /* ProcessValue is called for each name value pair that is
    * about to be submitted for both "get" and "post" form submissions.
    *
    * The formprocessor is registered as a service that gets called for
    * every form submission.
    *
    *   @param aElement element which the attribute/value pair is submitted for
    *   @param aName    value of the form element name attribute about to be submitted
-   *   @param aValue   On entry it contains the value about to be submitted for aName. 
+   *   @param aValue   On entry it contains the value about to be submitted for aName.
    *                   On exit it contains the value which will actually be submitted for aName.
-   *                   
+   *
    */
   virtual nsresult ProcessValue(nsIDOMHTMLElement* aElement,
                                 const nsAString& aName,
                                 nsAString& aValue) = 0;
 
   /**
    * The same as above, but with the element unpacked so that this can be
    * called as the result of an IPC message.
    */
   virtual nsresult ProcessValueIPC(const nsAString& aOldValue,
                                    const nsAString& aKeyType,
                                    const nsAString& aChallenge,
                                    const nsAString& aKeyParams,
                                    nsAString& newValue) = 0;
 
-  /* Provide content for a form element. This method provides a mechanism to provide 
+  /* Provide content for a form element. This method provides a mechanism to provide
    * content which comes from a source other than the document (i.e. a local database)
-   *  
+   *
    *   @param aFormType   Type of form to get content for.
    *   @param aOptions    List of nsStrings which define the contents for the form element
    *   @param aAttr       Attribute to be attached to the form element. It is used to identify
    *                      the form element contains non-standard content.
    */
 
   virtual nsresult ProvideContent(const nsAString& aFormType,
                                   nsTArray<nsString>& aContent,
--- a/dom/html/nsITextControlElement.h
+++ b/dom/html/nsITextControlElement.h
@@ -215,17 +215,17 @@ public:
   virtual void GetValueFromSetRangeText(nsAString& aValue) = 0;
   virtual nsresult SetValueFromSetRangeText(const nsAString& aValue) = 0;
 
   static const int32_t DEFAULT_COLS = 20;
   static const int32_t DEFAULT_ROWS = 1;
   static const int32_t DEFAULT_ROWS_TEXTAREA = 2;
   static const int32_t DEFAULT_UNDO_CAP = 1000;
 
-  // wrap can be one of these three values.  
+  // wrap can be one of these three values.
   typedef enum {
     eHTMLTextWrap_Off     = 1,    // "off"
     eHTMLTextWrap_Hard    = 2,    // "hard"
     eHTMLTextWrap_Soft    = 3     // the default
   } nsHTMLTextWrap;
 
   static bool
   GetWrapPropertyEnum(nsIContent* aContent, nsHTMLTextWrap& aWrapProp);
--- a/dom/html/nsTextEditorState.cpp
+++ b/dom/html/nsTextEditorState.cpp
@@ -7,17 +7,17 @@
 #include "nsTextEditorState.h"
 
 #include "nsCOMPtr.h"
 #include "nsIPresShell.h"
 #include "nsView.h"
 #include "nsCaret.h"
 #include "nsEditorCID.h"
 #include "nsLayoutCID.h"
-#include "nsITextControlFrame.h" 
+#include "nsITextControlFrame.h"
 #include "nsIDOMCharacterData.h"
 #include "nsIDOMDocument.h"
 #include "nsContentCreatorFunctions.h"
 #include "nsTextControlFrame.h"
 #include "nsIControllers.h"
 #include "nsIDOMHTMLInputElement.h"
 #include "nsIDOMHTMLTextAreaElement.h"
 #include "nsITransactionManager.h"
@@ -380,17 +380,17 @@ nsTextInputSelectionImpl::GetSelection(S
   return mFrameSelection->GetSelection(aSelectionType);
 }
 
 NS_IMETHODIMP
 nsTextInputSelectionImpl::SetDisplaySelection(int16_t aToggle)
 {
   if (!mFrameSelection)
     return NS_ERROR_NULL_POINTER;
-  
+
   mFrameSelection->SetDisplaySelection(aToggle);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsTextInputSelectionImpl::GetDisplaySelection(int16_t *aToggle)
 {
   if (!mFrameSelection)
@@ -405,17 +405,17 @@ nsTextInputSelectionImpl::SetSelectionFl
 {
   return NS_OK;//stub this out. not used in input
 }
 
 NS_IMETHODIMP
 nsTextInputSelectionImpl::GetSelectionFlags(int16_t *aOutEnable)
 {
   *aOutEnable = nsISelectionDisplay::DISPLAY_TEXT;
-  return NS_OK; 
+  return NS_OK;
 }
 
 NS_IMETHODIMP
 nsTextInputSelectionImpl::GetSelection(RawSelectionType aRawSelectionType,
                                        nsISelection** aSelection)
 {
   if (!mFrameSelection)
     return NS_ERROR_NULL_POINTER;
@@ -433,18 +433,18 @@ nsTextInputSelectionImpl::GetSelection(R
 }
 
 NS_IMETHODIMP
 nsTextInputSelectionImpl::ScrollSelectionIntoView(
                             RawSelectionType aRawSelectionType,
                             int16_t aRegion,
                             int16_t aFlags)
 {
-  if (!mFrameSelection) 
-    return NS_ERROR_FAILURE; 
+  if (!mFrameSelection)
+    return NS_ERROR_FAILURE;
 
   RefPtr<nsFrameSelection> frameSelection = mFrameSelection;
   return frameSelection->ScrollSelectionIntoView(
                            ToSelectionType(aRawSelectionType),
                            aRegion, aFlags);
 }
 
 NS_IMETHODIMP
@@ -795,17 +795,17 @@ nsTextInputSelectionImpl::CheckVisibilit
 
 class nsTextInputListener : public nsISelectionListener,
                             public nsIDOMEventListener,
                             public nsIEditorObserver,
                             public nsSupportsWeakReference
 {
 public:
   /** the default constructor
-   */ 
+   */
   explicit nsTextInputListener(nsITextControlElement* aTxtCtrlElement);
 
   /** SetEditor gives an address to the editor that will be accessed
    *  @param aEditor the editor this listener calls for editing operations
    */
   void SetFrame(nsTextControlFrame *aFrame){mFrame = aFrame;}
 
   void SettingValue(bool aValue) { mSettingValue = aValue; }
@@ -868,17 +868,17 @@ nsTextInputListener::nsTextInputListener
 , mSelectionWasCollapsed(true)
 , mHadUndoItems(false)
 , mHadRedoItems(false)
 , mSettingValue(false)
 , mSetValueChanged(true)
 {
 }
 
-nsTextInputListener::~nsTextInputListener() 
+nsTextInputListener::~nsTextInputListener()
 {
 }
 
 NS_IMPL_ISUPPORTS(nsTextInputListener,
                   nsISelectionListener,
                   nsIEditorObserver,
                   nsISupportsWeakReference,
                   nsIDOMEventListener)
@@ -892,39 +892,39 @@ nsTextInputListener::NotifySelectionChan
   AutoWeakFrame weakFrame = mFrame;
 
   if (!aDoc || !aSel || NS_FAILED(aSel->GetIsCollapsed(&collapsed)))
     return NS_OK;
 
   // Fire the select event
   // The specs don't exactly say when we should fire the select event.
   // IE: Whenever you add/remove a character to/from the selection. Also
-  //     each time for select all. Also if you get to the end of the text 
-  //     field you will get new event for each keypress or a continuous 
-  //     stream of events if you use the mouse. IE will fire select event 
+  //     each time for select all. Also if you get to the end of the text
+  //     field you will get new event for each keypress or a continuous
+  //     stream of events if you use the mouse. IE will fire select event
   //     when the selection collapses to nothing if you are holding down
   //     the shift or mouse button.
   // Mozilla: If we have non-empty selection we will fire a new event for each
   //          keypress (or mouseup) if the selection changed. Mozilla will also
   //          create the event each time select all is called, even if everything
   //          was previously selected, becase technically select all will first collapse
-  //          and then extend. Mozilla will never create an event if the selection 
+  //          and then extend. Mozilla will never create an event if the selection
   //          collapses to nothing.
-  if (!collapsed && (aReason & (nsISelectionListener::MOUSEUP_REASON | 
+  if (!collapsed && (aReason & (nsISelectionListener::MOUSEUP_REASON |
                                 nsISelectionListener::KEYPRESS_REASON |
                                 nsISelectionListener::SELECTALL_REASON)))
   {
     nsIContent* content = mFrame->GetContent();
-    if (content) 
+    if (content)
     {
       nsCOMPtr<nsIDocument> doc = content->GetComposedDoc();
-      if (doc) 
+      if (doc)
       {
         nsCOMPtr<nsIPresShell> presShell = doc->GetShell();
-        if (presShell) 
+        if (presShell)
         {
           nsEventStatus status = nsEventStatus_eIgnore;
           WidgetEvent event(true, eFormSelect);
 
           presShell->HandleEventWithTarget(&event, mFrame, content, &status);
         }
       }
     }
@@ -1104,17 +1104,17 @@ nsTextInputListener::CancelEditAction()
 
 nsresult
 nsTextInputListener::UpdateTextInputCommands(const nsAString& commandsToUpdate,
                                              nsISelection* sel,
                                              int16_t reason)
 {
   nsIContent* content = mFrame->GetContent();
   NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
-  
+
   nsCOMPtr<nsIDocument> doc = content->GetComposedDoc();
   NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE);
 
   nsPIDOMWindowOuter *domWindow = doc->GetWindow();
   NS_ENSURE_TRUE(domWindow, NS_ERROR_FAILURE);
 
   return domWindow->UpdateCommands(commandsToUpdate, sel, reason);
 }
@@ -1535,17 +1535,17 @@ nsTextEditorState::PrepareEditor(const n
     editorFlags = newTextEditor->Flags();
 
     // Check if the readonly attribute is set.
     if (content->HasAttr(kNameSpaceID_None, nsGkAtoms::readonly))
       editorFlags |= nsIPlaintextEditor::eEditorReadonlyMask;
 
     // Check if the disabled attribute is set.
     // TODO: call IsDisabled() here!
-    if (content->HasAttr(kNameSpaceID_None, nsGkAtoms::disabled)) 
+    if (content->HasAttr(kNameSpaceID_None, nsGkAtoms::disabled))
       editorFlags |= nsIPlaintextEditor::eEditorDisabledMask;
 
     // Disable the selection if necessary.
     if (editorFlags & nsIPlaintextEditor::eEditorDisabledMask)
       mSelCon->SetDisplaySelection(nsISelectionController::SELECTION_OFF);
 
     newTextEditor->SetFlags(editorFlags);
   }
--- a/dom/indexedDB/Key.cpp
+++ b/dom/indexedDB/Key.cpp
@@ -40,24 +40,24 @@ namespace indexedDB {
  Strings:  0x30 s s s ... 0        ("s"s are encoded unicode bytes)
  Binaries: 0x40 s s s ... 0        ("s"s are encoded unicode bytes)
  Arrays:   0x50 i i i ... 0        ("i"s are encoded array items)
 
 
  When encoding floats, 64bit IEEE 754 are almost sortable, except that
  positive sort lower than negative, and negative sort descending. So we use
  the following encoding:
- 
+
  value < 0 ?
    (-to64bitInt(value)) :
    (to64bitInt(value) | 0x8000000000000000)
 
 
  When encoding strings, we use variable-size encoding per the following table
- 
+
  Chars 0         - 7E           are encoded as 0xxxxxxx with 1 added
  Chars 7F        - (3FFF+7F)    are encoded as 10xxxxxx xxxxxxxx with 7F subtracted
  Chars (3FFF+80) - FFFF         are encoded as 11xxxxxx xxxxxxxx xx000000
 
  This ensures that the first byte is never encoded as 0, which means that the
  string terminator (per basic-stategy table) sorts before any character.
  The reason that (3FFF+80) - FFFF is encoded "shifted up" 6 bits is to maximize
  the chance that the last character is 0. See below for why.
@@ -96,17 +96,17 @@ namespace indexedDB {
 
  Note that the max-3-times rule kicks in before we get a chance to add to the
  array terminator
 
  [[[]]]       0xF0 0 0 0        // 0xF0 is 0x50 + 0x50 + 0x50
 
  As a final optimization we do a post-encoding step which drops all 0s at the
  end of the encoded buffer.
- 
+
  "foo"         // 0x30 s s s
  1             // 0x10 bf f0
  ["a", "b"]    // 0x80 s 0 0x30 s
  [1, 2]        // 0x60 bf f0 0 0 0 0 0 0 0x10 c0
  [[]]          // 0x80
 */
 #ifdef ENABLE_INTL_API
 nsresult
@@ -434,17 +434,17 @@ template <typename T>
 void
 Key::EncodeAsString(const T* aStart, const T* aEnd, uint8_t aType)
 {
   // First measure how long the encoded string will be.
 
   // The +2 is for initial 3 and trailing 0. We'll compensate for multi-byte
   // chars below.
   uint32_t size = (aEnd - aStart) + 2;
-  
+
   const T* start = aStart;
   const T* end = aEnd;
   for (const T* iter = start; iter < end; ++iter) {
     if (*iter > ONE_BYTE_LIMIT) {
       size += char16_t(*iter) > TWO_BYTE_LIMIT ? 2 : 1;
     }
   }
 
@@ -474,17 +474,17 @@ Key::EncodeAsString(const T* aStart, con
       *(buffer++) = (char)(c >> 16);
       *(buffer++) = (char)(c >> 8);
       *(buffer++) = (char)c;
     }
   }
 
   // Write end marker
   *(buffer++) = eTerminator;
-  
+
   NS_ASSERTION(buffer == mBuffer.EndReading(), "Wrote wrong number of bytes");
 }
 
 #ifdef ENABLE_INTL_API
 nsresult
 Key::EncodeLocaleString(const nsDependentString& aString, uint8_t aTypeOffset,
                         const nsCString& aLocale)
 {
@@ -540,24 +540,24 @@ Key::DecodeString(const unsigned char*& 
                   nsString& aString)
 {
   NS_ASSERTION(*aPos % eMaxType == eString, "Don't call me!");
 
   const unsigned char* buffer = aPos + 1;
 
   // First measure how big the decoded string will be.
   uint32_t size = 0;
-  const unsigned char* iter; 
+  const unsigned char* iter;
   for (iter = buffer; iter < aEnd && *iter != eTerminator; ++iter) {
     if (*iter & 0x80) {
       iter += (*iter & 0x40) ? 2 : 1;
     }
     ++size;
   }
-  
+
   // Set end so that we don't have to check for null termination in the loop
   // below
   if (iter < aEnd) {
     aEnd = iter;
   }
 
   char16_t* out;
   if (size && !aString.GetMutableData(&out, size)) {
@@ -580,23 +580,23 @@ Key::DecodeString(const unsigned char*& 
       if (iter < aEnd) {
         c |= uint32_t(*(iter++)) << (8 - THREE_BYTE_SHIFT);
       }
       if (iter < aEnd) {
         c |= *(iter++) >> THREE_BYTE_SHIFT;
       }
       *out = (char16_t)c;
     }
-    
+
     ++out;
   }
-  
+
   NS_ASSERTION(!size || out == aString.EndReading(),
                "Should have written the whole string");
-  
+
   aPos = iter + 1;
 }
 
 void
 Key::EncodeNumber(double aFloat, uint8_t aType)
 {
   // Allocate memory for the new size
   uint32_t oldLen = mBuffer.Length();
--- a/dom/jsurl/nsJSProtocolHandler.cpp
+++ b/dom/jsurl/nsJSProtocolHandler.cpp
@@ -142,17 +142,17 @@ nsresult nsJSThunk::EvaluateScript(nsICh
                                    PopupControlState aPopupState,
                                    uint32_t aExecutionPolicy,
                                    nsPIDOMWindowInner *aOriginalInnerWindow)
 {
     if (aExecutionPolicy == nsIScriptChannel::NO_EXECUTION) {
         // Nothing to do here.
         return NS_ERROR_DOM_RETVAL_UNDEFINED;
     }
-    
+
     NS_ENSURE_ARG_POINTER(aChannel);
 
     // Get principal of code for execution
     nsCOMPtr<nsISupports> owner;
     aChannel->GetOwner(getter_AddRefs(owner));
     nsCOMPtr<nsIPrincipal> principal = do_QueryInterface(owner);
     if (!principal) {
         nsCOMPtr<nsILoadInfo> loadInfo;
@@ -337,26 +337,26 @@ public:
     NS_DECL_NSISCRIPTCHANNEL
     NS_FORWARD_SAFE_NSIPROPERTYBAG(mPropertyBag)
     NS_FORWARD_SAFE_NSIPROPERTYBAG2(mPropertyBag)
 
     nsresult Init(nsIURI *aURI, nsILoadInfo* aLoadInfo);
 
     // Actually evaluate the script.
     void EvaluateScript();
-    
+
 protected:
     virtual ~nsJSChannel();
 
     nsresult StopAll();
 
     void NotifyListener();
 
     void CleanupStrongRefs();
-    
+
 protected:
     nsCOMPtr<nsIChannel>    mStreamChannel;
     nsCOMPtr<nsIPropertyBag2> mPropertyBag;
     nsCOMPtr<nsIStreamListener> mListener;  // Our final listener
     nsCOMPtr<nsPIDOMWindowInner> mOriginalInnerWindow;  // The inner window our load
                                                         // started against.
     // If we blocked onload on a document in AsyncOpen2, this is the document we
     // did it on.
@@ -474,31 +474,31 @@ nsJSChannel::IsPending(bool *aResult)
 }
 
 NS_IMETHODIMP
 nsJSChannel::GetStatus(nsresult *aResult)
 {
     if (NS_SUCCEEDED(mStatus) && mOpenedStreamChannel) {
         return mStreamChannel->GetStatus(aResult);
     }
-    
+
     *aResult = mStatus;
-        
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsJSChannel::Cancel(nsresult aStatus)
 {
     mStatus = aStatus;
 
     if (mOpenedStreamChannel) {
         mStreamChannel->Cancel(aStatus);
     }
-    
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsJSChannel::Suspend()
 {
     return mStreamChannel->Suspend();
 }
@@ -577,17 +577,17 @@ nsJSChannel::AsyncOpen(nsIStreamListener
     NS_ASSERTION(win, "Our global is not a window??");
 
     // Make sure we create a new inner window if one doesn't already exist (see
     // bug 306630).
     mOriginalInnerWindow = win->EnsureInnerWindow();
     if (!mOriginalInnerWindow) {
         return NS_ERROR_NOT_AVAILABLE;
     }
-    
+
     mListener = aListener;
 
     mIsActive = true;
 
     // Temporarily set the LOAD_BACKGROUND flag to suppress load group observer
     // notifications (and hence nsIWebProgressListener notifications) from
     // being dispatched.  This is required since we suppress LOAD_DOCUMENT_URI,
     // which means that the DocLoader would not generate document start and
@@ -683,35 +683,35 @@ nsJSChannel::AsyncOpen2(nsIStreamListene
   return AsyncOpen(listener, nullptr);
 }
 
 void
 nsJSChannel::EvaluateScript()
 {
     // Synchronously execute the script...
     // mIsActive is used to indicate the the request is 'busy' during the
-    // the script evaluation phase.  This means that IsPending() will 
+    // the script evaluation phase.  This means that IsPending() will
     // indicate the the request is busy while the script is executing...
 
     // Note that we want to be in the loadgroup and pending while we evaluate
     // the script, so that we find out if the loadgroup gets canceled by the
     // script execution (in which case we shouldn't pump out data even if the
     // script returns it).
-    
+
     if (NS_SUCCEEDED(mStatus)) {
         nsresult rv = mIOThunk->EvaluateScript(mStreamChannel, mPopupState,
                                                mExecutionPolicy,
                                                mOriginalInnerWindow);
 
         // Note that evaluation may have canceled us, so recheck mStatus again
         if (NS_FAILED(rv) && NS_SUCCEEDED(mStatus)) {
             mStatus = rv;
         }
     }
-    
+
     // Remove the javascript channel from its loadgroup...
     nsCOMPtr<nsILoadGroup> loadGroup;
     mStreamChannel->GetLoadGroup(getter_AddRefs(loadGroup));
     if (loadGroup) {
         loadGroup->RemoveRequest(this, nullptr, mStatus);
     }
 
     // Reset load flags to their original value...
@@ -722,17 +722,17 @@ nsJSChannel::EvaluateScript()
     mIsActive = false;
 
     if (NS_FAILED(mStatus)) {
         if (mIsAsync) {
             NotifyListener();
         }
         return;
     }
-    
+
     // EvaluateScript() succeeded, and we were not canceled, that
     // means there's data to parse as a result of evaluating the
     // script.
 
     // Get the stream channels load flags (!= mLoadFlags).
     nsLoadFlags loadFlags;
     mStreamChannel->GetLoadFlags(&loadFlags);
 
@@ -769,17 +769,17 @@ nsJSChannel::EvaluateScript()
     }
 
     if (NS_FAILED(mStatus)) {
         if (mIsAsync) {
             NotifyListener();
         }
         return;
     }
-    
+
     mStatus = mStreamChannel->AsyncOpen2(this);
     if (NS_SUCCEEDED(mStatus)) {
         // mStreamChannel will call OnStartRequest and OnStopRequest on
         // us, so we'll be sure to call them on our listener.
         mOpenedStreamChannel = true;
 
         // Now readd ourselves to the loadgroup so we can receive
         // cancellation notifications.
@@ -787,17 +787,17 @@ nsJSChannel::EvaluateScript()
         if (loadGroup) {
             mStatus = loadGroup->AddRequest(this, nullptr);
 
             // If AddRequest failed, that's OK.  The key is to make sure we get
             // cancelled if needed, and that call just canceled us if it
             // failed.  We'll still get notified by the stream channel when it
             // finishes.
         }
-        
+
     } else if (mIsAsync) {
         NotifyListener();
     }
 
     return;
 }
 
 void
@@ -858,17 +858,17 @@ nsJSChannel::SetLoadFlags(nsLoadFlags aL
     // Since the javascript channel is never the actual channel that
     // any data is loaded through, don't ever set the
     // LOAD_DOCUMENT_URI flag on it, since that could lead to two
     // 'document channels' in the loadgroup if a javascript: URL is
     // loaded while a document is being loaded in the same window.
 
     // XXXbz this, and a whole lot of other hackery, could go away if we'd just
     // cancel the current document load on javascript: load start like IE does.
-    
+
     mLoadFlags = aLoadFlags & ~LOAD_DOCUMENT_URI;
 
     if (bogusLoadBackground) {
         aLoadFlags = aLoadFlags & ~LOAD_BACKGROUND;
     }
 
     mActualLoadFlags = aLoadFlags;
 
@@ -904,17 +904,17 @@ nsJSChannel::SetLoadGroup(nsILoadGroup* 
                 aLoadGroup->AddRequest(mStreamChannel, nullptr);
                 if (curLoadGroup) {
                     curLoadGroup->RemoveRequest(mStreamChannel, nullptr,
                                                 NS_BINDING_RETARGETED);
                 }
             }
         }
     }
-    
+
     return mStreamChannel->SetLoadGroup(aLoadGroup);
 }
 
 NS_IMETHODIMP
 nsJSChannel::GetOwner(nsISupports* *aOwner)
 {
     return mStreamChannel->GetOwner(aOwner);
 }
@@ -944,17 +944,17 @@ nsJSChannel::GetNotificationCallbacks(ns
 }
 
 NS_IMETHODIMP
 nsJSChannel::SetNotificationCallbacks(nsIInterfaceRequestor* aCallbacks)
 {
     return mStreamChannel->SetNotificationCallbacks(aCallbacks);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJSChannel::GetSecurityInfo(nsISupports * *aSecurityInfo)
 {
     return mStreamChannel->GetSecurityInfo(aSecurityInfo);
 }
 
 NS_IMETHODIMP
 nsJSChannel::GetContentType(nsACString &aContentType)
 {
@@ -1022,22 +1022,22 @@ nsJSChannel::SetContentLength(int64_t aC
 }
 
 NS_IMETHODIMP
 nsJSChannel::OnStartRequest(nsIRequest* aRequest,
                             nsISupports* aContext)
 {
     NS_ENSURE_TRUE(aRequest == mStreamChannel, NS_ERROR_UNEXPECTED);
 
-    return mListener->OnStartRequest(this, aContext);    
+    return mListener->OnStartRequest(this, aContext);
 }
 
 NS_IMETHODIMP
 nsJSChannel::OnDataAvailable(nsIRequest* aRequest,
-                             nsISupports* aContext, 
+                             nsISupports* aContext,
                              nsIInputStream* aInputStream,
                              uint64_t aOffset,
                              uint32_t aCount)
 {
     NS_ENSURE_TRUE(aRequest == mStreamChannel, NS_ERROR_UNEXPECTED);
 
     return mListener->OnDataAvailable(this, aContext, aInputStream, aOffset,
                                       aCount);
@@ -1053,17 +1053,17 @@ nsJSChannel::OnStopRequest(nsIRequest* a
     nsCOMPtr<nsIStreamListener> listener = mListener;
 
     CleanupStrongRefs();
 
     // Make sure aStatus matches what GetStatus() returns
     if (NS_FAILED(mStatus)) {
         aStatus = mStatus;
     }
-    
+
     nsresult rv = listener->OnStopRequest(this, aContext, aStatus);
 
     nsCOMPtr<nsILoadGroup> loadGroup;
     mStreamChannel->GetLoadGroup(getter_AddRefs(loadGroup));
     if (loadGroup) {
         loadGroup->RemoveRequest(this, nullptr, mStatus);
     }
 
@@ -1071,17 +1071,17 @@ nsJSChannel::OnStopRequest(nsIRequest* a
 
     return rv;
 }
 
 NS_IMETHODIMP
 nsJSChannel::SetExecutionPolicy(uint32_t aPolicy)
 {
     NS_ENSURE_ARG(aPolicy <= EXECUTE_NORMAL);
-    
+
     mExecutionPolicy = aPolicy;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsJSChannel::GetExecutionPolicy(uint32_t* aPolicy)
 {
     *aPolicy = mExecutionPolicy;
@@ -1137,24 +1137,24 @@ nsJSProtocolHandler::Create(nsISupports 
     nsresult rv = ph->Init();
     if (NS_SUCCEEDED(rv)) {
         rv = ph->QueryInterface(aIID, aResult);
     }
     NS_RELEASE(ph);
     return rv;
 }
 
-nsresult 
-nsJSProtocolHandler::EnsureUTF8Spec(const nsCString& aSpec, const char *aCharset, 
+nsresult
+nsJSProtocolHandler::EnsureUTF8Spec(const nsCString& aSpec, const char *aCharset,
                                     nsACString &aUTF8Spec)
 {
   aUTF8Spec.Truncate();
 
   nsresult rv;
-  
+
   if (!mTextToSubURI) {
     mTextToSubURI = do_GetService(NS_ITEXTTOSUBURI_CONTRACTID, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
   }
   nsAutoString uStr;
   rv = mTextToSubURI->UnEscapeNonAsciiURI(nsDependentCString(aCharset), aSpec, uStr);
   NS_ENSURE_SUCCESS(rv, rv);
 
@@ -1251,20 +1251,20 @@ nsJSProtocolHandler::NewChannel2(nsIURI*
 }
 
 NS_IMETHODIMP
 nsJSProtocolHandler::NewChannel(nsIURI* uri, nsIChannel* *result)
 {
     return NewChannel2(uri, nullptr, result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJSProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
-    // don't override anything.  
+    // don't override anything.
     *_retval = false;
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////
 // nsJSURI implementation
 static NS_DEFINE_CID(kThisSimpleURIImplementationCID,
                      NS_THIS_SIMPLEURI_IMPLEMENTATION_CID);
@@ -1415,15 +1415,15 @@ nsJSURI::EqualsInternal(nsIURI* aOther,
         // (As noted in StartClone, we always honor refs on mBaseURI)
         return mBaseURI->Equals(otherBaseURI, aResult);
     }
 
     *aResult = !otherBaseURI;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJSURI::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
 {
     *aClassIDNoAlloc = kJSURICID;
     return NS_OK;
 }
 
--- a/dom/jsurl/nsJSProtocolHandler.h
+++ b/dom/jsurl/nsJSProtocolHandler.h
@@ -49,17 +49,17 @@ public:
     static nsresult
     Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);
 
     nsresult Init();
 
 protected:
     virtual ~nsJSProtocolHandler();
 
-    nsresult EnsureUTF8Spec(const nsCString& aSpec, const char *aCharset, 
+    nsresult EnsureUTF8Spec(const nsCString& aSpec, const char *aCharset,
                             nsACString &aUTF8Spec);
 
     nsCOMPtr<nsITextToSubURI>  mTextToSubURI;
 };
 
 
 class nsJSURI : public mozilla::net::nsSimpleURI
 {
--- a/dom/mathml/nsMathMLElement.cpp
+++ b/dom/mathml/nsMathMLElement.cpp
@@ -35,45 +35,45 @@ using namespace mozilla::dom;
 
 //----------------------------------------------------------------------
 // nsISupports methods:
 
 NS_IMPL_ISUPPORTS_INHERITED(nsMathMLElement, nsMathMLElementBase,
                             nsIDOMElement, nsIDOMNode, Link)
 
 static nsresult
-WarnDeprecated(const char16_t* aDeprecatedAttribute, 
+WarnDeprecated(const char16_t* aDeprecatedAttribute,
                const char16_t* aFavoredAttribute, nsIDocument* aDocument)
 {
-  const char16_t *argv[] = 
+  const char16_t *argv[] =
     { aDeprecatedAttribute, aFavoredAttribute };
   return nsContentUtils::
           ReportToConsole(nsIScriptError::warningFlag,
                           NS_LITERAL_CSTRING("MathML"), aDocument,
                           nsContentUtils::eMATHML_PROPERTIES,
                           "DeprecatedSupersededBy", argv, 2);
 }
 
-static nsresult 
+static nsresult
 ReportLengthParseError(const nsString& aValue, nsIDocument* aDocument)
 {
   const char16_t *arg = aValue.get();
   return nsContentUtils::
          ReportToConsole(nsIScriptError::errorFlag,
                          NS_LITERAL_CSTRING("MathML"), aDocument,
                          nsContentUtils::eMATHML_PROPERTIES,
                          "LengthParsingError", &arg, 1);
 }
 
 static nsresult
-ReportParseErrorNoTag(const nsString& aValue, 
+ReportParseErrorNoTag(const nsString& aValue,
                       nsIAtom*        aAtom,
                       nsIDocument*    aDocument)
 {
-  const char16_t *argv[] = 
+  const char16_t *argv[] =
     { aValue.get(), aAtom->GetUTF16String() };
   return nsContentUtils::
          ReportToConsole(nsIScriptError::errorFlag,
                          NS_LITERAL_CSTRING("MathML"), aDocument,
                          nsContentUtils::eMATHML_PROPERTIES,
                          "AttributeParsingErrorNoTag", argv, 2);
 }
 
@@ -326,41 +326,41 @@ nsMathMLElement::ParseNamedSpaceValue(co
      } else if (aString.EqualsLiteral("negativethickmathspace")) {
        i = -5;
      } else if (aString.EqualsLiteral("negativeverythickmathspace")) {
        i = -6;
      } else if (aString.EqualsLiteral("negativeveryverythickmathspace")) {
        i = -7;
      }
    }
-   if (0 != i) { 
+   if (0 != i) {
      aCSSValue.SetFloatValue(float(i)/float(18), eCSSUnit_EM);
      return true;
    }
-   
+
    return false;
 }
- 
+
 // The REC says:
 //
 // "Most presentation elements have attributes that accept values representing
 // lengths to be used for size, spacing or similar properties. The syntax of a
 // length is specified as
 //
 // number | number unit | namedspace
 //
 // There should be no space between the number and the unit of a length."
-// 
+//
 // "A trailing '%' represents a percent of the default value. The default
 // value, or how it is obtained, is listed in the table of attributes for each
 // element. [...] A number without a unit is intepreted as a multiple of the
 // default value."
 //
 // "The possible units in MathML are:
-//  
+//
 // Unit Description
 // em   an em (font-relative unit traditionally used for horizontal lengths)
 // ex   an ex (font-relative unit traditionally used for vertical lengths)
 // px   pixels, or size of a pixel in the current display
 // in   inches (1 inch = 2.54 centimeters)
 // cm   centimeters
 // mm   millimeters
 // pt   points (1 point = 1/72 inch)
@@ -554,17 +554,17 @@ nsMathMLElement::MapMathMLAttributesInto
                                      eCSSUnit_Point);
       }
       if (scriptMinSize.GetUnit() != eCSSUnit_Null) {
         aData->SetLengthValue(eCSSProperty__moz_script_min_size, scriptMinSize);
       }
     }
 
     // scriptlevel
-    // 
+    //
     // "Changes the scriptlevel in effect for the children. When the value is
     // given without a sign, it sets scriptlevel to the specified value; when a
     // sign is given, it increments ("+") or decrements ("-") the current
     // value. (Note that large decrements can result in negative values of
     // scriptlevel, but these values are considered legal.)"
     //
     // values: ( "+" | "-" )? unsigned-integer
     // default: inherited
@@ -611,17 +611,17 @@ nsMathMLElement::MapMathMLAttributesInto
     //
     // "Specified the size for the token. Deprecated in favor of mathsize."
     //
     // values: length
     // default: inherited
     //
     // In both cases, we don't allow negative values.
     // Unitless values give a multiple of the default value.
-    //  
+    //
     bool parseSizeKeywords = true;
     value = aAttributes->GetAttr(nsGkAtoms::mathsize_);
     if (!value) {
       parseSizeKeywords = false;
       value = aAttributes->GetAttr(nsGkAtoms::fontsize_);
       if (value) {
         WarnDeprecated(nsGkAtoms::fontsize_->GetUTF16String(),
                        nsGkAtoms::mathsize_->GetUTF16String(),
@@ -658,17 +658,17 @@ nsMathMLElement::MapMathMLAttributesInto
 
     // fontfamily
     //
     // "Should be the name of a font that may be available to a MathML renderer,
     // or a CSS font specification; See Section 6.5 Using CSS with MathML and
     // CSS for more information. Deprecated in favor of mathvariant."
     //
     // values: string
-    // 
+    //
     value = aAttributes->GetAttr(nsGkAtoms::fontfamily_);
     if (value) {
       WarnDeprecated(nsGkAtoms::fontfamily_->GetUTF16String(),
                      nsGkAtoms::mathvariant_->GetUTF16String(),
                      aData->mPresContext->Document());
     }
     if (value && value->Type() == nsAttrValue::eString &&
         !aData->PropertyIsSet(eCSSProperty_font_family)) {
@@ -773,23 +773,23 @@ nsMathMLElement::MapMathMLAttributesInto
           aData->SetKeywordValue(eCSSProperty__moz_math_variant, values[i]);
           break;
         }
       }
     }
   }
 
   // mathbackground
-  // 
+  //
   // "Specifies the background color to be used to fill in the bounding box of
   // the element and its children. The default, 'transparent', lets the
   // background color, if any, used in the current rendering context to show
   // through."
-  // 
-  // values: color | "transparent" 
+  //
+  // values: color | "transparent"
   // default: "transparent"
   //
   // background
   //
   // "Specified the background color to be used to fill in the bounding box of
   // the element and its children. Deprecated in favor of mathbackground."
   //
   // values: color | "transparent"
@@ -820,18 +820,18 @@ nsMathMLElement::MapMathMLAttributesInto
   // element, such as the content for token elements or any lines, surds, or
   // other decorations. It also establishes the default mathcolor used for
   // child elements when used on a layout element."
   //
   // values: color
   // default: inherited
   //
   // color
-  // 
-  // "Specified the color for the token. Deprecated in favor of mathcolor." 
+  //
+  // "Specified the color for the token. Deprecated in favor of mathcolor."
   //
   // values: color
   // default: inherited
   //
   if (aData->mSIDs & NS_STYLE_INHERIT_BIT(Color)) {
     const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::mathcolor_);
     if (!value) {
       value = aAttributes->GetAttr(nsGkAtoms::color);
@@ -878,19 +878,19 @@ nsMathMLElement::MapMathMLAttributesInto
   }
 
   // dir
   //
   // Overall Directionality of Mathematics Formulas:
   // "The overall directionality for a formula, basically the direction of the
   // Layout Schemata, is specified by the dir attribute on the containing math
   // element (see Section 2.2 The Top-Level math Element). The default is ltr.
-  // [...] The overall directionality is usually set on the math, but may also 
+  // [...] The overall directionality is usually set on the math, but may also
   // be switched for individual subformula by using the dir attribute on mrow
-  // or mstyle elements." 
+  // or mstyle elements."
   //
   // Bidirectional Layout in Token Elements:
   // "Specifies the initial directionality for text within the token:
   // ltr (Left To Right) or rtl (Right To Left). This attribute should only be
   // needed in rare cases involving weak or neutral characters;
   // see Section 3.1.5.1 Overall Directionality of Mathematics Formulas for
   // further discussion. It has no effect on mspace."
   //
@@ -1002,26 +1002,26 @@ nsMathMLElement::IsLink(nsIURI** aURI) c
     //
     //   xlink:href    - must be set
     //   xlink:type    - must be unset or set to "" or set to "simple"
     //   xlink:show    - must be unset or set to "", "new" or "replace"
     //   xlink:actuate - must be unset or set to "" or "onRequest"
     //
     // For any other values, we're either not a *clickable* XLink, or the end
     // result is poorly specified. Either way, we return false.
-    
+
     static nsIContent::AttrValuesArray sTypeVals[] =
       { &nsGkAtoms::_empty, &nsGkAtoms::simple, nullptr };
-    
+
     static nsIContent::AttrValuesArray sShowVals[] =
       { &nsGkAtoms::_empty, &nsGkAtoms::_new, &nsGkAtoms::replace, nullptr };
-    
+
     static nsIContent::AttrValuesArray sActuateVals[] =
       { &nsGkAtoms::_empty, &nsGkAtoms::onRequest, nullptr };
-    
+
     // Optimization: check for href first for early return
     href = mAttrsAndChildren.GetAttr(nsGkAtoms::href,
                                      kNameSpaceID_XLink);
     if (href &&
         FindAttrValueIn(kNameSpaceID_XLink, nsGkAtoms::type,
                         sTypeVals, eCaseMatters) !=
         nsIContent::ATTR_VALUE_NO_MATCH &&
         FindAttrValueIn(kNameSpaceID_XLink, nsGkAtoms::show,
@@ -1033,17 +1033,17 @@ nsMathMLElement::IsLink(nsIURI** aURI) c
       hasHref = true;
     }
   }
 
   if (hasHref) {
     nsCOMPtr<nsIURI> baseURI = GetBaseURI();
     // Get absolute URI
     nsAutoString hrefStr;
-    href->ToString(hrefStr); 
+    href->ToString(hrefStr);
     nsContentUtils::NewURIWithDocumentCharset(aURI, hrefStr,
                                               OwnerDoc(), baseURI);
     // must promise out param is non-null if we return true
     return !!*aURI;
   }
 
   *aURI = nullptr;
   return false;
@@ -1057,17 +1057,17 @@ nsMathMLElement::GetLinkTarget(nsAString
   if (target) {
     target->ToString(aTarget);
   }
 
   if (aTarget.IsEmpty()) {
 
     static nsIContent::AttrValuesArray sShowVals[] =
       { &nsGkAtoms::_new, &nsGkAtoms::replace, nullptr };
-    
+
     switch (FindAttrValueIn(kNameSpaceID_XLink, nsGkAtoms::show,
                             sShowVals, eCaseMatters)) {
     case 0:
       aTarget.AssignLiteral("_blank");
       return;
     case 1:
       return;
     }
--- a/dom/mathml/nsMathMLElement.h
+++ b/dom/mathml/nsMathMLElement.h
@@ -32,17 +32,17 @@ class nsMathMLElement final : public nsM
 {
 public:
   explicit nsMathMLElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
   explicit nsMathMLElement(already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
 
   // Implementation of nsISupports is inherited from nsMathMLElementBase
   NS_DECL_ISUPPORTS_INHERITED
 
-  // Forward implementations of parent interfaces of nsMathMLElement to 
+  // Forward implementations of parent interfaces of nsMathMLElement to
   // our base class
   NS_FORWARD_NSIDOMNODE_TO_NSINODE
   NS_FORWARD_NSIDOMELEMENT_TO_GENERIC
 
   nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
                       nsIContent* aBindingParent,
                       bool aCompileEventHandlers) override;
   virtual void UnbindFromTree(bool aDeep = true,
@@ -66,19 +66,19 @@ public:
                                    nsCSSValue&     aCSSValue,
                                    uint32_t        aFlags);
 
   static bool ParseNumericValue(const nsString& aString,
                                 nsCSSValue&     aCSSValue,
                                 uint32_t        aFlags,
                                 nsIDocument*    aDocument);
 
-  static void MapMathMLAttributesInto(const nsMappedAttributes* aAttributes, 
+  static void MapMathMLAttributesInto(const nsMappedAttributes* aAttributes,
                                       mozilla::GenericSpecifiedValues* aGenericData);
-  
+
   virtual nsresult GetEventTargetParent(
                      mozilla::EventChainPreVisitor& aVisitor) override;
   virtual nsresult PostHandleEvent(
                      mozilla::EventChainPostVisitor& aVisitor) override;
   nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult,
                  bool aPreallocateChildren) const override;
   virtual mozilla::EventStates IntrinsicState() const override;
   virtual bool IsNodeOfType(uint32_t aFlags) const override;
--- a/dom/media/VideoLimits.h
+++ b/dom/media/VideoLimits.h
@@ -1,21 +1,21 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et cindent: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef VideoLimits_h
-#define VideoLimits_h
-
-namespace mozilla {
-
-// The maximum height and width of the video. Used for
-// sanitizing the memory allocation of video frame buffers.
-// The maximum resolution we anticipate encountering in the
-// wild is 2160p (UHD "4K") or 4320p - 7680x4320 pixels for VR.
-static const int32_t MAX_VIDEO_WIDTH = 8192;
-static const int32_t MAX_VIDEO_HEIGHT = 4608;
-
-} // namespace mozilla
-
-#endif // VideoLimits_h
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef VideoLimits_h
+#define VideoLimits_h
+
+namespace mozilla {
+
+// The maximum height and width of the video. Used for
+// sanitizing the memory allocation of video frame buffers.
+// The maximum resolution we anticipate encountering in the
+// wild is 2160p (UHD "4K") or 4320p - 7680x4320 pixels for VR.
+static const int32_t MAX_VIDEO_WIDTH = 8192;
+static const int32_t MAX_VIDEO_HEIGHT = 4608;
+
+} // namespace mozilla
+
+#endif // VideoLimits_h
--- a/dom/media/systemservices/MediaSystemResourceManagerParent.cpp
+++ b/dom/media/systemservices/MediaSystemResourceManagerParent.cpp
@@ -67,16 +67,16 @@ MediaSystemResourceManagerParent::RecvRe
 }
 
 void
 MediaSystemResourceManagerParent::ActorDestroy(ActorDestroyReason aReason)
 {
   MOZ_ASSERT(!mDestroyed);
 
   // Release all resource requests of the MediaSystemResourceManagerParent.
-  // Clears all remaining pointers to this object. 
+  // Clears all remaining pointers to this object.
   mMediaSystemResourceService->ReleaseResource(this);
 
   mDestroyed = true;
 }
 
 } // namespace media
 } // namespace mozilla
--- a/dom/media/webaudio/blink/DynamicsCompressor.cpp
+++ b/dom/media/webaudio/blink/DynamicsCompressor.cpp
@@ -81,34 +81,34 @@ void DynamicsCompressor::setParameterVal
     MOZ_ASSERT(parameterID < ParamLast);
     if (parameterID < ParamLast)
         m_parameters[parameterID] = value;
 }
 
 void DynamicsCompressor::initializeParameters()
 {
     // Initializes compressor to default values.
-    
+
     m_parameters[ParamThreshold] = -24; // dB
     m_parameters[ParamKnee] = 30; // dB
     m_parameters[ParamRatio] = 12; // unit-less
     m_parameters[ParamAttack] = 0.003f; // seconds
     m_parameters[ParamRelease] = 0.250f; // seconds
     m_parameters[ParamPreDelay] = 0.006f; // seconds
 
     // Release zone values 0 -> 1.
     m_parameters[ParamReleaseZone1] = 0.09f;
     m_parameters[ParamReleaseZone2] = 0.16f;
     m_parameters[ParamReleaseZone3] = 0.42f;
     m_parameters[ParamReleaseZone4] = 0.98f;
 
     m_parameters[ParamFilterStageGain] = 4.4f; // dB
     m_parameters[ParamFilterStageRatio] = 2;
     m_parameters[ParamFilterAnchor] = 15000 / nyquist();
-    
+
     m_parameters[ParamPostGain] = 0; // dB
     m_parameters[ParamReduction] = 0; // dB
 
     // Linear crossfade (0 -> 1).
     m_parameters[ParamEffectBlend] = 1;
 }
 
 float DynamicsCompressor::parameterValue(unsigned parameterID)
@@ -262,18 +262,18 @@ void DynamicsCompressor::process(const A
                          dbPostGain,
                          effectBlend,
 
                          releaseZone1,
                          releaseZone2,
                          releaseZone3,
                          releaseZone4
                          );
-                         
-    // Update the compression amount.                     
+
+    // Update the compression amount.
     setParameterValue(ParamReduction, m_compressor.meteringGain());
 
     // Apply de-emphasis filter.
     for (unsigned i = 0; i < numberOfChannels; ++i) {
         float* destinationData = m_destinationChannels[i];
         ZeroPole* postFilters = m_postFilterPacks[i]->filters;
 
         postFilters[0].process(destinationData, destinationData, framesToProcess);
--- a/dom/media/webaudio/blink/HRTFDatabase.cpp
+++ b/dom/media/webaudio/blink/HRTFDatabase.cpp
@@ -52,17 +52,17 @@ HRTFDatabase::HRTFDatabase(float sampleR
     m_elevations.SetLength(NumberOfTotalElevations);
 
     unsigned elevationIndex = 0;
     for (int elevation = MinElevation; elevation <= MaxElevation; elevation += RawElevationAngleSpacing) {
         nsAutoRef<HRTFElevation> hrtfElevation(HRTFElevation::createBuiltin(elevation, sampleRate));
         MOZ_ASSERT(hrtfElevation.get());
         if (!hrtfElevation.get())
             return;
-        
+
         m_elevations[elevationIndex] = hrtfElevation.out();
         elevationIndex += InterpolationFactor;
     }
 
     // Now, go back and interpolate elevations.
     if (InterpolationFactor > 1) {
         for (unsigned i = 0; i < NumberOfTotalElevations; i += InterpolationFactor) {
             unsigned j = (i + InterpolationFactor);
@@ -90,41 +90,41 @@ size_t HRTFDatabase::sizeOfIncludingThis
     return amount;
 }
 
 void HRTFDatabase::getKernelsFromAzimuthElevation(double azimuthBlend, unsigned azimuthIndex, double elevationAngle, HRTFKernel* &kernelL, HRTFKernel* &kernelR,
                                                   double& frameDelayL, double& frameDelayR)
 {
     unsigned elevationIndex = indexFromElevationAngle(elevationAngle);
     MOZ_ASSERT(elevationIndex < m_elevations.Length() && m_elevations.Length() > 0);
-    
+
     if (!m_elevations.Length()) {
         kernelL = 0;
         kernelR = 0;
         return;
     }
-    
+
     if (elevationIndex > m_elevations.Length() - 1)
         elevationIndex = m_elevations.Length() - 1;
-    
+
     HRTFElevation* hrtfElevation = m_elevations[elevationIndex].get();
     MOZ_ASSERT(hrtfElevation);
     if (!hrtfElevation) {
         kernelL = 0;
         kernelR = 0;
         return;
     }
-    
+
     hrtfElevation->getKernelsFromAzimuth(azimuthBlend, azimuthIndex, kernelL, kernelR, frameDelayL, frameDelayR);
-}                                                     
+}
 
 unsigned HRTFDatabase::indexFromElevationAngle(double elevationAngle)
 {
     // Clamp to allowed range.
     elevationAngle = mozilla::clamped(elevationAngle,
                                       static_cast<double>(MinElevation),
                                       static_cast<double>(MaxElevation));
 
-    unsigned elevationIndex = static_cast<int>(InterpolationFactor * (elevationAngle - MinElevation) / RawElevationAngleSpacing);    
+    unsigned elevationIndex = static_cast<int>(InterpolationFactor * (elevationAngle - MinElevation) / RawElevationAngleSpacing);
     return elevationIndex;
 }
 
 } // namespace WebCore
--- a/dom/media/webaudio/blink/HRTFDatabase.h
+++ b/dom/media/webaudio/blink/HRTFDatabase.h
@@ -66,17 +66,17 @@ private:
 
     // Minimum and maximum elevation angles (inclusive) for a HRTFDatabase.
     static const int MinElevation;
     static const int MaxElevation;
     static const unsigned RawElevationAngleSpacing;
 
     // Interpolates by this factor to get the total number of elevations from every elevation loaded from resource.
     static const unsigned InterpolationFactor;
-    
+
     // Total number of elevations after interpolation.
     static const unsigned NumberOfTotalElevations;
 
     // Returns the index for the correct HRTFElevation given the elevation angle.
     static unsigned indexFromElevationAngle(double);
 
     nsTArray<nsAutoRef<HRTFElevation> > m_elevations;
     float m_sampleRate;
--- a/dom/media/webaudio/blink/HRTFDatabaseLoader.cpp
+++ b/dom/media/webaudio/blink/HRTFDatabaseLoader.cpp
@@ -44,17 +44,17 @@ size_t HRTFDatabaseLoader::sizeOfLoaders
     return s_loaderMap ? s_loaderMap->SizeOfIncludingThis(aMallocSizeOf) : 0;
 }
 
 already_AddRefed<HRTFDatabaseLoader> HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(float sampleRate)
 {
     MOZ_ASSERT(NS_IsMainThread());
 
     RefPtr<HRTFDatabaseLoader> loader;
-    
+
     if (!s_loaderMap) {
         s_loaderMap = new nsTHashtable<LoaderByRateEntry>();
     }
 
     LoaderByRateEntry* entry = s_loaderMap->PutEntry(sampleRate);
     loader = entry->mLoader;
     if (loader) { // existing entry
         MOZ_ASSERT(sampleRate == loader->databaseSampleRate());
@@ -180,17 +180,17 @@ void HRTFDatabaseLoader::loadAsynchronou
     MOZ_ASSERT(NS_IsMainThread());
     MOZ_ASSERT(m_refCnt, "Must not be called before a reference is added");
 
     // Add a reference so that the destructor won't run and wait for the
     // loader thread, until load() has completed.
     AddRef();
 
     MutexAutoLock locker(m_threadLock);
-    
+
     MOZ_ASSERT(!m_hrtfDatabase.get() && !m_databaseLoaderThread,
                "Called twice");
     // Start the asynchronous database loading process.
     m_databaseLoaderThread =
         PR_CreateThread(PR_USER_THREAD, databaseLoaderEntry, this,
                         PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD,
                         PR_JOINABLE_THREAD, 0);
 }
@@ -198,17 +198,17 @@ void HRTFDatabaseLoader::loadAsynchronou
 bool HRTFDatabaseLoader::isLoaded() const
 {
     return m_hrtfDatabase.get();
 }
 
 void HRTFDatabaseLoader::waitForLoaderThreadCompletion()
 {
     MutexAutoLock locker(m_threadLock);
-    
+
     // waitForThreadCompletion() should not be called twice for the same thread.
     if (m_databaseLoaderThread) {
         DebugOnly<PRStatus> status = PR_JoinThread(m_databaseLoaderThread);
         MOZ_ASSERT(status == PR_SUCCESS, "PR_JoinThread failed");
     }
     m_databaseLoaderThread = nullptr;
 }
 
--- a/dom/media/webaudio/blink/HRTFDatabaseLoader.h
+++ b/dom/media/webaudio/blink/HRTFDatabaseLoader.h
@@ -79,23 +79,23 @@ public:
     }
 
     // Returns true once the default database has been completely loaded.
     bool isLoaded() const;
 
     // waitForLoaderThreadCompletion() may be called more than once,
     // on any thread except m_databaseLoaderThread.
     void waitForLoaderThreadCompletion();
-    
+
     HRTFDatabase* database() { return m_hrtfDatabase.get(); }
 
     float databaseSampleRate() const { return m_databaseSampleRate; }
 
     static void shutdown();
-    
+
     // Called in asynchronous loading thread.
     void load();
 
     // Sums the size of all cached database loaders.
     static size_t sizeOfLoaders(mozilla::MallocSizeOf aMallocSizeOf);
 
 private:
     // Both constructor and destructor must be called from the main thread.
--- a/dom/media/webaudio/blink/HRTFElevation.cpp
+++ b/dom/media/webaudio/blink/HRTFElevation.cpp
@@ -31,17 +31,17 @@
 #include <speex/speex_resampler.h>
 #include "mozilla/PodOperations.h"
 #include "AudioSampleFormat.h"
 
 #include "IRC_Composite_C_R0195-incl.cpp"
 
 using namespace std;
 using namespace mozilla;
- 
+
 namespace WebCore {
 
 const int elevationSpacing = irc_composite_c_r0195_elevation_interval;
 const int firstElevation = irc_composite_c_r0195_first_elevation;
 const int numberOfElevations = MOZ_ARRAY_LENGTH(irc_composite_c_r0195);
 
 const unsigned HRTFElevation::NumberOfTotalAzimuths = 360 / 15 * 8;
 
@@ -177,49 +177,49 @@ nsReturnRef<HRTFKernel> HRTFElevation::c
 }
 
 // The range of elevations for the IRCAM impulse responses varies depending on azimuth, but the minimum elevation appears to always be -45.
 //
 // Here's how it goes:
 static int maxElevations[] = {
         //  Azimuth
         //
-    90, // 0  
-    45, // 15 
-    60, // 30 
-    45, // 45 
-    75, // 60 
-    45, // 75 
-    60, // 90 
-    45, // 105 
-    75, // 120 
-    45, // 135 
-    60, // 150 
-    45, // 165 
-    75, // 180 
-    45, // 195 
-    60, // 210 
-    45, // 225 
-    75, // 240 
-    45, // 255 
-    60, // 270 
-    45, // 285 
-    75, // 300 
-    45, // 315 
-    60, // 330 
-    45 //  345 
+    90, // 0
+    45, // 15
+    60, // 30
+    45, // 45
+    75, // 60
+    45, // 75
+    60, // 90
+    45, // 105
+    75, // 120
+    45, // 135
+    60, // 150
+    45, // 165
+    75, // 180
+    45, // 195
+    60, // 210
+    45, // 225
+    75, // 240
+    45, // 255
+    60, // 270
+    45, // 285
+    75, // 300
+    45, // 315
+    60, // 330
+    45 //  345
 };
 
 nsReturnRef<HRTFElevation> HRTFElevation::createBuiltin(int elevation, float sampleRate)
 {
     if (elevation < firstElevation ||
         elevation > firstElevation + numberOfElevations * elevationSpacing ||
         (elevation / elevationSpacing) * elevationSpacing != elevation)
         return nsReturnRef<HRTFElevation>();
-        
+
     // Spacing, in degrees, between every azimuth loaded from resource.
     // Some elevations do not have data for all these intervals.
     // See maxElevations.
     static const unsigned AzimuthSpacing = 15;
     static const unsigned NumberOfRawAzimuths = 360 / AzimuthSpacing;
     static_assert(AzimuthSpacing * NumberOfRawAzimuths == 360,
                   "Not a multiple");
     static const unsigned InterpolationFactor =
@@ -237,17 +237,17 @@ nsReturnRef<HRTFElevation> HRTFElevation
     // Load convolution kernels from HRTF files.
     int interpolatedIndex = 0;
     for (unsigned rawIndex = 0; rawIndex < NumberOfRawAzimuths; ++rawIndex) {
         // Don't let elevation exceed maximum for this azimuth.
         int maxElevation = maxElevations[rawIndex];
         int actualElevation = min(elevation, maxElevation);
 
         kernelListL[interpolatedIndex] = calculateKernelForAzimuthElevation(rawIndex * AzimuthSpacing, actualElevation, resampler, sampleRate);
-            
+
         interpolatedIndex += InterpolationFactor;
     }
 
     if (resampler)
         speex_resampler_destroy(resampler);
 
     // Now go back and interpolate intermediate azimuth values.
     for (unsigned i = 0; i < NumberOfTotalAzimuths; i += InterpolationFactor) {
@@ -255,62 +255,62 @@ nsReturnRef<HRTFElevation> HRTFElevation
 
         // Create the interpolated convolution kernels and delays.
         for (unsigned jj = 1; jj < InterpolationFactor; ++jj) {
             float x = float(jj) / float(InterpolationFactor); // interpolate from 0 -> 1
 
             kernelListL[i + jj] = HRTFKernel::createInterpolatedKernel(kernelListL[i], kernelListL[j], x);
         }
     }
-    
+
     return nsReturnRef<HRTFElevation>(new HRTFElevation(&kernelListL, elevation, sampleRate));
 }
 
 nsReturnRef<HRTFElevation> HRTFElevation::createByInterpolatingSlices(HRTFElevation* hrtfElevation1, HRTFElevation* hrtfElevation2, float x, float sampleRate)
 {
     MOZ_ASSERT(hrtfElevation1 && hrtfElevation2);
     if (!hrtfElevation1 || !hrtfElevation2)
         return nsReturnRef<HRTFElevation>();
-        
+
     MOZ_ASSERT(x >= 0.0 && x < 1.0);
-    
+
     HRTFKernelList kernelListL;
     kernelListL.SetLength(NumberOfTotalAzimuths);
 
     const HRTFKernelList& kernelListL1 = hrtfElevation1->kernelListL();
     const HRTFKernelList& kernelListL2 = hrtfElevation2->kernelListL();
-    
+
     // Interpolate kernels of corresponding azimuths of the two elevations.
     for (unsigned i = 0; i < NumberOfTotalAzimuths; ++i) {
         kernelListL[i] = HRTFKernel::createInterpolatedKernel(kernelListL1[i], kernelListL2[i], x);
     }
 
     // Interpolate elevation angle.
     double angle = (1.0 - x) * hrtfElevation1->elevationAngle() + x * hrtfElevation2->elevationAngle();
-    
+
     return nsReturnRef<HRTFElevation>(new HRTFElevation(&kernelListL, static_cast<int>(angle), sampleRate));
 }
 
 void HRTFElevation::getKernelsFromAzimuth(double azimuthBlend, unsigned azimuthIndex, HRTFKernel* &kernelL, HRTFKernel* &kernelR, double& frameDelayL, double& frameDelayR)
 {
     bool checkAzimuthBlend = azimuthBlend >= 0.0 && azimuthBlend < 1.0;
     MOZ_ASSERT(checkAzimuthBlend);
     if (!checkAzimuthBlend)
         azimuthBlend = 0.0;
-    
+
     unsigned numKernels = m_kernelListL.Length();
 
     bool isIndexGood = azimuthIndex < numKernels;
     MOZ_ASSERT(isIndexGood);
     if (!isIndexGood) {
         kernelL = 0;
         kernelR = 0;
         return;
     }
-    
+
     // Return the left and right kernels,
     // using symmetry to produce the right kernel.
     kernelL = m_kernelListL[azimuthIndex];
     int azimuthIndexR = (numKernels - azimuthIndex) % numKernels;
     kernelR = m_kernelListL[azimuthIndexR];
 
     frameDelayL = kernelL->frameDelay();
     frameDelayR = kernelR->frameDelay();
--- a/dom/media/webaudio/blink/HRTFElevation.h
+++ b/dom/media/webaudio/blink/HRTFElevation.h
@@ -49,21 +49,21 @@ public:
     static nsReturnRef<HRTFElevation> createBuiltin(int elevation, float sampleRate);
 
     // Given two HRTFElevations, and an interpolation factor x: 0 -> 1, returns an interpolated HRTFElevation.
     static nsReturnRef<HRTFElevation> createByInterpolatingSlices(HRTFElevation* hrtfElevation1, HRTFElevation* hrtfElevation2, float x, float sampleRate);
 
     double elevationAngle() const { return m_elevationAngle; }
     unsigned numberOfAzimuths() const { return NumberOfTotalAzimuths; }
     float sampleRate() const { return m_sampleRate; }
-    
+
     // Returns the left and right kernels for the given azimuth index.
     // The interpolated delays based on azimuthBlend: 0 -> 1 are returned in frameDelayL and frameDelayR.
     void getKernelsFromAzimuth(double azimuthBlend, unsigned azimuthIndex, HRTFKernel* &kernelL, HRTFKernel* &kernelR, double& frameDelayL, double& frameDelayR);
-    
+
     // Total number of azimuths after interpolation.
     static const unsigned NumberOfTotalAzimuths;
 
     static size_t fftSizeForSampleRate(float sampleRate);
 
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
 
 private:
--- a/dom/media/webaudio/blink/HRTFKernel.h
+++ b/dom/media/webaudio/blink/HRTFKernel.h
@@ -51,19 +51,19 @@ public:
     // The |length| of |impulseResponse| must be a power of two.
     // The size of the DFT will be |2 * length|.
     static nsReturnRef<HRTFKernel> create(float* impulseResponse, size_t length, float sampleRate);
 
     static nsReturnRef<HRTFKernel> create(nsAutoPtr<FFTBlock> fftFrame, float frameDelay, float sampleRate);
 
     // Given two HRTFKernels, and an interpolation factor x: 0 -> 1, returns an interpolated HRTFKernel.
     static nsReturnRef<HRTFKernel> createInterpolatedKernel(HRTFKernel* kernel1, HRTFKernel* kernel2, float x);
-  
+
     FFTBlock* fftFrame() { return m_fftFrame.get(); }
-    
+
     size_t fftSize() const { return m_fftFrame->FFTSize(); }
     float frameDelay() const { return m_frameDelay; }
 
     float sampleRate() const { return m_sampleRate; }
     double nyquist() const { return 0.5 * sampleRate(); }
 
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
     {
@@ -73,24 +73,24 @@ public:
     }
 
 private:
     HRTFKernel(const HRTFKernel& other) = delete;
     void operator=(const HRTFKernel& other) = delete;
 
     // Note: this is destructive on the passed in |impulseResponse|.
     HRTFKernel(float* impulseResponse, size_t fftSize, float sampleRate);
-    
+
     HRTFKernel(nsAutoPtr<FFTBlock> fftFrame, float frameDelay, float sampleRate)
         : m_fftFrame(fftFrame)
         , m_frameDelay(frameDelay)
         , m_sampleRate(sampleRate)
     {
     }
-    
+
     nsAutoPtr<FFTBlock> m_fftFrame;
     float m_frameDelay;
     float m_sampleRate;
 };
 
 typedef nsTArray<nsAutoRef<HRTFKernel> > HRTFKernelList;
 
 } // namespace WebCore
--- a/dom/media/webaudio/blink/ReverbConvolver.cpp
+++ b/dom/media/webaudio/blink/ReverbConvolver.cpp
@@ -213,17 +213,17 @@ void ReverbConvolver::backgroundThreadEn
             AutoLock locker(m_backgroundThreadLock);
             while (!m_moreInputBuffered && !m_wantsToExit)
                 m_backgroundThreadCondition.Wait();
         }
 
         // Process all of the stages until their read indices reach the input buffer's write index
         int writeIndex = m_inputBuffer.writeIndex();
 
-        // Even though it doesn't seem like every stage needs to maintain its own version of readIndex 
+        // Even though it doesn't seem like every stage needs to maintain its own version of readIndex
         // we do this in case we want to run in more than one background thread.
         int readIndex;
 
         while ((readIndex = m_backgroundStages[0]->inputReadIndex()) != writeIndex) { // FIXME: do better to detect buffer overrun...
             // Accumulate contributions from each stage
             for (size_t i = 0; i < m_backgroundStages.Length(); ++i)
                 m_backgroundStages[i]->processInBackground(this);
         }
@@ -250,17 +250,17 @@ void ReverbConvolver::process(const floa
     // Finally read from accumulation buffer
     m_accumulationBuffer.readAndClear(destination, WEBAUDIO_BLOCK_SIZE);
 
     // Now that we've buffered more input, wake up our background thread.
 
     // Not using a MutexLocker looks strange, but we use a tryLock() instead because this is run on the real-time
     // thread where it is a disaster for the lock to be contended (causes audio glitching).  It's OK if we fail to
     // signal from time to time, since we'll get to it the next time we're called.  We're called repeatedly
-    // and frequently (around every 3ms).  The background thread is processing well into the future and has a considerable amount of 
+    // and frequently (around every 3ms).  The background thread is processing well into the future and has a considerable amount of
     // leeway here...
     if (m_backgroundThreadLock.Try()) {
         m_moreInputBuffered = true;
         m_backgroundThreadCondition.Signal();
         m_backgroundThreadLock.Release();
     }
 }
 
--- a/dom/media/webaudio/blink/ReverbConvolverStage.cpp
+++ b/dom/media/webaudio/blink/ReverbConvolverStage.cpp
@@ -88,17 +88,17 @@ void ReverbConvolverStage::processInBack
     process(source);
 }
 
 void ReverbConvolverStage::process(const float* source)
 {
     MOZ_ASSERT(source);
     if (!source)
         return;
-    
+
     // Now, run the convolution (into the delay buffer).
     // An expensive FFT will happen every fftSize / 2 frames.
     const float* output = m_fftConvolver->process(m_fftKernel, source);
 
     // Now accumulate into reverb's accumulation buffer.
     m_accumulationBuffer->accumulate(output, WEBAUDIO_BLOCK_SIZE,
                                      &m_accumulationReadIndex,
                                      m_postDelayLength);
--- a/dom/media/webaudio/blink/ZeroPole.cpp
+++ b/dom/media/webaudio/blink/ZeroPole.cpp
@@ -38,17 +38,17 @@ namespace WebCore {
 void ZeroPole::process(const float *source, float *destination, int framesToProcess)
 {
     float zero = m_zero;
     float pole = m_pole;
 
     // Gain compensation to make 0dB @ 0Hz
     const float k1 = 1 / (1 - zero);
     const float k2 = 1 - pole;
-    
+
     // Member variables to locals.
     float lastX = m_lastX;
     float lastY = m_lastY;
 
     for (int i = 0; i < framesToProcess; ++i) {
         float input = source[i];
 
         // Zero
@@ -56,17 +56,17 @@ void ZeroPole::process(const float *sour
         lastX = input;
 
         // Pole
         float output2 = k2 * output1 + pole * lastY;
         lastY = output2;
 
         destination[i] = output2;
     }
-    
+
     // Locals to member variables. Flush denormals here so we don't
     // slow down the inner loop above.
     #ifndef HAVE_DENORMAL
     if (lastX == 0.0f && lastY != 0.0f && fabsf(lastY) < FLT_MIN) {
         // Flush future values to zero (until there is new input).
         lastY = 0.0;
 
         // Flush calculated values.
--- a/dom/media/webaudio/blink/ZeroPole.h
+++ b/dom/media/webaudio/blink/ZeroPole.h
@@ -42,20 +42,20 @@ public:
         , m_lastY(0)
     {
     }
 
     void process(const float *source, float *destination, int framesToProcess);
 
     // Reset filter state.
     void reset() { m_lastX = 0; m_lastY = 0; }
-    
+
     void setZero(float zero) { m_zero = zero; }
     void setPole(float pole) { m_pole = pole; }
-    
+
     float zero() const { return m_zero; }
     float pole() const { return m_pole; }
 
 private:
     float m_zero;
     float m_pole;
     float m_lastX;
     float m_lastY;
--- a/dom/network/TCPSocket.cpp
+++ b/dom/network/TCPSocket.cpp
@@ -401,31 +401,31 @@ TCPSocket::EnsureCopying()
   RefPtr<CopierCallbacks> callbacks = new CopierCallbacks(this);
   return mMultiplexStreamCopier->AsyncCopy(callbacks, nullptr);
 }
 
 void
 TCPSocket::NotifyCopyComplete(nsresult aStatus)
 {
   mAsyncCopierActive = false;
-  
+
   uint32_t countRemaining;
   nsresult rvRemaining = mMultiplexStream->GetCount(&countRemaining);
   NS_ENSURE_SUCCESS_VOID(rvRemaining);
 
   while (countRemaining--) {
     mMultiplexStream->RemoveStream(0);
   }
 
   while (!mPendingDataWhileCopierActive.IsEmpty()) {
       nsCOMPtr<nsIInputStream> stream = mPendingDataWhileCopierActive[0];
       mMultiplexStream->AppendStream(stream);
       mPendingDataWhileCopierActive.RemoveElementAt(0);
   }
-  
+
   if (mSocketBridgeParent) {
     mozilla::Unused << mSocketBridgeParent->SendUpdateBufferedAmount(BufferedAmount(),
                                                                      mTrackingNumber);
   }
 
   if (NS_FAILED(aStatus)) {
     MaybeReportErrorAndCloseIfOpen(aStatus);
     return;
--- a/dom/offline/nsDOMOfflineResourceList.cpp
+++ b/dom/offline/nsDOMOfflineResourceList.cpp
@@ -232,17 +232,17 @@ nsDOMOfflineResourceList::GetMozItems(ns
   RefPtr<DOMStringList> items = GetMozItems(rv);
   items.forget(aItems);
   return rv.StealNSResult();
 }
 
 NS_IMETHODIMP
 nsDOMOfflineResourceList::MozHasItem(const nsAString& aURI, bool* aExists)
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   nsresult rv = Init();
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsCOMPtr<nsIApplicationCache> appCache = GetDocumentAppCache();
   if (!appCache) {
     return NS_ERROR_DOM_INVALID_STATE_ERR;
@@ -262,17 +262,17 @@ nsDOMOfflineResourceList::MozHasItem(con
 
   *aExists = ((types & nsIApplicationCache::ITEM_DYNAMIC) != 0);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDOMOfflineResourceList::GetMozLength(uint32_t *aLength)
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   if (!mManifestURI) {
     *aLength = 0;
     return NS_OK;
   }
 
   nsresult rv = Init();
@@ -283,17 +283,17 @@ nsDOMOfflineResourceList::GetMozLength(u
 
   *aLength = mCachedKeysCount;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDOMOfflineResourceList::MozItem(uint32_t aIndex, nsAString& aURI)
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   nsresult rv = Init();
   NS_ENSURE_SUCCESS(rv, rv);
 
   SetDOMStringToNull(aURI);
 
   rv = CacheKeys();
@@ -305,17 +305,17 @@ nsDOMOfflineResourceList::MozItem(uint32
   CopyUTF8toUTF16(mCachedKeys[aIndex], aURI);
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDOMOfflineResourceList::MozAdd(const nsAString& aURI)
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   nsresult rv = Init();
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (!nsContentUtils::OfflineAppAllowed(mDocumentURI)) {
     return NS_ERROR_DOM_SECURITY_ERR;
   }
@@ -373,17 +373,17 @@ nsDOMOfflineResourceList::MozAdd(const n
   NS_ENSURE_SUCCESS(rv, rv);
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDOMOfflineResourceList::MozRemove(const nsAString& aURI)
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   nsresult rv = Init();
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (!nsContentUtils::OfflineAppAllowed(mDocumentURI)) {
     return NS_ERROR_DOM_SECURITY_ERR;
   }
@@ -596,17 +596,17 @@ nsDOMOfflineResourceList::Observe(nsISup
 
 //
 // nsDOMOfflineResourceList::nsIOfflineCacheUpdateObserver
 //
 NS_IMETHODIMP
 nsDOMOfflineResourceList::UpdateStateChanged(nsIOfflineCacheUpdate *aUpdate,
                                      uint32_t event)
 {
-  mExposeCacheUpdateStatus = 
+  mExposeCacheUpdateStatus =
       (event == STATE_CHECKING) ||
       (event == STATE_DOWNLOADING) ||
       (event == STATE_ITEMSTARTED) ||
       (event == STATE_ITEMCOMPLETED) ||
       // During notification of "obsolete" we must expose state of the update
       (event == STATE_OBSOLETE);
 
   switch (event) {
@@ -798,17 +798,17 @@ nsDOMOfflineResourceList::GetCacheKey(ns
   }
 
   return NS_OK;
 }
 
 nsresult
 nsDOMOfflineResourceList::CacheKeys()
 {
-  if (IS_CHILD_PROCESS()) 
+  if (IS_CHILD_PROCESS())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   if (mCachedKeys)
     return NS_OK;
 
   nsCOMPtr<nsIDOMWindow> window = do_QueryInterface(GetOwner());
   nsCOMPtr<nsIWebNavigation> webNav = do_GetInterface(window);
   nsCOMPtr<nsILoadContext> loadContext = do_QueryInterface(webNav);
--- a/dom/plugins/base/PluginPRLibrary.cpp
+++ b/dom/plugins/base/PluginPRLibrary.cpp
@@ -271,17 +271,17 @@ PluginPRLibrary::GetImageContainer(NPP i
 }
 
 #if defined(XP_MACOSX)
 nsresult
 PluginPRLibrary::IsRemoteDrawingCoreAnimation(NPP instance, bool *aDrawing)
 {
   nsNPAPIPluginInstance* inst = (nsNPAPIPluginInstance*)instance->ndata;
   NS_ENSURE_TRUE(inst, NS_ERROR_NULL_POINTER);
-  *aDrawing = false; 
+  *aDrawing = false;
   return NS_OK;
 }
 #endif
 #if defined(XP_MACOSX) || defined(XP_WIN)
 nsresult
 PluginPRLibrary::ContentsScaleFactorChanged(NPP instance, double aContentsScaleFactor)
 {
   nsNPAPIPluginInstance* inst = (nsNPAPIPluginInstance*)instance->ndata;
--- a/dom/plugins/base/android/ANPAudio.cpp
+++ b/dom/plugins/base/android/ANPAudio.cpp
@@ -144,17 +144,17 @@ AudioRunnable::Run()
   buffer.channelCount = mTrack->channels;
   buffer.format = mTrack->format;
   buffer.bufferData = (void*) byte;
 
   while (true)
   {
     // reset the buffer size
     buffer.size = mTrack->bufferSize;
-    
+
     {
       mozilla::MutexAutoLock lock(mTrack->lock);
 
       if (!mTrack->keepGoing)
         break;
 
       // Get data from the plugin
       mTrack->proc(kMoreData_ANPAudioEvent, mTrack->user, &buffer);
@@ -184,17 +184,17 @@ AudioRunnable::Run()
   }
 
   jenv->CallVoidMethod(mTrack->output_unit, at.release);
 
   jenv->DeleteGlobalRef(mTrack->output_unit);
   jenv->DeleteGlobalRef(mTrack->at_class);
 
   delete mTrack;
-  
+
   jenv->ReleaseByteArrayElements(bytearray, byte, 0);
 
   return NS_OK;
 }
 
 ANPAudioTrack*
 anp_audio_newTrack(uint32_t sampleRate,    // sampling rate in Hz
                    ANPSampleFormat format,
--- a/dom/plugins/base/android/ANPEvent.cpp
+++ b/dom/plugins/base/android/ANPEvent.cpp
@@ -15,17 +15,17 @@
 
 void
 anp_event_postEvent(NPP instance, const ANPEvent* event)
 {
   LOG("%s", __PRETTY_FUNCTION__);
 
   nsNPAPIPluginInstance* pinst = static_cast<nsNPAPIPluginInstance*>(instance->ndata);
   pinst->PostEvent((void*) event);
-  
+
   LOG("returning from %s", __PRETTY_FUNCTION__);
 }
 
 
 void InitEventInterface(ANPEventInterfaceV0 *i) {
   _assert(i->inSize == sizeof(*i));
   ASSIGN(i, postEvent);
 }
--- a/dom/plugins/base/android/ANPKeyCodes.h
+++ b/dom/plugins/base/android/ANPKeyCodes.h
@@ -22,17 +22,17 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #ifndef ANPKeyCodes_DEFINED
 #define ANPKeyCodes_DEFINED
 
 /*  List the key codes that are set to a plugin in the ANPKeyEvent.
- 
+
     These exactly match the values in android/view/KeyEvent.java and the
     corresponding .h file android/keycodes.h.
 */
 enum ANPKeyCodes {
     kUnknown_ANPKeyCode = 0,
 
     kSoftLeft_ANPKeyCode = 1,
     kSoftRight_ANPKeyCode = 2,
--- a/dom/plugins/base/android/ANPSurface.cpp
+++ b/dom/plugins/base/android/ANPSurface.cpp
@@ -81,17 +81,17 @@ static inline void* getSurface(JNIEnv* e
           "mSurface", "I");
 
       if (!gSurfaceJavaGlue.surfacePointer) {
         CLEAR_EXCEPTION(env);
 
         // And something else in 2.3+
         gSurfaceJavaGlue.surfacePointer = env->GetFieldID(surfaceClass,
             "mNativeSurface", "I");
-        
+
         CLEAR_EXCEPTION(env);
       }
     }
 
     if (!gSurfaceJavaGlue.surfacePointer) {
       LOG("Failed to acquire surface pointer");
       return nullptr;
     }
--- a/dom/plugins/base/nsNPAPIPluginStreamListener.cpp
+++ b/dom/plugins/base/nsNPAPIPluginStreamListener.cpp
@@ -40,36 +40,36 @@ nsPluginStreamToFile::nsPluginStreamToFi
                                            nsIPluginInstanceOwner* owner)
 : mTarget(PL_strdup(target)),
 mOwner(owner)
 {
   nsresult rv;
   nsCOMPtr<nsIFile> pluginTmp;
   rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(pluginTmp));
   if (NS_FAILED(rv)) return;
-  
+
   mTempFile = do_QueryInterface(pluginTmp, &rv);
   if (NS_FAILED(rv)) return;
-  
+
   // need to create a file with a unique name - use target as the basis
   rv = mTempFile->AppendNative(nsDependentCString(target));
   if (NS_FAILED(rv)) return;
-  
+
   // Yes, make it unique.
-  rv = mTempFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 0700); 
+  rv = mTempFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 0700);
   if (NS_FAILED(rv)) return;
-  
+
   // create the file
   rv = NS_NewLocalFileOutputStream(getter_AddRefs(mOutputStream), mTempFile, -1, 00600);
   if (NS_FAILED(rv))
     return;
-	
+
   // construct the URL we'll use later in calls to GetURL()
   NS_GetURLSpecFromFile(mTempFile, mFileURL);
-  
+
 #ifdef DEBUG
   printf("File URL = %s\n", mFileURL.get());
 #endif
 }
 
 nsPluginStreamToFile::~nsPluginStreamToFile()
 {
   // should we be deleting mTempFile here?
@@ -124,17 +124,17 @@ nsPluginStreamToFile::Close(void)
   return NS_OK;
 }
 
 // nsNPAPIPluginStreamListener Methods
 
 NS_IMPL_ISUPPORTS(nsNPAPIPluginStreamListener,
                   nsITimerCallback, nsIHTTPHeaderListener)
 
-nsNPAPIPluginStreamListener::nsNPAPIPluginStreamListener(nsNPAPIPluginInstance* inst, 
+nsNPAPIPluginStreamListener::nsNPAPIPluginStreamListener(nsNPAPIPluginInstance* inst,
                                                          void* notifyData,
                                                          const char* aURL)
   : mStreamBuffer(nullptr)
   , mNotifyURL(aURL ? PL_strdup(aURL) : nullptr)
   , mInst(inst)
   , mStreamBufferSize(0)
   , mStreamBufferByteCount(0)
   , mStreamType(NP_NORMAL)
@@ -160,26 +160,26 @@ nsNPAPIPluginStreamListener::~nsNPAPIPlu
   nsTArray<nsNPAPIPluginStreamListener*> *streamListeners = mInst->StreamListeners();
   streamListeners->RemoveElement(this);
 
   // For those cases when NewStream is never called, we still may need
   // to fire a notification callback. Return network error as fallback
   // reason because for other cases, notify should have already been
   // called for other reasons elsewhere.
   CallURLNotify(NPRES_NETWORK_ERR);
-  
+
   // lets get rid of the buffer
   if (mStreamBuffer) {
     free(mStreamBuffer);
     mStreamBuffer=nullptr;
   }
-  
+
   if (mNotifyURL)
     PL_strfree(mNotifyURL);
-  
+
   if (mResponseHeaderBuf)
     PL_strfree(mResponseHeaderBuf);
 
   if (mNPStreamWrapper) {
     delete mNPStreamWrapper;
   }
 }
 
@@ -190,19 +190,19 @@ nsNPAPIPluginStreamListener::CleanUpStre
 
   // Various bits of code in the rest of this method may result in the
   // deletion of this object. Use a KungFuDeathGrip to keep ourselves
   // alive during cleanup.
   RefPtr<nsNPAPIPluginStreamListener> kungFuDeathGrip(this);
 
   if (mStreamCleanedUp)
     return NS_OK;
-  
+
   mStreamCleanedUp = true;
-  
+
   StopDataPump();
 
   // Release any outstanding redirect callback.
   if (mHTTPRedirectCallback) {
     mHTTPRedirectCallback->OnRedirectVerifyCallback(NS_ERROR_FAILURE);
     mHTTPRedirectCallback = nullptr;
   }
 
@@ -213,17 +213,17 @@ nsNPAPIPluginStreamListener::CleanUpStre
 
   if (mStreamListenerPeer) {
     mStreamListenerPeer->CancelRequests(NS_BINDING_ABORTED);
     mStreamListenerPeer = nullptr;
   }
 
   if (!mInst || !mInst->CanFireNotifications())
     return rv;
-  
+
   PluginDestructionGuard guard(mInst);
 
   nsNPAPIPlugin* plugin = mInst->GetPlugin();
   if (!plugin || !plugin->GetLibrary())
     return rv;
 
   NPPluginFuncs* pluginFunctions = plugin->PluginFuncs();
 
@@ -231,56 +231,56 @@ nsNPAPIPluginStreamListener::CleanUpStre
   mInst->GetNPP(&npp);
 
   if (mStreamState >= eNewStreamCalled && pluginFunctions->destroystream) {
     NPPAutoPusher nppPusher(npp);
 
     NPError error;
     NS_TRY_SAFE_CALL_RETURN(error, (*pluginFunctions->destroystream)(npp, &mNPStreamWrapper->mNPStream, reason), mInst,
                             NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
-    
+
     NPP_PLUGIN_LOG(PLUGIN_LOG_NORMAL,
                    ("NPP DestroyStream called: this=%p, npp=%p, reason=%d, return=%d, url=%s\n",
                     this, npp, reason, error, mNPStreamWrapper->mNPStream.url));
-    
+
     if (error == NPERR_NO_ERROR)
       rv = NS_OK;
   }
-  
+
   mStreamState = eStreamStopped;
-  
+
   // fire notification back to plugin, just like before
   CallURLNotify(reason);
-  
+
   return rv;
 }
 
 void
 nsNPAPIPluginStreamListener::CallURLNotify(NPReason reason)
 {
   if (!mCallNotify || !mInst || !mInst->CanFireNotifications())
     return;
-  
+
   PluginDestructionGuard guard(mInst);
-  
+
   mCallNotify = false; // only do this ONCE and prevent recursion
 
   nsNPAPIPlugin* plugin = mInst->GetPlugin();
   if (!plugin || !plugin->GetLibrary())
     return;
 
   NPPluginFuncs* pluginFunctions = plugin->PluginFuncs();
 
   if (pluginFunctions->urlnotify) {
     NPP npp;
     mInst->GetNPP(&npp);
-    
+
     NS_TRY_SAFE_CALL_VOID((*pluginFunctions->urlnotify)(npp, mNotifyURL, reason, mNPStreamWrapper->mNPStream.notifyData), mInst,
                           NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
-    
+
     NPP_PLUGIN_LOG(PLUGIN_LOG_NORMAL,
                    ("NPP URLNotify called: this=%p, npp=%p, notify=%p, reason=%d, url=%s\n",
                     this, npp, mNPStreamWrapper->mNPStream.notifyData, reason, mNotifyURL));
   }
 }
 
 nsresult
 nsNPAPIPluginStreamListener::OnStartBinding(nsPluginStreamListenerPeer* streamPeer)
@@ -308,33 +308,33 @@ nsNPAPIPluginStreamListener::OnStartBind
   uint16_t streamType = NP_NORMAL;
   NPError error;
 
   streamPeer->GetURL(&mNPStreamWrapper->mNPStream.url);
   streamPeer->GetLength((uint32_t*)&(mNPStreamWrapper->mNPStream.end));
   streamPeer->GetLastModified((uint32_t*)&(mNPStreamWrapper->mNPStream.lastmodified));
   streamPeer->IsSeekable(&seekable);
   streamPeer->GetContentType(&contentType);
-  
+
   if (!mResponseHeaders.IsEmpty()) {
     mResponseHeaderBuf = PL_strdup(mResponseHeaders.get());
     mNPStreamWrapper->mNPStream.headers = mResponseHeaderBuf;
   }
-  
+
   mStreamListenerPeer = streamPeer;
-  
+
   NPPAutoPusher nppPusher(npp);
-  
+
   NS_TRY_SAFE_CALL_RETURN(error, (*pluginFunctions->newstream)(npp, (char*)contentType, &mNPStreamWrapper->mNPStream, seekable, &streamType), mInst,
                           NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
-  
+
   NPP_PLUGIN_LOG(PLUGIN_LOG_NORMAL,
                  ("NPP NewStream called: this=%p, npp=%p, mime=%s, seek=%d, type=%d, return=%d, url=%s\n",
                   this, npp, (char *)contentType, seekable, streamType, error, mNPStreamWrapper->mNPStream.url));
-  
+
   if (error != NPERR_NO_ERROR)
     return NS_ERROR_FAILURE;
 
   mStreamState = eNewStreamCalled;
 
   if (!SetStreamType(streamType, false)) {
     return NS_ERROR_FAILURE;
   }
@@ -442,17 +442,17 @@ nsNPAPIPluginStreamListener::PluginInitJ
     return false;
 
   nsTArray<nsNPAPIPluginStreamListener*> *streamListeners = mInst->StreamListeners();
   for (unsigned int i = 0; i < streamListeners->Length(); i++) {
     if (streamListeners->ElementAt(i)->mIsPluginInitJSStream) {
       return true;
     }
   }
-  
+
   return false;
 }
 
 // This method is called when there's more data available off the
 // network, but it's also called from our data pump when we're feeding
 // the plugin data that we already got off the network, but the plugin
 // was unable to consume it at the point it arrived. In the case when
 // the plugin pump calls this method, the input argument will be null,
@@ -460,227 +460,227 @@ nsNPAPIPluginStreamListener::PluginInitJ
 // internal buffer.
 nsresult
 nsNPAPIPluginStreamListener::OnDataAvailable(nsPluginStreamListenerPeer* streamPeer,
                                              nsIInputStream* input,
                                              uint32_t length)
 {
   if (!length || !mInst || !mInst->CanFireNotifications())
     return NS_ERROR_FAILURE;
-  
+
   PluginDestructionGuard guard(mInst);
-  
+
   // Just in case the caller switches plugin info on us.
   mStreamListenerPeer = streamPeer;
 
   nsNPAPIPlugin* plugin = mInst->GetPlugin();
   if (!plugin || !plugin->GetLibrary())
     return NS_ERROR_FAILURE;
 
   NPPluginFuncs* pluginFunctions = plugin->PluginFuncs();
 
   // check out if plugin implements NPP_Write call
   if (!pluginFunctions->write)
-    return NS_ERROR_FAILURE; // it'll cancel necko transaction 
-  
+    return NS_ERROR_FAILURE; // it'll cancel necko transaction
+
   if (!mStreamBuffer) {
     // To optimize the mem usage & performance we have to allocate
     // mStreamBuffer here in first ODA when length of data available
     // in input stream is known.  mStreamBuffer will be freed in DTOR.
     // we also have to remember the size of that buff to make safe
     // consecutive Read() calls form input stream into our buff.
-    
+
     uint32_t contentLength;
     streamPeer->GetLength(&contentLength);
-    
+
     mStreamBufferSize = std::max(length, contentLength);
-    
+
     // Limit the size of the initial buffer to MAX_PLUGIN_NECKO_BUFFER
     // (16k). This buffer will grow if needed, as in the case where
     // we're getting data faster than the plugin can process it.
     mStreamBufferSize = std::min(mStreamBufferSize,
                                uint32_t(MAX_PLUGIN_NECKO_BUFFER));
-    
+
     mStreamBuffer = (char*) malloc(mStreamBufferSize);
     if (!mStreamBuffer)
       return NS_ERROR_OUT_OF_MEMORY;
   }
-  
+
   // prepare NPP_ calls params
   NPP npp;
   mInst->GetNPP(&npp);
-  
+
   int32_t streamPosition;
   streamPeer->GetStreamOffset(&streamPosition);
   int32_t streamOffset = streamPosition;
-  
+
   if (input) {
     streamOffset += length;
-    
+
     // Set new stream offset for the next ODA call regardless of how
     // following NPP_Write call will behave we pretend to consume all
     // data from the input stream.  It's possible that current steam
     // position will be overwritten from NPP_RangeRequest call made
     // from NPP_Write, so we cannot call SetStreamOffset after
     // NPP_Write.
     //
     // Note: there is a special case when data flow should be
     // temporarily stopped if NPP_WriteReady returns 0 (bug #89270)
     streamPeer->SetStreamOffset(streamOffset);
-    
+
     // set new end in case the content is compressed
     // initial end is less than end of decompressed stream
-    // and some plugins (e.g. acrobat) can fail. 
+    // and some plugins (e.g. acrobat) can fail.
     if ((int32_t)mNPStreamWrapper->mNPStream.end < streamOffset)
       mNPStreamWrapper->mNPStream.end = streamOffset;
   }
-  
+
   nsresult rv = NS_OK;
   while (NS_SUCCEEDED(rv) && length > 0) {
     if (input && length) {
       if (mStreamBufferSize < mStreamBufferByteCount + length) {
         // We're in the ::OnDataAvailable() call that we might get
         // after suspending a request, or we suspended the request
         // from within this ::OnDataAvailable() call while there's
         // still data in the input, or we have resumed a previously
         // suspended request and our buffer is already full, and we
         // don't have enough space to store what we got off the network.
         // Reallocate our internal buffer.
         mStreamBufferSize = mStreamBufferByteCount + length;
         char* buf = (char*) realloc(mStreamBuffer, mStreamBufferSize);
         if (!buf)
           return NS_ERROR_OUT_OF_MEMORY;
-        
+
         mStreamBuffer = buf;
       }
 
       uint32_t bytesToRead =
       std::min(length, mStreamBufferSize - mStreamBufferByteCount);
       MOZ_ASSERT(bytesToRead > 0);
 
       uint32_t amountRead = 0;
       rv = input->Read(mStreamBuffer + mStreamBufferByteCount, bytesToRead,
                        &amountRead);
       NS_ENSURE_SUCCESS(rv, rv);
-      
+
       if (amountRead == 0) {
         NS_NOTREACHED("input->Read() returns no data, it's almost impossible "
                       "to get here");
-        
+
         break;
       }
-      
+
       mStreamBufferByteCount += amountRead;
       length -= amountRead;
     } else {
       // No input, nothing to read. Set length to 0 so that we don't
       // keep iterating through this outer loop any more.
-      
+
       length = 0;
     }
-    
+
     // Temporary pointer to the beginning of the data we're writing as
     // we loop and feed the plugin data.
     char *ptrStreamBuffer = mStreamBuffer;
-    
+
     // it is possible plugin's NPP_Write() returns 0 byte consumed. We
     // use zeroBytesWriteCount to count situation like this and break
     // the loop
     int32_t zeroBytesWriteCount = 0;
-    
+
     // mStreamBufferByteCount tells us how many bytes there are in the
     // buffer. WriteReady returns to us how many bytes the plugin is
     // ready to handle.
     while (mStreamBufferByteCount > 0) {
       int32_t numtowrite;
       if (pluginFunctions->writeready) {
         NPPAutoPusher nppPusher(npp);
-        
+
         NS_TRY_SAFE_CALL_RETURN(numtowrite, (*pluginFunctions->writeready)(npp, &mNPStreamWrapper->mNPStream), mInst,
                                 NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
         NPP_PLUGIN_LOG(PLUGIN_LOG_NOISY,
                        ("NPP WriteReady called: this=%p, npp=%p, "
                         "return(towrite)=%d, url=%s\n",
                         this, npp, numtowrite, mNPStreamWrapper->mNPStream.url));
-        
+
         if (mStreamState == eStreamStopped) {
           // The plugin called NPN_DestroyStream() from within
           // NPP_WriteReady(), kill the stream.
-          
+
           return NS_BINDING_ABORTED;
         }
-        
+
         // if WriteReady returned 0, the plugin is not ready to handle
         // the data, suspend the stream (if it isn't already
         // suspended).
         //
         // Also suspend the stream if the stream we're loading is not
         // a javascript: URL load that was initiated during plugin
         // initialization and there currently is such a stream
         // loading. This is done to work around a Windows Media Player
         // plugin bug where it can't deal with being fed data for
         // other streams while it's waiting for data from the
         // javascript: URL loads it requests during
         // initialization. See bug 386493 for more details.
-        
+
         if (numtowrite <= 0 ||
             (!mIsPluginInitJSStream && PluginInitJSLoadInProgress())) {
           if (!mIsSuspended) {
             SuspendRequest();
           }
-          
+
           // Break out of the inner loop, but keep going through the
           // outer loop in case there's more data to read from the
           // input stream.
-          
+
           break;
         }
-        
+
         numtowrite = std::min(numtowrite, mStreamBufferByteCount);
       } else {
         // if WriteReady is not supported by the plugin, just write
         // the whole buffer
         numtowrite = mStreamBufferByteCount;
       }
-      
+
       NPPAutoPusher nppPusher(npp);
-      
+
       int32_t writeCount = 0; // bytes consumed by plugin instance
       NS_TRY_SAFE_CALL_RETURN(writeCount, (*pluginFunctions->write)(npp, &mNPStreamWrapper->mNPStream, streamPosition, numtowrite, ptrStreamBuffer), mInst,
                               NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
-      
+
       NPP_PLUGIN_LOG(PLUGIN_LOG_NOISY,
                      ("NPP Write called: this=%p, npp=%p, pos=%d, len=%d, "
                       "buf=%.*s, return(written)=%d,  url=%s\n",
                       this, npp, streamPosition, numtowrite,
                       numtowrite, ptrStreamBuffer, writeCount, mNPStreamWrapper->mNPStream.url));
-      
+
       if (mStreamState == eStreamStopped) {
         // The plugin called NPN_DestroyStream() from within
         // NPP_Write(), kill the stream.
         return NS_BINDING_ABORTED;
       }
-      
+
       if (writeCount > 0) {
         NS_ASSERTION(writeCount <= mStreamBufferByteCount,
                      "Plugin read past the end of the available data!");
-        
+
         writeCount = std::min(writeCount, mStreamBufferByteCount);
         mStreamBufferByteCount -= writeCount;
-        
+
         streamPosition += writeCount;
-        
+
         zeroBytesWriteCount = 0;
-        
+
         if (mStreamBufferByteCount > 0) {
           // This alignment code is most likely bogus, but we'll leave
           // it in for now in case it matters for some plugins on some
           // architectures. Who knows...
           if (writeCount % sizeof(intptr_t)) {
-            // memmove will take care  about alignment 
+            // memmove will take care  about alignment
             memmove(mStreamBuffer, ptrStreamBuffer + writeCount,
                     mStreamBufferByteCount);
             ptrStreamBuffer = mStreamBuffer;
           } else {
             // if aligned we can use ptrStreamBuffer += to eliminate
             // memmove()
             ptrStreamBuffer += writeCount;
           }
@@ -689,87 +689,87 @@ nsNPAPIPluginStreamListener::OnDataAvail
         // if NPP_Write() returns writeCount == 0 lets say 3 times in
         // a row, suspend the request and continue feeding the plugin
         // the data we got so far. Once that data is consumed, we'll
         // resume the request.
         if (mIsSuspended || ++zeroBytesWriteCount == 3) {
           if (!mIsSuspended) {
             SuspendRequest();
           }
-          
+
           // Break out of the for loop, but keep going through the
           // while loop in case there's more data to read from the
           // input stream.
-          
+
           break;
         }
       } else {
         // Something's really wrong, kill the stream.
         rv = NS_ERROR_FAILURE;
-        
+
         break;
-      }  
+      }
     } // end of inner while loop
-    
+
     if (mStreamBufferByteCount && mStreamBuffer != ptrStreamBuffer) {
       memmove(mStreamBuffer, ptrStreamBuffer, mStreamBufferByteCount);
     }
   }
-  
+
   if (streamPosition != streamOffset) {
     // The plugin didn't consume all available data, or consumed some
     // of our cached data while we're pumping cached data. Adjust the
     // plugin info's stream offset to match reality, except if the
     // plugin info's stream offset was set by a re-entering
     // NPN_RequestRead() call.
-    
+
     int32_t postWriteStreamPosition;
     streamPeer->GetStreamOffset(&postWriteStreamPosition);
-    
+
     if (postWriteStreamPosition == streamOffset) {
       streamPeer->SetStreamOffset(streamPosition);
     }
   }
-  
+
   return rv;
 }
 
 nsresult
-nsNPAPIPluginStreamListener::OnFileAvailable(nsPluginStreamListenerPeer* streamPeer, 
+nsNPAPIPluginStreamListener::OnFileAvailable(nsPluginStreamListenerPeer* streamPeer,
                                              const char* fileName)
 {
   if (!mInst || !mInst->CanFireNotifications())
     return NS_ERROR_FAILURE;
-  
+
   PluginDestructionGuard guard(mInst);
 
   nsNPAPIPlugin* plugin = mInst->GetPlugin();
   if (!plugin || !plugin->GetLibrary())
     return NS_ERROR_FAILURE;
 
   NPPluginFuncs* pluginFunctions = plugin->PluginFuncs();
 
   if (!pluginFunctions->asfile)
     return NS_ERROR_FAILURE;
 
   NPP npp;
   mInst->GetNPP(&npp);
-  
+
   NS_TRY_SAFE_CALL_VOID((*pluginFunctions->asfile)(npp, &mNPStreamWrapper->mNPStream, fileName), mInst,
                         NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
-  
+
   NPP_PLUGIN_LOG(PLUGIN_LOG_NORMAL,
                  ("NPP StreamAsFile called: this=%p, npp=%p, url=%s, file=%s\n",
                   this, npp, mNPStreamWrapper->mNPStream.url, fileName));
-  
+
   return NS_OK;
 }
 
 nsresult
-nsNPAPIPluginStreamListener::OnStopBinding(nsPluginStreamListenerPeer* streamPeer, 
+nsNPAPIPluginStreamListener::OnStopBinding(nsPluginStreamListenerPeer* streamPeer,
                                            nsresult status)
 {
   if (NS_FAILED(status)) {
     // The stream was destroyed, or died for some reason. Make sure we
     // cancel the underlying request.
     if (mStreamListenerPeer) {
       mStreamListenerPeer->CancelRequests(status);
     }
@@ -831,28 +831,28 @@ nsNPAPIPluginStreamListener::MaybeRunSto
   mStreamStopMode = eNormalStop;
   return true;
 }
 
 NS_IMETHODIMP
 nsNPAPIPluginStreamListener::Notify(nsITimer *aTimer)
 {
   NS_ASSERTION(aTimer == mDataPumpTimer, "Uh, wrong timer?");
-  
+
   int32_t oldStreamBufferByteCount = mStreamBufferByteCount;
-  
+
   nsresult rv = OnDataAvailable(mStreamListenerPeer, nullptr, mStreamBufferByteCount);
-  
+
   if (NS_FAILED(rv)) {
     // We ran into an error, no need to keep firing this timer then.
     StopDataPump();
     MaybeRunStopBinding();
     return NS_OK;
   }
-  
+
   if (mStreamBufferByteCount != oldStreamBufferByteCount &&
       ((mStreamState == eStreamTypeSet && mStreamBufferByteCount < 1024) ||
        mStreamBufferByteCount == 0)) {
         // The plugin read some data and we've got less than 1024 bytes in
         // our buffer (or its empty and the stream is already
         // done). Resume the request so that we get more data off the
         // network.
         ResumeRequest();
--- a/dom/plugins/base/nsNPAPIPluginStreamListener.h
+++ b/dom/plugins/base/nsNPAPIPluginStreamListener.h
@@ -72,19 +72,19 @@ public:
 
   nsNPAPIPluginStreamListener(nsNPAPIPluginInstance* inst, void* notifyData,
                               const char* aURL);
 
   nsresult OnStartBinding(nsPluginStreamListenerPeer* streamPeer);
   nsresult OnDataAvailable(nsPluginStreamListenerPeer* streamPeer,
                            nsIInputStream* input,
                            uint32_t length);
-  nsresult OnFileAvailable(nsPluginStreamListenerPeer* streamPeer, 
+  nsresult OnFileAvailable(nsPluginStreamListenerPeer* streamPeer,
                            const char* fileName);
-  nsresult OnStopBinding(nsPluginStreamListenerPeer* streamPeer, 
+  nsresult OnStopBinding(nsPluginStreamListenerPeer* streamPeer,
                          nsresult status);
   nsresult GetStreamType(int32_t *result);
   bool SetStreamType(uint16_t aType, bool aNeedsResume = true);
 
   bool IsStarted();
   nsresult CleanUpStream(NPReason reason);
   void CallURLNotify(NPReason reason);
   void SetCallNotify(bool aCallNotify) { mCallNotify = aCallNotify; }
--- a/dom/plugins/base/nsPluginDirServiceProvider.h
+++ b/dom/plugins/base/nsPluginDirServiceProvider.h
@@ -11,23 +11,23 @@
 #if defined (XP_WIN)
 #include "nsCOMArray.h"
 #endif
 
 class nsISimpleEnumerator;
 
 //*****************************************************************************
 // class nsPluginDirServiceProvider
-//*****************************************************************************   
+//*****************************************************************************
 
 class nsPluginDirServiceProvider : public nsIDirectoryServiceProvider
 {
 public:
    nsPluginDirServiceProvider();
-   
+
    NS_DECL_THREADSAFE_ISUPPORTS
    NS_DECL_NSIDIRECTORYSERVICEPROVIDER
 
 #ifdef XP_WIN
    static nsresult GetPLIDDirectories(nsISimpleEnumerator **aEnumerator);
 private:
    static nsresult GetPLIDDirectoriesWithRootKey(uint32_t aKey,
      nsCOMArray<nsIFile> &aDirs);
--- a/dom/plugins/base/nsPluginInstanceOwner.h
+++ b/dom/plugins/base/nsPluginInstanceOwner.h
@@ -54,26 +54,26 @@ class nsPluginInstanceOwner final : publ
                                   , public nsIPrivacyTransitionObserver
                                   , public nsIKeyEventInPluginCallback
                                   , public nsSupportsWeakReference
 {
 public:
   typedef mozilla::gfx::DrawTarget DrawTarget;
 
   nsPluginInstanceOwner();
-  
+
   NS_DECL_ISUPPORTS
   NS_DECL_NSIPLUGININSTANCEOWNER
   NS_DECL_NSIPRIVACYTRANSITIONOBSERVER
-  
+
   NS_IMETHOD GetURL(const char *aURL, const char *aTarget,
-                    nsIInputStream *aPostStream, 
+                    nsIInputStream *aPostStream,
                     void *aHeadersData, uint32_t aHeadersDataLen,
                     bool aDoCheckLoadURIChecks) override;
-  
+
   NPBool     ConvertPoint(double sourceX, double sourceY, NPCoordinateSpace sourceSpace,
                           double *destX, double *destY, NPCoordinateSpace destSpace) override;
 
   NPError InitAsyncSurface(NPSize *size, NPImageFormat format,
                            void *initData, NPAsyncSurface *surface) override;
   NPError FinalizeAsyncSurface(NPAsyncSurface *surface) override;
   void SetCurrentAsyncSurface(NPAsyncSurface *surface, NPRect *changed) override;
 
@@ -89,54 +89,54 @@ public:
   /**
    * Returns the DOM element corresponding to the tag which references
    * this plugin in the document.
    *
    * @param aDOMElement - resulting DOM element
    * @result - NS_OK if this operation was successful
    */
   NS_IMETHOD GetDOMElement(nsIDOMElement* * aResult);
-  
-  // nsIDOMEventListener interfaces 
+
+  // nsIDOMEventListener interfaces
   NS_DECL_NSIDOMEVENTLISTENER
-  
+
   nsresult ProcessMouseDown(nsIDOMEvent* aKeyEvent);
   nsresult ProcessKeyPress(nsIDOMEvent* aKeyEvent);
-  nsresult Destroy();  
+  nsresult Destroy();
 
 #ifdef XP_WIN
   void Paint(const RECT& aDirty, HDC aDC);
 #elif defined(XP_MACOSX)
-  void Paint(const gfxRect& aDirtyRect, CGContextRef cgContext);  
+  void Paint(const gfxRect& aDirtyRect, CGContextRef cgContext);
   void RenderCoreAnimation(CGContextRef aCGContext, int aWidth, int aHeight);
   void DoCocoaEventDrawRect(const gfxRect& aDrawRect, CGContextRef cgContext);
 #elif defined(MOZ_X11) || defined(ANDROID)
   void Paint(gfxContext* aContext,
              const gfxRect& aFrameRect,
              const gfxRect& aDirtyRect);
 #endif
 
   //locals
-  
+
   nsresult Init(nsIContent* aContent);
-  
+
   void* GetPluginPort();
   void ReleasePluginPort(void* pluginPort);
 
   nsEventStatus ProcessEvent(const mozilla::WidgetGUIEvent& anEvent);
 
   static void GeneratePluginEvent(
                 const mozilla::WidgetCompositionEvent* aSrcCompositionEvent,
                 mozilla::WidgetCompositionEvent* aDistCompositionEvent);
 
 #if defined(XP_WIN)
   void SetWidgetWindowAsParent(HWND aWindowToAdopt);
   nsresult SetNetscapeWindowAsParent(HWND aWindowToAdopt);
 #endif
-  
+
 #ifdef XP_MACOSX
   enum { ePluginPaintEnable, ePluginPaintDisable };
 
   void WindowFocusMayHaveChanged();
 
   bool WindowIsActive();
   void SendWindowFocusChanged(bool aIsActive);
   NPDrawingModel GetDrawingModel();
@@ -163,91 +163,91 @@ public:
 #endif
 
   void UpdateDocumentActiveState(bool aIsActive);
 
   void SetFrame(nsPluginFrame *aFrame);
   nsPluginFrame* GetFrame();
 
   uint32_t GetLastEventloopNestingLevel() const {
-    return mLastEventloopNestingLevel; 
+    return mLastEventloopNestingLevel;
   }
-  
+
   static uint32_t GetEventloopNestingLevel();
-  
+
   void ConsiderNewEventloopNestingLevel() {
     uint32_t currentLevel = GetEventloopNestingLevel();
-    
+
     if (currentLevel < mLastEventloopNestingLevel) {
       mLastEventloopNestingLevel = currentLevel;
     }
   }
-  
+
   const char* GetPluginName()
   {
     if (mInstance && mPluginHost) {
       const char* name = nullptr;
       if (NS_SUCCEEDED(mPluginHost->GetPluginName(mInstance, &name)) && name)
         return name;
     }
     return "";
   }
-  
+
 #ifdef MOZ_X11
   void GetPluginDescription(nsACString& aDescription)
   {
     aDescription.Truncate();
     if (mInstance && mPluginHost) {
       nsCOMPtr<nsIPluginTag> pluginTag;
-      
+
       mPluginHost->GetPluginTagForInstance(mInstance,
                                            getter_AddRefs(pluginTag));
       if (pluginTag) {
         pluginTag->GetDescription(aDescription);
       }
     }
   }
 #endif
-  
+
   bool SendNativeEvents()
   {
 #ifdef XP_WIN
     // XXX we should remove the plugin name check
     return mPluginWindow->type == NPWindowTypeDrawable &&
     (MatchPluginName("Shockwave Flash") ||
      MatchPluginName("Test Plug-in"));
 #elif defined(MOZ_X11) || defined(XP_MACOSX)
     return true;
 #else
     return false;
 #endif
   }
-  
+
   bool MatchPluginName(const char *aPluginName)
   {
     return strncmp(GetPluginName(), aPluginName, strlen(aPluginName)) == 0;
   }
-  
+
   void NotifyPaintWaiter(nsDisplayListBuilder* aBuilder);
 
   // Returns the image container that has our currently displayed image.
   already_AddRefed<mozilla::layers::ImageContainer> GetImageContainer();
   // Returns true if this is windowed plugin that can return static captures
   // for scroll operations.
   bool NeedsScrollImageLayer();
 
   void DidComposite();
 
   /**
    * Returns the bounds of the current async-rendered surface. This can only
    * change in response to messages received by the event loop (i.e. not during
    * painting).
    */
   nsIntSize GetCurrentImageSize();
-  
+
   // Methods to update the background image we send to async plugins.
   // The eventual target of these operations is PluginInstanceParent,
   // but it takes several hops to get there.
   void SetBackgroundUnknown();
   already_AddRefed<DrawTarget> BeginUpdateBackground(const nsIntRect& aRect);
   void EndUpdateBackground(const nsIntRect& aRect);
 
   bool UseAsyncRendering();
@@ -304,38 +304,38 @@ private:
 
 #ifdef MOZ_WIDGET_ANDROID
   mozilla::LayoutDeviceRect GetPluginRect();
   bool AddPluginView(const mozilla::LayoutDeviceRect& aRect = mozilla::LayoutDeviceRect(0, 0, 0, 0));
   void RemovePluginView();
 
   bool mFullScreen;
   void* mJavaView;
-#endif 
+#endif
 
 #if defined(XP_WIN)
   nsIWidget* GetContainingWidgetIfOffset();
   already_AddRefed<mozilla::TextComposition> GetTextComposition();
   void HandleNoConsumedCompositionMessage(
     mozilla::WidgetCompositionEvent* aCompositionEvent,
     const NPEvent* aPluginEvent);
   bool mGotCompositionData;
   bool mSentStartComposition;
   bool mPluginDidNotHandleIMEComposition;
 #endif
- 
+
   nsPluginNativeWindow       *mPluginWindow;
   RefPtr<nsNPAPIPluginInstance> mInstance;
   nsPluginFrame              *mPluginFrame;
   nsWeakPtr                   mContent; // WEAK, content owns us
   nsCString                   mDocumentBase;
   bool                        mWidgetCreationComplete;
   nsCOMPtr<nsIWidget>         mWidget;
   RefPtr<nsPluginHost>      mPluginHost;
-  
+
 #ifdef XP_MACOSX
   static nsCOMPtr<nsITimer>                *sCATimer;
   static nsTArray<nsPluginInstanceOwner*>  *sCARefreshListeners;
   bool                                      mSentInitialTopLevelWindowEvent;
   bool                                      mLastWindowIsActive;
   bool                                      mLastContentFocused;
   // True if, the next time the window is activated, we should blur ourselves.
   bool                                      mShouldBlurOnActivate;
@@ -358,20 +358,20 @@ private:
 #ifdef XP_MACOSX
   NPEventModel mEventModel;
   // This is a hack! UseAsyncRendering() can incorrectly return false
   // when we don't have an object frame (possible as of bug 90268).
   // We hack around this by always returning true if we've ever
   // returned true.
   bool mUseAsyncRendering;
 #endif
-  
+
   // pointer to wrapper for nsIDOMContextMenuListener
   RefPtr<nsPluginDOMContextMenuListener> mCXMenuListener;
-  
+
   nsresult DispatchKeyToPlugin(nsIDOMEvent* aKeyEvent);
   nsresult DispatchMouseToPlugin(nsIDOMEvent* aMouseEvent,
                                  bool aAllowPropagate = false);
   nsresult DispatchFocusToPlugin(nsIDOMEvent* aFocusEvent);
   nsresult DispatchCompositionToPlugin(nsIDOMEvent* aEvent);
 
 #ifdef XP_WIN
   void CallDefaultProc(const mozilla::WidgetGUIEvent* aEvent);
--- a/dom/plugins/base/nsPluginManifestLineReader.h
+++ b/dom/plugins/base/nsPluginManifestLineReader.h
@@ -15,38 +15,38 @@
 #define PLUGIN_REGISTRY_FIELD_DELIMITER ':'
 #endif
 
 #define PLUGIN_REGISTRY_END_OF_LINE_MARKER '$'
 
 class nsPluginManifestLineReader
 {
   public:
-    nsPluginManifestLineReader() {mBase = mCur = mNext = mLimit = 0;} 
+    nsPluginManifestLineReader() {mBase = mCur = mNext = mLimit = 0;}
     ~nsPluginManifestLineReader() { if (mBase) delete[] mBase; mBase=0;}
-    
-    char* Init(uint32_t flen) 
+
+    char* Init(uint32_t flen)
     {
       mBase = mCur = mNext = new char[flen + 1];
       if (mBase) {
         mLimit = mBase + flen;
         *mLimit = 0;
       }
       mLength = 0;
       return mBase;
     }
-    
+
     bool NextLine()
     {
       if (mNext >= mLimit)
         return false;
-      
+
       mCur = mNext;
       mLength = 0;
-      
+
       char *lastDelimiter = 0;
       while(mNext < mLimit) {
         if (IsEOL(*mNext)) {
           if (lastDelimiter) {
             if (lastDelimiter && *(mNext - 1) != PLUGIN_REGISTRY_END_OF_LINE_MARKER)
               return false;
             *lastDelimiter = '\0';
           } else {
@@ -59,40 +59,40 @@ class nsPluginManifestLineReader
           }
           return true;
         }
         if (*mNext == PLUGIN_REGISTRY_FIELD_DELIMITER)
           lastDelimiter = mNext;
         ++mNext;
         ++mLength;
       }
-      return false;        
+      return false;
     }
 
     int ParseLine(char** chunks, int maxChunks)
     {
       NS_ASSERTION(mCur && maxChunks && chunks, "bad call to ParseLine");
       int found = 0;
       chunks[found++] = mCur;
-      
+
       if (found < maxChunks) {
         for (char* cur = mCur; *cur; cur++) {
           if (*cur == PLUGIN_REGISTRY_FIELD_DELIMITER) {
             *cur = 0;
             chunks[found++] = cur + 1;
             if (found == maxChunks)
               break;
           }
         }
       }
       return found;
     }
 
     char*       LinePtr() { return mCur; }
-    uint32_t    LineLength() { return mLength; }    
+    uint32_t    LineLength() { return mLength; }
 
     bool        IsEOL(char c) {return c == '\n' || c == '\r';}
 
     char*       mBase;
   private:
     char*       mCur;
     uint32_t    mLength;
     char*       mNext;
--- a/dom/plugins/base/nsPluginNativeWindow.h
+++ b/dom/plugins/base/nsPluginNativeWindow.h
@@ -13,17 +13,17 @@
 #include "npapi.h"
 #include "nsIWidget.h"
 
 /**
  * base class for native plugin window implementations
  */
 class nsPluginNativeWindow : public NPWindow
 {
-public: 
+public:
   nsPluginNativeWindow() : NPWindow() {
     MOZ_COUNT_CTOR(nsPluginNativeWindow);
   }
 
   virtual ~nsPluginNativeWindow() {
     MOZ_COUNT_DTOR(nsPluginNativeWindow);
   }
 
@@ -33,31 +33,31 @@ public:
    * The base class |nsPluginWindow| is defined as a struct in nsplugindefs.h,
    * thus it does not have a destructor of its own.
    * One should never attempt to delete |nsPluginNativeWindow| object instance
    * (or derivatives) using a pointer of |nsPluginWindow *| type. Should such
    * necessity occur it must be properly casted first.
    */
 
 public:
-  nsresult GetPluginInstance(RefPtr<nsNPAPIPluginInstance> &aPluginInstance) { 
+  nsresult GetPluginInstance(RefPtr<nsNPAPIPluginInstance> &aPluginInstance) {
     aPluginInstance = mPluginInstance;
     return NS_OK;
   }
-  nsresult SetPluginInstance(nsNPAPIPluginInstance *aPluginInstance) { 
+  nsresult SetPluginInstance(nsNPAPIPluginInstance *aPluginInstance) {
     if (mPluginInstance != aPluginInstance)
       mPluginInstance = aPluginInstance;
     return NS_OK;
   }
 
   nsresult GetPluginWidget(nsIWidget **aWidget) const {
     NS_IF_ADDREF(*aWidget = mWidget);
     return NS_OK;
   }
-  nsresult SetPluginWidget(nsIWidget *aWidget) { 
+  nsresult SetPluginWidget(nsIWidget *aWidget) {
     mWidget = aWidget;
     return NS_OK;
   }
 
 public:
   virtual nsresult CallSetWindow(RefPtr<nsNPAPIPluginInstance> &aPluginInstance) {
     // null aPluginInstance means that we want to call SetWindow(null)
     if (aPluginInstance)
--- a/dom/plugins/base/nsPluginsDirDarwin.cpp
+++ b/dom/plugins/base/nsPluginsDirDarwin.cpp
@@ -1,18 +1,18 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
   nsPluginsDirDarwin.cpp
-  
+
   Mac OS X implementation of the nsPluginsDir/nsPluginsFile classes.
-  
+
   by Patrick C. Beard.
  */
 
 #include "GeckoChildProcessHost.h"
 #include "base/process_util.h"
 
 #include "prlink.h"
 #include "prnetdb.h"
@@ -69,17 +69,17 @@ static nsresult toCFURLRef(nsIFile* file
 {
   nsCOMPtr<nsILocalFileMac> lfm = do_QueryInterface(file);
   if (!lfm)
     return NS_ERROR_FAILURE;
   CFURLRef url;
   nsresult rv = lfm->GetCFURL(&url);
   if (NS_SUCCEEDED(rv))
     outURL = url;
-  
+
   return rv;
 }
 
 bool nsPluginsDir::IsPluginFile(nsIFile* file)
 {
   nsCString fileName;
   file->GetNativeLeafName(fileName);
   /*
@@ -133,97 +133,97 @@ public:
 private:
   CFTypeRef mObject;
 };
 
 static Boolean MimeTypeEnabled(CFDictionaryRef mimeDict) {
   if (!mimeDict) {
     return true;
   }
-  
+
   CFTypeRef value;
   if (::CFDictionaryGetValueIfPresent(mimeDict, CFSTR("WebPluginTypeEnabled"), &value)) {
     if (value && ::CFGetTypeID(value) == ::CFBooleanGetTypeID()) {
       return ::CFBooleanGetValue(static_cast<CFBooleanRef>(value));
     }
   }
   return true;
 }
 
 static CFDictionaryRef ParsePlistForMIMETypesFilename(CFBundleRef bundle)
 {
   CFTypeRef mimeFileName = ::CFBundleGetValueForInfoDictionaryKey(bundle, CFSTR("WebPluginMIMETypesFilename"));
   if (!mimeFileName || ::CFGetTypeID(mimeFileName) != ::CFStringGetTypeID()) {
     return nullptr;
   }
-  
+
   FSRef homeDir;
   if (::FSFindFolder(kUserDomain, kCurrentUserFolderType, kDontCreateFolder, &homeDir) != noErr) {
     return nullptr;
   }
-  
+
   CFURLRef userDirURL = ::CFURLCreateFromFSRef(kCFAllocatorDefault, &homeDir);
   if (!userDirURL) {
     return nullptr;
   }
-  
+
   AutoCFTypeObject userDirURLAutorelease(userDirURL);
   CFStringRef mimeFilePath = ::CFStringCreateWithFormat(kCFAllocatorDefault, nullptr, CFSTR("Library/Preferences/%@"), static_cast<CFStringRef>(mimeFileName));
   if (!mimeFilePath) {
     return nullptr;
   }
-  
+
   AutoCFTypeObject mimeFilePathAutorelease(mimeFilePath);
   CFURLRef mimeFileURL = ::CFURLCreateWithFileSystemPathRelativeToBase(kCFAllocatorDefault, mimeFilePath, kCFURLPOSIXPathStyle, false, userDirURL);
   if (!mimeFileURL) {
     return nullptr;
   }
-  
+
   AutoCFTypeObject mimeFileURLAutorelease(mimeFileURL);
   SInt32 errorCode = 0;
   CFDataRef mimeFileData = nullptr;
   Boolean result = ::CFURLCreateDataAndPropertiesFromResource(kCFAllocatorDefault, mimeFileURL, &mimeFileData, nullptr, nullptr, &errorCode);
   if (!result) {
     return nullptr;
   }
-  
+
   AutoCFTypeObject mimeFileDataAutorelease(mimeFileData);
   if (errorCode != 0) {
     return nullptr;
   }
-  
+
   CFPropertyListRef propertyList = ::CFPropertyListCreateFromXMLData(kCFAllocatorDefault, mimeFileData, kCFPropertyListImmutable, nullptr);
   if (!propertyList) {
     return nullptr;
   }
-  
+
   AutoCFTypeObject propertyListAutorelease(propertyList);
   if (::CFGetTypeID(propertyList) != ::CFDictionaryGetTypeID()) {
     return nullptr;
   }
 
   CFTypeRef mimeTypes = ::CFDictionaryGetValue(static_cast<CFDictionaryRef>(propertyList), CFSTR("WebPluginMIMETypes"));
   if (!mimeTypes || ::CFGetTypeID(mimeTypes) != ::CFDictionaryGetTypeID() || ::CFDictionaryGetCount(static_cast<CFDictionaryRef>(mimeTypes)) == 0) {
     return nullptr;
   }
-  
+
   return static_cast<CFDictionaryRef>(::CFRetain(mimeTypes));
 }
 
 static void ParsePlistPluginInfo(nsPluginInfo& info, CFBundleRef bundle)
 {
   CFDictionaryRef mimeDict = ParsePlistForMIMETypesFilename(bundle);
-  
+
   if (!mimeDict) {
     CFTypeRef mimeTypes = ::CFBundleGetValueForInfoDictionaryKey(bundle, CFSTR("WebPluginMIMETypes"));
     if (!mimeTypes || ::CFGetTypeID(mimeTypes) != ::CFDictionaryGetTypeID() || ::CFDictionaryGetCount(static_cast<CFDictionaryRef>(mimeTypes)) == 0)
       return;
     mimeDict = static_cast<CFDictionaryRef>(::CFRetain(mimeTypes));
   }
-  
+
   AutoCFTypeObject mimeDictAutorelease(mimeDict);
   int mimeDictKeyCount = ::CFDictionaryGetCount(mimeDict);
 
   // Allocate memory for mime data
   int mimeDataArraySize = mimeDictKeyCount * sizeof(char*);
   info.fMimeTypeArray = static_cast<char**>(moz_xmalloc(mimeDataArraySize));
   if (!info.fMimeTypeArray)
     return;
@@ -239,17 +239,17 @@ static void ParsePlistPluginInfo(nsPlugi
 
   // Allocate memory for mime dictionary keys and values
   mozilla::UniquePtr<CFTypeRef[]> keys(new CFTypeRef[mimeDictKeyCount]);
   if (!keys)
     return;
   mozilla::UniquePtr<CFTypeRef[]> values(new CFTypeRef[mimeDictKeyCount]);
   if (!values)
     return;
-  
+
   info.fVariantCount = 0;
 
   ::CFDictionaryGetKeysAndValues(mimeDict, keys.get(), values.get());
   for (int i = 0; i < mimeDictKeyCount; i++) {
     CFTypeRef mimeString = keys[i];
     if (!mimeString || ::CFGetTypeID(mimeString) != ::CFStringGetTypeID()) {
       continue;
     }
@@ -323,17 +323,17 @@ nsresult nsPluginFile::LoadPlugin(PRLibr
           if (!::CFURLGetFileSystemRepresentation(executableURL, true, (UInt8*)&executablePath, PATH_MAX))
             executablePath[0] = '\0';
           ::CFRelease(executableURL);
         }
         ::CFRelease(bundle);
       }
       ::CFRelease(bundleURL);
     }
-    ::CFRelease(pathRef); 
+    ::CFRelease(pathRef);
   }
 #else
   nsAutoCString bundlePath;
   mPlugin->GetNativePath(bundlePath);
   const char *executablePath = bundlePath.get();
 #endif
 
   *outLibrary = PR_LoadLibrary(executablePath);
@@ -365,17 +365,17 @@ static char* GetNextPluginStringFromHand
   return ret;
 }
 
 static bool IsCompatibleArch(nsIFile *file)
 {
   CFURLRef pluginURL = nullptr;
   if (NS_FAILED(toCFURLRef(file, pluginURL)))
     return false;
-  
+
   bool isPluginFile = false;
 
   CFBundleRef pluginBundle = ::CFBundleCreate(kCFAllocatorDefault, pluginURL);
   if (pluginBundle) {
     UInt32 packageType, packageCreator;
     ::CFBundleGetPackageInfo(pluginBundle, &packageType, &packageCreator);
     if (packageType == 'BRPL' || packageType == 'IEPL' || packageType == 'NSPL') {
       // Get path to plugin as a C string.
@@ -512,17 +512,17 @@ nsresult nsPluginFile::GetPluginInfo(nsP
                                        NS_LITERAL_CSTRING("Didn't crash, please ignore"));
   }
 #endif
   if (NS_FAILED(rv))
     return rv;
 
   // Try to get data from NP_GetMIMEDescription
   if (pLibrary) {
-    NP_GETMIMEDESCRIPTION pfnGetMimeDesc = (NP_GETMIMEDESCRIPTION)PR_FindFunctionSymbol(pLibrary, NP_GETMIMEDESCRIPTION_NAME); 
+    NP_GETMIMEDESCRIPTION pfnGetMimeDesc = (NP_GETMIMEDESCRIPTION)PR_FindFunctionSymbol(pLibrary, NP_GETMIMEDESCRIPTION_NAME);
     if (pfnGetMimeDesc)
       ParsePluginMimeDescription(pfnGetMimeDesc(), info);
     if (info.fVariantCount)
       return NS_OK;
   }
 
   // We'll fill this in using BP_GetSupportedMIMETypes and/or resource fork data
   BPSupportedMIMETypes mi = {kBPSupportedMIMETypesStructVers_1, nullptr, nullptr};
--- a/dom/plugins/base/nsPluginsDirUnix.cpp
+++ b/dom/plugins/base/nsPluginsDirUnix.cpp
@@ -54,17 +54,17 @@ static void DisplayPR_LoadLibraryErrorMe
 }
 
 static void SearchForSoname(const char* name, char** soname)
 {
     if (!(name && soname))
         return;
     PRDir *fdDir = PR_OpenDir(DEFAULT_X11_PATH);
     if (!fdDir)
-        return;       
+        return;
 
     int n = strlen(name);
     PRDirEntry *dirEntry;
     while ((dirEntry = PR_ReadDir(fdDir, PR_SKIP_BOTH))) {
         if (!PL_strncmp(dirEntry->name, name, n)) {
             if (dirEntry->name[n] == '.' && dirEntry->name[n+1] && !dirEntry->name[n+2]) {
                 // name.N, wild guess this is what we need
                 char out[PLUGIN_MAX_LEN_OF_TMP_ARR] = DEFAULT_X11_PATH;
@@ -184,17 +184,17 @@ static void LoadExtraSharedLibs()
                         PL_strfree(soname); // it's from strdup
                     }
                     if (numOfLibs > 1)
                         arrayOfLibs[i][strlen(arrayOfLibs[i])] = ':'; //restore ":" in sonameList
                 }
             }
 
             // Check whether sonameListToSave is a empty String, Bug: 329205
-            if (sonameListToSave[0]) 
+            if (sonameListToSave[0])
                 for (p = &sonameListToSave[strlen(sonameListToSave) - 1]; *p == ':'; p--)
                     *p = 0; //delete tail ":" delimiters
 
             if (!prefSonameListIsSet || PL_strcmp(sonameList, sonameListToSave)) {
                 // if user specified some bogus soname I overwrite it here,
                 // otherwise it'll decrease performance by calling popen() in SearchForSoname
                 // every time for each bogus name
                 prefs->SetCharPref(PREF_PLUGINS_SONAME, (const char *)sonameListToSave);
@@ -222,17 +222,17 @@ bool nsPluginsDir::IsPluginFile(nsIFile*
     if (strstr(cFile, "libstagefright") != nullptr)
         return false;
 #endif
 
     NS_NAMED_LITERAL_CSTRING(dllSuffix, LOCAL_PLUGIN_DLL_SUFFIX);
     if (filename.Length() > dllSuffix.Length() &&
         StringEndsWith(filename, dllSuffix))
         return true;
-    
+
 #ifdef LOCAL_PLUGIN_DLL_ALT_SUFFIX
     NS_NAMED_LITERAL_CSTRING(dllAltSuffix, LOCAL_PLUGIN_DLL_ALT_SUFFIX);
     if (filename.Length() > dllAltSuffix.Length() &&
         StringEndsWith(filename, dllAltSuffix))
         return true;
 #endif
     return false;
 }
@@ -299,38 +299,38 @@ nsresult nsPluginFile::LoadPlugin(PRLibr
         }
     }
 #else
     *outLibrary = PR_LoadLibraryWithFlags(libSpec, 0);
     pLibrary = *outLibrary;
 #endif  // MOZ_WIDGET_GTK == 2
 
 #ifdef DEBUG
-    printf("LoadPlugin() %s returned %lx\n", 
+    printf("LoadPlugin() %s returned %lx\n",
            libSpec.value.pathname, (unsigned long)pLibrary);
 #endif
 
     if (!pLibrary) {
         return NS_ERROR_FAILURE;
     }
-    
+
     return NS_OK;
 }
 
 nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info, PRLibrary **outLibrary)
 {
     *outLibrary = nullptr;
 
     info.fVersion = nullptr;
 
     // Sadly we have to load the library for this to work.
     nsresult rv = LoadPlugin(outLibrary);
     if (NS_FAILED(rv))
         return rv;
-  
+
     const char* (*npGetPluginVersion)() =
         (const char* (*)()) PR_FindFunctionSymbol(pLibrary, "NP_GetPluginVersion");
     if (npGetPluginVersion) {
         info.fVersion = PL_strdup(npGetPluginVersion());
     }
 
     const char* (*npGetMIMEDescription)() =
         (const char* (*)()) PR_FindFunctionSymbol(pLibrary, "NP_GetMIMEDescription");
--- a/dom/plugins/base/nsPluginsDirUtils.h
+++ b/dom/plugins/base/nsPluginsDirUtils.h
@@ -6,20 +6,20 @@
 #ifndef nsPluginsDirUtils_h___
 #define nsPluginsDirUtils_h___
 
 #include "nsPluginsDir.h"
 #include "nsTArray.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 // Output format from NPP_GetMIMEDescription: "...mime type[;version]:[extension]:[desecription];..."
-// The ambiguity of mime description could cause the browser fail to parse the MIME types 
+// The ambiguity of mime description could cause the browser fail to parse the MIME types
 // correctly.
-// E.g. "mime type::desecription;" // correct w/o ext 
-//      "mime type:desecription;"  // wrong w/o ext 
+// E.g. "mime type::desecription;" // correct w/o ext
+//      "mime type:desecription;"  // wrong w/o ext
 //
 static nsresult
 ParsePluginMimeDescription(const char *mdesc, nsPluginInfo &info)
 {
     nsresult rv = NS_ERROR_FAILURE;
     if (!mdesc || !*mdesc)
        return rv;
 
@@ -32,33 +32,33 @@ ParsePluginMimeDescription(const char *m
     while(p) {
         char *ptrMimeArray[] = {anEmptyString, anEmptyString, anEmptyString};
 
         // It's easy to point out ptrMimeArray[0] to the string sounds like
         // "Mime type is not specified, plugin will not function properly."
         // and show this on "about:plugins" page, but we have to mark this particular
         // mime type of given plugin as disable on "about:plugins" page,
         // which feature is not implemented yet.
-        // So we'll ignore, without any warnings, an empty description strings, 
+        // So we'll ignore, without any warnings, an empty description strings,
         // in other words, if after parsing ptrMimeArray[0] == anEmptyString is true.
         // It is possible do not to registry a plugin at all if it returns
         // an empty string on GetMIMEDescription() call,
         // e.g. plugger returns "" if pluggerrc file is not found.
 
         char *s = p;
         int i;
         for (i = 0; i < (int) sizeof(delimiters) && (p = PL_strchr(s, delimiters[i])); i++) {
             ptrMimeArray[i] = s; // save start ptr
             *p++ = 0; // overwrite delimiter
             s = p; // move forward
         }
         if (i == 2)
            ptrMimeArray[i] = s;
-        // fill out the temp array 
-        // the order is important, it should be the same in for loop below 
+        // fill out the temp array
+        // the order is important, it should be the same in for loop below
         if (ptrMimeArray[0] != anEmptyString) {
             tmpMimeTypeArr.AppendElement(ptrMimeArray[0]);
             tmpMimeTypeArr.AppendElement(ptrMimeArray[1]);
             tmpMimeTypeArr.AppendElement(ptrMimeArray[2]);
             mimeTypeVariantCount++;
         }
     }
 
--- a/dom/plugins/base/nsPluginsDirWin.cpp
+++ b/dom/plugins/base/nsPluginsDirWin.cpp
@@ -1,18 +1,18 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
   nsPluginsDirWin.cpp
-  
+
   Windows implementation of the nsPluginsDir/nsPluginsFile classes.
-  
+
   by Alex Musil
  */
 
 #include "mozilla/ArrayUtils.h" // ArrayLength
 #include "mozilla/DebugOnly.h"
 #include "mozilla/Printf.h"
 
 #include "nsPluginsDir.h"
@@ -139,17 +139,17 @@ static uint32_t CalculateVariantCount(ch
   return variants;
 }
 
 static char** MakeStringArray(uint32_t variants, char* data)
 {
   // The number of variants has been calculated based on the mime
   // type array. Plugins are not explicitely required to match
   // this number in two other arrays: file extention array and mime
-  // description array, and some of them actually don't. 
+  // description array, and some of them actually don't.
   // We should handle such situations gracefully
 
   if ((variants <= 0) || !data)
     return nullptr;
 
   char** array = (char**) calloc(variants, sizeof(char *));
   if (!array)
     return nullptr;
@@ -159,17 +159,17 @@ static char** MakeStringArray(uint32_t v
   for (uint32_t i = 0; i < variants; i++) {
     char * p = PL_strchr(start, '|');
     if (p)
       *p = 0;
 
     array[i] = PL_strdup(start);
 
     if (!p) {
-      // nothing more to look for, fill everything left 
+      // nothing more to look for, fill everything left
       // with empty strings and break
       while(++i < variants)
         array[i] = PL_strdup("");
 
       break;
     }
 
     start = ++p;
--- a/dom/plugins/ipc/BrowserStreamChild.cpp
+++ b/dom/plugins/ipc/BrowserStreamChild.cpp
@@ -232,17 +232,17 @@ BrowserStreamChild::Deliver()
     if (kStreamOpen == mStreamStatus)
       mStreamStatus = NPRES_DONE;
 
     (void) mInstance->mPluginIface
       ->destroystream(&mInstance->mData, &mStream, mStreamStatus);
   }
   if (DESTROYED == mDestroyPending && mNotifyPending) {
     NS_ASSERTION(mStreamNotify, "mDestroyPending but no mStreamNotify?");
-      
+
     mNotifyPending = false;
     mStreamNotify->NPP_URLNotify(mStreamStatus);
     delete mStreamNotify;
     mStreamNotify = nullptr;
   }
   if (DYING == mState && DESTROYED == mDestroyPending
       && !mStreamNotify && !mInstanceDying) {
     SendStreamDestroyed();
--- a/dom/plugins/ipc/ChildAsyncCall.h
+++ b/dom/plugins/ipc/ChildAsyncCall.h
@@ -21,17 +21,17 @@ class PluginInstanceChild;
 class ChildAsyncCall : public CancelableRunnable
 {
 public:
   ChildAsyncCall(PluginInstanceChild* instance,
                  PluginThreadCallback aFunc, void* aUserData);
 
   NS_IMETHOD Run() override;
   nsresult Cancel() override;
-  
+
 protected:
   PluginInstanceChild* mInstance;
   PluginThreadCallback mFunc;
   void* mData;
 
   void RemoveFromAsyncList();
 };
 
--- a/dom/plugins/ipc/MiniShmParent.h
+++ b/dom/plugins/ipc/MiniShmParent.h
@@ -10,19 +10,19 @@
 #include "MiniShmBase.h"
 
 #include <string>
 
 namespace mozilla {
 namespace plugins {
 
 /**
- * This class provides a lightweight shared memory interface for a parent 
+ * This class provides a lightweight shared memory interface for a parent
  * process in Win32.
- * This code assumes that there is a parent-child relationship between 
+ * This code assumes that there is a parent-child relationship between
  * processes, as it creates inheritable handles.
  * Note that this class is *not* an IPDL actor.
  *
  * @see MiniShmChild
  */
 class MiniShmParent : public MiniShmBase
 {
 public:
@@ -31,26 +31,26 @@ public:
 
   static const unsigned int kDefaultMiniShmSectionSize;
 
   /**
    * Initialize shared memory on the parent side.
    *
    * @param aObserver A MiniShmObserver object to receive event notifications.
    * @param aTimeout Timeout in milliseconds.
-   * @param aSectionSize Desired size of the shared memory section. This is 
+   * @param aSectionSize Desired size of the shared memory section. This is
    *                     expected to be a multiple of 0x1000 (4KiB).
    * @return nsresult error code
    */
   nsresult
   Init(MiniShmObserver* aObserver, const DWORD aTimeout,
        const unsigned int aSectionSize = kDefaultMiniShmSectionSize);
 
   /**
-   * Destroys the shared memory section. Useful to explicitly release 
+   * Destroys the shared memory section. Useful to explicitly release
    * resources if it is known that they won't be needed again.
    */
   void
   CleanUp();
 
   /**
    * Provides a cookie string that should be passed to MiniShmChild
    * during its initialization.
@@ -80,17 +80,17 @@ private:
   HANDLE mParentGuard;
   HANDLE mChildEvent;
   HANDLE mChildGuard;
   HANDLE mRegWait;
   HANDLE mFileMapping;
   LPVOID mView;
   bool   mIsConnected;
   DWORD  mTimeout;
-  
+
   DISALLOW_COPY_AND_ASSIGN(MiniShmParent);
 };
 
 } // namespace plugins
 } // namespace mozilla
 
 #endif // mozilla_plugins_MiniShmParent_h
 
--- a/dom/plugins/ipc/NPEventUnix.h
+++ b/dom/plugins/ipc/NPEventUnix.h
@@ -26,17 +26,17 @@ struct NPRemoteEvent {
 }
 
 
 //
 // XEvent is defined as a union of all more specific X*Events.
 // Luckily, as of xorg 1.6.0 / X protocol 11 rev 0, the only pointer
 // field contained in any of these specific X*Event structs is a
 // |Display*|.  So to simplify serializing these XEvents, we make the
-// 
+//
 // ********** XXX ASSUMPTION XXX **********
 //
 // that the process to which the event is forwarded shares the same
 // display as the process on which the event originated.
 //
 // With this simplification, serialization becomes a simple memcpy to
 // the output stream.  Deserialization starts as just a memcpy from
 // the input stream, BUT we then have to write the correct |Display*|
--- a/dom/plugins/ipc/PluginHangUIParent.cpp
+++ b/dom/plugins/ipc/PluginHangUIParent.cpp
@@ -251,20 +251,20 @@ PluginHangUIParent::Init(const nsString&
     ::RegisterWaitForSingleObject(&mRegWait,
                                   processInfo.hProcess,
                                   &SOnHangUIProcessExit,
                                   this,
                                   INFINITE,
                                   WT_EXECUTEDEFAULT | WT_EXECUTEONLYONCE);
     ::WaitForSingleObject(mShowEvent, ::IsDebuggerPresent() ? INFINITE
                                                             : mIPCTimeoutMs);
-    // Setting this to true even if we time out on mShowEvent. This timeout 
-    // typically occurs when the machine is thrashing so badly that 
-    // plugin-hang-ui.exe is taking a while to start. If we didn't set 
-    // this to true, Firefox would keep spawning additional plugin-hang-ui 
+    // Setting this to true even if we time out on mShowEvent. This timeout
+    // typically occurs when the machine is thrashing so badly that
+    // plugin-hang-ui.exe is taking a while to start. If we didn't set
+    // this to true, Firefox would keep spawning additional plugin-hang-ui
     // processes, which is not what we want.
     mIsShowing = true;
   }
   mShowEvent = nullptr;
   return !(!isProcessCreated);
 }
 
 // static
@@ -403,29 +403,29 @@ PluginHangUIParent::GetHangUIOwnerWindow
   if (!widget) {
     return NS_ERROR_FAILURE;
   }
 
   windowHandle = reinterpret_cast<NativeWindowHandle>(widget->GetNativeData(NS_NATIVE_WINDOW));
   if (!windowHandle) {
     return NS_ERROR_FAILURE;
   }
-  
+
   return NS_OK;
 }
 
 void
 PluginHangUIParent::OnMiniShmEvent(MiniShmBase *aMiniShmObj)
 {
   const PluginHangUIResponse* response = nullptr;
   nsresult rv = aMiniShmObj->GetReadPtr(response);
   NS_ASSERTION(NS_SUCCEEDED(rv),
                "Couldn't obtain read pointer OnMiniShmEvent");
   if (NS_SUCCEEDED(rv)) {
-    // The child process has returned a response so we shouldn't worry about 
+    // The child process has returned a response so we shouldn't worry about
     // its state anymore.
     MutexAutoLock lock(mMutex);
     UnwatchHangUIChildProcess(false);
     RecvUserResponse(response->mResponseBits);
   }
 }
 
 void
--- a/dom/plugins/ipc/PluginHangUIParent.h
+++ b/dom/plugins/ipc/PluginHangUIParent.h
@@ -18,46 +18,46 @@
 #include "MiniShmParent.h"
 
 namespace mozilla {
 namespace plugins {
 
 class PluginModuleChromeParent;
 
 /**
- * This class is responsible for launching and communicating with the 
+ * This class is responsible for launching and communicating with the
  * plugin-hang-ui process.
  *
- * NOTE: PluginHangUIParent is *not* an IPDL actor! In this case, "Parent" 
- *       is describing the fact that firefox is the parent process to the 
+ * NOTE: PluginHangUIParent is *not* an IPDL actor! In this case, "Parent"
+ *       is describing the fact that firefox is the parent process to the
  *       plugin-hang-ui process, which is the PluginHangUIChild.
  *       PluginHangUIParent and PluginHangUIChild are a matched pair.
  * @see PluginHangUIChild
  */
 class PluginHangUIParent : public MiniShmObserver
 {
 public:
   PluginHangUIParent(PluginModuleChromeParent* aModule,
                      const int32_t aHangUITimeoutPref,
                      const int32_t aChildTimeoutPref);
   virtual ~PluginHangUIParent();
 
   /**
-   * Spawn the plugin-hang-ui.exe child process and terminate the given 
+   * Spawn the plugin-hang-ui.exe child process and terminate the given
    * plugin container process if the user elects to stop the hung plugin.
    *
    * @param aPluginName Human-readable name of the affected plugin.
    * @return true if the plugin hang ui process was successfully launched,
    *         otherwise false.
    */
   bool
   Init(const nsString& aPluginName);
 
   /**
-   * If the Plugin Hang UI is being shown, send a cancel notification to the 
+   * If the Plugin Hang UI is being shown, send a cancel notification to the
    * Plugin Hang UI child process.
    *
    * @return true if the UI was shown and the cancel command was successfully
    *              sent to the child process, otherwise false.
    */
   bool
   Cancel();
 
@@ -65,51 +65,51 @@ public:
    * Returns whether the Plugin Hang UI is currently being displayed.
    *
    * @return true if the Plugin Hang UI is showing, otherwise false.
    */
   bool
   IsShowing() const { return mIsShowing; }
 
   /**
-   * Returns whether this Plugin Hang UI instance has been shown. Note 
+   * Returns whether this Plugin Hang UI instance has been shown. Note
    * that this does not necessarily mean that the UI is showing right now.
    *
    * @return true if the Plugin Hang UI has shown, otherwise false.
    */
   bool
   WasShown() const { return mIsShowing || mLastUserResponse != 0; }
 
   /**
    * Returns whether the user checked the "Don't ask me again" checkbox.
    *
    * @return true if the user does not want to see the Hang UI again.
    */
   bool
   DontShowAgain() const;
 
   /**
-   * Returns whether the user clicked stop during the last time that the 
+   * Returns whether the user clicked stop during the last time that the
    * Plugin Hang UI was displayed, if applicable.
    *
-   * @return true if the UI was shown and the user chose to stop the 
+   * @return true if the UI was shown and the user chose to stop the
    *         plugin, otherwise false
    */
   bool
   WasLastHangStopped() const;
 
   /**
-   * @return unsigned int containing the response bits from the last 
+   * @return unsigned int containing the response bits from the last
    * time the Plugin Hang UI ran.
    */
   unsigned int
   LastUserResponse() const { return mLastUserResponse; }
 
   /**
-   * @return unsigned int containing the number of milliseconds that 
+   * @return unsigned int containing the number of milliseconds that
    * the Plugin Hang UI was displayed before the user responded.
    * Returns 0 if the Plugin Hang UI has not been shown or was cancelled.
    */
   unsigned int
   LastShowDurationMs() const;
 
   virtual void
   OnMiniShmEvent(MiniShmBase* aMiniShmObj) override;
--- a/dom/plugins/ipc/PluginInstanceChild.cpp
+++ b/dom/plugins/ipc/PluginInstanceChild.cpp
@@ -921,43 +921,43 @@ PluginInstanceChild::AnswerNPP_HandleEve
         int scaleFactor = ceil(mContentsScaleFactor);
         if (!mShColorSpace) {
             mShColorSpace = CreateSystemColorSpace();
             if (!mShColorSpace) {
                 PLUGIN_LOG_DEBUG(("Could not allocate ColorSpace."));
                 *handled = false;
                 *rtnmem = mem;
                 return IPC_OK();
-            } 
+            }
         }
         if (!mShContext) {
             void* cgContextByte = mem.get<char>();
-            mShContext = ::CGBitmapContextCreate(cgContextByte, 
+            mShContext = ::CGBitmapContextCreate(cgContextByte,
                               mWindow.width * scaleFactor,
-                              mWindow.height * scaleFactor, 8, 
-                              mWindow.width * 4 * scaleFactor, mShColorSpace, 
+                              mWindow.height * scaleFactor, 8,
+                              mWindow.width * 4 * scaleFactor, mShColorSpace,
                               kCGImageAlphaPremultipliedFirst |
                               kCGBitmapByteOrder32Host);
-    
+
             if (!mShContext) {
                 PLUGIN_LOG_DEBUG(("Could not allocate CGBitmapContext."));
                 *handled = false;
                 *rtnmem = mem;
                 return IPC_OK();
             }
         }
         CGRect clearRect = ::CGRectMake(0, 0, mWindow.width, mWindow.height);
         ::CGContextClearRect(mShContext, clearRect);
-        evcopy.data.draw.context = mShContext; 
+        evcopy.data.draw.context = mShContext;
     } else {
         PLUGIN_LOG_DEBUG(("Invalid event type for AnswerNNP_HandleEvent_Shmem."));
         *handled = false;
         *rtnmem = mem;
         return IPC_OK();
-    } 
+    }
 
     if (!mPluginIface->event) {
         *handled = false;
     } else {
         ::CGContextSaveGState(evcopy.data.draw.context);
         *handled = mPluginIface->event(&mData, reinterpret_cast<void*>(&evcopy));
         ::CGContextRestoreGState(evcopy.data.draw.context);
     }
@@ -1032,20 +1032,20 @@ PluginInstanceChild::AnswerNPP_HandleEve
     if (!mCARenderer) {
       mCARenderer = new nsCARenderer();
     }
 
     if (evcopy.type == NPCocoaEventDrawRect) {
         mCARenderer->AttachIOSurface(surf);
         if (!mCARenderer->isInit()) {
             void *caLayer = nullptr;
-            NPError result = mPluginIface->getvalue(GetNPP(), 
+            NPError result = mPluginIface->getvalue(GetNPP(),
                                      NPPVpluginCoreAnimationLayer,
                                      &caLayer);
-            
+
             if (result != NPERR_NO_ERROR || !caLayer) {
                 PLUGIN_LOG_DEBUG(("Plugin requested CoreAnimation but did not "
                                   "provide CALayer."));
                 *handled = false;
                 return IPC_FAIL_NO_REASON(this);
             }
 
             mCARenderer->SetupRenderer(caLayer, mWindow.width, mWindow.height,
@@ -1057,17 +1057,17 @@ PluginInstanceChild::AnswerNPP_HandleEve
             if (mPluginIface->setwindow)
                 (void) mPluginIface->setwindow(&mData, &mWindow);
         }
     } else {
         PLUGIN_LOG_DEBUG(("Invalid event type for "
                           "AnswerNNP_HandleEvent_IOSurface."));
         *handled = false;
         return IPC_FAIL_NO_REASON(this);
-    } 
+    }
 
     mCARenderer->Render(mWindow.width, mWindow.height,
                         mContentsScaleFactor, nullptr);
 
     return IPC_OK();
 
 }
 
@@ -1100,17 +1100,17 @@ PluginInstanceChild::RecvWindowPosChange
 mozilla::ipc::IPCResult
 PluginInstanceChild::RecvContentsScaleFactorChanged(const double& aContentsScaleFactor)
 {
 #if defined(XP_MACOSX) || defined(XP_WIN)
     mContentsScaleFactor = aContentsScaleFactor;
 #if defined(XP_MACOSX)
     if (mShContext) {
         // Release the shared context so that it is reallocated
-        // with the new size. 
+        // with the new size.
         ::CGContextRelease(mShContext);
         mShContext = nullptr;
     }
 #endif
     return IPC_OK();
 #else
     NS_RUNTIMEABORT("ContentsScaleFactorChanged is an Windows or OSX only message");
     return IPC_FAIL_NO_REASON(this);
@@ -1243,17 +1243,17 @@ PluginInstanceChild::AnswerNPP_SetWindow
     mWindow.width = aWindow.width;
     mWindow.height = aWindow.height;
     mWindow.clipRect = aWindow.clipRect;
     mWindow.type = aWindow.type;
     mContentsScaleFactor = aWindow.contentsScaleFactor;
 
     if (mShContext) {
         // Release the shared context so that it is reallocated
-        // with the new size. 
+        // with the new size.
         ::CGContextRelease(mShContext);
         mShContext = nullptr;
     }
 
     if (mPluginIface->setwindow)
         (void) mPluginIface->setwindow(&mData, &mWindow);
 
 #elif defined(ANDROID)
@@ -1421,17 +1421,17 @@ PluginInstanceChild::RegisterWindowClass
 }
 
 bool
 PluginInstanceChild::CreatePluginWindow()
 {
     // already initialized
     if (mPluginWindowHWND)
         return true;
-        
+
     if (!RegisterWindowClass())
         return false;
 
     mPluginWindowHWND =
         CreateWindowEx(WS_EX_LEFT | WS_EX_LTRREADING |
                        WS_EX_NOPARENTNOTIFY | // XXXbent Get rid of this!
                        WS_EX_RIGHTSCROLLBAR,
                        kWindowClassName, 0,
@@ -1776,17 +1776,17 @@ PluginInstanceChild::MaybePostKeyMessage
  * Flash will reset the subclass of our widget at various times.
  * (Notably when entering and exiting full screen mode.) This
  * occurs independent of the main plugin window event procedure.
  * We trap these subclass calls to prevent our subclass hook from
  * getting dropped.
  * Note, ascii versions can be nixed once flash versions < 10.1
  * are considered obsolete.
  */
- 
+
 #ifdef _WIN64
 typedef LONG_PTR
   (WINAPI *User32SetWindowLongPtrA)(HWND hWnd,
                                     int nIndex,
                                     LONG_PTR dwNewLong);
 typedef LONG_PTR
   (WINAPI *User32SetWindowLongPtrW)(HWND hWnd,
                                     int nIndex,
@@ -1848,24 +1848,24 @@ LONG WINAPI
 PluginInstanceChild::SetWindowLongAHook(HWND hWnd,
                                         int nIndex,
                                         LONG newLong)
 #endif
 {
     if (SetWindowLongHookCheck(hWnd, nIndex, newLong))
         return sUser32SetWindowLongAHookStub(hWnd, nIndex, newLong);
 
-    // Set flash's new subclass to get the result. 
+    // Set flash's new subclass to get the result.
     LONG_PTR proc = sUser32SetWindowLongAHookStub(hWnd, nIndex, newLong);
 
     // We already checked this in SetWindowLongHookCheck
     PluginInstanceChild* self = reinterpret_cast<PluginInstanceChild*>(
         GetProp(hWnd, kPluginInstanceChildProperty));
 
-    // Hook our subclass back up, just like we do on setwindow.   
+    // Hook our subclass back up, just like we do on setwindow.
     WNDPROC currentProc =
         reinterpret_cast<WNDPROC>(GetWindowLongPtr(hWnd, GWLP_WNDPROC));
     if (currentProc != PluginWindowProc) {
         self->mPluginWndProc =
             reinterpret_cast<WNDPROC>(sUser32SetWindowLongWHookStub(hWnd, nIndex,
                 reinterpret_cast<LONG_PTR>(PluginWindowProc)));
         NS_ASSERTION(self->mPluginWndProc != PluginWindowProc, "Infinite recursion coming up!");
     }
@@ -1882,24 +1882,24 @@ LONG WINAPI
 PluginInstanceChild::SetWindowLongWHook(HWND hWnd,
                                         int nIndex,
                                         LONG newLong)
 #endif
 {
     if (SetWindowLongHookCheck(hWnd, nIndex, newLong))
         return sUser32SetWindowLongWHookStub(hWnd, nIndex, newLong);
 
-    // Set flash's new subclass to get the result. 
+    // Set flash's new subclass to get the result.
     LONG_PTR proc = sUser32SetWindowLongWHookStub(hWnd, nIndex, newLong);
 
     // We already checked this in SetWindowLongHookCheck
     PluginInstanceChild* self = reinterpret_cast<PluginInstanceChild*>(
         GetProp(hWnd, kPluginInstanceChildProperty));
 
-    // Hook our subclass back up, just like we do on setwindow.   
+    // Hook our subclass back up, just like we do on setwindow.
     WNDPROC currentProc =
         reinterpret_cast<WNDPROC>(GetWindowLongPtr(hWnd, GWLP_WNDPROC));
     if (currentProc != PluginWindowProc) {
         self->mPluginWndProc =
             reinterpret_cast<WNDPROC>(sUser32SetWindowLongWHookStub(hWnd, nIndex,
                 reinterpret_cast<LONG_PTR>(PluginWindowProc)));
         NS_ASSERTION(self->mPluginWndProc != PluginWindowProc, "Infinite recursion coming up!");
     }
@@ -1947,17 +1947,17 @@ PluginInstanceChild::TrackPopupHookProc(
       return 0;
   }
 
   // Only change the parent when we know this is a context on the plugin
   // surface within the browser. Prevents resetting the parent on child ui
   // displayed by plugins that have working parent-child relationships.
   wchar_t szClass[21];
   bool haveClass = GetClassNameW(hWnd, szClass, ArrayLength(szClass));
-  if (!haveClass || 
+  if (!haveClass ||
       (wcscmp(szClass, L"MozillaWindowClass") &&
        wcscmp(szClass, L"SWFlash_Placeholder"))) {
       // Unrecognized parent
       return sUser32TrackPopupMenuStub(hMenu, uFlags, x, y, nReserved,
                                        hWnd, prcRect);
   }
 
   // Called on an unexpected event, warn.
@@ -2172,29 +2172,29 @@ int16_t
 PluginInstanceChild::WinlessHandleEvent(NPEvent& event)
 {
     if (!mPluginIface->event)
         return false;
 
     // Events that might generate nested event dispatch loops need
     // special handling during delivery.
     int16_t handled;
-    
+
     HWND focusHwnd = nullptr;
 
     // TrackPopupMenu will fail if the parent window is not associated with
     // our ui thread. So we hook TrackPopupMenu so we can hand in a surrogate
     // parent created in the child process.
     if ((GetQuirks() & QUIRK_WINLESS_TRACKPOPUP_HOOK) && // XXX turn on by default?
           (event.event == WM_RBUTTONDOWN || // flash
            event.event == WM_RBUTTONUP)) {  // silverlight
       sWinlessPopupSurrogateHWND = mWinlessPopupSurrogateHWND;
-      
+
       // A little trick scrounged from chromium's code - set the focus
-      // to our surrogate parent so keyboard nav events go to the menu. 
+      // to our surrogate parent so keyboard nav events go to the menu.
       focusHwnd = SetFocus(mWinlessPopupSurrogateHWND);
     }
 
     AutoRestore<PluginInstanceChild *> pluginInstance(sCurrentPluginInstance);
     if (event.event == WM_IME_STARTCOMPOSITION ||
         event.event == WM_IME_COMPOSITION ||
         event.event == WM_KILLFOCUS) {
       sCurrentPluginInstance = this;
@@ -2276,32 +2276,32 @@ PluginInstanceChild::WinlessHiddenFlashW
         return res;
     }
 
     return CallWindowProc(self->mWinlessThrottleOldWndProc,
                           hWnd, message, wParam, lParam);
 }
 
 // Enumerate all thread windows looking for flash's hidden message window.
-// Once we find it, sub class it so we can throttle user msgs.  
+// Once we find it, sub class it so we can throttle user msgs.
 // static
 BOOL CALLBACK
 PluginInstanceChild::EnumThreadWindowsCallback(HWND hWnd,
                                                LPARAM aParam)
 {
     PluginInstanceChild* self = reinterpret_cast<PluginInstanceChild*>(aParam);
     if (!self) {
         NS_NOTREACHED("Enum befuddled!");
         return FALSE;
     }
 
     wchar_t className[64];
     if (!GetClassNameW(hWnd, className, sizeof(className)/sizeof(char16_t)))
       return TRUE;
-    
+
     if (!wcscmp(className, L"SWFlash_PlaceholderX")) {
         WNDPROC oldWndProc =
             reinterpret_cast<WNDPROC>(GetWindowLongPtr(hWnd, GWLP_WNDPROC));
         // Only set this if we haven't already.
         if (oldWndProc != WinlessHiddenFlashWndProc) {
             if (self->mWinlessThrottleOldWndProc) {
                 NS_WARNING("mWinlessThrottleWndProc already set???");
                 return FALSE;
@@ -2336,36 +2336,36 @@ PluginInstanceChild::SetupFlashMsgThrott
     else {
         // Already setup through quirks and the subclass.
         return;
     }
 }
 
 WNDPROC
 PluginInstanceChild::FlashThrottleAsyncMsg::GetProc()
-{ 
+{
     if (mInstance) {
         return mWindowed ? mInstance->mPluginWndProc :
                            mInstance->mWinlessThrottleOldWndProc;
     }
     return nullptr;
 }
- 
+
 NS_IMETHODIMP
 PluginInstanceChild::FlashThrottleAsyncMsg::Run()
 {
     RemoveFromAsyncList();
 
     // GetProc() checks mInstance, and pulls the procedure from
     // PluginInstanceChild. We don't transport sub-class procedure
     // ptrs around in FlashThrottleAsyncMsg msgs.
     if (!GetProc())
         return NS_OK;
-  
-    // deliver the event to flash 
+
+    // deliver the event to flash
     CallWindowProc(GetProc(), GetWnd(), GetMsg(), GetWParam(), GetLParam());
     return NS_OK;
 }
 
 void
 PluginInstanceChild::FlashThrottleMessage(HWND aWnd,
                                           UINT aMsg,
                                           WPARAM aWParam,
@@ -2412,17 +2412,17 @@ mozilla::ipc::IPCResult
 PluginInstanceChild::AnswerUpdateWindow()
 {
     MOZ_LOG(GetPluginLog(), LogLevel::Debug, ("%s", FULLFUNCTION));
 
 #if defined(OS_WIN)
     if (mPluginWindowHWND) {
         RECT rect;
         if (GetUpdateRect(GetParent(mPluginWindowHWND), &rect, FALSE)) {
-            ::InvalidateRect(mPluginWindowHWND, &rect, FALSE); 
+            ::InvalidateRect(mPluginWindowHWND, &rect, FALSE);
         }
         UpdateWindow(mPluginWindowHWND);
     }
     return IPC_OK();
 #else
     NS_NOTREACHED("PluginInstanceChild::AnswerUpdateWindow not implemented!");
     return IPC_FAIL_NO_REASON(this);
 #endif
@@ -3654,18 +3654,18 @@ PluginInstanceChild::ShowPluginFrame()
         // Clear accRect here to be able to pass
         // test_invalidate_during_plugin_paint  test
         nsIntRect rect = mAccumulatedInvalidRect;
         mAccumulatedInvalidRect.SetEmpty();
 
         // Fix up old invalidations that might have been made when our
         // surface was a different size
         rect.IntersectRect(rect,
-                          nsIntRect(0, 0, 
-                          mDoubleBufferCARenderer.GetFrontSurfaceWidth(), 
+                          nsIntRect(0, 0,
+                          mDoubleBufferCARenderer.GetFrontSurfaceWidth(),
                           mDoubleBufferCARenderer.GetFrontSurfaceHeight()));
 
         if (mDrawingModel == NPDrawingModelCoreGraphics) {
             mozilla::plugins::PluginUtilsOSX::Repaint(mCGLayer, rect);
         }
 
         mDoubleBufferCARenderer.Render();
 
@@ -4106,23 +4106,23 @@ PluginInstanceChild::SwapSurfaces()
     mBackSurfaceActor = tmpactor;
 #endif
 
 #ifdef MOZ_WIDGET_COCOA
     mDoubleBufferCARenderer.SwapSurfaces();
 
     // Outdated back surface... not usable anymore due to changed plugin size.
     // Dropping obsolete surface
-    if (mDoubleBufferCARenderer.HasFrontSurface() && 
+    if (mDoubleBufferCARenderer.HasFrontSurface() &&
         mDoubleBufferCARenderer.HasBackSurface() &&
-        (mDoubleBufferCARenderer.GetFrontSurfaceWidth() != 
+        (mDoubleBufferCARenderer.GetFrontSurfaceWidth() !=
             mDoubleBufferCARenderer.GetBackSurfaceWidth() ||
-        mDoubleBufferCARenderer.GetFrontSurfaceHeight() != 
+        mDoubleBufferCARenderer.GetFrontSurfaceHeight() !=
             mDoubleBufferCARenderer.GetBackSurfaceHeight() ||
-        mDoubleBufferCARenderer.GetFrontSurfaceContentsScaleFactor() != 
+        mDoubleBufferCARenderer.GetFrontSurfaceContentsScaleFactor() !=
             mDoubleBufferCARenderer.GetBackSurfaceContentsScaleFactor())) {
 
         mDoubleBufferCARenderer.ClearFrontSurface();
     }
 #else
     if (mCurrentSurface && mBackSurface &&
         (mCurrentSurface->GetSize() != mBackSurface->GetSize() ||
          mCurrentSurface->GetContentType() != mBackSurface->GetContentType())) {
--- a/dom/plugins/ipc/PluginInstanceChild.h
+++ b/dom/plugins/ipc/PluginInstanceChild.h
@@ -332,17 +332,17 @@ private:
                                                       LPARAM lParam);
 #ifdef _WIN64
     static LONG_PTR WINAPI SetWindowLongPtrAHook(HWND hWnd,
                                                  int nIndex,
                                                  LONG_PTR newLong);
     static LONG_PTR WINAPI SetWindowLongPtrWHook(HWND hWnd,
                                                  int nIndex,
                                                  LONG_PTR newLong);
-                      
+
 #else
     static LONG WINAPI SetWindowLongAHook(HWND hWnd,
                                           int nIndex,
                                           LONG newLong);
     static LONG WINAPI SetWindowLongWHook(HWND hWnd,
                                           int nIndex,
                                           LONG newLong);
 #endif
@@ -355,17 +355,17 @@ private:
                                                  LPCANDIDATEFORM plCandidate);
     static BOOL WINAPI ImmNotifyIME(HIMC aIMC, DWORD aAction, DWORD aIndex,
                                     DWORD aValue);
 
     class FlashThrottleAsyncMsg : public ChildAsyncCall
     {
       public:
         FlashThrottleAsyncMsg();
-        FlashThrottleAsyncMsg(PluginInstanceChild* aInst, 
+        FlashThrottleAsyncMsg(PluginInstanceChild* aInst,
                               HWND aWnd, UINT aMsg,
                               WPARAM aWParam, LPARAM aLParam,
                               bool isWindowed)
           : ChildAsyncCall(aInst, nullptr, nullptr),
           mWnd(aWnd),
           mMsg(aMsg),
           mWParam(aWParam),
           mLParam(aLParam),
@@ -481,17 +481,17 @@ private:
 
     // Core Animation drawing model requires a refresh timer.
     uint32_t                      mCARefreshTimer;
 
 public:
     const NPCocoaEvent* getCurrentEvent() {
         return mCurrentEvent;
     }
-  
+
     bool CGDraw(CGContextRef ref, nsIntRect aUpdateRect);
 
 #if defined(__i386__)
     NPEventModel EventModel() { return mEventModel; }
 #endif
 
 private:
     const NPCocoaEvent   *mCurrentEvent;
@@ -587,17 +587,17 @@ private:
 
     // Back surface, just keeping reference to
     // surface which is on ParentProcess side
     RefPtr<gfxASurface> mBackSurface;
 
 #ifdef XP_MACOSX
     // Current IOSurface available for rendering
     // We can't use thebes gfxASurface like other platforms.
-    PluginUtilsOSX::nsDoubleBufferCARenderer mDoubleBufferCARenderer; 
+    PluginUtilsOSX::nsDoubleBufferCARenderer mDoubleBufferCARenderer;
 #endif
 
     // (Not to be confused with mBackSurface).  This is a recent copy
     // of the opaque pixels under our object frame, if
     // |mIsTransparent|.  We ask the plugin render directly onto a
     // copy of the background pixels if available, and fall back on
     // alpha recovery otherwise.
     RefPtr<gfxASurface> mBackground;
--- a/dom/plugins/ipc/PluginInstanceParent.h
+++ b/dom/plugins/ipc/PluginInstanceParent.h
@@ -108,17 +108,17 @@ public:
     AnswerNPN_GetValue_NPNVPluginElementNPObject(
                                        PPluginScriptableObjectParent** value,
                                        NPError* result) override;
     virtual mozilla::ipc::IPCResult
     AnswerNPN_GetValue_NPNVprivateModeBool(bool* value, NPError* result) override;
 
     virtual mozilla::ipc::IPCResult
     AnswerNPN_GetValue_DrawingModelSupport(const NPNVariable& model, bool* value) override;
-  
+
     virtual mozilla::ipc::IPCResult
     AnswerNPN_GetValue_NPNVdocumentOrigin(nsCString* value, NPError* result) override;
 
     virtual mozilla::ipc::IPCResult
     AnswerNPN_GetValue_SupportsAsyncBitmapSurface(bool* value) override;
 
     virtual mozilla::ipc::IPCResult
     AnswerNPN_GetValue_SupportsAsyncDXGISurface(bool* value) override;
@@ -408,17 +408,17 @@ private:
     // if needed, also the child popup surrogate HWND for windowless plugins.
     HWND               mChildPluginHWND;
     HWND               mChildPluginsParentHWND;
     WNDPROC            mPluginWndProc;
     bool               mNestedEventState;
 #endif // defined(XP_WIN)
 #if defined(MOZ_WIDGET_COCOA)
 private:
-    Shmem                  mShSurface; 
+    Shmem                  mShSurface;
     uint16_t               mShWidth;
     uint16_t               mShHeight;
     CGColorSpaceRef        mShColorSpace;
     RefPtr<MacIOSurface> mIOSurface;
     RefPtr<MacIOSurface> mFrontIOSurface;
 #endif // definied(MOZ_WIDGET_COCOA)
 
     // ObjectFrame layer wrapper
--- a/dom/plugins/ipc/PluginMessageUtils.h
+++ b/dom/plugins/ipc/PluginMessageUtils.h
@@ -72,17 +72,17 @@ extern mozilla::LogModule* GetPluginLog(
 
 /**
  * This is NPByteRange without the linked list.
  */
 struct IPCByteRange
 {
   int32_t offset;
   uint32_t length;
-};  
+};
 
 typedef nsTArray<IPCByteRange> IPCByteRanges;
 
 typedef nsCString Buffer;
 
 struct NPRemoteWindow
 {
   NPRemoteWindow();
@@ -202,19 +202,19 @@ NPPVariableToString(NPPVariable aVar)
         VARSTR(NPPVjavascriptPushCallerBool);
 
         VARSTR(NPPVpluginKeepLibraryInMemory);
         VARSTR(NPPVpluginNeedsXEmbed);
 
         VARSTR(NPPVpluginScriptableNPObject);
 
         VARSTR(NPPVformValue);
-  
+
         VARSTR(NPPVpluginUrlRequestsDisplayedBool);
-  
+
         VARSTR(NPPVpluginWantsAllNetworkStreams);
 
 #ifdef XP_MACOSX
         VARSTR(NPPVpluginDrawingModel);
         VARSTR(NPPVpluginEventModel);
 #endif
 
 #ifdef XP_WIN
@@ -708,17 +708,17 @@ struct ParamTraits<NPNURLVariable>
         intval == NPNURLVProxy) {
       *aResult = paramType(intval);
       return true;
     }
     return false;
   }
 };
 
-  
+
 template<>
 struct ParamTraits<NPCoordinateSpace>
 {
   typedef NPCoordinateSpace paramType;
 
   static void Write(Message* aMsg, const paramType& aParam)
   {
     WriteParam(aMsg, int32_t(aParam));
@@ -900,17 +900,17 @@ struct ParamTraits<mozilla::plugins::Get
 #endif  // XP_WIN
 
 } /* namespace IPC */
 
 
 // Serializing NPEvents is completely platform-specific and can be rather
 // intricate depending on the platform.  So for readability we split it
 // into separate files and have the only macro crud live here.
-// 
+//
 // NB: these guards are based on those where struct NPEvent is defined
 // in npapi.h.  They should be kept in sync.
 #if defined(XP_MACOSX)
 #  include "mozilla/plugins/NPEventOSX.h"
 #elif defined(XP_WIN)
 #  include "mozilla/plugins/NPEventWindows.h"
 #elif defined(ANDROID)
 #  include "mozilla/plugins/NPEventAndroid.h"
--- a/dom/plugins/ipc/PluginModuleChild.cpp
+++ b/dom/plugins/ipc/PluginModuleChild.cpp
@@ -951,17 +951,17 @@ static uint32_t
 
 static void
 _unscheduletimer(NPP instance, uint32_t timerID);
 
 static NPError
 _popupcontextmenu(NPP instance, NPMenu* menu);
 
 static NPBool
-_convertpoint(NPP instance, 
+_convertpoint(NPP instance,
               double sourceX, double sourceY, NPCoordinateSpace sourceSpace,
               double *destX, double *destY, NPCoordinateSpace destSpace);
 
 static void
 _urlredirectresponse(NPP instance, void* notifyData, NPBool allow);
 
 static NPError
 _initasyncsurface(NPP instance, NPSize *size,
@@ -1702,17 +1702,17 @@ static void ProcessBrowserEvents(void* p
 
 NPError
 _popupcontextmenu(NPP instance, NPMenu* menu)
 {
     PLUGIN_LOG_DEBUG_FUNCTION;
     AssertPluginThread();
 
 #ifdef MOZ_WIDGET_COCOA
-    double pluginX, pluginY; 
+    double pluginX, pluginY;
     double screenX, screenY;
 
     const NPCocoaEvent* currentEvent = InstCast(instance)->getCurrentEvent();
     if (!currentEvent) {
         return NPERR_GENERIC_ERROR;
     }
 
     // Ensure that the events has an x/y value.
@@ -1726,18 +1726,18 @@ NPError
     }
 
     pluginX = currentEvent->data.mouse.pluginX;
     pluginY = currentEvent->data.mouse.pluginY;
 
     if ((pluginX < 0.0) || (pluginY < 0.0))
         return NPERR_GENERIC_ERROR;
 
-    NPBool success = _convertpoint(instance, 
-                                  pluginX,  pluginY, NPCoordinateSpacePlugin, 
+    NPBool success = _convertpoint(instance,
+                                  pluginX,  pluginY, NPCoordinateSpacePlugin,
                                  &screenX, &screenY, NPCoordinateSpaceScreen);
 
     if (success) {
         return mozilla::plugins::PluginUtilsOSX::ShowCocoaContextMenu(menu,
                                     screenX, screenY,
                                     InstCast(instance)->Manager(),
                                     ProcessBrowserEvents);
     } else {
@@ -1747,17 +1747,17 @@ NPError
 
 #else
     NS_WARNING("Not supported on this platform!");
     return NPERR_GENERIC_ERROR;
 #endif
 }
 
 NPBool
-_convertpoint(NPP instance, 
+_convertpoint(NPP instance,
               double sourceX, double sourceY, NPCoordinateSpace sourceSpace,
               double *destX, double *destY, NPCoordinateSpace destSpace)
 {
     PLUGIN_LOG_DEBUG_FUNCTION;
     if (!IsPluginThread()) {
         NS_WARNING("Not running on the plugin's main thread!");
         return false;
     }
@@ -2678,17 +2678,17 @@ PluginModuleChild::RecvProcessNativeEven
         "PluginModuleChild::RecvProcessNativeEventsInInterruptCall not implemented!");
     return IPC_FAIL_NO_REASON(this);
 #endif
 }
 
 #ifdef MOZ_WIDGET_COCOA
 void
 PluginModuleChild::ProcessNativeEvents() {
-    CallProcessSomeEvents();    
+    CallProcessSomeEvents();
 }
 #endif
 
 NPError
 PluginModuleChild::PluginRequiresAudioDeviceChanges(
                           PluginInstanceChild* aInstance,
                           NPBool aShouldRegister)
 {
--- a/dom/plugins/ipc/PluginModuleChild.h
+++ b/dom/plugins/ipc/PluginModuleChild.h
@@ -178,17 +178,17 @@ public:
                                                      NPIdentifier* aIdentifiers);
     static NPIdentifier NPN_GetIntIdentifier(int32_t aIntId);
     static bool NPN_IdentifierIsString(NPIdentifier aIdentifier);
     static NPUTF8* NPN_UTF8FromIdentifier(NPIdentifier aIdentifier);
     static int32_t NPN_IntFromIdentifier(NPIdentifier aIdentifier);
 
 #ifdef MOZ_WIDGET_COCOA
     void ProcessNativeEvents();
-    
+
     void PluginShowWindow(uint32_t window_id, bool modal, CGRect r) {
         SendPluginShowWindow(window_id, modal, r.origin.x, r.origin.y, r.size.width, r.size.height);
     }
 
     void PluginHideWindow(uint32_t window_id) {
         SendPluginHideWindow(window_id);
     }
 
--- a/dom/plugins/ipc/PluginModuleParent.cpp
+++ b/dom/plugins/ipc/PluginModuleParent.cpp
@@ -806,63 +806,63 @@ PluginModuleChromeParent::CleanupFromTim
     if (!OkToCleanup()) {
         // there's still plugin code on the C++ stack, try again
         MessageLoop::current()->PostDelayedTask(
             mChromeTaskFactory.NewRunnableMethod(
                 &PluginModuleChromeParent::CleanupFromTimeout, aFromHangUI), 10);
         return;
     }
 
-    /* If the plugin container was terminated by the Plugin Hang UI, 
-       then either the I/O thread detects a channel error, or the 
+    /* If the plugin container was terminated by the Plugin Hang UI,
+       then either the I/O thread detects a channel error, or the
        main thread must set the error (whomever gets there first).
-       OTOH, if we terminate and return false from 
-       ShouldContinueFromReplyTimeout, then the channel state has 
-       already been set to ChannelTimeout and we should call the 
+       OTOH, if we terminate and return false from
+       ShouldContinueFromReplyTimeout, then the channel state has
+       already been set to ChannelTimeout and we should call the
        regular Close function. */
     if (aFromHangUI) {
         GetIPCChannel()->CloseWithError();
     } else {
         Close();
     }
 }
 
 #ifdef XP_WIN
 namespace {
 
 uint64_t
-FileTimeToUTC(const FILETIME& ftime) 
+FileTimeToUTC(const FILETIME& ftime)
 {
   ULARGE_INTEGER li;
   li.LowPart = ftime.dwLowDateTime;
   li.HighPart = ftime.dwHighDateTime;
   return li.QuadPart;
 }
 
 struct CpuUsageSamples
 {
   uint64_t sampleTimes[2];
   uint64_t cpuTimes[2];
 };
 
-bool 
+bool
 GetProcessCpuUsage(const InfallibleTArray<base::ProcessHandle>& processHandles, InfallibleTArray<float>& cpuUsage)
 {
   InfallibleTArray<CpuUsageSamples> samples(processHandles.Length());
   FILETIME creationTime, exitTime, kernelTime, userTime, currentTime;
   BOOL res;
 
   for (uint32_t i = 0; i < processHandles.Length(); ++i) {
     ::GetSystemTimeAsFileTime(&currentTime);
     res = ::GetProcessTimes(processHandles[i], &creationTime, &exitTime, &kernelTime, &userTime);
     if (!res) {
       NS_WARNING("failed to get process times");
       return false;
     }
-  
+
     CpuUsageSamples s;
     s.sampleTimes[0] = FileTimeToUTC(currentTime);
     s.cpuTimes[0]    = FileTimeToUTC(kernelTime) + FileTimeToUTC(userTime);
     samples.AppendElement(s);
   }
 
   // we already hung for a while, a little bit longer won't matter
   ::Sleep(50);
@@ -873,17 +873,17 @@ GetProcessCpuUsage(const InfallibleTArra
     ::GetSystemTimeAsFileTime(&currentTime);
     res = ::GetProcessTimes(processHandles[i], &creationTime, &exitTime, &kernelTime, &userTime);
     if (!res) {
       NS_WARNING("failed to get process times");
       return false;
     }
 
     samples[i].sampleTimes[1] = FileTimeToUTC(currentTime);
-    samples[i].cpuTimes[1]    = FileTimeToUTC(kernelTime) + FileTimeToUTC(userTime);    
+    samples[i].cpuTimes[1]    = FileTimeToUTC(kernelTime) + FileTimeToUTC(userTime);
 
     const uint64_t deltaSampleTime = samples[i].sampleTimes[1] - samples[i].sampleTimes[0];
     const uint64_t deltaCpuTime    = samples[i].cpuTimes[1]    - samples[i].cpuTimes[0];
     const float usage = 100.f * (float(deltaCpuTime) / deltaSampleTime) / numberOfProcessors;
     cpuUsage.AppendElement(usage);
   }
 
   return true;
@@ -1038,17 +1038,17 @@ PluginModuleChromeParent::ShouldContinue
             mTaskFactory.NewRunnableMethod(
                 &PluginModuleChromeParent::NotifyFlashHang));
     }
 
 #ifdef XP_WIN
     if (LaunchHangUI()) {
         return true;
     }
-    // If LaunchHangUI returned false then we should proceed with the 
+    // If LaunchHangUI returned false then we should proceed with the
     // original plugin hang behaviour and kill the plugin container.
     FinishHangUI();
 #endif // XP_WIN
 
     // Terminate the child process synchronously because this function can be
     // called in sync IPC.
     TerminateChildProcess(MessageLoop::current(),
                           mozilla::ipc::kInvalidProcessId,
@@ -1405,35 +1405,35 @@ PluginModuleParent::InitQuirksModes(cons
 #ifdef XP_WIN
 void
 PluginModuleChromeParent::EvaluateHangUIState(const bool aReset)
 {
     int32_t minDispSecs = Preferences::GetInt(kHangUIMinDisplayPref, 10);
     int32_t autoStopSecs = Preferences::GetInt(kChildTimeoutPref, 0);
     int32_t timeoutSecs = 0;
     if (autoStopSecs > 0 && autoStopSecs < minDispSecs) {
-        /* If we're going to automatically terminate the plugin within a 
-           time frame shorter than minDispSecs, there's no point in 
+        /* If we're going to automatically terminate the plugin within a
+           time frame shorter than minDispSecs, there's no point in
            showing the hang UI; it would just flash briefly on the screen. */
         mHangUIEnabled = false;
     } else {
         timeoutSecs = Preferences::GetInt(kHangUITimeoutPref, 0);
         mHangUIEnabled = timeoutSecs > 0;
     }
     if (mHangUIEnabled) {
         if (aReset) {
             mIsTimerReset = true;
             SetChildTimeout(timeoutSecs);
             return;
         } else if (mIsTimerReset) {
-            /* The Hang UI is being shown, so now we're setting the 
-               timeout to kChildTimeoutPref while we wait for a user 
-               response. ShouldContinueFromReplyTimeout will fire 
-               after (reply timeout / 2) seconds, which is not what 
-               we want. Doubling the timeout value here so that we get 
+            /* The Hang UI is being shown, so now we're setting the
+               timeout to kChildTimeoutPref while we wait for a user
+               response. ShouldContinueFromReplyTimeout will fire
+               after (reply timeout / 2) seconds, which is not what
+               we want. Doubling the timeout value here so that we get
                the right result. */
             autoStopSecs *= 2;
         }
     }
     mIsTimerReset = false;
     SetChildTimeout(autoStopSecs);
 }
 
@@ -1454,25 +1454,25 @@ PluginModuleChromeParent::LaunchHangUI()
             if (!wasLastHangStopped) {
                 mHangAnnotationFlags |= kHangUIContinued;
             }
             return !wasLastHangStopped;
         }
         delete mHangUIParent;
         mHangUIParent = nullptr;
     }
-    mHangUIParent = new PluginHangUIParent(this, 
+    mHangUIParent = new PluginHangUIParent(this,
             Preferences::GetInt(kHangUITimeoutPref, 0),
             Preferences::GetInt(kChildTimeoutPref, 0));
     bool retval = mHangUIParent->Init(NS_ConvertUTF8toUTF16(mPluginName));
     if (retval) {
         mHangAnnotationFlags |= kHangUIShown;
-        /* Once the UI is shown we switch the timeout over to use 
-           kChildTimeoutPref, allowing us to terminate a hung plugin 
-           after kChildTimeoutPref seconds if the user doesn't respond to 
+        /* Once the UI is shown we switch the timeout over to use
+           kChildTimeoutPref, allowing us to terminate a hung plugin
+           after kChildTimeoutPref seconds if the user doesn't respond to
            the hang UI. */
         EvaluateHangUIState(false);
     }
     return retval;
 }
 
 void
 PluginModuleChromeParent::FinishHangUI()
@@ -1483,17 +1483,17 @@ PluginModuleChromeParent::FinishHangUI()
         if (needsCancel) {
             mHangUIParent->Cancel();
         }
         /* If we cancelled the UI or if the user issued a response,
            we need to reset the child process timeout. */
         if (needsCancel ||
             (!mIsTimerReset && mHangUIParent->WasShown())) {
             /* We changed the timeout to kChildTimeoutPref when the plugin hang
-               UI was displayed. Now that we're finishing the UI, we need to 
+               UI was displayed. Now that we're finishing the UI, we need to
                switch it back to kHangUITimeoutPref. */
             EvaluateHangUIState(true);
         }
     }
 }
 
 void
 PluginModuleChromeParent::OnHangUIContinue()
--- a/dom/plugins/ipc/PluginModuleParent.h
+++ b/dom/plugins/ipc/PluginModuleParent.h
@@ -209,17 +209,17 @@ protected:
 
     void SetPluginFuncs(NPPluginFuncs* aFuncs);
 
     nsresult NPP_NewInternal(NPMIMEType pluginType, NPP instance,
                              InfallibleTArray<nsCString>& names,
                              InfallibleTArray<nsCString>& values,
                              NPSavedData* saved, NPError* error);
 
-    // NPP-like API that Gecko calls are trampolined into.  These 
+    // NPP-like API that Gecko calls are trampolined into.  These
     // messages then get forwarded along to the plugin instance,
     // and then eventually the child process.
 
     static NPError NPP_Destroy(NPP instance, NPSavedData** save);
 
     static NPError NPP_SetWindow(NPP instance, NPWindow* window);
     static NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
                                  NPBool seekable, uint16_t* stype);
--- a/dom/plugins/ipc/PluginScriptableObjectUtils.h
+++ b/dom/plugins/ipc/PluginScriptableObjectUtils.h
@@ -178,34 +178,34 @@ class ProtectedVariantArray
 public:
   ProtectedVariantArray(const NPVariant* aArgs,
                         uint32_t aCount,
                         PluginInstanceParent* aInstance)
     : mUsingShadowArray(false)
   {
     for (uint32_t index = 0; index < aCount; index++) {
       Variant* remoteVariant = mArray.AppendElement();
-      if (!(remoteVariant && 
+      if (!(remoteVariant &&
             ConvertToRemoteVariant(aArgs[index], *remoteVariant, aInstance,
                                    true))) {
         mOk = false;
         return;
       }
     }
     mOk = true;
   }
 
   ProtectedVariantArray(const NPVariant* aArgs,
                         uint32_t aCount,
                         PluginInstanceChild* aInstance)
     : mUsingShadowArray(false)
   {
     for (uint32_t index = 0; index < aCount; index++) {
       Variant* remoteVariant = mArray.AppendElement();
-      if (!(remoteVariant && 
+      if (!(remoteVariant &&
             ConvertToRemoteVariant(aArgs[index], *remoteVariant, aInstance,
                                    true))) {
         mOk = false;
         return;
       }
     }
     mOk = true;
   }
--- a/dom/plugins/ipc/PluginStreamChild.cpp
+++ b/dom/plugins/ipc/PluginStreamChild.cpp
@@ -31,17 +31,17 @@ PluginStreamChild::NPN_Write(int32_t len
 {
   AssertPluginThread();
 
   int32_t written = 0;
   CallNPN_Write(nsCString(static_cast<char*>(buffer), length),
                 &written);
   if (written < 0)
     PPluginStreamChild::Call__delete__(this, NPERR_GENERIC_ERROR, true);
-  // careful after here! |this| just got deleted 
+  // careful after here! |this| just got deleted
 
   return written;
 }
 
 void
 PluginStreamChild::NPP_DestroyStream(NPError reason)
 {
   AssertPluginThread();
--- a/dom/plugins/ipc/hangui/MiniShmBase.h
+++ b/dom/plugins/ipc/hangui/MiniShmBase.h
@@ -83,45 +83,45 @@ private:
 
 class MiniShmBase;
 
 class MiniShmObserver
 {
 public:
   /**
    * This function is called whenever there is a new shared memory request.
-   * @param aMiniShmObj MiniShmBase object that may be used to read and 
+   * @param aMiniShmObj MiniShmBase object that may be used to read and
    *                    write from shared memory.
    */
   virtual void OnMiniShmEvent(MiniShmBase *aMiniShmObj) = 0;
   /**
    * This function is called once when a MiniShmParent and a MiniShmChild
    * object have successfully negotiated a connection.
    *
-   * @param aMiniShmObj MiniShmBase object that may be used to read and 
+   * @param aMiniShmObj MiniShmBase object that may be used to read and
    *                    write from shared memory.
    */
   virtual void OnMiniShmConnect(MiniShmBase *aMiniShmObj) { }
 };
 
 /**
- * Base class for MiniShm connections. This class defines the common 
+ * Base class for MiniShm connections. This class defines the common
  * interfaces and code between parent and child.
  */
 class MiniShmBase
 {
 public:
   /**
    * Obtains a writable pointer into shared memory of type T.
-   * typename T must be plain-old-data and contain an unsigned integral 
-   * member T::identifier that uniquely identifies T with respect to 
+   * typename T must be plain-old-data and contain an unsigned integral
+   * member T::identifier that uniquely identifies T with respect to
    * other types used by the protocol being implemented.
    *
    * @param aPtr Pointer to receive the shared memory address.
-   *             This value is set if and only if the function 
+   *             This value is set if and only if the function
    *             succeeded.
    * @return NS_OK if and only if aPtr was successfully obtained.
    *         NS_ERROR_ILLEGAL_VALUE if type T is not valid for MiniShm.
    *         NS_ERROR_NOT_INITIALIZED if there is no valid MiniShm connection.
    *         NS_ERROR_NOT_AVAILABLE if the memory is not safe to write.
    */
   template<typename T> nsresult
   GetWritePtr(T*& aPtr)
@@ -139,22 +139,22 @@ public:
     mWriteHeader->mId = T::identifier;
     mWriteHeader->mPayloadLen = sizeof(T);
     aPtr = reinterpret_cast<T*>(mWriteHeader + 1);
     return NS_OK;
   }
 
   /**
    * Obtains a readable pointer into shared memory of type T.
-   * typename T must be plain-old-data and contain an unsigned integral 
-   * member T::identifier that uniquely identifies T with respect to 
+   * typename T must be plain-old-data and contain an unsigned integral
+   * member T::identifier that uniquely identifies T with respect to
    * other types used by the protocol being implemented.
    *
    * @param aPtr Pointer to receive the shared memory address.
-   *             This value is set if and only if the function 
+   *             This value is set if and only if the function
    *             succeeded.
    * @return NS_OK if and only if aPtr was successfully obtained.
    *         NS_ERROR_ILLEGAL_VALUE if type T is not valid for MiniShm or if
    *                                type T does not match the type of the data
    *                                stored in shared memory.
    *         NS_ERROR_NOT_INITIALIZED if there is no valid MiniShm connection.
    */
   template<typename T> nsresult
@@ -176,18 +176,18 @@ public:
    *
    * @return Should return NS_OK if the send was successful.
    */
   virtual nsresult
   Send() = 0;
 
 protected:
   /**
-   * MiniShm reserves some identifier codes for its own use. Any 
-   * identifiers used by MiniShm protocol implementations must be 
+   * MiniShm reserves some identifier codes for its own use. Any
+   * identifiers used by MiniShm protocol implementations must be
    * greater than RESERVED_CODE_LAST.
    */
   enum ReservedCodes
   {
     RESERVED_CODE_INIT = 0,
     RESERVED_CODE_INIT_COMPLETE = 1,
     RESERVED_CODE_LAST = RESERVED_CODE_INIT_COMPLETE
   };
@@ -277,22 +277,22 @@ protected:
     mTimeout = aTimeout;
     return NS_OK;
   }
 
   inline void
   SetObserver(MiniShmObserver *aObserver) { mObserver = aObserver; }
 
   /**
-   * Obtains a writable pointer into shared memory of type T. This version 
-   * differs from GetWritePtr in that it allows typename T to be one of 
+   * Obtains a writable pointer into shared memory of type T. This version
+   * differs from GetWritePtr in that it allows typename T to be one of
    * the private data structures declared in MiniShmBase.
    *
    * @param aPtr Pointer to receive the shared memory address.
-   *             This value is set if and only if the function 
+   *             This value is set if and only if the function
    *             succeeded.
    * @return NS_OK if and only if aPtr was successfully obtained.
    *         NS_ERROR_ILLEGAL_VALUE if type T not an internal MiniShm struct.
    *         NS_ERROR_NOT_INITIALIZED if there is no valid MiniShm connection.
    */
   template<typename T> nsresult
   GetWritePtrInternal(T*& aPtr)
   {
--- a/dom/plugins/ipc/hangui/MiniShmChild.h
+++ b/dom/plugins/ipc/hangui/MiniShmChild.h
@@ -10,19 +10,19 @@
 #include "MiniShmBase.h"
 
 #include <string>
 
 namespace mozilla {
 namespace plugins {
 
 /**
- * This class provides a lightweight shared memory interface for a child 
+ * This class provides a lightweight shared memory interface for a child
  * process in Win32.
- * This code assumes that there is a parent-child relationship between 
+ * This code assumes that there is a parent-child relationship between
  * processes, as it inherits handles from the parent process.
  * Note that this class is *not* an IPDL actor.
  *
  * @see MiniShmParent
  */
 class MiniShmChild : public MiniShmBase
 {
 public:
--- a/dom/plugins/ipc/hangui/PluginHangUIChild.cpp
+++ b/dom/plugins/ipc/hangui/PluginHangUIChild.cpp
@@ -200,34 +200,34 @@ PluginHangUIChild::ResizeButtons()
     idealSize.cx = std::max(idealSize.cx, size.cx);
     idealSize.cy = std::max(idealSize.cy, size.cy);
 
     // We won't bother resizing unless we need extra space
     if (idealSize.cx > curSize.cx) {
       needResizing = true;
     }
 
-    // Save the relevant info for the resize, if any. We do this even if 
+    // Save the relevant info for the resize, if any. We do this even if
     // needResizing is false because another button may trigger a resize later.
     winInfo.push_back(WinInfo(wnd, pt, curSize));
   }
 
   if (!needResizing) {
     return;
   }
 
   // Pass 2: Resize the windows
   int deltaX = 0;
   HDWP hwp = BeginDeferWindowPos((int) winInfo.size());
   if (!hwp) {
     return;
   }
   for (WinInfoVec::const_iterator itr = winInfo.begin();
        itr != winInfo.end(); ++itr) {
-    // deltaX accumulates the size changes so that each button's x coordinate 
+    // deltaX accumulates the size changes so that each button's x coordinate
     // can compensate for the width increases
     deltaX += idealSize.cx - itr->size.cx;
     hwp = DeferWindowPos(hwp, itr->hwnd, nullptr,
                          itr->pos.x - deltaX, itr->pos.y,
                          idealSize.cx, itr->size.cy,
                          SWP_NOZORDER | SWP_NOACTIVATE);
     if (!hwp) {
       return;
--- a/dom/plugins/ipc/hangui/PluginHangUIChild.h
+++ b/dom/plugins/ipc/hangui/PluginHangUIChild.h
@@ -14,44 +14,44 @@
 #include <windows.h>
 
 namespace mozilla {
 namespace plugins {
 
 /**
  * This class implements the plugin-hang-ui.
  *
- * NOTE: PluginHangUIChild is *not* an IPDL actor! In this case, "Child" 
- *       is describing the fact that plugin-hang-ui is a child process to the 
+ * NOTE: PluginHangUIChild is *not* an IPDL actor! In this case, "Child"
+ *       is describing the fact that plugin-hang-ui is a child process to the
  *       firefox process, which is the PluginHangUIParent.
  *       PluginHangUIParent and PluginHangUIChild are a matched pair.
  * @see PluginHangUIParent
  */
 class PluginHangUIChild : public MiniShmObserver
 {
 public:
   PluginHangUIChild();
   virtual ~PluginHangUIChild();
 
   bool
   Init(int aArgc, wchar_t* aArgv[]);
 
   /**
-   * Displays the Plugin Hang UI and does not return until the UI has 
+   * Displays the Plugin Hang UI and does not return until the UI has
    * been dismissed.
    *
-   * @return true if the UI was displayed and the user response was 
+   * @return true if the UI was displayed and the user response was
    *         successfully sent back to the parent. Otherwise false.
    */
   bool
   Show();
 
   /**
-   * Causes the calling thread to wait either for the Hang UI to be 
-   * dismissed or for the parent process to terminate. This should 
+   * Causes the calling thread to wait either for the Hang UI to be
+   * dismissed or for the parent process to terminate. This should
    * be called by the main thread.
    *
    * @return true unless there was an error initiating the wait
    */
   bool
   WaitForDismissal();
 
   virtual void
--- a/dom/plugins/test/testplugin/nptest.h
+++ b/dom/plugins/test/testplugin/nptest.h
@@ -1,39 +1,39 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (c) 2008, Mozilla Corporation
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * * Redistributions of source code must retain the above copyright notice, this
  *   list of conditions and the following disclaimer.
  * * Redistributions in binary form must reproduce the above copyright notice,
  *   this list of conditions and the following disclaimer in the documentation
  *   and/or other materials provided with the distribution.
  * * Neither the name of the Mozilla Corporation nor the names of its
  *   contributors may be used to endorse or promote products derived from this
  *   software without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef nptest_h_
 #define nptest_h_
 
 #include "mozilla-config.h"
 
 #include "npapi.h"
--- a/dom/plugins/test/testplugin/nptest_droid.cpp
+++ b/dom/plugins/test/testplugin/nptest_droid.cpp
@@ -1,39 +1,39 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (c) 2010, Mozilla Corporation
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * * Redistributions of source code must retain the above copyright notice, this
  *   list of conditions and the following disclaimer.
  * * Redistributions in binary form must reproduce the above copyright notice,
  *   this list of conditions and the following disclaimer in the documentation
  *   and/or other materials provided with the distribution.
  * * Neither the name of the Mozilla Corporation nor the names of its
  *   contributors may be used to endorse or promote products derived from this
  *   software without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Brad Lassey <blassey@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 #include "nptest_platform.h"
 #include "npapi.h"
 
 struct _PlatformData {
 };
  using namespace std;
 
@@ -88,17 +88,17 @@ int32_t pluginGetEdge(InstanceData* inst
 }
 
 int32_t pluginGetClipRegionRectCount(InstanceData* instanceData)
 {
   // XXX nothing here yet since we don't support windowed plugins
   return NPTEST_INT32_ERROR;
 }
 
-int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData, 
+int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData,
     int32_t rectIndex, RectEdge edge)
 {
   // XXX nothing here yet since we don't support windowed plugins
   return NPTEST_INT32_ERROR;
 }
 
 void pluginDoInternalConsistencyCheck(InstanceData* instanceData, string& error)
 {
--- a/dom/plugins/test/testplugin/nptest_gtk2.cpp
+++ b/dom/plugins/test/testplugin/nptest_gtk2.cpp
@@ -1,41 +1,41 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (c) 2008, Mozilla Corporation
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * * Redistributions of source code must retain the above copyright notice, this
  *   list of conditions and the following disclaimer.
  * * Redistributions in binary form must reproduce the above copyright notice,
  *   this list of conditions and the following disclaimer in the documentation
  *   and/or other materials provided with the distribution.
  * * Neither the name of the Mozilla Corporation nor the names of its
  *   contributors may be used to endorse or promote products derived from this
  *   software without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
  *   Michael Ventnor <mventnor@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nptest_platform.h"
 #include "npapi.h"
 #include <pthread.h>
 #include <gdk/gdk.h>
 #ifdef MOZ_X11
 #include <gdk/gdkx.h>
@@ -119,17 +119,17 @@ pluginInstanceShutdown(InstanceData* ins
                                            nullptr, nullptr, instanceData);
     }
   }
 
   NPN_MemFree(instanceData->platformData);
   instanceData->platformData = 0;
 }
 
-static void 
+static void
 SetCairoRGBA(cairo_t* cairoWindow, uint32_t rgba)
 {
   float b = (rgba & 0xFF) / 255.0;
   float g = ((rgba & 0xFF00) >> 8) / 255.0;
   float r = ((rgba & 0xFF0000) >> 16) / 255.0;
   float a = ((rgba & 0xFF000000) >> 24) / 255.0;
 
   cairo_set_source_rgba(cairoWindow, r, g, b, a);
@@ -389,17 +389,17 @@ pluginHandleEvent(InstanceData* instance
     }
     if (expose.x < window.x || expose.y < window.y ||
         expose.x + expose.width > window.x + int32_t(window.width) ||
         expose.y + expose.height > window.y + int32_t(window.height)) {
       g_warning("expose rectangle (x=%d,y=%d,w=%d,h=%d) not in plugin rectangle (x=%d,y=%d,w=%d,h=%d)",
                 expose.x, expose.y, expose.width, expose.height,
                 window.x, window.y, window.width, window.height);
       return 0;
-    }      
+    }
 
     GdkRectangle invalidRect =
       { expose.x, expose.y, expose.width, expose.height };
     pluginDrawWindow(instanceData, gdkDrawable, invalidRect);
     g_object_unref(gdkDrawable);
     break;
   }
   case MotionNotify: {
@@ -607,17 +607,17 @@ int32_t pluginGetClipRegionRectCount(Ins
   GdkRectangle* rects;
   gint nrects;
   gdk_region_get_rectangles(region, &rects, &nrects);
   gdk_region_destroy(region);
   g_free(rects);
   return nrects;
 }
 
-int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData, 
+int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData,
     int32_t rectIndex, RectEdge edge)
 {
   GdkRegion* region = computeClipRegion(instanceData);
   if (!region)
     return NPTEST_INT32_ERROR;
 
   GdkRectangle* rects;
   gint nrects;
--- a/dom/plugins/test/testplugin/nptest_platform.h
+++ b/dom/plugins/test/testplugin/nptest_platform.h
@@ -1,39 +1,39 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (c) 2008, Mozilla Corporation
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * * Redistributions of source code must retain the above copyright notice, this
  *   list of conditions and the following disclaimer.
  * * Redistributions in binary form must reproduce the above copyright notice,
  *   this list of conditions and the following disclaimer in the documentation
  *   and/or other materials provided with the distribution.
  * * Neither the name of the Mozilla Corporation nor the names of its
  *   contributors may be used to endorse or promote products derived from this
  *   software without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef nptest_platform_h_
 #define nptest_platform_h_
 
 #include "nptest.h"
 
 /**
@@ -105,17 +105,17 @@ int32_t pluginGetClipRegionRectCount(Ins
 
 /**
  * Return the coordinate of the given edge of a rectangle in the plugin's
  * clip region, relative to the top-left corner of the toplevel window
  * containing the plugin, including window decorations. Only works for
  * window-mode plugins and Mac plugins.
  * Returns NPTEST_ERROR on error.
  */
-int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData, 
+int32_t pluginGetClipRegionRectEdge(InstanceData* instanceData,
     int32_t rectIndex, RectEdge edge);
 
 /**
  * Check that the platform-specific plugin state is internally consistent.
  * Just return if everything is OK, otherwise append error messages
  * to 'error' separated by \n.
  */
 void pluginDoInternalConsistencyCheck(InstanceData* instanceData, std::string& error);
@@ -124,17 +124,17 @@ void pluginDoInternalConsistencyCheck(In
  * Get the current clipboard item as text.  If the clipboard item
  * isn't text, the returned value is undefined.
  */
 std::string pluginGetClipboardText(InstanceData* instanceData);
 
 /**
  * Crash while in a nested event loop.  The goal is to catch the
  * browser processing the XPCOM event generated from the plugin's
- * crash while other plugin code is still on the stack. 
+ * crash while other plugin code is still on the stack.
  * See https://bugzilla.mozilla.org/show_bug.cgi?id=550026.
  */
 bool pluginCrashInNestedLoop(InstanceData* instanceData);
 
 /**
  * Generate an X11 protocol error to terminate the plugin process.
  */
 bool pluginTriggerXError(InstanceData* instanceData);
--- a/dom/plugins/test/testplugin/nptest_utils.cpp
+++ b/dom/plugins/test/testplugin/nptest_utils.cpp
@@ -1,10 +1,10 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
@@ -17,20 +17,20 @@
  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nptest_utils.h"
 
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
 
--- a/dom/plugins/test/testplugin/nptest_utils.h
+++ b/dom/plugins/test/testplugin/nptest_utils.h
@@ -1,10 +1,10 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
@@ -17,20 +17,20 @@
  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef nptest_utils_h_
 #define nptest_utils_h_
 
 #include "nptest.h"
 
 NPUTF8* createCStringFromNPVariant(const NPVariant* variant);
--- a/dom/plugins/test/testplugin/nptest_windows.cpp
+++ b/dom/plugins/test/testplugin/nptest_windows.cpp
@@ -1,40 +1,40 @@
 /* ***** BEGIN LICENSE BLOCK *****
- * 
+ *
  * Copyright (c) 2008, Mozilla Corporation
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
- * 
+ *
  * * Redistributions of source code must retain the above copyright notice, this
  *   list of conditions and the following disclaimer.
  * * Redistributions in binary form must reproduce the above copyright notice,
  *   this list of conditions and the following disclaimer in the documentation
  *   and/or other materials provided with the distribution.
  * * Neither the name of the Mozilla Corporation nor the names of its
  *   contributors may be used to endorse or promote products derived from this
  *   software without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * Contributor(s):
  *   Josh Aas <josh@mozilla.com>
  *   Jim Mathies <jmathies@mozilla.com>
- * 
+ *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nptest_platform.h"
 
 #include <windows.h>
 #include <windowsx.h>
 #include <stdio.h>
 
@@ -72,17 +72,17 @@ NPError
 pluginInstanceInit(InstanceData* instanceData)
 {
   NPP npp = instanceData->npp;
 
   instanceData->platformData = static_cast<PlatformData*>
     (NPN_MemAlloc(sizeof(PlatformData)));
   if (!instanceData->platformData)
     return NPERR_OUT_OF_MEMORY_ERROR;
-  
+
   instanceData->platformData->childWindow = nullptr;
   instanceData->platformData->device = nullptr;
   instanceData->platformData->frontBuffer = nullptr;
   instanceData->platformData->backBuffer = nullptr;
   instanceData->platformData->adapter = nullptr;
   instanceData->platformData->d2d1Factory = nullptr;
   return NPERR_NO_ERROR;
 }
@@ -339,17 +339,17 @@ pluginWidgetInit(InstanceData* instanceD
     if (instanceData->platformData->childWindow) {
       ::DestroyWindow(instanceData->platformData->childWindow);
     }
   }
 
   SetSubclass(hWnd, instanceData);
 
   instanceData->platformData->childWindow =
-    ::CreateWindowW(L"SCROLLBAR", L"Dummy child window", 
+    ::CreateWindowW(L"SCROLLBAR", L"Dummy child window",
                     WS_CHILD, 0, 0, CHILD_WIDGET_SIZE, CHILD_WIDGET_SIZE, hWnd, nullptr,
                     nullptr, nullptr);
 }
 
 static void
 drawToDC(InstanceData* instanceData, HDC dc,
          int x, int y, int width, int height)
 {
@@ -619,17 +619,17 @@ static int32_t
 addOffset(LONG coord, int32_t offset)
 {
   if (offset == NPTEST_INT32_ERROR)
     return NPTEST_INT32_ERROR;
   return coord + offset;
 }
 
 int32_t
-pluginGetClipRegionRectEdge(InstanceData* instanceData, 
+pluginGetClipRegionRectEdge(InstanceData* instanceData,
     int32_t rectIndex, RectEdge edge)
 {
   RGNDATA* data = computeClipRegion(instanceData);
   if (!data)
     return NPTEST_INT32_ERROR;
 
   HANDLE heap = ::GetProcessHeap();
   if (rectIndex >= int32_t(data->rdh.nCount)) {
@@ -784,17 +784,17 @@ handleEventInternal(InstanceData* instan
 
 int16_t
 pluginHandleEvent(InstanceData* instanceData, void* event)
 {
   NPEvent* pe = (NPEvent*)event;
 
   if (pe == nullptr || instanceData == nullptr ||
       instanceData->window.type != NPWindowTypeDrawable)
-    return 0;   
+    return 0;
 
   LRESULT result = 0;
   return handleEventInternal(instanceData, pe, &result);
 }
 
 /* windowed plugin events */
 
 LRESULT CALLBACK PluginWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
--- a/dom/power/PowerManagerService.h
+++ b/dom/power/PowerManagerService.h
@@ -70,17 +70,17 @@ private:
   void ComputeWakeLockState(const hal::WakeLockInformation& aWakeLockInfo,
                             nsAString &aState);
 
   void SyncProfile();
 
   static StaticRefPtr<PowerManagerService> sSingleton;
 
   nsTArray<nsCOMPtr<nsIDOMMozWakeLockListener>> mWakeLockListeners;
-  
+
   int32_t mWatchdogTimeoutSecs;
 };
 
 } // namespace power
 } // namespace dom
 } // namespace mozilla
 
 #endif // mozilla_dom_power_PowerManagerService_h
--- a/dom/security/nsCSPParser.cpp
+++ b/dom/security/nsCSPParser.cpp
@@ -943,17 +943,17 @@ nsCSPParser::requireSRIForDirectiveValue
   if (!(aDir->hasType(nsIContentPolicy::TYPE_STYLESHEET)) &&
       !(aDir->hasType(nsIContentPolicy::TYPE_SCRIPT))) {
     const char16_t* directiveName[] = { mCurToken.get() };
     logWarningErrorToConsole(nsIScriptError::warningFlag, "ignoringDirectiveWithNoValues",
                                directiveName, ArrayLength(directiveName));
     delete aDir;
     return;
   }
-  
+
   mPolicy->addDirective(aDir);
 }
 
 void
 nsCSPParser::reportURIList(nsCSPDirective* aDir)
 {
   CSPPARSERLOG(("nsCSPParser::reportURIList"));
 
--- a/dom/security/nsCSPUtils.h
+++ b/dom/security/nsCSPUtils.h
@@ -208,17 +208,17 @@ class nsCSPBaseSrc {
                          bool aReportOnly, bool aUpgradeInsecure, bool aParserCreated) const;
     virtual bool allows(enum CSPKeyword aKeyword, const nsAString& aHashOrNonce,
                         bool aParserCreated) const;
     virtual bool visit(nsCSPSrcVisitor* aVisitor) const = 0;
     virtual void toString(nsAString& outStr) const = 0;
 
     virtual void invalidate() const
       { mInvalidated = true; }
- 
+
   protected:
     // invalidate srcs if 'script-dynamic' is present or also invalidate
     // unsafe-inline' if nonce- or hash-source specified
     mutable bool mInvalidated;
 
 };
 
 /* =============== nsCSPSchemeSrc ============ */
--- a/dom/smil/nsSMILParserUtils.cpp
+++ b/dom/smil/nsSMILParserUtils.cpp
@@ -348,17 +348,17 @@ MoveToNextToken(RangedPtr<const char16_t
 already_AddRefed<nsIAtom>
 ConvertUnescapedTokenToAtom(const nsAString& aToken)
 {
   // Whether the token is an id-ref or event-symbol it should be a valid NCName
   if (aToken.IsEmpty() || NS_FAILED(nsContentUtils::CheckQName(aToken, false)))
     return nullptr;
   return NS_Atomize(aToken);
 }
-    
+
 already_AddRefed<nsIAtom>
 ConvertTokenToAtom(const nsAString& aToken,
                    bool aUnescapeToken)
 {
   // Unescaping involves making a copy of the string which we'd like to avoid if possible
   if (!aUnescapeToken) {
     return ConvertUnescapedTokenToAtom(aToken);
   }
@@ -513,17 +513,17 @@ nsSMILParserUtils::TrimWhitespace(const 
 
 bool
 nsSMILParserUtils::ParseKeySplines(const nsAString& aSpec,
                                    FallibleTArray<nsSMILKeySpline>& aKeySplines)
 {
   nsCharSeparatedTokenizerTemplate<IsSVGWhitespace> controlPointTokenizer(aSpec, ';');
   while (controlPointTokenizer.hasMoreTokens()) {
 
-    nsCharSeparatedTokenizerTemplate<IsSVGWhitespace> 
+    nsCharSeparatedTokenizerTemplate<IsSVGWhitespace>
       tokenizer(controlPointTokenizer.nextToken(), ',',
                 nsCharSeparatedTokenizer::SEPARATOR_OPTIONAL);
 
     double values[4];
     for (int i = 0 ; i < 4; i++) {
       if (!tokenizer.hasMoreTokens() ||
           !SVGContentUtils::ParseNumber(tokenizer.nextToken(), values[i]) ||
           values[i] > 1.0 || values[i] < 0.0) {
@@ -667,17 +667,17 @@ nsSMILParserUtils::ParseTimeValueSpecPar
                                             nsSMILTimeValueSpecParams& aResult)
 {
   const nsAString& spec = TrimWhitespace(aSpec);
 
   if (spec.EqualsLiteral("indefinite")) {
      aResult.mType = nsSMILTimeValueSpecParams::INDEFINITE;
      return true;
   }
-  
+
   // offset type
   if (ParseOffsetValue(spec, &aResult.mOffset)) {
     aResult.mType = nsSMILTimeValueSpecParams::OFFSET;
     return true;
   }
 
   // wallclock type
   if (StringBeginsWith(spec, WALLCLOCK_PREFIX)) {
--- a/dom/smil/nsSMILValue.cpp
+++ b/dom/smil/nsSMILValue.cpp
@@ -139,17 +139,17 @@ nsSMILValue::Interpolate(const nsSMILVal
 // Wrappers for nsISMILType::Init & ::Destroy that verify their postconditions
 void
 nsSMILValue::InitAndCheckPostcondition(const nsISMILType* aNewType)
 {
   aNewType->Init(*this);
   MOZ_ASSERT(mType == aNewType,
              "Post-condition of Init failed. nsSMILValue is invalid");
 }
-                
+
 void
 nsSMILValue::DestroyAndCheckPostcondition()
 {
   mType->Destroy(*this);
   MOZ_ASSERT(IsNull(),
              "Post-condition of Destroy failed. "
              "nsSMILValue not null after destroying");
 }
--- a/dom/storage/StorageDBThread.h
+++ b/dom/storage/StorageDBThread.h
@@ -102,18 +102,18 @@ public:
   virtual bool ShouldPreloadOrigin(const nsACString& aOriginNoSuffix) = 0;
 
   // Get the complete list of scopes having data
   virtual void GetOriginsHavingData(InfallibleTArray<nsCString>* aOrigins) = 0;
 };
 
 // The implementation of the the database engine, this directly works
 // with the sqlite or any other db API we are based on
-// This class is resposible for collecting and processing asynchronous 
-// DB operations over caches (LocalStorageCache) communicating though 
+// This class is resposible for collecting and processing asynchronous
+// DB operations over caches (LocalStorageCache) communicating though
 // LocalStorageCacheBridge interface class
 class StorageDBThread final : public StorageDBBridge
 {
 public:
   class PendingOperations;
 
   // Representation of a singe database task, like adding and removing keys,
   // (pre)loading the whole origin data, cleaning.
@@ -235,17 +235,17 @@ public:
     bool IsOriginClearPending(const nsACString& aOriginSuffix,
                               const nsACString& aOriginNoSuffix) const;
 
     // Checks whether there is a pending update operation for this scope.
     bool IsOriginUpdatePending(const nsACString& aOriginSuffix,
                                const nsACString& aOriginNoSuffix) const;
 
   private:
-    // Returns true iff new operation is of type newType and there is a pending 
+    // Returns true iff new operation is of type newType and there is a pending
     // operation of type pendingType for the same key (target).
     bool CheckForCoalesceOpportunity(DBOperation* aNewOp,
                                      DBOperation::OperationType aPendingType,
                                      DBOperation::OperationType aNewType);
 
     // List of all clearing operations, executed first
     nsClassHashtable<nsCStringHashKey, DBOperation> mClears;
 
--- a/dom/svg/DOMSVGLengthList.h
+++ b/dom/svg/DOMSVGLengthList.h
@@ -60,17 +60,17 @@ public:
   DOMSVGLengthList(DOMSVGAnimatedLengthList *aAList,
                    const SVGLengthList &aInternalList)
     : mAList(aAList)
   {
     // aInternalList must be passed in explicitly because we can't use
     // InternalList() here. (Because it depends on IsAnimValList, which depends
     // on this object having been assigned to aAList's mBaseVal or mAnimVal,
     // which hasn't happend yet.)
-    
+
     InternalListLengthWillChange(aInternalList.Length()); // Sync mItems
   }
 
   virtual JSObject* WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override;
 
   nsISupports* GetParentObject()
   {
     return static_cast<nsIContent*>(Element());
--- a/dom/svg/DOMSVGPathSegList.cpp
+++ b/dom/svg/DOMSVGPathSegList.cpp
@@ -242,17 +242,17 @@ DOMSVGPathSegList::AttrIsAnimating() con
 }
 
 bool
 DOMSVGPathSegList::AnimListMirrorsBaseList() const
 {
   return GetDOMWrapperIfExists(InternalAList().GetAnimValKey()) &&
            !AttrIsAnimating();
 }
- 
+
 SVGPathData&
 DOMSVGPathSegList::InternalList() const
 {
   SVGAnimatedPathSegList *alist = mElement->GetAnimPathSegList();
   return mIsAnimValList && alist->IsAnimating() ? *alist->mAnimVal : alist->mBaseVal;
 }
 
 SVGAnimatedPathSegList&
--- a/dom/svg/DOMSVGStringList.cpp
+++ b/dom/svg/DOMSVGStringList.cpp
@@ -72,17 +72,17 @@ private:
 DOMSVGStringList::GetDOMWrapper(SVGStringList *aList,
                                 nsSVGElement *aElement,
                                 bool aIsConditionalProcessingAttribute,
                                 uint8_t aAttrEnum)
 {
   RefPtr<DOMSVGStringList> wrapper =
     SVGStringListTearoffTable().GetTearoff(aList);
   if (!wrapper) {
-    wrapper = new DOMSVGStringList(aElement, 
+    wrapper = new DOMSVGStringList(aElement,
                                    aIsConditionalProcessingAttribute,
                                    aAttrEnum);
     SVGStringListTearoffTable().AddTearoff(aList, wrapper);
   }
   return wrapper.forget();
 }
 
 DOMSVGStringList::~DOMSVGStringList()
--- a/dom/svg/SVGAnimatedNumberList.h
+++ b/dom/svg/SVGAnimatedNumberList.h
@@ -73,17 +73,17 @@ public:
 
   // Returns true if the animated value of this list has been explicitly
   // set (either by animation, or by taking on the base value which has been
   // explicitly set by markup or a DOM call), false otherwise.
   // If this returns false, the animated value is still valid, that is,
   // useable, and represents the default base value of the attribute.
   bool IsExplicitlySet() const
     { return !!mAnimVal || mIsBaseSet; }
-  
+
   bool IsAnimating() const {
     return !!mAnimVal;
   }
 
   UniquePtr<nsISMILAttr> ToSMILAttr(nsSVGElement* aSVGElement,
                                     uint8_t aAttrEnum);
 
 private:
--- a/dom/svg/SVGAnimatedPathSegList.h
+++ b/dom/svg/SVGAnimatedPathSegList.h
@@ -78,17 +78,17 @@ public:
    * actually return the baseVal!
    */
   void *GetBaseValKey() const {
     return (void*)&mBaseVal;
   }
   void *GetAnimValKey() const {
     return (void*)&mAnimVal;
   }
-  
+
   bool IsAnimating() const {
     return !!mAnimVal;
   }
 
   UniquePtr<nsISMILAttr> ToSMILAttr(nsSVGElement* aElement);
 
   size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const;
 
--- a/dom/svg/SVGContentUtils.cpp
+++ b/dom/svg/SVGContentUtils.cpp
@@ -750,30 +750,30 @@ RangedPtr<const char16_t>
 SVGContentUtils::GetEndRangedPtr(const nsAString& aString)
 {
   return RangedPtr<const char16_t>(aString.Data() + aString.Length(),
                                     aString.Data(), aString.Length());
 }
 
 template<class floatType>
 bool
-SVGContentUtils::ParseNumber(const nsAString& aString, 
+SVGContentUtils::ParseNumber(const nsAString& aString,
                              floatType& aValue)
 {
   RangedPtr<const char16_t> iter = GetStartRangedPtr(aString);
   const RangedPtr<const char16_t> end = GetEndRangedPtr(aString);
 
   return ParseNumber(iter, end, aValue) && iter == end;
 }
 
 template bool
-SVGContentUtils::ParseNumber<float>(const nsAString& aString, 
+SVGContentUtils::ParseNumber<float>(const nsAString& aString,
                                     float& aValue);
 template bool
-SVGContentUtils::ParseNumber<double>(const nsAString& aString, 
+SVGContentUtils::ParseNumber<double>(const nsAString& aString,
                                      double& aValue);
 
 /* static */
 bool
 SVGContentUtils::ParseInteger(RangedPtr<const char16_t>& aIter,
                               const RangedPtr<const char16_t>& aEnd,
                               int32_t& aValue)
 {
--- a/dom/svg/SVGContentUtils.h
+++ b/dom/svg/SVGContentUtils.h
@@ -169,17 +169,17 @@ public:
   static void GetStrokeOptions(AutoStrokeOptions* aStrokeOptions,
                                nsSVGElement* aElement,
                                nsStyleContext* aStyleContext,
                                mozilla::SVGContextPaint* aContextPaint,
                                StrokeOptionFlags aFlags = eAllStrokeOptions);
 
   /**
    * Returns the current computed value of the CSS property 'stroke-width' for
-   * the given element. aStyleContext may be provided as an optimization. 
+   * the given element. aStyleContext may be provided as an optimization.
    * aContextPaint is also optional.
    *
    * Note that this function does NOT take account of the value of the 'stroke'
    * and 'stroke-opacity' properties to, say, return zero if they are "none" or
    * "0", respectively.
    */
   static Float GetStrokeWidth(nsSVGElement* aElement,
                               nsStyleContext* aStyleContext,
--- a/dom/svg/SVGFEColorMatrixElement.cpp
+++ b/dom/svg/SVGFEColorMatrixElement.cpp
@@ -95,17 +95,17 @@ SVGFEColorMatrixElement::GetPrimitiveDes
   const SVGNumberList &values = mNumberListAttributes[VALUES].GetAnimValue();
 
   FilterPrimitiveDescription descr(PrimitiveType::ColorMatrix);
   if (!mNumberListAttributes[VALUES].IsExplicitlySet() &&
       (type == SVG_FECOLORMATRIX_TYPE_MATRIX ||
        type == SVG_FECOLORMATRIX_TYPE_SATURATE ||
        type == SVG_FECOLORMATRIX_TYPE_HUE_ROTATE)) {
     descr.Attributes().Set(eColorMatrixType, (uint32_t)SVG_FECOLORMATRIX_TYPE_MATRIX);
-    static const float identityMatrix[] = 
+    static const float identityMatrix[] =
       { 1, 0, 0, 0, 0,
         0, 1, 0, 0, 0,
         0, 0, 1, 0, 0,
         0, 0, 0, 1, 0 };
     descr.Attributes().Set(eColorMatrixValues, identityMatrix, 20);
   } else {
     descr.Attributes().Set(eColorMatrixType, type);
     if (values.Length()) {
--- a/dom/svg/SVGFEPointLightElement.cpp
+++ b/dom/svg/SVGFEPointLightElement.cpp
@@ -48,17 +48,17 @@ SVGFEPointLightElement::AttributeAffects
 
 //----------------------------------------------------------------------
 
 AttributeMap
 SVGFEPointLightElement::ComputeLightAttributes(nsSVGFilterInstance* aInstance)
 {
   Point3D lightPos;
   GetAnimatedNumberValues(&lightPos.x, &lightPos.y, &lightPos.z, nullptr);
-  
+
   AttributeMap map;
   map.Set(eLightType, (uint32_t)eLightTypePoint);
   map.Set(ePointLightPosition, aInstance->ConvertLocation(lightPos));
   return map;
 }
 
 already_AddRefed<SVGAnimatedNumber>
 SVGFEPointLightElement::X()
--- a/dom/svg/SVGGeometryElement.cpp
+++ b/dom/svg/SVGGeometryElement.cpp
@@ -69,17 +69,17 @@ SVGGeometryElement::AttributeDefinesGeom
 bool
 SVGGeometryElement::GeometryDependsOnCoordCtx()
 {
   // Check the nsSVGLength2 attribute
   LengthAttributesInfo info = const_cast<SVGGeometryElement*>(this)->GetLengthInfo();
   for (uint32_t i = 0; i < info.mLengthCount; i++) {
     if (info.mLengths[i].GetSpecifiedUnitType() == nsIDOMSVGLength::SVG_LENGTHTYPE_PERCENTAGE) {
       return true;
-    }   
+    }
   }
   return false;
 }
 
 bool
 SVGGeometryElement::IsMarkable()
 {
   return false;
--- a/dom/svg/SVGMarkerElement.cpp
+++ b/dom/svg/SVGMarkerElement.cpp
@@ -256,17 +256,17 @@ SVGMarkerElement::SetParentCoordCtxProvi
   mViewBoxToViewportTransform = nullptr;
 }
 
 /* virtual */ bool
 SVGMarkerElement::HasValidDimensions() const
 {
   return (!mLengthAttributes[MARKERWIDTH].IsExplicitlySet() ||
            mLengthAttributes[MARKERWIDTH].GetAnimValInSpecifiedUnits() > 0) &&
-         (!mLengthAttributes[MARKERHEIGHT].IsExplicitlySet() || 
+         (!mLengthAttributes[MARKERHEIGHT].IsExplicitlySet() ||
            mLengthAttributes[MARKERHEIGHT].GetAnimValInSpecifiedUnits() > 0);
 }
 
 nsSVGElement::LengthAttributesInfo
 SVGMarkerElement::GetLengthInfo()
 {
   return LengthAttributesInfo(mLengthAttributes, sLengthInfo,
                               ArrayLength(sLengthInfo));
@@ -339,17 +339,17 @@ SVGMarkerElement::GetViewBoxRect()
 }
 
 gfx::Matrix
 SVGMarkerElement::GetViewBoxTransform()
 {
   if (!mViewBoxToViewportTransform) {
     float viewportWidth =
       mLengthAttributes[MARKERWIDTH].GetAnimValue(mCoordCtx);
-    float viewportHeight = 
+    float viewportHeight =
       mLengthAttributes[MARKERHEIGHT].GetAnimValue(mCoordCtx);
 
     nsSVGViewBoxRect viewbox = GetViewBoxRect();
 
     MOZ_ASSERT(viewbox.width > 0.0f && viewbox.height > 0.0f,
                "Rendering should be disabled");
 
     gfx::Matrix viewBoxTM =
--- a/dom/svg/SVGMotionSMILPathUtils.cpp
+++ b/dom/svg/SVGMotionSMILPathUtils.cpp
@@ -101,17 +101,17 @@ SVGMotionSMILPathUtils::PathGenerator::
   SVGLength x, y;
 
   if (!tokenizer.hasMoreTokens() ||
       !x.SetValueFromString(tokenizer.nextToken())) {
     return false;
   }
 
   if (!tokenizer.hasMoreTokens() ||
-      !y.SetValueFromString(tokenizer.nextToken())) { 
+      !y.SetValueFromString(tokenizer.nextToken())) {
     return false;
   }
 
   if (tokenizer.separatorAfterCurrentToken() ||  // Trailing comma.
       tokenizer.hasMoreTokens()) {               // More text remains
     return false;
   }
 
--- a/dom/svg/SVGMotionSMILPathUtils.h
+++ b/dom/svg/SVGMotionSMILPathUtils.h
@@ -38,17 +38,17 @@ public:
       : mSVGElement(aSVGElement),
         mHaveReceivedCommands(false)
     {
       RefPtr<DrawTarget> drawTarget =
         gfxPlatform::GetPlatform()->ScreenReferenceDrawTarget();
       NS_ASSERTION(gfxPlatform::GetPlatform()->
                      SupportsAzureContentForDrawTarget(drawTarget),
                    "Should support Moz2D content drawing");
-      
+
       mPathBuilder = drawTarget->CreatePathBuilder();
     }
 
     // Methods for adding various path commands to output path.
     // Note: aCoordPairStr is expected to be a whitespace and/or
     // comma-separated x,y coordinate-pair -- see description of
     // "the specified values for from, by, to, and values" at
     //    http://www.w3.org/TR/SVG11/animate.html#AnimateMotionElement
--- a/dom/svg/SVGMotionSMILType.cpp
+++ b/dom/svg/SVGMotionSMILType.cpp
@@ -320,17 +320,17 @@ SVGMotionSMILType::SandwichAdd(nsSMILVal
 
   // We're only expecting to be adding 1 segment on to the list
   MOZ_ASSERT(srcArr.Length() == 1,
              "Trying to do sandwich add of more than one value");
 
   if (!dstArr.AppendElement(srcArr[0], fallible)) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
-  
+
   return NS_OK;
 }
 
 nsresult
 SVGMotionSMILType::ComputeDistance(const nsSMILValue& aFrom,
                                    const nsSMILValue& aTo,
                                    double& aDistance) const
 {
--- a/dom/svg/SVGPathSegListSMILType.cpp
+++ b/dom/svg/SVGPathSegListSMILType.cpp
@@ -465,17 +465,17 @@ SVGPathSegListSMILType::Interpolate(cons
     *static_cast<const SVGPathDataAndInfo*>(aStartVal.mU.mPtr);
   const SVGPathDataAndInfo& end =
     *static_cast<const SVGPathDataAndInfo*>(aEndVal.mU.mPtr);
   SVGPathDataAndInfo& result =
     *static_cast<SVGPathDataAndInfo*>(aResult.mU.mPtr);
   MOZ_ASSERT(result.IsIdentity(),
              "expecting outparam to start out as identity");
 
-  PathInterpolationResult check = CanInterpolate(start, end); 
+  PathInterpolationResult check = CanInterpolate(start, end);
 
   if (check == eCannotInterpolate) {
     // SVGContentUtils::ReportToConsole - can't interpolate path segment lists with
     // different numbers of segments, with arcs with different flag values, or
     // with incompatible segment types.
     return NS_ERROR_FAILURE;
   }
 
--- a/dom/svg/SVGPathSegUtils.cpp
+++ b/dom/svg/SVGPathSegUtils.cpp
@@ -70,17 +70,17 @@ SVGPathSegUtils::GetValueAsString(const 
       break;
 
     default:
       MOZ_ASSERT(false, "Unknown segment type");
       aValue = u"<unknown-segment-type>";
       return;
     }
   }
-  
+
   // nsTextFormatter::ssprintf is one of the nsTextFormatter methods that
   // randomly appends '\0' to its output string, which means that the length
   // of the output string is one too long. We need to manually remove that '\0'
   // until nsTextFormatter is fixed.
   //
   if (aValue[aValue.Length() - 1] == char16_t('\0')) {
     aValue.SetLength(aValue.Length() - 1);
   }
--- a/dom/svg/SVGPointList.h
+++ b/dom/svg/SVGPointList.h
@@ -179,17 +179,17 @@ public:
    * Returns true if this object is an "identity" value, from the perspective
    * of SMIL. In other words, returns true until the initial value set up in
    * SVGPointListSMILType::Init() has been changed with a SetInfo() call.
    */
   bool IsIdentity() const {
     if (!mElement) {
       MOZ_ASSERT(IsEmpty(), "target element propagation failure");
       return true;
-    } 
+    }
     return false;
   }
 
   nsresult CopyFrom(const SVGPointListAndInfo& rhs) {
     mElement = rhs.mElement;
     return SVGPointList::CopyFrom(rhs);
   }
 
--- a/dom/svg/SVGPolyElement.cpp
+++ b/dom/svg/SVGPolyElement.cpp
@@ -54,17 +54,17 @@ SVGPolyElement::AnimatedPoints()
 // nsIContent methods
 
 NS_IMETHODIMP_(bool)
 SVGPolyElement::IsAttributeMapped(const nsIAtom* name) const
 {
   static const MappedAttributeEntry* const map[] = {
     sMarkersMap
   };
-  
+
   return FindAttributeDependence(name, map) ||
     SVGPolyElementBase::IsAttributeMapped(name);
 }
 
 //----------------------------------------------------------------------
 // nsSVGElement methods
 
 /* virtual */ bool
--- a/dom/svg/SVGTransformListParser.h
+++ b/dom/svg/SVGTransformListParser.h
@@ -21,17 +21,17 @@ namespace mozilla {
 
 class nsSVGTransform;
 
 class SVGTransformListParser : public nsSVGDataParser
 {
 public:
   explicit SVGTransformListParser(const nsAString& aValue)
     : nsSVGDataParser(aValue) {}
-  
+
   bool Parse();
 
   const nsTArray<nsSVGTransform>& GetTransformList() const {
     return mTransforms;
   }
 
 private:
   // helpers
--- a/dom/svg/SVGTransformableElement.cpp
+++ b/dom/svg/SVGTransformableElement.cpp
@@ -167,17 +167,17 @@ SVGTransformableElement::GetNearestViewp
 
 nsSVGElement*
 SVGTransformableElement::GetFarthestViewportElement()
 {
   return SVGContentUtils::GetOuterSVGElement(this);
 }
 
 already_AddRefed<SVGIRect>
-SVGTransformableElement::GetBBox(const SVGBoundingBoxOptions& aOptions, 
+SVGTransformableElement::GetBBox(const SVGBoundingBoxOptions& aOptions,
                                  ErrorResult& rv)
 {
   nsIFrame* frame = GetPrimaryFrame(FlushType::Layout);
 
   if (!frame || (frame->GetStateBits() & NS_FRAME_IS_NONDISPLAY)) {
     rv.Throw(NS_ERROR_FAILURE);
     return nullptr;
   }
--- a/dom/svg/SVGTransformableElement.h
+++ b/dom/svg/SVGTransformableElement.h
@@ -32,17 +32,17 @@ public:
 
   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                          bool aPreallocateChildren) const override = 0;
 
   // WebIDL
   already_AddRefed<SVGAnimatedTransformList> Transform();
   nsSVGElement* GetNearestViewportElement();
   nsSVGElement* GetFarthestViewportElement();
-  already_AddRefed<SVGIRect> GetBBox(const SVGBoundingBoxOptions& aOptions, 
+  already_AddRefed<SVGIRect> GetBBox(const SVGBoundingBoxOptions& aOptions,
                                      ErrorResult& rv);
   already_AddRefed<SVGMatrix> GetCTM();
   already_AddRefed<SVGMatrix> GetScreenCTM();
   already_AddRefed<SVGMatrix> GetTransformToElement(SVGGraphicsElement& aElement,
                                                     ErrorResult& rv);
 
   // nsIContent interface
   NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override;
--- a/dom/svg/SVGViewBoxSMILType.cpp
+++ b/dom/svg/SVGViewBoxSMILType.cpp
@@ -6,17 +6,17 @@
 
 #include "SVGViewBoxSMILType.h"
 #include "nsSMILValue.h"
 #include "nsSVGViewBox.h"
 #include "nsDebug.h"
 #include <math.h>
 
 namespace mozilla {
-  
+
 /*static*/ SVGViewBoxSMILType SVGViewBoxSMILType::sSingleton;
 
 void
 SVGViewBoxSMILType::Init(nsSMILValue& aValue) const
 {
   MOZ_ASSERT(aValue.IsNull(), "Unexpected value type");
 
   aValue.mU.mPtr = new nsSVGViewBoxRect();
@@ -126,13 +126,13 @@ SVGViewBoxSMILType::Interpolate(const ns
   nsSVGViewBoxRect* current = static_cast<nsSVGViewBoxRect*>(aResult.mU.mPtr);
 
   float x = (start->x + (end->x - start->x) * aUnitDistance);
   float y = (start->y + (end->y - start->y) * aUnitDistance);
   float width = (start->width + (end->width - start->width) * aUnitDistance);
   float height = (start->height + (end->height - start->height) * aUnitDistance);
 
   *current = nsSVGViewBoxRect(x, y, width, height);
-  
+
   return NS_OK;
 }
 
 } // namespace mozilla
--- a/dom/svg/nsSVGAngle.cpp
+++ b/dom/svg/nsSVGAngle.cpp
@@ -43,36 +43,36 @@ IsValidUnitType(uint16_t unit)
 {
   if (unit > SVG_ANGLETYPE_UNKNOWN &&
       unit <= SVG_ANGLETYPE_GRAD)
     return true;
 
   return false;
 }
 
-static void 
+static void
 GetUnitString(nsAString& unit, uint16_t unitType)
 {
   if (IsValidUnitType(unitType)) {
     if (unitMap[unitType]) {
       (*unitMap[unitType])->ToString(unit);
     }
     return;
   }
 
   NS_NOTREACHED("Unknown unit type");
   return;
 }
 
 static uint16_t
 GetUnitTypeForString(const nsAString& unitStr)
 {
-  if (unitStr.IsEmpty()) 
+  if (unitStr.IsEmpty())
     return SVG_ANGLETYPE_UNSPECIFIED;
-                   
+
   nsIAtom *unitAtom = NS_GetStaticAtom(unitStr);
 
   if (unitAtom) {
     for (uint32_t i = 0 ; i < ArrayLength(unitMap) ; i++) {
       if (unitMap[i] && *unitMap[i] == unitAtom) {
         return i;
       }
     }
@@ -251,17 +251,17 @@ SVGAngle::~SVGAngle()
 
 nsresult
 nsSVGAngle::SetBaseValueString(const nsAString &aValueAsString,
                                nsSVGElement *aSVGElement,
                                bool aDoSetAttr)
 {
   float value;
   uint16_t unitType;
-  
+
   if (!GetValueFromString(aValueAsString, value, &unitType)) {
      return NS_ERROR_DOM_SYNTAX_ERR;
   }
   if (mBaseVal == value && mBaseValUnit == uint8_t(unitType)) {
     return NS_OK;
   }
 
   nsAttrValue emptyOrOldValue;
--- a/dom/svg/nsSVGAnimatedTransformList.cpp
+++ b/dom/svg/nsSVGAnimatedTransformList.cpp
@@ -268,17 +268,17 @@ nsSVGAnimatedTransformList::SMILAnimated
   nsCharSeparatedTokenizerTemplate<IsSVGWhitespace>
     tokenizer(aSpec, ',', nsCharSeparatedTokenizer::SEPARATOR_OPTIONAL);
 
   int numArgsFound = 0;
 
   while (tokenizer.hasMoreTokens()) {
     float f;
     if (!SVGContentUtils::ParseNumber(tokenizer.nextToken(), f)) {
-      return -1;    
+      return -1;
     }
     if (numArgsFound < aNVars) {
       aVars[numArgsFound] = f;
     }
     numArgsFound++;
   }
   return numArgsFound;
 }
--- a/dom/svg/nsSVGDataParser.h
+++ b/dom/svg/nsSVGDataParser.h
@@ -8,17 +8,17 @@
 #define __NS_SVGDATAPARSER_H__
 
 #include "mozilla/RangedPtr.h"
 #include "nsString.h"
 
 ////////////////////////////////////////////////////////////////////////
 // nsSVGDataParser: a simple base class for parsing values
 // for path and transform values.
-// 
+//
 class nsSVGDataParser
 {
 public:
   explicit nsSVGDataParser(const nsAString& aValue);
 
 protected:
   static bool IsAlpha(char16_t aCh) {
     // Exclude non-ascii characters before calling isalpha
--- a/dom/svg/nsSVGElement.cpp
+++ b/dom/svg/nsSVGElement.cpp
@@ -691,17 +691,17 @@ nsSVGElement::UnsetAttrInternal(int32_t 
     if (IsEventAttributeName(aName)) {
       EventListenerManager* manager = GetExistingListenerManager();
       if (manager) {
         nsIAtom* eventName = GetEventNameForAttr(aName);
         manager->RemoveEventHandler(eventName, EmptyString());
       }
       return;
     }
-    
+
     // Check if this is a length attribute going away
     LengthAttributesInfo lenInfo = GetLengthInfo();
 
     for (uint32_t i = 0; i < lenInfo.mLengthCount; i++) {
       if (aName == *lenInfo.mLengthInfo[i].mName) {
         MaybeSerializeAttrBeforeRemoval(aName, aNotify);
         lenInfo.Reset(i);
         return;
@@ -1018,17 +1018,17 @@ nsSVGElement::sTextContentElementsMap[] 
 /* static */ const Element::MappedAttributeEntry
 nsSVGElement::sFontSpecificationMap[] = {
   { &nsGkAtoms::font_family },
   { &nsGkAtoms::font_size },
   { &nsGkAtoms::font_size_adjust },
   { &nsGkAtoms::font_stretch },
   { &nsGkAtoms::font_style },
   { &nsGkAtoms::font_variant },
-  { &nsGkAtoms::fontWeight },  
+  { &nsGkAtoms::fontWeight },
   { nullptr }
 };
 
 // PresentationAttributes-GradientStop
 /* static */ const Element::MappedAttributeEntry
 nsSVGElement::sGradientStopMap[] = {
   { &nsGkAtoms::stop_color },
   { &nsGkAtoms::stop_opacity },
@@ -2056,17 +2056,17 @@ nsSVGElement::DidChangeInteger(uint8_t a
   SetParsedAttr(kNameSpaceID_None, *info.mIntegerInfo[aAttrEnum].mName, nullptr,
                 attrValue, true);
 }
 
 void
 nsSVGElement::DidAnimateInteger(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
-  
+
   if (frame) {
     IntegerAttributesInfo info = GetIntegerInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mIntegerInfo[aAttrEnum].mName,
                             nsIDOMMutationEvent::SMIL);
   }
 }
 
@@ -2127,34 +2127,34 @@ nsSVGElement::DidChangeIntegerPair(uint8
   DidChangeValue(*info.mIntegerPairInfo[aAttrEnum].mName, aEmptyOrOldValue,
                  newValue);
 }
 
 void
 nsSVGElement::DidAnimateIntegerPair(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
-  
+
   if (frame) {
     IntegerPairAttributesInfo info = GetIntegerPairInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mIntegerPairInfo[aAttrEnum].mName,
                             nsIDOMMutationEvent::SMIL);
   }
 }
 
 nsSVGElement::AngleAttributesInfo
 nsSVGElement::GetAngleInfo()
 {
   return AngleAttributesInfo(nullptr, nullptr, 0);
 }
 
 void nsSVGElement::AngleAttributesInfo::Reset(uint8_t aAttrEnum)
 {
-  mAngles[aAttrEnum].Init(aAttrEnum, 
+  mAngles[aAttrEnum].Init(aAttrEnum,
                           mAngleInfo[aAttrEnum].mDefaultValue,
                           mAngleInfo[aAttrEnum].mDefaultUnitType);
 }
 
 nsAttrValue
 nsSVGElement::WillChangeAngle(uint8_t aAttrEnum)
 {
   return WillChangeValue(*GetAngleInfo().mAngleInfo[aAttrEnum].mName);
@@ -2214,17 +2214,17 @@ nsSVGElement::DidChangeBoolean(uint8_t a
   SetParsedAttr(kNameSpaceID_None, *info.mBooleanInfo[aAttrEnum].mName, nullptr,
                 attrValue, true);
 }
 
 void
 nsSVGElement::DidAnimateBoolean(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
-  
+
   if (frame) {
     BooleanAttributesInfo info = GetBooleanInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mBooleanInfo[aAttrEnum].mName,
                             nsIDOMMutationEvent::SMIL);
   }
 }
 
@@ -2291,17 +2291,17 @@ nsSVGElement::DidChangeViewBox(const nsA
 
   DidChangeValue(nsGkAtoms::viewBox, aEmptyOrOldValue, newValue);
 }
 
 void
 nsSVGElement::DidAnimateViewBox()
 {
   nsIFrame* frame = GetPrimaryFrame();
-  
+
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             nsGkAtoms::viewBox,
                             nsIDOMMutationEvent::SMIL);
   }
 }
 
 SVGAnimatedPreserveAspectRatio *
@@ -2331,17 +2331,17 @@ nsSVGElement::DidChangePreserveAspectRat
 
   DidChangeValue(nsGkAtoms::preserveAspectRatio, aEmptyOrOldValue, newValue);
 }
 
 void
 nsSVGElement::DidAnimatePreserveAspectRatio()
 {
   nsIFrame* frame = GetPrimaryFrame();
-  
+
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             nsGkAtoms::preserveAspectRatio,
                             nsIDOMMutationEvent::SMIL);
   }
 }
 
 nsAttrValue
--- a/dom/svg/nsSVGEnum.cpp
+++ b/dom/svg/nsSVGEnum.cpp
@@ -151,17 +151,17 @@ nsSVGEnum::SMILEnum::ValueFromString(con
         val.mU.mUint = mapping->mVal;
         aValue = val;
         aPreventCachingOfSandwich = false;
         return NS_OK;
       }
       mapping++;
     }
   }
-  
+
   // only a warning since authors may mistype attribute values
   NS_WARNING("unknown enumeration key");
   return NS_ERROR_FAILURE;
 }
 
 nsSMILValue
 nsSVGEnum::SMILEnum::GetBaseValue() const
 {
--- a/dom/svg/nsSVGFilters.cpp
+++ b/dom/svg/nsSVGFilters.cpp
@@ -140,17 +140,17 @@ nsSVGFE::Result()
 // nsIContent methods
 
 NS_IMETHODIMP_(bool)
 nsSVGFE::IsAttributeMapped(const nsIAtom* name) const
 {
   static const MappedAttributeEntry* const map[] = {
     sFiltersMap
   };
-  
+
   return FindAttributeDependence(name, map) ||
     nsSVGFEBase::IsAttributeMapped(name);
 }
 
 //----------------------------------------------------------------------
 // nsSVGElement methods
 
 
@@ -315,17 +315,17 @@ SVGComponentTransferFunctionElement::Off
 }
 
 AttributeMap
 SVGComponentTransferFunctionElement::ComputeAttributes()
 {
   uint32_t type = mEnumAttributes[TYPE].GetAnimValue();
 
   float slope, intercept, amplitude, exponent, offset;
-  GetAnimatedNumberValues(&slope, &intercept, &amplitude, 
+  GetAnimatedNumberValues(&slope, &intercept, &amplitude,
                           &exponent, &offset, nullptr);
 
   const SVGNumberList &tableValues =
     mNumberListAttributes[TABLEVALUES].GetAnimValue();
 
   AttributeMap map;
   map.Set(eComponentTransferFunctionType, type);
   map.Set(eComponentTransferFunctionSlope, slope);
@@ -454,17 +454,17 @@ nsSVGElement::StringInfo nsSVGFELighting
 };
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_ADDREF_INHERITED(nsSVGFELightingElement,nsSVGFELightingElementBase)
 NS_IMPL_RELEASE_INHERITED(nsSVGFELightingElement,nsSVGFELightingElementBase)
 
-NS_INTERFACE_MAP_BEGIN(nsSVGFELightingElement) 
+NS_INTERFACE_MAP_BEGIN(nsSVGFELightingElement)
 NS_INTERFACE_MAP_END_INHERITING(nsSVGFELightingElementBase)
 
 //----------------------------------------------------------------------
 // Implementation
 
 NS_IMETHODIMP_(bool)
 nsSVGFELightingElement::IsAttributeMapped(const nsIAtom* name) const
 {
--- a/dom/svg/nsSVGLength2.cpp
+++ b/dom/svg/nsSVGLength2.cpp
@@ -64,19 +64,19 @@ GetUnitString(nsAString& unit, uint16_t 
 
   NS_NOTREACHED("Unknown unit type");
   return;
 }
 
 static uint16_t
 GetUnitTypeForString(const nsAString& unitStr)
 {
-  if (unitStr.IsEmpty()) 
+  if (unitStr.IsEmpty())
     return nsIDOMSVGLength::SVG_LENGTHTYPE_NUMBER;
-                   
+
   nsIAtom *unitAtom = NS_GetStaticAtom(unitStr);
   if (unitAtom) {
     for (uint32_t i = 0 ; i < ArrayLength(unitMap) ; i++) {
       if (unitMap[i] && *unitMap[i] == unitAtom) {
         return i;
       }
     }
   }
@@ -478,17 +478,17 @@ nsSVGLength2::ToSMILAttr(nsSVGElement *a
 nsresult
 nsSVGLength2::SMILLength::ValueFromString(const nsAString& aStr,
                                  const SVGAnimationElement* /*aSrcElement*/,
                                  nsSMILValue& aValue,
                                  bool& aPreventCachingOfSandwich) const
 {
   float value;
   uint16_t unitType;
-  
+
   if (!GetValueFromString(aStr, value, &unitType)) {
     return NS_ERROR_DOM_SYNTAX_ERR;
   }
 
   nsSMILValue val(nsSMILFloatType::Singleton());
   val.mU.mDouble = value / mVal->GetUnitScaleFactor(mSVGElement, unitType);
   aValue = val;
   aPreventCachingOfSandwich =
@@ -509,17 +509,17 @@ nsSVGLength2::SMILLength::GetBaseValue()
 
 void
 nsSVGLength2::SMILLength::ClearAnimValue()
 {
   if (mVal->mIsAnimated) {
     mVal->mIsAnimated = false;
     mVal->mAnimVal = mVal->mBaseVal;
     mSVGElement->DidAnimateLength(mVal->mAttrEnum);
-  }  
+  }
 }
 
 nsresult
 nsSVGLength2::SMILLength::SetAnimValue(const nsSMILValue& aValue)
 {
   NS_ASSERTION(aValue.mType == nsSMILFloatType::Singleton(),
     "Unexpected type to assign animated value");
   if (aValue.mType == nsSMILFloatType::Singleton()) {
--- a/dom/svg/nsSVGPathDataParser.cpp
+++ b/dom/svg/nsSVGPathDataParser.cpp
@@ -484,17 +484,17 @@ nsSVGArcConverter::nsSVGArcConverter(con
 }
 
 bool
 nsSVGArcConverter::GetNextSegment(Point* cp1, Point* cp2, Point* to)
 {
   if (mSegIndex == mNumSegs) {
     return false;
   }
-  
+
   double cosTheta1 = cos(mTheta);
   double sinTheta1 = sin(mTheta);
   double theta2 = mTheta + mDelta;
   double cosTheta2 = cos(theta2);
   double sinTheta2 = sin(theta2);
 
   // a) calculate endpoint of the segment:
   to->x = mCosPhi * mRx*cosTheta2 - mSinPhi * mRy*sinTheta2 + mC.x;
--- a/dom/svg/nsSVGPathDataParser.h
+++ b/dom/svg/nsSVGPathDataParser.h
@@ -36,31 +36,31 @@ public:
 private:
 
   bool ParseCoordPair(float& aX, float& aY);
   bool ParseFlag(bool& aFlag);
 
   bool ParsePath();
   bool IsStartOfSubPath() const;
   bool ParseSubPath();
-  
+
   bool ParseSubPathElements();
   bool ParseSubPathElement(char16_t aCommandType,
                            bool aAbsCoords);
 
   bool ParseMoveto();
   bool ParseClosePath();
   bool ParseLineto(bool aAbsCoords);
   bool ParseHorizontalLineto(bool aAbsCoords);
   bool ParseVerticalLineto(bool aAbsCoords);
   bool ParseCurveto(bool aAbsCoords);
   bool ParseSmoothCurveto(bool aAbsCoords);
   bool ParseQuadBezierCurveto(bool aAbsCoords);
-  bool ParseSmoothQuadBezierCurveto(bool aAbsCoords);  
-  bool ParseEllipticalArc(bool aAbsCoords);  
+  bool ParseSmoothQuadBezierCurveto(bool aAbsCoords);
+  bool ParseEllipticalArc(bool aAbsCoords);
 
   mozilla::SVGPathData * const mPathSegList;
 };
 
 class nsSVGArcConverter
 {
   typedef mozilla::gfx::Point Point;
 
--- a/dom/svg/nsSVGViewBox.cpp
+++ b/dom/svg/nsSVGViewBox.cpp
@@ -322,17 +322,17 @@ nsSVGViewBox::SMILViewBox
   nsresult res = nsSVGViewBoxRect::FromString(aStr, &viewBox);
   if (NS_FAILED(res)) {
     return res;
   }
   nsSMILValue val(&SVGViewBoxSMILType::sSingleton);
   *static_cast<nsSVGViewBoxRect*>(val.mU.mPtr) = viewBox;
   aValue = Move(val);
   aPreventCachingOfSandwich = false;
-  
+
   return NS_OK;
 }
 
 nsSMILValue
 nsSVGViewBox::SMILViewBox::GetBaseValue() const
 {
   nsSMILValue val(&SVGViewBoxSMILType::sSingleton);
   *static_cast<nsSVGViewBoxRect*>(val.mU.mPtr) = mVal->mBaseVal;
--- a/dom/time/DateCacheCleaner.h
+++ b/dom/time/DateCacheCleaner.h
@@ -1,16 +1,16 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
- * InitializeDateCacheCleaner registers DateCacheCleaner to 
+ * InitializeDateCacheCleaner registers DateCacheCleaner to
  * SystemTimeChangeObserver. When time zone is changed, DateCacheCleaner calls
  * JS::ResetTimeZone to update the time zone information.
  */
 
 namespace mozilla {
 namespace dom {
 namespace time {
 void InitializeDateCacheCleaner();
--- a/dom/vr/VRDisplayEvent.cpp
+++ b/dom/vr/VRDisplayEvent.cpp
@@ -82,14 +82,14 @@ VRDisplayEvent::Constructor(const Global
 Nullable<VRDisplayEventReason>
 VRDisplayEvent::GetReason() const
 {
   if (mReason.isSome()) {
     return mReason.value();
   } else {
     return nullptr;
   }
-  
+
 }
 
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/webbrowserpersist/nsWebBrowserPersist.cpp
+++ b/dom/webbrowserpersist/nsWebBrowserPersist.cpp
@@ -421,17 +421,17 @@ NS_IMETHODIMP nsWebBrowserPersist::SaveU
     return SavePrivacyAwareURI(aURI, aCacheKey, aReferrer, aReferrerPolicy,
                                aPostData, aExtraHeaders, aFile,
                                aPrivacyContext && aPrivacyContext->UsePrivateBrowsing());
 }
 
 NS_IMETHODIMP nsWebBrowserPersist::SavePrivacyAwareURI(
     nsIURI *aURI, nsISupports *aCacheKey,
     nsIURI *aReferrer, uint32_t aReferrerPolicy,
-    nsIInputStream *aPostData, const char *aExtraHeaders, 
+    nsIInputStream *aPostData, const char *aExtraHeaders,
     nsISupports *aFile, bool aIsPrivate)
 {
     NS_ENSURE_TRUE(mFirstAndOnlyUse, NS_ERROR_FAILURE);
     mFirstAndOnlyUse = false; // Stop people from reusing this object!
 
     nsCOMPtr<nsIURI> fileAsURI;
     nsresult rv;
     rv = GetValidURIFromObject(aFile, getter_AddRefs(fileAsURI));
@@ -2546,43 +2546,43 @@ nsWebBrowserPersist::URIData::GetLocalUR
     // Use relative or absolute links
     if (mDataPathIsRelative) {
         bool isEqual = false;
         if (NS_SUCCEEDED(mRelativeDocumentURI->Equals(targetBaseURI, &isEqual)) && isEqual) {
             nsCOMPtr<nsIURL> url(do_QueryInterface(fileAsURI));
             if (!url) {
                 return NS_ERROR_FAILURE;
             }
-            
+
             nsAutoCString filename;
             url->GetFileName(filename);
-            
+
             nsAutoCString rawPathURL(mRelativePathToData);
             rawPathURL.Append(filename);
-            
+
             rv = NS_EscapeURL(rawPathURL, esc_FilePath, aSpecOut, fallible);
             NS_ENSURE_SUCCESS(rv, rv);
         } else {
             nsAutoCString rawPathURL;
-            
+
             nsCOMPtr<nsIFile> dataFile;
             rv = GetLocalFileFromURI(mFile, getter_AddRefs(dataFile));
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             nsCOMPtr<nsIFile> docFile;
             rv = GetLocalFileFromURI(targetBaseURI, getter_AddRefs(docFile));
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             nsCOMPtr<nsIFile> parentDir;
             rv = docFile->GetParent(getter_AddRefs(parentDir));
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             rv = dataFile->GetRelativePath(parentDir, rawPathURL);
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             rv = NS_EscapeURL(rawPathURL, esc_FilePath, aSpecOut, fallible);
             NS_ENSURE_SUCCESS(rv, rv);
         }
     } else {
         fileAsURI->GetSpec(aSpecOut);
     }
     if (mIsSubFrame) {
         AppendUTF16toUTF8(mSubFrameExt, aSpecOut);
--- a/dom/xhr/XMLHttpRequestWorker.cpp
+++ b/dom/xhr/XMLHttpRequestWorker.cpp
@@ -76,17 +76,17 @@ XMLHttpRequestWorker::StateData::trace(J
  *  the proper times.  If we pin for too long we can cause memory leaks or even
  *  shutdown hangs.  If we don't pin for long enough we introduce a GC hazard.
  *
  *  The XHR is pinned from the time Send is called to roughly the time loadend
  *  is received.  There are some complications involved with Abort and XHR
  *  reuse.  We maintain a counter on the main thread of how many times Send was
  *  called on this XHR, and we decrement the counter every time we receive a
  *  loadend event.  When the counter reaches zero we dispatch a runnable to the
- *  worker thread to unpin the XHR.  We only decrement the counter if the 
+ *  worker thread to unpin the XHR.  We only decrement the counter if the
  *  dispatch was successful, because the worker may no longer be accepting
  *  regular runnables.  In the event that we reach Proxy::Teardown and there
  *  the outstanding Send count is still non-zero, we dispatch a control
  *  runnable which is guaranteed to run.
  *
  *  NB: Some of this could probably be simplified now that we have the
  *  inner/outer channel ids.
  */
--- a/dom/xml/XMLStylesheetProcessingInstruction.cpp
+++ b/dom/xml/XMLStylesheetProcessingInstruction.cpp
@@ -61,17 +61,17 @@ XMLStylesheetProcessingInstruction::Bind
                                                   aCompileEventHandlers);
   NS_ENSURE_SUCCESS(rv, rv);
 
   void (XMLStylesheetProcessingInstruction::*update)() =
     &XMLStylesheetProcessingInstruction::UpdateStyleSheetInternal;
   nsContentUtils::AddScriptRunner(NewRunnableMethod(
     "dom::XMLStylesheetProcessingInstruction::BindToTree", this, update));
 
-  return rv;  
+  return rv;
 }
 
 void
 XMLStylesheetProcessingInstruction::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   nsCOMPtr<nsIDocument> oldDoc = GetUncomposedDoc();
 
   ProcessingInstruction::UnbindFromTree(aDeep, aNullParent);
--- a/dom/xml/nsIXMLContentSink.h
+++ b/dom/xml/nsIXMLContentSink.h
@@ -27,17 +27,17 @@ class nsIChannel;
  * well-formedness and validity checking.
  *
  * XXX The expectation is that entity expansion will be done by the sink
  * itself. This would require, however, that the sink has the ability
  * to query the parser for entity replacement text.
  *
  * XXX This interface does not contain a mechanism for the sink to
  * get specific schema/DTD information from the parser. This information
- * may be necessary for entity expansion. It is also necessary for 
+ * may be necessary for entity expansion. It is also necessary for
  * building the DOM portions that relate to the schema.
  *
  * XXX This interface does not deal with the presence of an external
  * subset. It seems possible that this could be dealt with completely
  * at the parser level.
  */
 
 class nsIXMLContentSink : public nsIContentSink {
--- a/dom/xml/nsXMLContentSink.h
+++ b/dom/xml/nsXMLContentSink.h
@@ -97,25 +97,25 @@ protected:
   // Start layout.  If aIgnorePendingSheets is true, this will happen even if
   // we still have stylesheet loads pending.  Otherwise, we'll wait until the
   // stylesheets are all done loading.
   virtual void MaybeStartLayout(bool aIgnorePendingSheets);
 
   virtual nsresult AddAttributes(const char16_t** aNode, nsIContent* aContent);
   nsresult AddText(const char16_t* aString, int32_t aLength);
 
-  virtual bool OnOpenContainer(const char16_t **aAtts, 
-                                 uint32_t aAttsCount, 
-                                 int32_t aNameSpaceID, 
+  virtual bool OnOpenContainer(const char16_t **aAtts,
+                                 uint32_t aAttsCount,
+                                 int32_t aNameSpaceID,
                                  nsIAtom* aTagName,
                                  uint32_t aLineNumber) { return true; }
   // Set the given content as the root element for the created document
   //  don't set if root element was already set.
   //  return TRUE if this call set the root element
-  virtual bool SetDocElement(int32_t aNameSpaceID, 
+  virtual bool SetDocElement(int32_t aNameSpaceID,
                                nsIAtom *aTagName,
                                nsIContent *aContent);
   virtual bool NotifyForDocElement() { return true; }
   virtual nsresult CreateElement(const char16_t** aAtts, uint32_t aAttsCount,
                                  mozilla::dom::NodeInfo* aNodeInfo, uint32_t aLineNumber,
                                  nsIContent** aResult, bool* aAppendContent,
                                  mozilla::dom::FromParser aFromParser);
 
@@ -135,62 +135,62 @@ protected:
 
   nsresult FlushTags() override;
 
   void UpdateChildCounts() override;
 
   void DidAddContent()
   {
     if (IsTimeToNotify()) {
-      FlushTags();	
+      FlushTags();
     }
   }
-  
+
   // nsContentSink override
   virtual nsresult ProcessStyleLink(nsIContent* aElement,
                                     const nsAString& aHref,
                                     bool aAlternate,
                                     const nsAString& aTitle,
                                     const nsAString& aType,
                                     const nsAString& aMedia) override;
 
   nsresult LoadXSLStyleSheet(nsIURI* aUrl);
 
   bool CanStillPrettyPrint();
 
   nsresult MaybePrettyPrint();
-  
+
   bool IsMonolithicContainer(mozilla::dom::NodeInfo* aNodeInfo);
 
-  nsresult HandleStartElement(const char16_t *aName, const char16_t **aAtts, 
+  nsresult HandleStartElement(const char16_t *aName, const char16_t **aAtts,
                               uint32_t aAttsCount, uint32_t aLineNumber,
                               bool aInterruptable);
   nsresult HandleEndElement(const char16_t *aName, bool aInterruptable);
   nsresult HandleCharacterData(const char16_t *aData, uint32_t aLength,
                                bool aInterruptable);
 
   nsCOMPtr<nsIContent> mDocElement;
   nsCOMPtr<nsIContent> mCurrentHead;  // When set, we're in an XHTML <haed>
 
   XMLContentSinkState mState;
 
   // The length of the valid data in mText.
   int32_t mTextLength;
-  
+
   int32_t mNotifyLevel;
   nsCOMPtr<nsIContent> mLastTextNode;
 
   uint8_t mPrettyPrintXML : 1;
   uint8_t mPrettyPrintHasSpecialRoot : 1;
   uint8_t mPrettyPrintHasFactoredElements : 1;
   uint8_t mPrettyPrinting : 1;  // True if we called PrettyPrint() and it
                                 // decided we should in fact prettyprint.
   // True to call prevent script execution in the fragment mode.
   uint8_t mPreventScriptExecution : 1;
-  
+
   nsTArray<StackNode>              mContentStack;
 
   nsCOMPtr<nsIDocumentTransformer> mXSLTProcessor;
 
   static const int NS_ACCUMULATION_BUFFER_SIZE = 4096;
   // Our currently accumulated text that we have not flushed to a textnode yet.
   char16_t mText[NS_ACCUMULATION_BUFFER_SIZE];
 };
--- a/dom/xml/nsXMLFragmentContentSink.cpp
+++ b/dom/xml/nsXMLFragmentContentSink.cpp
@@ -105,19 +105,19 @@ protected:
   nsCOMPtr<nsIContent>  mRoot;
   bool                  mParseError;
 };
 
 static nsresult
 NewXMLFragmentContentSinkHelper(nsIFragmentContentSink** aResult)
 {
   nsXMLFragmentContentSink* it = new nsXMLFragmentContentSink();
-  
+
   NS_ADDREF(*aResult = it);
-  
+
   return NS_OK;
 }
 
 nsresult
 NS_NewXMLFragmentContentSink(nsIFragmentContentSink** aResult)
 {
   return NewXMLFragmentContentSinkHelper(aResult);
 }
@@ -142,43 +142,43 @@ NS_IMPL_RELEASE_INHERITED(nsXMLFragmentC
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsXMLFragmentContentSink)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsXMLFragmentContentSink,
                                                   nsXMLContentSink)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mTargetDocument)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRoot)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsXMLFragmentContentSink::WillBuildModel(nsDTDMode aDTDMode)
 {
   if (mRoot) {
     return NS_OK;
   }
 
   mState = eXMLContentSinkState_InDocumentElement;
 
   NS_ASSERTION(mTargetDocument, "Need a document!");
 
   mRoot = new DocumentFragment(mNodeInfoManager);
-  
+
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsXMLFragmentContentSink::DidBuildModel(bool aTerminated)
 {
   // Drop our reference to the parser to get rid of a circular
   // reference.
   mParser = nullptr;
 
   return NS_OK;
 }
 
-void 
+void
 nsXMLFragmentContentSink::SetDocumentCharset(
   NotNull<const Encoding*> aEncoding)
 {
   NS_NOTREACHED("fragments shouldn't set charset");
 }
 
 nsISupports *
 nsXMLFragmentContentSink::GetTarget()
@@ -241,29 +241,29 @@ void
 nsXMLFragmentContentSink::MaybeStartLayout(bool aIgnorePendingSheets)
 {
   return;
 }
 
 ////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
-nsXMLFragmentContentSink::HandleDoctypeDecl(const nsAString & aSubset, 
-                                            const nsAString & aName, 
-                                            const nsAString & aSystemId, 
+nsXMLFragmentContentSink::HandleDoctypeDecl(const nsAString & aSubset,
+                                            const nsAString & aName,
+                                            const nsAString & aSystemId,
                                             const nsAString & aPublicId,
                                             nsISupports* aCatalogData)
 {
   NS_NOTREACHED("fragments shouldn't have doctype declarations");
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsXMLFragmentContentSink::HandleProcessingInstruction(const char16_t *aTarget, 
+nsXMLFragmentContentSink::HandleProcessingInstruction(const char16_t *aTarget,
                                                       const char16_t *aData)
 {
   FlushText();
 
   const nsDependentString target(aTarget);
   const nsDependentString data(aData);
 
   RefPtr<ProcessingInstruction> node =
@@ -278,17 +278,17 @@ nsXMLFragmentContentSink::HandleXMLDecla
                                                const char16_t *aEncoding,
                                                int32_t aStandalone)
 {
   NS_NOTREACHED("fragments shouldn't have XML declarations");
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsXMLFragmentContentSink::ReportError(const char16_t* aErrorText, 
+nsXMLFragmentContentSink::ReportError(const char16_t* aErrorText,
                                       const char16_t* aSourceText,
                                       nsIScriptError *aError,
                                       bool *_retval)
 {
   NS_PRECONDITION(aError && aSourceText && aErrorText, "Check arguments!!!");
 
   // The expat driver should report the error.
   *_retval = true;
@@ -318,17 +318,17 @@ nsXMLFragmentContentSink::ReportError(co
     }
   }
 
   // Clear any buffered-up text we have.  It's enough to set the length to 0.
   // The buffer itself is allocated when we're created and deleted in our
   // destructor, so don't mess with it.
   mTextLength = 0;
 
-  return NS_OK; 
+  return NS_OK;
 }
 
 nsresult
 nsXMLFragmentContentSink::ProcessStyleLink(nsIContent* aElement,
                                            const nsAString& aHref,
                                            bool aAlternate,
                                            const nsAString& aTitle,
                                            const nsAString& aType,
@@ -348,17 +348,17 @@ nsXMLFragmentContentSink::LoadXSLStyleSh
 void
 nsXMLFragmentContentSink::StartLayout()
 {
   NS_NOTREACHED("fragments shouldn't layout");
 }
 
 ////////////////////////////////////////////////////////////////////////
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsXMLFragmentContentSink::FinishFragmentParsing(nsIDOMDocumentFragment** aFragment)
 {
   *aFragment = nullptr;
   mTargetDocument = nullptr;
   mNodeInfoManager = nullptr;
   mScriptLoader = nullptr;
   mCSSLoader = nullptr;
   mContentStack.Clear();
--- a/dom/xml/nsXMLPrettyPrinter.cpp
+++ b/dom/xml/nsXMLPrettyPrinter.cpp
@@ -1,13 +1,13 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #include "nsXMLPrettyPrinter.h"
 #include "nsContentUtils.h"
 #include "nsICSSDeclaration.h"
 #include "nsIDOMDocumentXBL.h"
 #include "nsIObserver.h"
 #include "nsIXSLTProcessor.h"
 #include "nsSyncLoadService.h"
 #include "nsPIDOMWindow.h"
--- a/dom/xslt/base/txErrorObserver.h
+++ b/dom/xslt/base/txErrorObserver.h
@@ -29,13 +29,13 @@ public:
      *  Notifies this Error observer of a new error, with default
      *  error code NS_ERROR_FAILURE
     **/
     void receiveError(const nsAString& errorMessage)
     {
         receiveError(errorMessage, NS_ERROR_FAILURE);
     }
 
-        
+
 
 }; //-- ErrorObserver
 
 #endif
--- a/dom/xslt/base/txExpandedNameMap.h
+++ b/dom/xslt/base/txExpandedNameMap.h
@@ -83,26 +83,26 @@ protected:
                          "invalid position in txExpandedNameMap::iterator");
             return mMap.mItems[mCurrentPos].mValue;
         }
 
     private:
         txExpandedNameMap_base& mMap;
         uint32_t mCurrentPos;
     };
-    
+
     friend class iterator_base;
 
     friend class txMapItemComparator;
     struct MapItem {
         int32_t mNamespaceID;
         nsCOMPtr<nsIAtom> mLocalName;
         void* mValue;
     };
-    
+
     nsTArray<MapItem> mItems;
 };
 
 template<class E>
 class txExpandedNameMap : public txExpandedNameMap_base
 {
 public:
     nsresult add(const txExpandedName& aKey, E* aValue)
--- a/dom/xslt/base/txList.cpp
+++ b/dom/xslt/base/txList.cpp
@@ -89,17 +89,17 @@ nsresult txList::insertBefore(void* objP
         if (item->prevItem)
             item->prevItem->nextItem = item;
         else
             firstItem = item;
     }
 
     // increase the item count
     ++itemCount;
-    
+
     return NS_OK;
 } //-- insertBefore
 
 txList::ListItem* txList::remove(ListItem* item) {
 
     if (!item)
         return item;
 
@@ -219,17 +219,17 @@ void* txListIterator::next() {
 void* txListIterator::previous() {
 
     void* obj = 0;
 
     if (currentItem)
         currentItem = currentItem->prevItem;
     else if (atEndOfList)
         currentItem = list->lastItem;
-    
+
     if (currentItem)
         obj = currentItem->objPtr;
 
     atEndOfList = false;
 
     return obj;
 } //-- previous
 
--- a/dom/xslt/base/txList.h
+++ b/dom/xslt/base/txList.h
@@ -117,22 +117,22 @@ public:
      * Returns the next Object pointer from the list
     **/
     void* next();
 
     /**
      * Returns the previous Object pointer from the list
     **/
     void* previous();
-    
+
     /**
      * Returns the current Object
     **/
     void* current();
-    
+
     /**
      * Removes the Object last returned by the next() or previous() methods;
      * @return the removed Object pointer
     **/
     void* remove();
 
     /**
      * Resets the current location within the txList to the beginning of the txList
--- a/dom/xslt/base/txNamespaceMap.cpp
+++ b/dom/xslt/base/txNamespaceMap.cpp
@@ -50,17 +50,17 @@ txNamespaceMap::mapNamespace(nsIAtom* aP
 
         return NS_OK;
     }
 
     // New mapping
     if (!mPrefixes.AppendObject(prefix)) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
-    
+
     if (mNamespaces.AppendElement(nsId) == nullptr) {
         mPrefixes.RemoveObjectAt(mPrefixes.Count() - 1);
 
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     return NS_OK;
 }
--- a/dom/xslt/base/txOwningArray.h
+++ b/dom/xslt/base/txOwningArray.h
@@ -21,12 +21,12 @@ public:
     ~txOwningArray()
     {
         elem_type* iter = base_type::Elements();
         elem_type* end = iter + base_type::Length();
         for (; iter < end; ++iter) {
             delete *iter;
         }
     }
-  
+
 };
 
 #endif // txOwningArray_h__
--- a/dom/xslt/nsIDocumentTransformer.h
+++ b/dom/xslt/nsIDocumentTransformer.h
@@ -1,29 +1,29 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #ifndef nsIDocumentTransformer_h__
 #define nsIDocumentTransformer_h__
 
 #include "nsISupports.h"
 
 class nsIDocument;
 class nsIDOMNode;
 class nsIURI;
 class nsString;
 
 #define NS_ITRANSFORMOBSERVER_IID \
 { 0x04b2d17c, 0xe98d, 0x45f5, \
   { 0x9a, 0x67, 0xb7, 0x01, 0x19, 0x59, 0x7d, 0xe7 } }
 
 class nsITransformObserver : public nsISupports
 {
-public: 
+public:
 
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ITRANSFORMOBSERVER_IID)
 
   NS_IMETHOD OnDocumentCreated(nsIDocument *aResultDocument) = 0;
 
   NS_IMETHOD OnTransformDone(nsresult aResult,
                              nsIDocument *aResultDocument) = 0;
 
@@ -32,17 +32,17 @@ public:
 NS_DEFINE_STATIC_IID_ACCESSOR(nsITransformObserver, NS_ITRANSFORMOBSERVER_IID)
 
 #define NS_IDOCUMENTTRANSFORMER_IID \
 { 0xf45e1ff8, 0x50f3, 0x4496, \
  { 0xb3, 0xa2, 0x0e, 0x03, 0xe8, 0x4a, 0x57, 0x11 } }
 
 class nsIDocumentTransformer : public nsISupports
 {
-public: 
+public:
 
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOCUMENTTRANSFORMER_IID)
 
   NS_IMETHOD SetTransformObserver(nsITransformObserver* aObserver) = 0;
   NS_IMETHOD LoadStyleSheet(nsIURI* aUri, nsIDocument* aLoaderDocument) = 0;
   NS_IMETHOD SetSourceContentModel(nsIDOMNode* aSource) = 0;
   NS_IMETHOD CancelLoads() = 0;
 
--- a/dom/xslt/xml/txXMLUtils.h
+++ b/dom/xslt/xml/txXMLUtils.h
@@ -56,17 +56,17 @@ public:
     static bool isValidQName(const nsString& aQName, const char16_t** aColon);
 
     /**
      * Returns true if the given character represents an Alpha letter
      */
     static bool isLetter(char16_t aChar)
     {
         return !!MOZ_XMLIsLetter(reinterpret_cast<const char*>(&aChar));
-    }   
+    }
 
     /**
      * Returns true if the given character is an allowable NCName character
      */
     static bool isNCNameChar(char16_t aChar)
     {
         return !!MOZ_XMLIsNCNameChar(reinterpret_cast<const char*>(&aChar));
     }
--- a/dom/xslt/xpath/XPathResult.cpp
+++ b/dom/xslt/xpath/XPathResult.cpp
@@ -186,17 +186,17 @@ XPathResult::SetExprResult(txAExprResult
 
     mResultType = aResultType;
     mContextNode = do_GetWeakReference(aContextNode);
 
     if (mDocument) {
         mDocument->RemoveMutationObserver(this);
         mDocument = nullptr;
     }
- 
+
     mResultNodes.Clear();
 
     // XXX This will keep the recycler alive, should we clear it?
     mResult = aExprResult;
     switch (mResultType) {
         case BOOLEAN_TYPE:
         {
             mBooleanResult = mResult->booleanValue();
--- a/dom/xslt/xpath/txBooleanExpr.cpp
+++ b/dom/xslt/xpath/txBooleanExpr.cpp
@@ -22,21 +22,21 @@
 nsresult
 BooleanExpr::evaluate(txIEvalContext* aContext, txAExprResult** aResult)
 {
     *aResult = nullptr;
 
     bool lval;
     nsresult rv = leftExpr->evaluateToBool(aContext, lval);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     // check for early decision
     if (op == OR && lval) {
         aContext->recycler()->getBoolResult(true, aResult);
-        
+
         return NS_OK;
     }
     if (op == AND && !lval) {
         aContext->recycler()->getBoolResult(false, aResult);
 
         return NS_OK;
     }
 
--- a/dom/xslt/xpath/txCoreFunctionCall.cpp
+++ b/dom/xslt/xpath/txCoreFunctionCall.cpp
@@ -100,17 +100,17 @@ txCoreFunctionCall::evaluate(txIEvalCont
             rv = mParams[0]->evaluate(aContext, getter_AddRefs(exprResult));
             NS_ENSURE_SUCCESS(rv, rv);
 
             RefPtr<txNodeSet> resultSet;
             rv = aContext->recycler()->getNodeSet(getter_AddRefs(resultSet));
             NS_ENSURE_SUCCESS(rv, rv);
 
             txXPathTreeWalker walker(aContext->getContextNode());
-            
+
             if (exprResult->getResultType() == txAExprResult::NODESET) {
                 txNodeSet* nodes = static_cast<txNodeSet*>
                                               (static_cast<txAExprResult*>
                                                           (exprResult));
                 int32_t i;
                 for (i = 0; i < nodes->size(); ++i) {
                     nsAutoString idList;
                     txXPathNodeUtils::appendNodeValue(nodes->get(i), idList);
@@ -381,32 +381,32 @@ txCoreFunctionCall::evaluate(txIEvalCont
                 NS_ENSURE_SUCCESS(rv, rv);
 
                 end += start;
                 if (mozilla::IsNaN(end) || end < 0) {
                     aContext->recycler()->getEmptyStringResult(aResult);
 
                     return NS_OK;
                 }
-                
+
                 if (end > src.Length())
                     end = src.Length();
                 else
                     end = floor(end + 0.5);
             }
             else {
                 end = src.Length();
             }
 
             if (start < 0)
                 start = 0;
- 
+
             if (start > end) {
                 aContext->recycler()->getEmptyStringResult(aResult);
-                
+
                 return NS_OK;
             }
 
             return aContext->recycler()->getStringResult(
                   Substring(src, (uint32_t)start, (uint32_t)(end - start)),
                   aResult);
         }
         case SUBSTRING_AFTER:
@@ -421,17 +421,17 @@ txCoreFunctionCall::evaluate(txIEvalCont
 
             if (arg2.IsEmpty()) {
                 return aContext->recycler()->getStringResult(arg1, aResult);
             }
 
             int32_t idx = arg1.Find(arg2);
             if (idx == kNotFound) {
                 aContext->recycler()->getEmptyStringResult(aResult);
-                
+
                 return NS_OK;
             }
 
             const nsAString& result = Substring(arg1, idx + arg2.Length());
             return aContext->recycler()->getStringResult(result, aResult);
         }
         case SUBSTRING_BEFORE:
         {
@@ -447,17 +447,17 @@ txCoreFunctionCall::evaluate(txIEvalCont
 
             nsAutoString arg1;
             rv = mParams[0]->evaluateToString(aContext, arg1);
             NS_ENSURE_SUCCESS(rv, rv);
 
             int32_t idx = arg1.Find(arg2);
             if (idx == kNotFound) {
                 aContext->recycler()->getEmptyStringResult(aResult);
-                
+
                 return NS_OK;
             }
 
             return aContext->recycler()->getStringResult(StringHead(arg1, idx),
                                                          aResult);
         }
         case TRANSLATE:
         {
@@ -465,17 +465,17 @@ txCoreFunctionCall::evaluate(txIEvalCont
             rv = mParams[0]->evaluateToString(aContext, src);
             NS_ENSURE_SUCCESS(rv, rv);
 
             if (src.IsEmpty()) {
                 aContext->recycler()->getEmptyStringResult(aResult);
 
                 return NS_OK;
             }
-            
+
             RefPtr<StringResult> strRes;
             rv = aContext->recycler()->getStringResult(getter_AddRefs(strRes));
             NS_ENSURE_SUCCESS(rv, rv);
 
             strRes->mValue.SetCapacity(src.Length());
 
             nsAutoString oldChars, newChars;
             rv = mParams[1]->evaluateToString(aContext, oldChars);
@@ -496,17 +496,17 @@ txCoreFunctionCall::evaluate(txIEvalCont
                     strRes->mValue.Append(src.CharAt(i));
                 }
             }
 
             NS_ADDREF(*aResult = strRes);
 
             return NS_OK;
         }
-        
+
         // Number functions
 
         case NUMBER:
         {
             double res;
             if (!mParams.IsEmpty()) {
                 rv = evaluateToNumber(mParams[0], aContext, &res);
                 NS_ENSURE_SUCCESS(rv, rv);
@@ -573,19 +573,19 @@ txCoreFunctionCall::evaluate(txIEvalCont
             int32_t i;
             for (i = 0; i < nodes->size(); ++i) {
                 nsAutoString resultStr;
                 txXPathNodeUtils::appendNodeValue(nodes->get(i), resultStr);
                 res += txDouble::toDouble(resultStr);
             }
             return aContext->recycler()->getNumberResult(res, aResult);
         }
-        
+
         // Boolean functions
-        
+
         case BOOLEAN:
         {
             bool result;
             nsresult rv = mParams[0]->evaluateToBool(aContext, result);
             NS_ENSURE_SUCCESS(rv, rv);
 
             aContext->recycler()->getBoolResult(result, aResult);
 
--- a/dom/xslt/xpath/txExpr.h
+++ b/dom/xslt/xpath/txExpr.h
@@ -386,17 +386,17 @@ public:
     }
     virtual ~txNodeTest()
     {
         MOZ_COUNT_DTOR(txNodeTest);
     }
 
     /*
      * Virtual methods
-     * pretty much a txPattern, but not supposed to be used 
+     * pretty much a txPattern, but not supposed to be used
      * standalone. The NodeTest node() is different to the
      * Pattern "node()" (document node isn't matched)
      */
     virtual nsresult matches(const txXPathNode& aNode,
                              txIMatchContext* aContext,
                              bool& aMatched) = 0;
     virtual double getDefaultPriority() = 0;
 
--- a/dom/xslt/xpath/txExprLexer.cpp
+++ b/dom/xslt/xpath/txExprLexer.cpp
@@ -112,18 +112,18 @@ txExprLexer::parse(const nsAString& aPat
     defType = Token::CNAME;
     isToken = true;
 
     if (*mPosition == DOLLAR_SIGN) {
       if (++mPosition == end || !XMLUtils::isLetter(*mPosition)) {
         return NS_ERROR_XPATH_INVALID_VAR_NAME;
       }
       defType = Token::VAR_REFERENCE;
-    } 
-    // just reuse the QName parsing, which will use defType 
+    }
+    // just reuse the QName parsing, which will use defType
     // the token to construct
 
     if (XMLUtils::isLetter(*mPosition)) {
       // NCName, can get QName or OperatorName;
       //  FunctionName, NodeName, and AxisSpecifier may want whitespace,
       //  and are dealt with below
       start = mPosition;
       while (++mPosition < end && XMLUtils::isNCNameChar(*mPosition)) {
--- a/dom/xslt/xpath/txExprLexer.h
+++ b/dom/xslt/xpath/txExprLexer.h
@@ -8,17 +8,17 @@
 #define MITREXSL_EXPRLEXER_H
 
 #include "txCore.h"
 #include "nsString.h"
 
 /**
  * A Token class for the ExprLexer.
  *
- * This class was ported from XSL:P, an open source Java based 
+ * This class was ported from XSL:P, an open source Java based
  * XSLT processor, written by yours truly.
  */
 class Token
 {
 public:
 
     /**
      * Token types
--- a/dom/xslt/xpath/txExprParser.cpp
+++ b/dom/xslt/xpath/txExprParser.cpp
@@ -108,17 +108,17 @@ txExprParser::createAVT(const nsAString&
                 ++iter;
             }
 
             if (inExpr) {
                 aContext->SetErrorOffset(start - avtStart);
                 return NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE;
             }
         }
-        
+
         // Add expression, create a concat() call if necessary
         if (!expr) {
             expr = Move(newExpr);
         }
         else {
             if (!concat) {
                 concat = new txCoreFunctionCall(txCoreFunctionCall::CONCAT);
                 rv = concat->addParam(expr.forget());
@@ -288,17 +288,17 @@ txExprParser::createExpr(txExprLexer& le
         rv = createUnionExpr(lexer, aContext, getter_Transfers(expr));
         if (NS_FAILED(rv)) {
             break;
         }
 
         if (negations > 0) {
             if (negations % 2 == 0) {
                 FunctionCall* fcExpr = new txCoreFunctionCall(txCoreFunctionCall::NUMBER);
-                
+
                 rv = fcExpr->addParam(expr);
                 if (NS_FAILED(rv))
                     return rv;
                 expr.forget();
                 expr = fcExpr;
             }
             else {
                 expr = new UnaryExpr(expr.forget());
@@ -569,17 +569,17 @@ txExprParser::createLocationStep(txExprL
                              static_cast<uint16_t>(txXPathNodeType::ATTRIBUTE_NODE) :
                              static_cast<uint16_t>(txXPathNodeType::ELEMENT_NODE));
         }
         else {
             rv = createNodeTypeTest(lexer, getter_Transfers(nodeTest));
             NS_ENSURE_SUCCESS(rv, rv);
         }
     }
-    
+
     nsAutoPtr<LocationStep> lstep(new LocationStep(nodeTest, axisIdentifier));
 
     nodeTest.forget();
 
     //-- handle predicates
     rv = parsePredicates(lstep, lexer, aContext);
     NS_ENSURE_SUCCESS(rv, rv);
 
@@ -676,17 +676,17 @@ txExprParser::createPathExpr(txExprLexer
     }
     else {
         expr = new RootExpr();
 
 #ifdef TX_TO_STRING
         static_cast<RootExpr*>(expr.get())->setSerialize(false);
 #endif
     }
-    
+
     // We have a PathExpr containing several steps
     nsAutoPtr<PathExpr> pathExpr(new PathExpr());
 
     rv = pathExpr->addExpr(expr, PathExpr::RELATIVE_OP);
     NS_ENSURE_SUCCESS(rv, rv);
 
     expr.forget();
 
@@ -726,17 +726,17 @@ nsresult
 txExprParser::createUnionExpr(txExprLexer& lexer, txIParseContext* aContext,
                               Expr** aResult)
 {
     *aResult = nullptr;
 
     nsAutoPtr<Expr> expr;
     nsresult rv = createPathExpr(lexer, aContext, getter_Transfers(expr));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     if (lexer.peek()->mType != Token::UNION_OP) {
         *aResult = expr.forget();
         return NS_OK;
     }
 
     nsAutoPtr<UnionExpr> unionExpr(new UnionExpr());
 
     rv = unionExpr->addExpr(expr);
@@ -830,17 +830,17 @@ txExprParser::parseParameters(FunctionCa
     while (1) {
         rv = createExpr(lexer, aContext, getter_Transfers(expr));
         NS_ENSURE_SUCCESS(rv, rv);
 
         if (aFnCall) {
             rv = aFnCall->addParam(expr.forget());
             NS_ENSURE_SUCCESS(rv, rv);
         }
-                    
+
         switch (lexer.peek()->mType) {
             case Token::R_PAREN :
                 lexer.nextToken();
                 return NS_OK;
             case Token::COMMA: //-- param separator
                 lexer.nextToken();
                 break;
             default:
--- a/dom/xslt/xpath/txExprParser.h
+++ b/dom/xslt/xpath/txExprParser.h
@@ -70,19 +70,19 @@ protected:
     static nsresult createNodeTypeTest(txExprLexer& lexer,
                                        txNodeTest** aResult);
     static nsresult createPathExpr(txExprLexer& lexer,
                                    txIParseContext* aContext,
                                    Expr** aResult);
     static nsresult createUnionExpr(txExprLexer& lexer,
                                     txIParseContext* aContext,
                                     Expr** aResult);
-                  
+
     static bool isLocationStepToken(Token* aToken);
-                  
+
     static short precedence(Token* aToken);
 
     /**
      * Resolve a QName, given the mContext parse context.
      * Returns prefix and localName as well as namespace ID
      */
     static nsresult resolveQName(const nsAString& aQName, nsIAtom** aPrefix,
                                  txIParseContext* aContext,
--- a/dom/xslt/xpath/txExprResult.h
+++ b/dom/xslt/xpath/txExprResult.h
@@ -42,17 +42,17 @@ public:
     {
     }
 
     void AddRef()
     {
         ++mRefCnt;
         NS_LOG_ADDREF(this, mRefCnt, "txAExprResult", sizeof(*this));
     }
-    
+
     void Release(); // Implemented in txResultRecycler.cpp
 
     /**
      * Returns the type of ExprResult represented
      * @return the type of ExprResult represented
     **/
     virtual short getResultType()      = 0;
 
--- a/dom/xslt/xpath/txIXPathContext.h
+++ b/dom/xslt/xpath/txIXPathContext.h
@@ -14,17 +14,17 @@ class txAExprResult;
 class txResultRecycler;
 class txXPathNode;
 
 /*
  * txIParseContext
  *
  * This interface describes the context needed to create
  * XPath Expressions and XSLT Patters.
- * (not completely though. key() requires the ProcessorState, which is 
+ * (not completely though. key() requires the ProcessorState, which is
  * not part of this interface.)
  */
 
 class txIParseContext
 {
 public:
     virtual ~txIParseContext()
     {
@@ -73,17 +73,17 @@ public:
 class txIMatchContext
 {
 public:
     virtual ~txIMatchContext()
     {
     }
 
     /*
-     * Return the ExprResult associated with the variable with the 
+     * Return the ExprResult associated with the variable with the
      * given namespace and local name.
      */
     virtual nsresult getVariable(int32_t aNamespace, nsIAtom* aLName,
                                  txAExprResult*& aResult) = 0;
 
     /*
      * Is whitespace stripping allowed for the given node?
      * See http://www.w3.org/TR/xslt#strip
--- a/dom/xslt/xpath/txNameTest.cpp
+++ b/dom/xslt/xpath/txNameTest.cpp
@@ -39,17 +39,17 @@ txNameTest::matches(const txXPathNode& a
 
     // Totally wild?
     if (mLocalName == nsGkAtoms::_asterisk && !mPrefix) {
         aMatched = true;
         return NS_OK;
     }
 
     // Compare namespaces
-    if (mNamespace != txXPathNodeUtils::getNamespaceID(aNode) 
+    if (mNamespace != txXPathNodeUtils::getNamespaceID(aNode)
         && !(mNamespace == kNameSpaceID_None &&
              txXPathNodeUtils::isHTMLElementInHTMLDocument(aNode))
        ) {
         aMatched = false;
         return NS_OK;
     }
 
     // Name wild?
--- a/dom/xslt/xpath/txNodeSet.cpp
+++ b/dom/xslt/xpath/txNodeSet.cpp
@@ -147,45 +147,45 @@ nsresult txNodeSet::addAndTransfer(txNod
 }
 
 /**
  * add(aNodeSet, aTransferOp)
  *
  * The code is optimized to make a minimum number of calls to
  * Node::compareDocumentPosition. The idea is this:
  * We have the two nodesets (number indicate "document position")
- * 
+ *
  * 1 3 7             <- source 1
  * 2 3 6 8 9         <- source 2
  * _ _ _ _ _ _ _ _   <- result
- * 
- * 
+ *
+ *
  * When merging these nodesets into the result, the nodes are transfered
  * in chunks to the end of the buffer so that each chunk does not contain
  * a node from the other nodeset, in document order.
  *
  * We select the last non-transfered node in the first nodeset and find
  * where in the other nodeset it would be inserted. In this case we would
  * take the 7 from the first nodeset and find the position between the
  * 6 and 8 in the second. We then take the nodes after the insert-position
  * and transfer them to the end of the resulting nodeset. Which in this case
  * means that we first transfered the 8 and 9 nodes, giving us the following:
- * 
+ *
  * 1 3 7             <- source 1
  * 2 3 6             <- source 2
  * _ _ _ _ _ _ 8 9   <- result
  *
  * The corresponding procedure is done for the second nodeset, that is
  * the insertion position of the 6 in the first nodeset is found, which
  * is between the 3 and the 7. The 7 is memmoved (as it stays within
  * the same nodeset) to the result buffer.
  *
  * As the result buffer is filled from the end, it is safe to share the
  * buffer between this nodeset and the result.
- * 
+ *
  * This is repeated until both of the nodesets are empty.
  *
  * If we find a duplicate node when searching for where insertposition we
  * check for sequences of duplicate nodes, which can be optimized.
  *
  */
 nsresult txNodeSet::add(const txNodeSet& aNodes, transferOp aTransfer,
                         destroyOp aDestroy)
@@ -286,17 +286,17 @@ nsresult txNodeSet::add(const txNodeSet&
             insertPos -= count;
             LOG_CHUNK_MOVE(pos, insertPos, count);
             memmove(insertPos, pos, count * sizeof(txXPathNode));
             thisPos -= count;
         }
     }
     mStart = insertPos;
     mEnd = mEndBuffer;
-    
+
     return NS_OK;
 }
 
 /**
  * Append API
  * These functions should be used with care.
  * They are intended to be used when the caller assures that the resulting
  * nodeset remains in document order.
@@ -508,17 +508,17 @@ bool txNodeSet::ensureGrowSize(int32_t a
         txXPathNode* dest = mStartBuffer;
         if (mDirection == kReversed) {
             dest = mEndBuffer - oldSize;
         }
         LOG_CHUNK_MOVE(mStart, dest, oldSize);
         memmove(dest, mStart, oldSize * sizeof(txXPathNode));
         mStart = dest;
         mEnd = dest + oldSize;
-            
+
         return true;
     }
 
     // This isn't 100% safe. But until someone manages to make a 1gig nodeset
     // it should be ok.
     int32_t newLength = std::max(oldLength, kTxNodeSetMinSize);
 
     while (newLength < ensureSize) {
--- a/dom/xslt/xpath/txNodeSet.h
+++ b/dom/xslt/xpath/txNodeSet.h
@@ -179,17 +179,17 @@ private:
      * @param  aLast   Last item of the search range, excluded.
      * @param  aDupe   out-param. Will be set to true if the node already
      *                 exists in the NodeSet, false if it should be
      *                 inserted.
      * @return pointer where to insert the node. The node should be inserted
      *         before the given node. This value is always set, even if aNode
      *         already exists in the NodeSet
      */
-    txXPathNode* findPosition(const txXPathNode& aNode, 
+    txXPathNode* findPosition(const txXPathNode& aNode,
                               txXPathNode* aFirst,
                               txXPathNode* aLast, bool& aDupe) const;
 
     static void copyElements(txXPathNode* aDest, const txXPathNode* aStart,
                              const txXPathNode* aEnd);
     static void transferElements(txXPathNode* aDest, const txXPathNode* aStart,
                                  const txXPathNode* aEnd);
     static void destroyElements(const txXPathNode* aStart,
--- a/dom/xslt/xpath/txNodeSetAdaptor.h
+++ b/dom/xslt/xpath/txNodeSetAdaptor.h
@@ -10,17 +10,17 @@
 #include "txNodeSet.h"
 #include "txXPathObjectAdaptor.h"
 
 /**
  * Implements an XPCOM wrapper around an XPath NodeSet.
  */
 
 class txNodeSetAdaptor : public txXPathObjectAdaptor,
-                         public txINodeSet 
+                         public txINodeSet
 {
 public:
     txNodeSetAdaptor();
     explicit txNodeSetAdaptor(txNodeSet* aNodeSet);
 
     nsresult Init();
 
     NS_DECL_ISUPPORTS_INHERITED
--- a/dom/xslt/xpath/txPathExpr.cpp
+++ b/dom/xslt/xpath/txPathExpr.cpp
@@ -124,17 +124,17 @@ PathExpr::evaluate(txIEvalContext* aCont
         nodes = tmpNodes;
         if (nodes->isEmpty()) {
             break;
         }
     }
 
     *aResult = nodes;
     NS_ADDREF(*aResult);
-    
+
     return NS_OK;
 } //-- evaluate
 
 /**
  * Selects from the descendants of the context node
  * all nodes that match the Expr
 **/
 nsresult
@@ -233,17 +233,17 @@ PathExpr::isSensitiveTo(ContextSensitivi
 void
 PathExpr::toString(nsAString& dest)
 {
     if (!mItems.IsEmpty()) {
         NS_ASSERTION(mItems[0].pathOp == RELATIVE_OP,
                      "First step should be relative");
         mItems[0].expr->toString(dest);
     }
-    
+
     uint32_t i, len = mItems.Length();
     for (i = 1; i < len; ++i) {
         switch (mItems[i].pathOp) {
             case DESCENDANT_OP:
                 dest.AppendLiteral("//");
                 break;
             case RELATIVE_OP:
                 dest.Append(char16_t('/'));
--- a/dom/xslt/xpath/txRelationalExpr.cpp
+++ b/dom/xslt/xpath/txRelationalExpr.cpp
@@ -149,17 +149,17 @@ RelationalExpr::evaluate(txIEvalContext*
     *aResult = nullptr;
     RefPtr<txAExprResult> lResult;
     nsresult rv = mLeftExpr->evaluate(aContext, getter_AddRefs(lResult));
     NS_ENSURE_SUCCESS(rv, rv);
 
     RefPtr<txAExprResult> rResult;
     rv = mRightExpr->evaluate(aContext, getter_AddRefs(rResult));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     aContext->recycler()->
         getBoolResult(compareResults(aContext, lResult, rResult), aResult);
 
     return NS_OK;
 }
 
 TX_IMPL_EXPR_STUBS_2(RelationalExpr, BOOLEAN_RESULT, mLeftExpr, mRightExpr)
 
--- a/dom/xslt/xpath/txRootExpr.cpp
+++ b/dom/xslt/xpath/txRootExpr.cpp
@@ -15,17 +15,17 @@
  * for evaluation
  * @return the result of the evaluation
 **/
 nsresult
 RootExpr::evaluate(txIEvalContext* aContext, txAExprResult** aResult)
 {
     txXPathTreeWalker walker(aContext->getContextNode());
     walker.moveToRoot();
-    
+
     return aContext->recycler()->getNodeSet(walker.getCurrentPosition(),
                                             aResult);
 }
 
 TX_IMPL_EXPR_STUBS_0(RootExpr, NODESET_RESULT)
 
 bool
 RootExpr::isSensitiveTo(ContextSensitivity aContext)
--- a/dom/xslt/xpath/txXPathOptimizer.cpp
+++ b/dom/xslt/xpath/txXPathOptimizer.cpp
@@ -75,17 +75,17 @@ txXPathOptimizer::optimize(Expr* aInExpr
         RefPtr<txAExprResult> exprRes;
 
         // Don't throw if this fails since it could be that the expression
         // is or contains an error-expression.
         rv = aInExpr->evaluate(&context, getter_AddRefs(exprRes));
         if (NS_SUCCEEDED(rv)) {
             *aOutExpr = new txLiteralExpr(exprRes);
         }
-        
+
         return NS_OK;
     }
 
     // Then optimize sub expressions
     uint32_t i = 0;
     Expr* subExpr;
     while ((subExpr = aInExpr->getSubExprAt(i))) {
         Expr* newExpr = nullptr;
@@ -239,17 +239,17 @@ txXPathOptimizer::optimizeUnion(Expr* aI
                 subExpr->getSubExprAt(0)) {
                 continue;
             }
 
             LocationStep* step = static_cast<LocationStep*>(subExpr);
             if (step->getAxisIdentifier() != axis) {
                 continue;
             }
-            
+
             // Create a txUnionNodeTest if needed
             if (!unionTest) {
                 nsAutoPtr<txNodeTest> owner(unionTest = new txUnionNodeTest);
                 rv = unionTest->addNodeTest(currentStep->getNodeTest());
                 NS_ENSURE_SUCCESS(rv, rv);
 
                 currentStep->setNodeTest(unionTest);
                 owner.forget();
@@ -268,15 +268,15 @@ txXPathOptimizer::optimizeUnion(Expr* aI
 
         // Check if all expressions were merged into a single step. If so,
         // return the step as the new expression.
         if (unionTest && current == 0 && !uni->getSubExprAt(1)) {
             // Make sure the step doesn't get deleted when the UnionExpr is
             uni->setSubExprAt(0, nullptr);
             *aOutExpr = currentStep;
 
-            // Return right away since we no longer have a union            
+            // Return right away since we no longer have a union
             return NS_OK;
         }
     }
 
     return NS_OK;
 }
--- a/dom/xslt/xslt/txCurrentFunctionCall.cpp
+++ b/dom/xslt/xslt/txCurrentFunctionCall.cpp
@@ -8,17 +8,17 @@
 
 /*
   Implementation of XSLT 1.0 extension function: current
 */
 
 /**
  * Creates a new current function call
 **/
-CurrentFunctionCall::CurrentFunctionCall() 
+CurrentFunctionCall::CurrentFunctionCall()
 {
 }
 
 /*
  * Evaluates this Expr
  *
  * @return NodeSet containing the context node used for the complete
  * Expr or Pattern.
@@ -26,17 +26,17 @@ CurrentFunctionCall::CurrentFunctionCall
 nsresult
 CurrentFunctionCall::evaluate(txIEvalContext* aContext, txAExprResult** aResult)
 {
     *aResult = nullptr;
 
     if (!requireParams(0, 0, aContext))
         return NS_ERROR_XPATH_BAD_ARGUMENT_COUNT;
 
-    txExecutionState* es = 
+    txExecutionState* es =
         static_cast<txExecutionState*>(aContext->getPrivateContext());
     if (!es) {
         NS_ERROR(
             "called xslt extension function \"current\" with wrong context");
         return NS_ERROR_UNEXPECTED;
     }
     return aContext->recycler()->getNodeSet(
            es->getEvalContext()->getContextNode(), aResult);
--- a/dom/xslt/xslt/txDocumentFunctionCall.cpp
+++ b/dom/xslt/xslt/txDocumentFunctionCall.cpp
@@ -122,19 +122,19 @@ DocumentFunctionCall::evaluate(txIEvalCo
             if (!baseURISet) {
                 // if the second argument wasn't specified, use
                 // the baseUri of node itself
                 rv = txXPathNodeUtils::getBaseURI(node, baseURI);
                 NS_ENSURE_SUCCESS(rv, rv);
             }
             retrieveNode(es, uriStr, baseURI, nodeSet);
         }
-        
+
         NS_ADDREF(*aResult = nodeSet);
-        
+
         return NS_OK;
     }
 
     // The first argument is not a NodeSet
     nsAutoString uriStr;
     exprResult1->stringValue(uriStr);
     const nsAString* base = baseURISet ? &baseURI : &mBaseURI;
     retrieveNode(es, uriStr, *base, nodeSet);
--- a/dom/xslt/xslt/txEXSLTFunctions.cpp
+++ b/dom/xslt/xslt/txEXSLTFunctions.cpp
@@ -19,31 +19,31 @@
 #include "nsComponentManagerUtils.h"
 #include "nsContentCID.h"
 #include "nsContentCreatorFunctions.h"
 #include "nsIContent.h"
 #include "nsIDOMDocumentFragment.h"
 #include "txMozillaXMLOutput.h"
 #include "nsTextNode.h"
 #include "mozilla/dom/DocumentFragment.h"
-#include "prtime.h" 
+#include "prtime.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 class txStylesheetCompilerState;
 
 // ------------------------------------------------------------------
 // Utility functions
 // ------------------------------------------------------------------
 
 static nsresult
 convertRtfToNode(txIEvalContext *aContext, txResultTreeFragment *aRtf)
 {
-    txExecutionState* es = 
+    txExecutionState* es =
         static_cast<txExecutionState*>(aContext->getPrivateContext());
     if (!es) {
         NS_ERROR("Need txExecutionState!");
 
         return NS_ERROR_UNEXPECTED;
     }
 
     const txXPathNode& document = es->getSourceDocument();
@@ -70,17 +70,17 @@ convertRtfToNode(txIEvalContext *aContex
 
     return NS_OK;
 }
 
 static nsresult
 createTextNode(txIEvalContext *aContext, nsString& aValue,
                txXPathNode* *aResult)
 {
-    txExecutionState* es = 
+    txExecutionState* es =
         static_cast<txExecutionState*>(aContext->getPrivateContext());
     if (!es) {
         NS_ERROR("Need txExecutionState!");
 
         return NS_ERROR_UNEXPECTED;
     }
 
     const txXPathNode& document = es->getSourceDocument();
@@ -95,17 +95,17 @@ createTextNode(txIEvalContext *aContext,
     NS_ENSURE_TRUE(*aResult, NS_ERROR_OUT_OF_MEMORY);
 
     return NS_OK;
 }
 
 static already_AddRefed<DocumentFragment>
 createDocFragment(txIEvalContext *aContext)
 {
-    txExecutionState* es = 
+    txExecutionState* es =
         static_cast<txExecutionState*>(aContext->getPrivateContext());
     if (!es) {
         NS_ERROR("Need txExecutionState!");
 
         return nullptr;
     }
 
     const txXPathNode& document = es->getSourceDocument();
@@ -634,39 +634,39 @@ txEXSLTFunctionCall::evaluate(txIEvalCon
 
             NS_ADDREF(*aResult = resultSet);
 
             return NS_OK;
         }
         case DATE_TIME:
         {
             // http://exslt.org/date/functions/date-time/
-            
+
             PRExplodedTime prtime;
             PR_ExplodeTime(PR_Now(), PR_LocalTimeParameters, &prtime);
-            
+
             int32_t offset = (prtime.tm_params.tp_gmt_offset +
               prtime.tm_params.tp_dst_offset) / 60;
-              
+
             bool isneg = offset < 0;
             if (isneg) offset = -offset;
-            
+
             StringResult* strRes;
             rv = aContext->recycler()->getStringResult(&strRes);
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             // format: YYYY-MM-DDTTHH:MM:SS.sss+00:00
             CopyASCIItoUTF16(nsPrintfCString("%04hd-%02" PRId32 "-%02" PRId32
                                              "T%02" PRId32 ":%02" PRId32 ":%02" PRId32
                                              ".%03" PRId32 "%c%02" PRId32 ":%02" PRId32,
               prtime.tm_year, prtime.tm_month + 1, prtime.tm_mday,
               prtime.tm_hour, prtime.tm_min, prtime.tm_sec,
               prtime.tm_usec / 10000,
               isneg ? '-' : '+', offset / 60, offset % 60), strRes->mValue);
-              
+
             *aResult = strRes;
 
             return NS_OK;
         }
     }
 
     aContext->receiveError(NS_LITERAL_STRING("Internal error"),
                            NS_ERROR_UNEXPECTED);
--- a/dom/xslt/xslt/txExecutionState.cpp
+++ b/dom/xslt/xslt/txExecutionState.cpp
@@ -66,17 +66,17 @@ txExecutionState::~txExecutionState()
 {
     MOZ_COUNT_DTOR(txExecutionState);
 
     delete mResultHandler;
     delete mLocalVariables;
     if (mEvalContext != mInitialEvalContext) {
         delete mEvalContext;
     }
-    
+
     txStackIterator varsIter(&mLocalVarsStack);
     while (varsIter.hasNext()) {
         delete (txVariableMap*)varsIter.next();
     }
 
     txStackIterator contextIter(&mEvalContextStack);
     while (contextIter.hasNext()) {
         txIEvalContext* context = (txIEvalContext*)contextIter.next();
@@ -122,19 +122,19 @@ txExecutionState::init(const txXPathNode
 
     // Set up loaded-documents-hash
     rv = mLoadedDocuments.init(txXPathNodeUtils::getOwnerDocument(aNode));
     NS_ENSURE_SUCCESS(rv, rv);
 
     // Init members
     rv = mKeyHash.init();
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     mRecycler = new txResultRecycler;
-    
+
     // The actual value here doesn't really matter since noone should use this
     // value. But lets put something errorlike in just in case
     mGlobalVarPlaceholderValue = new StringResult(NS_LITERAL_STRING("Error"), nullptr);
 
     // Initiate first instruction. This has to be done last since findTemplate
     // might use us.
     txStylesheet::ImportFrame* frame = 0;
     txExpandedName nullName;
@@ -200,34 +200,34 @@ txExecutionState::getVariable(int32_t aN
     }
 
     // Is there perchance a global variable not evaluated yet?
     txStylesheet::GlobalVariable* var = mStylesheet->getGlobalVariable(name);
     if (!var) {
         // XXX ErrorReport: variable doesn't exist in this scope
         return NS_ERROR_FAILURE;
     }
-    
+
     NS_ASSERTION((var->mExpr && !var->mFirstInstruction) ||
                  (!var->mExpr && var->mFirstInstruction),
                  "global variable should have either instruction or expression");
 
     // Is this a stylesheet parameter that has a value?
     if (var->mIsParam && mGlobalParams) {
         txIGlobalParameter* param = mGlobalParams->get(name);
         if (param) {
             rv = param->getValue(&aResult);
             NS_ENSURE_SUCCESS(rv, rv);
 
             rv = mGlobalVariableValues.bindVariable(name, aResult);
             if (NS_FAILED(rv)) {
                 NS_RELEASE(aResult);
                 return rv;
             }
-            
+
             return NS_OK;
         }
     }
 
     // Insert a placeholdervalue to protect against recursion
     rv = mGlobalVariableValues.bindVariable(name, mGlobalVarPlaceholderValue);
     NS_ENSURE_SUCCESS(rv, rv);
 
@@ -319,28 +319,28 @@ txExecutionState::receiveError(const nsA
     // XXX implement me
 }
 
 nsresult
 txExecutionState::pushEvalContext(txIEvalContext* aContext)
 {
     nsresult rv = mEvalContextStack.push(mEvalContext);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     mEvalContext = aContext;
-    
+
     return NS_OK;
 }
 
 txIEvalContext*
 txExecutionState::popEvalContext()
 {
     txIEvalContext* prev = mEvalContext;
     mEvalContext = (txIEvalContext*)mEvalContextStack.pop();
-    
+
     return prev;
 }
 
 nsresult
 txExecutionState::pushBool(bool aBool)
 {
     return mBoolStack.AppendElement(aBool) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
@@ -358,17 +358,17 @@ txExecutionState::popBool()
     return res;
 }
 
 nsresult
 txExecutionState::pushResultHandler(txAXMLEventHandler* aHandler)
 {
     nsresult rv = mResultHandlerStack.push(mResultHandler);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     mResultHandler = aHandler;
 
     return NS_OK;
 }
 
 txAXMLEventHandler*
 txExecutionState::popResultHandler()
 {
@@ -461,35 +461,35 @@ txExecutionState::getCurrentTemplateRule
 
 txInstruction*
 txExecutionState::getNextInstruction()
 {
     txInstruction* instr = mNextInstruction;
     if (instr) {
         mNextInstruction = instr->mNext;
     }
-    
+
     return instr;
 }
 
 nsresult
 txExecutionState::runTemplate(txInstruction* aTemplate)
 {
     NS_ENSURE_TRUE(++mRecursionDepth < kMaxRecursionDepth,
                    NS_ERROR_XSLT_BAD_RECURSION);
 
     nsresult rv = mLocalVarsStack.push(mLocalVariables);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = mReturnStack.push(mNextInstruction);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     mLocalVariables = nullptr;
     mNextInstruction = aTemplate;
-    
+
     return NS_OK;
 }
 
 void
 txExecutionState::gotoInstruction(txInstruction* aNext)
 {
     mNextInstruction = aNext;
 }
@@ -524,17 +524,17 @@ txExecutionState::removeVariable(const t
 nsresult
 txExecutionState::pushParamMap(txVariableMap* aParams)
 {
     nsresult rv = mParamStack.push(mTemplateParams);
     NS_ENSURE_SUCCESS(rv, rv);
 
     mTemplateParams.forget();
     mTemplateParams = aParams;
-    
+
     return NS_OK;
 }
 
 txVariableMap*
 txExecutionState::popParamMap()
 {
     txVariableMap* oldParams = mTemplateParams.forget();
     mTemplateParams = (txVariableMap*)mParamStack.pop();
--- a/dom/xslt/xslt/txFormatNumberFunctionCall.cpp
+++ b/dom/xslt/xslt/txFormatNumberFunctionCall.cpp
@@ -303,17 +303,17 @@ txFormatNumberFunctionCall::evaluate(txI
     for (; i >= bufIntDigits; --i) {
         int digit;
         if (i >= buflen || i < 0) {
             digit = 0;
         }
         else {
             digit = buf[i] - '0';
         }
-        
+
         if (carry) {
             digit = (digit + 1) % 10;
             carry = digit == 0;
         }
 
         if (hasFraction || digit != 0 || i < bufIntDigits+minFractionSize) {
             hasFraction = true;
             res.SetCharAt((char16_t)(digit + format->mZeroDigit),
@@ -336,17 +336,17 @@ txFormatNumberFunctionCall::evaluate(txI
     for (i = 0; i < intDigits; ++i) {
         int digit;
         if (bufIntDigits-i-1 >= buflen || bufIntDigits-i-1 < 0) {
             digit = 0;
         }
         else {
             digit = buf[bufIntDigits-i-1] - '0';
         }
-        
+
         if (carry) {
             digit = (digit + 1) % 10;
             carry = digit == 0;
         }
 
         if (i != 0 && i%groupSize == 0) {
             res.SetCharAt(format->mGroupingSeparator, resPos--);
         }
--- a/dom/xslt/xslt/txGenerateIdFunctionCall.cpp
+++ b/dom/xslt/xslt/txGenerateIdFunctionCall.cpp
@@ -32,17 +32,17 @@ GenerateIdFunctionCall::GenerateIdFuncti
 nsresult
 GenerateIdFunctionCall::evaluate(txIEvalContext* aContext,
                                  txAExprResult** aResult)
 {
     *aResult = nullptr;
     if (!requireParams(0, 1, aContext))
         return NS_ERROR_XPATH_BAD_ARGUMENT_COUNT;
 
-    txExecutionState* es = 
+    txExecutionState* es =
         static_cast<txExecutionState*>(aContext->getPrivateContext());
     if (!es) {
         NS_ERROR(
             "called xslt extension function \"generate-id\" with wrong context");
         return NS_ERROR_UNEXPECTED;
     }
 
     nsresult rv = NS_OK;
@@ -51,40 +51,40 @@ GenerateIdFunctionCall::evaluate(txIEval
         rv = aContext->recycler()->getStringResult(&strRes);
         NS_ENSURE_SUCCESS(rv, rv);
 
         txXPathNodeUtils::getXSLTId(aContext->getContextNode(),
                                     es->getSourceDocument(),
                                     strRes->mValue);
 
         *aResult = strRes;
- 
+
         return NS_OK;
     }
 
     RefPtr<txNodeSet> nodes;
     rv = evaluateToNodeSet(mParams[0], aContext,
                            getter_AddRefs(nodes));
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (nodes->isEmpty()) {
         aContext->recycler()->getEmptyStringResult(aResult);
 
         return NS_OK;
     }
-    
+
     StringResult* strRes;
     rv = aContext->recycler()->getStringResult(&strRes);
     NS_ENSURE_SUCCESS(rv, rv);
 
     txXPathNodeUtils::getXSLTId(nodes->get(0), es->getSourceDocument(),
                                 strRes->mValue);
 
     *aResult = strRes;
- 
+
     return NS_OK;
 }
 
 Expr::ResultType
 GenerateIdFunctionCall::getReturnType()
 {
     return STRING_RESULT;
 }
--- a/dom/xslt/xslt/txInstructions.cpp
+++ b/dom/xslt/xslt/txInstructions.cpp
@@ -150,17 +150,17 @@ txCallTemplate::txCallTemplate(const txE
 nsresult
 txCallTemplate::execute(txExecutionState& aEs)
 {
     txInstruction* instr = aEs.mStylesheet->getNamedTemplate(mName);
     NS_ENSURE_TRUE(instr, NS_ERROR_XSLT_EXECUTION_FAILURE);
 
     nsresult rv = aEs.runTemplate(instr);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return NS_OK;
 }
 
 txCheckParam::txCheckParam(const txExpandedName& aName)
     : mName(aName), mBailTarget(nullptr)
 {
 }
 
@@ -173,17 +173,17 @@ txCheckParam::execute(txExecutionState& 
         aEs.mTemplateParams->getVariable(mName, getter_AddRefs(exprRes));
         if (exprRes) {
             rv = aEs.bindVariable(mName, exprRes);
             NS_ENSURE_SUCCESS(rv, rv);
 
             aEs.gotoInstruction(mBailTarget);
         }
     }
-    
+
     return NS_OK;
 }
 
 txConditionalGoto::txConditionalGoto(nsAutoPtr<Expr>&& aCondition,
                                      txInstruction* aTarget)
     : mCondition(Move(aCondition)), mTarget(aTarget)
 {
 }
@@ -303,17 +303,17 @@ txCopyBase::copyNode(const txXPathNode& 
         case txXPathNodeType::TEXT_NODE:
         case txXPathNodeType::CDATA_SECTION_NODE:
         {
             nsAutoString nodeValue;
             txXPathNodeUtils::appendNodeValue(aNode, nodeValue);
             return aEs.mResultHandler->characters(nodeValue, false);
         }
     }
-    
+
     return NS_OK;
 }
 
 txCopy::txCopy()
     : mBailTarget(nullptr)
 {
 }
 
@@ -405,17 +405,17 @@ txCopyOf::execute(txExecutionState& aEs)
             nsAutoString value;
             exprRes->stringValue(value);
             if (!value.IsEmpty()) {
                 return aEs.mResultHandler->characters(value, false);
             }
             break;
         }
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 txEndElement::execute(txExecutionState& aEs)
 {
     // This will return false if startElement was not called. This happens
     // when <xsl:element> produces a bad name, or when <xsl:copy> copies a
@@ -455,17 +455,17 @@ txInsertAttrSet::txInsertAttrSet(const t
 nsresult
 txInsertAttrSet::execute(txExecutionState& aEs)
 {
     txInstruction* instr = aEs.mStylesheet->getAttributeSet(mName);
     NS_ENSURE_TRUE(instr, NS_ERROR_XSLT_EXECUTION_FAILURE);
 
     nsresult rv = aEs.runTemplate(instr);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return NS_OK;
 }
 
 txLoopNodeSet::txLoopNodeSet(txInstruction* aTarget)
     : mTarget(aTarget)
 {
 }
 
@@ -478,17 +478,17 @@ txLoopNodeSet::execute(txExecutionState&
     if (!context->hasNext()) {
         delete aEs.popEvalContext();
 
         return NS_OK;
     }
 
     context->next();
     aEs.gotoInstruction(mTarget);
-    
+
     return NS_OK;
 }
 
 txLREAttribute::txLREAttribute(int32_t aNamespaceID, nsIAtom* aLocalName,
                                nsIAtom* aPrefix, nsAutoPtr<Expr>&& aValue)
     : mNamespaceID(aNamespaceID),
       mLocalName(aLocalName),
       mPrefix(aPrefix),
@@ -527,17 +527,17 @@ txMessage::txMessage(bool aTerminate)
 }
 
 nsresult
 txMessage::execute(txExecutionState& aEs)
 {
     nsAutoPtr<txTextHandler> handler(
         static_cast<txTextHandler*>(aEs.popResultHandler()));
 
-    nsCOMPtr<nsIConsoleService> consoleSvc = 
+    nsCOMPtr<nsIConsoleService> consoleSvc =
       do_GetService("@mozilla.org/consoleservice;1");
     if (consoleSvc) {
         nsAutoString logString(NS_LITERAL_STRING("xsl:message - "));
         logString.Append(handler->mValue);
         consoleSvc->LogStringMessage(logString.get());
     }
 
     return mTerminate ? NS_ERROR_XSLT_ABORTED : NS_OK;
@@ -561,17 +561,17 @@ nsresult
 txNumber::execute(txExecutionState& aEs)
 {
     nsAutoString res;
     nsresult rv =
         txXSLTNumber::createNumber(mValue, mCount, mFrom, mLevel, mGroupingSize,
                                    mGroupingSeparator, mFormat,
                                    aEs.getEvalContext(), res);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return aEs.mResultHandler->characters(res, false);
 }
 
 nsresult
 txPopParams::execute(txExecutionState& aEs)
 {
     delete aEs.popParamMap();
 
@@ -621,52 +621,52 @@ txPushNewContext::execute(txExecutionSta
     nsresult rv = mSelect->evaluate(aEs.getEvalContext(),
                                     getter_AddRefs(exprRes));
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (exprRes->getResultType() != txAExprResult::NODESET) {
         // XXX ErrorReport: nodeset expected
         return NS_ERROR_XSLT_NODESET_EXPECTED;
     }
-    
+
     txNodeSet* nodes = static_cast<txNodeSet*>
                                   (static_cast<txAExprResult*>
                                               (exprRes));
-    
+
     if (nodes->isEmpty()) {
         aEs.gotoInstruction(mBailTarget);
-        
+
         return NS_OK;
     }
 
     txNodeSorter sorter;
     uint32_t i, count = mSortKeys.Length();
     for (i = 0; i < count; ++i) {
         SortKey& sort = mSortKeys[i];
         rv = sorter.addSortElement(sort.mSelectExpr, sort.mLangExpr,
                                    sort.mDataTypeExpr, sort.mOrderExpr,
                                    sort.mCaseOrderExpr,
                                    aEs.getEvalContext());
         NS_ENSURE_SUCCESS(rv, rv);
     }
     RefPtr<txNodeSet> sortedNodes;
     rv = sorter.sortNodeSet(nodes, &aEs, getter_AddRefs(sortedNodes));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     txNodeSetContext* context = new txNodeSetContext(sortedNodes, &aEs);
     NS_ENSURE_TRUE(context, NS_ERROR_OUT_OF_MEMORY);
 
     context->next();
 
     rv = aEs.pushEvalContext(context);
     if (NS_FAILED(rv)) {
         delete context;
         return rv;
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 txPushNewContext::addSort(nsAutoPtr<Expr>&& aSelectExpr,
                           nsAutoPtr<Expr>&& aLangExpr,
                           nsAutoPtr<Expr>&& aDataTypeExpr,
                           nsAutoPtr<Expr>&& aOrderExpr,
@@ -732,17 +732,17 @@ txRemoveVariable::txRemoveVariable(const
     : mName(aName)
 {
 }
 
 nsresult
 txRemoveVariable::execute(txExecutionState& aEs)
 {
     aEs.removeVariable(mName);
-    
+
     return NS_OK;
 }
 
 nsresult
 txReturn::execute(txExecutionState& aEs)
 {
     NS_ASSERTION(!mNext, "instructions exist after txReturn");
     aEs.returnFromTemplate();
@@ -771,20 +771,20 @@ txSetParam::execute(txExecutionState& aE
         NS_ENSURE_SUCCESS(rv, rv);
     }
     else {
         nsAutoPtr<txRtfHandler> rtfHandler(
             static_cast<txRtfHandler*>(aEs.popResultHandler()));
         rv = rtfHandler->getAsRTF(getter_AddRefs(exprRes));
         NS_ENSURE_SUCCESS(rv, rv);
     }
-    
+
     rv = aEs.mTemplateParams->bindVariable(mName, exprRes);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return NS_OK;
 }
 
 txSetVariable::txSetVariable(const txExpandedName& aName,
                              nsAutoPtr<Expr>&& aValue)
     : mName(aName), mValue(Move(aValue))
 {
 }
@@ -799,17 +799,17 @@ txSetVariable::execute(txExecutionState&
         NS_ENSURE_SUCCESS(rv, rv);
     }
     else {
         nsAutoPtr<txRtfHandler> rtfHandler(
             static_cast<txRtfHandler*>(aEs.popResultHandler()));
         rv = rtfHandler->getAsRTF(getter_AddRefs(exprRes));
         NS_ENSURE_SUCCESS(rv, rv);
     }
-    
+
     return aEs.bindVariable(mName, exprRes);
 }
 
 txStartElement::txStartElement(nsAutoPtr<Expr>&& aName,
                                nsAutoPtr<Expr>&& aNamespace,
                                txNamespaceMap* aMappings)
     : mName(Move(aName)),
       mNamespace(Move(aNamespace)),
--- a/dom/xslt/xslt/txInstructions.h
+++ b/dom/xslt/xslt/txInstructions.h
@@ -54,17 +54,17 @@ public:
 };
 
 class txApplyTemplates : public txInstruction
 {
 public:
     explicit txApplyTemplates(const txExpandedName& aMode);
 
     TX_DECL_TXINSTRUCTION
-    
+
     txExpandedName mMode;
 };
 
 class txAttribute : public txInstruction
 {
 public:
     txAttribute(nsAutoPtr<Expr>&& aName, nsAutoPtr<Expr>&& aNamespace,
                 txNamespaceMap* aMappings);
@@ -98,17 +98,17 @@ public:
 };
 
 class txConditionalGoto : public txInstruction
 {
 public:
     txConditionalGoto(nsAutoPtr<Expr>&& aCondition, txInstruction* aTarget);
 
     TX_DECL_TXINSTRUCTION
-    
+
     nsAutoPtr<Expr> mCondition;
     txInstruction* mTarget;
 };
 
 class txComment : public txInstruction
 {
 public:
     TX_DECL_TXINSTRUCTION
@@ -121,27 +121,27 @@ protected:
 };
 
 class txCopy : public txCopyBase
 {
 public:
     txCopy();
 
     TX_DECL_TXINSTRUCTION
-    
+
     txInstruction* mBailTarget;
 };
 
 class txCopyOf : public txCopyBase
 {
 public:
     explicit txCopyOf(nsAutoPtr<Expr>&& aSelect);
 
     TX_DECL_TXINSTRUCTION
-    
+
     nsAutoPtr<Expr> mSelect;
 };
 
 class txEndElement : public txInstruction
 {
 public:
     TX_DECL_TXINSTRUCTION
 };
@@ -153,17 +153,17 @@ public:
 };
 
 class txGoTo : public txInstruction
 {
 public:
     explicit txGoTo(txInstruction* aTarget);
 
     TX_DECL_TXINSTRUCTION
-    
+
     txInstruction* mTarget;
 };
 
 class txInsertAttrSet : public txInstruction
 {
 public:
     explicit txInsertAttrSet(const txExpandedName& aName);
 
@@ -173,17 +173,17 @@ public:
 };
 
 class txLoopNodeSet : public txInstruction
 {
 public:
     explicit txLoopNodeSet(txInstruction* aTarget);
 
     TX_DECL_TXINSTRUCTION
-    
+
     txInstruction* mTarget;
 };
 
 class txLREAttribute : public txInstruction
 {
 public:
     txLREAttribute(int32_t aNamespaceID, nsIAtom* aLocalName,
                    nsIAtom* aPrefix, nsAutoPtr<Expr>&& aValue);
@@ -244,32 +244,32 @@ public:
 
 class txPushNewContext : public txInstruction
 {
 public:
     explicit txPushNewContext(nsAutoPtr<Expr>&& aSelect);
     ~txPushNewContext();
 
     TX_DECL_TXINSTRUCTION
-    
-    
+
+
     nsresult addSort(nsAutoPtr<Expr>&& aSelectExpr,
                      nsAutoPtr<Expr>&& aLangExpr,
                      nsAutoPtr<Expr>&& aDataTypeExpr,
                      nsAutoPtr<Expr>&& aOrderExpr,
                      nsAutoPtr<Expr>&& aCaseOrderExpr);
 
     struct SortKey {
         nsAutoPtr<Expr> mSelectExpr;
         nsAutoPtr<Expr> mLangExpr;
         nsAutoPtr<Expr> mDataTypeExpr;
         nsAutoPtr<Expr> mOrderExpr;
         nsAutoPtr<Expr> mCaseOrderExpr;
     };
-    
+
     nsTArray<SortKey> mSortKeys;
     nsAutoPtr<Expr> mSelect;
     txInstruction* mBailTarget;
 };
 
 class txPushNullTemplateRule : public txInstruction
 {
 public:
--- a/dom/xslt/xslt/txKey.h
+++ b/dom/xslt/xslt/txKey.h
@@ -49,17 +49,17 @@ public:
 
     bool KeyEquals(KeyTypePointer aKey) const;
 
     static KeyTypePointer KeyToPointer(KeyType aKey) { return &aKey; }
 
     static PLDHashNumber HashKey(KeyTypePointer aKey);
 
     enum { ALLOW_MEMMOVE = true };
-    
+
     txKeyValueHashKey mKey;
     RefPtr<txNodeSet> mNodeSet;
 };
 
 typedef nsTHashtable<txKeyValueHashEntry> txKeyValueHash;
 
 class txIndexedKeyHashKey
 {
@@ -103,22 +103,22 @@ public:
 
 typedef nsTHashtable<txIndexedKeyHashEntry> txIndexedKeyHash;
 
 /**
  * Class holding all <xsl:key>s of a particular expanded name in the
  * stylesheet.
  */
 class txXSLKey {
-    
+
 public:
     explicit txXSLKey(const txExpandedName& aName) : mName(aName)
     {
     }
-    
+
     /**
      * Adds a match/use pair.
      * @param aMatch  match-pattern
      * @param aUse    use-expression
      * @return false if an error occurred, true otherwise
      */
     bool addKey(nsAutoPtr<txPattern>&& aMatch, nsAutoPtr<Expr>&& aUse);
 
@@ -162,51 +162,51 @@ private:
         nsAutoPtr<txPattern> matchPattern;
         nsAutoPtr<Expr> useExpr;
     };
 
     /**
      * List of all match/use pairs. The items as |Key|s
      */
     nsTArray<Key> mKeys;
-    
+
     /**
      * Name of this key
      */
     txExpandedName mName;
 };
 
 
 class txKeyHash
 {
 public:
     explicit txKeyHash(const txOwningExpandedNameMap<txXSLKey>& aKeys)
         : mKeyValues(4)
         , mIndexedKeys(1)
         , mKeys(aKeys)
     {
     }
-    
+
     nsresult init();
 
     nsresult getKeyNodes(const txExpandedName& aKeyName,
                          const txXPathNode& aRoot,
                          const nsAString& aKeyValue,
                          bool aIndexIfNotFound,
                          txExecutionState& aEs,
                          txNodeSet** aResult);
 
 private:
     // Hash of all indexed key-values
     txKeyValueHash mKeyValues;
 
     // Hash showing which keys+roots has been indexed
     txIndexedKeyHash mIndexedKeys;
-    
+
     // Map of txXSLKeys
     const txOwningExpandedNameMap<txXSLKey>& mKeys;
-    
+
     // Empty nodeset returned if no key is found
     RefPtr<txNodeSet> mEmptyNodeSet;
 };
 
 
 #endif //txKey_h__
--- a/dom/xslt/xslt/txKeyFunctionCall.cpp
+++ b/dom/xslt/xslt/txKeyFunctionCall.cpp
@@ -215,17 +215,17 @@ txKeyHash::getKeyNodes(const txExpandedN
     txXSLKey* xslKey = mKeys.get(aKeyName);
     if (!xslKey) {
         // The key didn't exist, so bail.
         return NS_ERROR_INVALID_ARG;
     }
 
     nsresult rv = xslKey->indexSubtreeRoot(aRoot, mKeyValues, aEs);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     indexEntry->mIndexed = true;
 
     // Now that the key is indexed we can get its value.
     valueEntry = mKeyValues.GetEntry(valueKey);
     if (valueEntry) {
         *aResult = valueEntry->mNodeSet;
         NS_ADDREF(*aResult);
     }
@@ -389,11 +389,11 @@ nsresult txXSLKey::testNode(const txXPat
                 if (entry->mNodeSet->isEmpty() ||
                     entry->mNodeSet->get(entry->mNodeSet->size() - 1) !=
                     aNode) {
                     entry->mNodeSet->append(aNode);
                 }
             }
         }
     }
-    
+
     return NS_OK;
 }
--- a/dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
+++ b/dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
@@ -128,17 +128,17 @@ txStylesheetSink::HandleStartElement(con
 
     nsresult rv =
         mCompiler->startElement(aName, aAtts, aAttsCount / 2);
     if (NS_FAILED(rv)) {
         mCompiler->cancel(rv);
 
         return rv;
     }
-    
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 txStylesheetSink::HandleEndElement(const char16_t *aName)
 {
     nsresult rv = mCompiler->endElement();
     if (NS_FAILED(rv)) {
@@ -212,19 +212,19 @@ txStylesheetSink::ReportError(const char
     // The expat driver should report the error.
     *_retval = true;
 
     mCompiler->cancel(NS_ERROR_FAILURE, aErrorText, aSourceText);
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 txStylesheetSink::DidBuildModel(bool aTerminated)
-{  
+{
     return mCompiler->doneLoading();
 }
 
 NS_IMETHODIMP
 txStylesheetSink::OnDataAvailable(nsIRequest *aRequest, nsISupports *aContext,
                                   nsIInputStream *aInputStream,
                                   uint64_t aOffset, uint32_t aCount)
 {
@@ -517,17 +517,17 @@ TX_LoadSheet(nsIURI* aUri, txMozillaXSLT
 /**
  * handling DOM->txStylesheet
  * Observer needs to do synchronous loads.
  */
 static nsresult
 handleNode(nsINode* aNode, txStylesheetCompiler* aCompiler)
 {
     nsresult rv = NS_OK;
-    
+
     if (aNode->IsElement()) {
         dom::Element* element = aNode->AsElement();
 
         uint32_t attsCount = element->GetAttrCount();
         UniquePtr<txStylesheetAttr[]> atts;
         if (attsCount > 0) {
             atts = MakeUnique<txStylesheetAttr[]>(attsCount);
             uint32_t counter;
@@ -550,17 +550,17 @@ handleNode(nsINode* aNode, txStylesheetC
         NS_ENSURE_SUCCESS(rv, rv);
 
         // explicitly destroy the attrs here since we no longer need it
         atts = nullptr;
 
         for (nsIContent* child = element->GetFirstChild();
              child;
              child = child->GetNextSibling()) {
-             
+
             rv = handleNode(child, aCompiler);
             NS_ENSURE_SUCCESS(rv, rv);
         }
 
         rv = aCompiler->endElement();
         NS_ENSURE_SUCCESS(rv, rv);
     }
     else if (aNode->IsNodeOfType(nsINode::eTEXT)) {
@@ -568,17 +568,17 @@ handleNode(nsINode* aNode, txStylesheetC
         static_cast<nsIContent*>(aNode)->AppendTextTo(chars);
         rv = aCompiler->characters(chars);
         NS_ENSURE_SUCCESS(rv, rv);
     }
     else if (aNode->IsNodeOfType(nsINode::eDOCUMENT)) {
         for (nsIContent* child = aNode->GetFirstChild();
              child;
              child = child->GetNextSibling()) {
-             
+
             rv = handleNode(child, aCompiler);
             NS_ENSURE_SUCCESS(rv, rv);
         }
     }
 
     return NS_OK;
 }
 
@@ -670,22 +670,22 @@ TX_CompileStylesheet(nsINode* aNode, txM
 {
     // If we move GetBaseURI to nsINode this can be simplified.
     nsCOMPtr<nsIDocument> doc = aNode->OwnerDoc();
 
     nsCOMPtr<nsIURI> uri;
     if (aNode->IsNodeOfType(nsINode::eCONTENT)) {
       uri = static_cast<nsIContent*>(aNode)->GetBaseURI();
     }
-    else { 
+    else {
       NS_ASSERTION(aNode->IsNodeOfType(nsINode::eDOCUMENT), "not a doc");
       uri = static_cast<nsIDocument*>(aNode)->GetBaseURI();
     }
     NS_ENSURE_TRUE(uri, NS_ERROR_FAILURE);
-    
+
     nsAutoCString spec;
     uri->GetSpec(spec);
     NS_ConvertUTF8toUTF16 baseURI(spec);
 
     nsIURI* docUri = doc->GetDocumentURI();
     NS_ENSURE_TRUE(docUri, NS_ERROR_FAILURE);
 
     // We need to remove the ref, a URI with a ref would mean that we have an
@@ -709,14 +709,14 @@ TX_CompileStylesheet(nsINode* aNode, txM
     nsresult rv = handleNode(aNode, compiler);
     if (NS_FAILED(rv)) {
         compiler->cancel(rv);
         return rv;
     }
 
     rv = compiler->doneLoading();
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     *aStylesheet = compiler->getStylesheet();
     NS_ADDREF(*aStylesheet);
 
     return NS_OK;
 }
--- a/dom/xslt/xslt/txMozillaTextOutput.cpp
+++ b/dom/xslt/xslt/txMozillaTextOutput.cpp
@@ -71,17 +71,17 @@ txMozillaTextOutput::comment(const nsStr
 }
 
 nsresult
 txMozillaTextOutput::endDocument(nsresult aResult)
 {
     NS_ENSURE_TRUE(mDocument && mTextParent, NS_ERROR_FAILURE);
 
     RefPtr<nsTextNode> text = new nsTextNode(mDocument->NodeInfoManager());
-    
+
     text->SetText(mText, false);
     nsresult rv = mTextParent->AppendChildTo(text, true);
     NS_ENSURE_SUCCESS(rv, rv);
 
     // This should really be handled by nsIDocument::EndLoad
     MOZ_ASSERT(mDocument->GetReadyStateEnum() ==
                nsIDocument::READYSTATE_LOADING, "Bad readyState");
     mDocument->SetReadyStateInternal(nsIDocument::READYSTATE_INTERACTIVE);
--- a/dom/xslt/xslt/txMozillaXMLOutput.cpp
+++ b/dom/xslt/xslt/txMozillaXMLOutput.cpp
@@ -207,26 +207,26 @@ nsresult
 txMozillaXMLOutput::endDocument(nsresult aResult)
 {
     TX_ENSURE_CURRENTNODE;
 
     if (NS_FAILED(aResult)) {
         if (mNotifier) {
             mNotifier->OnTransformEnd(aResult);
         }
-        
+
         return NS_OK;
     }
 
     nsresult rv = closePrevious(true);
     if (NS_FAILED(rv)) {
         if (mNotifier) {
             mNotifier->OnTransformEnd(rv);
         }
-        
+
         return rv;
     }
 
     if (mCreatingNewDocument) {
         // This should really be handled by nsIDocument::EndLoad
         MOZ_ASSERT(mDocument->GetReadyStateEnum() ==
                    nsIDocument::READYSTATE_LOADING, "Bad readyState");
         mDocument->SetReadyStateInternal(nsIDocument::READYSTATE_INTERACTIVE);
@@ -262,17 +262,17 @@ txMozillaXMLOutput::endElement()
     TX_ENSURE_CURRENTNODE;
 
     if (mBadChildLevel) {
         --mBadChildLevel;
         MOZ_LOG(txLog::xslt, LogLevel::Debug,
                ("endElement, mBadChildLevel = %d\n", mBadChildLevel));
         return NS_OK;
     }
-    
+
     --mTreeDepth;
 
     nsresult rv = closePrevious(true);
     NS_ENSURE_SUCCESS(rv, rv);
 
     NS_ASSERTION(mCurrentNode->IsElement(), "borked mCurrentNode");
     NS_ENSURE_TRUE(mCurrentNode->IsElement(), NS_ERROR_UNEXPECTED);
 
@@ -308,17 +308,17 @@ txMozillaXMLOutput::endElement()
               MOZ_ASSERT(nsNameSpaceManager::GetInstance()->mSVGDisabled, "Script elements need to implement nsIScriptElement and SVG wasn't disabled.");
             }
         } else if (element->IsAnyOfHTMLElements(nsGkAtoms::input,
                                                 nsGkAtoms::button,
                                                 nsGkAtoms::menuitem,
                                                 nsGkAtoms::audio,
                                                 nsGkAtoms::video)) {
           element->DoneCreatingElement();
-        }   
+        }
     }
 
     if (mCreatingNewDocument) {
         // Handle all sorts of stylesheets
         nsCOMPtr<nsIStyleSheetLinkingElement> ssle =
             do_QueryInterface(mCurrentNode);
         if (ssle) {
             ssle->SetEnableUpdates(true);
@@ -439,18 +439,18 @@ txMozillaXMLOutput::startElement(nsIAtom
     if (mOutputFormat.mMethod == eHTMLOutput && aNsID == kNameSpaceID_None) {
         nsCOMPtr<nsIAtom> owner;
         if (!aLowercaseLocalName) {
             owner = TX_ToLowerCaseAtom(aLocalName);
             NS_ENSURE_TRUE(owner, NS_ERROR_OUT_OF_MEMORY);
 
             aLowercaseLocalName = owner;
         }
-        return startElementInternal(nullptr, 
-                                    aLowercaseLocalName, 
+        return startElementInternal(nullptr,
+                                    aLowercaseLocalName,
                                     kNameSpaceID_XHTML);
     }
 
     return startElementInternal(aPrefix, aLocalName, aNsID);
 }
 
 nsresult
 txMozillaXMLOutput::startElement(nsIAtom* aPrefix,
@@ -564,17 +564,17 @@ txMozillaXMLOutput::closePrevious(bool a
 
     nsresult rv;
     if (mOpenedElement) {
         bool currentIsDoc = mCurrentNode == mDocument;
         if (currentIsDoc && mRootContentCreated) {
             // We already have a document element, but the XSLT spec allows this.
             // As a workaround, create a wrapper object and use that as the
             // document element.
-            
+
             rv = createTxWrapper();
             NS_ENSURE_SUCCESS(rv, rv);
         }
 
         rv = mCurrentNode->AppendChildTo(mOpenedElement, true);
         NS_ENSURE_SUCCESS(rv, rv);
 
         if (currentIsDoc) {
@@ -585,17 +585,17 @@ txMozillaXMLOutput::closePrevious(bool a
         mCurrentNode = mOpenedElement;
         mOpenedElement = nullptr;
     }
     else if (aFlushText && !mText.IsEmpty()) {
         // Text can't appear in the root of a document
         if (mDocument == mCurrentNode) {
             if (XMLUtils::isWhitespace(mText)) {
                 mText.Truncate();
-                
+
                 return NS_OK;
             }
 
             rv = createTxWrapper();
             NS_ENSURE_SUCCESS(rv, rv);
         }
         RefPtr<nsTextNode> text = new nsTextNode(mNodeInfoManager);
 
@@ -759,17 +759,17 @@ txMozillaXMLOutput::endHTMLElement(nsICo
             aElement->GetAttr(kNameSpaceID_None, nsGkAtoms::content, value);
             if (!value.IsEmpty()) {
                 nsContentUtils::ASCIIToLower(httpEquiv);
                 nsCOMPtr<nsIAtom> header = NS_Atomize(httpEquiv);
                 processHTTPEquiv(header, value);
             }
         }
     }
-    
+
     return NS_OK;
 }
 
 void txMozillaXMLOutput::processHTTPEquiv(nsIAtom* aHeader, const nsString& aValue)
 {
     // For now we only handle "refresh". There's a longer list in
     // HTMLContentSink::ProcessHeaderData
     if (aHeader == nsGkAtoms::refresh)
@@ -937,73 +937,73 @@ txMozillaXMLOutput::createHTMLElement(ns
                           mCreatingNewDocument ?
                             FROM_PARSER_XSLT : FROM_PARSER_FRAGMENT);
     el.forget(aResult);
     return rv;
 }
 
 txTransformNotifier::txTransformNotifier()
     : mPendingStylesheetCount(0),
-      mInTransform(false)      
+      mInTransform(false)
 {
 }
 
 txTransformNotifier::~txTransformNotifier()
 {
 }
 
 NS_IMPL_ISUPPORTS(txTransformNotifier,
                   nsIScriptLoaderObserver,
                   nsICSSLoaderObserver)
 
 NS_IMETHODIMP
-txTransformNotifier::ScriptAvailable(nsresult aResult, 
-                                     nsIScriptElement *aElement, 
+txTransformNotifier::ScriptAvailable(nsresult aResult,
+                                     nsIScriptElement *aElement,
                                      bool aIsInline,
-                                     nsIURI *aURI, 
+                                     nsIURI *aURI,
                                      int32_t aLineNo)
 {
     if (NS_FAILED(aResult) &&
         mScriptElements.RemoveObject(aElement)) {
         SignalTransformEnd();
     }
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
-txTransformNotifier::ScriptEvaluated(nsresult aResult, 
+NS_IMETHODIMP
+txTransformNotifier::ScriptEvaluated(nsresult aResult,
                                      nsIScriptElement *aElement,
                                      bool aIsInline)
 {
     if (mScriptElements.RemoveObject(aElement)) {
         SignalTransformEnd();
     }
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 txTransformNotifier::StyleSheetLoaded(StyleSheet* aSheet,
                                       bool aWasAlternate,
                                       nsresult aStatus)
 {
     if (mPendingStylesheetCount == 0) {
         // We weren't waiting on this stylesheet anyway.  This can happen if
         // SignalTransformEnd got called with an error aResult.  See
         // http://bugzilla.mozilla.org/show_bug.cgi?id=215465.
         return NS_OK;
     }
 
     // We're never waiting for alternate stylesheets
     if (!aWasAlternate) {
         --mPendingStylesheetCount;
         SignalTransformEnd();
     }
-    
+
     return NS_OK;
 }
 
 void
 txTransformNotifier::Init(nsITransformObserver* aObserver)
 {
     mObserver = aObserver;
 }
--- a/dom/xslt/xslt/txMozillaXMLOutput.h
+++ b/dom/xslt/xslt/txMozillaXMLOutput.h
@@ -28,17 +28,17 @@ class nsINode;
 class txTransformNotifier final : public nsIScriptLoaderObserver,
                                   public nsICSSLoaderObserver
 {
 public:
     txTransformNotifier();
 
     NS_DECL_ISUPPORTS
     NS_DECL_NSISCRIPTLOADEROBSERVER
-    
+
     // nsICSSLoaderObserver
     NS_IMETHOD StyleSheetLoaded(mozilla::StyleSheet* aSheet,
                                 bool aWasAlternate,
                                 nsresult aStatus) override;
 
     void Init(nsITransformObserver* aObserver);
     nsresult AddScriptElement(nsIScriptElement* aElement);
     void AddPendingStylesheet();
--- a/dom/xslt/xslt/txNodeSorter.cpp
+++ b/dom/xslt/xslt/txNodeSorter.cpp
@@ -68,25 +68,25 @@ txNodeSorter::addSortElement(Expr* aSele
     nsAutoString dataType;
     if (aDataTypeExpr) {
         rv = aDataTypeExpr->evaluateToString(aContext, dataType);
         NS_ENSURE_SUCCESS(rv, rv);
     }
 
     if (!aDataTypeExpr || TX_StringEqualsAtom(dataType, nsGkAtoms::text)) {
         // Text comparator
-        
+
         // Language
         nsAutoString lang;
         if (aLangExpr) {
             rv = aLangExpr->evaluateToString(aContext, lang);
             NS_ENSURE_SUCCESS(rv, rv);
         }
 
-        // Case-order 
+        // Case-order
         bool upperFirst = false;
         if (aCaseOrderExpr) {
             nsAutoString attrValue;
 
             rv = aCaseOrderExpr->evaluateToString(aContext, attrValue);
             NS_ENSURE_SUCCESS(rv, rv);
 
             if (TX_StringEqualsAtom(attrValue, nsGkAtoms::upperFirst)) {
@@ -107,17 +107,17 @@ txNodeSorter::addSortElement(Expr* aSele
         // Number comparator
         key->mComparator = new txResultNumberComparator(ascending);
     }
     else {
         // XXX ErrorReport: unknown data-type
         return NS_ERROR_XSLT_BAD_VALUE;
     }
 
-    // mSortKeys owns key now. 
+    // mSortKeys owns key now.
     rv = mSortKeys.add(key);
     NS_ENSURE_SUCCESS(rv, rv);
 
     key.forget();
     mNKeys++;
 
     return NS_OK;
 }
--- a/dom/xslt/xslt/txPatternParser.cpp
+++ b/dom/xslt/xslt/txPatternParser.cpp
@@ -115,17 +115,17 @@ nsresult txPatternParser::createLocPathP
         case Token::ANCESTOR_OP:
             isChild = false;
             isAbsolute = true;
             aLexer.nextToken();
             break;
         case Token::PARENT_OP:
             aLexer.nextToken();
             isAbsolute = true;
-            if (aLexer.peek()->mType == Token::END || 
+            if (aLexer.peek()->mType == Token::END ||
                 aLexer.peek()->mType == Token::UNION_OP) {
                 aPattern = new txRootPattern();
                 return NS_OK;
             }
             break;
         case Token::FUNCTION_NAME_AND_PAREN:
             // id(Literal) or key(Literal, Literal)
             {
@@ -220,17 +220,17 @@ nsresult txPatternParser::createKeyPatte
                                            txIParseContext* aContext,
                                            txPattern*& aPattern)
 {
     // check for '(' Literal, Literal ')'
     if (aLexer.peek()->mType != Token::LITERAL)
         return NS_ERROR_XPATH_PARSE_FAILURE;
     const nsDependentSubstring& key =
         aLexer.nextToken()->Value();
-    if (aLexer.nextToken()->mType != Token::COMMA && 
+    if (aLexer.nextToken()->mType != Token::COMMA &&
         aLexer.peek()->mType != Token::LITERAL)
         return NS_ERROR_XPATH_PARSE_FAILURE;
     const nsDependentSubstring& value =
         aLexer.nextToken()->Value();
     if (aLexer.nextToken()->mType != Token::R_PAREN)
         return NS_ERROR_XPATH_PARSE_FAILURE;
 
     if (!aContext->allowed(txIParseContext::KEY_FUNCTION))
--- a/dom/xslt/xslt/txStylesheet.cpp
+++ b/dom/xslt/xslt/txStylesheet.cpp
@@ -23,17 +23,17 @@ txStylesheet::txStylesheet()
     : mRootFrame(nullptr)
 {
 }
 
 nsresult
 txStylesheet::init()
 {
     mRootFrame = new ImportFrame;
-    
+
     // Create default templates
     // element/root template
     mContainerTemplate = new txPushParams;
 
     nsAutoPtr<txNodeTest> nt(new txNodeTypeTest(txNodeTypeTest::NODE_TYPE));
     nsAutoPtr<Expr> nodeExpr(new LocationStep(nt, LocationStep::CHILD_AXIS));
     nt.forget();
 
@@ -74,17 +74,17 @@ txStylesheet::~txStylesheet()
     while (frameIter.hasNext()) {
         delete static_cast<ImportFrame*>(frameIter.next());
     }
 
     txListIterator instrIter(&mTemplateInstructions);
     while (instrIter.hasNext()) {
         delete static_cast<txInstruction*>(instrIter.next());
     }
-    
+
     // We can't make the map own its values because then we wouldn't be able
     // to merge attributesets of the same name
     txExpandedNameMap<txInstruction>::iterator attrSetIter(mAttributeSets);
     while (attrSetIter.next()) {
         delete attrSetIter.value();
     }
 }
 
@@ -158,17 +158,17 @@ txStylesheet::findTemplate(const txXPath
           MOZ_LOG(txLog::xslt, LogLevel::Debug,
                  ("MatchTemplate, Pattern %s, Mode %s, Node %s\n",
                   NS_LossyConvertUTF16toASCII(matchAttr).get(),
                   NS_LossyConvertUTF16toASCII(mode).get(),
                   NS_LossyConvertUTF16toASCII(nodeName).get()));
       }
       else {
           MOZ_LOG(txLog::xslt, LogLevel::Debug,
-                 ("No match, Node %s, Mode %s\n", 
+                 ("No match, Node %s, Mode %s\n",
                   NS_LossyConvertUTF16toASCII(nodeName).get(),
                   NS_LossyConvertUTF16toASCII(mode).get()));
       }
     }
 
     if (!*aTemplate) {
         // Test for these first since a node can be both a text node
         // and a root (if it is orphaned)
@@ -276,17 +276,17 @@ txStylesheet::isStripSpaceAllowed(const 
 nsresult
 txStylesheet::doneCompiling()
 {
     nsresult rv = NS_OK;
     // Collect all importframes into a single ordered list
     txListIterator frameIter(&mImportFrames);
     rv = frameIter.addAfter(mRootFrame);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     mRootFrame = nullptr;
     frameIter.next();
     rv = addFrames(frameIter);
     NS_ENSURE_SUCCESS(rv, rv);
 
     // Loop through importframes in decreasing-precedence-order and process
     // all items
     frameIter.reset();
@@ -342,25 +342,25 @@ txStylesheet::doneCompiling()
             }
             delete item;
             itemIter.remove(); //remove() moves to the previous
             itemIter.next();
         }
         if (!mStripSpaceTests.AppendElements(frameStripSpaceTests)) {
             return NS_ERROR_OUT_OF_MEMORY;
         }
-        
+
         frameStripSpaceTests.Clear();
     }
 
     if (!mDecimalFormats.get(txExpandedName())) {
         nsAutoPtr<txDecimalFormat> format(new txDecimalFormat);
         rv = mDecimalFormats.add(txExpandedName(), format);
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         format.forget();
     }
 
     return NS_OK;
 }
 
 nsresult
 txStylesheet::addTemplate(txTemplateItem* aTemplate,
@@ -462,17 +462,17 @@ txStylesheet::addFrames(txListIterator& 
 
             import->mFrame.forget();
             aInsertIter.previous();
             rv = addFrames(aInsertIter);
             NS_ENSURE_SUCCESS(rv, rv);
             aInsertIter.previous();
         }
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 txStylesheet::addStripSpace(txStripSpaceItem* aStripSpaceItem,
                             nsTArray<txStripSpaceTest*>& aFrameStripSpaceTests)
 {
     int32_t testCount = aStripSpaceItem->mStripSpaceTests.Length();
@@ -499,30 +499,30 @@ nsresult
 txStylesheet::addAttributeSet(txAttributeSetItem* aAttributeSetItem)
 {
     nsresult rv = NS_OK;
     txInstruction* oldInstr = mAttributeSets.get(aAttributeSetItem->mName);
     if (!oldInstr) {
         rv = mAttributeSets.add(aAttributeSetItem->mName,
                                 aAttributeSetItem->mFirstInstruction);
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         aAttributeSetItem->mFirstInstruction.forget();
-        
+
         return NS_OK;
     }
-    
+
     // We need to prepend the new instructions before the existing ones.
     txInstruction* instr = aAttributeSetItem->mFirstInstruction;
     txInstruction* lastNonReturn = nullptr;
     while (instr->mNext) {
         lastNonReturn = instr;
         instr = instr->mNext;
     }
-    
+
     if (!lastNonReturn) {
         // The new attributeset is empty, so lets just ignore it.
         return NS_OK;
     }
 
     rv = mAttributeSets.set(aAttributeSetItem->mName,
                             aAttributeSetItem->mFirstInstruction);
     NS_ENSURE_SUCCESS(rv, rv);
@@ -541,21 +541,21 @@ txStylesheet::addGlobalVariable(txVariab
         return NS_OK;
     }
     nsAutoPtr<GlobalVariable> var(
         new GlobalVariable(Move(aVariable->mValue),
                            Move(aVariable->mFirstInstruction),
                            aVariable->mIsParam));
     nsresult rv = mGlobalVariables.add(aVariable->mName, var);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     var.forget();
-    
+
     return NS_OK;
-    
+
 }
 
 nsresult
 txStylesheet::addKey(const txExpandedName& aName,
                      nsAutoPtr<txPattern> aMatch, nsAutoPtr<Expr> aUse)
 {
     nsresult rv = NS_OK;
 
@@ -583,17 +583,17 @@ txStylesheet::addDecimalFormat(const txE
         NS_ENSURE_TRUE(existing->isEqual(aFormat),
                        NS_ERROR_XSLT_PARSE_FAILURE);
 
         return NS_OK;
     }
 
     nsresult rv = mDecimalFormats.add(aName, aFormat);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     aFormat.forget();
 
     return NS_OK;
 }
 
 txStylesheet::ImportFrame::~ImportFrame()
 {
     txListIterator tlIter(&mToplevelItems);
--- a/dom/xslt/xslt/txStylesheet.h
+++ b/dom/xslt/xslt/txStylesheet.h
@@ -27,17 +27,17 @@ public:
     class ImportFrame;
     class GlobalVariable;
     friend class txStylesheetCompilerState;
     // To be able to do some cleaning up in destructor
     friend class ImportFrame;
 
     txStylesheet();
     nsresult init();
-    
+
     NS_INLINE_DECL_REFCOUNTING(txStylesheet)
 
     nsresult findTemplate(const txXPathNode& aNode,
                           const txExpandedName& aMode,
                           txIMatchContext* aContext,
                           ImportFrame* aImportedBy,
                           txInstruction** aTemplate,
                           ImportFrame** aImportFrame);
@@ -114,45 +114,45 @@ private:
     nsresult addGlobalVariable(txVariableItem* aVariable);
     nsresult addFrames(txListIterator& aInsertIter);
     nsresult addStripSpace(txStripSpaceItem* aStripSpaceItem,
                            nsTArray<txStripSpaceTest*>& aFrameStripSpaceTests);
     nsresult addAttributeSet(txAttributeSetItem* aAttributeSetItem);
 
     // List of ImportFrames
     txList mImportFrames;
-    
+
     // output format
     txOutputFormat mOutputFormat;
 
     // List of first instructions of templates. This is the owner of all
     // instructions used in templates
     txList mTemplateInstructions;
-    
+
     // Root importframe
     ImportFrame* mRootFrame;
-    
+
     // Named templates
     txExpandedNameMap<txInstruction> mNamedTemplates;
-    
+
     // Map with all decimal-formats
     txOwningExpandedNameMap<txDecimalFormat> mDecimalFormats;
 
     // Map with all named attribute sets
     txExpandedNameMap<txInstruction> mAttributeSets;
-    
+
     // Map with all global variables and parameters
     txOwningExpandedNameMap<GlobalVariable> mGlobalVariables;
-    
+
     // Map with all keys
     txOwningExpandedNameMap<txXSLKey> mKeys;
-    
+
     // Array of all txStripSpaceTests, sorted in acending order
     nsTArray<nsAutoPtr<txStripSpaceTest> > mStripSpaceTests;
-    
+
     // Default templates
     nsAutoPtr<txInstruction> mContainerTemplate;
     nsAutoPtr<txInstruction> mCharactersTemplate;
     nsAutoPtr<txInstruction> mEmptyTemplate;
 };
 
 
 /**
--- a/dom/xslt/xslt/txStylesheetCompileHandlers.cpp
+++ b/dom/xslt/xslt/txStylesheetCompileHandlers.cpp
@@ -75,22 +75,22 @@ getStyleAttr(txStylesheetAttr* aAttribut
             attr->mLocalName == aName) {
             attr->mLocalName = nullptr;
             *aAttr = attr;
 
             return NS_OK;
         }
     }
     *aAttr = nullptr;
-    
+
     if (aRequired) {
         // XXX ErrorReport: missing required attribute
         return NS_ERROR_XSLT_PARSE_FAILURE;
     }
-    
+
     return NS_OK;
 }
 
 static nsresult
 parseUseAttrSets(txStylesheetAttr* aAttributes,
                  int32_t aAttrCount,
                  bool aInXSLTNS,
                  txStylesheetCompilerState& aState)
@@ -445,17 +445,17 @@ txFnStartElementError(int32_t aNamespace
                       txStylesheetCompilerState& aState)
 {
     return NS_ERROR_XSLT_PARSE_FAILURE;
 }
 
 static nsresult
 txFnEndElementError(txStylesheetCompilerState& aState)
 {
-    NS_ERROR("txFnEndElementError shouldn't be called"); 
+    NS_ERROR("txFnEndElementError shouldn't be called");
     return NS_ERROR_XSLT_PARSE_FAILURE;
 }
 
 
 /**
  * Root handlers
  */
 static nsresult
@@ -526,17 +526,17 @@ txFnStartLREStylesheet(int32_t aNamespac
     aState.openInstructionContainer(templ);
     rv = aState.addToplevelItem(templ);
     NS_ENSURE_SUCCESS(rv, rv);
 
     templ.forget();
 
     rv = aState.pushHandlerTable(gTxTemplateHandler);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return txFnStartLRE(aNamespaceID, aLocalName, aPrefix, aAttributes,
                         aAttrCount, aState);
 }
 
 static nsresult
 txFnEndLREStylesheet(txStylesheetCompilerState& aState)
 {
     nsresult rv = txFnEndLRE(aState);
@@ -718,17 +718,17 @@ txFnStartDecimalFormat(int32_t aNamespac
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = getCharAttr(aAttributes, aAttrCount, nsGkAtoms::patternSeparator,
                      false, aState, format->mPatternSeparator);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aState.mStylesheet->addDecimalFormat(name, Move(format));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return aState.pushHandlerTable(gTxIgnoreHandler);
 }
 
 static nsresult
 txFnEndDecimalFormat(txStylesheetCompilerState& aState)
 {
     aState.popHandlerTable();
 
@@ -743,19 +743,19 @@ txFnStartImport(int32_t aNamespaceID,
                 txStylesheetAttr* aAttributes,
                 int32_t aAttrCount,
                 txStylesheetCompilerState& aState)
 {
     nsAutoPtr<txImportItem> import(new txImportItem);
     import->mFrame = new txStylesheet::ImportFrame;
     nsresult rv = aState.addToplevelItem(import);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     txImportItem* importPtr = import.forget();
-    
+
     txStylesheetAttr* attr = nullptr;
     rv = getStyleAttr(aAttributes, aAttrCount, kNameSpaceID_None,
                       nsGkAtoms::href, true, &attr);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoString absUri;
     URIUtils::resolveHref(attr->mValue, aState.mElementContext->mBaseURI,
                           absUri);
@@ -830,17 +830,17 @@ txFnStartKey(int32_t aNamespaceID,
     rv = getExprAttr(aAttributes, aAttrCount, nsGkAtoms::use, true,
                      aState, use);
     NS_ENSURE_SUCCESS(rv, rv);
 
     aState.mDisAllowed = 0;
 
     rv = aState.mStylesheet->addKey(name, Move(match), Move(use));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return aState.pushHandlerTable(gTxIgnoreHandler);
 }
 
 static nsresult
 txFnEndKey(txStylesheetCompilerState& aState)
 {
     aState.popHandlerTable();
 
@@ -974,17 +974,17 @@ txFnStartOutput(int32_t aNamespaceID,
     getStyleAttr(aAttributes, aAttrCount, kNameSpaceID_None,
                  nsGkAtoms::mediaType, false, &attr);
     if (attr) {
         item->mFormat.mMediaType = attr->mValue;
     }
 
     rv = aState.addToplevelItem(item);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     item.forget();
 
     return aState.pushHandlerTable(gTxIgnoreHandler);
 }
 
 static nsresult
 txFnEndOutput(txStylesheetCompilerState& aState)
 {
@@ -1028,17 +1028,17 @@ txFnStartStripSpace(int32_t aNamespaceID
             }
             if (length > 1) {
                 // Check for a valid prefix, that is, the returned prefix
                 // should be empty and the real prefix is returned in
                 // localName.
                 if (c[length-2] != ':') {
                     return NS_ERROR_XSLT_PARSE_FAILURE;
                 }
-                rv = XMLUtils::splitQName(StringHead(name, length - 2), 
+                rv = XMLUtils::splitQName(StringHead(name, length - 2),
                                           getter_AddRefs(prefix),
                                           getter_AddRefs(localName));
                 if (NS_FAILED(rv) || prefix) {
                     // bad chars or two ':'
                     return NS_ERROR_XSLT_PARSE_FAILURE;
                 }
                 prefix = localName;
             }
@@ -1047,17 +1047,17 @@ txFnStartStripSpace(int32_t aNamespaceID
         if (prefix) {
             ns = aState.mElementContext->mMappings->lookupNamespace(prefix);
             NS_ENSURE_TRUE(ns != kNameSpaceID_Unknown, NS_ERROR_FAILURE);
         }
         nsAutoPtr<txStripSpaceTest> sst(new txStripSpaceTest(prefix, localName,
                                                              ns, strip));
         rv = stripItem->addStripSpaceTest(sst);
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         sst.forget();
     }
 
     rv = aState.addToplevelItem(stripItem);
     NS_ENSURE_SUCCESS(rv, rv);
 
     stripItem.forget();
 
@@ -1102,17 +1102,17 @@ txFnStartTemplate(int32_t aNamespaceID,
                         name.isNull(), aState, match);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<txTemplateItem> templ(new txTemplateItem(Move(match), name, mode,
                                                        prio));
     aState.openInstructionContainer(templ);
     rv = aState.addToplevelItem(templ);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     templ.forget();
 
     return aState.pushHandlerTable(gTxParamHandler);
 }
 
 static nsresult
 txFnEndTemplate(txStylesheetCompilerState& aState)
 {
@@ -1161,17 +1161,17 @@ txFnStartTopVariable(int32_t aNamespaceI
     }
     else {
         rv = aState.pushHandlerTable(gTxTopVariableHandler);
         NS_ENSURE_SUCCESS(rv, rv);
     }
 
     rv = aState.addToplevelItem(var);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     var.forget();
 
     return NS_OK;
 }
 
 static nsresult
 txFnEndTopVariable(txStylesheetCompilerState& aState)
 {
@@ -1243,28 +1243,28 @@ txFnStartLRE(int32_t aNamespaceID,
              txStylesheetCompilerState& aState)
 {
     nsresult rv = NS_OK;
 
     nsAutoPtr<txInstruction> instr(new txStartLREElement(aNamespaceID,
                                                          aLocalName, aPrefix));
     rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     rv = parseExcludeResultPrefixes(aAttributes, aAttrCount, kNameSpaceID_XSLT);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = parseUseAttrSets(aAttributes, aAttrCount, true, aState);
     NS_ENSURE_SUCCESS(rv, rv);
 
     txStylesheetAttr* attr = nullptr;
     int32_t i;
     for (i = 0; i < aAttrCount; ++i) {
         attr = aAttributes + i;
-        
+
         if (attr->mNamespaceID == kNameSpaceID_XSLT) {
             if (attr->mLocalName == nsGkAtoms::version) {
                 attr->mLocalName = nullptr;
             }
 
             continue;
         }
 
@@ -1387,17 +1387,17 @@ txFnStartApplyTemplates(int32_t aNamespa
     }
 
     nsAutoPtr<txPushNewContext> pushcontext( new txPushNewContext(Move(select)));
     rv = aState.pushSorter(pushcontext);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aState.pushObject(pushcontext);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     pushcontext.forget();
 
     return aState.pushHandlerTable(gTxApplyTemplatesHandler);
 }
 
 static nsresult
 txFnEndApplyTemplates(txStylesheetCompilerState& aState)
 {
@@ -1508,17 +1508,17 @@ txFnStartCallTemplate(int32_t aNamespace
     txExpandedName name;
     rv = getQNameAttr(aAttributes, aAttrCount, nsGkAtoms::name, true,
                       aState, name);
     NS_ENSURE_SUCCESS(rv, rv);
 
     instr = new txCallTemplate(name);
     rv = aState.pushObject(instr);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     instr.forget();
 
     return aState.pushHandlerTable(gTxCallTemplateHandler);
 }
 
 static nsresult
 txFnEndCallTemplate(txStylesheetCompilerState& aState)
 {
@@ -1555,17 +1555,17 @@ txFnStartChoose(int32_t aNamespaceID,
                  nsIAtom* aLocalName,
                  nsIAtom* aPrefix,
                  txStylesheetAttr* aAttributes,
                  int32_t aAttrCount,
                  txStylesheetCompilerState& aState)
 {
     nsresult rv = aState.pushChooseGotoList();
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return aState.pushHandlerTable(gTxChooseHandler);
 }
 
 static nsresult
 txFnEndChoose(txStylesheetCompilerState& aState)
 {
     nsresult rv = NS_OK;
     aState.popHandlerTable();
@@ -1799,17 +1799,17 @@ txFnStartForEach(int32_t aNamespaceID,
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aState.pushSorter(pushcontext);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<txInstruction> instr(pushcontext.forget());
     rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     instr = new txPushNullTemplateRule;
     rv = aState.pushPtr(instr, aState.ePushNullTemplateRule);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
 
     return aState.pushHandlerTable(gTxForEachHandler);
@@ -1959,68 +1959,68 @@ txFnStartNumber(int32_t aNamespaceID,
                 txStylesheetCompilerState& aState)
 {
     nsresult rv = NS_OK;
 
     nsCOMPtr<nsIAtom> levelAtom;
     rv = getAtomAttr(aAttributes, aAttrCount, nsGkAtoms::level, false,
                      aState, getter_AddRefs(levelAtom));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     txXSLTNumber::LevelType level = txXSLTNumber::eLevelSingle;
     if (levelAtom == nsGkAtoms::multiple) {
         level = txXSLTNumber::eLevelMultiple;
     }
     else if (levelAtom == nsGkAtoms::any) {
         level = txXSLTNumber::eLevelAny;
     }
     else if (levelAtom && levelAtom != nsGkAtoms::single && !aState.fcp()) {
         return NS_ERROR_XSLT_PARSE_FAILURE;
     }
-    
+
     nsAutoPtr<txPattern> count;
     rv = getPatternAttr(aAttributes, aAttrCount, nsGkAtoms::count, false,
                         aState, count);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<txPattern> from;
     rv = getPatternAttr(aAttributes, aAttrCount, nsGkAtoms::from, false,
                         aState, from);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<Expr> value;
     rv = getExprAttr(aAttributes, aAttrCount, nsGkAtoms::value, false,
                      aState, value);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<Expr> format;
     rv = getAVTAttr(aAttributes, aAttrCount, nsGkAtoms::format, false,
                     aState, format);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<Expr> lang;
     rv = getAVTAttr(aAttributes, aAttrCount, nsGkAtoms::lang, false,
                       aState, lang);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<Expr> letterValue;
     rv = getAVTAttr(aAttributes, aAttrCount, nsGkAtoms::letterValue, false,
                     aState, letterValue);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<Expr> groupingSeparator;
     rv = getAVTAttr(aAttributes, aAttrCount, nsGkAtoms::groupingSeparator,
                     false, aState, groupingSeparator);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<Expr> groupingSize;
     rv = getAVTAttr(aAttributes, aAttrCount, nsGkAtoms::groupingSize,
                     false, aState, groupingSize);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     nsAutoPtr<txInstruction> instr(new txNumber(level, Move(count), Move(from),
                                                 Move(value), Move(format),
                                                 Move(groupingSeparator),
                                                 Move(groupingSize)));
     rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
 
     return aState.pushHandlerTable(gTxIgnoreHandler);
@@ -2031,17 +2031,17 @@ txFnEndNumber(txStylesheetCompilerState&
 {
     aState.popHandlerTable();
 
     return NS_OK;
 }
 
 /*
     xsl:otherwise
-    
+
     (see xsl:choose)
 */
 static nsresult
 txFnStartOtherwise(int32_t aNamespaceID,
                    nsIAtom* aLocalName,
                    nsIAtom* aPrefix,
                    txStylesheetAttr* aAttributes,
                    int32_t aAttrCount,
@@ -2056,17 +2056,17 @@ txFnEndOtherwise(txStylesheetCompilerSta
     aState.popHandlerTable();
     aState.mHandlerTable = gTxIgnoreHandler; // XXX should be gTxErrorHandler
 
     return NS_OK;
 }
 
 /*
     xsl:param
-    
+
     txCheckParam    --+
     txPushRTFHandler  |  --- (for RTF-parameters)
     [children]        |  /
     txSetVariable     |
                     <-+
 */
 static nsresult
 txFnStartParam(int32_t aNamespaceID,
@@ -2080,17 +2080,17 @@ txFnStartParam(int32_t aNamespaceID,
 
     txExpandedName name;
     rv = getQNameAttr(aAttributes, aAttrCount, nsGkAtoms::name, true,
                       aState, name);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<txCheckParam> checkParam(new txCheckParam(name));
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     rv = aState.pushPtr(checkParam, aState.eCheckParam);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<txInstruction> instr(checkParam.forget());
     rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsAutoPtr<Expr> select;
@@ -2106,17 +2106,17 @@ txFnStartParam(int32_t aNamespaceID,
     }
     else {
         rv = aState.pushHandlerTable(gTxVariableHandler);
         NS_ENSURE_SUCCESS(rv, rv);
     }
 
     rv = aState.pushObject(var);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     var.forget();
 
     return NS_OK;
 }
 
 static nsresult
 txFnEndParam(txStylesheetCompilerState& aState)
 {
@@ -2187,17 +2187,17 @@ txFnEndPI(txStylesheetCompilerState& aSt
     nsresult rv = aState.addInstruction(Move(instr));
     NS_ENSURE_SUCCESS(rv, rv);
 
     return NS_OK;
 }
 
 /*
     xsl:sort
-    
+
     (no instructions)
 */
 static nsresult
 txFnStartSort(int32_t aNamespaceID,
               nsIAtom* aLocalName,
               nsIAtom* aPrefix,
               txStylesheetAttr* aAttributes,
               int32_t aAttrCount,
@@ -2336,20 +2336,20 @@ static nsresult
 txFnEndValueOf(txStylesheetCompilerState& aState)
 {
     aState.popHandlerTable();
     return NS_OK;
 }
 
 /*
     xsl:variable
-    
+
     txPushRTFHandler     --- (for RTF-parameters)
     [children]           /
-    txSetVariable      
+    txSetVariable
 */
 static nsresult
 txFnStartVariable(int32_t aNamespaceID,
                   nsIAtom* aLocalName,
                   nsIAtom* aPrefix,
                   txStylesheetAttr* aAttributes,
                   int32_t aAttrCount,
                   txStylesheetCompilerState& aState)
@@ -2439,17 +2439,17 @@ txFnTextStartRTF(const nsAString& aStr, 
 
     aState.mHandlerTable = gTxTemplateHandler;
 
     return NS_XSLT_GET_NEW_HANDLER;
 }
 
 /*
     xsl:when
-    
+
     (see xsl:choose)
 */
 static nsresult
 txFnStartWhen(int32_t aNamespaceID,
               nsIAtom* aLocalName,
               nsIAtom* aPrefix,
               txStylesheetAttr* aAttributes,
               int32_t aAttrCount,
@@ -2491,17 +2491,17 @@ txFnEndWhen(txStylesheetCompilerState& a
     rv = aState.addGotoTarget(&condGoto->mTarget);
     NS_ENSURE_SUCCESS(rv, rv);
 
     return NS_OK;
 }
 
 /*
     xsl:with-param
-    
+
     txPushRTFHandler   -- for RTF-parameters
     [children]         /
     txSetParam
 */
 static nsresult
 txFnStartWithParam(int32_t aNamespaceID,
                    nsIAtom* aLocalName,
                    nsIAtom* aPrefix,
--- a/dom/xslt/xslt/txStylesheetCompileHandlers.h
+++ b/dom/xslt/xslt/txStylesheetCompileHandlers.h
@@ -33,17 +33,17 @@ struct txElementHandler {
 class txHandlerTable
 {
 public:
     txHandlerTable(const HandleTextFn aTextHandler,
                    const txElementHandler* aLREHandler,
                    const txElementHandler* aOtherHandler);
     nsresult init(const txElementHandler* aHandlers, uint32_t aCount);
     const txElementHandler* find(int32_t aNamespaceID, nsIAtom* aLocalName);
-    
+
     const HandleTextFn mTextHandler;
     const txElementHandler* const mLREHandler;
 
     static bool init();
     static void shutdown();
 
 private:
     const txElementHandler* const mOtherHandler;
--- a/dom/xslt/xslt/txStylesheetCompiler.cpp
+++ b/dom/xslt/xslt/txStylesheetCompiler.cpp
@@ -211,17 +211,17 @@ txStylesheetCompiler::startElementIntern
         }
 
         // xml:base
         if (attr->mNamespaceID == kNameSpaceID_XML &&
             attr->mLocalName == nsGkAtoms::base &&
             !attr->mValue.IsEmpty()) {
             rv = ensureNewElementContext();
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             nsAutoString uri;
             URIUtils::resolveHref(attr->mValue, mElementContext->mBaseURI, uri);
             mElementContext->mBaseURI = uri;
         }
 
         // extension-element-prefixes
         if ((attr->mNamespaceID == kNameSpaceID_XSLT &&
              attr->mLocalName == nsGkAtoms::extensionElementPrefixes &&
@@ -233,17 +233,17 @@ txStylesheetCompiler::startElementIntern
               aLocalName == nsGkAtoms::transform))) {
             rv = ensureNewElementContext();
             NS_ENSURE_SUCCESS(rv, rv);
 
             nsWhitespaceTokenizer tok(attr->mValue);
             while (tok.hasMoreTokens()) {
                 int32_t namespaceID = mElementContext->mMappings->
                     lookupNamespaceWithDefault(tok.nextToken());
-                
+
                 if (namespaceID == kNameSpaceID_Unknown)
                     return NS_ERROR_XSLT_PARSE_FAILURE;
 
                 if (!mElementContext->mInstructionNamespaces.
                         AppendElement(namespaceID)) {
                     return NS_ERROR_OUT_OF_MEMORY;
                 }
             }
@@ -329,17 +329,17 @@ txStylesheetCompiler::endElement()
 
     int32_t i;
     for (i = mInScopeVariables.Length() - 1; i >= 0; --i) {
         txInScopeVariable* var = mInScopeVariables[i];
         if (!--(var->mLevel)) {
             nsAutoPtr<txInstruction> instr(new txRemoveVariable(var->mName));
             rv = addInstruction(Move(instr));
             NS_ENSURE_SUCCESS(rv, rv);
-            
+
             mInScopeVariables.RemoveElementAt(i);
             delete var;
         }
     }
 
     const txElementHandler* handler =
         const_cast<const txElementHandler*>
                   (static_cast<txElementHandler*>(popPtr(eElementHandler)));
@@ -468,17 +468,17 @@ txStylesheetCompiler::flushCharacters()
 
 nsresult
 txStylesheetCompiler::ensureNewElementContext()
 {
     // Do we already have a new context?
     if (!mElementContext->mDepth) {
         return NS_OK;
     }
-    
+
     nsAutoPtr<txElementContext>
         context(new txElementContext(*mElementContext));
     nsresult rv = pushObject(mElementContext);
     NS_ENSURE_SUCCESS(rv, rv);
 
     mElementContext.forget();
     mElementContext = Move(context);
 
@@ -486,25 +486,25 @@ txStylesheetCompiler::ensureNewElementCo
 }
 
 nsresult
 txStylesheetCompiler::maybeDoneCompiling()
 {
     if (!mDoneWithThisStylesheet || !mChildCompilerList.IsEmpty()) {
         return NS_OK;
     }
-    
+
     if (mIsTopCompiler) {
         nsresult rv = mStylesheet->doneCompiling();
         if (NS_FAILED(rv)) {
             cancel(rv);
             return rv;
         }
     }
-    
+
     if (mObserver) {
         mObserver->onDoneCompiling(this, mStatus);
         // This will ensure that we don't call onDoneCompiling twice. Also
         // ensures that we don't keep the observer alive longer then necessary.
         mObserver = nullptr;
     }
 
     return NS_OK;
@@ -561,40 +561,40 @@ txStylesheetCompilerState::init(const ns
         mStylesheet = aStylesheet;
         mToplevelIterator = *aInsertPosition;
         mIsTopCompiler = false;
     }
     else {
         mStylesheet = new txStylesheet;
         rv = mStylesheet->init();
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         mToplevelIterator =
             txListIterator(&mStylesheet->mRootFrame->mToplevelItems);
         mToplevelIterator.next(); // go to the end of the list
         mIsTopCompiler = true;
     }
-   
+
     mElementContext = new txElementContext(aStylesheetURI);
     NS_ENSURE_TRUE(mElementContext->mMappings, NS_ERROR_OUT_OF_MEMORY);
 
     // Push the "old" txElementContext
     rv = pushObject(0);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     return NS_OK;
 }
 
 
 txStylesheetCompilerState::~txStylesheetCompilerState()
 {
     while (!mObjectStack.isEmpty()) {
         delete popObject();
     }
-    
+
     int32_t i;
     for (i = mInScopeVariables.Length() - 1; i >= 0; --i) {
         delete mInScopeVariables[i];
     }
 }
 
 nsresult
 txStylesheetCompilerState::pushHandlerTable(txHandlerTable* aTable)
@@ -677,21 +677,21 @@ txStylesheetCompilerState::popPtr(enumSt
     uint32_t stacklen = mTypeStack.Length();
     if (stacklen == 0) {
         MOZ_CRASH("Attempt to pop when type stack is empty");
     }
 
     enumStackType type = mTypeStack.ElementAt(stacklen - 1);
     mTypeStack.RemoveElementAt(stacklen - 1);
     void* value = mOtherStack.pop();
-    
+
 #ifdef TX_DEBUG_STACK
     MOZ_LOG(txLog::xslt, LogLevel::Debug, ("popPtr: 0x%x type %u requested %u\n", value, type, aType));
 #endif
-    
+
     if (type != aType) {
         MOZ_CRASH("Expected type does not match top element type");
     }
 
     return value;
 }
 
 nsresult
@@ -721,17 +721,17 @@ nsresult
 txStylesheetCompilerState::addInstruction(nsAutoPtr<txInstruction>&& aInstruction)
 {
     NS_PRECONDITION(mNextInstrPtr, "adding instruction outside container");
 
     txInstruction* newInstr = aInstruction;
 
     *mNextInstrPtr = aInstruction.forget();
     mNextInstrPtr = newInstr->mNext.StartAssignment();
-    
+
     uint32_t i, count = mGotoTargetPointers.Length();
     for (i = 0; i < count; ++i) {
         *mGotoTargetPointers[i] = newInstr;
     }
     mGotoTargetPointers.Clear();
 
     return NS_OK;
 }
@@ -747,22 +747,22 @@ txStylesheetCompilerState::loadIncludedS
     }
     NS_ENSURE_TRUE(mObserver, NS_ERROR_NOT_IMPLEMENTED);
 
     nsAutoPtr<txToplevelItem> item(new txDummyItem);
     NS_ENSURE_TRUE(item, NS_ERROR_OUT_OF_MEMORY);
 
     nsresult rv = mToplevelIterator.addBefore(item);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     item.forget();
 
     // step back to the dummy-item
     mToplevelIterator.previous();
-    
+
     txACompileObserver* observer = static_cast<txStylesheetCompiler*>(this);
 
     RefPtr<txStylesheetCompiler> compiler =
         new txStylesheetCompiler(aURI, mStylesheet, &mToplevelIterator,
                                  mReferrerPolicy, observer);
     NS_ENSURE_TRUE(compiler, NS_ERROR_OUT_OF_MEMORY);
 
     // step forward before calling the observer in case of syncronous loading
@@ -807,26 +807,26 @@ txStylesheetCompilerState::loadImportedS
     }
 
     nsresult rv = mObserver->loadURI(aURI, mStylesheetURI, mReferrerPolicy,
                                      compiler);
     if (NS_FAILED(rv)) {
         mChildCompilerList.RemoveElement(compiler);
     }
 
-    return rv;  
+    return rv;
 }
 
 nsresult
 txStylesheetCompilerState::addGotoTarget(txInstruction** aTargetPointer)
 {
     if (mGotoTargetPointers.AppendElement(aTargetPointer) == nullptr) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 txStylesheetCompilerState::addVariable(const txExpandedName& aName)
 {
     txInScopeVariable* var = new txInScopeVariable(aName);
     if (!mInScopeVariables.AppendElement(var)) {
--- a/dom/xslt/xslt/txStylesheetCompiler.h
+++ b/dom/xslt/xslt/txStylesheetCompiler.h
@@ -66,17 +66,17 @@ public:
                        const char16_t *aErrorText = nullptr, \
                        const char16_t *aParam = nullptr);
 
 class txStylesheetCompilerState : public txIParseContext
 {
 public:
     explicit txStylesheetCompilerState(txACompileObserver* aObserver);
     ~txStylesheetCompilerState();
-    
+
     nsresult init(const nsAString& aStylesheetURI,
                   mozilla::net::ReferrerPolicy aReferrerPolicy,
                   txStylesheet* aStylesheet, txListIterator* aInsertPosition);
 
     // Embedded stylesheets state
     bool handleEmbeddedSheet()
     {
         return mEmbedStatus == eInEmbed;
@@ -104,26 +104,26 @@ public:
     nsresult pushSorter(txPushNewContext* aSorter);
     void popSorter();
     nsresult pushChooseGotoList();
     void popChooseGotoList();
     nsresult pushObject(txObject* aObject);
     txObject* popObject();
     nsresult pushPtr(void* aPtr, enumStackType aType);
     void* popPtr(enumStackType aType);
-    
+
     // stylesheet functions
     nsresult addToplevelItem(txToplevelItem* aItem);
     nsresult openInstructionContainer(txInstructionContainer* aContainer);
     void closeInstructionContainer();
     nsresult addInstruction(nsAutoPtr<txInstruction>&& aInstruction);
     nsresult loadIncludedStylesheet(const nsAString& aURI);
     nsresult loadImportedStylesheet(const nsAString& aURI,
                                     txStylesheet::ImportFrame* aFrame);
-    
+
     // misc
     nsresult addGotoTarget(txInstruction** aTargetPointer);
     nsresult addVariable(const txExpandedName& aName);
 
     // txIParseContext
     nsresult resolveNamespacePrefix(nsIAtom* aPrefix, int32_t& aID) override;
     nsresult resolveFunctionCall(nsIAtom* aName, int32_t aID,
                                  FunctionCall** aFunction) override;
@@ -165,17 +165,17 @@ public:
     uint16_t mDisAllowed;
 
 protected:
     RefPtr<txACompileObserver> mObserver;
     nsTArray<txInScopeVariable*> mInScopeVariables;
     nsTArray<txStylesheetCompiler*> mChildCompilerList;
     // embed info, target information is the ID
     nsString mTarget;
-    enum 
+    enum
     {
         eNoEmbed,
         eNeedEmbed,
         eInEmbed,
         eHasEmbed
     } mEmbedStatus;
     nsString mStylesheetURI;
     bool mIsTopCompiler;
--- a/dom/xslt/xslt/txToplevelItems.h
+++ b/dom/xslt/xslt/txToplevelItems.h
@@ -119,17 +119,17 @@ public:
 };
 
 // xsl:variable at top level
 class txVariableItem : public txInstructionContainer
 {
 public:
     txVariableItem(const txExpandedName& aName, nsAutoPtr<Expr>&& aValue,
                    bool aIsParam);
-    
+
     TX_DECL_TOPLEVELITEM
 
     txExpandedName mName;
     nsAutoPtr<Expr> mValue;
     bool mIsParam;
 };
 
 #endif //TRANSFRMX_TXTOPLEVELITEMS_H
--- a/dom/xslt/xslt/txVariableMap.h
+++ b/dom/xslt/xslt/txVariableMap.h
@@ -10,21 +10,21 @@
 #include "txXMLUtils.h"
 #include "txExprResult.h"
 #include "txExpandedNameMap.h"
 
 class txVariableMap {
 public:
     txVariableMap();
     ~txVariableMap();
-    
+
     nsresult bindVariable(const txExpandedName& aName, txAExprResult* aValue);
 
     void getVariable(const txExpandedName& aName, txAExprResult** aResult);
-    
+
     void removeVariable(const txExpandedName& aName);
 
 private:
     txExpandedNameMap<txAExprResult> mMap;
 };
 
 
 inline
--- a/dom/xslt/xslt/txXMLEventHandler.h
+++ b/dom/xslt/xslt/txXMLEventHandler.h
@@ -78,17 +78,17 @@ public:
     virtual nsresult endElement() = 0;
 
     /**
      * Signals to receive a processing instruction.
      *
      * @param aTarget the target of the processing instruction
      * @param aData the data of the processing instruction
      */
-    virtual nsresult processingInstruction(const nsString& aTarget, 
+    virtual nsresult processingInstruction(const nsString& aTarget,
                                            const nsString& aData) = 0;
 
     /**
      * Signals the start of a document.
      */
     virtual nsresult startDocument() = 0;
 
     /**
--- a/dom/xslt/xslt/txXPathResultComparator.cpp
+++ b/dom/xslt/xslt/txXPathResultComparator.cpp
@@ -109,31 +109,31 @@ int txResultStringComparator::compareVal
 
     if (result != 0)
         return ((mSorting & kAscending) ? 1 : -1) * result;
 
     if ((strval1->mCaseLength == 0) && (strval1->mLength != 0)) {
         nsString* caseString = (nsString *)strval1->mCaseKey;
         rv = mCollation->AllocateRawSortKey(nsICollation::kCollationCaseSensitive,
                                             *caseString,
-                                            (uint8_t**)&strval1->mCaseKey, 
+                                            (uint8_t**)&strval1->mCaseKey,
                                             &strval1->mCaseLength);
         if (NS_FAILED(rv)) {
             // XXX ErrorReport
             strval1->mCaseKey = caseString;
             strval1->mCaseLength = 0;
             return -1;
         }
         delete caseString;
     }
     if ((strval2->mCaseLength == 0) && (strval2->mLength != 0)) {
         nsString* caseString = (nsString *)strval2->mCaseKey;
         rv = mCollation->AllocateRawSortKey(nsICollation::kCollationCaseSensitive,
                                             *caseString,
-                                            (uint8_t**)&strval2->mCaseKey, 
+                                            (uint8_t**)&strval2->mCaseKey,
                                             &strval2->mCaseLength);
         if (NS_FAILED(rv)) {
             // XXX ErrorReport
             strval2->mCaseKey = caseString;
             strval2->mCaseLength = 0;
             return -1;
         }
         delete caseString;
@@ -200,11 +200,11 @@ int txResultNumberComparator::compareVal
     if (mozilla::IsNaN(dval1))
         return mozilla::IsNaN(dval2) ? 0 : -mAscending;
 
     if (mozilla::IsNaN(dval2))
         return mAscending;
 
     if (dval1 == dval2)
         return 0;
-    
+
     return (dval1 < dval2) ? -mAscending : mAscending;
 }
--- a/dom/xslt/xslt/txXPathResultComparator.h
+++ b/dom/xslt/xslt/txXPathResultComparator.h
@@ -25,17 +25,17 @@ public:
     {
     }
 
     /*
      * Compares two XPath results. Returns -1 if val1 < val2,
      * 1 if val1 > val2 and 0 if val1 == val2.
      */
     virtual int compareValues(txObject* val1, txObject* val2) = 0;
-    
+
     /*
      * Create a sortable value.
      */
     virtual nsresult createSortableValue(Expr *aExpr, txIEvalContext *aContext,
                                          txObject *&aResult) = 0;
 };
 
 /*
--- a/dom/xslt/xslt/txXSLTFunctions.h
+++ b/dom/xslt/xslt/txXSLTFunctions.h
@@ -70,17 +70,17 @@ private:
         Prefix,
         IntDigit,
         IntZero,
         FracZero,
         FracDigit,
         Suffix,
         Finished
     };
-    
+
     txStylesheet* mStylesheet;
     RefPtr<txNamespaceMap> mMappings;
 };
 
 /**
  * DecimalFormat
  * A representation of the XSLT element <xsl:decimal-format>
  */
@@ -88,17 +88,17 @@ class txDecimalFormat {
 
 public:
     /*
      * Creates a new decimal format and initilizes all properties with
      * default values
      */
     txDecimalFormat();
     bool isEqual(txDecimalFormat* other);
-    
+
     char16_t       mDecimalSeparator;
     char16_t       mGroupingSeparator;
     nsString        mInfinity;
     char16_t       mMinusSign;
     nsString        mNaN;
     char16_t       mPercent;
     char16_t       mPerMille;
     char16_t       mZeroDigit;
--- a/dom/xslt/xslt/txXSLTNumber.cpp
+++ b/dom/xslt/xslt/txXSLTNumber.cpp
@@ -27,17 +27,17 @@ nsresult txXSLTNumber::createNumber(Expr
     nsresult rv = NS_OK;
 
     // Parse format
     txList counters;
     nsAutoString head, tail;
     rv = getCounters(aGroupSize, aGroupSeparator, aFormat, aContext, counters,
                      head, tail);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     // Create list of values to format
     txList values;
     nsAutoString valueString;
     rv = getValueList(aValueExpr, aCountPattern, aFromPattern, aLevel,
                       aContext, values, valueString);
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (!valueString.IsEmpty()) {
@@ -61,19 +61,19 @@ nsresult txXSLTNumber::createNumber(Expr
 
         if (!first) {
             aResult.Append(counter->mSeparator);
         }
 
         counter->appendNumber(value, aResult);
         first = false;
     }
-    
+
     aResult.Append(tail);
-    
+
     txListIterator iter(&counters);
     while (iter.hasNext()) {
         delete (txFormattedCounter*)iter.next();
     }
 
     return NS_OK;
 }
 
@@ -94,17 +94,17 @@ txXSLTNumber::getValueList(Expr* aValueE
 
         double value = result->numberValue();
 
         if (mozilla::IsInfinite(value) || mozilla::IsNaN(value) ||
             value < 0.5) {
             txDouble::toString(value, aValueString);
             return NS_OK;
         }
-        
+
         aValues.add(NS_INT32_TO_PTR((int32_t)floor(value + 0.5)));
         return NS_OK;
     }
 
 
     // Otherwise use count/from/level
 
     txPattern* countPattern = aCountPattern;
@@ -388,17 +388,17 @@ txXSLTNumber::getCounters(Expr* aGroupSi
 
         // parse formatting token
         nsAutoString numToken;
         while (formatPos < formatLen &&
                isAlphaNumeric(ch = format.CharAt(formatPos))) {
             numToken.Append(ch);
             ++formatPos;
         }
-        
+
         txFormattedCounter* counter = 0;
         rv = txFormattedCounter::getCounterFor(numToken, groupSize,
                                                groupSeparator, counter);
         if (NS_FAILED(rv)) {
             txListIterator iter(&aCounters);
             while (iter.hasNext()) {
                 delete (txFormattedCounter*)iter.next();
             }
@@ -414,17 +414,17 @@ txXSLTNumber::getCounters(Expr* aGroupSi
             txListIterator iter(&aCounters);
             while (iter.hasNext()) {
                 delete (txFormattedCounter*)iter.next();
             }
             aCounters.clear();
             return rv;
         }
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 txXSLTNumber::getSiblingCount(txXPathTreeWalker& aWalker,
                               txPattern* aCountPattern,
                               txIMatchContext* aContext,
                               int32_t* aCount)
--- a/dom/xslt/xslt/txXSLTNumber.h
+++ b/dom/xslt/xslt/txXSLTNumber.h
@@ -45,30 +45,30 @@ private:
      * getSiblingCount uses aWalker to walk the siblings of aWalker's current
      * position.
      *
      */
     static nsresult getSiblingCount(txXPathTreeWalker& aWalker,
                                     txPattern* aCountPattern,
                                     txIMatchContext* aContext,
                                     int32_t* aCount);
-    
+
     static bool getPrevInDocumentOrder(txXPathTreeWalker& aWalker);
 
     static bool isAlphaNumeric(char16_t ch);
 };
 
 class txFormattedCounter {
 public:
     virtual ~txFormattedCounter()
     {
     }
-    
+
     virtual void appendNumber(int32_t aNumber, nsAString& aDest) = 0;
 
     static nsresult getCounterFor(const nsString& aToken, int aGroupSize,
                                   const nsAString& aGroupSeparator,
                                   txFormattedCounter*& aCounter);
-    
+
     nsString mSeparator;
 };
 
 #endif //TRANSFRMX_TXXSLTNUMBER_H
--- a/dom/xslt/xslt/txXSLTNumberCounters.cpp
+++ b/dom/xslt/xslt/txXSLTNumberCounters.cpp
@@ -7,36 +7,36 @@
 #include "nsReadableUtils.h"
 #include "txCore.h"
 
 class txDecimalCounter : public txFormattedCounter {
 public:
     txDecimalCounter() : mMinLength(1), mGroupSize(50)
     {
     }
-    
+
     txDecimalCounter(int32_t aMinLength, int32_t aGroupSize,
                      const nsAString& mGroupSeparator);
-    
+
     virtual void appendNumber(int32_t aNumber, nsAString& aDest);
 
 private:
     int32_t mMinLength;
     int32_t mGroupSize;
     nsString mGroupSeparator;
 };
 
 class txAlphaCounter : public txFormattedCounter {
 public:
     explicit txAlphaCounter(char16_t aOffset) : mOffset(aOffset)
     {
     }
 
     virtual void appendNumber(int32_t aNumber, nsAString& aDest);
-    
+
 private:
     char16_t mOffset;
 };
 
 class txRomanCounter : public txFormattedCounter {
 public:
     explicit txRomanCounter(bool aUpper) : mTableOffset(aUpper ? 30 : 0)
     {
@@ -53,42 +53,42 @@ nsresult
 txFormattedCounter::getCounterFor(const nsString& aToken,
                                   int32_t aGroupSize,
                                   const nsAString& aGroupSeparator,
                                   txFormattedCounter*& aCounter)
 {
     int32_t length = aToken.Length();
     NS_ASSERTION(length, "getting counter for empty token");
     aCounter = 0;
-    
+
     if (length == 1) {
         char16_t ch = aToken.CharAt(0);
         switch (ch) {
 
             case 'i':
             case 'I':
                 aCounter = new txRomanCounter(ch == 'I');
                 break;
-            
+
             case 'a':
             case 'A':
                 aCounter = new txAlphaCounter(ch);
                 break;
-            
+
             case '1':
             default:
                 // if we don't recognize the token then use "1"
                 aCounter = new txDecimalCounter(1, aGroupSize,
                                                 aGroupSeparator);
                 break;
         }
         MOZ_ASSERT(aCounter);
         return NS_OK;
     }
-    
+
     // for now, the only multi-char token we support are decimals
     int32_t i;
     for (i = 0; i < length-1; ++i) {
         if (aToken.CharAt(i) != '0')
             break;
     }
     if (i == length-1 && aToken.CharAt(i) == '1') {
         aCounter = new txDecimalCounter(length, aGroupSize, aGroupSeparator);
@@ -123,21 +123,21 @@ void txDecimalCounter::appendNumber(int3
         buf[--pos] = ch + '0';
     }
 
     // in case we didn't get a long enough string
     int32_t end  = (bufsize > mMinLength) ? bufsize - mMinLength : 0;
     while (pos > end) {
         buf[--pos] = '0';
     }
-    
+
     // in case we *still* didn't get a long enough string.
     // this should be very rare since it only happens if mMinLength is bigger
     // then the length of any int32_t.
-    // pos will always be zero 
+    // pos will always be zero
     int32_t extraPos = mMinLength;
     while (extraPos > bufsize) {
         aDest.Append(char16_t('0'));
         --extraPos;
         if (extraPos % mGroupSize == 0) {
             aDest.Append(mGroupSeparator);
         }
     }
@@ -168,17 +168,17 @@ void txAlphaCounter::appendNumber(int32_
     buf[11] = 0;
     int32_t pos = 11;
     while (aNumber > 0) {
         --aNumber;
         int32_t ch = aNumber % 26;
         aNumber /= 26;
         buf[--pos] = ch + mOffset;
     }
-    
+
     aDest.Append(buf + pos, (uint32_t)(11 - pos));
 }
 
 
 const char* const kTxRomanNumbers[] =
     {"", "c", "cc", "ccc", "cd", "d", "dc", "dcc", "dccc", "cm",
      "", "x", "xx", "xxx", "xl", "l", "lx", "lxx", "lxxx", "xc",
      "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix",
@@ -195,17 +195,17 @@ void txRomanCounter::appendNumber(int32_
     }
 
     while (aNumber >= 1000) {
         aDest.Append(!mTableOffset ? char16_t('m') : char16_t('M'));
         aNumber -= 1000;
     }
 
     int32_t posValue;
-    
+
     // Hundreds
     posValue = aNumber / 100;
     aNumber %= 100;
     AppendASCIItoUTF16(kTxRomanNumbers[posValue + mTableOffset], aDest);
     // Tens
     posValue = aNumber / 10;
     aNumber %= 10;
     AppendASCIItoUTF16(kTxRomanNumbers[10 + posValue + mTableOffset], aDest);
--- a/dom/xslt/xslt/txXSLTPatterns.cpp
+++ b/dom/xslt/xslt/txXSLTPatterns.cpp
@@ -361,17 +361,17 @@ txIdPattern::toString(nsAString& aDest)
     aDest.Append(char16_t('}'));
 #endif
 }
 #endif
 
 /*
  * txKeyPattern
  *
- * txKeyPattern matches if the given node is in the evalation of 
+ * txKeyPattern matches if the given node is in the evalation of
  * the key() function
  * This resembles the key() function, but may only have LITERALs as
  * argument.
  */
 
 nsresult
 txKeyPattern::matches(const txXPathNode& aNode, txIMatchContext* aContext,
                       bool& aMatched)
--- a/dom/xslt/xslt/txXSLTPatterns.h
+++ b/dom/xslt/xslt/txXSLTPatterns.h
@@ -127,17 +127,17 @@ void                                    
     NS_NOTREACHED("setting bad subexpression index");         \
 }
 
 class txUnionPattern : public txPattern
 {
 public:
     nsresult addPattern(txPattern* aPattern)
     {
-        return mLocPathPatterns.AppendElement(aPattern) ? 
+        return mLocPathPatterns.AppendElement(aPattern) ?
             NS_OK : NS_ERROR_OUT_OF_MEMORY;
     }
 
     TX_DECL_PATTERN;
     Type getType() override;
 
 private:
     txOwningArray<txPattern> mLocPathPatterns;
--- a/dom/xul/XULDocument.cpp
+++ b/dom/xul/XULDocument.cpp
@@ -1052,17 +1052,17 @@ XULDocument::AttributeChanged(nsIDocumen
 
 void
 XULDocument::ContentAppended(nsIDocument* aDocument,
                              nsIContent* aContainer,
                              nsIContent* aFirstNewContent,
                              int32_t aNewIndexInContainer)
 {
     NS_ASSERTION(aDocument == this, "unexpected doc");
-    
+
     // Might not need this, but be safe for now.
     nsCOMPtr<nsIMutationObserver> kungFuDeathGrip(this);
 
     // Update our element map
     nsresult rv = NS_OK;
     for (nsIContent* cur = aFirstNewContent; cur && NS_SUCCEEDED(rv);
          cur = cur->GetNextSibling()) {
         rv = AddSubtreeToDocument(cur);
@@ -1139,17 +1139,17 @@ XULDocument::AddForwardReference(nsForwa
 nsresult
 XULDocument::ResolveForwardReferences()
 {
     if (mResolutionPhase == nsForwardReference::eDone)
         return NS_OK;
 
     NS_ASSERTION(mResolutionPhase == nsForwardReference::eStart,
                  "nested ResolveForwardReferences()");
-        
+
     // Resolve each outstanding 'forward' reference. We iterate
     // through the list of forward references until no more forward
     // references can be resolved. This annealing process is
     // guaranteed to converge because we've "closed the gate" to new
     // forward references.
 
     const nsForwardReference::Phase* pass = nsForwardReference::kPasses;
     while ((mResolutionPhase = *pass) != nsForwardReference::eDone) {
@@ -1217,17 +1217,17 @@ XULDocument::GetElementsByAttribute(cons
     void* attrValue = new nsString(aValue);
     RefPtr<nsContentList> list = new nsContentList(this,
                                             MatchAttribute,
                                             nsContentUtils::DestroyMatchString,
                                             attrValue,
                                             true,
                                             attrAtom,
                                             kNameSpaceID_Unknown);
-    
+
     return list.forget();
 }
 
 NS_IMETHODIMP
 XULDocument::GetElementsByAttributeNS(const nsAString& aNamespaceURI,
                                       const nsAString& aAttribute,
                                       const nsAString& aValue,
                                       nsIDOMNodeList** aReturn)
@@ -1996,17 +1996,17 @@ XULDocument::PrepareToLoadPrototype(nsIU
     // Create a new prototype document.
     rv = NS_NewXULPrototypeDocument(getter_AddRefs(mCurrentPrototype));
     if (NS_FAILED(rv)) return rv;
 
     rv = mCurrentPrototype->InitPrincipal(aURI, aDocumentPrincipal);
     if (NS_FAILED(rv)) {
         mCurrentPrototype = nullptr;
         return rv;
-    }    
+    }
 
     // Bootstrap the master document prototype.
     if (! mMasterPrototype) {
         mMasterPrototype = mCurrentPrototype;
         // Set our principal based on the master proto.
         SetPrincipal(aDocumentPrincipal);
     }
 
@@ -2321,17 +2321,17 @@ XULDocument::PrepareToWalk()
 
     if (mState == eState_Master) {
         // Add the root element
         rv = CreateElementFromPrototype(proto, getter_AddRefs(root), true);
         if (NS_FAILED(rv)) return rv;
 
         rv = AppendChildTo(root, false);
         if (NS_FAILED(rv)) return rv;
-        
+
         rv = AddElementToRefMap(root);
         if (NS_FAILED(rv)) return rv;
 
         // Block onload until we've finished building the complete
         // document content model.
         BlockOnload();
     }
 
@@ -2409,17 +2409,17 @@ XULDocument::InsertXMLStylesheetPI(const
     }
 
     // Ignore errors from UpdateStyleSheet; we don't want failure to
     // do that to break the XUL document load.  But do propagate out
     // NS_ERROR_OUT_OF_MEMORY.
     if (rv == NS_ERROR_OUT_OF_MEMORY) {
         return rv;
     }
-    
+
     return NS_OK;
 }
 
 nsresult
 XULDocument::InsertXULOverlayPI(const nsXULPrototypePI* aProtoPI,
                                 nsINode* aParent,
                                 uint32_t aIndex,
                                 nsIContent* aPINode)
@@ -2767,17 +2767,17 @@ XULDocument::ResumeWalk()
             nsXULPrototypeNode* childproto = proto->mChildren[indx];
             mContextStack.SetTopIndex(++indx);
 
             // Whether we're in the "first ply" of an overlay:
             // the "hookup" nodes. In the case !processingOverlayHookupNodes,
             // we're in the master document -or- we're in an overlay, and far
             // enough down into the overlay's content that we can simply build
             // the delegates and attach them to the parent node.
-            bool processingOverlayHookupNodes = (mState == eState_Overlay) && 
+            bool processingOverlayHookupNodes = (mState == eState_Overlay) &&
                                                   (mContextStack.Depth() == 1);
 
             NS_ASSERTION(element || processingOverlayHookupNodes,
                          "no element on context stack");
 
             switch (childproto->mType) {
             case nsXULPrototypeNode::eType_Element: {
                 // An 'element', which may contain more content.
@@ -3078,38 +3078,38 @@ XULDocument::DoneWalking()
             if (mInitialLayoutComplete) {
                 // We have completed initial layout, so just send the notification.
                 mOverlayLoadObservers->Get(overlayURI, getter_AddRefs(obs));
                 if (obs)
                     obs->Observe(overlayURI, "xul-overlay-merged", EmptyString().get());
                 mOverlayLoadObservers->Remove(overlayURI);
             }
             else {
-                // If we have not yet displayed the document for the first time 
+                // If we have not yet displayed the document for the first time
                 // (i.e. we came in here as the result of a dynamic overlay load
-                // which was spawned by a binding-attached event caused by 
+                // which was spawned by a binding-attached event caused by
                 // StartLayout() on the master prototype - we must remember that
-                // this overlay has been merged and tell the listeners after 
-                // StartLayout() is completely finished rather than doing so 
+                // this overlay has been merged and tell the listeners after
+                // StartLayout() is completely finished rather than doing so
                 // immediately - otherwise we may be executing code that needs to
-                // access XBL Binding implementations on nodes for which frames 
+                // access XBL Binding implementations on nodes for which frames
                 // have not yet been constructed because their bindings have not
                 // yet been attached. This can be a race condition because dynamic
                 // overlay loading can take varying amounts of time depending on
                 // whether or not the overlay prototype is in the XUL cache. The
                 // most likely effect of this bug is odd UI initialization due to
                 // methods and properties that do not work.
                 // XXXbz really, we shouldn't be firing binding constructors
                 // until after StartLayout returns!
 
                 if (!mPendingOverlayLoadNotifications) {
                     mPendingOverlayLoadNotifications =
                         new nsInterfaceHashtable<nsURIHashKey,nsIObserver>;
                 }
-                
+
                 mPendingOverlayLoadNotifications->Get(overlayURI, getter_AddRefs(obs));
                 if (!obs) {
                     mOverlayLoadObservers->Get(overlayURI, getter_AddRefs(obs));
                     NS_ASSERTION(obs, "null overlay load observer?");
                     mPendingOverlayLoadNotifications->Put(overlayURI, obs);
                 }
             }
         }
@@ -3832,20 +3832,20 @@ XULDocument::OverlayForwardReference::Me
                                             bool aNotify)
 {
     // This function is given:
     // aTargetNode:  the node in the document whose 'id' attribute
     //               matches a toplevel node in our overlay.
     // aOverlayNode: the node in the overlay document that matches
     //               a node in the actual document.
     // aNotify:      whether or not content manipulation methods should
-    //               use the aNotify parameter. After the initial 
+    //               use the aNotify parameter. After the initial
     //               reflow (i.e. in the dynamic overlay merge case),
     //               we want all the content manipulation methods we
-    //               call to notify so that frames are constructed 
+    //               call to notify so that frames are constructed
     //               etc. Otherwise do not, since that's during initial
     //               document construction before StartLayout has been
     //               called which will do everything for us.
     //
     // This function merges the tree from the overlay into the tree in
     // the document, overwriting attributes and appending child content
     // nodes appropriately. (See XUL overlay reference for details)
 
@@ -4436,17 +4436,17 @@ XULDocument::ParserObserver::OnStartRequ
             principal = mDocument->MaybeDowngradePrincipal(principal);
             // Failure there is ok -- it'll just set a (safe) null principal
             mPrototype->SetDocumentPrincipal(principal);
         }
 
         // Make sure to avoid cycles
         mPrototype = nullptr;
     }
-        
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 XULDocument::ParserObserver::OnStopRequest(nsIRequest *request,
                                            nsISupports* aContext,
                                            nsresult aStatus)
 {
--- a/dom/xul/XULDocument.h
+++ b/dom/xul/XULDocument.h
@@ -250,17 +250,17 @@ protected:
                            nsIParser** aResult);
 
     nsresult
     PrepareToLoadPrototype(nsIURI* aURI,
                            const char* aCommand,
                            nsIPrincipal* aDocumentPrincipal,
                            nsIParser** aResult);
 
-    nsresult 
+    nsresult
     LoadOverlayInternal(nsIURI* aURI, bool aIsDynamic, bool* aShouldReturn,
                         bool* aFailureFromContent);
 
     nsresult ApplyPersistentAttributes();
     nsresult ApplyPersistentAttributesInternal();
     nsresult ApplyPersistentAttributesToElements(const nsAString &aID,
                                                  nsCOMArray<nsIContent>& aElements);
 
@@ -480,17 +480,17 @@ protected:
     /**
      * Add the current prototype's style sheets (currently it's just
      * style overlays from the chrome registry) to the document.
      */
     nsresult AddPrototypeSheets();
 
 
 protected:
-    /* Declarations related to forward references. 
+    /* Declarations related to forward references.
      *
      * Forward references are declarations which are added to the temporary
      * list (mForwardReferences) during the document (or overlay) load and
      * are resolved later, when the document loading is almost complete.
      */
 
     /**
      * The list of different types of forward references to resolve. After
@@ -599,17 +599,17 @@ protected:
     SynchronizeBroadcastListener(Element *aBroadcaster,
                                  Element *aListener,
                                  const nsAString &aAttr);
 
     static
     nsresult
     InsertElement(nsINode* aParent, nsIContent* aChild, bool aNotify);
 
-    static 
+    static
     nsresult
     RemoveElement(nsINode* aParent, nsINode* aChild);
 
     /**
      * The current prototype that we are walking to construct the
      * content model.
      */
     RefPtr<nsXULPrototypeDocument> mCurrentPrototype;
--- a/dom/xul/nsXULCommandDispatcher.cpp
+++ b/dom/xul/nsXULCommandDispatcher.cpp
@@ -257,17 +257,17 @@ nsXULCommandDispatcher::AddCommandUpdate
   Updater* updater = mUpdaters;
   Updater** link = &mUpdaters;
 
   while (updater) {
     if (updater->mElement == aElement) {
 
 #ifdef DEBUG
       if (MOZ_LOG_TEST(gCommandLog, LogLevel::Debug)) {
-        nsAutoCString eventsC, targetsC, aeventsC, atargetsC; 
+        nsAutoCString eventsC, targetsC, aeventsC, atargetsC;
         eventsC.AssignWithConversion(updater->mEvents);
         targetsC.AssignWithConversion(updater->mTargets);
         CopyUTF16toUTF8(aEvents, aeventsC);
         CopyUTF16toUTF8(aTargets, atargetsC);
         MOZ_LOG(gCommandLog, LogLevel::Debug,
                ("xulcmd[%p] replace %p(events=%s targets=%s) with (events=%s targets=%s)",
                 this, aElement,
                 eventsC.get(),
@@ -285,17 +285,17 @@ nsXULCommandDispatcher::AddCommandUpdate
       return NS_OK;
     }
 
     link = &(updater->mNext);
     updater = updater->mNext;
   }
 #ifdef DEBUG
   if (MOZ_LOG_TEST(gCommandLog, LogLevel::Debug)) {
-    nsAutoCString aeventsC, atargetsC; 
+    nsAutoCString aeventsC, atargetsC;
     CopyUTF16toUTF8(aEvents, aeventsC);
     CopyUTF16toUTF8(aTargets, atargetsC);
 
     MOZ_LOG(gCommandLog, LogLevel::Debug,
            ("xulcmd[%p] add     %p(events=%s targets=%s)",
             this, aElement,
             aeventsC.get(),
             atargetsC.get()));
@@ -316,17 +316,17 @@ nsXULCommandDispatcher::RemoveCommandUpd
 
   Updater* updater = mUpdaters;
   Updater** link = &mUpdaters;
 
   while (updater) {
     if (updater->mElement == aElement) {
 #ifdef DEBUG
       if (MOZ_LOG_TEST(gCommandLog, LogLevel::Debug)) {
-        nsAutoCString eventsC, targetsC; 
+        nsAutoCString eventsC, targetsC;
         eventsC.AssignWithConversion(updater->mEvents);
         targetsC.AssignWithConversion(updater->mTargets);
         MOZ_LOG(gCommandLog, LogLevel::Debug,
                ("xulcmd[%p] remove  %p(events=%s targets=%s)",
                 this, aElement,
                 eventsC.get(),
                 targetsC.get()));
       }
@@ -384,33 +384,33 @@ nsXULCommandDispatcher::UpdateCommands(c
     updaters.AppendObject(content);
   }
 
   for (int32_t u = 0; u < updaters.Count(); u++) {
     nsIContent* content = updaters[u];
 
 #ifdef DEBUG
     if (MOZ_LOG_TEST(gCommandLog, LogLevel::Debug)) {
-      nsAutoCString aeventnameC; 
+      nsAutoCString aeventnameC;
       CopyUTF16toUTF8(aEventName, aeventnameC);
       MOZ_LOG(gCommandLog, LogLevel::Debug,
              ("xulcmd[%p] update %p event=%s",
               this, content,
               aeventnameC.get()));
     }
 #endif
 
     WidgetEvent event(true, eXULCommandUpdate);
     EventDispatcher::Dispatch(content, nullptr, &event);
   }
   return NS_OK;
 }
 
 bool
-nsXULCommandDispatcher::Matches(const nsString& aList, 
+nsXULCommandDispatcher::Matches(const nsString& aList,
                                 const nsAString& aElement)
 {
   if (aList.EqualsLiteral("*"))
     return true; // match _everything_!
 
   int32_t indx = aList.Find(PromiseFlatString(aElement));
   if (indx == -1)
     return false; // not in the list at all
--- a/dom/xul/nsXULCommandDispatcher.h
+++ b/dom/xul/nsXULCommandDispatcher.h
@@ -61,16 +61,16 @@ protected:
       nsCOMPtr<nsIDOMElement> mElement;
       nsString                mEvents;
       nsString                mTargets;
       Updater*                mNext;
     };
 
     Updater* mUpdaters;
 
-    bool Matches(const nsString& aList, 
+    bool Matches(const nsString& aList,
                    const nsAString& aElement);
 
     bool mLocked;
     nsTArray<nsString> mPendingUpdates;
 };
 
 #endif // nsXULCommandDispatcher_h__
--- a/dom/xul/nsXULControllers.cpp
+++ b/dom/xul/nsXULControllers.cpp
@@ -33,17 +33,17 @@ void
 nsXULControllers::DeleteControllers()
 {
   uint32_t count = mControllers.Length();
   for (uint32_t i = 0; i < count; i++)
   {
     nsXULControllerData* controllerData = mControllers.ElementAt(i);
     delete controllerData;    // releases the nsIController
   }
-  
+
   mControllers.Clear();
 }
 
 
 nsresult
 NS_NewXULControllers(nsISupports* aOuter, REFNSIID aIID, void** aResult)
 {
   NS_PRECONDITION(aOuter == nullptr, "no aggregation");
@@ -103,17 +103,17 @@ nsXULControllers::GetControllerForComman
         controller->SupportsCommand(aCommand, &supportsCommand);
         if (supportsCommand) {
           controller.forget(_retval);
           return NS_OK;
         }
       }
     }
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsXULControllers::InsertControllerAt(uint32_t aIndex, nsIController *controller)
 {
   nsXULControllerData*  controllerData = new nsXULControllerData(++mCurControllerID, controller);
 #ifdef DEBUG
@@ -132,31 +132,31 @@ nsXULControllers::RemoveControllerAt(uin
 
   nsXULControllerData* controllerData = mControllers.SafeElementAt(aIndex);
   if (!controllerData) return NS_ERROR_FAILURE;
 
   mControllers.RemoveElementAt(aIndex);
 
   controllerData->GetController(_retval);
   delete controllerData;
-  
+
   return NS_OK;
 }
 
 
 NS_IMETHODIMP
 nsXULControllers::GetControllerAt(uint32_t aIndex, nsIController **_retval)
 {
   NS_ENSURE_ARG_POINTER(_retval);
   *_retval = nullptr;
 
   nsXULControllerData* controllerData = mControllers.SafeElementAt(aIndex);
   if (!controllerData) return NS_ERROR_FAILURE;
 
-  return controllerData->GetController(_retval);   // does the addref  
+  return controllerData->GetController(_retval);   // does the addref
 }
 
 NS_IMETHODIMP
 nsXULControllers::AppendController(nsIController *controller)
 {
   // This assigns controller IDs starting at 1 so we can use 0 to test if an ID was obtained
   nsXULControllerData*  controllerData = new nsXULControllerData(++mCurControllerID, controller);
 
@@ -188,17 +188,17 @@ nsXULControllers::RemoveController(nsICo
         mControllers.RemoveElementAt(i);
         delete controllerData;
         return NS_OK;
       }
     }
   }
   return NS_ERROR_FAILURE;      // right thing to return if no controller found?
 }
-    
+
 NS_IMETHODIMP
 nsXULControllers::GetControllerId(nsIController *controller, uint32_t *_retval)
 {
   NS_ENSURE_ARG_POINTER(_retval);
 
   uint32_t count = mControllers.Length();
   for (uint32_t i = 0; i < count; i++)
   {
@@ -216,17 +216,17 @@ nsXULControllers::GetControllerId(nsICon
   }
   return NS_ERROR_FAILURE;  // none found
 }
 
 NS_IMETHODIMP
 nsXULControllers::GetControllerById(uint32_t controllerID, nsIController **_retval)
 {
   NS_ENSURE_ARG_POINTER(_retval);
-    
+
   uint32_t count = mControllers.Length();
   for (uint32_t i = 0; i < count; i++)
   {
     nsXULControllerData* controllerData = mControllers.ElementAt(i);
     if (controllerData && controllerData->GetControllerID() == controllerID)
     {
       return controllerData->GetController(_retval);
     }
--- a/dom/xul/nsXULControllers.h
+++ b/dom/xul/nsXULControllers.h
@@ -20,46 +20,46 @@
 
 /* non-XPCOM class for holding controllers and their IDs */
 class nsXULControllerData
 {
 public:
                             nsXULControllerData(uint32_t inControllerID, nsIController* inController)
                             : mControllerID(inControllerID)
                             , mController(inController)
-                            {                            
+                            {
                             }
 
                             ~nsXULControllerData() {}
 
     uint32_t                GetControllerID()   { return mControllerID; }
 
     nsresult                GetController(nsIController **outController)
                             {
                               NS_IF_ADDREF(*outController = mController);
                               return NS_OK;
                             }
-    
+
     uint32_t                mControllerID;
     nsCOMPtr<nsIController> mController;
 };
 
 
 nsresult NS_NewXULControllers(nsISupports* aOuter, REFNSIID aIID, void** aResult);
 
 class nsXULControllers : public nsIControllers
 {
 public:
     friend nsresult
     NS_NewXULControllers(nsISupports* aOuter, REFNSIID aIID, void** aResult);
 
     NS_DECL_CYCLE_COLLECTING_ISUPPORTS
     NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsXULControllers, nsIControllers)
     NS_DECL_NSICONTROLLERS
-  
+
 protected:
     nsXULControllers();
     virtual ~nsXULControllers(void);
 
     void        DeleteControllers();
 
     nsTArray<nsXULControllerData*>   mControllers;
     uint32_t                         mCurControllerID;
--- a/dom/xul/nsXULPopupListener.cpp
+++ b/dom/xul/nsXULPopupListener.cpp
@@ -230,17 +230,17 @@ nsXULPopupListener::FireFocusOnTargetCon
     // Get nsIDOMElement for targetNode
     nsIPresShell *shell = doc->GetShell();
     if (!shell)
       return NS_ERROR_FAILURE;
 
     // strong reference to keep this from going away between events
     // XXXbz between what events?  We don't use this local at all!
     RefPtr<nsPresContext> context = shell->GetPresContext();
- 
+
     nsCOMPtr<nsIContent> content = do_QueryInterface(aTargetNode);
     nsIFrame* targetFrame = content->GetPrimaryFrame();
     if (!targetFrame) return NS_ERROR_FAILURE;
 
     const nsStyleUserInterface* ui = targetFrame->StyleUserInterface();
     bool suppressBlur = (ui->mUserFocus == StyleUserFocus::Ignore);
 
     nsCOMPtr<nsIDOMElement> element;
@@ -254,17 +254,17 @@ nsXULPopupListener::FireFocusOnTargetCon
           newFocus = currFrame->GetContent();
           nsCOMPtr<nsIDOMElement> domElement(do_QueryInterface(newFocus));
           if (domElement) {
             element = domElement;
             break;
           }
         }
         currFrame = currFrame->GetParent();
-    } 
+    }
 
     nsIFocusManager* fm = nsFocusManager::GetFocusManager();
     if (fm) {
       if (element) {
         uint32_t focusFlags = nsIFocusManager::FLAG_BYMOUSE |
                               nsIFocusManager::FLAG_NOSCROLL;
         if (aIsTouch) {
           focusFlags |= nsIFocusManager::FLAG_BYTOUCH;
@@ -291,26 +291,26 @@ nsXULPopupListener::FireFocusOnTargetCon
 // NOTE: This routine is safe to call even if the popup is already closed.
 //
 void
 nsXULPopupListener::ClosePopup()
 {
   if (mPopupContent) {
     // this is called when the listener is going away, so make sure that the
     // popup is hidden. Use asynchronous hiding just to be safe so we don't
-    // fire events during destruction.  
+    // fire events during destruction.
     nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
     if (pm)
       pm->HidePopup(mPopupContent, false, true, true, false);
     mPopupContent = nullptr;  // release the popup
   }
 } // ClosePopup
 
 static already_AddRefed<nsIContent>
-GetImmediateChild(nsIContent* aContent, nsIAtom *aTag) 
+GetImmediateChild(nsIContent* aContent, nsIAtom *aTag)
 {
   for (nsIContent* child = aContent->GetFirstChild();
        child;
        child = child->GetNextSibling()) {
     if (child->IsXULElement(aTag)) {
       nsCOMPtr<nsIContent> ret = child;
       return ret.forget();
     }
@@ -318,24 +318,24 @@ GetImmediateChild(nsIContent* aContent, 
 
   return nullptr;
 }
 
 //
 // LaunchPopup
 //
 // Given the element on which the event was triggered and the mouse locations in
-// Client and widget coordinates, popup a new window showing the appropriate 
+// Client and widget coordinates, popup a new window showing the appropriate
 // content.
 //
 // aTargetContent is the target of the mouse event aEvent that triggered the
 // popup. mElement is the element that the popup menu is attached to.
 // aTargetContent may be equal to mElement or it may be a descendant.
 //
-// This looks for an attribute on |mElement| of the appropriate popup type 
+// This looks for an attribute on |mElement| of the appropriate popup type
 // (popup, context) and uses that attribute's value as an ID for
 // the popup content in the document.
 //
 nsresult
 nsXULPopupListener::LaunchPopup(nsIDOMEvent* aEvent, nsIContent* aTargetContent)
 {
   nsresult rv = NS_OK;
 
@@ -389,18 +389,18 @@ nsXULPopupListener::LaunchPopup(nsIDOMEv
         }
       }
     }
   } else if (!mElement->IsInUncomposedDoc() ||
              !(popup = document->GetElementById(identifier))) {
     // XXXsmaug Should we try to use ShadowRoot::GetElementById in case
     //          mElement is in shadow DOM?
     //
-    // Use getElementById to obtain the popup content and gracefully fail if 
-    // we didn't find any popup content in the document. 
+    // Use getElementById to obtain the popup content and gracefully fail if
+    // we didn't find any popup content in the document.
     NS_WARNING("GetElementById had some kind of spasm.");
     return rv;
   }
 
   // return if no popup was found or the popup is the element itself.
   if (!popup || popup == mElement)
     return NS_OK;
 
--- a/dom/xul/nsXULPopupListener.h
+++ b/dom/xul/nsXULPopupListener.h
@@ -47,15 +47,15 @@ private:
     // When a context menu is opened, focus the target of the contextmenu event.
     nsresult FireFocusOnTargetContent(nsIDOMNode* aTargetNode, bool aIsTouch);
 #endif
 
     // |mElement| is the node to which this listener is attached.
     nsCOMPtr<mozilla::dom::Element> mElement;
 
     // The popup that is getting shown on top of mElement.
-    nsCOMPtr<nsIContent> mPopupContent; 
+    nsCOMPtr<nsIContent> mPopupContent;
 
     // true if a context popup
     bool mIsContext;
 };
 
 #endif // nsXULPopupListener_h___
--- a/dom/xul/nsXULPrototypeDocument.cpp
+++ b/dom/xul/nsXULPrototypeDocument.cpp
@@ -273,17 +273,17 @@ GetNodeInfos(nsXULPrototypeElement* aPro
 }
 
 NS_IMETHODIMP
 nsXULPrototypeDocument::Write(nsIObjectOutputStream* aStream)
 {
     nsresult rv;
 
     rv = aStream->WriteCompoundObject(mURI, NS_GET_IID(nsIURI), true);
-    
+
     uint32_t count;
 
     count = mStyleSheetReferences.Count();
     nsresult tmp = aStream->Write32(count);
     if (NS_FAILED(tmp)) {
       rv = tmp;
     }
 
@@ -297,17 +297,17 @@ nsXULPrototypeDocument::Write(nsIObjectO
     }
 
     // nsIPrincipal mNodeInfoManager->mPrincipal
     tmp = aStream->WriteObject(mNodeInfoManager->DocumentPrincipal(),
                                true);
     if (NS_FAILED(tmp)) {
       rv = tmp;
     }
-    
+
 #ifdef DEBUG
     // XXX Worrisome if we're caching things without system principal.
     if (!nsContentUtils::IsSystemPrincipal(mNodeInfoManager->DocumentPrincipal())) {
         NS_WARNING("Serializing document without system principal");
     }
 #endif
 
     // mozilla::dom::NodeInfo table
@@ -368,34 +368,34 @@ nsXULPrototypeDocument::Write(nsIObjectO
     }
 
     if (mRoot) {
       tmp = mRoot->Serialize(aStream, this, &nodeInfos);
       if (NS_FAILED(tmp)) {
         rv = tmp;
       }
     }
- 
+
     return rv;
 }
 
 
 //----------------------------------------------------------------------
 //
 
 nsresult
 nsXULPrototypeDocument::InitPrincipal(nsIURI* aURI, nsIPrincipal* aPrincipal)
 {
     NS_ENSURE_ARG_POINTER(aURI);
 
     mURI = aURI;
     mNodeInfoManager->SetDocumentPrincipal(aPrincipal);
     return NS_OK;
 }
-    
+
 
 nsIURI*
 nsXULPrototypeDocument::GetURI()
 {
     NS_ASSERTION(mURI, "null URI");
     return mURI;
 }
 
--- a/dom/xul/templates/nsRDFBinding.cpp
+++ b/dom/xul/templates/nsRDFBinding.cpp
@@ -24,17 +24,17 @@ RDFBindingSet::~RDFBindingSet()
 
 nsresult
 RDFBindingSet::AddBinding(nsIAtom* aVar, nsIAtom* aRef, nsIRDFResource* aPredicate)
 {
     RDFBinding* newbinding = new RDFBinding(aRef, aPredicate, aVar);
     if (mFirst) {
         RDFBinding* binding = mFirst;
 
-        while (binding) { 
+        while (binding) {
             // the binding is dependant on the calculation of a previous binding
             if (binding->mSubjectVariable == aVar)
                 newbinding->mHasDependency = true;
 
             // if the target variable is already used in a binding, ignore it
             // since it won't be useful for anything
             if (binding->mTargetVariable == aVar) {
                 delete newbinding;
--- a/dom/xul/templates/nsResourceSet.h
+++ b/dom/xul/templates/nsResourceSet.h
@@ -14,17 +14,17 @@ public:
         : mResources(nullptr),
           mCount(0),
           mCapacity(0) {
         MOZ_COUNT_CTOR(nsResourceSet); }
 
     nsResourceSet(const nsResourceSet& aResourceSet);
 
     nsResourceSet& operator=(const nsResourceSet& aResourceSet);
-    
+
     ~nsResourceSet();
 
     nsresult Clear();
     nsresult Add(nsIRDFResource* aProperty);
     void Remove(nsIRDFResource* aProperty);
 
     bool Contains(nsIRDFResource* aProperty) const;
 
--- a/dom/xul/templates/nsRuleNetwork.h
+++ b/dom/xul/templates/nsRuleNetwork.h
@@ -113,17 +113,17 @@ public:
         MOZ_COUNT_CTOR(MemoryElementSet);
         NS_IF_ADDREF(mElements); }
 
     MemoryElementSet& operator=(const MemoryElementSet& aSet) {
         NS_IF_RELEASE(mElements);
         mElements = aSet.mElements;
         NS_IF_ADDREF(mElements);
         return *this; }
-        
+
     ~MemoryElementSet() {
         MOZ_COUNT_DTOR(MemoryElementSet);
         NS_IF_RELEASE(mElements); }
 
 public:
     class ConstIterator {
     public:
         explicit ConstIterator(List* aElementList) : mCurrent(aElementList) {
@@ -811,17 +811,17 @@ public:
      * each instantiation, either 1) extend the instantiation by
      * adding variable-to-value assignments and memory element support
      * for those assignments, or 2) remove the instantiation because
      * it is inconsistent.
      *
      * The node must then pass the resulting set of instantiations up
      * to its parent (by recursive call; we should make this iterative
      * & interruptable at some point.)
-     * 
+     *
      * @param aInstantiations the set of instantiations that must
      *   be constrained
      * @return NS_OK if no errors occurred
      */
     virtual nsresult Constrain(InstantiationSet& aInstantiations);
 
     /**
      * Given a set of instantiations, filter out any that are
--- a/dom/xul/templates/nsTemplateRule.cpp
+++ b/dom/xul/templates/nsTemplateRule.cpp
@@ -272,17 +272,17 @@ nsTemplateRule::nsTemplateRule(const nsT
           mConditions(nullptr)
 {
     MOZ_COUNT_CTOR(nsTemplateRule);
 }
 
 nsTemplateRule::~nsTemplateRule()
 {
     MOZ_COUNT_DTOR(nsTemplateRule);
-    
+
     while (mBindings) {
         Binding* doomed = mBindings;
         mBindings = mBindings->mNext;
         delete doomed;
     }
 
     while (mConditions) {
         nsTemplateCondition* cdel = mConditions;
--- a/dom/xul/templates/nsTemplateRule.h
+++ b/dom/xul/templates/nsTemplateRule.h
@@ -219,17 +219,17 @@ protected:
 
     // the <action> node, or, if there is no <action>, the container node
     // which contains the content to generate
     nsCOMPtr<nsIContent> mAction;
 
     // the rule filter set by the builder's SetRuleFilter function
     nsCOMPtr<nsIXULTemplateRuleFilter> mRuleFilter;
 
-    // indicates that the rule will only match when generating content 
+    // indicates that the rule will only match when generating content
     // to be inserted into a container with this tag
     nsCOMPtr<nsIAtom> mTag;
 
     // linked-list of the bindings for the rule, owned by the rule.
     Binding* mBindings;
 
     nsCOMPtr<nsIAtom> mRefVariable;
     nsCOMPtr<nsIAtom> mMemberVariable;
@@ -295,17 +295,17 @@ public:
         // nsTemplateMatch stores the index as a 16-bit value,
         // so check to make sure for overflow
         if (mRules.Length() == INT16_MAX)
             return nullptr;
 
         return mRules.AppendElement(nsTemplateRule(aRuleNode, aAction,
                                     aQuerySet));
     }
-    
+
     void RemoveRule(nsTemplateRule *aRule)
     {
         mRules.RemoveElementAt(aRule - mRules.Elements());
     }
 
     int16_t RuleCount() const
     {
         return mRules.Length();
--- a/dom/xul/templates/nsTreeRows.h
+++ b/dom/xul/templates/nsTreeRows.h
@@ -52,17 +52,17 @@ public:
      * corresponds to, and a pointer to the row's subtree, if there
      * are any.
      */
     struct Row {
         nsTemplateMatch* mMatch;
         ContainerType    mContainerType  : 4;
         ContainerState   mContainerState : 4;
         ContainerFill    mContainerFill  : 4;
-        
+
         Subtree*         mSubtree; // XXX eventually move to hashtable
     };
 
     /**
      * A subtree in the tree. A subtree contains rows, which may
      * contain other subtrees.
      */
     class Subtree {
--- a/dom/xul/templates/nsXULContentBuilder.cpp
+++ b/dom/xul/templates/nsXULContentBuilder.cpp
@@ -1123,17 +1123,17 @@ nsXULContentBuilder::CreateContainerCont
             while (existingmatch) {
                 // break out once we've reached a query in the list with a
                 // higher priority, as the new match list is sorted by
                 // priority, and the new match should be inserted here
                 int32_t priority = existingmatch->QuerySetPriority();
                 if (priority > aQuerySet->Priority())
                     break;
 
-                // skip over non-matching containers 
+                // skip over non-matching containers
                 if (existingmatch->GetContainer() == aElement) {
                     // if the same priority is already found, replace it. This can happen
                     // when a container is removed and readded
                     if (priority == aQuerySet->Priority()) {
                         removematch = existingmatch;
                         break;
                     }
 
@@ -1753,17 +1753,17 @@ nsXULContentBuilder::RebuildAll()
 /**** Sorting Methods ****/
 
 nsresult
 nsXULContentBuilder::CompareResultToNode(nsIXULTemplateResult* aResult,
                                          nsIContent* aContent,
                                          int32_t* aSortOrder)
 {
     NS_ASSERTION(aSortOrder, "CompareResultToNode: null out param aSortOrder");
-  
+
     *aSortOrder = 0;
 
     nsTemplateMatch *match = nullptr;
     if (!mContentSupportMap.Get(aContent, &match)) {
         *aSortOrder = mSortState.sortStaticsLast ? -1 : 1;
         return NS_OK;
     }
 
@@ -1859,17 +1859,17 @@ nsXULContentBuilder::InsertSortedNode(ns
             staticCount = staticValue.ToInteger(&strErr);
             if (NS_FAILED(strErr))
                 staticCount = 0;
         } else {
             // compute the "static" XUL element count
             for (nsIContent* child = aContainer->GetFirstChild();
                  child;
                  child = child->GetNextSibling()) {
-                 
+
                 if (nsContentUtils::HasNonEmptyAttr(child, kNameSpaceID_None,
                                                     nsGkAtoms::_template))
                     break;
                 else
                     ++staticCount;
             }
 
             if (mSortState.sortStaticsLast) {
--- a/dom/xul/templates/nsXULSortService.cpp
+++ b/dom/xul/templates/nsXULSortService.cpp
@@ -114,31 +114,31 @@ XULSortServiceImpl::GetItemsToSort(nsICo
     if (builder) {
       nsresult rv = builder->GetQueryProcessor(getter_AddRefs(aSortState->processor));
       if (NS_FAILED(rv) || !aSortState->processor)
         return rv;
 
       return GetTemplateItemsToSort(aContainer, builder, aSortState, aSortItems);
     }
   }
-  
+
   // if there is no template builder, just get the children. For trees,
   // get the treechildren element as use that as the parent
   nsCOMPtr<nsIContent> treechildren;
   if (aContainer->NodeInfo()->Equals(nsGkAtoms::tree, kNameSpaceID_XUL)) {
     nsXULContentUtils::FindChildByTag(aContainer,
                                       kNameSpaceID_XUL,
                                       nsGkAtoms::treechildren,
                                       getter_AddRefs(treechildren));
     if (!treechildren)
       return NS_OK;
-  
+
     aContainer = treechildren;
   }
-  
+
   for (nsIContent* child = aContainer->GetFirstChild();
        child;
        child = child->GetNextSibling()) {
     contentSortInfo* cinfo = aSortItems.AppendElement();
     if (!cinfo)
       return NS_ERROR_OUT_OF_MEMORY;
 
     cinfo->content = child;
@@ -152,17 +152,17 @@ nsresult
 XULSortServiceImpl::GetTemplateItemsToSort(nsIContent* aContainer,
                                            nsIXULTemplateBuilder* aBuilder,
                                            nsSortState* aSortState,
                                            nsTArray<contentSortInfo>& aSortItems)
 {
   for (nsIContent* child = aContainer->GetFirstChild();
        child;
        child = child->GetNextSibling()) {
-  
+
     nsCOMPtr<nsIDOMElement> childnode = do_QueryInterface(child);
 
     nsCOMPtr<nsIXULTemplateResult> result;
     nsresult rv = aBuilder->GetResultForContent(childnode, getter_AddRefs(result));
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (result) {
       contentSortInfo* cinfo = aSortItems.AppendElement();
@@ -183,17 +183,17 @@ XULSortServiceImpl::GetTemplateItemsToSo
 
 int
 testSortCallback(const void *data1, const void *data2, void *privateData)
 {
   /// Note: testSortCallback is a small C callback stub for NS_QuickSort
   contentSortInfo *left = (contentSortInfo *)data1;
   contentSortInfo *right = (contentSortInfo *)data2;
   nsSortState* sortState = (nsSortState *)privateData;
-      
+
   int32_t sortOrder = 0;
 
   if (sortState->direction == nsSortState_natural && sortState->processor) {
     // sort in natural order
     sortState->processor->CompareResults(left->result, right->result,
                                          nullptr, sortState->sortHints, &sortOrder);
   }
   else {
@@ -296,31 +296,31 @@ XULSortServiceImpl::SortContainer(nsICon
     if (parent) {
       parent->AppendChildTo(child, true);
 
       // if it's a container in a tree or menu, find its children,
       // and sort those also
       if (!child->AttrValueIs(kNameSpaceID_None, nsGkAtoms::container,
                               nsGkAtoms::_true, eCaseMatters))
         continue;
-        
+
       for (nsIContent* grandchild = child->GetFirstChild();
            grandchild;
            grandchild = grandchild->GetNextSibling()) {
         mozilla::dom::NodeInfo *ni = grandchild->NodeInfo();
         nsIAtom *localName = ni->NameAtom();
         if (ni->NamespaceID() == kNameSpaceID_XUL &&
             (localName == nsGkAtoms::treechildren ||
              localName == nsGkAtoms::menupopup)) {
           SortContainer(grandchild, aSortState);
         }
       }
     }
   }
-  
+
   return NS_OK;
 }
 
 nsresult
 XULSortServiceImpl::InvertSortInfo(nsTArray<contentSortInfo>& aData,
                                    int32_t aStart, int32_t aNumItems)
 {
   if (aNumItems > 1) {
@@ -409,17 +409,17 @@ XULSortServiceImpl::InitializeSortState(
 
   // set up sort order info
   aSortState->invertSort = false;
 
   nsAutoString existingsort;
   aRootElement->GetAttr(kNameSpaceID_None, nsGkAtoms::sort, existingsort);
   nsAutoString existingsortDirection;
   aRootElement->GetAttr(kNameSpaceID_None, nsGkAtoms::sortDirection, existingsortDirection);
-          
+
   // if just switching direction, set the invertSort flag
   if (sort.Equals(existingsort)) {
     if (aSortState->direction == nsSortState_descending) {
       if (existingsortDirection.EqualsLiteral("ascending"))
         aSortState->invertSort = true;
     }
     else if (aSortState->direction == nsSortState_ascending &&
              existingsortDirection.EqualsLiteral("descending")) {
@@ -483,21 +483,21 @@ XULSortServiceImpl::Sort(nsIDOMNode* aNo
   nsCOMPtr<nsIContent> sortNode = do_QueryInterface(aNode);
   if (!sortNode)
     return NS_ERROR_FAILURE;
 
   nsSortState sortState;
   nsresult rv = InitializeSortState(sortNode, sortNode,
                                     aSortKey, aSortHints, &sortState);
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   // store sort info in attributes on content
   SetSortHints(sortNode, &sortState);
   rv = SortContainer(sortNode, &sortState);
-  
+
   sortState.processor = nullptr; // don't hang on to this reference
   return rv;
 }
 
 nsresult
 NS_NewXULSortService(nsIXULSortService** sortService)
 {
   *sortService = new XULSortServiceImpl();
--- a/dom/xul/templates/nsXULSortService.h
+++ b/dom/xul/templates/nsXULSortService.h
@@ -32,17 +32,17 @@
 #include "nsIXULSortService.h"
 #include "nsCycleCollectionParticipant.h"
 
 enum nsSortState_direction {
   nsSortState_descending,
   nsSortState_ascending,
   nsSortState_natural
 };
-  
+
 // the sort state holds info about the current sort
 struct nsSortState
 {
   bool initialized;
   MOZ_INIT_OUTSIDE_CTOR bool invertSort;
   MOZ_INIT_OUTSIDE_CTOR bool inbetweenSeparatorSort;
   MOZ_INIT_OUTSIDE_CTOR bool sortStaticsLast;
   MOZ_INIT_OUTSIDE_CTOR bool isContainerRDFSeq;
--- a/dom/xul/templates/nsXULTemplateBuilder.cpp
+++ b/dom/xul/templates/nsXULTemplateBuilder.cpp
@@ -59,17 +59,17 @@
 #include "nsGkAtoms.h"
 #include "nsXULElement.h"
 #include "jsapi.h"
 #include "mozilla/Logging.h"
 #include "rdf.h"
 #include "PLDHashTable.h"
 #include "plhash.h"
 #include "nsPIDOMWindow.h"
-#include "nsIConsoleService.h" 
+#include "nsIConsoleService.h"
 #include "nsNetUtil.h"
 #include "nsXULTemplateBuilder.h"
 #include "nsXULTemplateQueryProcessorRDF.h"
 #include "nsXULTemplateQueryProcessorXML.h"
 #include "nsXULTemplateQueryProcessorStorage.h"
 #include "nsContentUtils.h"
 #include "ChildIterator.h"
 #include "mozilla/dom/ScriptSettings.h"
@@ -293,17 +293,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsIXULTemplateBuilder)
   NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver)
   NS_INTERFACE_MAP_ENTRY(nsIMutationObserver)
   NS_INTERFACE_MAP_ENTRY(nsIObserver)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIXULTemplateBuilder)
 NS_INTERFACE_MAP_END
 
-JSObject* 
+JSObject*
 nsXULTemplateBuilder::WrapObject(JSContext* aCx,
                                  JS::Handle<JSObject*> aGivenProto)
 {
     return XULTemplateBuilderBinding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 //
@@ -793,17 +793,17 @@ nsXULTemplateBuilder::UpdateResultInCont
                     // through the later matches to determine if one should
                     // now become the active match.
                     while (findmatch) {
                         // only other matches with the same container should
                         // now match, leave other containers alone
                         if (findmatch->GetContainer() == aInsertionPoint) {
                             nsTemplateQuerySet* qs =
                                 mQuerySets[findmatch->QuerySetPriority()];
-                        
+
                             DetermineMatchedRule(aInsertionPoint, findmatch->mResult,
                                                  qs, &matchedrule, &ruleindex);
 
                             if (matchedrule) {
                                 rv = findmatch->RuleMatched(qs,
                                                             matchedrule, ruleindex,
                                                             findmatch->mResult);
                                 if (NS_FAILED(rv))
@@ -1294,33 +1294,33 @@ nsXULTemplateBuilder::NodeWillBeDestroye
 nsresult
 nsXULTemplateBuilder::LoadDataSources(nsIDocument* aDocument,
                                       bool* aShouldDelayBuilding)
 {
     NS_PRECONDITION(mRoot != nullptr, "not initialized");
 
     nsresult rv;
     bool isRDFQuery = false;
-  
+
     // we'll set these again later, after we create a new composite ds
     mDB = nullptr;
     mCompDB = nullptr;
     mDataSource = nullptr;
 
     *aShouldDelayBuilding = false;
 
     nsAutoString datasources;
     mRoot->GetAttr(kNameSpaceID_None, nsGkAtoms::datasources, datasources);
 
     nsAutoString querytype;
     mRoot->GetAttr(kNameSpaceID_None, nsGkAtoms::querytype, querytype);
 
     // create the query processor. The querytype attribute on the root element
     // may be used to create one of a specific type.
-  
+
     // XXX should non-chrome be restricted to specific names?
     if (querytype.IsEmpty())
         querytype.AssignLiteral("rdf");
 
     if (querytype.EqualsLiteral("rdf")) {
         isRDFQuery = true;
         mQueryProcessor = new nsXULTemplateQueryProcessorRDF();
     }
@@ -1351,20 +1351,20 @@ nsXULTemplateBuilder::LoadDataSources(ns
     if (xuldoc)
         xuldoc->SetTemplateBuilderFor(mRoot, this);
 
     if (!mRoot->IsXULElement()) {
         // Hmm. This must be an HTML element. Try to set it as a
         // JS property "by hand".
         InitHTMLTemplateRoot();
     }
-  
+
     return NS_OK;
 }
-  
+
 nsresult
 nsXULTemplateBuilder::LoadDataSourceUrls(nsIDocument* aDocument,
                                          const nsAString& aDataSources,
                                          bool aIsRDFQuery,
                                          bool* aShouldDelayBuilding)
 {
     // Grab the doc's principal...
     nsIPrincipal *docPrincipal = aDocument->NodePrincipal();
@@ -1442,17 +1442,17 @@ nsXULTemplateBuilder::LoadDataSourceUrls
     rv = mQueryProcessor->GetDatasource(uriList,
                                         rootNode,
                                         isTrusted,
                                         this,
                                         aShouldDelayBuilding,
                                         getter_AddRefs(mDataSource));
     NS_ENSURE_SUCCESS(rv, rv);
 
-    if (aIsRDFQuery && mDataSource) {  
+    if (aIsRDFQuery && mDataSource) {
         // check if we were given an inference engine type
         nsCOMPtr<nsIRDFInferDataSource> inferDB = do_QueryInterface(mDataSource);
         if (inferDB) {
             nsCOMPtr<nsIRDFDataSource> ds;
             inferDB->GetBaseDataSource(getter_AddRefs(ds));
             if (ds)
                 mCompDB = do_QueryInterface(ds);
         }
@@ -2126,17 +2126,17 @@ nsXULTemplateBuilder::CompileExtendedQue
     nsXULContentUtils::FindChildByTag(aRuleElement,
                                       kNameSpaceID_XUL,
                                       nsGkAtoms::conditions,
                                       getter_AddRefs(conditions));
 
     // allow the conditions to be placed directly inside the rule
     if (!conditions)
         conditions = aRuleElement;
-  
+
     rv = CompileConditions(rule, conditions);
     // If the rule compilation failed, then we have to bail.
     if (NS_FAILED(rv)) {
         aQuerySet->RemoveRule(rule);
         return rv;
     }
 
     rule->SetVars(mRefVariable, aMemberVariable);
--- a/dom/xul/templates/nsXULTemplateBuilder.h
+++ b/dom/xul/templates/nsXULTemplateBuilder.h
@@ -208,17 +208,17 @@ public:
      * be true.
      *
      * aCanUseTemplate will be set to true if the template's queries could be
      * compiled, and false otherwise. If false, the entire template is
      * invalid.
      *
      * @param aTemplate <template> to compile
      * @param aQuerySet first queryset
-     * @param aIsQuerySet true if 
+     * @param aIsQuerySet true if
      * @param aPriority the queryset index, incremented when a new one is added
      * @param aCanUseTemplate true if template is valid
      */
     nsresult
     CompileTemplate(nsIContent* aTemplate,
                     nsTemplateQuerySet* aQuerySet,
                     bool aIsQuerySet,
                     int32_t* aPriority,
@@ -228,17 +228,17 @@ public:
      * Compile a query using the extended syntax. For backwards compatible RDF
      * syntax where there is no <query>, the <conditions> becomes the query.
      *
      * @param aRuleElement <rule> element
      * @param aActionElement <action> element
      * @param aMemberVariable member variable for the query
      * @param aQuerySet the queryset
      */
-    nsresult 
+    nsresult
     CompileExtendedQuery(nsIContent* aRuleElement,
                          nsIContent* aActionElement,
                          nsIAtom* aMemberVariable,
                          nsTemplateQuerySet* aQuerySet);
 
     /**
      * Determine the ref variable and tag from inside a RDF query.
      */
@@ -254,17 +254,17 @@ public:
      * Compile a simple query. A simple query is one that doesn't have a
      * <query> and should use a default query which would normally just return
      * a list of children of the reference point.
      *
      * @param aRuleElement the <rule>
      * @param aQuerySet the query set
      * @param aCanUseTemplate true if the query is valid
      */
-    nsresult 
+    nsresult
     CompileSimpleQuery(nsIContent* aRuleElement,
                        nsTemplateQuerySet* aQuerySet,
                        bool* aCanUseTemplate);
 
     /**
      * Compile the <conditions> tag in a rule
      *
      * @param aRule template rule
@@ -371,19 +371,19 @@ public:
     SubstituteText(nsIXULTemplateResult* aMatch,
                    const nsAString& aAttributeValue,
                    nsAString& aResult);
 
     static void
     SubstituteTextAppendText(nsXULTemplateBuilder* aThis, const nsAString& aText, void* aClosure);
 
     static void
-    SubstituteTextReplaceVariable(nsXULTemplateBuilder* aThis, const nsAString& aVariable, void* aClosure);    
+    SubstituteTextReplaceVariable(nsXULTemplateBuilder* aThis, const nsAString& aVariable, void* aClosure);
 
-    nsresult 
+    nsresult
     IsSystemPrincipal(nsIPrincipal *principal, bool *result);
 
     /**
      * Convenience method which gets a resource for a result. If a result
      * doesn't have a resource set, it will create one from the result's id.
      */
     nsresult GetResultResource(nsIXULTemplateResult* aResult,
                                nsIRDFResource** aResource);
@@ -485,17 +485,17 @@ protected:
      */
     bool
     IsActivated(nsIRDFResource *aResource);
 
     /**
      * Returns true if content may be generated for a result, or false if it
      * cannot, for example, if it would be created inside a closed container.
      * Those results will be generated when the container is opened.
-     * If false is returned, no content should be generated. Possible 
+     * If false is returned, no content should be generated. Possible
      * insertion locations may optionally be set for new content, depending on
      * the builder being used. Note that *aLocations or some items within
      * aLocations may be null.
      */
     virtual bool
     GetInsertionLocations(nsIXULTemplateResult* aResult,
                           nsCOMArray<nsIContent>** aLocations) = 0;
 
--- a/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp
+++ b/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp
@@ -125,17 +125,17 @@ nsXULTemplateQueryProcessorRDF::InitGlob
     }
 
     if (!gRDFContainerUtils) {
         NS_DEFINE_CID(kRDFContainerUtilsCID, NS_RDFCONTAINERUTILS_CID);
         rv = CallGetService(kRDFContainerUtilsCID, &gRDFContainerUtils);
         if (NS_FAILED(rv))
             return rv;
     }
-  
+
     if (!kNC_BookmarkSeparator) {
         gRDFService->GetResource(
           NS_LITERAL_CSTRING(NC_NAMESPACE_URI "BookmarkSeparator"),
                              &kNC_BookmarkSeparator);
     }
 
     if (!kRDF_type) {
         gRDFService->GetResource(
@@ -168,17 +168,17 @@ nsXULTemplateQueryProcessorRDF::GetDatas
 
     NS_ENSURE_TRUE(root, NS_ERROR_UNEXPECTED);
 
     // make sure the RDF service is set up
     rv = InitGlobals();
     NS_ENSURE_SUCCESS(rv, rv);
 
     // create a database for the builder
-    compDB = do_CreateInstance(NS_RDF_DATASOURCE_CONTRACTID_PREFIX 
+    compDB = do_CreateInstance(NS_RDF_DATASOURCE_CONTRACTID_PREFIX
                                "composite-datasource");
     if (!compDB) {
         NS_ERROR("unable to construct new composite data source");
         return NS_ERROR_UNEXPECTED;
     }
 
     // check for magical attributes. XXX move to ``flags''?
     if (root->AttrValueIs(kNameSpaceID_None,
@@ -381,17 +381,17 @@ nsXULTemplateQueryProcessorRDF::CompileQ
         return rv;
 
     query->SetQueryNode(aQueryNode);
 
     nsInstantiationNode* instnode = new nsInstantiationNode(this, query);
 
     // this and other functions always add nodes to mAllTests first. That
     // way if something fails, the node will just sit harmlessly in mAllTests
-    // where it can be deleted later. 
+    // where it can be deleted later.
     rv = mAllTests.Add(instnode);
     if (NS_FAILED(rv)) {
         delete instnode;
         return rv;
     }
 
     rv = lastnode->AddChild(instnode);
     if (NS_FAILED(rv))
@@ -686,17 +686,17 @@ nsXULTemplateQueryProcessorRDF::CompareR
             nsCOMPtr<nsIRDFBlob> r = do_QueryInterface(rightNode);
             if (r) {
                 const uint8_t *lval, *rval;
                 int32_t llen, rlen;
                 l->GetValue(&lval);
                 l->GetLength(&llen);
                 r->GetValue(&rval);
                 r->GetLength(&rlen);
-                
+
                 collation->CompareRawSortKey(lval, llen, rval, rlen, aResult);
             }
         }
     }
 
     // if the results are none of the above, just pretend that they are equal
     return NS_OK;
 }
@@ -1244,38 +1244,38 @@ nsXULTemplateQueryProcessorRDF::CompileQ
                ("xultemplate[%p] unrecognized condition test <%s>",
                 this, tagstrC.get()));
     }
 
     return rv;
 }
 
 nsresult
-nsXULTemplateQueryProcessorRDF::ParseLiteral(const nsString& aParseType, 
+nsXULTemplateQueryProcessorRDF::ParseLiteral(const nsString& aParseType,
                                              const nsString& aValue,
                                              nsIRDFNode** aResult)
 {
     nsresult rv = NS_OK;
     *aResult = nullptr;
 
     if (aParseType.EqualsLiteral(PARSE_TYPE_INTEGER)) {
         nsCOMPtr<nsIRDFInt> intLiteral;
         nsresult errorCode;
         int32_t intValue = aValue.ToInteger(&errorCode);
         if (NS_FAILED(errorCode))
             return NS_ERROR_FAILURE;
         rv = gRDFService->GetIntLiteral(intValue, getter_AddRefs(intLiteral));
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
         intLiteral.forget(aResult);
     }
     else {
         nsCOMPtr<nsIRDFLiteral> literal;
         rv = gRDFService->GetLiteral(aValue.get(), getter_AddRefs(literal));
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
         literal.forget(aResult);
     }
     return rv;
 }
 
 nsresult
 nsXULTemplateQueryProcessorRDF::CompileTripleCondition(nsRDFQuery* aQuery,
@@ -1580,17 +1580,17 @@ nsXULTemplateQueryProcessorRDF::CompileS
             if (value.FindChar(':') != -1) { // XXXwaterson WRONG WRONG WRONG!
                 nsCOMPtr<nsIRDFResource> resource;
                 rv = gRDFService->GetUnicodeResource(value, getter_AddRefs(resource));
                 if (NS_FAILED(rv))
                     return rv;
 
                 target = do_QueryInterface(resource);
             }
-            else {                
+            else {
               nsAutoString parseType;
               aQueryElement->GetAttr(kNameSpaceID_None, nsGkAtoms::parsetype, parseType);
               rv = ParseLiteral(parseType, value, getter_AddRefs(target));
               if (NS_FAILED(rv))
                   return rv;
             }
 
             testnode = new nsRDFPropertyTestNode(prevnode, this,
@@ -1606,17 +1606,17 @@ nsXULTemplateQueryProcessorRDF::CompileS
                 return rv;
         }
 
         if (testnode) {
             if (prevnode) {
                 rv = prevnode->AddChild(testnode);
                 if (NS_FAILED(rv))
                     return rv;
-            }                
+            }
             else {
                 aQuery->SetRoot(testnode);
             }
 
             prevnode = testnode;
         }
     }
 
@@ -1797,17 +1797,17 @@ nsXULTemplateQueryProcessorRDF::GetSortV
                                              nsIRDFResource* aPredicate,
                                              nsIRDFResource* aSortPredicate,
                                              nsISupports** aResultNode)
 {
     nsCOMPtr<nsIRDFResource> source;
     nsresult rv = aResult->GetResource(getter_AddRefs(source));
     if (NS_FAILED(rv))
         return rv;
-    
+
     nsCOMPtr<nsIRDFNode> value;
     if (source && mDB) {
         // first check predicate?sort=true so that datasources may use a
         // custom value for sorting
         rv = mDB->GetTarget(source, aSortPredicate, true,
                             getter_AddRefs(value));
         if (NS_FAILED(rv))
             return rv;
--- a/dom/xul/templates/nsXULTemplateQueryProcessorRDF.h
+++ b/dom/xul/templates/nsXULTemplateQueryProcessorRDF.h
@@ -49,17 +49,17 @@ public:
 
     // nsISupports interface
     NS_DECL_CYCLE_COLLECTING_ISUPPORTS
     NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsXULTemplateQueryProcessorRDF,
                                              nsIXULTemplateQueryProcessor)
 
     // nsIXULTemplateQueryProcessor interface
     NS_DECL_NSIXULTEMPLATEQUERYPROCESSOR
-   
+
     // nsIRDFObserver interface
     NS_DECL_NSIRDFOBSERVER
 
     /*
      * Propagate all changes through the rule network when an assertion is
      * added to the graph, adding any new results.
      */
     nsresult
@@ -134,17 +134,17 @@ public:
                       nsIContent* aConditions,
                       TestNode* aParentNode,
                       TestNode** aResult);
 
     /**
      * Parse the value of a property test assertion for a condition or a simple
      * rule based on the parseType attribute into the appropriate literal type.
      */
-    nsresult ParseLiteral(const nsString& aParseType, 
+    nsresult ParseLiteral(const nsString& aParseType,
                           const nsString& aValue,
                           nsIRDFNode** aResult);
 
     /**
      * Compile a <triple> condition and return the compiled node in aResult.
      * This node will have been added to mAllTests which owns the node and
      * set as a child of aParentNode.
      */
--- a/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp
+++ b/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp
@@ -138,17 +138,17 @@ nsXULTemplateResultSetStorage::FillColum
 //
 // nsXULTemplateQueryProcessorStorage
 //
 
 NS_IMPL_ISUPPORTS(nsXULTemplateQueryProcessorStorage,
                   nsIXULTemplateQueryProcessor)
 
 
-nsXULTemplateQueryProcessorStorage::nsXULTemplateQueryProcessorStorage() 
+nsXULTemplateQueryProcessorStorage::nsXULTemplateQueryProcessorStorage()
     : mGenerationStarted(false)
 {
 }
 
 NS_IMETHODIMP
 nsXULTemplateQueryProcessorStorage::GetDatasource(nsIArray* aDataSources,
                                                   nsIDOMNode* aRootNode,
                                                   bool aIsTrusted,
@@ -282,17 +282,17 @@ nsXULTemplateQueryProcessorStorage::Comp
 
     uint32_t length;
     childNodes->GetLength(&length);
 
     nsCOMPtr<mozIStorageStatement> statement;
     nsCOMPtr<nsIContent> queryContent = do_QueryInterface(aQueryNode);
     nsAutoString sqlQuery;
 
-    // Let's get all text nodes (which should be the query) 
+    // Let's get all text nodes (which should be the query)
     if (!nsContentUtils::GetNodeTextContent(queryContent, false, sqlQuery, fallible)) {
       return NS_ERROR_OUT_OF_MEMORY;
     }
 
     nsresult rv = mStorageConnection->CreateStatement(NS_ConvertUTF16toUTF8(sqlQuery),
                                                               getter_AddRefs(statement));
     if (NS_FAILED(rv)) {
         nsXULContentUtils::LogTemplateError(ERROR_TEMPLATE_STORAGE_BAD_QUERY);
--- a/dom/xul/templates/nsXULTemplateQueryProcessorXML.cpp
+++ b/dom/xul/templates/nsXULTemplateQueryProcessorXML.cpp
@@ -373,17 +373,17 @@ nsXULTemplateQueryProcessorXML::Translat
     if (doc)
         rootElement = doc->GetRootElement();
     else
         rootElement = do_QueryInterface(aDatasource);
 
     // if no root element, just return. The document may not have loaded yet
     if (!rootElement)
         return NS_OK;
-    
+
     RefPtr<nsXULTemplateResultXML> result = new nsXULTemplateResultXML(nullptr, rootElement, nullptr);
     result.forget(aRef);
 
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
--- a/dom/xul/templates/nsXULTemplateQueryProcessorXML.h
+++ b/dom/xul/templates/nsXULTemplateQueryProcessorXML.h
@@ -24,17 +24,17 @@
 #include "mozilla/dom/XPathEvaluator.h"
 #include "mozilla/dom/XPathResult.h"
 
 class nsXULTemplateQueryProcessorXML;
 
 #define NS_IXMLQUERY_IID \
   {0x0358d692, 0xccce, 0x4a97, \
     { 0xb2, 0x51, 0xba, 0x8f, 0x17, 0x0f, 0x3b, 0x6f }}
- 
+
 class nsXMLQuery final : public nsISupports
 {
   public:
     NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXMLQUERY_IID)
 
     NS_DECL_ISUPPORTS
 
     // return a weak reference to the processor the query was created from
--- a/dom/xul/templates/nsXULTemplateResultSetRDF.cpp
+++ b/dom/xul/templates/nsXULTemplateResultSetRDF.cpp
@@ -22,17 +22,17 @@ nsXULTemplateResultSetRDF::HasMoreElemen
 
     if (mCheckedNext) {
         if (!mCurrent || mCurrent == &(mInstantiations->mHead))
             *aResult = false;
         return NS_OK;
     }
 
     mCheckedNext = true;
-                
+
     do {
         if (mCurrent) {
             mCurrent = mCurrent->mNext;
             if (mCurrent == &(mInstantiations->mHead)) {
                 *aResult = false;
                 return NS_OK;
             }
         }
--- a/dom/xul/templates/nsXULTreeBuilder.cpp
+++ b/dom/xul/templates/nsXULTreeBuilder.cpp
@@ -58,17 +58,17 @@ nsXULTreeBuilder::nsXULTreeBuilder(Eleme
       mSortDirection(eDirection_Natural), mSortHints(0)
 {
 }
 
 nsXULTreeBuilder::~nsXULTreeBuilder()
 {
 }
 
-JSObject* 
+JSObject*
 nsXULTreeBuilder::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
     return XULTreeBuilderBinding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsXULTreeBuilder::Uninit(bool aIsFinal)
 {
@@ -210,17 +210,17 @@ nsXULTreeBuilder::Sort(Element& aElement
     else {
         dir.AssignLiteral("ascending");
         mSortDirection = eDirection_Ascending;
     }
 
     // Sort it.
     SortSubtree(mRows.GetRoot());
     mRows.InvalidateCachedRow();
-    if (mBoxObject) 
+    if (mBoxObject)
         mBoxObject->Invalidate();
 
     nsTreeUtils::UpdateSortIndicators(&aElement, dir);
 }
 
 NS_IMETHODIMP
 nsXULTreeBuilder::Sort(nsIDOMElement* aElement)
 {
@@ -1033,17 +1033,17 @@ nsXULTreeBuilder::HasGeneratedContent(ns
     }
 
     if (!mRootResult) {
         return false;
     }
 
     nsCOMPtr<nsIRDFResource> rootresource;
     aError = mRootResult->GetResource(getter_AddRefs(rootresource));
-    if (aError.Failed()) { 
+    if (aError.Failed()) {
         return false;
     }
 
     return aResource == rootresource ||
            mRows.FindByResource(aResource) != mRows.Last();
 }
 
 bool
@@ -1248,24 +1248,24 @@ nsXULTreeBuilder::SynchronizeResult(nsIX
 //----------------------------------------------------------------------
 
 nsresult
 nsXULTreeBuilder::EnsureSortVariables()
 {
     // Grovel through <treecols> kids to find the <treecol>
     // with the sort attributes.
     nsCOMPtr<nsIContent> treecols;
- 
+
     nsXULContentUtils::FindChildByTag(mRoot, kNameSpaceID_XUL,
                                       nsGkAtoms::treecols,
                                       getter_AddRefs(treecols));
 
     if (!treecols)
         return NS_OK;
-        
+
     for (nsIContent* child = treecols->GetFirstChild();
          child;
          child = child->GetNextSibling()) {
 
         if (child->NodeInfo()->Equals(nsGkAtoms::treecol,
                                       kNameSpaceID_XUL)) {
             if (child->AttrValueIs(kNameSpaceID_None, nsGkAtoms::sortActive,
                                    nsGkAtoms::_true, eCaseMatters)) {
@@ -1508,17 +1508,17 @@ nsresult
 nsXULTreeBuilder::OpenSubtreeForQuerySet(nsTreeRows::Subtree* aSubtree,
                                          int32_t aIndex,
                                          nsIXULTemplateResult* aResult,
                                          nsTemplateQuerySet* aQuerySet,
                                          int32_t* aDelta,
                                          nsTArray<int32_t>& open)
 {
     int32_t count = *aDelta;
-    
+
     nsCOMPtr<nsISimpleEnumerator> results;
     nsresult rv = mQueryProcessor->GenerateResults(mDataSource, aResult,
                                                    aQuerySet->mCompiledQuery,
                                                    getter_AddRefs(results));
     if (NS_FAILED(rv))
         return rv;
 
     bool hasMoreResults;
@@ -1849,17 +1849,17 @@ nsXULTreeBuilder::CanDrop(int32_t aRow, 
         if (observer) {
             bool canDrop = false;
             observer->CanDrop(aRow, aOrientation, aDataTransfer, &canDrop);
             if (canDrop) {
                 return true;
             }
         }
     }
-    
+
     return false;
 }
 
 NS_IMETHODIMP
 nsXULTreeBuilder::CanDrop(int32_t index, int32_t orientation,
                           nsIDOMDataTransfer* dataTransfer, bool *_retval)
 {
     ErrorResult rv;
--- a/dom/xul/templates/nsXULTreeBuilder.h
+++ b/dom/xul/templates/nsXULTreeBuilder.h
@@ -303,17 +303,17 @@ protected:
      */
     Direction mSortDirection;
 
     /*
      * Sort hints (compare case, etc)
      */
     uint32_t mSortHints;
 
-    /** 
+    /**
      * The builder observers.
      */
     nsTArray<nsCOMPtr<nsIXULTreeBuilderObserver>> mObservers;
 
     /*
      * XUL store for holding open container state
      */
     nsCOMPtr<nsIXULStore> mLocalStore;
--- a/extensions/auth/gssapi.h
+++ b/extensions/auth/gssapi.h
@@ -1,22 +1,22 @@
 /* vim:set ts=4 sw=4 sts=4 et cindent: */
 /* ***** BEGIN LICENSE BLOCK *****
  * Copyright 1993 by OpenVision Technologies, Inc.
- * 
+ *
  * Permission to use, copy, modify, distribute, and sell this software
  * and its documentation for any purpose is hereby granted without fee,
  * provided that the above copyright notice appears in all copies and
  * that both that copyright notice and this permission notice appear in
  * supporting documentation, and that the name of OpenVision not be used
  * in advertising or publicity pertaining to distribution of the software
  * without specific, written prior permission. OpenVision makes no
  * representations about the suitability of this software for any
  * purpose.  It is provided "as is" without express or implied warranty.
- * 
+ *
  * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  ****** END LICENSE BLOCK ***** */
@@ -33,26 +33,26 @@
 /*
  * On Mac OS X, Kerberos/Kerberos.h is used to gain access to certain
  * system-specific Kerberos functions, but on 10.4, that file also brings
  * in other headers that conflict with this one.
  */
 #define _GSSAPI_GENERIC_H_
 #define _GSSAPI_KRB5_H_
 
-/* 
+/*
  * Define windows specific needed parameters.
  */
 
 #ifndef GSS_CALLCONV
 #if defined(_WIN32)
 #define GSS_CALLCONV __stdcall
 #define GSS_CALLCONV_C __cdecl
 #else
-#define GSS_CALLCONV 
+#define GSS_CALLCONV
 #define GSS_CALLCONV_C
 #endif
 #endif /* GSS_CALLCONV */
 
 #ifdef GSS_USE_FUNCTION_POINTERS
 #ifdef _WIN32
 #undef GSS_CALLCONV
 #define GSS_CALLCONV
@@ -71,17 +71,17 @@
  */
 #include <stddef.h>
 
 /*
  * Configure set the following
  */
 
 #ifndef SIZEOF_LONG
-#undef SIZEOF_LONG 
+#undef SIZEOF_LONG
 #endif
 #ifndef SIZEOF_SHORT
 #undef SIZEOF_SHORT
 #endif
 
 #ifndef EXTERN_C_BEGIN
 #ifdef __cplusplus
 #define EXTERN_C_BEGIN extern "C" {
@@ -107,17 +107,17 @@ EXTERN_C_BEGIN
 
 /*
  * Now define the three implementation-dependent types.
  */
 
 typedef void * gss_name_t ;
 typedef void * gss_ctx_id_t ;
 typedef void * gss_cred_id_t ;
- 
+
 
 /*
  * The following type must be defined as the smallest natural
  * unsigned integer supported by the platform that has at least
  * 32 bits of precision.
  */
 
 #if SIZEOF_LONG == 4
@@ -139,17 +139,17 @@ typedef unsigned int gss_uint32;
 #error Incompatible definition of OM_uint32 from xom.h
 #endif
 
 typedef OM_object_identifier gss_OID_desc, *gss_OID;
 
 #else /* !OM_STRING */
 
 /*
- * We can't use X/Open definitions, so roll our own.               
+ * We can't use X/Open definitions, so roll our own.
  */
 typedef gss_uint32 OM_uint32;
 typedef struct gss_OID_desc_struct {
   OM_uint32 length;
   void *elements;
 } gss_OID_desc, *gss_OID;
 
 #endif /* !OM_STRING */
@@ -316,34 +316,34 @@ extern gss_OID GSS_C_NT_STRING_UID_NAME;
  * {6, (void *)"\x2b\x06\x01\x05\x06\x02"},
  * corresponding to an object-identifier value of
  * {iso(1) org(3) dod(6) internet(1) security(5)
  * nametypes(6) gss-host-based-services(2)).  The constant
  * GSS_C_NT_HOSTBASED_SERVICE_X should be initialized to point
  * to that gss_OID_desc.  This is a deprecated OID value, and
  * implementations wishing to support hostbased-service names
  * should instead use the GSS_C_NT_HOSTBASED_SERVICE OID,
- * defined below, to identify such names; 
- * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym 
+ * defined below, to identify such names;
+ * GSS_C_NT_HOSTBASED_SERVICE_X should be accepted a synonym
  * for GSS_C_NT_HOSTBASED_SERVICE when presented as an input
- * parameter, but should not be emitted by GSSAPI 
+ * parameter, but should not be emitted by GSSAPI
  * implementations
  */
 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE_X;
 
 /*
  * The implementation must reserve static storage for a
  * gss_OID_desc object containing the value
  * {10, (void *)"\x2a\x86\x48\x86\xf7\x12"
- *              "\x01\x02\x01\x04"}, corresponding to an 
- * object-identifier value of {iso(1) member-body(2) 
- * Unites States(840) mit(113554) infosys(1) gssapi(2) 
+ *              "\x01\x02\x01\x04"}, corresponding to an
+ * object-identifier value of {iso(1) member-body(2)
+ * Unites States(840) mit(113554) infosys(1) gssapi(2)
  * generic(1) service_name(4)}.  The constant
- * GSS_C_NT_HOSTBASED_SERVICE should be initialized 
- * to point to that gss_OID_desc.  
+ * GSS_C_NT_HOSTBASED_SERVICE should be initialized
+ * to point to that gss_OID_desc.
  */
 extern gss_OID GSS_C_NT_HOSTBASED_SERVICE;
 
 
 /*
  * The implementation must reserve static storage for a
  * gss_OID_desc object containing the value
  * {6, (void *)"\x2b\x06\01\x05\x06\x03"},
@@ -443,37 +443,37 @@ extern gss_OID GSS_C_NT_EXPORT_NAME;
 #define GSS_S_UNSEQ_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
 #define GSS_S_GAP_TOKEN (1ul << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
 
 /*
  * Finally, function prototypes for the GSS-API routines.
  */
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_acquire_cred)
 (OM_uint32 *,             /*  minor_status */
  const gss_name_t,        /* desired_name */
  OM_uint32,               /* time_req */
  const gss_OID_set,       /* desired_mechs */
  gss_cred_usage_t,        /* cred_usage */
  gss_cred_id_t *,         /* output_cred_handle */
  gss_OID_set *,           /* actual_mechs */
  OM_uint32 *              /* time_rec */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_release_cred)
 (OM_uint32 *,             /* minor_status */
  gss_cred_id_t *          /* cred_handle */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_init_sec_context)
 (OM_uint32 *,             /* minor_status */
  const gss_cred_id_t,     /* initiator_cred_handle */
  gss_ctx_id_t *,          /* context_handle */
  const gss_name_t,        /* target_name */
  const gss_OID,           /* mech_type */
  OM_uint32,               /* req_flags */
  OM_uint32,               /* time_req */
@@ -481,305 +481,305 @@ GSS_CALLCONV GSS_FUNC(gss_init_sec_conte
  const gss_buffer_t,      /* input_token */
  gss_OID *,               /* actual_mech_type */
  gss_buffer_t,            /* output_token */
  OM_uint32 *,             /* ret_flags */
  OM_uint32 *              /* time_rec */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_accept_sec_context)
 (OM_uint32 *,             /* minor_status */
  gss_ctx_id_t *,          /* context_handle */
  const gss_cred_id_t,     /* acceptor_cred_handle */
  const gss_buffer_t,      /* input_token_buffer */
  const gss_channel_bindings_t, /* input_chan_bindings */
  gss_name_t *,            /* src_name */
  gss_OID *,               /* mech_type */
  gss_buffer_t,            /* output_token */
  OM_uint32 *,             /* ret_flags */
  OM_uint32 *,             /* time_rec */
  gss_cred_id_t *          /* delegated_cred_handle */
               );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_process_context_token)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  const gss_buffer_t       /* token_buffer */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_delete_sec_context)
 (OM_uint32 *,             /* minor_status */
  gss_ctx_id_t *,          /* context_handle */
  gss_buffer_t             /* output_token */
  );
 
 GSS_MAKE_TYPEDEF
 OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_context_time)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  OM_uint32 *              /* time_rec */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_get_mic)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  gss_qop_t,               /* qop_req */
  const gss_buffer_t,      /* message_buffer */
  gss_buffer_t             /* message_token */
  );
 
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_verify_mic)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  const gss_buffer_t,      /* message_buffer */
  const gss_buffer_t,      /* token_buffer */
  gss_qop_t *              /* qop_state */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_wrap)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  int,                     /* conf_req_flag */
  gss_qop_t,               /* qop_req */
  const gss_buffer_t,      /* input_message_buffer */
  int *,                   /* conf_state */
  gss_buffer_t             /* output_message_buffer */
  );
 
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_unwrap)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  const gss_buffer_t,      /* input_message_buffer */
  gss_buffer_t,            /* output_message_buffer */
  int *,                   /* conf_state */
  gss_qop_t *              /* qop_state */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_display_status)
 (OM_uint32 *,             /* minor_status */
  OM_uint32,               /* status_value */
  int,                     /* status_type */
  const gss_OID,           /* mech_type */
  OM_uint32 *,             /* message_context */
  gss_buffer_t             /* status_string */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_indicate_mechs)
 (OM_uint32 *,             /* minor_status */
  gss_OID_set *            /* mech_set */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_compare_name)
 (OM_uint32 *,             /* minor_status */
  const gss_name_t,        /* name1 */
  const gss_name_t,        /* name2 */
  int *                    /* name_equal */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_display_name)
 (OM_uint32 *,             /* minor_status */
  const gss_name_t,        /* input_name */
  gss_buffer_t,            /* output_name_buffer */
  gss_OID *                /* output_name_type */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_import_name)
 (OM_uint32 *,             /* minor_status */
  const gss_buffer_t,      /* input_name_buffer */
  const gss_OID,           /* input_name_type */
  gss_name_t *             /* output_name */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_export_name)
 (OM_uint32  *,            /* minor_status */
  const gss_name_t,        /* input_name */
  gss_buffer_t             /* exported_name */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_release_name)
 (OM_uint32 *,             /* minor_status */
  gss_name_t *             /* input_name */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_release_buffer)
 (OM_uint32 *,             /* minor_status */
  gss_buffer_t             /* buffer */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_release_oid_set)
 (OM_uint32 *,             /* minor_status */
  gss_OID_set *            /* set */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_inquire_cred)
 (OM_uint32 *,             /* minor_status */
  const gss_cred_id_t,     /* cred_handle */
  gss_name_t *,            /* name */
  OM_uint32 *,             /* lifetime */
  gss_cred_usage_t *,      /* cred_usage */
  gss_OID_set *            /* mechanisms */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_inquire_context)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  gss_name_t *,            /* src_name */
  gss_name_t *,            /* targ_name */
  OM_uint32 *,             /* lifetime_rec */
  gss_OID *,               /* mech_type */
  OM_uint32 *,             /* ctx_flags */
  int *,                   /* locally_initiated */
  int *                    /* open */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
-GSS_CALLCONV GSS_FUNC(gss_wrap_size_limit) 
+OM_uint32
+GSS_CALLCONV GSS_FUNC(gss_wrap_size_limit)
 (OM_uint32 *,             /* minor_status */
  const gss_ctx_id_t,      /* context_handle */
  int,                     /* conf_req_flag */
  gss_qop_t,               /* qop_req */
  OM_uint32,               /* req_output_size */
  OM_uint32 *              /* max_input_size */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
-GSS_CALLCONV GSS_FUNC(gss_add_cred) 
+OM_uint32
+GSS_CALLCONV GSS_FUNC(gss_add_cred)
 (OM_uint32 *,             /* minor_status */
  const gss_cred_id_t,     /* input_cred_handle */
  const gss_name_t,        /* desired_name */
  const gss_OID,           /* desired_mech */
  gss_cred_usage_t,        /* cred_usage */
  OM_uint32,               /* initiator_time_req */
  OM_uint32,               /* acceptor_time_req */
  gss_cred_id_t *,         /* output_cred_handle */
  gss_OID_set *,           /* actual_mechs */
  OM_uint32 *,             /* initiator_time_rec */
  OM_uint32 *              /* acceptor_time_rec */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
-GSS_CALLCONV GSS_FUNC(gss_inquire_cred_by_mech) 
+OM_uint32
+GSS_CALLCONV GSS_FUNC(gss_inquire_cred_by_mech)
 (OM_uint32 *,             /* minor_status */
  const gss_cred_id_t,     /* cred_handle */
  const gss_OID,           /* mech_type */
  gss_name_t *,            /* name */
  OM_uint32 *,             /* initiator_lifetime */
  OM_uint32 *,             /* acceptor_lifetime */
  gss_cred_usage_t *       /* cred_usage */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_export_sec_context)
 (OM_uint32 *,             /* minor_status */
  gss_ctx_id_t *,          /* context_handle */
  gss_buffer_t             /* interprocess_token */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_import_sec_context)
 (OM_uint32 *,             /* minor_status */
  const gss_buffer_t,      /* interprocess_token */
  gss_ctx_id_t *           /* context_handle */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_create_empty_oid_set)
 (OM_uint32 *,             /* minor_status */
  gss_OID_set *            /* oid_set */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_add_oid_set_member)
 (OM_uint32 *,             /* minor_status */
  const gss_OID,           /* member_oid */
  gss_OID_set *            /* oid_set */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_test_oid_set_member)
 (OM_uint32 *,             /* minor_status */
  const gss_OID,           /* member */
  const gss_OID_set,       /* set */
  int *                    /* present */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_inquire_names_for_mech)
 (OM_uint32 *,             /* minor_status */
  const gss_OID,           /* mechanism */
  gss_OID_set *            /* name_types */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_inquire_mechs_for_name)
 (OM_uint32 *,             /* minor_status */
  const gss_name_t,        /* input_name */
  gss_OID_set *            /* mech_types */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_canonicalize_name)
 (OM_uint32 *,             /* minor_status */
  const gss_name_t,        /* input_name */
  const gss_OID,           /* mech_type */
  gss_name_t *             /* output_name */
  );
 
 GSS_MAKE_TYPEDEF
-OM_uint32 
+OM_uint32
 GSS_CALLCONV GSS_FUNC(gss_duplicate_name)
 (OM_uint32 *,             /* minor_status */
  const gss_name_t,        /* src_name */
  gss_name_t *             /* dest_name */
  );
 
    /*
     * The following routines are obsolete variants of gss_get_mic,
@@ -788,28 +788,28 @@ GSS_CALLCONV GSS_FUNC(gss_duplicate_name
     * compatibility with V1 applications.  Distinct entrypoints
     * (as opposed to #defines) should be provided, both to allow
     * GSSAPI V1 applications to link against GSSAPI V2 implementations,
     * and to retain the slight parameter type differences between the
     * obsolete versions of these routines and their current forms.
     */
 
    GSS_MAKE_TYPEDEF
-   OM_uint32 
+   OM_uint32
    GSS_CALLCONV GSS_FUNC(gss_sign)
               (OM_uint32 *,        /* minor_status */
                gss_ctx_id_t,       /* context_handle */
                int,                /* qop_req */
                gss_buffer_t,       /* message_buffer */
                gss_buffer_t        /* message_token */
               );
 
 
    GSS_MAKE_TYPEDEF
-   OM_uint32 
+   OM_uint32
    GSS_CALLCONV GSS_FUNC(gss_verify)
               (OM_uint32 *,        /* minor_status */
                gss_ctx_id_t,       /* context_handle */
                gss_buffer_t,       /* message_buffer */
                gss_buffer_t,       /* token_buffer */
                int *               /* qop_state */
               );
 
@@ -822,17 +822,17 @@ GSS_CALLCONV GSS_FUNC(gss_duplicate_name
                int,                /* qop_req */
                gss_buffer_t,       /* input_message_buffer */
                int *,              /* conf_state */
                gss_buffer_t        /* output_message_buffer */
               );
 
 
    GSS_MAKE_TYPEDEF
-   OM_uint32 
+   OM_uint32
    GSS_CALLCONV GSS_FUNC(gss_unseal)
               (OM_uint32 *,        /* minor_status */
                gss_ctx_id_t,       /* context_handle */
                gss_buffer_t,       /* input_message_buffer */
                gss_buffer_t,       /* output_message_buffer */
                int *,              /* conf_state */
                int *               /* qop_state */
               );
--- a/extensions/auth/nsAuth.h
+++ b/extensions/auth/nsAuth.h
@@ -11,17 +11,17 @@ enum pType {
      PACKAGE_TYPE_NEGOTIATE,
      PACKAGE_TYPE_NTLM
 };
 
 #include "mozilla/Logging.h"
 
 //
 // in order to do logging, the following environment variables need to be set:
-// 
+//
 //      set NSPR_LOG_MODULES=negotiateauth:4
 //      set NSPR_LOG_FILE=negotiateauth.log
 //
 extern mozilla::LazyLogModule gNegotiateLog;
 
 #define LOG(args) MOZ_LOG(gNegotiateLog, mozilla::LogLevel::Debug, args)
 
 #endif /* !defined( nsAuth_h__ ) */
--- a/extensions/auth/nsAuthFactory.cpp
+++ b/extensions/auth/nsAuthFactory.cpp
@@ -43,33 +43,33 @@ static nsresult
 nsSysNTLMAuthConstructor(nsISupports *outer, REFNSIID iid, void **result)
 {
   if (outer)
     return NS_ERROR_NO_AGGREGATION;
 
   nsAuthSSPI *auth = new nsAuthSSPI(PACKAGE_TYPE_NTLM);
   if (!auth)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   NS_ADDREF(auth);
   nsresult rv = auth->QueryInterface(iid, result);
   NS_RELEASE(auth);
   return rv;
 }
 
 static nsresult
 nsKerbSSPIAuthConstructor(nsISupports *outer, REFNSIID iid, void **result)
 {
   if (outer)
     return NS_ERROR_NO_AGGREGATION;
 
   nsAuthSSPI *auth = new nsAuthSSPI(PACKAGE_TYPE_KERBEROS);
   if (!auth)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   NS_ADDREF(auth);
   nsresult rv = auth->QueryInterface(iid, result);
   NS_RELEASE(auth);
   return rv;
 }
 
 #define NS_SYSNTLMAUTH_CID                         \
 { /* dc195987-6e9a-47bc-b1fd-ab895d398833 */       \
@@ -131,33 +131,33 @@ static nsresult
 nsKerbGSSAPIAuthConstructor(nsISupports *outer, REFNSIID iid, void **result)
 {
   if (outer)
     return NS_ERROR_NO_AGGREGATION;
 
   nsAuthGSSAPI *auth = new nsAuthGSSAPI(PACKAGE_TYPE_KERBEROS);
   if (!auth)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   NS_ADDREF(auth);
   nsresult rv = auth->QueryInterface(iid, result);
   NS_RELEASE(auth);
   return rv;
 }
 
 static nsresult
 nsGSSAPIAuthConstructor(nsISupports *outer, REFNSIID iid, void **result)
 {
   if (outer)
     return NS_ERROR_NO_AGGREGATION;
 
   nsAuthGSSAPI *auth = new nsAuthGSSAPI(PACKAGE_TYPE_NEGOTIATE);
   if (!auth)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   NS_ADDREF(auth);
   nsresult rv = auth->QueryInterface(iid, result);
   NS_RELEASE(auth);
   return rv;
 }
 
 
 #if defined( USE_SSPI )
--- a/extensions/auth/nsAuthGSSAPI.cpp
+++ b/extensions/auth/nsAuthGSSAPI.cpp
@@ -50,22 +50,22 @@ typedef KLStatus (*KLCacheHasValidTicket
 using namespace mozilla;
 
 //-----------------------------------------------------------------------------
 
 // We define GSS_C_NT_HOSTBASED_SERVICE explicitly since it may be referenced
 // by by a different name depending on the implementation of gss but always
 // has the same value
 
-static gss_OID_desc gss_c_nt_hostbased_service = 
+static gss_OID_desc gss_c_nt_hostbased_service =
     { 10, (void *) "\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x04" };
 
 static const char kNegotiateAuthGssLib[] =
     "network.negotiate-auth.gsslib";
-static const char kNegotiateAuthNativeImp[] = 
+static const char kNegotiateAuthNativeImp[] =
    "network.negotiate-auth.using-native-gsslib";
 
 static struct GSSFunction {
     const char *str;
     PRFuncPtr func;
 } gssFuncs[] = {
     { "gss_display_status", nullptr },
     { "gss_init_sec_context", nullptr },
@@ -100,18 +100,18 @@ static PRFuncPtr KLCacheHasValidTicketsP
 #endif
 
 static nsresult
 gssInit()
 {
     nsXPIDLCString libPath;
     nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
     if (prefs) {
-        prefs->GetCharPref(kNegotiateAuthGssLib, getter_Copies(libPath)); 
-        prefs->GetBoolPref(kNegotiateAuthNativeImp, &gssNativeImp); 
+        prefs->GetCharPref(kNegotiateAuthGssLib, getter_Copies(libPath));
+        prefs->GetBoolPref(kNegotiateAuthNativeImp, &gssNativeImp);
     }
 
     PRLibrary *lib = nullptr;
 
     if (!libPath.IsEmpty()) {
         LOG(("Attempting to load user specified library [%s]\n", libPath.get()));
         gssNativeImp = false;
         lib = PR_LoadLibrary(libPath.get());
@@ -143,67 +143,67 @@ gssInit()
         PRLibSpec libSpec;
         for (size_t i = 0; i < ArrayLength(verLibNames); ++i) {
             libSpec.type = PR_LibSpec_Pathname;
             libSpec.value.pathname = verLibNames[i];
             lib = PR_LoadLibraryWithFlags(libSpec, PR_LD_GLOBAL);
         }
 
 #else
-        
+
         const char *const libNames[] = {
             "gss",
             "gssapi_krb5",
             "gssapi"
         };
-        
+
         const char *const verLibNames[] = {
             "libgssapi_krb5.so.2", /* MIT - FC, Suse10, Debian */
             "libgssapi.so.4",      /* Heimdal - Suse10, MDK */
             "libgssapi.so.1"       /* Heimdal - Suse9, CITI - FC, MDK, Suse10*/
         };
 
         for (size_t i = 0; i < ArrayLength(verLibNames) && !lib; ++i) {
             lib = PR_LoadLibrary(verLibNames[i]);
- 
+
             /* The CITI libgssapi library calls exit() during
              * initialization if it's not correctly configured. Try to
              * ensure that we never use this library for our GSSAPI
              * support, as its just a wrapper library, anyway.
              * See Bugzilla #325433
              */
             if (lib &&
-                PR_FindFunctionSymbol(lib, 
+                PR_FindFunctionSymbol(lib,
                                       "internal_krb5_gss_initialize") &&
                 PR_FindFunctionSymbol(lib, "gssd_pname_to_uid")) {
                 LOG(("CITI libgssapi found, which calls exit(). Skipping\n"));
                 PR_UnloadLibrary(lib);
                 lib = nullptr;
             }
         }
 
         for (size_t i = 0; i < ArrayLength(libNames) && !lib; ++i) {
             char *libName = PR_GetLibraryName(nullptr, libNames[i]);
             if (libName) {
                 lib = PR_LoadLibrary(libName);
                 PR_FreeLibraryName(libName);
 
                 if (lib &&
-                    PR_FindFunctionSymbol(lib, 
+                    PR_FindFunctionSymbol(lib,
                                           "internal_krb5_gss_initialize") &&
                     PR_FindFunctionSymbol(lib, "gssd_pname_to_uid")) {
                     LOG(("CITI libgssapi found, which calls exit(). Skipping\n"));
                     PR_UnloadLibrary(lib);
                     lib = nullptr;
-                } 
+                }
             }
         }
 #endif
     }
-    
+
     if (!lib) {
         LOG(("Fail to load gssapi library\n"));
         return NS_ERROR_FAILURE;
     }
 
     LOG(("Attempting to load gss functions\n"));
 
     for (size_t i = 0; i < ArrayLength(gssFuncs); ++i) {
@@ -295,38 +295,38 @@ nsAuthGSSAPI::nsAuthGSSAPI(pType package
 
     if (!gssLibrary && NS_FAILED(gssInit()))
         return;
 
     mCtx = GSS_C_NO_CONTEXT;
     mMechOID = &gss_krb5_mech_oid_desc;
 
     // if the type is kerberos we accept it as default
-    // and exit 
+    // and exit
 
     if (package == PACKAGE_TYPE_KERBEROS)
         return;
 
     // Now, look at the list of supported mechanisms,
     // if SPNEGO is found, then use it.
     // Otherwise, set the desired mechanism to
     // GSS_C_NO_OID and let the system try to use
     // the default mechanism.
     //
     // Using Kerberos directly (instead of negotiating
     // with SPNEGO) may work in some cases depending
     // on how smart the server side is.
-    
+
     majstat = gss_indicate_mechs_ptr(&minstat, &mech_set);
     if (GSS_ERROR(majstat))
         return;
 
     if (mech_set) {
         for (i=0; i<mech_set->count; i++) {
-            item = &mech_set->elements[i];    
+            item = &mech_set->elements[i];
             if (item->length == gss_spnego_mech_oid_desc.length &&
                 !memcmp(item->elements, gss_spnego_mech_oid_desc.elements,
                 item->length)) {
                 // ok, we found it
                 mMechOID = &gss_spnego_mech_oid_desc;
                 break;
             }
         }
@@ -409,17 +409,17 @@ nsAuthGSSAPI::GetNextToken(const void *i
     LOG(("entering nsAuthGSSAPI::GetNextToken()\n"));
 
     if (!gssLibrary)
        return NS_ERROR_NOT_INITIALIZED;
 
     // If they've called us again after we're complete, reset to start afresh.
     if (mComplete)
         Reset();
-    
+
     if (mServiceFlags & REQ_DELEGATE)
         req_flags |= GSS_C_DELEG_FLAG;
 
     if (mServiceFlags & REQ_MUTUAL_AUTH)
         req_flags |= GSS_C_MUTUAL_FLAG;
 
     input_token.value = (void *)mServiceName.get();
     input_token.length = mServiceName.Length() + 1;
@@ -445,29 +445,29 @@ nsAuthGSSAPI::GetNextToken(const void *i
     }
     else if (mCtx != GSS_C_NO_CONTEXT) {
         // If there is no input token, then we are starting a new
         // authentication sequence.  If we have already initialized our
         // security context, then we're in trouble because it means that the
         // first sequence failed.  We need to bail or else we might end up in
         // an infinite loop.
         LOG(("Cannot restart authentication sequence!"));
-        return NS_ERROR_UNEXPECTED; 
+        return NS_ERROR_UNEXPECTED;
     }
 
 #if defined(XP_MACOSX)
     // Suppress Kerberos prompts to get credentials.  See bug 240643.
-    // We can only use Mac OS X specific kerb functions if we are using 
+    // We can only use Mac OS X specific kerb functions if we are using
     // the native lib
-    KLBoolean found;    
+    KLBoolean found;
     bool doingMailTask = mServiceName.Find("imap@") ||
                            mServiceName.Find("pop@") ||
                            mServiceName.Find("smtp@") ||
                            mServiceName.Find("ldap@");
-    
+
     if (!doingMailTask && (gssNativeImp &&
          (KLCacheHasValidTickets_ptr(nullptr, kerberosVersion_V5, &found, nullptr, nullptr) != klNoErr || !found)))
     {
         major_status = GSS_S_FAILURE;
         minor_status = 0;
     }
     else
 #endif /* XP_MACOSX */
@@ -497,24 +497,24 @@ nsAuthGSSAPI::GetNextToken(const void *i
         mComplete = true;
     }
     else if (major_status == GSS_S_CONTINUE_NEEDED) {
         //
         // The important thing is that we do NOT reset the
         // context here because it will be needed on the
         // next call.
         //
-    } 
-    
+    }
+
     *outTokenLen = output_token.length;
     if (output_token.length != 0)
         *outToken = nsMemory::Clone(output_token.value, output_token.length);
     else
         *outToken = nullptr;
-    
+
     gss_release_buffer_ptr(&minor_status, &output_token);
 
     if (major_status == GSS_S_COMPLETE)
         rv = NS_SUCCESS_AUTH_FINISHED;
     else
         rv = NS_OK;
 
 end:
@@ -558,17 +558,17 @@ nsAuthGSSAPI::Unwrap(const void *inToken
         *outToken = nsMemory::Clone(output_token.value, output_token.length);
     else
         *outToken = nullptr;
 
     gss_release_buffer_ptr(&minor_status, &output_token);
 
     return NS_OK;
 }
- 
+
 NS_IMETHODIMP
 nsAuthGSSAPI::Wrap(const void *inToken,
                    uint32_t    inTokenLen,
                    bool        confidential,
                    void      **outToken,
                    uint32_t   *outTokenLen)
 {
     OM_uint32 major_status, minor_status;
@@ -581,17 +581,17 @@ nsAuthGSSAPI::Wrap(const void *inToken,
 
     major_status = gss_wrap_ptr(&minor_status,
                                 mCtx,
                                 confidential,
                                 GSS_C_QOP_DEFAULT,
                                 &input_token,
                                 nullptr,
                                 &output_token);
-    
+
     if (GSS_ERROR(major_status)) {
         LogGssError(major_status, minor_status, "gss_wrap() failed");
         Reset();
         gss_release_buffer_ptr(&minor_status, &output_token);
         return NS_ERROR_FAILURE;
     }
 
     *outTokenLen = output_token.length;
--- a/extensions/auth/nsAuthGSSAPI.h
+++ b/extensions/auth/nsAuthGSSAPI.h
@@ -16,27 +16,27 @@
 #include "gssapi.h"
 
 // The nsAuthGSSAPI class provides responses for the GSS-API Negotiate method
 // as specified by Microsoft in draft-brezak-spnego-http-04.txt
 
 /* Some remarks on thread safety ...
  *
  * The thread safety of this class depends largely upon the thread safety of
- * the underlying GSSAPI and Kerberos libraries. This code just loads the 
- * system GSSAPI library, and whilst it avoids loading known bad libraries, 
+ * the underlying GSSAPI and Kerberos libraries. This code just loads the
+ * system GSSAPI library, and whilst it avoids loading known bad libraries,
  * it cannot determine the thread safety of the the code it loads.
  *
- * When used with a non-threadsafe library, it is not safe to simultaneously 
+ * When used with a non-threadsafe library, it is not safe to simultaneously
  * use multiple instantiations of this class.
  *
- * When used with a threadsafe Kerberos library, multiple instantiations of 
- * this class may happily co-exist. Methods may be sequentially called from 
- * multiple threads. The nature of the GSSAPI protocol is such that a correct 
- * implementation will never call methods in parallel, as the results of the 
+ * When used with a threadsafe Kerberos library, multiple instantiations of
+ * this class may happily co-exist. Methods may be sequentially called from
+ * multiple threads. The nature of the GSSAPI protocol is such that a correct
+ * implementation will never call methods in parallel, as the results of the
  * last call are required as input to the next.
  */
 
 class nsAuthGSSAPI final : public nsIAuthModule
 {
 public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIAUTHMODULE
--- a/extensions/auth/nsAuthSASL.cpp
+++ b/extensions/auth/nsAuthSASL.cpp
@@ -12,52 +12,52 @@
 
 static const char kNegotiateAuthSSPI[] = "network.auth.use-sspi";
 
 nsAuthSASL::nsAuthSASL()
 {
     mSASLReady = false;
 }
 
-void nsAuthSASL::Reset() 
+void nsAuthSASL::Reset()
 {
     mSASLReady = false;
 }
 
 /* Limitations apply to this class's thread safety. See the header file */
 NS_IMPL_ISUPPORTS(nsAuthSASL, nsIAuthModule)
 
 NS_IMETHODIMP
 nsAuthSASL::Init(const char *serviceName,
                  uint32_t    serviceFlags,
                  const char16_t *domain,
                  const char16_t *username,
                  const char16_t *password)
 {
     nsresult rv;
-    
+
     NS_ASSERTION(username, "SASL requires a username");
     NS_ASSERTION(!domain && !password, "unexpected credentials");
 
     mUsername = username;
-    
+
     // If we're doing SASL, we should do mutual auth
     serviceFlags |= REQ_MUTUAL_AUTH;
-   
+
     // Find out whether we should be trying SSPI or not
     const char *contractID = NS_AUTH_MODULE_CONTRACTID_PREFIX "kerb-gss";
-    
+
     nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
     if (prefs) {
         bool val;
         rv = prefs->GetBoolPref(kNegotiateAuthSSPI, &val);
         if (NS_SUCCEEDED(rv) && val)
             contractID = NS_AUTH_MODULE_CONTRACTID_PREFIX "kerb-sspi";
     }
-    
+
     mInnerModule = do_CreateInstance(contractID, &rv);
     // if we can't create the GSSAPI module, then bail
     NS_ENSURE_SUCCESS(rv, rv);
 
     mInnerModule->Init(serviceName, serviceFlags, nullptr, nullptr, nullptr);
 
     return NS_OK;
 }
@@ -68,66 +68,66 @@ nsAuthSASL::GetNextToken(const void *inT
                          void      **outToken,
                          uint32_t   *outTokenLen)
 {
     nsresult rv;
     void *unwrappedToken;
     char *message;
     uint32_t unwrappedTokenLen, messageLen;
     nsAutoCString userbuf;
-    
-    if (!mInnerModule) 
+
+    if (!mInnerModule)
         return NS_ERROR_NOT_INITIALIZED;
 
     if (mSASLReady) {
         // If the server COMPLETEs with an empty token, Cyrus sends us that token.
         // I don't think this is correct, but we need to handle that behaviour.
         // Cyrus ignores the contents of our reply token.
         if (inTokenLen == 0) {
             *outToken = nullptr;
             *outTokenLen = 0;
             return NS_OK;
         }
         // We've completed the GSSAPI portion of the handshake, and are
         // now ready to do the SASL security layer and authzid negotiation
 
         // Input packet from the server needs to be unwrapped.
-        rv = mInnerModule->Unwrap(inToken, inTokenLen, &unwrappedToken, 
+        rv = mInnerModule->Unwrap(inToken, inTokenLen, &unwrappedToken,
                                   &unwrappedTokenLen);
         if (NS_FAILED(rv)) {
             Reset();
             return rv;
         }
-        
+
         // If we were doing security layers then we'd care what the
         // server had sent us. We're not, so all we had to do was make
         // sure that the signature was correct with the above unwrap()
         free(unwrappedToken);
-        
+
         NS_CopyUnicodeToNative(mUsername, userbuf);
         messageLen = userbuf.Length() + 4 + 1;
         message = (char *)moz_xmalloc(messageLen);
         if (!message) {
           Reset();
           return NS_ERROR_OUT_OF_MEMORY;
         }
         message[0] = 0x01; // No security layer
         message[1] = 0x00;
         message[2] = 0x00;
         message[3] = 0x00; // Maxbuf must be zero if we've got no sec layer
         strcpy(message+4, userbuf.get());
         // Userbuf should not be nullptr terminated, so trim the trailing nullptr
         // when wrapping the message
-        rv = mInnerModule->Wrap((void *) message, messageLen-1, false, 
+        rv = mInnerModule->Wrap((void *) message, messageLen-1, false,
                                 outToken, outTokenLen);
         free(message);
         Reset(); // All done
         return NS_SUCCEEDED(rv) ? NS_SUCCESS_AUTH_FINISHED : rv;
     }
-    rv = mInnerModule->GetNextToken(inToken, inTokenLen, outToken, 
+    rv = mInnerModule->GetNextToken(inToken, inTokenLen, outToken,
                                     outTokenLen);
     if (rv == NS_SUCCESS_AUTH_FINISHED) {
         mSASLReady = true;
         rv = NS_OK;
     }
     return rv;
 }
 
--- a/extensions/auth/nsAuthSSPI.cpp
+++ b/extensions/auth/nsAuthSSPI.cpp
@@ -100,17 +100,17 @@ MakeSN(const char *principal, nsCString 
     nsAutoCString buf(principal);
 
     // The service name looks like "protocol@hostname", we need to map
     // this to a value that SSPI expects.  To be consistent with IE, we
     // need to map '@' to '/' and canonicalize the hostname.
     int32_t index = buf.FindChar('@');
     if (index == kNotFound)
         return NS_ERROR_UNEXPECTED;
-    
+
     nsCOMPtr<nsIDNSService> dns = do_GetService(NS_DNSSERVICE_CONTRACTID, &rv);
     if (NS_FAILED(rv))
         return rv;
 
     // This could be expensive if our DNS cache cannot satisfy the request.
     // However, we should have at least hit the OS resolver once prior to
     // reaching this code, so provided the OS resolver has this information
     // cached, we should not have to worry about blocking on this function call
@@ -166,17 +166,17 @@ nsAuthSSPI::~nsAuthSSPI()
 void
 nsAuthSSPI::Reset()
 {
     mIsFirst = true;
 
     if (mCertDERData){
         free(mCertDERData);
         mCertDERData = nullptr;
-        mCertDERLength = 0;   
+        mCertDERLength = 0;
     }
 
     if (mCtxt.dwLower || mCtxt.dwUpper) {
         (sspi->DeleteSecurityContext)(&mCtxt);
         memset(&mCtxt, 0, sizeof(mCtxt));
     }
 }
 
@@ -241,17 +241,17 @@ nsAuthSSPI::Init(const char *serviceName
     }
     mMaxTokenLen = pinfo->cbMaxToken;
     (sspi->FreeContextBuffer)(pinfo);
 
     MS_TimeStamp useBefore;
 
     SEC_WINNT_AUTH_IDENTITY_W ai;
     SEC_WINNT_AUTH_IDENTITY_W *pai = nullptr;
-    
+
     // domain, username, and password will be null if nsHttpNTLMAuth's ChallengeReceived
     // returns false for identityInvalid. Use default credentials in this case by passing
     // null for pai.
     if (username && password) {
         // Keep a copy of these strings for the duration
         mUsername.Assign(username);
         mPassword.Assign(password);
         mDomain.Assign(domain);
@@ -288,29 +288,29 @@ nsAuthSSPI::Init(const char *serviceName
     }
 
     LOG(("AcquireCredentialsHandle() succeeded.\n"));
     return NS_OK;
 }
 
 // The arguments inToken and inTokenLen are used to pass in the server
 // certificate (when available) in the first call of the function. The
-// second time these arguments hold an input token. 
+// second time these arguments hold an input token.
 NS_IMETHODIMP
 nsAuthSSPI::GetNextToken(const void *inToken,
                          uint32_t    inTokenLen,
                          void      **outToken,
                          uint32_t   *outTokenLen)
 {
     // String for end-point bindings.
-    const char end_point[] = "tls-server-end-point:"; 
+    const char end_point[] = "tls-server-end-point:";
     const int end_point_length = sizeof(end_point) - 1;
     const int hash_size = 32;  // Size of a SHA256 hash.
     const int cbt_size = hash_size + end_point_length;
-	
+
     SECURITY_STATUS rc;
     MS_TimeStamp ignored;
 
     DWORD ctxAttr, ctxReq = 0;
     CtxtHandle *ctxIn;
     SecBufferDesc ibd, obd;
     // Optional second input buffer for the CBT (Channel Binding Token)
     SecBuffer ib[2], ob;
@@ -336,73 +336,73 @@ nsAuthSSPI::GetNextToken(const void *inT
             // the token represents the server certificate.
             mIsFirst = false;
             mCertDERLength = inTokenLen;
             mCertDERData = moz_xmalloc(inTokenLen);
             if (!mCertDERData)
                 return NS_ERROR_OUT_OF_MEMORY;
             memcpy(mCertDERData, inToken, inTokenLen);
 
-            // We are starting a new authentication sequence.  
+            // We are starting a new authentication sequence.
             // If we have already initialized our
             // security context, then we're in trouble because it means that the
             // first sequence failed.  We need to bail or else we might end up in
             // an infinite loop.
             if (mCtxt.dwLower || mCtxt.dwUpper) {
                 LOG(("Cannot restart authentication sequence!"));
                 return NS_ERROR_UNEXPECTED;
             }
             ctxIn = nullptr;
-            // The certificate needs to be erased before being passed 
+            // The certificate needs to be erased before being passed
             // to InitializeSecurityContextW().
             inToken = nullptr;
             inTokenLen = 0;
         } else {
             ibd.ulVersion = SECBUFFER_VERSION;
             ibd.cBuffers = 0;
             ibd.pBuffers = ib;
-            
+
             // If we have stored a certificate, the Channel Binding Token
             // needs to be generated and sent in the first input buffer.
             if (mCertDERLength > 0) {
-                // First we create a proper Endpoint Binding structure. 
+                // First we create a proper Endpoint Binding structure.
                 pendpoint_binding.dwInitiatorAddrType = 0;
                 pendpoint_binding.cbInitiatorLength = 0;
                 pendpoint_binding.dwInitiatorOffset = 0;
                 pendpoint_binding.dwAcceptorAddrType = 0;
                 pendpoint_binding.cbAcceptorLength = 0;
                 pendpoint_binding.dwAcceptorOffset = 0;
                 pendpoint_binding.cbApplicationDataLength = cbt_size;
-                pendpoint_binding.dwApplicationDataOffset = 
+                pendpoint_binding.dwApplicationDataOffset =
                                             sizeof(SEC_CHANNEL_BINDINGS);
 
                 // Then add it to the array of sec buffers accordingly.
                 ib[ibd.cBuffers].BufferType = SECBUFFER_CHANNEL_BINDINGS;
                 ib[ibd.cBuffers].cbBuffer =
                         pendpoint_binding.cbApplicationDataLength
                         + pendpoint_binding.dwApplicationDataOffset;
-          
+
                 sspi_cbt = (char *) moz_xmalloc(ib[ibd.cBuffers].cbBuffer);
                 if (!sspi_cbt){
                     return NS_ERROR_OUT_OF_MEMORY;
                 }
 
                 // Helper to write in the memory block that stores the CBT
                 char* sspi_cbt_ptr = sspi_cbt;
-          
+
                 ib[ibd.cBuffers].pvBuffer = sspi_cbt;
                 ibd.cBuffers++;
 
                 memcpy(sspi_cbt_ptr, &pendpoint_binding,
                        pendpoint_binding.dwApplicationDataOffset);
                 sspi_cbt_ptr += pendpoint_binding.dwApplicationDataOffset;
 
                 memcpy(sspi_cbt_ptr, end_point, end_point_length);
                 sspi_cbt_ptr += end_point_length;
-          
+
                 // Start hashing. We are always doing SHA256, but depending
                 // on the certificate, a different alogirthm might be needed.
                 nsAutoCString hashString;
 
                 nsresult rv;
                 nsCOMPtr<nsICryptoHash> crypto;
                 crypto = do_CreateInstance(NS_CRYPTO_HASH_CONTRACTID, &rv);
                 if (NS_SUCCEEDED(rv))
@@ -413,39 +413,39 @@ nsAuthSSPI::GetNextToken(const void *inT
                     rv = crypto->Finish(false, hashString);
                 if (NS_FAILED(rv)) {
                     free(mCertDERData);
                     mCertDERData = nullptr;
                     mCertDERLength = 0;
                     free(sspi_cbt);
                     return rv;
                 }
-          
+
                 // Once the hash has been computed, we store it in memory right
                 // after the Endpoint structure and the "tls-server-end-point:"
                 // char array.
                 memcpy(sspi_cbt_ptr, hashString.get(), hash_size);
-          
+
                 // Free memory used to store the server certificate
                 free(mCertDERData);
                 mCertDERData = nullptr;
                 mCertDERLength = 0;
             } // End of CBT computation.
 
             // We always need this SECBUFFER.
             ib[ibd.cBuffers].BufferType = SECBUFFER_TOKEN;
             ib[ibd.cBuffers].cbBuffer = inTokenLen;
             ib[ibd.cBuffers].pvBuffer = (void *) inToken;
             ibd.cBuffers++;
             ctxIn = &mCtxt;
         }
     } else { // First time and without a token (no server certificate)
-        // We are starting a new authentication sequence.  If we have already 
-        // initialized our security context, then we're in trouble because it 
-        // means that the first sequence failed.  We need to bail or else we 
+        // We are starting a new authentication sequence.  If we have already
+        // initialized our security context, then we're in trouble because it
+        // means that the first sequence failed.  We need to bail or else we
         // might end up in an infinite loop.
         if (mCtxt.dwLower || mCtxt.dwUpper || mCertDERData || mCertDERLength) {
             LOG(("Cannot restart authentication sequence!"));
             return NS_ERROR_UNEXPECTED;
         }
         ctxIn = nullptr;
         mIsFirst = false;
     }
@@ -482,17 +482,17 @@ nsAuthSSPI::GetNextToken(const void *inT
 
         if (rc == SEC_E_OK)
             LOG(("InitializeSecurityContext: succeeded.\n"));
         else
             LOG(("InitializeSecurityContext: continue.\n"));
 
         if (sspi_cbt)
             free(sspi_cbt);
-            
+
         if (!ob.cbBuffer) {
             free(ob.pvBuffer);
             ob.pvBuffer = nullptr;
         }
         *outToken = ob.pvBuffer;
         *outTokenLen = ob.cbBuffer;
 
         if (rc == SEC_E_OK)
@@ -514,25 +514,25 @@ nsAuthSSPI::Unwrap(const void *inToken,
                    uint32_t   *outTokenLen)
 {
     SECURITY_STATUS rc;
     SecBufferDesc ibd;
     SecBuffer ib[2];
 
     ibd.cBuffers = 2;
     ibd.pBuffers = ib;
-    ibd.ulVersion = SECBUFFER_VERSION; 
+    ibd.ulVersion = SECBUFFER_VERSION;
 
     // SSPI Buf
     ib[0].BufferType = SECBUFFER_STREAM;
     ib[0].cbBuffer = inTokenLen;
     ib[0].pvBuffer = moz_xmalloc(ib[0].cbBuffer);
     if (!ib[0].pvBuffer)
         return NS_ERROR_OUT_OF_MEMORY;
-    
+
     memcpy(ib[0].pvBuffer, inToken, inTokenLen);
 
     // app data
     ib[1].BufferType = SECBUFFER_DATA;
     ib[1].cbBuffer = 0;
     ib[1].pvBuffer = nullptr;
 
     rc = (sspi->DecryptMessage)(
@@ -570,17 +570,17 @@ nsAuthSSPI::Unwrap(const void *inToken,
 class secBuffers
 {
 public:
 
     SecBuffer ib[3];
 
     secBuffers() { memset(&ib, 0, sizeof(ib)); }
 
-    ~secBuffers() 
+    ~secBuffers()
     {
         if (ib[0].pvBuffer)
             free(ib[0].pvBuffer);
 
         if (ib[1].pvBuffer)
             free(ib[1].pvBuffer);
 
         if (ib[2].pvBuffer)
@@ -601,36 +601,36 @@ nsAuthSSPI::Wrap(const void *inToken,
     secBuffers bufs;
     SecPkgContext_Sizes sizes;
 
     rc = (sspi->QueryContextAttributesW)(
          &mCtxt,
          SECPKG_ATTR_SIZES,
          &sizes);
 
-    if (!SEC_SUCCESS(rc))  
+    if (!SEC_SUCCESS(rc))
         return NS_ERROR_FAILURE;
-    
+
     ibd.cBuffers = 3;
     ibd.pBuffers = bufs.ib;
     ibd.ulVersion = SECBUFFER_VERSION;
-    
+
     // SSPI
     bufs.ib[0].cbBuffer = sizes.cbSecurityTrailer;
     bufs.ib[0].BufferType = SECBUFFER_TOKEN;
     bufs.ib[0].pvBuffer = moz_xmalloc(sizes.cbSecurityTrailer);
 
     if (!bufs.ib[0].pvBuffer)
         return NS_ERROR_OUT_OF_MEMORY;
 
     // APP Data
     bufs.ib[1].BufferType = SECBUFFER_DATA;
     bufs.ib[1].pvBuffer = moz_xmalloc(inTokenLen);
     bufs.ib[1].cbBuffer = inTokenLen;
-    
+
     if (!bufs.ib[1].pvBuffer)
         return NS_ERROR_OUT_OF_MEMORY;
 
     memcpy(bufs.ib[1].pvBuffer, inToken, inTokenLen);
 
     // SSPI
     bufs.ib[2].BufferType = SECBUFFER_PADDING;
     bufs.ib[2].cbBuffer = sizes.cbBlockSize;
@@ -644,25 +644,25 @@ nsAuthSSPI::Wrap(const void *inToken,
          &ibd, 0);
 
     if (SEC_SUCCESS(rc)) {
         int len  = bufs.ib[0].cbBuffer + bufs.ib[1].cbBuffer + bufs.ib[2].cbBuffer;
         char *p = (char *) moz_xmalloc(len);
 
         if (!p)
             return NS_ERROR_OUT_OF_MEMORY;
-				
+
         *outToken = (void *) p;
         *outTokenLen = len;
 
         memcpy(p, bufs.ib[0].pvBuffer, bufs.ib[0].cbBuffer);
         p += bufs.ib[0].cbBuffer;
 
         memcpy(p,bufs.ib[1].pvBuffer, bufs.ib[1].cbBuffer);
         p += bufs.ib[1].cbBuffer;
 
         memcpy(p,bufs.ib[2].pvBuffer, bufs.ib[2].cbBuffer);
-        
+
         return NS_OK;
     }
 
     return NS_ERROR_FAILURE;
 }
--- a/extensions/auth/nsAuthSSPI.h
+++ b/extensions/auth/nsAuthSSPI.h
@@ -46,14 +46,14 @@ private:
     CtxtHandle   mCtxt;
     nsCString    mServiceName;
     uint32_t     mServiceFlags;
     uint32_t     mMaxTokenLen;
     pType        mPackage;
     nsString     mDomain;
     nsString     mUsername;
     nsString     mPassword;
-    bool         mIsFirst;	
-    void*        mCertDERData; 
+    bool         mIsFirst;
+    void*        mCertDERData;
     uint32_t     mCertDERLength;
 };
 
 #endif /* nsAuthSSPI_h__ */
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -72,27 +72,27 @@ SpawnIOChild(char* const* aArgs, PRProce
         PR_Close(fromChildPipeRead);
         PR_Close(fromChildPipeWrite);
         PR_Close(toChildPipeRead);
         PR_Close(toChildPipeWrite);
         return false;
     }
 
     PR_ProcessAttrSetStdioRedirect(attr, PR_StandardInput, toChildPipeRead);
-    PR_ProcessAttrSetStdioRedirect(attr, PR_StandardOutput, fromChildPipeWrite);   
+    PR_ProcessAttrSetStdioRedirect(attr, PR_StandardOutput, fromChildPipeWrite);
 
     PRProcess* process = PR_CreateProcess(aArgs[0], aArgs, nullptr, attr);
     PR_DestroyProcessAttr(attr);
     PR_Close(fromChildPipeWrite);
     PR_Close(toChildPipeRead);
     if (!process) {
         LOG(("ntlm_auth exec failure [%d]", PR_GetError()));
         PR_Close(fromChildPipeRead);
         PR_Close(toChildPipeWrite);
-        return false;        
+        return false;
     }
 
     *aPID = process;
     *aFromChildFD = fromChildPipeRead;
     *aToChildFD = toChildPipeWrite;
     return true;
 }
 
@@ -142,23 +142,23 @@ static uint8_t* ExtractMessage(const nsA
     int32_t length = aLine.Length();
     // The caller should verify there is a valid "xx " prefix and the line
     // is terminated with a \n
     NS_ASSERTION(length >= 4, "Line too short...");
     const char* line = aLine.BeginReading();
     const char* s = line + 3;
     length -= 4; // lose first 3 chars plus trailing \n
     NS_ASSERTION(s[length] == '\n', "aLine not newline-terminated");
-    
+
     if (length & 3) {
         // The base64 encoded block must be multiple of 4. If not, something
         // screwed up.
         NS_WARNING("Base64 encoded block should be a multiple of 4 chars");
         return nullptr;
-    } 
+    }
 
     // Calculate the exact length. I wonder why there isn't a function for this
     // in plbase64.
     int32_t numEquals;
     for (numEquals = 0; numEquals < length; ++numEquals) {
         if (s[length - 1 - numEquals] != '=')
             break;
     }
@@ -177,17 +177,17 @@ nsAuthSambaNTLM::SpawnNTLMAuthHelper()
         "ntlm_auth",
         "--helper-protocol", "ntlmssp-client-1",
         "--use-cached-creds",
         "--username", username,
         nullptr
     };
 
     bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, &mFromChildFD, &mToChildFD);
-    if (!isOK)  
+    if (!isOK)
         return NS_ERROR_FAILURE;
 
     if (!WriteString(mToChildFD, NS_LITERAL_CSTRING("YR\n")))
         return NS_ERROR_FAILURE;
     nsCString line;
     if (!ReadLine(mFromChildFD, line))
         return NS_ERROR_FAILURE;
     if (!StringBeginsWith(line, NS_LITERAL_CSTRING("YR "))) {
@@ -264,17 +264,17 @@ nsAuthSambaNTLM::GetNextToken(const void
     uint8_t* buf = ExtractMessage(line, outTokenLen);
     if (!buf)
         return NS_ERROR_FAILURE;
     *outToken = nsMemory::Clone(buf, *outTokenLen);
     free(buf);
     if (!*outToken) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
-    
+
     // We're done. Close our file descriptors now and reap the helper
     // process.
     Shutdown();
     return NS_SUCCESS_AUTH_FINISHED;
 }
 
 NS_IMETHODIMP
 nsAuthSambaNTLM::Unwrap(const void *inToken,
--- a/extensions/auth/nsAuthSambaNTLM.h
+++ b/extensions/auth/nsAuthSambaNTLM.h
@@ -16,17 +16,17 @@
 /**
  * This is an implementation of NTLM authentication that does single-signon
  * by obtaining the user's Unix username, parsing it into DOMAIN\name format,
  * and then asking Samba's ntlm_auth tool to do the authentication for us
  * using the user's password cached in winbindd, if available. If the
  * password is not available then this component fails to instantiate so
  * nsHttpNTLMAuth will fall back to a different NTLM implementation.
  * NOTE: at time of writing, this requires patches to be added to the stock
- * Samba winbindd and ntlm_auth!  
+ * Samba winbindd and ntlm_auth!
  */
 class nsAuthSambaNTLM final : public nsIAuthModule
 {
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSIAUTHMODULE
 
     nsAuthSambaNTLM();
--- a/extensions/auth/nsHttpNegotiateAuth.cpp
+++ b/extensions/auth/nsHttpNegotiateAuth.cpp
@@ -112,27 +112,27 @@ nsHttpNegotiateAuth::GetAuthFlags(uint32
     // Negotiate Auth creds should not be reused across multiple requests.
     // Only perform the negotiation when it is explicitly requested by the
     // server.  Thus, do *NOT* use the "REUSABLE_CREDENTIALS" flag here.
     //
     // CONNECTION_BASED is specified instead of REQUEST_BASED since we need
     // to complete a sequence of transactions with the server over the same
     // connection.
     //
-    *flags = CONNECTION_BASED | IDENTITY_IGNORED; 
+    *flags = CONNECTION_BASED | IDENTITY_IGNORED;
     return NS_OK;
 }
 
 //
-// Always set *identityInvalid == FALSE here.  This 
+// Always set *identityInvalid == FALSE here.  This
 // will prevent the browser from popping up the authentication
 // prompt window.  Because GSSAPI does not have an API
 // for fetching initial credentials (ex: A Kerberos TGT),
 // there is no correct way to get the users credentials.
-// 
+//
 NS_IMETHODIMP
 nsHttpNegotiateAuth::ChallengeReceived(nsIHttpAuthenticableChannel *authChannel,
                                        const char *challenge,
                                        bool isProxyAuth,
                                        nsISupports **sessionState,
                                        nsISupports **continuationState,
                                        bool *identityInvalid)
 {
@@ -187,17 +187,17 @@ nsHttpNegotiateAuth::ChallengeReceived(n
 
     LOG(("  service = %s\n", service.get()));
 
     //
     // The correct service name for IIS servers is "HTTP/f.q.d.n", so
     // construct the proper service name for passing to "gss_import_name".
     //
     // TODO: Possibly make this a configurable service name for use
-    // with non-standard servers that use stuff like "khttp/f.q.d.n" 
+    // with non-standard servers that use stuff like "khttp/f.q.d.n"
     // instead.
     //
     service.Insert("HTTP@", 0);
 
     const char *contractID;
     if (TestBoolPref(kNegotiateAuthSSPI)) {
 	   LOG(("  using negotiate-sspi\n"));
 	   contractID = NS_AUTH_MODULE_CONTRACTID_PREFIX "negotiate-sspi";
@@ -230,17 +230,17 @@ NS_IMPL_ISUPPORTS(nsHttpNegotiateAuth, n
 namespace {
 
 //
 // GetNextTokenCompleteEvent
 //
 // This event is fired on main thread when async call of
 // nsHttpNegotiateAuth::GenerateCredentials is finished. During the Run()
 // method the nsIHttpAuthenticatorCallback::OnCredsAvailable is called with
-// obtained credentials, flags and NS_OK when successful, otherwise 
+// obtained credentials, flags and NS_OK when successful, otherwise
 // NS_ERROR_FAILURE is returned as a result of failed operation.
 //
 class GetNextTokenCompleteEvent final : public nsIRunnable,
                                         public nsICancelable
 {
     virtual ~GetNextTokenCompleteEvent()
     {
         if (mCreds) {
--- a/extensions/cookie/nsPopupWindowManager.cpp
+++ b/extensions/cookie/nsPopupWindowManager.cpp
@@ -27,17 +27,17 @@ nsPopupWindowManager::nsPopupWindowManag
   mPolicy(ALLOW_POPUP)
 {
 }
 
 nsPopupWindowManager::~nsPopupWindowManager()
 {
 }
 
-NS_IMPL_ISUPPORTS(nsPopupWindowManager, 
+NS_IMPL_ISUPPORTS(nsPopupWindowManager,
                   nsIPopupWindowManager,
                   nsIObserver,
                   nsISupportsWeakReference)
 
 nsresult
 nsPopupWindowManager::Init()
 {
   nsresult rv;
@@ -49,17 +49,17 @@ nsPopupWindowManager::Init()
     bool permission;
     rv = prefBranch->GetBoolPref(kPopupDisablePref, &permission);
     if (NS_FAILED(rv)) {
       permission = true;
     }
     mPolicy = permission ? (uint32_t) DENY_POPUP : (uint32_t) ALLOW_POPUP;
 
     prefBranch->AddObserver(kPopupDisablePref, this, true);
-  } 
+  }
 
   return NS_OK;
 }
 
 //*****************************************************************************
 //*** nsPopupWindowManager::nsIPopupWindowManager
 //*****************************************************************************
 
@@ -86,17 +86,17 @@ nsPopupWindowManager::TestPermission(nsI
 
   return NS_OK;
 }
 
 //*****************************************************************************
 //*** nsPopupWindowManager::nsIObserver
 //*****************************************************************************
 NS_IMETHODIMP
-nsPopupWindowManager::Observe(nsISupports *aSubject, 
+nsPopupWindowManager::Observe(nsISupports *aSubject,
                               const char *aTopic,
                               const char16_t *aData)
 {
   nsCOMPtr<nsIPrefBranch> prefBranch = do_QueryInterface(aSubject);
   NS_ASSERTION(!nsCRT::strcmp(NS_PREFBRANCH_PREFCHANGE_TOPIC_ID, aTopic),
                "unexpected topic - we only deal with pref changes!");
 
   if (prefBranch) {
--- a/extensions/permissions/nsContentBlocker.cpp
+++ b/extensions/permissions/nsContentBlocker.cpp
@@ -66,17 +66,17 @@ static const char *kTypeString[] = {
                                     "", // TYPE_INTERNAL_STYLESHEET_PRELOAD
                                     "", // TYPE_INTERNAL_IMAGE_FAVICON
                                     "", // TYPE_INTERNAL_WORKERS_IMPORT_SCRIPTS
 };
 
 #define NUMBER_OF_TYPES MOZ_ARRAY_LENGTH(kTypeString)
 uint8_t nsContentBlocker::mBehaviorPref[NUMBER_OF_TYPES];
 
-NS_IMPL_ISUPPORTS(nsContentBlocker, 
+NS_IMPL_ISUPPORTS(nsContentBlocker,
                   nsIContentPolicy,
                   nsIObserver,
                   nsISupportsWeakReference)
 
 nsContentBlocker::nsContentBlocker()
 {
   memset(mBehaviorPref, BEHAVIOR_ACCEPT, NUMBER_OF_TYPES);
 }
@@ -146,17 +146,17 @@ nsContentBlocker::PrefChanged(nsIPrefBra
         PREF_CHANGED(kTypeString[i]) &&
         NS_SUCCEEDED(aPrefBranch->GetIntPref(kTypeString[i], &val)))
       mBehaviorPref[i] = LIMIT(val, 1, 3, 1);
   }
 
 }
 
 // nsIContentPolicy Implementation
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsContentBlocker::ShouldLoad(uint32_t          aContentType,
                              nsIURI           *aContentLocation,
                              nsIURI           *aRequestingLocation,
                              nsISupports      *aRequestingContext,
                              const nsACString &aMimeGuess,
                              nsISupports      *aExtra,
                              nsIPrincipal     *aRequestPrincipal,
                              int16_t          *aDecision)
@@ -166,26 +166,26 @@ nsContentBlocker::ShouldLoad(uint32_t   
 
   *aDecision = nsIContentPolicy::ACCEPT;
   nsresult rv;
 
   // Ony support NUMBER_OF_TYPES content types. that all there is at the
   // moment, but you never know...
   if (aContentType > NUMBER_OF_TYPES)
     return NS_OK;
-  
+
   // we can't do anything without this
   if (!aContentLocation)
     return NS_OK;
 
   // The final type of an object tag may mutate before it reaches
   // shouldProcess, so we cannot make any sane blocking decisions here
   if (aContentType == nsIContentPolicy::TYPE_OBJECT)
     return NS_OK;
-  
+
   // we only want to check http, https, ftp
   // for chrome:// and resources and others, no need to check.
   nsAutoCString scheme;
   aContentLocation->GetScheme(scheme);
   if (!scheme.LowerCaseEqualsLiteral("ftp") &&
       !scheme.LowerCaseEqualsLiteral("http") &&
       !scheme.LowerCaseEqualsLiteral("https"))
     return NS_OK;
@@ -246,17 +246,17 @@ nsContentBlocker::ShouldProcess(uint32_t
       if (fromPrefs) {
         *aDecision = nsIContentPolicy::REJECT_TYPE;
       } else {
         *aDecision = nsIContentPolicy::REJECT_SERVER;
       }
     }
     return NS_OK;
   }
-  
+
   // This isn't a load from chrome or an object tag - Just do a ShouldLoad()
   // check -- we want the same answer here
   return ShouldLoad(aContentType, aContentLocation, aRequestingLocation,
                     aRequestingContext, aMimeGuess, aExtra, aRequestPrincipal,
                     aDecision);
 }
 
 nsresult
@@ -295,17 +295,17 @@ nsContentBlocker::TestPermission(nsIURI 
   }
 
   // If there is nothing on the list, use the default.
   if (!permission) {
     permission = mBehaviorPref[aContentType - 1];
     *aFromPrefs = true;
   }
 
-  // Use the fact that the nsIPermissionManager values map to 
+  // Use the fact that the nsIPermissionManager values map to
   // the BEHAVIOR_* values above.
   switch (permission) {
   case BEHAVIOR_ACCEPT:
     *aPermission = true;
     break;
   case BEHAVIOR_REJECT:
     *aPermission = false;
     break;
@@ -323,19 +323,19 @@ nsContentBlocker::TestPermission(nsIURI 
     if (!trustedSource) {
       rv = aFirstURI->SchemeIs("resource", &trustedSource);
       NS_ENSURE_SUCCESS(rv,rv);
     }
     if (trustedSource)
       return NS_OK;
 
     // compare tails of names checking to see if they have a common domain
-    // we do this by comparing the tails of both names where each tail 
+    // we do this by comparing the tails of both names where each tail
     // includes at least one dot
-    
+
     // A more generic method somewhere would be nice
 
     nsAutoCString currentHost;
     rv = aCurrentURI->GetAsciiHost(currentHost);
     NS_ENSURE_SUCCESS(rv, rv);
 
     // Search for two dots, starting at the end.
     // If there are no two dots found, ++dot will turn to zero,
@@ -353,31 +353,31 @@ nsContentBlocker::TestPermission(nsIURI 
     rv = aFirstURI->GetAsciiHost(firstHost);
     NS_ENSURE_SUCCESS(rv, rv);
 
     // If the tail is longer then the whole firstHost, it will never match
     if (firstHost.Length() < tail.Length()) {
       *aPermission = false;
       return NS_OK;
     }
-    
+
     // Get the last part of the firstUri with the same length as |tail|
     const nsACString& firstTail =
       Substring(firstHost, firstHost.Length() - tail.Length(), tail.Length());
 
     // Check that both tails are the same, and that just before the tail in
     // |firstUri| there is a dot. That means both url are in the same domain
-    if ((firstHost.Length() > tail.Length() && 
-         firstHost.CharAt(firstHost.Length() - tail.Length() - 1) != '.') || 
+    if ((firstHost.Length() > tail.Length() &&
+         firstHost.CharAt(firstHost.Length() - tail.Length() - 1) != '.') ||
         !tail.Equals(firstTail)) {
       *aPermission = false;
     }
     break;
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsContentBlocker::Observe(nsISupports     *aSubject,
                           const char      *aTopic,
                           const char16_t *aData)
 {
--- a/extensions/pref/autoconfig/src/nsAutoConfig.cpp
+++ b/extensions/pref/autoconfig/src/nsAutoConfig.cpp
@@ -24,62 +24,62 @@
 #include "mozilla/IntegerPrintfMacros.h"
 #include "mozilla/Logging.h"
 
 using mozilla::LogLevel;
 
 mozilla::LazyLogModule MCD("MCD");
 
 extern nsresult EvaluateAdminConfigScript(const char *js_buffer, size_t length,
-                                          const char *filename, 
-                                          bool bGlobalContext, 
-                                          bool bCallbacks, 
+                                          const char *filename,
+                                          bool bGlobalContext,
+                                          bool bCallbacks,
                                           bool skipFirstLine);
 
 // nsISupports Implementation
 
 NS_IMPL_ISUPPORTS(nsAutoConfig, nsIAutoConfig, nsITimerCallback, nsIStreamListener, nsIObserver, nsIRequestObserver, nsISupportsWeakReference)
 
 nsAutoConfig::nsAutoConfig()
 {
 }
 
 nsresult nsAutoConfig::Init()
 {
     // member initializers and constructor code
 
     nsresult rv;
     mLoaded = false;
-    
+
     // Registering the object as an observer to the profile-after-change topic
     nsCOMPtr<nsIObserverService> observerService =
         do_GetService("@mozilla.org/observer-service;1", &rv);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
 
     rv = observerService->AddObserver(this,"profile-after-change", true);
-    
+
     return rv;
 }
 
 nsAutoConfig::~nsAutoConfig()
 {
 }
 
 // attribute string configURL
 NS_IMETHODIMP nsAutoConfig::GetConfigURL(char **aConfigURL)
 {
-    if (!aConfigURL) 
+    if (!aConfigURL)
         return NS_ERROR_NULL_POINTER;
 
     if (mConfigURL.IsEmpty()) {
         *aConfigURL = nullptr;
         return NS_OK;
     }
-    
+
     *aConfigURL = ToNewCString(mConfigURL);
     if (!*aConfigURL)
         return NS_ERROR_OUT_OF_MEMORY;
     return NS_OK;
 }
 NS_IMETHODIMP nsAutoConfig::SetConfigURL(const char *aConfigURL)
 {
     if (!aConfigURL)
@@ -91,26 +91,26 @@ NS_IMETHODIMP nsAutoConfig::SetConfigURL
 NS_IMETHODIMP
 nsAutoConfig::OnStartRequest(nsIRequest *request, nsISupports *context)
 {
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
-nsAutoConfig::OnDataAvailable(nsIRequest *request, 
+nsAutoConfig::OnDataAvailable(nsIRequest *request,
                               nsISupports *context,
-                              nsIInputStream *aIStream, 
+                              nsIInputStream *aIStream,
                               uint64_t aSourceOffset,
                               uint32_t aLength)
-{    
+{
     uint32_t amt, size;
     nsresult rv;
     char buf[1024];
-    
+
     while (aLength) {
         size = std::min<size_t>(aLength, sizeof(buf));
         rv = aIStream->Read(buf, size, &amt);
         if (NS_FAILED(rv))
             return rv;
         mBuf.Append(buf, amt);
         aLength -= amt;
     }
@@ -137,148 +137,148 @@ nsAutoConfig::OnStopRequest(nsIRequest *
         uint32_t httpStatus;
         rv = pHTTPCon->GetResponseStatus(&httpStatus);
         if (NS_FAILED(rv) || httpStatus != 200)
         {
             MOZ_LOG(MCD, LogLevel::Debug, ("mcd http request failed with status %x\n", httpStatus));
             return readOfflineFile();
         }
     }
-    
+
     // Send the autoconfig.jsc to javascript engine.
-    
+
     rv = EvaluateAdminConfigScript(mBuf.get(), mBuf.Length(),
                               nullptr, false,true, false);
     if (NS_SUCCEEDED(rv)) {
 
-        // Write the autoconfig.jsc to failover.jsc (cached copy) 
-        rv = writeFailoverFile(); 
+        // Write the autoconfig.jsc to failover.jsc (cached copy)
+        rv = writeFailoverFile();
 
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             NS_WARNING("Error writing failover.jsc file");
 
         // Releasing the lock to allow the main thread to start execution
-        mLoaded = true;  
+        mLoaded = true;
 
         return NS_OK;
     }
     // there is an error in parsing of the autoconfig file.
     NS_WARNING("Error reading autoconfig.jsc from the network, reading the offline version");
     return readOfflineFile();
 }
 
-// Notify method as a TimerCallBack function 
-NS_IMETHODIMP nsAutoConfig::Notify(nsITimer *timer) 
+// Notify method as a TimerCallBack function
+NS_IMETHODIMP nsAutoConfig::Notify(nsITimer *timer)
 {
     downloadAutoConfig();
     return NS_OK;
 }
 
-/* Observe() is called twice: once at the instantiation time and other 
+/* Observe() is called twice: once at the instantiation time and other
    after the profile is set. It doesn't do anything but return NS_OK during the
    creation time. Second time it calls  downloadAutoConfig().
 */
 
-NS_IMETHODIMP nsAutoConfig::Observe(nsISupports *aSubject, 
-                                    const char *aTopic, 
+NS_IMETHODIMP nsAutoConfig::Observe(nsISupports *aSubject,
+                                    const char *aTopic,
                                     const char16_t *someData)
 {
     nsresult rv = NS_OK;
     if (!nsCRT::strcmp(aTopic, "profile-after-change")) {
 
-        // We will be calling downloadAutoConfig even if there is no profile 
+        // We will be calling downloadAutoConfig even if there is no profile
         // name. Nothing will be passed as a parameter to the URL and the
         // default case will be picked up by the script.
-        
+
         rv = downloadAutoConfig();
 
-    }  
-   
+    }
+
     return rv;
 }
 
 nsresult nsAutoConfig::downloadAutoConfig()
 {
     nsresult rv;
     nsAutoCString emailAddr;
     nsXPIDLCString urlName;
     static bool firstTime = true;
-    
+
     if (mConfigURL.IsEmpty()) {
         MOZ_LOG(MCD, LogLevel::Debug, ("global config url is empty - did you set autoadmin.global_config_url?\n"));
         NS_WARNING("AutoConfig called without global_config_url");
         return NS_OK;
     }
-    
+
     // If there is an email address appended as an argument to the ConfigURL
-    // in the previous read, we need to remove it when timer kicks in and 
-    // downloads the autoconfig file again. 
+    // in the previous read, we need to remove it when timer kicks in and
+    // downloads the autoconfig file again.
     // If necessary, the email address will be added again as an argument.
     int32_t index = mConfigURL.RFindChar((char16_t)'?');
     if (index != -1)
         mConfigURL.Truncate(index);
 
     // Clean up the previous read, the new read is going to use the same buffer
     if (!mBuf.IsEmpty())
         mBuf.Truncate(0);
 
     // Get the preferences branch and save it to the member variable
     if (!mPrefBranch) {
         nsCOMPtr<nsIPrefService> prefs =
             do_GetService(NS_PREFSERVICE_CONTRACTID, &rv);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
-    
+
         rv = prefs->GetBranch(nullptr,getter_AddRefs(mPrefBranch));
         if (NS_FAILED(rv))
             return rv;
     }
-    
-    // Check to see if the network is online/offline 
+
+    // Check to see if the network is online/offline
     nsCOMPtr<nsIIOService> ios = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
-    
+
     bool offline;
     rv = ios->GetOffline(&offline);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
-    
+
     if (offline) {
         bool offlineFailover;
-        rv = mPrefBranch->GetBoolPref("autoadmin.offline_failover", 
+        rv = mPrefBranch->GetBoolPref("autoadmin.offline_failover",
                                       &offlineFailover);
         // Read the failover.jsc if the network is offline and the pref says so
         if (NS_SUCCEEDED(rv) && offlineFailover)
             return readOfflineFile();
     }
 
     /* Append user's identity at the end of the URL if the pref says so.
        First we are checking for the user's email address but if it is not
        available in the case where the client is used without messenger, user's
        profile name will be used as an unique identifier
     */
     bool appendMail;
     rv = mPrefBranch->GetBoolPref("autoadmin.append_emailaddr", &appendMail);
     if (NS_SUCCEEDED(rv) && appendMail) {
         rv = getEmailAddr(emailAddr);
         if (NS_SUCCEEDED(rv) && emailAddr.get()) {
-            /* Adding the unique identifier at the end of autoconfig URL. 
-               In this case the autoconfig URL is a script and 
-               emailAddr as passed as an argument 
+            /* Adding the unique identifier at the end of autoconfig URL.
+               In this case the autoconfig URL is a script and
+               emailAddr as passed as an argument
             */
             mConfigURL.Append('?');
-            mConfigURL.Append(emailAddr); 
+            mConfigURL.Append(emailAddr);
         }
     }
-    
-    // create a new url 
+
+    // create a new url
     nsCOMPtr<nsIURI> url;
     nsCOMPtr<nsIChannel> channel;
-    
+
     rv = NS_NewURI(getter_AddRefs(url), mConfigURL.get(), nullptr, nullptr);
     if (NS_FAILED(rv))
     {
         MOZ_LOG(MCD, LogLevel::Debug, ("failed to create URL - is autoadmin.global_config_url valid? - %s\n", mConfigURL.get()));
         return rv;
     }
 
     MOZ_LOG(MCD, LogLevel::Debug, ("running MCD url %s\n", mConfigURL.get()));
@@ -288,187 +288,187 @@ nsresult nsAutoConfig::downloadAutoConfi
                        nsContentUtils::GetSystemPrincipal(),
                        nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
                        nsIContentPolicy::TYPE_OTHER,
                        nullptr,  // loadGroup
                        nullptr,  // aCallbacks
                        nsIRequest::INHIBIT_PERSISTENT_CACHING |
                        nsIRequest::LOAD_BYPASS_CACHE);
 
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
 
     rv = channel->AsyncOpen2(this);
     if (NS_FAILED(rv)) {
         readOfflineFile();
         return rv;
     }
-    
+
     // Set a repeating timer if the pref is set.
     // This is to be done only once.
     // Also We are having the event queue processing only for the startup
     // It is not needed with the repeating timer.
     if (firstTime) {
         firstTime = false;
-    
+
         /* process events until we're finished. AutoConfig.jsc reading needs
            to be finished before the browser starts loading up
-           We are waiting for the mLoaded which will be set through 
+           We are waiting for the mLoaded which will be set through
            onStopRequest or readOfflineFile methods
            There is a possibility of deadlock so we need to make sure
            that mLoaded will be set to true in any case (success/failure)
         */
 
         if (!mozilla::SpinEventLoopUntil([&]() { return mLoaded; })) {
             return NS_ERROR_FAILURE;
         }
-        
+
         int32_t minutes;
-        rv = mPrefBranch->GetIntPref("autoadmin.refresh_interval", 
+        rv = mPrefBranch->GetIntPref("autoadmin.refresh_interval",
                                      &minutes);
         if (NS_SUCCEEDED(rv) && minutes > 0) {
-            // Create a new timer and pass this nsAutoConfig 
-            // object as a timer callback. 
+            // Create a new timer and pass this nsAutoConfig
+            // object as a timer callback.
             mTimer = do_CreateInstance("@mozilla.org/timer;1",&rv);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
-            rv = mTimer->InitWithCallback(this, minutes * 60 * 1000, 
+            rv = mTimer->InitWithCallback(this, minutes * 60 * 1000,
                              nsITimer::TYPE_REPEATING_SLACK);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
         }
     } //first_time
-    
+
     return NS_OK;
 } // nsPref::downloadAutoConfig()
 
 
 
 nsresult nsAutoConfig::readOfflineFile()
 {
     nsresult rv;
-    
-    /* Releasing the lock to allow main thread to start 
-       execution. At this point we do not need to stall 
+
+    /* Releasing the lock to allow main thread to start
+       execution. At this point we do not need to stall
        the thread since all network activities are done.
     */
-    mLoaded = true; 
+    mLoaded = true;
 
     bool failCache;
     rv = mPrefBranch->GetBoolPref("autoadmin.failover_to_cached", &failCache);
     if (NS_SUCCEEDED(rv) && !failCache) {
         // disable network connections and return.
-        
+
         nsCOMPtr<nsIIOService> ios =
             do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
-        
+
         bool offline;
         rv = ios->GetOffline(&offline);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
         if (!offline) {
             rv = ios->SetOffline(true);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
         }
-        
+
         // lock the "network.online" prference so user cannot toggle back to
         // online mode.
         rv = mPrefBranch->SetBoolPref("network.online", false);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
         mPrefBranch->LockPref("network.online");
         return NS_OK;
     }
-    
-    /* faiover_to_cached is set to true so 
+
+    /* faiover_to_cached is set to true so
        Open the file and read the content.
        execute the javascript file
     */
-    
-    nsCOMPtr<nsIFile> failoverFile; 
+
+    nsCOMPtr<nsIFile> failoverFile;
     rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR,
                                 getter_AddRefs(failoverFile));
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
-    
+
     failoverFile->AppendNative(NS_LITERAL_CSTRING("failover.jsc"));
     rv = evaluateLocalFile(failoverFile);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         NS_WARNING("Couldn't open failover.jsc, going back to default prefs");
     return NS_OK;
 }
 
 nsresult nsAutoConfig::evaluateLocalFile(nsIFile *file)
 {
     nsresult rv;
     nsCOMPtr<nsIInputStream> inStr;
-    
+
     rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), file);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
-        
+
     int64_t fileSize;
     file->GetFileSize(&fileSize);
     uint32_t fs = fileSize; // Converting 64 bit structure to unsigned int
     char* buf = (char*) malloc(fs * sizeof(char));
     if (!buf)
         return NS_ERROR_OUT_OF_MEMORY;
 
     uint32_t amt = 0;
     rv = inStr->Read(buf, fs, &amt);
     if (NS_SUCCEEDED(rv)) {
-      EvaluateAdminConfigScript(buf, fs, nullptr, false, 
+      EvaluateAdminConfigScript(buf, fs, nullptr, false,
                                 true, false);
     }
     inStr->Close();
     free(buf);
     return rv;
 }
 
 nsresult nsAutoConfig::writeFailoverFile()
 {
     nsresult rv;
-    nsCOMPtr<nsIFile> failoverFile; 
+    nsCOMPtr<nsIFile> failoverFile;
     nsCOMPtr<nsIOutputStream> outStr;
     uint32_t amt;
-    
+
     rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR,
                                 getter_AddRefs(failoverFile));
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
-    
+
     failoverFile->AppendNative(NS_LITERAL_CSTRING("failover.jsc"));
-    
+
     rv = NS_NewLocalFileOutputStream(getter_AddRefs(outStr), failoverFile);
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         return rv;
     rv = outStr->Write(mBuf.get(),mBuf.Length(),&amt);
     outStr->Close();
     return rv;
 }
 
 nsresult nsAutoConfig::getEmailAddr(nsACString & emailAddr)
 {
-    
+
     nsresult rv;
     nsXPIDLCString prefValue;
-    
+
     /* Getting an email address through set of three preferences:
-       First getting a default account with 
+       First getting a default account with
        "mail.accountmanager.defaultaccount"
        second getting an associated id with the default account
        Third getting an email address with id
     */
-    
-    rv = mPrefBranch->GetCharPref("mail.accountmanager.defaultaccount", 
+
+    rv = mPrefBranch->GetCharPref("mail.accountmanager.defaultaccount",
                                   getter_Copies(prefValue));
     if (NS_SUCCEEDED(rv) && !prefValue.IsEmpty()) {
         emailAddr = NS_LITERAL_CSTRING("mail.account.") +
             prefValue + NS_LITERAL_CSTRING(".identities");
         rv = mPrefBranch->GetCharPref(PromiseFlatCString(emailAddr).get(),
                                       getter_Copies(prefValue));
         if (NS_FAILED(rv) || prefValue.IsEmpty())
             return PromptForEMailAddress(emailAddr);
@@ -480,27 +480,27 @@ nsresult nsAutoConfig::getEmailAddr(nsAC
         rv = mPrefBranch->GetCharPref(PromiseFlatCString(emailAddr).get(),
                                       getter_Copies(prefValue));
         if (NS_FAILED(rv)  || prefValue.IsEmpty())
             return PromptForEMailAddress(emailAddr);
         emailAddr = prefValue;
     }
     else {
         // look for 4.x pref in case we just migrated.
-        rv = mPrefBranch->GetCharPref("mail.identity.useremail", 
+        rv = mPrefBranch->GetCharPref("mail.identity.useremail",
                                   getter_Copies(prefValue));
         if (NS_SUCCEEDED(rv) && !prefValue.IsEmpty())
             emailAddr = prefValue;
         else
             PromptForEMailAddress(emailAddr);
     }
-    
+
     return NS_OK;
 }
-        
+
 nsresult nsAutoConfig::PromptForEMailAddress(nsACString &emailAddress)
 {
     nsresult rv;
     nsCOMPtr<nsIPromptService> promptService = do_GetService("@mozilla.org/embedcomp/prompt-service;1", &rv);
     NS_ENSURE_SUCCESS(rv, rv);
     nsCOMPtr<nsIStringBundleService> bundleService = do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
 
--- a/extensions/pref/autoconfig/src/nsAutoConfig.h
+++ b/extensions/pref/autoconfig/src/nsAutoConfig.h
@@ -29,19 +29,19 @@ class nsAutoConfig : public nsIAutoConfi
         NS_DECL_NSIAUTOCONFIG
         NS_DECL_NSIREQUESTOBSERVER
         NS_DECL_NSISTREAMLISTENER
         NS_DECL_NSIOBSERVER
         NS_DECL_NSITIMERCALLBACK
 
         nsAutoConfig();
         nsresult Init();
-  
+
     protected:
-  
+
         virtual ~nsAutoConfig();
         nsresult downloadAutoConfig();
         nsresult readOfflineFile();
         nsresult evaluateLocalFile(nsIFile *file);
         nsresult writeFailoverFile();
         nsresult getEmailAddr(nsACString & emailAddr);
         nsresult PromptForEMailAddress(nsACString &emailAddress);
         nsCString mBuf;
--- a/extensions/pref/autoconfig/src/nsReadConfig.cpp
+++ b/extensions/pref/autoconfig/src/nsReadConfig.cpp
@@ -23,19 +23,19 @@
 #include "nsCRT.h"
 #include "nspr.h"
 #include "nsXULAppAPI.h"
 #include "nsContentUtils.h"
 
 extern mozilla::LazyLogModule MCD;
 
 extern nsresult EvaluateAdminConfigScript(const char *js_buffer, size_t length,
-                                          const char *filename, 
-                                          bool bGlobalContext, 
-                                          bool bCallbacks, 
+                                          const char *filename,
+                                          bool bGlobalContext,
+                                          bool bCallbacks,
                                           bool skipFirstLine);
 extern nsresult CentralizedAdminPrefManagerInit();
 extern nsresult CentralizedAdminPrefManagerFinish();
 
 
 static void DisplayError(void)
 {
     nsresult rv;
@@ -74,18 +74,18 @@ NS_IMPL_ISUPPORTS(nsReadConfig, nsIReadC
 nsReadConfig::nsReadConfig() :
     mRead(false)
 {
 }
 
 nsresult nsReadConfig::Init()
 {
     nsresult rv;
-    
-    nsCOMPtr<nsIObserverService> observerService = 
+
+    nsCOMPtr<nsIObserverService> observerService =
         do_GetService("@mozilla.org/observer-service;1", &rv);
 
     if (observerService) {
         rv = observerService->AddObserver(this, NS_PREFSERVICE_READ_TOPIC_ID, false);
     }
     return(rv);
 }
 
@@ -114,141 +114,141 @@ NS_IMETHODIMP nsReadConfig::Observe(nsIS
 
 
 nsresult nsReadConfig::readConfigFile()
 {
     nsresult rv = NS_OK;
     nsXPIDLCString lockFileName;
     nsXPIDLCString lockVendor;
     uint32_t fileNameLen = 0;
-    
+
     nsCOMPtr<nsIPrefBranch> defaultPrefBranch;
-    nsCOMPtr<nsIPrefService> prefService = 
+    nsCOMPtr<nsIPrefService> prefService =
         do_GetService(NS_PREFSERVICE_CONTRACTID, &rv);
     if (NS_FAILED(rv))
         return rv;
 
     rv = prefService->GetDefaultBranch(nullptr, getter_AddRefs(defaultPrefBranch));
     if (NS_FAILED(rv))
         return rv;
-        
-    // This preference is set in the all.js or all-ns.js (depending whether 
+
+    // This preference is set in the all.js or all-ns.js (depending whether
     // running mozilla or netscp6)
 
-    rv = defaultPrefBranch->GetCharPref("general.config.filename", 
+    rv = defaultPrefBranch->GetCharPref("general.config.filename",
                                   getter_Copies(lockFileName));
 
 
     MOZ_LOG(MCD, LogLevel::Debug, ("general.config.filename = %s\n", lockFileName.get()));
     if (NS_FAILED(rv))
         return rv;
 
     // This needs to be read only once.
     //
     if (!mRead) {
         // Initiate the new JS Context for Preference management
-        
+
         rv = CentralizedAdminPrefManagerInit();
         if (NS_FAILED(rv))
             return rv;
-        
+
         // Open and evaluate function calls to set/lock/unlock prefs
         rv = openAndEvaluateJSFile("prefcalls.js", 0, false, false);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
         mRead = true;
     }
     // If the lockFileName is nullptr return ok, because no lockFile will be used
-  
-  
-    // Once the config file is read, we should check that the vendor name 
-    // is consistent By checking for the vendor name after reading the config 
-    // file we allow for the preference to be set (and locked) by the creator 
+
+
+    // Once the config file is read, we should check that the vendor name
+    // is consistent By checking for the vendor name after reading the config
+    // file we allow for the preference to be set (and locked) by the creator
     // of the cfg file meaning the file can not be renamed (successfully).
 
     nsCOMPtr<nsIPrefBranch> prefBranch;
     rv = prefService->GetBranch(nullptr, getter_AddRefs(prefBranch));
     NS_ENSURE_SUCCESS(rv, rv);
 
     int32_t obscureValue = 0;
     (void) defaultPrefBranch->GetIntPref("general.config.obscure_value", &obscureValue);
     MOZ_LOG(MCD, LogLevel::Debug, ("evaluating .cfg file %s with obscureValue %d\n", lockFileName.get(), obscureValue));
     rv = openAndEvaluateJSFile(lockFileName.get(), obscureValue, true, true);
     if (NS_FAILED(rv))
     {
       MOZ_LOG(MCD, LogLevel::Debug, ("error evaluating .cfg file %s %" PRIx32 "\n",
                                      lockFileName.get(), static_cast<uint32_t>(rv)));
       return rv;
     }
-    
-    rv = prefBranch->GetCharPref("general.config.filename", 
+
+    rv = prefBranch->GetCharPref("general.config.filename",
                                   getter_Copies(lockFileName));
     if (NS_FAILED(rv))
-        // There is NO REASON we should ever get here. This is POST reading 
+        // There is NO REASON we should ever get here. This is POST reading
         // of the config file.
         return NS_ERROR_FAILURE;
 
-  
-    rv = prefBranch->GetCharPref("general.config.vendor", 
+
+    rv = prefBranch->GetCharPref("general.config.vendor",
                                   getter_Copies(lockVendor));
     // If vendor is not nullptr, do this check
     if (NS_SUCCEEDED(rv)) {
 
         fileNameLen = strlen(lockFileName);
-    
-        // lockVendor and lockFileName should be the same with the addtion of 
-        // .cfg to the filename by checking this post reading of the cfg file 
+
+        // lockVendor and lockFileName should be the same with the addtion of
+        // .cfg to the filename by checking this post reading of the cfg file
         // this value can be set within the cfg file adding a level of security.
-    
+
         if (PL_strncmp(lockFileName, lockVendor, fileNameLen - 4) != 0)
             return NS_ERROR_FAILURE;
     }
-  
+
     // get the value of the autoconfig url
     nsXPIDLCString urlName;
     rv = prefBranch->GetCharPref("autoadmin.global_config_url",
                                   getter_Copies(urlName));
     if (NS_SUCCEEDED(rv) && !urlName.IsEmpty()) {
 
         // Instantiating nsAutoConfig object if the pref is present
         mAutoConfig = do_CreateInstance(NS_AUTOCONFIG_CONTRACTID, &rv);
         if (NS_FAILED(rv))
             return NS_ERROR_OUT_OF_MEMORY;
 
         rv = mAutoConfig->SetConfigURL(urlName);
         if (NS_FAILED(rv))
             return NS_ERROR_FAILURE;
 
     }
-  
+
     return NS_OK;
 } // ReadConfigFile
 
 
 nsresult nsReadConfig::openAndEvaluateJSFile(const char *aFileName, int32_t obscureValue,
                                              bool isEncoded,
                                              bool isBinDir)
 {
     nsresult rv;
 
     nsCOMPtr<nsIInputStream> inStr;
     if (isBinDir) {
         nsCOMPtr<nsIFile> jsFile;
         rv = NS_GetSpecialDirectory(NS_GRE_DIR,
                                     getter_AddRefs(jsFile));
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
         rv = jsFile->AppendNative(nsDependentCString(aFileName));
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
         rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             return rv;
 
     } else {
         nsAutoCString location("resource://gre/defaults/autoconfig/");
         location += aFileName;
 
         nsCOMPtr<nsIURI> uri;
         rv = NS_NewURI(getter_AddRefs(uri), location);
@@ -280,17 +280,17 @@ nsresult nsReadConfig::openAndEvaluateJS
     if (!buf)
         return NS_ERROR_OUT_OF_MEMORY;
 
     rv = inStr->Read(buf, (uint32_t)fs, &amt);
     NS_ASSERTION((amt == fs), "failed to read the entire configuration file!!");
     if (NS_SUCCEEDED(rv)) {
         if (obscureValue > 0) {
 
-            // Unobscure file by subtracting some value from every char. 
+            // Unobscure file by subtracting some value from every char.
             for (uint32_t i = 0; i < amt; i++)
                 buf[i] -= obscureValue;
         }
         rv = EvaluateAdminConfigScript(buf, amt, aFileName,
                                        false, true,
                                        isEncoded ? true:false);
     }
     inStr->Close();
--- a/extensions/pref/autoconfig/src/nsReadConfig.h
+++ b/extensions/pref/autoconfig/src/nsReadConfig.h
@@ -26,16 +26,16 @@ class nsReadConfig : public nsIReadConfi
 
         nsresult Init();
 
     protected:
 
         virtual ~nsReadConfig();
 
         nsresult readConfigFile();
-        nsresult openAndEvaluateJSFile(const char *aFileName, int32_t obscureValue, 
+        nsresult openAndEvaluateJSFile(const char *aFileName, int32_t obscureValue,
                                         bool isEncoded, bool isBinDir);
         bool mRead;
 private:
         nsCOMPtr<nsIAutoConfig> mAutoConfig;
 };
 
 #endif
--- a/extensions/spellcheck/hunspell/glue/hunspell_alloc_hooks.h
+++ b/extensions/spellcheck/hunspell/glue/hunspell_alloc_hooks.h
@@ -1,27 +1,27 @@
 /******* BEGIN LICENSE BLOCK *******
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
  * http://www.mozilla.org/MPL/
- * 
+ *
  * Software distributed under the License is distributed on an "AS IS" basis,
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  * for the specific language governing rights and limitations under the
  * License.
- * 
+ *
  * The Initial Developers of the Original Code is Mozilla Foundation.
  * Portions created by the Initial Developers
  * are Copyright (C) 2011 the Initial Developers. All Rights Reserved.
- * 
+ *
  * Contributor(s):
- * 
+ *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
--- a/extensions/spellcheck/hunspell/glue/hunspell_fopen_hooks.h
+++ b/extensions/spellcheck/hunspell/glue/hunspell_fopen_hooks.h
@@ -1,18 +1,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef fopen_hooks_h__
 #define fopen_hooks_h__
 
 /**
- * This file is force-included in hunspell code. Its purpose is to add 
- * readahead to fopen() calls in hunspell without modifying its code, in order 
+ * This file is force-included in hunspell code. Its purpose is to add
+ * readahead to fopen() calls in hunspell without modifying its code, in order
  * to ease future upgrades.
  *
  * This file is force-included through mozilla-config.h which is generated
  * during the configure step.
  */
 
 #include "mozilla/FileUtils.h"
 #include <stdio.h>
@@ -37,17 +37,17 @@ hunspell_fopen_readahead(const char* fil
     return nullptr;
   }
   // Fall back to libc's fopen for modes not supported by ReadAheadFile
   if (!strchr(mode, 'r') || strchr(mode, '+')) {
     return fopen(filename, mode);
   }
   int fd = -1;
 #if defined(XP_WIN)
-  // filename is obtained via the nsIFile::nativePath attribute, so 
+  // filename is obtained via the nsIFile::nativePath attribute, so
   // it is using the Windows ANSI code page, NOT UTF-8!
   nsAutoString utf16Filename;
   nsresult rv = NS_CopyNativeToUnicode(nsDependentCString(filename),
                                        utf16Filename);
   if (NS_FAILED(rv)) {
     return nullptr;
   }
   HANDLE handle = INVALID_HANDLE_VALUE;
--- a/extensions/spellcheck/hunspell/glue/mozHunspell.h
+++ b/extensions/spellcheck/hunspell/glue/mozHunspell.h
@@ -1,25 +1,25 @@
 /******* BEGIN LICENSE BLOCK *******
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
  * http://www.mozilla.org/MPL/
- * 
+ *
  * Software distributed under the License is distributed on an "AS IS" basis,
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  * for the specific language governing rights and limitations under the
  * License.
- * 
+ *
  * The Initial Developers of the Original Code are Kevin Hendricks (MySpell)
  * and László Németh (Hunspell). Portions created by the Initial Developers
  * are Copyright (C) 2002-2005 the Initial Developers. All Rights Reserved.
- * 
+ *
  * Contributor(s): Kevin Hendricks (kevin.hendricks@sympatico.ca)
  *                 David Einstein (deinst@world.std.com)
  *                 Michiel van Leeuwen (mvl@exedo.nl)
  *                 Caolan McNamara (cmc@openoffice.org)
  *                 László Németh (nemethl@gyorsposta.hu)
  *                 Davide Prina
  *                 Giuseppe Modugno
  *                 Gianluca Turconi
@@ -37,17 +37,17 @@
  *                 Chris Halls
  *                 Rene Engelhard
  *                 Bram Moolenaar
  *                 Dafydd Jones
  *                 Harri Pitkanen
  *                 Andras Timar
  *                 Tor Lillqvist
  *                 Jesper Kristensen (mail@jesperkristensen.dk)
- * 
+ *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
--- a/extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.cpp
+++ b/extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.cpp
@@ -1,29 +1,29 @@
 /******* BEGIN LICENSE BLOCK *******
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
  * http://www.mozilla.org/MPL/
- * 
+ *
  * Software distributed under the License is distributed on an "AS IS" basis,
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  * for the specific language governing rights and limitations under the
  * License.
- * 
+ *
  * The Initial Developers of the Original Code are Kevin Hendricks (MySpell)
  * and László Németh (Hunspell). Portions created by the Initial Developers
  * are Copyright (C) 2002-2005 the Initial Developers. All Rights Reserved.
- * 
+ *
  * Contributor(s): Benjamin Smedberg (benjamin@smedbergs.us) (Original Code)
  *                 László Németh (nemethl@gyorsposta.hu)
  *                 Ryan VanderMeulen (ryanvm@gmail.com)
- * 
+ *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
--- a/extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.h
+++ b/extensions/spellcheck/hunspell/glue/mozHunspellDirProvider.h
@@ -1,29 +1,29 @@
 /******* BEGIN LICENSE BLOCK *******
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
  * http://www.mozilla.org/MPL/
- * 
+ *
  * Software distributed under the License is distributed on an "AS IS" basis,
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  * for the specific language governing rights and limitations under the
  * License.
- * 
+ *
  * The Initial Developers of the Original Code are Kevin Hendricks (MySpell)
  * and László Németh (Hunspell). Portions created by the Initial Developers
  * are Copyright (C) 2002-2005 the Initial Developers. All Rights Reserved.
- * 
+ *
  * Contributor(s): Benjamin Smedberg (benjamin@smedbergs.us) (Original Code)
  *                 László Németh (nemethl@gyorsposta.hu)
  *                 Ryan VanderMeulen (ryanvm@gmail.com)
- * 
+ *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
--- a/extensions/spellcheck/src/mozEnglishWordUtils.cpp
+++ b/extensions/spellcheck/src/mozEnglishWordUtils.cpp
@@ -54,29 +54,29 @@ NS_IMETHODIMP mozEnglishWordUtils::GetRo
   int32_t length = word.Length();
 
   *count = 0;
 
   mozEnglishWordUtils::myspCapitalization ct = captype(word);
   switch (ct)
     {
     case HuhCap:
-    case NoCap: 
+    case NoCap:
       tmpPtr = (char16_t **)moz_xmalloc(sizeof(char16_t *));
       if (!tmpPtr)
         return NS_ERROR_OUT_OF_MEMORY;
       tmpPtr[0] = ToNewUnicode(word);
       if (!tmpPtr[0]) {
         NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(0, tmpPtr);
         return NS_ERROR_OUT_OF_MEMORY;
       }
       *words = tmpPtr;
       *count = 1;
       break;
-    
+
 
     case AllCap:
       tmpPtr = (char16_t **)moz_xmalloc(sizeof(char16_t *) * 3);
       if (!tmpPtr)
         return NS_ERROR_OUT_OF_MEMORY;
       tmpPtr[0] = ToNewUnicode(word);
       if (!tmpPtr[0]) {
         NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(0, tmpPtr);
@@ -96,18 +96,18 @@ NS_IMETHODIMP mozEnglishWordUtils::GetRo
       if (!tmpPtr[2]) {
         NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(2, tmpPtr);
         return NS_ERROR_OUT_OF_MEMORY;
       }
 
       *words = tmpPtr;
       *count = 3;
       break;
- 
-    case InitCap:  
+
+    case InitCap:
       tmpPtr = (char16_t **)moz_xmalloc(sizeof(char16_t *) * 2);
       if (!tmpPtr)
         return NS_ERROR_OUT_OF_MEMORY;
 
       tmpPtr[0] = ToNewUnicode(word);
       if (!tmpPtr[0]) {
         NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(0, tmpPtr);
         return NS_ERROR_OUT_OF_MEMORY;
@@ -149,40 +149,40 @@ NS_IMETHODIMP mozEnglishWordUtils::FindN
         p++;
     }
     while((p < endbuf) && (!ucIsAlpha(*p)))
       {
         p++;
       }
     startWord=p;
     while((p < endbuf) && ((ucIsAlpha(*p))||(*p=='\'')))
-      { 
+      {
         p++;
       }
-    
+
     // we could be trying to break down a url, we don't want to break a url into parts,
-    // instead we want to find out if it really is a url and if so, skip it, advancing startWord 
+    // instead we want to find out if it really is a url and if so, skip it, advancing startWord
     // to a point after the url.
 
     // before we spend more time looking to see if the word is a url, look for a url identifer
     // and make sure that identifer isn't the last character in the word fragment.
     if ( (*p == ':' || *p == '@' || *p == '.') &&  p < endbuf - 1) {
 
         // ok, we have a possible url...do more research to find out if we really have one
         // and determine the length of the url so we can skip over it.
-       
+
         if (mURLDetector)
         {
           int32_t startPos = -1;
-          int32_t endPos = -1;        
+          int32_t endPos = -1;
 
           mURLDetector->FindURLInPlaintext(startWord, endbuf - startWord, p - startWord, &startPos, &endPos);
 
           // ok, if we got a url, adjust the array bounds, skip the current url text and find the next word again
-          if (startPos != -1 && endPos != -1) { 
+          if (startPos != -1 && endPos != -1) {
             startWord = p + endPos + 1; // skip over the url
             p = startWord; // reset p
 
             // now recursively call FindNextWord to search for the next word now that we have skipped the url
             return FindNextWord(word, length, startWord - word, begin, end);
           }
         }
     }
@@ -200,20 +200,20 @@ NS_IMETHODIMP mozEnglishWordUtils::FindN
   }
   else{
     *begin = startWord-word;
     *end = p-word;
   }
   return NS_OK;
 }
 
-mozEnglishWordUtils::myspCapitalization 
+mozEnglishWordUtils::myspCapitalization
 mozEnglishWordUtils::captype(const nsString &word)
 {
-  char16_t* lword=ToNewUnicode(word);  
+  char16_t* lword=ToNewUnicode(word);
   ToUpperCase(lword,lword,word.Length());
   if(word.Equals(lword)){
     free(lword);
     return AllCap;
   }
 
   ToLowerCase(lword,lword,word.Length());
   if(word.Equals(lword)){
@@ -224,17 +224,17 @@ mozEnglishWordUtils::captype(const nsStr
   if(Substring(word,1,length-1).Equals(lword+1)){
     free(lword);
     return InitCap;
   }
   free(lword);
   return HuhCap;
 }
 
-// Convert the list of words in iwords to the same capitalization aWord and 
+// Convert the list of words in iwords to the same capitalization aWord and
 // return them in owords.
 NS_IMETHODIMP mozEnglishWordUtils::FromRootForm(const char16_t *aWord, const char16_t **iwords, uint32_t icount, char16_t ***owords, uint32_t *ocount)
 {
   nsAutoString word(aWord);
   nsresult rv = NS_OK;
 
   int32_t length;
   char16_t **tmpPtr  = (char16_t **)moz_xmalloc(sizeof(char16_t *)*icount);
@@ -249,26 +249,26 @@ NS_IMETHODIMP mozEnglishWordUtils::FromR
       NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(i, tmpPtr);
       return NS_ERROR_OUT_OF_MEMORY;
     }
     memcpy(tmpPtr[i], iwords[i], (length + 1) * sizeof(char16_t));
 
     nsAutoString capTest(tmpPtr[i]);
     mozEnglishWordUtils::myspCapitalization newCt=captype(capTest);
     if(newCt == NoCap){
-      switch(ct) 
+      switch(ct)
         {
         case HuhCap:
         case NoCap:
           break;
         case AllCap:
           ToUpperCase(tmpPtr[i],tmpPtr[i],length);
           rv = NS_OK;
           break;
-        case InitCap:  
+        case InitCap:
           ToUpperCase(tmpPtr[i],tmpPtr[i],1);
           rv = NS_OK;
           break;
         default:
           rv = NS_ERROR_FAILURE; // should never get here;
           break;
 
         }
--- a/extensions/spellcheck/src/mozInlineSpellChecker.cpp
+++ b/extensions/spellcheck/src/mozInlineSpellChecker.cpp
@@ -562,17 +562,17 @@ mozInlineSpellChecker::mozInlineSpellChe
     mNumPendingSpellChecks(0),
     mNumPendingUpdateCurrentDictionary(0),
     mDisabledAsyncToken(0),
     mNeedsCheckAfterNavigation(false),
     mFullSpellCheckScheduled(false)
 {
   nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
   if (prefs)
-    prefs->GetIntPref(kMaxSpellCheckSelectionSize, &mMaxNumWordsInSpellSelection); 
+    prefs->GetIntPref(kMaxSpellCheckSelectionSize, &mMaxNumWordsInSpellSelection);
   mMaxMisspellingsPerCheck = mMaxNumWordsInSpellSelection * 3 / 4;
 }
 
 mozInlineSpellChecker::~mozInlineSpellChecker()
 {
 }
 
 NS_IMETHODIMP
@@ -941,46 +941,46 @@ mozInlineSpellChecker::SpellCheckRange(n
 
 NS_IMETHODIMP
 mozInlineSpellChecker::GetMisspelledWord(nsIDOMNode *aNode, int32_t aOffset,
                                          nsIDOMRange **newword)
 {
   NS_ENSURE_ARG_POINTER(aNode);
   nsCOMPtr<nsISelection> spellCheckSelection;
   nsresult res = GetSpellCheckSelection(getter_AddRefs(spellCheckSelection));
-  NS_ENSURE_SUCCESS(res, res); 
+  NS_ENSURE_SUCCESS(res, res);
 
   return IsPointInSelection(spellCheckSelection, aNode, aOffset, newword);
 }
 
 // mozInlineSpellChecker::ReplaceWord
 
 NS_IMETHODIMP
 mozInlineSpellChecker::ReplaceWord(nsIDOMNode *aNode, int32_t aOffset,
                                    const nsAString &newword)
 {
   nsCOMPtr<nsIEditor> editor (do_QueryReferent(mEditor));
   NS_ENSURE_TRUE(editor, NS_ERROR_NULL_POINTER);
   NS_ENSURE_TRUE(newword.Length() != 0, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsIDOMRange> range;
   nsresult res = GetMisspelledWord(aNode, aOffset, getter_AddRefs(range));
-  NS_ENSURE_SUCCESS(res, res); 
+  NS_ENSURE_SUCCESS(res, res);
 
   if (range)
   {
     // This range was retrieved from the spellchecker selection. As
     // ranges cannot be shared between selections, we must clone it
     // before adding it to the editor's selection.
     nsCOMPtr<nsIDOMRange> editorRange;
     res = range->CloneRange(getter_AddRefs(editorRange));
     NS_ENSURE_SUCCESS(res, res);
 
     AutoPlaceHolderBatch phb(editor, nullptr);
-  
+
     nsCOMPtr<nsISelection> selection;
     res = editor->GetSelection(getter_AddRefs(selection));
     NS_ENSURE_SUCCESS(res, res);
     selection->RemoveAllRanges();
     selection->AddRange(editorRange);
 
     nsCOMPtr<nsIPlaintextEditor> textEditor(do_QueryReferent(mEditor));
     if (textEditor)
@@ -994,51 +994,51 @@ mozInlineSpellChecker::ReplaceWord(nsIDO
 
 NS_IMETHODIMP
 mozInlineSpellChecker::AddWordToDictionary(const nsAString &word)
 {
   NS_ENSURE_TRUE(mSpellCheck, NS_ERROR_NOT_INITIALIZED);
 
   nsAutoString wordstr(word);
   nsresult rv = mSpellCheck->AddWordToDictionary(wordstr.get());
-  NS_ENSURE_SUCCESS(rv, rv); 
+  NS_ENSURE_SUCCESS(rv, rv);
 
   auto status = MakeUnique<mozInlineSpellStatus>(this);
   rv = status->InitForSelection();
   NS_ENSURE_SUCCESS(rv, rv);
   return ScheduleSpellCheck(Move(status));
 }
 
 //  mozInlineSpellChecker::RemoveWordFromDictionary
 
 NS_IMETHODIMP
 mozInlineSpellChecker::RemoveWordFromDictionary(const nsAString &word)
 {
   NS_ENSURE_TRUE(mSpellCheck, NS_ERROR_NOT_INITIALIZED);
 
   nsAutoString wordstr(word);
   nsresult rv = mSpellCheck->RemoveWordFromDictionary(wordstr.get());
-  NS_ENSURE_SUCCESS(rv, rv); 
-  
+  NS_ENSURE_SUCCESS(rv, rv);
+
   auto status = MakeUnique<mozInlineSpellStatus>(this);
   rv = status->InitForRange(nullptr);
   NS_ENSURE_SUCCESS(rv, rv);
   return ScheduleSpellCheck(Move(status));
 }
 
 // mozInlineSpellChecker::IgnoreWord
 
 NS_IMETHODIMP
 mozInlineSpellChecker::IgnoreWord(const nsAString &word)
 {
   NS_ENSURE_TRUE(mSpellCheck, NS_ERROR_NOT_INITIALIZED);
 
   nsAutoString wordstr(word);
   nsresult rv = mSpellCheck->IgnoreWordAllOccurrences(wordstr.get());
-  NS_ENSURE_SUCCESS(rv, rv); 
+  NS_ENSURE_SUCCESS(rv, rv);
 
   auto status = MakeUnique<mozInlineSpellStatus>(this);
   rv = status->InitForSelection();
   NS_ENSURE_SUCCESS(rv, rv);
   return ScheduleSpellCheck(Move(status));
 }
 
 // mozInlineSpellChecker::IgnoreWords
@@ -1106,17 +1106,17 @@ mozInlineSpellChecker::DidSplitNode(nsID
   return SpellCheckBetweenNodes(aNewLeftNode, 0, aNewLeftNode, 0);
 }
 
 NS_IMETHODIMP mozInlineSpellChecker::WillJoinNodes(nsIDOMNode *aLeftNode, nsIDOMNode *aRightNode, nsIDOMNode *aParent)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP mozInlineSpellChecker::DidJoinNodes(nsIDOMNode *aLeftNode, nsIDOMNode *aRightNode, 
+NS_IMETHODIMP mozInlineSpellChecker::DidJoinNodes(nsIDOMNode *aLeftNode, nsIDOMNode *aRightNode,
                                                   nsIDOMNode *aParent, nsresult aResult)
 {
   return SpellCheckBetweenNodes(aRightNode, 0, aRightNode, 0);
 }
 
 NS_IMETHODIMP mozInlineSpellChecker::WillInsertText(nsIDOMCharacterData *aTextNode, int32_t aOffset, const nsAString & aString)
 {
   return NS_OK;
@@ -1813,40 +1813,40 @@ mozInlineSpellChecker::AddRange(nsISelec
     if (NS_SUCCEEDED(rv))
       mNumWordsInSpellSelection++;
   }
 
   return rv;
 }
 
 nsresult mozInlineSpellChecker::GetSpellCheckSelection(nsISelection ** aSpellCheckSelection)
-{ 
+{
   nsCOMPtr<nsIEditor> editor (do_QueryReferent(mEditor));
   NS_ENSURE_TRUE(editor, NS_ERROR_NULL_POINTER);
 
   nsCOMPtr<nsISelectionController> selcon;
   nsresult rv = editor->GetSelectionController(getter_AddRefs(selcon));
-  NS_ENSURE_SUCCESS(rv, rv); 
+  NS_ENSURE_SUCCESS(rv, rv);
 
   return selcon->GetSelection(nsISelectionController::SELECTION_SPELLCHECK, aSpellCheckSelection);
 }
 
 nsresult mozInlineSpellChecker::SaveCurrentSelectionPosition()
 {
   nsCOMPtr<nsIEditor> editor (do_QueryReferent(mEditor));
   NS_ENSURE_TRUE(editor, NS_OK);
 
   // figure out the old caret position based on the current selection
   nsCOMPtr<nsISelection> selection;
   nsresult rv = editor->GetSelection(getter_AddRefs(selection));
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = selection->GetFocusNode(getter_AddRefs(mCurrentSelectionAnchorNode));
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   selection->GetFocusOffset(&mCurrentSelectionOffset);
 
   return NS_OK;
 }
 
 // This is a copy of nsContentUtils::ContentIsDescendantOf. Another crime
 // for XPCOM's rap sheet
 bool // static
@@ -1939,33 +1939,33 @@ nsresult mozInlineSpellChecker::Blur(nsI
   return NS_OK;
 }
 
 nsresult mozInlineSpellChecker::MouseClick(nsIDOMEvent *aMouseEvent)
 {
   nsCOMPtr<nsIDOMMouseEvent>mouseEvent = do_QueryInterface(aMouseEvent);
   NS_ENSURE_TRUE(mouseEvent, NS_OK);
 
-  // ignore any errors from HandleNavigationEvent as we don't want to prevent 
+  // ignore any errors from HandleNavigationEvent as we don't want to prevent
   // anyone else from seeing this event.
   int16_t button;
   mouseEvent->GetButton(&button);
   HandleNavigationEvent(button != 0);
   return NS_OK;
 }
 
 nsresult mozInlineSpellChecker::KeyPress(nsIDOMEvent* aKeyEvent)
 {
   nsCOMPtr<nsIDOMKeyEvent>keyEvent = do_QueryInterface(aKeyEvent);
   NS_ENSURE_TRUE(keyEvent, NS_OK);
 
   uint32_t keyCode;
   keyEvent->GetKeyCode(&keyCode);
 
-  // we only care about navigation keys that moved selection 
+  // we only care about navigation keys that moved selection
   switch (keyCode)
   {
     case nsIDOMKeyEvent::DOM_VK_RIGHT:
     case nsIDOMKeyEvent::DOM_VK_LEFT:
       HandleNavigationEvent(false, keyCode == nsIDOMKeyEvent::DOM_VK_RIGHT ? 1 : -1);
       break;
     case nsIDOMKeyEvent::DOM_VK_UP:
     case nsIDOMKeyEvent::DOM_VK_DOWN:
--- a/extensions/spellcheck/src/mozInlineSpellChecker.h
+++ b/extensions/spellcheck/src/mozInlineSpellChecker.h
@@ -127,17 +127,17 @@ private:
   friend class mozInlineSpellResume;
 
   // Access with CanEnableInlineSpellChecking
   enum SpellCheckingState { SpellCheck_Uninitialized = -1,
                             SpellCheck_NotAvailable = 0,
                             SpellCheck_Available = 1};
   static SpellCheckingState gCanEnableSpellChecking;
 
-  nsWeakPtr mEditor; 
+  nsWeakPtr mEditor;
   nsCOMPtr<nsIEditorSpellCheck> mSpellCheck;
   nsCOMPtr<nsIEditorSpellCheck> mPendingSpellCheck;
   nsCOMPtr<nsIDOMTreeWalker> mTreeWalker;
   nsCOMPtr<mozISpellI18NUtil> mConverter;
 
   int32_t mNumWordsInSpellSelection;
   int32_t mMaxNumWordsInSpellSelection;
 
--- a/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
+++ b/extensions/spellcheck/src/mozInlineSpellWordUtil.cpp
@@ -98,36 +98,36 @@ static nsINode*
 FindNextNode(nsINode* aNode, nsINode* aRoot,
              OnLeaveNodeFunPtr aOnLeaveNode, void* aClosure)
 {
   NS_PRECONDITION(aNode, "Null starting node?");
 
   nsINode* next = aNode->GetFirstChild();
   if (next)
     return next;
-  
+
   // Don't look at siblings or otherwise outside of aRoot
   if (aNode == aRoot)
     return nullptr;
 
   next = aNode->GetNextSibling();
   if (next)
     return next;
 
   // Go up
   for (;;) {
     if (aOnLeaveNode) {
       aOnLeaveNode(aNode, aClosure);
     }
-    
+
     next = aNode->GetParent();
     if (next == aRoot || ! next)
       return nullptr;
     aNode = next;
-    
+
     next = aNode->GetNextSibling();
     if (next)
       return next;
   }
 }
 
 // aNode is not a text node. Find the first text node starting at aNode/aOffset
 // in a preorder DOM traversal.
@@ -139,22 +139,22 @@ FindNextTextNode(nsINode* aNode, int32_t
 
   nsINode* checkNode;
   // Need to start at the aOffset'th child
   nsIContent* child = aNode->GetChildAt(aOffset);
 
   if (child) {
     checkNode = child;
   } else {
-    // aOffset was beyond the end of the child list. 
+    // aOffset was beyond the end of the child list.
     // goto next node after the last descendant of aNode in
     // a preorder DOM traversal.
     checkNode = aNode->GetNextNonChildNode(aRoot);
   }
-  
+
   while (checkNode && !IsSpellCheckingTextNode(checkNode)) {
     checkNode = checkNode->GetNextNode(aRoot);
   }
   return checkNode;
 }
 
 // mozInlineSpellWordUtil::SetEnd
 //
@@ -202,17 +202,17 @@ mozInlineSpellWordUtil::SetPosition(nsIN
     aOffset = 0;
   }
   mSoftBegin = NodeOffset(aNode, aOffset);
 
   nsresult rv = EnsureWords();
   if (NS_FAILED(rv)) {
     return rv;
   }
-  
+
   int32_t textOffset = MapDOMPositionToSoftTextOffset(mSoftBegin);
   if (textOffset < 0)
     return NS_OK;
   mNextWordIndex = FindRealWordContaining(textOffset, HINT_END, true);
   return NS_OK;
 }
 
 nsresult
@@ -304,29 +304,29 @@ mozInlineSpellWordUtil::GetNextWord(nsAS
 
   if (mNextWordIndex < 0 ||
       mNextWordIndex >= int32_t(mRealWords.Length())) {
     mNextWordIndex = -1;
     *aRange = nullptr;
     *aSkipChecking = true;
     return NS_OK;
   }
-  
+
   const RealWord& word = mRealWords[mNextWordIndex];
   nsresult rv = MakeRangeForWord(word, aRange);
   NS_ENSURE_SUCCESS(rv, rv);
   ++mNextWordIndex;
   *aSkipChecking = !word.mCheckableWord;
   ::NormalizeWord(mSoftText, word.mSoftTextOffset, word.mLength, aText);
 
 #ifdef DEBUG_SPELLCHECK
   printf("GetNextWord returning: %s (skip=%d)\n",
          NS_ConvertUTF16toUTF8(aText).get(), *aSkipChecking);
 #endif
-  
+
   return NS_OK;
 }
 
 // mozInlineSpellWordUtil::MakeRange
 //
 //    Convenience function for creating a range over the current document.
 
 nsresult
@@ -701,17 +701,17 @@ ContainsDOMWordSeparator(nsINode* aNode,
 static bool
 IsBreakElement(nsINode* aNode)
 {
   if (!aNode->IsElement()) {
     return false;
   }
 
   dom::Element *element = aNode->AsElement();
-    
+
   if (element->IsHTMLElement(nsGkAtoms::br))
     return true;
 
   // If we don't have a frame, we don't consider ourselves a break
   // element.  In particular, words can span us.
   if (!element->GetPrimaryFrame())
     return false;
 
@@ -861,17 +861,17 @@ mozInlineSpellWordUtil::BuildSoftText()
       // We left, or are entering, a break element (e.g., block). Maybe we can
       // stop now.
       if (seenSoftEnd)
         break;
       // Record the break
       mSoftText.Append(' ');
     }
   }
-  
+
 #ifdef DEBUG_SPELLCHECK
   printf("Got DOM string: %s\n", NS_ConvertUTF16toUTF8(mSoftText).get());
 #endif
 }
 
 nsresult
 mozInlineSpellWordUtil::BuildRealWords()
 {
@@ -910,17 +910,17 @@ mozInlineSpellWordUtil::BuildRealWords()
 
 int32_t
 mozInlineSpellWordUtil::MapDOMPositionToSoftTextOffset(NodeOffset aNodeOffset)
 {
   if (!mSoftTextValid) {
     NS_ERROR("Soft text must be valid if we're to map into it");
     return -1;
   }
-  
+
   for (int32_t i = 0; i < int32_t(mSoftTextDOMMapping.Length()); ++i) {
     const DOMTextMapping& map = mSoftTextDOMMapping[i];
     if (map.mNodeOffset.mNode == aNodeOffset.mNode) {
       // Allow offsets at either end of the string, in particular, allow the
       // offset that's at the end of the contributed string
       int32_t offsetInContributedString =
         aNodeOffset.mOffset - map.mNodeOffset.mOffset;
       if (offsetInContributedString >= 0 &&
--- a/extensions/spellcheck/src/mozInlineSpellWordUtil.h
+++ b/extensions/spellcheck/src/mozInlineSpellWordUtil.h
@@ -38,17 +38,17 @@ class nsINode;
  */
 
 class mozInlineSpellWordUtil
 {
 public:
   struct NodeOffset {
     nsINode* mNode;
     int32_t  mOffset;
-    
+
     NodeOffset(nsINode* aNode, int32_t aOffset) :
       mNode(aNode), mOffset(aOffset) {}
 
     bool operator==(const NodeOffset& aOther) const {
       return mNode == aOther.mNode && mOffset == aOther.mOffset;
     }
 
     bool operator!=(const NodeOffset& aOther) const {
@@ -90,17 +90,17 @@ public:
 
   // Call to normalize some punctuation. This function takes an autostring
   // so we can access characters directly.
   static void NormalizeWord(nsAString& aWord);
 
   nsIDOMDocument* GetDOMDocument() const { return mDOMDocument; }
   nsIDocument* GetDocument() const { return mDocument; }
   nsINode* GetRootNode() { return mRootNode; }
-  
+
 private:
 
   // cached stuff for the editor, set by Init
   nsCOMPtr<nsIDOMDocument> mDOMDocument;
   nsCOMPtr<nsIDocument>         mDocument;
 
   // range to check, see SetPosition and SetEnd
   nsINode*    mRootNode;
@@ -110,46 +110,46 @@ private:
   // DOM text covering the soft range, with newlines added at block boundaries
   nsString mSoftText;
   // A list of where we extracted text from, ordered by mSoftTextOffset. A given
   // DOM node appears at most once in this list.
   struct DOMTextMapping {
     NodeOffset mNodeOffset;
     int32_t    mSoftTextOffset;
     int32_t    mLength;
-    
+
     DOMTextMapping(NodeOffset aNodeOffset, int32_t aSoftTextOffset, int32_t aLength)
       : mNodeOffset(aNodeOffset), mSoftTextOffset(aSoftTextOffset),
         mLength(aLength) {}
   };
   nsTArray<DOMTextMapping> mSoftTextDOMMapping;
-  
+
   // A list of the "real words" in mSoftText, ordered by mSoftTextOffset
   struct RealWord {
     int32_t      mSoftTextOffset;
     uint32_t      mLength : 31;
     uint32_t mCheckableWord : 1;
-    
+
     RealWord(int32_t aOffset, uint32_t aLength, bool aCheckable)
       : mSoftTextOffset(aOffset), mLength(aLength), mCheckableWord(aCheckable)
     {
       static_assert(sizeof(RealWord) == 8, "RealWord should be limited to 8 bytes");
       MOZ_ASSERT(aLength < INT32_MAX, "Word length is too large to fit in the bitfield");
     }
 
     int32_t EndOffset() const { return mSoftTextOffset + mLength; }
   };
   nsTArray<RealWord> mRealWords;
   int32_t            mNextWordIndex;
 
   bool mSoftTextValid;
 
   void InvalidateWords() { mSoftTextValid = false; }
   nsresult EnsureWords();
-  
+
   int32_t MapDOMPositionToSoftTextOffset(NodeOffset aNodeOffset);
   // Map an offset into mSoftText to a DOM position. Note that two DOM positions
   // can map to the same mSoftText offset, e.g. given nodes A=aaaa and B=bbbb
   // forming aaaabbbb, (A,4) and (B,0) give the same string offset. So,
   // aHintBefore controls which position we return ... if aHint is eEnd
   // then the position indicates the END of a range so we return (A,4). Otherwise
   // the position indicates the START of a range so we return (B,0).
   enum DOMMapHint { HINT_BEGIN, HINT_END };
@@ -158,17 +158,17 @@ private:
   // Finds the index of the real word containing aSoftTextOffset, or -1 if none
   // If it's exactly between two words, then if aHint is HINT_BEGIN, return the
   // later word (favouring the assumption that it's the BEGINning of a word),
   // otherwise return the earlier word (assuming it's the END of a word).
   // If aSearchForward is true, then if we don't find a word at the given
   // position, search forward until we do find a word and return that (if found).
   int32_t FindRealWordContaining(int32_t aSoftTextOffset, DOMMapHint aHint,
                                  bool aSearchForward);
-    
+
   // build mSoftText and mSoftTextDOMMapping
   void BuildSoftText();
   // Build mRealWords array
   nsresult BuildRealWords();
 
   nsresult SplitDOMWord(int32_t aStart, int32_t aEnd);
 
   // Convenience functions, object must be initialized
--- a/extensions/spellcheck/src/mozPersonalDictionary.cpp
+++ b/extensions/spellcheck/src/mozPersonalDictionary.cpp
@@ -188,17 +188,17 @@ nsresult mozPersonalDictionary::Init()
 void mozPersonalDictionary::WaitForLoad()
 {
   // If the dictionary is already loaded, we return straight away.
   if (mIsLoaded) {
     return;
   }
 
   // If the dictionary hasn't been loaded, we try to lock the same monitor
-  // that the thread uses that does the load. This way the main thread will 
+  // that the thread uses that does the load. This way the main thread will
   // be suspended until the monitor becomes available.
   mozilla::MonitorAutoLock mon(mMonitor);
 
   // The monitor has become available. This can have two reasons:
   // 1: The thread that does the load has finished.
   // 2: The thread that does the load hasn't even started.
   //    In this case we need to wait.
   if (!mIsLoaded) {
@@ -302,17 +302,17 @@ void mozPersonalDictionary::SyncLoadInte
   char16_t c;
   uint32_t nRead;
   bool done = false;
   do{  // read each line of text into the string array.
     if( (NS_OK != convStream->Read(&c, 1, &nRead)) || (nRead != 1)) break;
     while(!done && ((c == '\n') || (c == '\r'))){
       if( (NS_OK != convStream->Read(&c, 1, &nRead)) || (nRead != 1)) done = true;
     }
-    if (!done){ 
+    if (!done){
       nsAutoString word;
       while((c != '\n') && (c != '\r') && !done){
         word.Append(c);
         if( (NS_OK != convStream->Read(&c, 1, &nRead)) || (nRead != 1)) done = true;
       }
       mDictionaryTable.PutEntry(word.get());
     }
   } while(!done);
@@ -425,17 +425,17 @@ NS_IMETHODIMP mozPersonalDictionary::Rem
   mDictionaryTable.RemoveEntry(aWord);
   res = Save();
   return res;
 }
 
 NS_IMETHODIMP mozPersonalDictionary::IgnoreWord(const char16_t *aWord)
 {
   // avoid adding duplicate words to the ignore list
-  if (aWord && !mIgnoreTable.GetEntry(aWord)) 
+  if (aWord && !mIgnoreTable.GetEntry(aWord))
     mIgnoreTable.PutEntry(aWord);
   return NS_OK;
 }
 
 NS_IMETHODIMP mozPersonalDictionary::EndSession()
 {
   WaitForLoad();
 
--- a/extensions/spellcheck/src/mozSpellChecker.cpp
+++ b/extensions/spellcheck/src/mozSpellChecker.cpp
@@ -66,26 +66,26 @@ mozSpellChecker::Init()
     contentChild->SendPRemoteSpellcheckEngineConstructor(mEngine);
   } else {
     mPersonalDictionary = do_GetService("@mozilla.org/spellchecker/personaldictionary;1");
   }
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::SetDocument(nsITextServicesDocument *aDoc, bool aFromStartofDoc)
 {
   mTsDoc = aDoc;
   mFromStart = aFromStartofDoc;
   return NS_OK;
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::NextMisspelledWord(nsAString &aWord, nsTArray<nsString> *aSuggestions)
 {
   if(!aSuggestions||!mConverter)
     return NS_ERROR_NULL_POINTER;
 
   int32_t selOffset;
   int32_t begin,end;
   nsresult result;
@@ -93,17 +93,17 @@ mozSpellChecker::NextMisspelledWord(nsAS
   bool isMisspelled,done;
   if (NS_FAILED(result))
     return result;
 
   while( NS_SUCCEEDED(mTsDoc->IsDone(&done)) && !done )
     {
       nsString str;
       result = mTsDoc->GetCurrentTextBlock(&str);
-  
+
       if (NS_FAILED(result))
         return result;
       do{
         result = mConverter->FindNextWord(str.get(),str.Length(),selOffset,&begin,&end);
         if(NS_SUCCEEDED(result)&&(begin != -1)){
           const nsAString &currWord = Substring(str, begin, end - begin);
           result = CheckWord(currWord, &isMisspelled, aSuggestions);
           if(isMisspelled){
@@ -119,17 +119,17 @@ mozSpellChecker::NextMisspelledWord(nsAS
         selOffset = end;
       }while(end != -1);
       mTsDoc->NextBlock();
       selOffset=0;
     }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::CheckWord(const nsAString &aWord, bool *aIsMisspelled, nsTArray<nsString> *aSuggestions)
 {
   nsresult result;
   bool correct;
 
   if (XRE_IsContentProcess()) {
     nsString wordwrapped = nsString(aWord);
     bool rv;
@@ -146,33 +146,33 @@ mozSpellChecker::CheckWord(const nsAStri
   }
   *aIsMisspelled = false;
   result = mSpellCheckingEngine->Check(PromiseFlatString(aWord).get(), &correct);
   NS_ENSURE_SUCCESS(result, result);
   if(!correct){
     if(aSuggestions){
       uint32_t count,i;
       char16_t **words;
-      
+
       result = mSpellCheckingEngine->Suggest(PromiseFlatString(aWord).get(), &words, &count);
       NS_ENSURE_SUCCESS(result, result);
       nsString* suggestions = aSuggestions->AppendElements(count);
       for(i=0;i<count;i++){
 	suggestions[i].Assign(words[i]);
       }
-      
+
       if (count)
         NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(count, words);
     }
     *aIsMisspelled = true;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::Replace(const nsAString &aOldWord, const nsAString &aNewWord, bool aAllOccurrences)
 {
   if(!mConverter)
     return NS_ERROR_NULL_POINTER;
 
   nsAutoString newWord(aNewWord); // sigh
 
   if(aAllOccurrences){
@@ -214,95 +214,95 @@ mozSpellChecker::Replace(const nsAString
               mTsDoc->GetCurrentTextBlock(&str);
               end += (aNewWord.Length() - aOldWord.Length());  // recursion was cute in GEB, not here.
             }
           }
           currOffset = end;
         }while(currOffset != -1);
         mTsDoc->NextBlock();
         currentBlock++;
-        currOffset=0;          
+        currOffset=0;
       }
 
     // We are done replacing.  Put the selection point back where we found  it (or equivalent);
     result = mTsDoc->FirstBlock();
     currentBlock = 0;
     while(( NS_SUCCEEDED(mTsDoc->IsDone(&done)) && !done ) &&(currentBlock < startBlock)){
       mTsDoc->NextBlock();
     }
 
-//After we have moved to the block where the first occurrence of replace was done, put the 
+//After we have moved to the block where the first occurrence of replace was done, put the
 //selection to the next word following it. In case there is no word following it i.e if it happens
-//to be the last word in that block, then move to the next block and put the selection to the 
+//to be the last word in that block, then move to the next block and put the selection to the
 //first word in that block, otherwise when the Setupdoc() is called, it queries the LastSelectedBlock()
-//and the selection offset of the last occurrence of the replaced word is taken instead of the first 
+//and the selection offset of the last occurrence of the replaced word is taken instead of the first
 //occurrence and things get messed up as reported in the bug 244969
 
     if( NS_SUCCEEDED(mTsDoc->IsDone(&done)) && !done ){
-      nsString str;                                
-      result = mTsDoc->GetCurrentTextBlock(&str);  
+      nsString str;
+      result = mTsDoc->GetCurrentTextBlock(&str);
       result = mConverter->FindNextWord(str.get(),str.Length(),selOffset,&begin,&end);
             if(end == -1)
              {
                 mTsDoc->NextBlock();
                 selOffset=0;
-                result = mTsDoc->GetCurrentTextBlock(&str); 
+                result = mTsDoc->GetCurrentTextBlock(&str);
                 result = mConverter->FindNextWord(str.get(),str.Length(),selOffset,&begin,&end);
                 mTsDoc->SetSelection(begin, 0);
              }
          else
                 mTsDoc->SetSelection(begin, 0);
     }
  }
   else{
     mTsDoc->InsertText(&newWord);
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::IgnoreAll(const nsAString &aWord)
 {
   if(mPersonalDictionary){
     mPersonalDictionary->IgnoreWord(PromiseFlatString(aWord).get());
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::AddWordToPersonalDictionary(const nsAString &aWord)
 {
   nsresult res;
   char16_t empty=0;
   if (!mPersonalDictionary)
     return NS_ERROR_NULL_POINTER;
   res = mPersonalDictionary->AddWord(PromiseFlatString(aWord).get(),&empty);
   return res;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::RemoveWordFromPersonalDictionary(const nsAString &aWord)
 {
   nsresult res;
   char16_t empty=0;
   if (!mPersonalDictionary)
     return NS_ERROR_NULL_POINTER;
   res = mPersonalDictionary->RemoveWord(PromiseFlatString(aWord).get(),&empty);
   return res;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 mozSpellChecker::GetPersonalDictionary(nsTArray<nsString> *aWordList)
 {
   if(!aWordList || !mPersonalDictionary)
     return NS_ERROR_NULL_POINTER;
 
   nsCOMPtr<nsIStringEnumerator> words;
   mPersonalDictionary->GetWordList(getter_AddRefs(words));
-  
+
   bool hasMore;
   nsAutoString word;
   while (NS_SUCCEEDED(words->HasMore(&hasMore)) && hasMore) {
     words->GetNext(word);
     aWordList->AppendElement(word);
   }
   return NS_OK;
 }
@@ -456,50 +456,50 @@ mozSpellChecker::SetupDoc(int32_t *outBl
 {
   nsresult  rv;
 
   nsITextServicesDocument::TSDBlockSelectionStatus blockStatus;
   int32_t selOffset;
   int32_t selLength;
   *outBlockOffset = 0;
 
-  if (!mFromStart) 
+  if (!mFromStart)
   {
     rv = mTsDoc->LastSelectedBlock(&blockStatus, &selOffset, &selLength);
     if (NS_SUCCEEDED(rv) && (blockStatus != nsITextServicesDocument::eBlockNotFound))
     {
       switch (blockStatus)
       {
         case nsITextServicesDocument::eBlockOutside:  // No TB in S, but found one before/after S.
         case nsITextServicesDocument::eBlockPartial:  // S begins or ends in TB but extends outside of TB.
           // the TS doc points to the block we want.
           *outBlockOffset = selOffset + selLength;
           break;
-                    
+
         case nsITextServicesDocument::eBlockInside:  // S extends beyond the start and end of TB.
           // we want the block after this one.
           rv = mTsDoc->NextBlock();
           *outBlockOffset = 0;
           break;
-                
+
         case nsITextServicesDocument::eBlockContains: // TB contains entire S.
           *outBlockOffset = selOffset + selLength;
           break;
-        
+
         case nsITextServicesDocument::eBlockNotFound: // There is no text block (TB) in or before the selection (S).
         default:
           NS_NOTREACHED("Shouldn't ever get this status");
       }
     }
     else  //failed to get last sel block. Just start at beginning
     {
       rv = mTsDoc->FirstBlock();
       *outBlockOffset = 0;
     }
-  
+
   }
   else // we want the first block
   {
     rv = mTsDoc->FirstBlock();
     mFromStart = false;
   }
   return rv;
 }
@@ -520,17 +520,17 @@ mozSpellChecker::GetCurrentBlockIndex(ns
     aDoc->PrevBlock();
 
     result = aDoc->IsDone(&isDone);
 
     if (!isDone)
       blockIndex ++;
 
   } while (NS_SUCCEEDED(result) && !isDone);
-  
+
   *outBlockIndex = blockIndex;
 
   return result;
 }
 
 nsresult
 mozSpellChecker::GetEngineList(nsCOMArray<mozISpellCheckingEngine>* aSpellCheckingEngines)
 {
--- a/extensions/universalchardet/src/base/CharDistribution.cpp
+++ b/extensions/universalchardet/src/base/CharDistribution.cpp
@@ -8,17 +8,17 @@
 #include "JISFreq.tab"
 #include "mozilla/ArrayUtils.h"
 
 #define SURE_YES 0.99f
 #define SURE_NO  0.01f
 
 //return confidence base on received data
 float CharDistributionAnalysis::GetConfidence(void)
-{ 
+{
   //if we didn't receive any character in our consideration range, or the
   // number of frequent characters is below the minimum threshold, return
   // negative answer
   if (mTotalChars <= 0 || mFreqChars <= mDataThreshold)
     return SURE_NO;
 
   if (mTotalChars != mFreqChars) {
     float r = mFreqChars / ((mTotalChars - mFreqChars) * mTypicalDistributionRatio);
--- a/extensions/universalchardet/src/base/CharDistribution.h
+++ b/extensions/universalchardet/src/base/CharDistribution.h
@@ -4,25 +4,25 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef CharDistribution_h__
 #define CharDistribution_h__
 
 #include "nscore.h"
 
 #define ENOUGH_DATA_THRESHOLD 1024
- 
+
 class CharDistributionAnalysis
 {
 public:
   CharDistributionAnalysis() {Reset();}
 
   //feed a block of data and do distribution analysis
   void HandleData(const char* aBuf, uint32_t aLen) {}
-  
+
   //Feed a character with known length
   void HandleOneChar(const char* aStr, uint32_t aCharLen)
   {
     int32_t order;
 
     //we only care about 2-bytes character in our distribution analysis
     order = (aCharLen == 2) ? GetOrder(aStr) : -1;
 
@@ -36,35 +36,35 @@ public:
           mFreqChars++;
       }
     }
   }
 
   //return confidence base on existing data
   float GetConfidence(void);
 
-  //Reset analyser, clear any state 
+  //Reset analyser, clear any state
   void      Reset()
   {
     mDone = false;
     mTotalChars = 0;
     mFreqChars = 0;
     mDataThreshold = 0;
   }
 
   //It is not necessary to receive all data to draw conclusion. For charset detection,
   // certain amount of data is enough
   bool GotEnoughData() {return mTotalChars > ENOUGH_DATA_THRESHOLD;}
 
 protected:
-  //we do not handle character base on its original encoding string, but 
+  //we do not handle character base on its original encoding string, but
   //convert this encoding string to a number, here called order.
-  //This allow multiple encoding of a language to share one frequency table 
+  //This allow multiple encoding of a language to share one frequency table
   virtual int32_t GetOrder(const char* str) {return -1;}
-  
+
   //If this flag is set to true, detection is done and conclusion has been made
   bool     mDone;
 
   //The number of characters whose frequency order is less than 512
   uint32_t mFreqChars;
 
   //Total character encounted.
   uint32_t mTotalChars;
@@ -73,132 +73,132 @@ protected:
   uint32_t mDataThreshold;
 
   //Mapping table to get frequency order from char order (get from GetOrder())
   const int16_t  *mCharToFreqOrder;
 
   //Size of above table
   uint32_t mTableSize;
 
-  //This is a constant value varies from language to language, it is used in 
+  //This is a constant value varies from language to language, it is used in
   //calculating confidence. See my paper for further detail.
   float    mTypicalDistributionRatio;
 };
 
 
 class EUCTWDistributionAnalysis: public CharDistributionAnalysis
 {
 public:
   EUCTWDistributionAnalysis();
 protected:
 
-  //for euc-TW encoding, we are interested 
+  //for euc-TW encoding, we are interested
   //  first  byte range: 0xc4 -- 0xfe
   //  second byte range: 0xa1 -- 0xfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { if ((unsigned char)*str >= (unsigned char)0xc4)  
+  int32_t GetOrder(const char* str)
+  { if ((unsigned char)*str >= (unsigned char)0xc4)
       return 94*((unsigned char)str[0]-(unsigned char)0xc4) + (unsigned char)str[1] - (unsigned char)0xa1;
     else
       return -1;
   }
 };
 
 
 class EUCKRDistributionAnalysis : public CharDistributionAnalysis
 {
 public:
   EUCKRDistributionAnalysis();
 protected:
-  //for euc-KR encoding, we are interested 
+  //for euc-KR encoding, we are interested
   //  first  byte range: 0xb0 -- 0xfe
   //  second byte range: 0xa1 -- 0xfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { if ((unsigned char)*str >= (unsigned char)0xb0)  
+  int32_t GetOrder(const char* str)
+  { if ((unsigned char)*str >= (unsigned char)0xb0)
       return 94*((unsigned char)str[0]-(unsigned char)0xb0) + (unsigned char)str[1] - (unsigned char)0xa1;
     else
       return -1;
   }
 };
 
 class GB2312DistributionAnalysis : public CharDistributionAnalysis
 {
 public:
   GB2312DistributionAnalysis();
 protected:
-  //for GB2312 encoding, we are interested 
+  //for GB2312 encoding, we are interested
   //  first  byte range: 0xb0 -- 0xfe
   //  second byte range: 0xa1 -- 0xfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { if ((unsigned char)*str >= (unsigned char)0xb0 && (unsigned char)str[1] >= (unsigned char)0xa1)  
+  int32_t GetOrder(const char* str)
+  { if ((unsigned char)*str >= (unsigned char)0xb0 && (unsigned char)str[1] >= (unsigned char)0xa1)
       return 94*((unsigned char)str[0]-(unsigned char)0xb0) + (unsigned char)str[1] - (unsigned char)0xa1;
     else
       return -1;
   }
 };
 
 
 class Big5DistributionAnalysis : public CharDistributionAnalysis
 {
 public:
   Big5DistributionAnalysis();
 protected:
-  //for big5 encoding, we are interested 
+  //for big5 encoding, we are interested
   //  first  byte range: 0xa4 -- 0xfe
   //  second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { if ((unsigned char)*str >= (unsigned char)0xa4)  
+  int32_t GetOrder(const char* str)
+  { if ((unsigned char)*str >= (unsigned char)0xa4)
       if ((unsigned char)str[1] >= (unsigned char)0xa1)
         return 157*((unsigned char)str[0]-(unsigned char)0xa4) + (unsigned char)str[1] - (unsigned char)0xa1 +63;
       else
         return 157*((unsigned char)str[0]-(unsigned char)0xa4) + (unsigned char)str[1] - (unsigned char)0x40;
     else
       return -1;
   }
 };
 
 class SJISDistributionAnalysis : public CharDistributionAnalysis
 {
 public:
   SJISDistributionAnalysis();
 protected:
-  //for sjis encoding, we are interested 
+  //for sjis encoding, we are interested
   //  first  byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe
   //  second byte range: 0x40 -- 0x7e,  0x81 -- oxfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { 
+  int32_t GetOrder(const char* str)
+  {
     int32_t order;
-    if ((unsigned char)*str >= (unsigned char)0x81 && (unsigned char)*str <= (unsigned char)0x9f)  
+    if ((unsigned char)*str >= (unsigned char)0x81 && (unsigned char)*str <= (unsigned char)0x9f)
       order = 188 * ((unsigned char)str[0]-(unsigned char)0x81);
-    else if ((unsigned char)*str >= (unsigned char)0xe0 && (unsigned char)*str <= (unsigned char)0xef)  
+    else if ((unsigned char)*str >= (unsigned char)0xe0 && (unsigned char)*str <= (unsigned char)0xef)
       order = 188 * ((unsigned char)str[0]-(unsigned char)0xe0 + 31);
     else
       return -1;
     order += (unsigned char)*(str+1) - 0x40;
     if ((unsigned char)str[1] > (unsigned char)0x7f)
       order--;
     return order;
   }
 };
 
 class EUCJPDistributionAnalysis : public CharDistributionAnalysis
 {
 public:
   EUCJPDistributionAnalysis();
 protected:
-  //for euc-JP encoding, we are interested 
+  //for euc-JP encoding, we are interested
   //  first  byte range: 0xa0 -- 0xfe
   //  second byte range: 0xa1 -- 0xfe
   //no validation needed here. State machine has done that
-  int32_t GetOrder(const char* str) 
-  { if ((unsigned char)*str >= (unsigned char)0xa0)  
+  int32_t GetOrder(const char* str)
+  { if ((unsigned char)*str >= (unsigned char)0xa0)
       return 94*((unsigned char)str[0]-(unsigned char)0xa1) + (unsigned char)str[1] - (unsigned char)0xa1;
     else
       return -1;
   }
 };
 
 #endif //CharDistribution_h__
 
--- a/extensions/universalchardet/src/base/JpCntx.cpp
+++ b/extensions/universalchardet/src/base/JpCntx.cpp
@@ -2,18 +2,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nscore.h"
 #include "JpCntx.h"
 
 //This is hiragana 2-char sequence table, the number in each cell represents its frequency category
-const uint8_t jp2CharContext[83][83] = 
-{ 
+const uint8_t jp2CharContext[83][83] =
+{
 { 0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,},
 { 2,4,0,4,0,3,0,4,0,3,4,4,4,2,4,3,3,4,3,2,3,3,4,2,3,3,3,2,4,1,4,3,3,1,5,4,3,4,3,4,3,5,3,0,3,5,4,2,0,3,1,0,3,3,0,3,3,0,1,1,0,4,3,0,3,3,0,4,0,2,0,3,5,5,5,5,4,0,4,1,0,3,4,},
 { 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,},
 { 0,4,0,5,0,5,0,4,0,4,5,4,4,3,5,3,5,1,5,3,4,3,4,4,3,4,3,3,4,3,5,4,4,3,5,5,3,5,5,5,3,5,5,3,4,5,5,3,1,3,2,0,3,4,0,4,2,0,4,2,1,5,3,2,3,5,0,4,0,2,0,5,4,4,5,4,5,0,4,0,0,4,4,},
 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},
 { 0,3,0,4,0,3,0,3,0,4,5,4,3,3,3,3,4,3,5,4,4,3,5,4,4,3,4,3,4,4,4,4,5,3,4,4,3,4,5,5,4,5,5,1,4,5,4,3,0,3,3,1,3,3,0,4,4,0,3,3,1,5,3,3,3,5,0,4,0,3,0,4,4,3,4,3,3,0,4,1,1,3,4,},
 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},
 { 0,4,0,3,0,3,0,4,0,3,4,4,3,2,2,1,2,1,3,1,3,3,3,3,3,4,3,1,3,3,5,3,3,0,4,3,0,5,4,3,3,5,4,4,3,4,4,5,0,1,2,0,1,2,0,2,2,0,1,0,0,5,2,2,1,4,0,3,0,1,0,4,4,3,5,4,3,0,2,1,0,4,3,},
@@ -96,50 +96,50 @@ const uint8_t jp2CharContext[83][83] =
 
 #define MINIMUM_DATA_THRESHOLD  4
 
 void JapaneseContextAnalysis::HandleData(const char* aBuf, uint32_t aLen)
 {
   uint32_t charLen;
   int32_t order;
   uint32_t i;
-  
+
   if (mDone)
     return;
 
   //The buffer we got is byte oriented, and a character may span in more than one
-  //buffers. In case the last one or two byte in last buffer is not complete, we 
+  //buffers. In case the last one or two byte in last buffer is not complete, we
   //record how many byte needed to complete that character and skip these bytes here.
-  //We can choose to record those bytes as well and analyse the character once it 
+  //We can choose to record those bytes as well and analyse the character once it
   //is complete, but since a character will not make much difference, by simply skipping
   //this character will simply our logic and improve performance.
   for (i = mNeedToSkipCharNum; i < aLen; )
   {
     order = GetOrder(aBuf+i, &charLen);
     i+= charLen;
     if (i > aLen){
       mNeedToSkipCharNum = i - aLen;
       mLastCharOrder = -1;
     }
-    else 
+    else
     {
       if (order != -1 && mLastCharOrder != -1)
       {
         mTotalRel ++;
         if (mTotalRel > MAX_REL_THRESHOLD)
         {
           mDone = true;
           break;
         }
         mRelSample[jp2CharContext[mLastCharOrder][order]]++;
       }
       mLastCharOrder = order;
     }
   }
-  
+
   return;
 }
 
 void JapaneseContextAnalysis::Reset()
 {
   mTotalRel = 0;
   for (uint32_t i = 0; i < NUM_OF_CATEGORY; i++)
     mRelSample[i] = 0;
@@ -150,33 +150,33 @@ void JapaneseContextAnalysis::Reset()
 }
 #define DONT_KNOW (float)-1
 
 float  JapaneseContextAnalysis::GetConfidence(void)
 {
   //This is just one way to calculate confidence. It works well for me.
   if (mTotalRel > mDataThreshold)
     return ((float)(mTotalRel - mRelSample[0]))/mTotalRel;
-  else 
+  else
     return (float)DONT_KNOW;
 }
 
 
 int32_t SJISContextAnalysis::GetOrder(const char* str, uint32_t *charLen)
 {
   //find out current char's byte length
   if (((unsigned char)*str >= (unsigned char)0x81 && (unsigned char)*str <= (unsigned char)0x9f) ||
       ((unsigned char)*str >= (unsigned char)0xe0 && (unsigned char)*str <= (unsigned char)0xfc) )
       *charLen = 2;
-  else 
+  else
       *charLen = 1;
 
   //return its order if it is hiragana
-  if (*str == '\202' && 
-        (unsigned char)*(str+1) >= (unsigned char)0x9f && 
+  if (*str == '\202' &&
+        (unsigned char)*(str+1) >= (unsigned char)0x9f &&
         (unsigned char)*(str+1) <= (unsigned char)0xf1)
     return (unsigned char)*(str+1) - (unsigned char)0x9f;
   return -1;
 }
 
 int32_t EUCJPContextAnalysis::GetOrder(const char* str, uint32_t *charLen)
 {
   //find out current char's byte length
@@ -186,13 +186,13 @@ int32_t EUCJPContextAnalysis::GetOrder(c
       *charLen = 2;
   else if ((unsigned char)*str == (unsigned char)0x8f)
     *charLen = 3;
   else
     *charLen = 1;
 
   //return its order if it is hiragana
   if ((unsigned char)*str == (unsigned char)0xa4 &&
-      (unsigned char)*(str+1) >= (unsigned char)0xa1 && 
+      (unsigned char)*(str+1) >= (unsigned char)0xa1 &&
       (unsigned char)*(str+1) <= (unsigned char)0xf3)
      return (unsigned char)*(str+1) - (unsigned char)0xa1;
   return -1;
 }
--- a/extensions/universalchardet/src/base/JpCntx.h
+++ b/extensions/universalchardet/src/base/JpCntx.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef __JPCNTX_H__
 #define __JPCNTX_H__
 
 #define NUM_OF_CATEGORY 6
 
-#include "nscore.h" 
+#include "nscore.h"
 
 #define ENOUGH_REL_THRESHOLD  100
 #define MAX_REL_THRESHOLD     1000
 
 //hiragana frequency category table
 extern const uint8_t jp2CharContext[83][83];
 
 class JapaneseContextAnalysis
@@ -22,20 +22,20 @@ public:
   JapaneseContextAnalysis() {Reset();}
 
   void HandleData(const char* aBuf, uint32_t aLen);
 
   void HandleOneChar(const char* aStr, uint32_t aCharLen)
   {
     int32_t order;
 
-    //if we received enough data, stop here   
+    //if we received enough data, stop here
     if (mTotalRel > MAX_REL_THRESHOLD)   mDone = true;
     if (mDone)       return;
-     
+
     //Only 2-bytes characters are of our interest
     order = (aCharLen == 2) ? GetOrder(aStr) : -1;
     if (order != -1 && mLastCharOrder != -1)
     {
       mTotalRel++;
       //count this sequence to its category counter
       mRelSample[jp2CharContext[mLastCharOrder][order]]++;
     }
@@ -53,17 +53,17 @@ protected:
   //category counters, each integer counts sequences in its category
   uint32_t mRelSample[NUM_OF_CATEGORY];
 
   //total sequence received
   uint32_t mTotalRel;
 
   //Number of sequences needed to trigger detection
   uint32_t mDataThreshold;
-  
+
   //The order of previous char
   int32_t  mLastCharOrder;
 
   //if last byte in current buffer is not the last byte of a character, we
   //need to know how many byte to skip in next buffer.
   uint32_t mNeedToSkipCharNum;
 
   //If this flag is set to true, detection is done and conclusion has been made
@@ -75,18 +75,18 @@ class SJISContextAnalysis : public Japan
 {
   //SJISContextAnalysis(){};
 protected:
   int32_t GetOrder(const char* str, uint32_t *charLen);
 
   int32_t GetOrder(const char* str)
   {
     //We only interested in Hiragana, so first byte is '\202'
-    if (*str == '\202' && 
-          (unsigned char)*(str+1) >= (unsigned char)0x9f && 
+    if (*str == '\202' &&
+          (unsigned char)*(str+1) >= (unsigned char)0x9f &&
           (unsigned char)*(str+1) <= (unsigned char)0xf1)
       return (unsigned char)*(str+1) - (unsigned char)0x9f;
     return -1;
   }
 };
 
 class EUCJPContextAnalysis : public JapaneseContextAnalysis
 {
--- a/extensions/universalchardet/src/base/nsCharSetProber.cpp
+++ b/extensions/universalchardet/src/base/nsCharSetProber.cpp
@@ -1,49 +1,49 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #include "nsCharSetProber.h"
 
 //This filter applies to all scripts which do not use English characters
 bool nsCharSetProber::FilterWithoutEnglishLetters(const char* aBuf, uint32_t aLen, char** newBuf, uint32_t& newLen)
 {
   char *newptr;
   char *prevPtr, *curPtr;
-  
-  bool meetMSB = false;   
+
+  bool meetMSB = false;
   newptr = *newBuf = (char*)malloc(aLen);
   if (!newptr)
     return false;
 
   for (curPtr = prevPtr = (char*)aBuf; curPtr < aBuf+aLen; curPtr++)
   {
     if (*curPtr & 0x80)
     {
       meetMSB = true;
     }
-    else if (*curPtr < 'A' || (*curPtr > 'Z' && *curPtr < 'a') || *curPtr > 'z') 
+    else if (*curPtr < 'A' || (*curPtr > 'Z' && *curPtr < 'a') || *curPtr > 'z')
     {
       //current char is a symbol, most likely a punctuation. we treat it as segment delimiter
-      if (meetMSB && curPtr > prevPtr) 
+      if (meetMSB && curPtr > prevPtr)
       //this segment contains more than single symbol, and it has upper ASCII, we need to keep it
       {
-        while (prevPtr < curPtr) *newptr++ = *prevPtr++;  
+        while (prevPtr < curPtr) *newptr++ = *prevPtr++;
         prevPtr++;
         *newptr++ = ' ';
         meetMSB = false;
       }
       else //ignore current segment. (either because it is just a symbol or just an English word)
         prevPtr = curPtr+1;
     }
   }
-  if (meetMSB && curPtr > prevPtr) 
-    while (prevPtr < curPtr) *newptr++ = *prevPtr++;  
+  if (meetMSB && curPtr > prevPtr)
+    while (prevPtr < curPtr) *newptr++ = *prevPtr++;
 
   newLen = newptr - *newBuf;
 
   return true;
 }
 
 //This filter applies to all scripts which contain both English characters and upper ASCII characters.
 bool nsCharSetProber::FilterWithEnglishLetters(const char* aBuf, uint32_t aLen, char** newBuf, uint32_t& newLen)
@@ -62,30 +62,30 @@ bool nsCharSetProber::FilterWithEnglishL
     if (*curPtr == '>')
       isInTag = false;
     else if (*curPtr == '<')
       isInTag = true;
 
     if (!(*curPtr & 0x80) &&
         (*curPtr < 'A' || (*curPtr > 'Z' && *curPtr < 'a') || *curPtr > 'z') )
     {
-      if (curPtr > prevPtr && !isInTag) // Current segment contains more than just a symbol 
+      if (curPtr > prevPtr && !isInTag) // Current segment contains more than just a symbol
                                         // and it is not inside a tag, keep it.
       {
-        while (prevPtr < curPtr) *newptr++ = *prevPtr++;  
+        while (prevPtr < curPtr) *newptr++ = *prevPtr++;
         prevPtr++;
         *newptr++ = ' ';
       }
       else
         prevPtr = curPtr+1;
     }
   }
 
-  // If the current segment contains more than just a symbol 
+  // If the current segment contains more than just a symbol
   // and it is not inside a tag then keep it.
   if (!isInTag)
     while (prevPtr < curPtr)
-      *newptr++ = *prevPtr++;  
+      *newptr++ = *prevPtr++;
 
   newLen = newptr - *newBuf;
 
   return true;
 }
--- a/extensions/universalchardet/src/base/nsCharSetProber.h
+++ b/extensions/universalchardet/src/base/nsCharSetProber.h
@@ -26,17 +26,17 @@ public:
   virtual void      Reset(void)  = 0;
   virtual float     GetConfidence(void) = 0;
 
 #ifdef DEBUG_chardet
   virtual void  DumpStatus() {};
 #endif
 
   // Helper functions used in the Latin1 and Group probers.
-  // both functions Allocate a new buffer for newBuf. This buffer should be 
+  // both functions Allocate a new buffer for newBuf. This buffer should be
   // freed by the caller using free().
   // Both functions return false in case of memory allocation failure.
   static bool FilterWithoutEnglishLetters(const char* aBuf, uint32_t aLen, char** newBuf, uint32_t& newLen);
   static bool FilterWithEnglishLetters(const char* aBuf, uint32_t aLen, char** newBuf, uint32_t& newLen);
 
 };
 
 #endif /* nsCharSetProber_h__ */
--- a/extensions/universalchardet/src/base/nsCodingStateMachine.h
+++ b/extensions/universalchardet/src/base/nsCodingStateMachine.h
@@ -1,29 +1,29 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #ifndef nsCodingStateMachine_h__
 #define nsCodingStateMachine_h__
 
 #include "mozilla/ArrayUtils.h"
- 
+
 #include "nsPkgInt.h"
 
 typedef enum {
    eStart = 0,
    eError = 1,
-   eItsMe = 2 
+   eItsMe = 2
 } nsSMState;
 
 #define GETCLASS(c) GETFROMPCK(((unsigned char)(c)), mModel->classTable)
 
 //state machine model
-typedef struct 
+typedef struct
 {
   nsPkgInt classTable;
   uint32_t classFactor;
   nsPkgInt stateTable;
   const uint32_t* charLenTable;
 #ifdef DEBUG
   const size_t charLenTableLength;
 #endif
@@ -32,18 +32,18 @@ typedef struct
 
 class nsCodingStateMachine {
 public:
   explicit nsCodingStateMachine(const SMModel* sm) : mModel(sm) { mCurrentState = eStart; }
   nsSMState NextState(char c){
     //for each byte we get its class , if it is first byte, we also get byte length
     uint32_t byteCls = GETCLASS(c);
     if (mCurrentState == eStart)
-    { 
-      mCurrentBytePos = 0; 
+    {
+      mCurrentBytePos = 0;
       MOZ_ASSERT(byteCls < mModel->charLenTableLength);
       mCurrentCharLen = mModel->charLenTable[byteCls];
     }
     //from byte's class and stateTable, we get its next state
     mCurrentState=(nsSMState)GETFROMPCK(mCurrentState*(mModel->classFactor)+byteCls,
                                        mModel->stateTable);
     mCurrentBytePos++;
     return mCurrentState;
--- a/extensions/universalchardet/src/base/nsEUCJPProber.cpp
+++ b/extensions/universalchardet/src/base/nsEUCJPProber.cpp
@@ -8,17 +8,17 @@
 // 2, kana character often exist in group
 // 3, certain combination of kana is never used in japanese language
 
 #include "nsEUCJPProber.h"
 #include "nsDebug.h"
 
 void  nsEUCJPProber::Reset(void)
 {
-  mCodingSM->Reset(); 
+  mCodingSM->Reset();
   mState = eDetecting;
   mContextAnalyser.Reset();
   mDistributionAnalyser.Reset();
 }
 
 nsProbingState nsEUCJPProber::HandleData(const char* aBuf, uint32_t aLen)
 {
   NS_ASSERTION(aLen, "HandleData called with empty buffer");
--- a/extensions/universalchardet/src/base/nsEscCharsetProber.h
+++ b/extensions/universalchardet/src/base/nsEscCharsetProber.h
@@ -17,16 +17,16 @@ public:
   nsProbingState HandleData(const char* aBuf, uint32_t aLen);
   const char* GetCharSetName() {return mDetectedCharset;}
   nsProbingState GetState(void) {return mState;}
   void      Reset(void);
   float     GetConfidence(void){return (float)0.99;}
 
 protected:
   void      GetDistribution(uint32_t aCharLen, const char* aStr);
-  
+
   nsAutoPtr<nsCodingStateMachine> mCodingSM;
   nsProbingState mState;
   const char *  mDetectedCharset;
 };
 
 #endif /* nsEscCharSetProber_h__ */
 
--- a/extensions/universalchardet/src/base/nsEscSM.cpp
+++ b/extensions/universalchardet/src/base/nsEscSM.cpp
@@ -1,60 +1,60 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #include "nsCodingStateMachine.h"
 
 static const uint32_t ISO2022JP_cls [ 256 / 8 ] = {
-PCK4BITS(2,0,0,0,0,0,0,0),  // 00 - 07 
-PCK4BITS(0,0,0,0,0,0,2,2),  // 08 - 0f 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 10 - 17 
-PCK4BITS(0,0,0,1,0,0,0,0),  // 18 - 1f 
-PCK4BITS(0,0,0,0,7,0,0,0),  // 20 - 27 
-PCK4BITS(3,0,0,0,0,0,0,0),  // 28 - 2f 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 30 - 37 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 38 - 3f 
-PCK4BITS(6,0,4,0,8,0,0,0),  // 40 - 47 
-PCK4BITS(0,9,5,0,0,0,0,0),  // 48 - 4f 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 50 - 57 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 58 - 5f 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 60 - 67 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 68 - 6f 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 70 - 77 
-PCK4BITS(0,0,0,0,0,0,0,0),  // 78 - 7f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 80 - 87 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 88 - 8f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 90 - 97 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 98 - 9f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // a0 - a7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df 
-PCK4BITS(2,2,2,2,2,2,2,2),  // e0 - e7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // e8 - ef 
-PCK4BITS(2,2,2,2,2,2,2,2),  // f0 - f7 
-PCK4BITS(2,2,2,2,2,2,2,2)   // f8 - ff 
+PCK4BITS(2,0,0,0,0,0,0,0),  // 00 - 07
+PCK4BITS(0,0,0,0,0,0,2,2),  // 08 - 0f
+PCK4BITS(0,0,0,0,0,0,0,0),  // 10 - 17
+PCK4BITS(0,0,0,1,0,0,0,0),  // 18 - 1f
+PCK4BITS(0,0,0,0,7,0,0,0),  // 20 - 27
+PCK4BITS(3,0,0,0,0,0,0,0),  // 28 - 2f
+PCK4BITS(0,0,0,0,0,0,0,0),  // 30 - 37
+PCK4BITS(0,0,0,0,0,0,0,0),  // 38 - 3f
+PCK4BITS(6,0,4,0,8,0,0,0),  // 40 - 47
+PCK4BITS(0,9,5,0,0,0,0,0),  // 48 - 4f
+PCK4BITS(0,0,0,0,0,0,0,0),  // 50 - 57
+PCK4BITS(0,0,0,0,0,0,0,0),  // 58 - 5f
+PCK4BITS(0,0,0,0,0,0,0,0),  // 60 - 67
+PCK4BITS(0,0,0,0,0,0,0,0),  // 68 - 6f
+PCK4BITS(0,0,0,0,0,0,0,0),  // 70 - 77
+PCK4BITS(0,0,0,0,0,0,0,0),  // 78 - 7f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 80 - 87
+PCK4BITS(2,2,2,2,2,2,2,2),  // 88 - 8f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 90 - 97
+PCK4BITS(2,2,2,2,2,2,2,2),  // 98 - 9f
+PCK4BITS(2,2,2,2,2,2,2,2),  // a0 - a7
+PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af
+PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7
+PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf
+PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7
+PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf
+PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7
+PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df
+PCK4BITS(2,2,2,2,2,2,2,2),  // e0 - e7
+PCK4BITS(2,2,2,2,2,2,2,2),  // e8 - ef
+PCK4BITS(2,2,2,2,2,2,2,2),  // f0 - f7
+PCK4BITS(2,2,2,2,2,2,2,2)   // f8 - ff
 };
 
 
 static const uint32_t ISO2022JP_st [ 9] = {
-PCK4BITS(eStart,     3,eError,eStart,eStart,eStart,eStart,eStart),//00-07 
-PCK4BITS(eStart,eStart,eError,eError,eError,eError,eError,eError),//08-0f 
-PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//10-17 
-PCK4BITS(eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,eError),//18-1f 
-PCK4BITS(eError,     5,eError,eError,eError,     4,eError,eError),//20-27 
-PCK4BITS(eError,eError,eError,     6,eItsMe,eError,eItsMe,eError),//28-2f 
-PCK4BITS(eError,eError,eError,eError,eError,eError,eItsMe,eItsMe),//30-37 
-PCK4BITS(eError,eError,eError,eItsMe,eError,eError,eError,eError),//38-3f 
-PCK4BITS(eError,eError,eError,eError,eItsMe,eError,eStart,eStart) //40-47 
+PCK4BITS(eStart,     3,eError,eStart,eStart,eStart,eStart,eStart),//00-07
+PCK4BITS(eStart,eStart,eError,eError,eError,eError,eError,eError),//08-0f
+PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//10-17
+PCK4BITS(eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eItsMe,eError,eError),//18-1f
+PCK4BITS(eError,     5,eError,eError,eError,     4,eError,eError),//20-27
+PCK4BITS(eError,eError,eError,     6,eItsMe,eError,eItsMe,eError),//28-2f
+PCK4BITS(eError,eError,eError,eError,eError,eError,eItsMe,eItsMe),//30-37
+PCK4BITS(eError,eError,eError,eItsMe,eError,eError,eError,eError),//38-3f
+PCK4BITS(eError,eError,eError,eError,eItsMe,eError,eStart,eStart) //40-47
 };
 
 static const uint32_t ISO2022JPCharLenTable[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
 const SMModel ISO2022JPSMModel = {
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, ISO2022JP_cls },
   10,
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, ISO2022JP_st },
--- a/extensions/universalchardet/src/base/nsLatin1Prober.cpp
+++ b/extensions/universalchardet/src/base/nsLatin1Prober.cpp
@@ -11,17 +11,17 @@
 #define ASC    2        // ascii capital letter
 #define ASS    3        // ascii small letter
 #define ACV    4        // accent capital vowel
 #define ACO    5        // accent capital other
 #define ASV    6        // accent small vowel
 #define ASO    7        // accent small other
 #define CLASS_NUM   8    // total classes
 
-static const unsigned char Latin1_CharToClass[] = 
+static const unsigned char Latin1_CharToClass[] =
 {
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 00 - 07
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 08 - 0F
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 10 - 17
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 18 - 1F
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 20 - 27
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 28 - 2F
   OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH,   // 30 - 37
@@ -48,31 +48,31 @@ static const unsigned char Latin1_CharTo
   ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO,   // D8 - DF
   ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO,   // E0 - E7
   ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV,   // E8 - EF
   ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH,   // F0 - F7
   ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO,   // F8 - FF
 };
 
 
-/* 0 : illegal 
-   1 : very unlikely 
-   2 : normal 
+/* 0 : illegal
+   1 : very unlikely
+   2 : normal
    3 : very likely
 */
-static const unsigned char Latin1ClassModel[] = 
+static const unsigned char Latin1ClassModel[] =
 {
 /*      UDF OTH ASC ASS ACV ACO ASV ASO  */
 /*UDF*/  0,  0,  0,  0,  0,  0,  0,  0,
 /*OTH*/  0,  3,  3,  3,  3,  3,  3,  3,
-/*ASC*/  0,  3,  3,  3,  3,  3,  3,  3, 
+/*ASC*/  0,  3,  3,  3,  3,  3,  3,  3,
 /*ASS*/  0,  3,  3,  3,  1,  1,  3,  3,
 /*ACV*/  0,  3,  3,  3,  1,  2,  1,  2,
-/*ACO*/  0,  3,  3,  3,  3,  3,  3,  3, 
-/*ASV*/  0,  3,  1,  3,  1,  1,  1,  3, 
+/*ACO*/  0,  3,  3,  3,  3,  3,  3,  3,
+/*ASV*/  0,  3,  1,  3,  1,  1,  1,  3,
 /*ASO*/  0,  3,  1,  3,  1,  1,  3,  3,
 };
 
 void  nsLatin1Prober::Reset(void)
 {
   mState = eDetecting;
   mLastCharClass = OTH;
   for (int i = 0; i < FREQ_CAT_NUM; i++)
@@ -84,17 +84,17 @@ nsProbingState nsLatin1Prober::HandleDat
 {
   char *newBuf1 = 0;
   uint32_t newLen1 = 0;
 
   if (!FilterWithEnglishLetters(aBuf, aLen, &newBuf1, newLen1)) {
     newBuf1 = (char*)aBuf;
     newLen1 = aLen;
   }
-  
+
   unsigned char charClass;
   unsigned char freq;
   for (uint32_t i = 0; i < newLen1; i++)
   {
     charClass = Latin1_CharToClass[(unsigned char)newBuf1[i]];
     freq = Latin1ClassModel[mLastCharClass*CLASS_NUM + charClass];
     if (freq == 0) {
       mState = eNotMe;
@@ -109,34 +109,34 @@ nsProbingState nsLatin1Prober::HandleDat
 
   return mState;
 }
 
 float nsLatin1Prober::GetConfidence(void)
 {
   if (mState == eNotMe)
     return 0.01f;
-  
+
   float confidence;
   uint32_t total = 0;
   for (int32_t i = 0; i < FREQ_CAT_NUM; i++)
     total += mFreqCounter[i];
 
   if(!total)
     confidence = 0.0f;
   else
   {
     confidence = mFreqCounter[3]*1.0f / total;
     confidence -= mFreqCounter[1]*20.0f/total;
   }
 
   if (confidence < 0.0f)
     confidence = 0.0f;
-  
-  // lower the confidence of latin1 so that other more accurate detector 
+
+  // lower the confidence of latin1 so that other more accurate detector
   // can take priority.
   confidence *= 0.50f;
 
   return confidence;
 }
 
 #ifdef DEBUG_chardet
 void  nsLatin1Prober::DumpStatus()
--- a/extensions/universalchardet/src/base/nsLatin1Prober.h
+++ b/extensions/universalchardet/src/base/nsLatin1Prober.h
@@ -20,17 +20,17 @@ public:
   void      Reset(void);
   float     GetConfidence(void);
 
 #ifdef DEBUG_chardet
   virtual void  DumpStatus();
 #endif
 
 protected:
-  
+
   nsProbingState mState;
   char mLastCharClass;
   uint32_t mFreqCounter[FREQ_CAT_NUM];
 };
 
 
 #endif /* nsLatin1Prober_h__ */
 
--- a/extensions/universalchardet/src/base/nsMBCSGroupProber.cpp
+++ b/extensions/universalchardet/src/base/nsMBCSGroupProber.cpp
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #include <stdio.h>
 
 #include "nsMBCSGroupProber.h"
 #include "nsUniversalDetector.h"
 
 #if defined(DEBUG_chardet) || defined(DEBUG_jgmyers)
-const char *ProberName[] = 
+const char *ProberName[] =
 {
   "UTF8",
   "SJIS",
   "EUCJP",
 };
 
 #endif
 
@@ -144,17 +144,17 @@ float nsMBCSGroupProber::GetConfidence(v
   return bestConf;
 }
 
 #ifdef DEBUG_chardet
 void nsMBCSGroupProber::DumpStatus()
 {
   uint32_t i;
   float cf;
-  
+
   GetConfidence();
   for (i = 0; i < NUM_OF_PROBERS; i++)
   {
     if (!mIsActive[i])
       printf("  MBCS inactive: [%s] (confidence is too low).\r\n", ProberName[i]);
     else
     {
       cf = mProbers[i]->GetConfidence();
--- a/extensions/universalchardet/src/base/nsMBCSSM.cpp
+++ b/extensions/universalchardet/src/base/nsMBCSSM.cpp
@@ -1,120 +1,120 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #include "nsCodingStateMachine.h"
 
 /*
 Modification from frank tang's original work:
-. 0x00 is allowed as a legal character. Since some web pages contains this char in 
+. 0x00 is allowed as a legal character. Since some web pages contains this char in
   text stream.
 */
 
 static const uint32_t EUCJP_cls [ 256 / 8 ] = {
-//PCK4BITS(5,4,4,4,4,4,4,4),  // 00 - 07 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 00 - 07 
-PCK4BITS(4,4,4,4,4,4,5,5),  // 08 - 0f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 10 - 17 
-PCK4BITS(4,4,4,5,4,4,4,4),  // 18 - 1f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 20 - 27 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 28 - 2f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 30 - 37 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 38 - 3f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 40 - 47 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 48 - 4f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 50 - 57 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 58 - 5f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 60 - 67 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 68 - 6f 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 70 - 77 
-PCK4BITS(4,4,4,4,4,4,4,4),  // 78 - 7f 
-PCK4BITS(5,5,5,5,5,5,5,5),  // 80 - 87 
-PCK4BITS(5,5,5,5,5,5,1,3),  // 88 - 8f 
-PCK4BITS(5,5,5,5,5,5,5,5),  // 90 - 97 
-PCK4BITS(5,5,5,5,5,5,5,5),  // 98 - 9f 
-PCK4BITS(5,2,2,2,2,2,2,2),  // a0 - a7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df 
-PCK4BITS(0,0,0,0,0,0,0,0),  // e0 - e7 
-PCK4BITS(0,0,0,0,0,0,0,0),  // e8 - ef 
-PCK4BITS(0,0,0,0,0,0,0,0),  // f0 - f7 
-PCK4BITS(0,0,0,0,0,0,0,5)   // f8 - ff 
+//PCK4BITS(5,4,4,4,4,4,4,4),  // 00 - 07
+PCK4BITS(4,4,4,4,4,4,4,4),  // 00 - 07
+PCK4BITS(4,4,4,4,4,4,5,5),  // 08 - 0f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 10 - 17
+PCK4BITS(4,4,4,5,4,4,4,4),  // 18 - 1f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 20 - 27
+PCK4BITS(4,4,4,4,4,4,4,4),  // 28 - 2f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 30 - 37
+PCK4BITS(4,4,4,4,4,4,4,4),  // 38 - 3f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 40 - 47
+PCK4BITS(4,4,4,4,4,4,4,4),  // 48 - 4f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 50 - 57
+PCK4BITS(4,4,4,4,4,4,4,4),  // 58 - 5f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 60 - 67
+PCK4BITS(4,4,4,4,4,4,4,4),  // 68 - 6f
+PCK4BITS(4,4,4,4,4,4,4,4),  // 70 - 77
+PCK4BITS(4,4,4,4,4,4,4,4),  // 78 - 7f
+PCK4BITS(5,5,5,5,5,5,5,5),  // 80 - 87
+PCK4BITS(5,5,5,5,5,5,1,3),  // 88 - 8f
+PCK4BITS(5,5,5,5,5,5,5,5),  // 90 - 97
+PCK4BITS(5,5,5,5,5,5,5,5),  // 98 - 9f
+PCK4BITS(5,2,2,2,2,2,2,2),  // a0 - a7
+PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af
+PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7
+PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf
+PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7
+PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf
+PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7
+PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df
+PCK4BITS(0,0,0,0,0,0,0,0),  // e0 - e7
+PCK4BITS(0,0,0,0,0,0,0,0),  // e8 - ef
+PCK4BITS(0,0,0,0,0,0,0,0),  // f0 - f7
+PCK4BITS(0,0,0,0,0,0,0,5)   // f8 - ff
 };
 
 
 static const uint32_t EUCJP_st [ 5] = {
-PCK4BITS(     3,     4,     3,     5,eStart,eError,eError,eError),//00-07 
-PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//08-0f 
-PCK4BITS(eItsMe,eItsMe,eStart,eError,eStart,eError,eError,eError),//10-17 
-PCK4BITS(eError,eError,eStart,eError,eError,eError,     3,eError),//18-1f 
-PCK4BITS(     3,eError,eError,eError,eStart,eStart,eStart,eStart) //20-27 
+PCK4BITS(     3,     4,     3,     5,eStart,eError,eError,eError),//00-07
+PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//08-0f
+PCK4BITS(eItsMe,eItsMe,eStart,eError,eStart,eError,eError,eError),//10-17
+PCK4BITS(eError,eError,eStart,eError,eError,eError,     3,eError),//18-1f
+PCK4BITS(     3,eError,eError,eError,eStart,eStart,eStart,eStart) //20-27
 };
 
 static const uint32_t EUCJPCharLenTable[] = {2, 2, 2, 3, 1, 0};
 
 const SMModel EUCJPSMModel = {
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, EUCJP_cls },
    6,
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, EUCJP_st },
   CHAR_LEN_TABLE(EUCJPCharLenTable),
   "EUC-JP",
 };
 
 // sjis
 
 static const uint32_t SJIS_cls [ 256 / 8 ] = {
-//PCK4BITS(0,1,1,1,1,1,1,1),  // 00 - 07 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 00 - 07 
-PCK4BITS(1,1,1,1,1,1,0,0),  // 08 - 0f 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 10 - 17 
-PCK4BITS(1,1,1,0,1,1,1,1),  // 18 - 1f 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 20 - 27 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 28 - 2f 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 30 - 37 
-PCK4BITS(1,1,1,1,1,1,1,1),  // 38 - 3f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 40 - 47 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 48 - 4f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 50 - 57 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 58 - 5f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 60 - 67 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 68 - 6f 
-PCK4BITS(2,2,2,2,2,2,2,2),  // 70 - 77 
-PCK4BITS(2,2,2,2,2,2,2,1),  // 78 - 7f 
-PCK4BITS(3,3,3,3,3,3,3,3),  // 80 - 87 
-PCK4BITS(3,3,3,3,3,3,3,3),  // 88 - 8f 
-PCK4BITS(3,3,3,3,3,3,3,3),  // 90 - 97 
-PCK4BITS(3,3,3,3,3,3,3,3),  // 98 - 9f 
-//0xa0 is illegal in sjis encoding, but some pages does 
+//PCK4BITS(0,1,1,1,1,1,1,1),  // 00 - 07
+PCK4BITS(1,1,1,1,1,1,1,1),  // 00 - 07
+PCK4BITS(1,1,1,1,1,1,0,0),  // 08 - 0f
+PCK4BITS(1,1,1,1,1,1,1,1),  // 10 - 17
+PCK4BITS(1,1,1,0,1,1,1,1),  // 18 - 1f
+PCK4BITS(1,1,1,1,1,1,1,1),  // 20 - 27
+PCK4BITS(1,1,1,1,1,1,1,1),  // 28 - 2f
+PCK4BITS(1,1,1,1,1,1,1,1),  // 30 - 37
+PCK4BITS(1,1,1,1,1,1,1,1),  // 38 - 3f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 40 - 47
+PCK4BITS(2,2,2,2,2,2,2,2),  // 48 - 4f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 50 - 57
+PCK4BITS(2,2,2,2,2,2,2,2),  // 58 - 5f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 60 - 67
+PCK4BITS(2,2,2,2,2,2,2,2),  // 68 - 6f
+PCK4BITS(2,2,2,2,2,2,2,2),  // 70 - 77
+PCK4BITS(2,2,2,2,2,2,2,1),  // 78 - 7f
+PCK4BITS(3,3,3,3,3,3,3,3),  // 80 - 87
+PCK4BITS(3,3,3,3,3,3,3,3),  // 88 - 8f
+PCK4BITS(3,3,3,3,3,3,3,3),  // 90 - 97
+PCK4BITS(3,3,3,3,3,3,3,3),  // 98 - 9f
+//0xa0 is illegal in sjis encoding, but some pages does
 //contain such byte. We need to be more error forgiven.
-PCK4BITS(2,2,2,2,2,2,2,2),  // a0 - a7     
-PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7 
-PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df 
-PCK4BITS(3,3,3,3,3,3,3,3),  // e0 - e7 
-PCK4BITS(3,3,3,3,3,4,4,4),  // e8 - ef 
-PCK4BITS(4,4,4,4,4,4,4,4),  // f0 - f7 
-PCK4BITS(4,4,4,4,4,0,0,0)   // f8 - ff 
+PCK4BITS(2,2,2,2,2,2,2,2),  // a0 - a7
+PCK4BITS(2,2,2,2,2,2,2,2),  // a8 - af
+PCK4BITS(2,2,2,2,2,2,2,2),  // b0 - b7
+PCK4BITS(2,2,2,2,2,2,2,2),  // b8 - bf
+PCK4BITS(2,2,2,2,2,2,2,2),  // c0 - c7
+PCK4BITS(2,2,2,2,2,2,2,2),  // c8 - cf
+PCK4BITS(2,2,2,2,2,2,2,2),  // d0 - d7
+PCK4BITS(2,2,2,2,2,2,2,2),  // d8 - df
+PCK4BITS(3,3,3,3,3,3,3,3),  // e0 - e7
+PCK4BITS(3,3,3,3,3,4,4,4),  // e8 - ef
+PCK4BITS(4,4,4,4,4,4,4,4),  // f0 - f7
+PCK4BITS(4,4,4,4,4,0,0,0)   // f8 - ff
 };
 
 
 static const uint32_t SJIS_st [ 3] = {
-PCK4BITS(eError,eStart,eStart,     3,eError,eError,eError,eError),//00-07 
-PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//08-0f 
-PCK4BITS(eItsMe,eItsMe,eError,eError,eStart,eStart,eStart,eStart) //10-17 
+PCK4BITS(eError,eStart,eStart,     3,eError,eError,eError,eError),//00-07
+PCK4BITS(eError,eError,eError,eError,eItsMe,eItsMe,eItsMe,eItsMe),//08-0f
+PCK4BITS(eItsMe,eItsMe,eError,eError,eStart,eStart,eStart,eStart) //10-17
 };
 
 static const uint32_t SJISCharLenTable[] = {0, 1, 1, 2, 0, 0};
 
 const SMModel SJISSMModel = {
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, SJIS_cls },
    6,
   {eIdxSft4bits, eSftMsk4bits, eBitSft4bits, eUnitMsk4bits, SJIS_st },
--- a/extensions/universalchardet/src/base/nsPkgInt.h
+++ b/extensions/universalchardet/src/base/nsPkgInt.h
@@ -6,35 +6,35 @@
 #ifndef nsPkgInt_h__
 #define nsPkgInt_h__
 #include "nscore.h"
 
 typedef enum {
   eIdxSft4bits  = 3,
   eIdxSft8bits  = 2,
   eIdxSft16bits = 1
-} nsIdxSft; 
+} nsIdxSft;
 
 typedef enum {
   eSftMsk4bits  = 7,
   eSftMsk8bits  = 3,
   eSftMsk16bits = 1
-} nsSftMsk; 
+} nsSftMsk;
 
 typedef enum {
   eBitSft4bits  = 2,
   eBitSft8bits  = 3,
   eBitSft16bits = 4
-} nsBitSft; 
+} nsBitSft;
 
 typedef enum {
   eUnitMsk4bits  = 0x0000000FL,
   eUnitMsk8bits  = 0x000000FFL,
   eUnitMsk16bits = 0x0000FFFFL
-} nsUnitMsk; 
+} nsUnitMsk;
 
 typedef struct nsPkgInt {
   nsIdxSft  idxsft;
   nsSftMsk  sftmsk;
   nsBitSft  bitsft;
   nsUnitMsk unitmsk;
   const uint32_t* const data;
 } nsPkgInt;
--- a/extensions/universalchardet/src/base/nsSJISProber.cpp
+++ b/extensions/universalchardet/src/base/nsSJISProber.cpp
@@ -8,17 +8,17 @@
 // 2, kana character often exist in group
 // 3, certain combination of kana is never used in japanese language
 
 #include "nsSJISProber.h"
 #include "nsDebug.h"
 
 void  nsSJISProber::Reset(void)
 {
-  mCodingSM->Reset(); 
+  mCodingSM->Reset();
   mState = eDetecting;
   mContextAnalyser.Reset();
   mDistributionAnalyser.Reset();
 }
 
 nsProbingState nsSJISProber::HandleData(const char* aBuf, uint32_t aLen)
 {
   NS_ASSERTION(aLen, "HandleData called with empty buffer");
--- a/extensions/universalchardet/src/base/nsUTF8Prober.cpp
+++ b/extensions/universalchardet/src/base/nsUTF8Prober.cpp
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsUTF8Prober.h"
 
 void  nsUTF8Prober::Reset(void)
 {
-  mCodingSM->Reset(); 
+  mCodingSM->Reset();
   mNumOfMBChar = 0;
   mState = eDetecting;
 }
 
 nsProbingState nsUTF8Prober::HandleData(const char* aBuf, uint32_t aLen)
 {
   nsSMState codingState;
 
--- a/extensions/universalchardet/src/base/nsUTF8Prober.h
+++ b/extensions/universalchardet/src/base/nsUTF8Prober.h
@@ -6,17 +6,17 @@
 #ifndef nsUTF8Prober_h__
 #define nsUTF8Prober_h__
 
 #include "nsCharSetProber.h"
 #include "nsCodingStateMachine.h"
 
 class nsUTF8Prober: public nsCharSetProber {
 public:
-  nsUTF8Prober(){mNumOfMBChar = 0; 
+  nsUTF8Prober(){mNumOfMBChar = 0;
                 mCodingSM = new nsCodingStateMachine(&UTF8SMModel);
                 Reset(); }
   virtual ~nsUTF8Prober(){delete mCodingSM;}
   nsProbingState HandleData(const char* aBuf, uint32_t aLen);
   const char* GetCharSetName() {return "UTF-8";}
   nsProbingState GetState(void) {return mState;}
   void      Reset(void);
   float     GetConfidence(void);
--- a/extensions/universalchardet/src/base/nsUniversalDetector.cpp
+++ b/extensions/universalchardet/src/base/nsUniversalDetector.cpp
@@ -24,25 +24,25 @@ nsUniversalDetector::nsUniversalDetector
   mInputState = ePureAscii;
   mLastChar = '\0';
 
   uint32_t i;
   for (i = 0; i < NUM_OF_CHARSET_PROBERS; i++)
     mCharSetProbers[i] = nullptr;
 }
 
-nsUniversalDetector::~nsUniversalDetector() 
+nsUniversalDetector::~nsUniversalDetector()
 {
   for (int32_t i = 0; i < NUM_OF_CHARSET_PROBERS; i++)
     delete mCharSetProbers[i];
 
   delete mEscCharSetProber;
 }
 
-void 
+void
 nsUniversalDetector::Reset()
 {
   mDone = false;
   mBestGuess = -1;   //illegal value as signal
   mInTag = false;
 
   mStart = true;
   mDetectedCharset = nullptr;
@@ -60,17 +60,17 @@ nsUniversalDetector::Reset()
 }
 
 //---------------------------------------------------------------------
 #define SHORTCUT_THRESHOLD      (float)0.95
 #define MINIMUM_THRESHOLD      (float)0.20
 
 nsresult nsUniversalDetector::HandleData(const char* aBuf, uint32_t aLen)
 {
-  if(mDone) 
+  if(mDone)
     return NS_OK;
 
   if (aLen > 0)
     mGotData = true;
 
   //If the data starts with BOM, we know it is UTF
   if (mStart)
   {
@@ -99,22 +99,22 @@ nsresult nsUniversalDetector::HandleData
     }
 
     if (mDetectedCharset)
     {
       mDone = true;
       return NS_OK;
     }
   }
-  
+
   uint32_t i;
   for (i = 0; i < aLen; i++)
   {
     //other than 0xa0, if every othe character is ascii, the page is ascii
-    if (aBuf[i] & '\x80' && aBuf[i] != '\xA0')  //Since many Ascii only page contains NBSP 
+    if (aBuf[i] & '\x80' && aBuf[i] != '\xA0')  //Since many Ascii only page contains NBSP
     {
       //we got a non-ascii byte (high-byte)
       if (mInputState != eHighbyte)
       {
         //adjust state
         mInputState = eHighbyte;
 
         //kill mEscCharSetProber if it is active
@@ -127,17 +127,17 @@ nsresult nsUniversalDetector::HandleData
         if (nullptr == mCharSetProbers[0])
         {
           mCharSetProbers[0] = new nsMBCSGroupProber();
           if (nullptr == mCharSetProbers[0])
             return NS_ERROR_OUT_OF_MEMORY;
         }
         if (nullptr == mCharSetProbers[2])
         {
-          mCharSetProbers[2] = new nsLatin1Prober; 
+          mCharSetProbers[2] = new nsLatin1Prober;
           if (nullptr == mCharSetProbers[2])
             return NS_ERROR_OUT_OF_MEMORY;
         }
       }
     }
     else
     {
       //ok, just pure ascii so far
@@ -167,50 +167,50 @@ nsresult nsUniversalDetector::HandleData
     }
     break;
   case eHighbyte:
     for (i = 0; i < NUM_OF_CHARSET_PROBERS; i++)
     {
       if (mCharSetProbers[i])
       {
         st = mCharSetProbers[i]->HandleData(aBuf, aLen);
-        if (st == eFoundIt) 
+        if (st == eFoundIt)
         {
           mDone = true;
           mDetectedCharset = mCharSetProbers[i]->GetCharSetName();
           return NS_OK;
         }
-      } 
+      }
     }
     break;
 
   default:  //pure ascii
     ;//do nothing here
   }
   return NS_OK;
 }
 
 
 //---------------------------------------------------------------------
 void nsUniversalDetector::DataEnd()
 {
   if (!mGotData)
   {
-    // we haven't got any data yet, return immediately 
+    // we haven't got any data yet, return immediately
     // caller program sometimes call DataEnd before anything has been sent to detector
     return;
   }
 
   if (mDetectedCharset)
   {
     mDone = true;
     Report(mDetectedCharset);
     return;
   }
-  
+
   switch (mInputState)
   {
   case eHighbyte:
     {
       float proberConfidence;
       float maxProberConfidence = (float)0.0;
       int32_t maxProber = 0;
 
--- a/extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.cpp
+++ b/extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.cpp
@@ -16,17 +16,17 @@
 #include "nsCOMPtr.h"
 
 //---------------------------------------------------------------------
 nsXPCOMDetector:: nsXPCOMDetector()
  : nsUniversalDetector()
 {
 }
 //---------------------------------------------------------------------
-nsXPCOMDetector::~nsXPCOMDetector() 
+nsXPCOMDetector::~nsXPCOMDetector()
 {
 }
 //---------------------------------------------------------------------
 
 NS_IMPL_ISUPPORTS(nsXPCOMDetector, nsICharsetDetector)
 
 //---------------------------------------------------------------------
 NS_IMETHODIMP nsXPCOMDetector::Init(
@@ -92,37 +92,37 @@ void nsXPCOMDetector::Report(const char*
 
 
 //---------------------------------------------------------------------
 nsXPCOMStringDetector:: nsXPCOMStringDetector()
   : nsUniversalDetector()
 {
 }
 //---------------------------------------------------------------------
-nsXPCOMStringDetector::~nsXPCOMStringDetector() 
+nsXPCOMStringDetector::~nsXPCOMStringDetector()
 {
 }
 //---------------------------------------------------------------------
 NS_IMPL_ISUPPORTS(nsXPCOMStringDetector, nsIStringCharsetDetector)
 //---------------------------------------------------------------------
-void nsXPCOMStringDetector::Report(const char *aCharset) 
+void nsXPCOMStringDetector::Report(const char *aCharset)
 {
   mResult = aCharset;
 #ifdef DEBUG_chardet
   printf("New Charset Prober report charset %s . \r\n", aCharset);
 #endif
 }
 //---------------------------------------------------------------------
 NS_IMETHODIMP nsXPCOMStringDetector::DoIt(const char* aBuf,
                      uint32_t aLen, const char** oCharset,
                      nsDetectionConfident &oConf)
 {
   mResult = nullptr;
   this->Reset();
-  nsresult rv = this->HandleData(aBuf, aLen); 
+  nsresult rv = this->HandleData(aBuf, aLen);
   if (NS_FAILED(rv))
     return rv;
   this->DataEnd();
   if (mResult)
   {
     *oCharset=mResult;
     oConf = eBestAnswer;
   }
--- a/extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.h
+++ b/extensions/universalchardet/src/xpcom/nsUdetXPCOMWrapper.h
@@ -17,17 +17,17 @@
 #define NS_JA_PSMDETECTOR_CID \
 { 0x12bb8f1b, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
 
 // {12BB8F1C-2389-11d3-B3BF-00805F8A6670}
 #define NS_JA_STRING_PSMDETECTOR_CID \
 { 0x12bb8f1c, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
 
 //=====================================================================
-class nsXPCOMDetector :  
+class nsXPCOMDetector :
       public nsUniversalDetector,
       public nsICharsetDetector
 {
   NS_DECL_ISUPPORTS
   public:
     nsXPCOMDetector();
     NS_IMETHOD Init(nsICharsetDetectionObserver* aObserver) override;
     NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, bool *oDontFeedMe) override;
@@ -36,42 +36,42 @@ class nsXPCOMDetector :
     virtual ~nsXPCOMDetector();
     virtual void Report(const char* aCharset) override;
   private:
     nsCOMPtr<nsICharsetDetectionObserver> mObserver;
 };
 
 
 //=====================================================================
-class nsXPCOMStringDetector :  
+class nsXPCOMStringDetector :
       public nsUniversalDetector,
       public nsIStringCharsetDetector
 {
   NS_DECL_ISUPPORTS
   public:
     nsXPCOMStringDetector();
-    NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, 
+    NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen,
                     const char** oCharset, nsDetectionConfident &oConf) override;
   protected:
     virtual ~nsXPCOMStringDetector();
     virtual void Report(const char* aCharset) override;
   private:
     nsCOMPtr<nsICharsetDetectionObserver> mObserver;
     const char* mResult;
 };
 
 //=====================================================================
 
 class nsJAPSMDetector : public nsXPCOMDetector
 {
 public:
-  nsJAPSMDetector() 
+  nsJAPSMDetector()
     : nsXPCOMDetector() {}
 };
 
 class nsJAStringPSMDetector : public nsXPCOMStringDetector
 {
 public:
-  nsJAStringPSMDetector() 
+  nsJAStringPSMDetector()
     : nsXPCOMStringDetector() {}
 };
 
 #endif //_nsUdetXPCOMWrapper_h__
--- a/hal/cocoa/smslib.h
+++ b/hal/cocoa/smslib.h
@@ -1,38 +1,38 @@
 /*
  * smslib.h
  *
  * SMSLib Sudden Motion Sensor Access Library
  * Copyright (c) 2010 Suitable Systems
  * All rights reserved.
- * 
+ *
  * Developed by: Daniel Griscom
  *               Suitable Systems
  *               http://www.suitable.com
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
  * "Software"), to deal with the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject to
  * the following conditions:
- * 
+ *
  * - Redistributions of source code must retain the above copyright notice,
  * this list of conditions and the following disclaimers.
- * 
+ *
  * - Redistributions in binary form must reproduce the above copyright
  * notice, this list of conditions and the following disclaimers in the
  * documentation and/or other materials provided with the distribution.
- * 
+ *
  * - Neither the names of Suitable Systems nor the names of its
  * contributors may be used to endorse or promote products derived from
  * this Software without specific prior written permission.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  * SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
  *
@@ -108,17 +108,17 @@ typedef struct sms_calibration {
 // values for various failures (returns value indicating result of
 // most successful trial).
 int smsStartup(id logObject, SEL logSelector);
 
 // This starts up the library in debug mode, ignoring the actual hardware.
 // Returned data is in the form of 1Hz sine waves, with the X, Y and Z
 // axes 120 degrees out of phase; "calibrated" data has range +/- (1.0/5);
 // "uncalibrated" data has range +/- (256/5). X and Y axes centered on 0.0,
-// Z axes centered on 1 (calibrated) or 256 (uncalibrated). 
+// Z axes centered on 1 (calibrated) or 256 (uncalibrated).
 // Don't use smsGetBufferLength or smsGetBufferData. Always returns SMS_SUCCESS.
 int smsDebugStartup(id logObject, SEL logSelector);
 
 // Returns the current calibration values.
 void smsGetCalibration(sms_calibration *calibrationRecord);
 
 // Sets the calibration, but does NOT store it as a preference. If the argument
 // is nil then the current calibration is set from the built-in value table.
--- a/hal/fallback/FallbackTime.cpp
+++ b/hal/fallback/FallbackTime.cpp
@@ -5,17 +5,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "Hal.h"
 
 namespace mozilla {
 namespace hal_impl {
 
-void 
+void
 AdjustSystemClock(int64_t aDeltaMilliseconds)
 {}
 
 void
 SetTimezone(const nsCString& aTimezoneSpec)
 {}
 
 nsCString
--- a/hal/linux/LinuxPower.cpp
+++ b/hal/linux/LinuxPower.cpp
@@ -143,17 +143,17 @@ StartForceQuitWatchdog(hal::ShutdownMode
   // can't call 911, for example.  And if we hang on shutdown, bad
   // things happen.  So, make sure that doesn't happen.
   if (aTimeoutSecs <= 0) {
     return;
   }
 
   // Use a raw pthread here to insulate ourselves from bugs in other
   // Gecko code that we're trying to protect!
-  // 
+  //
   // Note that we let the watchdog in charge of releasing |paramPtr|
   // if the pthread is successfully created.
   watchdogParam_t* paramPtr = new watchdogParam_t(aMode, aTimeoutSecs);
   pthread_t watchdog;
   if (pthread_create(&watchdog, nullptr,
                      ForceQuitWatchdog,
                      reinterpret_cast<void*>(paramPtr))) {
     // Better safe than sorry.
--- a/hal/windows/WindowsSensor.cpp
+++ b/hal/windows/WindowsSensor.cpp
@@ -112,17 +112,17 @@ EnableSensorNotifications(SensorType aSe
 
   if (sAccelerometer) {
     return;
   }
 
   RefPtr<ISensorManager> manager;
   if (FAILED(CoCreateInstance(CLSID_SensorManager, nullptr,
                               CLSCTX_INPROC_SERVER,
-                              IID_ISensorManager, 
+                              IID_ISensorManager,
                               getter_AddRefs(manager)))) {
     return;
   }
 
   // accelerometer event
 
   RefPtr<ISensorCollection> collection;
   if (FAILED(manager->GetSensorsByType(SENSOR_TYPE_ACCELEROMETER_3D,
@@ -137,17 +137,17 @@ EnableSensorNotifications(SensorType aSe
   }
 
   RefPtr<ISensor> sensor;
   collection->GetAt(0, getter_AddRefs(sensor));
   if (!sensor) {
     return;
   }
 
-  // Set report interval to 100ms if possible. 
+  // Set report interval to 100ms if possible.
   // Default value depends on drivers.
   RefPtr<IPortableDeviceValues> values;
   if (SUCCEEDED(CoCreateInstance(CLSID_PortableDeviceValues, nullptr,
                                  CLSCTX_INPROC_SERVER,
                                  IID_IPortableDeviceValues,
                                  getter_AddRefs(values)))) {
     if (SUCCEEDED(values->SetUnsignedIntegerValue(
                     SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL,
--- a/image/RasterImage.h
+++ b/image/RasterImage.h
@@ -359,17 +359,17 @@ private:
   bool SetMetadata(const ImageMetadata& aMetadata, bool aFromMetadataDecode);
 
   /**
    * In catastrophic circumstances like a GPU driver crash, the contents of our
    * frames may become invalid.  If the information we gathered during the
    * metadata decode proves to be wrong due to image corruption, the frames we
    * have may violate this class's invariants. Either way, we need to
    * immediately discard the invalid frames and redecode so that callers don't
-   * perceive that we've entered an invalid state. 
+   * perceive that we've entered an invalid state.
    *
    * RecoverFromInvalidFrames discards all existing frames and redecodes using
    * the provided @aSize and @aFlags.
    */
   void RecoverFromInvalidFrames(const nsIntSize& aSize, uint32_t aFlags);
 
   void OnSurfaceDiscardedInternal(bool aAnimatedFramesDiscarded);
 
--- a/image/VectorImage.cpp
+++ b/image/VectorImage.cpp
@@ -422,17 +422,17 @@ VectorImage::OnImageDataComplete(nsIRequ
   // Call our internal OnStopRequest method, which only talks to our embedded
   // SVG document. This won't have any effect on our ProgressTracker.
   nsresult finalStatus = OnStopRequest(aRequest, aContext, aStatus);
 
   // Give precedence to Necko failure codes.
   if (NS_FAILED(aStatus)) {
     finalStatus = aStatus;
   }
-  
+
   Progress loadProgress = LoadCompleteProgress(aLastPart, mError, finalStatus);
 
   if (mIsFullyLoaded || mError) {
     // Our document is loaded, so we're ready to notify now.
     mProgressTracker->SyncNotifyProgress(loadProgress);
   } else {
     // Record our progress so far; we'll actually send the notifications in
     // OnSVGDocumentLoaded or OnSVGDocumentError.
--- a/image/imgFrame.cpp
+++ b/image/imgFrame.cpp
@@ -393,17 +393,17 @@ imgFrame::InitWithDrawable(gfxDrawable* 
   return NS_OK;
 }
 
 nsresult
 imgFrame::Optimize(DrawTarget* aTarget)
 {
   MOZ_ASSERT(NS_IsMainThread());
   mMonitor.AssertCurrentThreadOwns();
-  
+
   if (mLockCount > 0 || !mOptimizable) {
     // Don't optimize right now.
     return NS_OK;
   }
 
   // Check whether image optimization is disabled -- not thread safe!
   static bool gDisableOptimize = false;
   static bool hasCheckedOptimize = false;
--- a/image/test/gtest/Common.h
+++ b/image/test/gtest/Common.h
@@ -117,17 +117,17 @@ struct AutoInitializeImageLib
   }
 };
 
 /// Loads a file from the current directory. @return an nsIInputStream for it.
 already_AddRefed<nsIInputStream> LoadFile(const char* aRelativePath);
 
 /**
  * @returns true if every pixel of @aSurface is @aColor.
- * 
+ *
  * If @aFuzz is nonzero, a tolerance of @aFuzz is allowed in each color
  * component. This may be necessary for tests that involve JPEG images or
  * downscaling.
  */
 bool IsSolidColor(gfx::SourceSurface* aSurface,
                   BGRAColor aColor,
                   uint8_t aFuzz = 0);
 
--- a/image/test/gtest/TestDecoders.cpp
+++ b/image/test/gtest/TestDecoders.cpp
@@ -164,17 +164,17 @@ CheckDecoderMultiChunk(const ImageTestCa
     rv = sourceBuffer->AppendFromInputStream(inputStream, 1);
     ASSERT_TRUE(NS_SUCCEEDED(rv));
 
     task->Run();
   }
 
   sourceBuffer->Complete(NS_OK);
   task->Run();
-  
+
   CheckDecoderResults(aTestCase, decoder);
 }
 
 static void
 CheckDownscaleDuringDecode(const ImageTestCase& aTestCase)
 {
   // This function expects that |aTestCase| consists of 25 lines of green,
   // followed by 25 lines of red, followed by 25 lines of green, followed by 25
--- a/intl/chardet/nsCyrillicClass.h
+++ b/intl/chardet/nsCyrillicClass.h
@@ -1,60 +1,60 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #ifndef nsCyrillicClass_h__
 #define nsCyrillicClass_h__
-/* PLEASE DO NOT EDIT THIS FILE DIRECTLY. THIS FILE IS GENERATED BY 
+/* PLEASE DO NOT EDIT THIS FILE DIRECTLY. THIS FILE IS GENERATED BY
    GenCyrllicClass found in mozilla/intl/chardet/tools
  */
 static const uint8_t KOI8Map [128] = {
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16, 
- 17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32, 
-  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16, 
- 17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32, 
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16,
+ 17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,
+  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16,
+ 17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,
 };
 static const uint8_t CP1251Map [128] = {
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
 };
 static const uint8_t IBM866Map [128] = {
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
 };
 static const uint8_t ISO88595Map [128] = {
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
 };
 static const uint8_t MacCyrillicMap [128] = {
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  18, 
-  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17, 
- 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,   0, 
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,  18,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  18,
+  2,   3,  24,   8,   5,   6,  23,  27,  10,  11,  12,  13,  14,  15,  16,  17,
+ 19,  20,  21,  22,   7,   9,   4,  31,  28,  30,  32,  26,  25,  29,   1,   0,
 };
 #endif
--- a/intl/chardet/nsCyrillicDetector.cpp
+++ b/intl/chardet/nsCyrillicDetector.cpp
@@ -18,74 +18,74 @@
 NS_IMPL_ISUPPORTS(nsCyrXPCOMDetector, nsICharsetDetector)
 NS_IMPL_ISUPPORTS(nsCyrXPCOMStringDetector, nsIStringCharsetDetector)
 
 void nsCyrillicDetector::HandleData(const char* aBuf, uint32_t aLen)
 {
    uint8_t cls;
    const char* b;
    uint32_t i;
-   if(mDone) 
+   if(mDone)
       return;
    for(i=0, b=aBuf;i<aLen;i++,b++)
    {
      for(unsigned j=0;j<mItems;j++)
      {
         if( 0x80 & *b)
            cls = mCyrillicClass[j][(*b) & 0x7F];
-        else 
+        else
            cls = 0;
         NS_ASSERTION( cls <= 32 , "illegal character class");
         mProb[j] += gCyrillicProb[mLastCls[j]][cls];
         mLastCls[j] = cls;
-     } 
+     }
    }
    // We now only based on the first block we receive
    DataEnd();
 }
 
 //---------------------------------------------------------------------
 #define THRESHOLD_RATIO 1.5f
 void nsCyrillicDetector::DataEnd()
 {
    uint32_t max=0;
    uint8_t  maxIdx=0;
    uint8_t j;
-   if(mDone) 
+   if(mDone)
       return;
    for(j=0;j<mItems;j++) {
       if(mProb[j] > max)
       {
            max = mProb[j];
            maxIdx= j;
       }
    }
 
-   if( 0 == max ) // if we didn't get any 8 bits data 
+   if( 0 == max ) // if we didn't get any 8 bits data
      return;
 
 #ifdef DEBUG
-   for(j=0;j<mItems;j++) 
+   for(j=0;j<mItems;j++)
       printf("Charset %s->\t%d\n", mCharsets[j], mProb[j]);
 #endif
    this->Report(mCharsets[maxIdx]);
    mDone = true;
 }
 
 //---------------------------------------------------------------------
-nsCyrXPCOMDetector:: nsCyrXPCOMDetector(uint8_t aItems, 
-                      const uint8_t ** aCyrillicClass, 
+nsCyrXPCOMDetector:: nsCyrXPCOMDetector(uint8_t aItems,
+                      const uint8_t ** aCyrillicClass,
                       const char **aCharsets)
 	     : nsCyrillicDetector(aItems, aCyrillicClass, aCharsets)
 {
     mObserver = nullptr;
 }
 
 //---------------------------------------------------------------------
-nsCyrXPCOMDetector::~nsCyrXPCOMDetector() 
+nsCyrXPCOMDetector::~nsCyrXPCOMDetector()
 {
 }
 
 //---------------------------------------------------------------------
 NS_IMETHODIMP nsCyrXPCOMDetector::Init(
   nsICharsetDetectionObserver* aObserver)
 {
   NS_ASSERTION(mObserver == nullptr , "Init twice");
@@ -121,40 +121,40 @@ NS_IMETHODIMP nsCyrXPCOMDetector::Done()
 //----------------------------------------------------------
 void nsCyrXPCOMDetector::Report(const char* aCharset)
 {
   NS_ASSERTION(mObserver != nullptr , "have not init yet");
   mObserver->Notify(aCharset, eBestAnswer);
 }
 
 //---------------------------------------------------------------------
-nsCyrXPCOMStringDetector:: nsCyrXPCOMStringDetector(uint8_t aItems, 
-                      const uint8_t ** aCyrillicClass, 
+nsCyrXPCOMStringDetector:: nsCyrXPCOMStringDetector(uint8_t aItems,
+                      const uint8_t ** aCyrillicClass,
                       const char **aCharsets)
 	     : nsCyrillicDetector(aItems, aCyrillicClass, aCharsets)
 {
 }
 
 //---------------------------------------------------------------------
-nsCyrXPCOMStringDetector::~nsCyrXPCOMStringDetector() 
+nsCyrXPCOMStringDetector::~nsCyrXPCOMStringDetector()
 {
 }
 
 //---------------------------------------------------------------------
-void nsCyrXPCOMStringDetector::Report(const char *aCharset) 
+void nsCyrXPCOMStringDetector::Report(const char *aCharset)
 {
    mResult = aCharset;
 }
 
 //---------------------------------------------------------------------
-NS_IMETHODIMP nsCyrXPCOMStringDetector::DoIt(const char* aBuf, uint32_t aLen, 
+NS_IMETHODIMP nsCyrXPCOMStringDetector::DoIt(const char* aBuf, uint32_t aLen,
                      const char** oCharset, nsDetectionConfident &oConf)
 {
    mResult = nullptr;
    mDone = false;
-   this->HandleData(aBuf, aLen); 
+   this->HandleData(aBuf, aLen);
    this->DataEnd();
    *oCharset=mResult;
    oConf = eBestAnswer;
    return NS_OK;
 }
-       
 
+
--- a/intl/chardet/nsCyrillicDetector.h
+++ b/intl/chardet/nsCyrillicDetector.h
@@ -32,38 +32,38 @@ static const uint8_t *gCyrillicCls[5] =
    CP1251Map,
    KOI8Map,
    ISO88595Map,
    MacCyrillicMap,
    IBM866Map
 };
 
 static const char * gRussian[5] = {
-  "windows-1251", 
-  "KOI8-R", 
-  "ISO-8859-5", 
+  "windows-1251",
+  "KOI8-R",
+  "ISO-8859-5",
   "x-mac-cyrillic",
   "IBM866"
 };
 
 static const char * gUkrainian[5] = {
-  "windows-1251", 
-  "KOI8-U", 
-  "ISO-8859-5", 
+  "windows-1251",
+  "KOI8-U",
+  "ISO-8859-5",
   "x-mac-cyrillic",
   "IBM866"
 };
 
 #define NUM_CYR_CHARSET 5
 
-class nsCyrillicDetector 
+class nsCyrillicDetector
 {
   public:
-    nsCyrillicDetector(uint8_t aItems, 
-                      const uint8_t ** aCyrillicClass, 
+    nsCyrillicDetector(uint8_t aItems,
+                      const uint8_t ** aCyrillicClass,
                       const char **aCharsets) {
       mItems = aItems;
       mCyrillicClass = aCyrillicClass;
       mCharsets = aCharsets;
       for(unsigned i=0;i<mItems;i++)
         mProb[i] = mLastCls[i] =0;
       mDone = false;
     }
@@ -77,77 +77,77 @@ class nsCyrillicDetector
   private:
     uint8_t  mItems;
     const uint8_t ** mCyrillicClass;
     const char** mCharsets;
     uint32_t mProb[NUM_CYR_CHARSET];
     uint8_t mLastCls[NUM_CYR_CHARSET];
 };
 
-class nsCyrXPCOMDetector :  
+class nsCyrXPCOMDetector :
       public nsCyrillicDetector,
       public nsICharsetDetector
 {
   public:
     // nsISupports interface
     NS_DECL_ISUPPORTS
-    nsCyrXPCOMDetector(uint8_t aItems, 
-                      const uint8_t ** aCyrillicClass, 
+    nsCyrXPCOMDetector(uint8_t aItems,
+                      const uint8_t ** aCyrillicClass,
                       const char **aCharsets);
     NS_IMETHOD Init(nsICharsetDetectionObserver* aObserver) override;
     NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, bool *oDontFeedMe) override;
     NS_IMETHOD Done() override;
   protected:
     virtual ~nsCyrXPCOMDetector();
     virtual void Report(const char* aCharset) override;
   private:
     nsCOMPtr<nsICharsetDetectionObserver> mObserver;
 };
 
-class nsCyrXPCOMStringDetector :  
+class nsCyrXPCOMStringDetector :
       public nsCyrillicDetector,
       public nsIStringCharsetDetector
 {
   public:
     // nsISupports interface
     NS_DECL_ISUPPORTS
-    nsCyrXPCOMStringDetector(uint8_t aItems, 
-                      const uint8_t ** aCyrillicClass, 
+    nsCyrXPCOMStringDetector(uint8_t aItems,
+                      const uint8_t ** aCyrillicClass,
                       const char **aCharsets);
-    NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen, 
+    NS_IMETHOD DoIt(const char* aBuf, uint32_t aLen,
                      const char** oCharset, nsDetectionConfident &oConf) override;
   protected:
     virtual ~nsCyrXPCOMStringDetector();
     virtual void Report(const char* aCharset) override;
   private:
     nsCOMPtr<nsICharsetDetectionObserver> mObserver;
     const char* mResult;
 };
 
 class nsRUProbDetector : public nsCyrXPCOMDetector
 {
   public:
-    nsRUProbDetector() 
+    nsRUProbDetector()
       : nsCyrXPCOMDetector(5, gCyrillicCls, gRussian) {}
 };
 
 class nsRUStringProbDetector : public nsCyrXPCOMStringDetector
 {
   public:
-    nsRUStringProbDetector() 
+    nsRUStringProbDetector()
       : nsCyrXPCOMStringDetector(5, gCyrillicCls, gRussian) {}
 };
 
 class nsUKProbDetector : public nsCyrXPCOMDetector
 {
   public:
-    nsUKProbDetector() 
+    nsUKProbDetector()
       : nsCyrXPCOMDetector(5, gCyrillicCls, gUkrainian) {}
 };
 
 class nsUKStringProbDetector : public nsCyrXPCOMStringDetector
 {
   public:
-    nsUKStringProbDetector() 
+    nsUKStringProbDetector()
       : nsCyrXPCOMStringDetector(5, gCyrillicCls, gUkrainian) {}
 };
 
 #endif
--- a/intl/chardet/nsCyrillicProb.h
+++ b/intl/chardet/nsCyrillicProb.h
@@ -2,281 +2,281 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsCyrillicProb_h___h__
 #define nsCyrillicProb_h___h__
 /*
     DO NOT EDIT THIS FILE !!!
-    This file is generated by the perl script in 
+    This file is generated by the perl script in
     mozilla/intl/chardet/tools/gencyrillic.pl
 
     To ues that script, you need to grab StatKoi.pm file from
     the "Cyrillic Software Suite" written by John Neystdt.
     http://www.neystadt.org/cyrillic (You can also find it from CPAN)
  */
-const uint16_t gCyrillicProb[33][33] = {{ 
+const uint16_t gCyrillicProb[33][33] = {{
 0,
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-1, 	0, 	62, 	8, 	237, 	0, 	0, 	0, 	
-0, 	0, 	0, 	0, 	2, 	0, 	1, 	0, 	
-0, 	0, 	50, 	9, 	1342, 	0, 	5, 	10, 	
-0, 	0, 	16, 	2, 	0, 	2041, 	505, 	0, 	
+1, 	0, 	62, 	8, 	237, 	0, 	0, 	0,
+0, 	0, 	0, 	0, 	2, 	0, 	1, 	0,
+0, 	0, 	50, 	9, 	1342, 	0, 	5, 	10,
+0, 	0, 	16, 	2, 	0, 	2041, 	505, 	0,
 
-}, 
-{ 
+},
+{
 0,
-1197, 	0, 	891, 	3797, 	594, 	2064, 	112, 	646, 	
-1039, 	166, 	152, 	3162, 	10935, 	3465, 	10268, 	5, 	
-277, 	1744, 	3706, 	5043, 	8884, 	79, 	716, 	4563, 	
-0, 	0, 	3090, 	205, 	9, 	591, 	1515, 	0, 	
+1197, 	0, 	891, 	3797, 	594, 	2064, 	112, 	646,
+1039, 	166, 	152, 	3162, 	10935, 	3465, 	10268, 	5,
+277, 	1744, 	3706, 	5043, 	8884, 	79, 	716, 	4563,
+0, 	0, 	3090, 	205, 	9, 	591, 	1515, 	0,
 
-}, 
-{ 
+},
+{
 0,
-206, 	1117, 	0, 	0, 	0, 	652, 	0, 	0, 	
-92, 	194, 	0, 	4, 	924, 	25, 	204, 	2334, 	
-2, 	836, 	832, 	403, 	0, 	365, 	63, 	1, 	
-0, 	1257, 	5, 	9, 	0, 	358, 	0, 	629, 	
+206, 	1117, 	0, 	0, 	0, 	652, 	0, 	0,
+92, 	194, 	0, 	4, 	924, 	25, 	204, 	2334,
+2, 	836, 	832, 	403, 	0, 	365, 	63, 	1,
+0, 	1257, 	5, 	9, 	0, 	358, 	0, 	629,
 
-}, 
-{ 
+},
+{
 0,
-0, 	935, 	0, 	0, 	0, 	1695, 	0, 	0, 	
-0, 	5193, 	0, 	5, 	1, 	1, 	0, 	461, 	
-0, 	0, 	0, 	0, 	0, 	216, 	0, 	9, 	
-0, 	47, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	935, 	0, 	0, 	0, 	1695, 	0, 	0,
+0, 	5193, 	0, 	5, 	1, 	1, 	0, 	461,
+0, 	0, 	0, 	0, 	0, 	216, 	0, 	9,
+0, 	47, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	4049, 	20, 	22, 	27, 	8713, 	0, 	49, 	
-0, 	1530, 	0, 	660, 	1182, 	138, 	1459, 	5347, 	
-1488, 	344, 	741, 	1738, 	63, 	1460, 	206, 	242, 	
-19, 	743, 	26, 	51, 	0, 	0, 	33, 	90, 	
+0, 	4049, 	20, 	22, 	27, 	8713, 	0, 	49,
+0, 	1530, 	0, 	660, 	1182, 	138, 	1459, 	5347,
+1488, 	344, 	741, 	1738, 	63, 	1460, 	206, 	242,
+19, 	743, 	26, 	51, 	0, 	0, 	33, 	90,
 
-}, 
-{ 
+},
+{
 0,
-141, 	635, 	516, 	183, 	8332, 	911, 	108, 	2694, 	
-255, 	76, 	2958, 	2366, 	8125, 	3209, 	19276, 	285, 	
-346, 	483, 	6823, 	5705, 	6596, 	45, 	1286, 	525, 	
-0, 	0, 	1093, 	414, 	15, 	286, 	767, 	0, 	
+141, 	635, 	516, 	183, 	8332, 	911, 	108, 	2694,
+255, 	76, 	2958, 	2366, 	8125, 	3209, 	19276, 	285,
+346, 	483, 	6823, 	5705, 	6596, 	45, 	1286, 	525,
+0, 	0, 	1093, 	414, 	15, 	286, 	767, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	272, 	0, 	0, 	0, 	376, 	50, 	0, 	
-0, 	803, 	0, 	0, 	15, 	2, 	28, 	591, 	
-0, 	0, 	6, 	2, 	24, 	19, 	0, 	0, 	
-7, 	31, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	272, 	0, 	0, 	0, 	376, 	50, 	0,
+0, 	803, 	0, 	0, 	15, 	2, 	28, 	591,
+0, 	0, 	6, 	2, 	24, 	19, 	0, 	0,
+7, 	31, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	4191, 	0, 	0, 	68, 	162, 	0, 	0, 	
-0, 	1248, 	0, 	8, 	369, 	0, 	12, 	15161, 	
-0, 	0, 	678, 	0, 	2, 	337, 	0, 	0, 	
-0, 	0, 	0, 	19, 	0, 	0, 	11, 	0, 	
+0, 	4191, 	0, 	0, 	68, 	162, 	0, 	0,
+0, 	1248, 	0, 	8, 	369, 	0, 	12, 	15161,
+0, 	0, 	678, 	0, 	2, 	337, 	0, 	0,
+0, 	0, 	0, 	19, 	0, 	0, 	11, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	102, 	0, 	0, 	0, 	5, 	0, 	15, 	
-0, 	27, 	0, 	6, 	2, 	1, 	92, 	2227, 	
-0, 	0, 	101, 	161, 	7, 	15, 	0, 	2, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	102, 	0, 	0, 	0, 	5, 	0, 	15,
+0, 	27, 	0, 	6, 	2, 	1, 	92, 	2227,
+0, 	0, 	101, 	161, 	7, 	15, 	0, 	2,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-1245, 	609, 	755, 	2134, 	1161, 	4628, 	120, 	151, 	
-2180, 	5903, 	3242, 	2804, 	3261, 	4656, 	3708, 	1658, 	
-104, 	7815, 	882, 	3354, 	3398, 	16, 	169, 	1769, 	
-0, 	0, 	5064, 	96, 	0, 	48, 	1628, 	0, 	
+1245, 	609, 	755, 	2134, 	1161, 	4628, 	120, 	151,
+2180, 	5903, 	3242, 	2804, 	3261, 	4656, 	3708, 	1658,
+104, 	7815, 	882, 	3354, 	3398, 	16, 	169, 	1769,
+0, 	0, 	5064, 	96, 	0, 	48, 	1628, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	0, 	0, 	0, 	1, 	3, 	3, 	0, 	
-0, 	0, 	0, 	6, 	0, 	12, 	96, 	67, 	
-1, 	0, 	0, 	2066, 	11, 	0, 	0, 	0, 	
-0, 	0, 	0, 	20, 	0, 	0, 	0, 	0, 	
+0, 	0, 	0, 	0, 	1, 	3, 	3, 	0,
+0, 	0, 	0, 	6, 	0, 	12, 	96, 	67,
+1, 	0, 	0, 	2066, 	11, 	0, 	0, 	0,
+0, 	0, 	0, 	20, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	4402, 	0, 	677, 	0, 	782, 	0, 	2, 	
-0, 	2724, 	0, 	10, 	876, 	0, 	35, 	6609, 	
-0, 	0, 	651, 	1323, 	1558, 	1049, 	416, 	225, 	
-0, 	0, 	2, 	13, 	0, 	0, 	0, 	0, 	
+0, 	4402, 	0, 	677, 	0, 	782, 	0, 	2,
+0, 	2724, 	0, 	10, 	876, 	0, 	35, 	6609,
+0, 	0, 	651, 	1323, 	1558, 	1049, 	416, 	225,
+0, 	0, 	2, 	13, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-741, 	5440, 	0, 	0, 	1, 	6066, 	0, 	89, 	
-0, 	9040, 	0, 	153, 	97, 	4, 	949, 	9899, 	
-0, 	2830, 	0, 	8, 	16, 	2139, 	434, 	0, 	
-7487, 	157, 	0, 	0, 	0, 	0, 	0, 	0, 	
+741, 	5440, 	0, 	0, 	1, 	6066, 	0, 	89,
+0, 	9040, 	0, 	153, 	97, 	4, 	949, 	9899,
+0, 	2830, 	0, 	8, 	16, 	2139, 	434, 	0,
+7487, 	157, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	2073, 	13, 	0, 	0, 	4818, 	0, 	0, 	
-0, 	3684, 	0, 	30, 	89, 	1094, 	204, 	4078, 	
-119, 	61, 	1, 	68, 	0, 	1684, 	0, 	68, 	
-10, 	1424, 	0, 	0, 	0, 	14, 	6, 	0, 	
+0, 	2073, 	13, 	0, 	0, 	4818, 	0, 	0,
+0, 	3684, 	0, 	30, 	89, 	1094, 	204, 	4078,
+119, 	61, 	1, 	68, 	0, 	1684, 	0, 	68,
+10, 	1424, 	0, 	0, 	0, 	14, 	6, 	0,
 
-}, 
-{ 
+},
+{
 0,
-18, 	16528, 	0, 	176, 	474, 	5075, 	174, 	31, 	
-0, 	14151, 	0, 	840, 	0, 	0, 	8956, 	14457, 	
-0, 	911, 	0, 	1150, 	1893, 	711, 	8, 	199, 	
-271, 	9281, 	192, 	0, 	0, 	2, 	84, 	0, 	
+18, 	16528, 	0, 	176, 	474, 	5075, 	174, 	31,
+0, 	14151, 	0, 	840, 	0, 	0, 	8956, 	14457,
+0, 	911, 	0, 	1150, 	1893, 	711, 	8, 	199,
+271, 	9281, 	192, 	0, 	0, 	2, 	84, 	0,
 
-}, 
-{ 
+},
+{
 0,
-23, 	27, 	4868, 	799, 	7820, 	1391, 	145, 	13562, 	
-909, 	1551, 	5834, 	1881, 	4400, 	6329, 	2878, 	1911, 	
-3632, 	2374, 	7308, 	8626, 	6679, 	161, 	2573, 	15172, 	
-0, 	0, 	1322, 	778, 	34, 	129, 	944, 	0, 	
+23, 	27, 	4868, 	799, 	7820, 	1391, 	145, 	13562,
+909, 	1551, 	5834, 	1881, 	4400, 	6329, 	2878, 	1911,
+3632, 	2374, 	7308, 	8626, 	6679, 	161, 	2573, 	15172,
+0, 	0, 	1322, 	778, 	34, 	129, 	944, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	671, 	0, 	12, 	0, 	2500, 	1, 	0, 	
-0, 	409, 	0, 	26, 	3612, 	0, 	38, 	8786, 	
-268, 	87, 	13327, 	13, 	15, 	471, 	0, 	0, 	
-7, 	266, 	0, 	0, 	0, 	0, 	2, 	0, 	
+0, 	671, 	0, 	12, 	0, 	2500, 	1, 	0,
+0, 	409, 	0, 	26, 	3612, 	0, 	38, 	8786,
+268, 	87, 	13327, 	13, 	15, 	471, 	0, 	0,
+7, 	266, 	0, 	0, 	0, 	0, 	2, 	0,
 
-}, 
-{ 
+},
+{
 0,
-847, 	0, 	3, 	184, 	878, 	1070, 	0, 	19, 	
-482, 	0, 	90, 	18, 	26, 	765, 	151, 	0, 	
-0, 	18, 	20, 	81, 	2587, 	0, 	51, 	766, 	
-0, 	0, 	1224, 	0, 	0, 	2209, 	20, 	0, 	
+847, 	0, 	3, 	184, 	878, 	1070, 	0, 	19,
+482, 	0, 	90, 	18, 	26, 	765, 	151, 	0,
+0, 	18, 	20, 	81, 	2587, 	0, 	51, 	766,
+0, 	0, 	1224, 	0, 	0, 	2209, 	20, 	0,
 
-}, 
-{ 
+},
+{
 0,
-2, 	10059, 	62, 	17, 	21, 	11067, 	6, 	2653, 	
-30, 	7582, 	0, 	122, 	14, 	638, 	490, 	6767, 	
-9, 	1045, 	431, 	1139, 	683, 	2482, 	326, 	496, 	
-156, 	938, 	0, 	254, 	0, 	0, 	30, 	0, 	
+2, 	10059, 	62, 	17, 	21, 	11067, 	6, 	2653,
+30, 	7582, 	0, 	122, 	14, 	638, 	490, 	6767,
+9, 	1045, 	431, 	1139, 	683, 	2482, 	326, 	496,
+156, 	938, 	0, 	254, 	0, 	0, 	30, 	0,
 
-}, 
-{ 
+},
+{
 0,
-17, 	1493, 	218, 	3, 	213, 	633, 	26, 	3, 	
-590, 	2176, 	0, 	3716, 	3732, 	938, 	693, 	4388, 	
-1639, 	4197, 	1185, 	2118, 	21815, 	2792, 	0, 	1033, 	
-154, 	239, 	0, 	25, 	0, 	0, 	522, 	3, 	
+17, 	1493, 	218, 	3, 	213, 	633, 	26, 	3,
+590, 	2176, 	0, 	3716, 	3732, 	938, 	693, 	4388,
+1639, 	4197, 	1185, 	2118, 	21815, 	2792, 	0, 	1033,
+154, 	239, 	0, 	25, 	0, 	0, 	522, 	3,
 
-}, 
-{ 
+},
+{
 0,
-0, 	9785, 	0, 	27, 	197, 	8202, 	0, 	12, 	
-24, 	5253, 	0, 	433, 	12, 	53, 	2577, 	9712, 	
-25, 	122, 	3392, 	4966, 	4, 	836, 	0, 	8956, 	
-4693, 	1483, 	5, 	3, 	0, 	0, 	270, 	3, 	
+0, 	9785, 	0, 	27, 	197, 	8202, 	0, 	12,
+24, 	5253, 	0, 	433, 	12, 	53, 	2577, 	9712,
+25, 	122, 	3392, 	4966, 	4, 	836, 	0, 	8956,
+4693, 	1483, 	5, 	3, 	0, 	0, 	270, 	3,
 
-}, 
-{ 
+},
+{
 0,
-1930, 	104, 	260, 	18, 	1452, 	325, 	6, 	1192, 	
-51, 	6, 	0, 	1098, 	301, 	1778, 	398, 	0, 	
-2263, 	7, 	254, 	2808, 	452, 	0, 	743, 	140, 	
-0, 	0, 	45, 	559, 	0, 	1336, 	2289, 	0, 	
+1930, 	104, 	260, 	18, 	1452, 	325, 	6, 	1192,
+51, 	6, 	0, 	1098, 	301, 	1778, 	398, 	0,
+2263, 	7, 	254, 	2808, 	452, 	0, 	743, 	140,
+0, 	0, 	45, 	559, 	0, 	1336, 	2289, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	796, 	390, 	0, 	1303, 	3459, 	1, 	11, 	
-0, 	632, 	0, 	37, 	0, 	0, 	620, 	0, 	
-15, 	0, 	1, 	0, 	0, 	25, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	796, 	390, 	0, 	1303, 	3459, 	1, 	11,
+0, 	632, 	0, 	37, 	0, 	0, 	620, 	0,
+15, 	0, 	1, 	0, 	0, 	25, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	7418, 	0, 	51, 	10, 	5465, 	0, 	1, 	
-51, 	2962, 	0, 	999, 	3853, 	82, 	1048, 	7277, 	
-241, 	370, 	394, 	280, 	286, 	1126, 	0, 	183, 	
-24, 	3182, 	197, 	286, 	0, 	28, 	0, 	4, 	
+0, 	7418, 	0, 	51, 	10, 	5465, 	0, 	1,
+51, 	2962, 	0, 	999, 	3853, 	82, 	1048, 	7277,
+241, 	370, 	394, 	280, 	286, 	1126, 	0, 	183,
+24, 	3182, 	197, 	286, 	0, 	28, 	0, 	4,
 
-}, 
-{ 
+},
+{
 0,
-395, 	0, 	6, 	22, 	0, 	496, 	9, 	113, 	
-0, 	700, 	0, 	171, 	0, 	78, 	3296, 	0, 	
-0, 	1501, 	0, 	1379, 	193, 	0, 	0, 	0, 	
-0, 	0, 	487, 	165, 	0, 	1633, 	30, 	0, 	
+395, 	0, 	6, 	22, 	0, 	496, 	9, 	113,
+0, 	700, 	0, 	171, 	0, 	78, 	3296, 	0,
+0, 	1501, 	0, 	1379, 	193, 	0, 	0, 	0,
+0, 	0, 	487, 	165, 	0, 	1633, 	30, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	0, 	36, 	0, 	272, 	2847, 	0, 	27, 	
-4998, 	1, 	1192, 	33, 	224, 	2657, 	219, 	0, 	
-363, 	29, 	273, 	205, 	503, 	0, 	0, 	400, 	
-0, 	0, 	38, 	255, 	0, 	0, 	305, 	0, 	
+0, 	0, 	36, 	0, 	272, 	2847, 	0, 	27,
+4998, 	1, 	1192, 	33, 	224, 	2657, 	219, 	0,
+363, 	29, 	273, 	205, 	503, 	0, 	0, 	400,
+0, 	0, 	38, 	255, 	0, 	0, 	305, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	7005, 	32, 	32, 	869, 	400, 	0, 	37, 	
-0, 	999, 	0, 	46, 	204, 	739, 	1570, 	1076, 	
-0, 	112, 	89, 	0, 	1, 	430, 	1, 	1191, 	
-3, 	368, 	0, 	0, 	0, 	0, 	2, 	77, 	
+0, 	7005, 	32, 	32, 	869, 	400, 	0, 	37,
+0, 	999, 	0, 	46, 	204, 	739, 	1570, 	1076,
+0, 	112, 	89, 	0, 	1, 	430, 	1, 	1191,
+3, 	368, 	0, 	0, 	0, 	0, 	2, 	77,
 
-}, 
-{ 
+},
+{
 0,
-0, 	200, 	0, 	0, 	0, 	2054, 	0, 	0, 	
-0, 	397, 	0, 	19, 	438, 	0, 	108, 	0, 	
-0, 	0, 	4, 	0, 	112, 	3, 	0, 	0, 	
-4, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	200, 	0, 	0, 	0, 	2054, 	0, 	0,
+0, 	397, 	0, 	19, 	438, 	0, 	108, 	0,
+0, 	0, 	4, 	0, 	112, 	3, 	0, 	0,
+4, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	0, 	0, 	0, 	0, 	0, 	29, 	0, 	
-0, 	0, 	0, 	311, 	16, 	19, 	11, 	0, 	
-2, 	0, 	10, 	3, 	1382, 	0, 	0, 	10, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	0, 	0, 	0, 	0, 	0, 	29, 	0,
+0, 	0, 	0, 	311, 	16, 	19, 	11, 	0,
+2, 	0, 	10, 	3, 	1382, 	0, 	0, 	10,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	297, 	0, 	0, 	0, 	4290, 	0, 	0, 	
-0, 	3968, 	0, 	0, 	0, 	0, 	33, 	0, 	
-0, 	0, 	1, 	0, 	0, 	70, 	0, 	0, 	
-15, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	297, 	0, 	0, 	0, 	4290, 	0, 	0,
+0, 	3968, 	0, 	0, 	0, 	0, 	33, 	0,
+0, 	0, 	1, 	0, 	0, 	70, 	0, 	0,
+15, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	2304, 	0, 	0, 	0, 	4731, 	0, 	0, 	
-0, 	1873, 	0, 	198, 	33, 	0, 	921, 	0, 	
-0, 	0, 	191, 	0, 	114, 	134, 	0, 	2, 	
-12, 	0, 	0, 	7, 	0, 	0, 	0, 	0, 	
+0, 	2304, 	0, 	0, 	0, 	4731, 	0, 	0,
+0, 	1873, 	0, 	198, 	33, 	0, 	921, 	0,
+0, 	0, 	191, 	0, 	114, 	134, 	0, 	2,
+12, 	0, 	0, 	7, 	0, 	0, 	0, 	0,
 
-}, 
-{ 
+},
+{
 0,
-0, 	0, 	0, 	0, 	0, 	599, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
-0, 	207, 	0, 	0, 	0, 	0, 	0, 	0, 	
-0, 	0, 	0, 	0, 	0, 	0, 	0, 	0, 	
+0, 	0, 	0, 	0, 	0, 	599, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
+0, 	207, 	0, 	0, 	0, 	0, 	0, 	0,
+0, 	0, 	0, 	0, 	0, 	0, 	0, 	0,
 
-}, 
+},
 };
 #endif
--- a/intl/chardet/nsDetectionConfident.h
+++ b/intl/chardet/nsDetectionConfident.h
@@ -3,40 +3,40 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #ifndef nsDetetctionConfident_h__
 #define nsDetetctionConfident_h__
 
 /*
   This type is used to indicate how confident the detection module about
   the return result.
- 
-  eNoAnswerYet is used to indicate that the detector have not find out a 
+
+  eNoAnswerYet is used to indicate that the detector have not find out a
                answer yet based on the data it received.
   eBestAnswer  is used to indicate that the answer the detector returned
                is the best one within the knowledge of the detector.
                In other words, the test to all other candidcates fail.
 
                For example, the (Shift_JIS/EUC-JP/ISO-2022-JP) detection
-               module may return this with answer "Shift_JIS "if it receive 
-               bytes > 0x80 (which make ISO-2022-JP test failed) and byte 
+               module may return this with answer "Shift_JIS "if it receive
+               bytes > 0x80 (which make ISO-2022-JP test failed) and byte
                0x82 (which may EUC-JP test failed)
 
-  eSureAnswer  is used to indicate that the detector is 100% sure about the 
-               answer. 
+  eSureAnswer  is used to indicate that the detector is 100% sure about the
+               answer.
                Exmaple 1; the Shift_JIS/ISO-2022-JP/EUC-JP detector return
                this w/ ISO-2022-JP when it hit one of the following ESC seq
                   ESC ( J
                   ESC $ @
                   ESC $ B
                Example 2: the detector which can detect UCS2 return w/ UCS2
                when the first 2 byte are BOM mark.
                Example 3: the Korean detector return ISO-2022-KR when it
                hit ESC $ ) C
-  
+
  */
 typedef enum {
   eNoAnswerYet = 0,
   eBestAnswer,
   eSureAnswer,
   eNoAnswerMatch
 } nsDetectionConfident;
 
--- a/intl/chardet/nsICharsetDetector.h
+++ b/intl/chardet/nsICharsetDetector.h
@@ -11,34 +11,34 @@
 class nsICharsetDetectionObserver;
 
 // {12BB8F14-2389-11d3-B3BF-00805F8A6670}
 #define NS_ICHARSETDETECTOR_IID \
 { 0x12bb8f14, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
 
 #define NS_CHARSET_DETECTOR_CONTRACTID_BASE "@mozilla.org/intl/charsetdetect;1?type="
 #define NS_CHARSET_DETECTOR_CATEGORY "charset-detectors"
- 
+
 class nsICharsetDetector : public nsISupports {
-public:  
+public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICHARSETDETECTOR_IID)
 
-  /* 
+  /*
      Setup the observer so it know how to notify the answer
    */
   NS_IMETHOD Init(nsICharsetDetectionObserver* observer) = 0;
 
   /*
      Feed a block of bytes to the detector.
      It will call the Notify function of the nsICharsetObserver if it find out
-     the answer. 
+     the answer.
      aBytesArray - array of bytes
      aLen        - length of aBytesArray
      oDontFeedMe - return true if the detector do not need the following block
-                          false it need more bytes. 
+                          false it need more bytes.
                    This is used to enhance performance
    */
   NS_IMETHOD DoIt(const char* aBytesArray, uint32_t aLen, bool* oDontFeedMe) = 0;
 
   /*
      It also tell the detector the last chance the make a decision
    */
   NS_IMETHOD Done() = 0;
--- a/intl/chardet/nsIStringCharsetDetector.h
+++ b/intl/chardet/nsIStringCharsetDetector.h
@@ -12,33 +12,33 @@
 #define NS_ISTRINGCHARSETDETECTOR_IID \
 { 0x12bb8f15, 0x2389, 0x11d3, { 0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70 } }
 
 
 #define NS_STRCDETECTOR_CONTRACTID_BASE "@mozilla.org/intl/stringcharsetdetect;1?type="
 
 /*
   This interface is similar to nsICharsetDetector
-  The difference is it is for line base detection instead of block based 
-  detectection. 
+  The difference is it is for line base detection instead of block based
+  detectection.
  */
 
 
 class nsIStringCharsetDetector : public nsISupports {
-public:  
+public:
 
    NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISTRINGCHARSETDETECTOR_IID)
   /*
      Perform the charset detection
-    
+
      aBytesArray- the bytes
      aLen- the length of the bytes
      oCharset- the charset answer
      oConfident - the confidence of the answer
    */
-  NS_IMETHOD DoIt(const char* aBytesArray, uint32_t aLen, 
+  NS_IMETHOD DoIt(const char* aBytesArray, uint32_t aLen,
                     const char** oCharset, nsDetectionConfident &oConfident) = 0;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsIStringCharsetDetector,
                               NS_ISTRINGCHARSETDETECTOR_IID)
 
 #endif /* nsIStringCharsetDetector_h__ */
--- a/intl/chardet/tools/GenCyrillicClass.cpp
+++ b/intl/chardet/tools/GenCyrillicClass.cpp
@@ -118,17 +118,17 @@ int main(int argc, char** argv) {
    {
       printf("cannot locate KOI8-R Encoder\n");
       return(-1);
    }
 
 
    npl();
    header();
-   
+
      genCyrillicClass("KOI8", "KOI8-R");
      genCyrillicClass("CP1251", "windows-1251");
      genCyrillicClass("IBM866", "IBM866");
      genCyrillicClass("ISO88595", "ISO-8859-5");
      genCyrillicClass("MacCyrillic", "x-mac-cyrillic");
    footer();
    NS_IF_RELEASE(gKOI8REncoder);
    return(0);
--- a/intl/hyphenation/glue/nsHyphenator.cpp
+++ b/intl/hyphenation/glue/nsHyphenator.cpp
@@ -145,14 +145,14 @@ nsHyphenator::Hyphenate(const nsAString&
               NS_IS_HIGH_SURROGATE(*(cur-1)))
           {
             cur++;
           }
           hyphPtr++;
         }
       }
     }
-    
+
     inWord = false;
   }
 
   return NS_OK;
 }
--- a/intl/locale/android/nsAndroidCharset.cpp
+++ b/intl/locale/android/nsAndroidCharset.cpp
@@ -11,23 +11,23 @@ NS_IMPL_ISUPPORTS(nsPlatformCharset, nsI
 nsPlatformCharset::nsPlatformCharset()
 {
 }
 
 nsPlatformCharset::~nsPlatformCharset()
 {
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::Init()
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::GetCharset(nsPlatformCharsetSel selector, nsACString& oResult)
 {
   oResult.AssignLiteral("UTF-8");
   return NS_OK;
 }
 
 nsresult
 nsPlatformCharset::InitGetCharset(nsACString &oString)
--- a/intl/locale/mac/nsMacCharset.cpp
+++ b/intl/locale/mac/nsMacCharset.cpp
@@ -12,30 +12,30 @@ NS_IMPL_ISUPPORTS(nsPlatformCharset, nsI
 
 nsPlatformCharset::nsPlatformCharset()
 {
 }
 nsPlatformCharset::~nsPlatformCharset()
 {
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::GetCharset(nsPlatformCharsetSel selector, nsACString& oResult)
 {
   oResult.AssignLiteral("UTF-8");
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::Init()
 {
   return NS_OK;
 }
 
-nsresult 
+nsresult
 nsPlatformCharset::MapToCharset(nsAString& inANSICodePage, nsACString& outCharset)
 {
   return NS_OK;
 }
 
 nsresult
 nsPlatformCharset::InitGetCharset(nsACString &oString)
 {
--- a/intl/locale/nsCollationFactory.h
+++ b/intl/locale/nsCollationFactory.h
@@ -8,21 +8,21 @@
 #define nsCollationFactory_h__
 
 
 #include "nsICollation.h"
 #include "nsCOMPtr.h"
 #include "mozilla/Attributes.h"
 
 // Create a collation interface for the current app's locale.
-// 
+//
 class nsCollationFactory final : public nsICollationFactory {
 
   ~nsCollationFactory() {}
 
-public: 
+public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSICOLLATIONFACTORY
 
   nsCollationFactory() {}
 };
 
 #endif  /* nsCollationFactory_h__ */
--- a/intl/locale/nsIPlatformCharset.h
+++ b/intl/locale/nsIPlatformCharset.h
@@ -39,17 +39,17 @@ typedef enum {
  * Removal is https://bugzilla.mozilla.org/show_bug.cgi?id=943272
  *
  * Instead, use UTF-16 APIs on Windows and UTF-8 APIs everywhere else.
  * Assume plain text files are UTF-8.
  */
 class nsIPlatformCharset : public nsISupports
 {
 public:
- 
+
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPLATFORMCHARSET_IID)
 
   NS_IMETHOD GetCharset(nsPlatformCharsetSel selector, nsACString& oResult) = 0;
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsIPlatformCharset, NS_IPLATFORMCHARSET_IID)
 
 #endif /* nsIPlatformCharset_h__ */
--- a/intl/locale/nsLocale.cpp
+++ b/intl/locale/nsLocale.cpp
@@ -34,17 +34,17 @@ nsLocale::~nsLocale(void)
                                nullptr);
 
   PL_HashTableDestroy(fHashtable);
 }
 
 NS_IMETHODIMP
 nsLocale::GetCategory(const nsAString& category, nsAString& result)
 {
-  const char16_t *value = (const char16_t*) 
+  const char16_t *value = (const char16_t*)
     PL_HashTableLookup(fHashtable, PromiseFlatString(category).get());
 
   if (value)
   {
     result.Assign(value);
     return NS_OK;
   }
 
--- a/intl/locale/nsLocale.h
+++ b/intl/locale/nsLocale.h
@@ -25,22 +25,22 @@
 #include "plhash.h"
 
 class nsLocale : public nsILocale {
 	friend class nsLocaleService;
 	NS_DECL_THREADSAFE_ISUPPORTS
 
 public:
 	nsLocale(void);
-	
+
 	/* Declare methods from nsILocale */
 	NS_DECL_NSILOCALE
 
 protected:
-	
+
 	NS_IMETHOD AddCategory(const nsAString& category, const nsAString& value);
 
 	static PLHashNumber Hash_HashFunction(const void* key);
 	static int Hash_CompareNSString(const void* s1, const void* s2);
 	static int Hash_EnumerateDelete(PLHashEntry *he, int hashIndex, void *arg);
 
 	PLHashTable*	fHashtable;
 	uint32_t		fCategoryCount;
--- a/intl/locale/nsLocaleService.cpp
+++ b/intl/locale/nsLocaleService.cpp
@@ -25,17 +25,17 @@
 #  include "nsPosixLocale.h"
 #endif
 
 using namespace mozilla;
 
 //
 // implementation constants
 const int LocaleListLength = 6;
-const char* LocaleList[LocaleListLength] = 
+const char* LocaleList[LocaleListLength] =
 {
 	NSILOCALE_COLLATE,
 	NSILOCALE_CTYPE,
 	NSILOCALE_MONETARY,
 	NSILOCALE_NUMERIC,
 	NSILOCALE_TIME,
 	NSILOCALE_MESSAGE
 };
@@ -60,17 +60,17 @@ static int posix_locale_category[LocaleL
 #endif
 
 //
 // nsILocaleService implementation
 //
 class nsLocaleService: public nsILocaleService {
 
 public:
-	
+
 	//
 	// nsISupports
 	//
 	NS_DECL_THREADSAFE_ISUPPORTS
 
 	//
 	// nsILocaleService
 	//
@@ -88,17 +88,17 @@ protected:
 	nsCOMPtr<nsILocale>				mApplicationLocale;
 
         virtual ~nsLocaleService(void);
 };
 
 //
 // nsLocaleService methods
 //
-nsLocaleService::nsLocaleService(void) 
+nsLocaleService::nsLocaleService(void)
 {
 #ifdef XP_WIN
     nsAutoString        xpLocale;
     //
     // get the system LCID
     //
     LCID win_lcid = GetSystemDefaultLCID();
     NS_ENSURE_TRUE_VOID(win_lcid);
@@ -156,17 +156,17 @@ nsLocaleService::nsLocaleService(void)
         if (NS_FAILED(result)) {
             return;
         }
         resultLocale->AddCategory(category, xpLocale);
         resultLocale->AddCategory(category_platform, platformLocale);
     }
     mSystemLocale = do_QueryInterface(resultLocale);
     mApplicationLocale = do_QueryInterface(resultLocale);
-       
+
 #endif // XP_UNIX
 
 #ifdef XP_MACOSX
     // Get string representation of user's current locale
     CFLocaleRef userLocaleRef = ::CFLocaleCopyCurrent();
     CFStringRef userLocaleStr = ::CFLocaleGetIdentifier(userLocaleRef);
     ::CFRetain(userLocaleStr);
 
@@ -331,17 +331,17 @@ nsLocaleService::GetLocaleFromAcceptLang
         PL_strncpyz(acceptLanguageList[countLang++],cPtr,NSILOCALE_MAX_ACCEPT_LENGTH);
         if (countLang>=NSILOCALE_MAX_ACCEPT_LENGTH) break; /* quit if too many */
       }
       cPtr = nsCRT::strtok(cPtr2,",",&cPtr2);
     }
   }
 
   //
-  // now create the locale 
+  // now create the locale
   //
   result = NS_ERROR_FAILURE;
   if (countLang>0) {
 	  result = NewLocale(NS_ConvertASCIItoUTF16(acceptLanguageList[0]), _retval);
   }
 
   //
   // clean up
--- a/intl/locale/nsScriptableDateFormat.cpp
+++ b/intl/locale/nsScriptableDateFormat.cpp
@@ -8,68 +8,68 @@
 #include "nsIScriptableDateFormat.h"
 #include "nsCOMPtr.h"
 #include "nsServiceManagerUtils.h"
 #include "nsILocaleService.h"
 
 static NS_DEFINE_CID(kLocaleServiceCID, NS_LOCALESERVICE_CID);
 
 class nsScriptableDateFormat final : public nsIScriptableDateFormat {
- public: 
-  NS_DECL_ISUPPORTS 
+ public:
+  NS_DECL_ISUPPORTS
 
-  NS_IMETHOD FormatDateTime(const char16_t *locale, 
-                            nsDateFormatSelector dateFormatSelector, 
-                            nsTimeFormatSelector timeFormatSelector, 
-                            int32_t year, 
-                            int32_t month, 
-                            int32_t day, 
-                            int32_t hour, 
-                            int32_t minute, 
-                            int32_t second, 
+  NS_IMETHOD FormatDateTime(const char16_t *locale,
+                            nsDateFormatSelector dateFormatSelector,
+                            nsTimeFormatSelector timeFormatSelector,
+                            int32_t year,
+                            int32_t month,
+                            int32_t day,
+                            int32_t hour,
+                            int32_t minute,
+                            int32_t second,
                             char16_t **dateTimeString) override;
 
-  NS_IMETHOD FormatDate(const char16_t *locale, 
-                        nsDateFormatSelector dateFormatSelector, 
-                        int32_t year, 
-                        int32_t month, 
-                        int32_t day, 
+  NS_IMETHOD FormatDate(const char16_t *locale,
+                        nsDateFormatSelector dateFormatSelector,
+                        int32_t year,
+                        int32_t month,
+                        int32_t day,
                         char16_t **dateString) override
-                        {return FormatDateTime(locale, dateFormatSelector, kTimeFormatNone, 
+                        {return FormatDateTime(locale, dateFormatSelector, kTimeFormatNone,
                                                year, month, day, 0, 0, 0, dateString);}
 
-  NS_IMETHOD FormatTime(const char16_t *locale, 
-                        nsTimeFormatSelector timeFormatSelector, 
-                        int32_t hour, 
-                        int32_t minute, 
-                        int32_t second, 
+  NS_IMETHOD FormatTime(const char16_t *locale,
+                        nsTimeFormatSelector timeFormatSelector,
+                        int32_t hour,
+                        int32_t minute,
+                        int32_t second,
                         char16_t **timeString) override
-                        {return FormatDateTime(locale, kDateFormatNone, timeFormatSelector, 
+                        {return FormatDateTime(locale, kDateFormatNone, timeFormatSelector,
                                                1999, 1, 1, hour, minute, second, timeString);}
 
   nsScriptableDateFormat() {}
 
 private:
-  nsString mStringOut;   
+  nsString mStringOut;
 
   virtual ~nsScriptableDateFormat() {}
 };
 
 NS_IMPL_ISUPPORTS(nsScriptableDateFormat, nsIScriptableDateFormat)
 
 NS_IMETHODIMP nsScriptableDateFormat::FormatDateTime(
-                            const char16_t *aLocale, 
-                            nsDateFormatSelector dateFormatSelector, 
-                            nsTimeFormatSelector timeFormatSelector, 
-                            int32_t year, 
-                            int32_t month, 
-                            int32_t day, 
-                            int32_t hour, 
-                            int32_t minute, 
-                            int32_t second, 
+                            const char16_t *aLocale,
+                            nsDateFormatSelector dateFormatSelector,
+                            nsTimeFormatSelector timeFormatSelector,
+                            int32_t year,
+                            int32_t month,
+                            int32_t day,
+                            int32_t hour,
+                            int32_t minute,
+                            int32_t second,
                             char16_t **dateTimeString)
 {
   // We can't have a valid date with the year, month or day
   // being lower than 1.
   if (year < 1 || month < 1 || day < 1)
     return NS_ERROR_INVALID_ARG;
 
   nsresult rv;
--- a/intl/locale/nsWin32Locale.h
+++ b/intl/locale/nsWin32Locale.h
@@ -6,18 +6,18 @@
 #define nsWin32Locale_h__
 
 #include "nscore.h"
 #include "nsString.h"
 #include <windows.h>
 
 
 class nsWin32Locale final {
-public: 
-  static nsresult    GetPlatformLocale(const nsAString& locale, LCID* winLCID); 
+public:
+  static nsresult    GetPlatformLocale(const nsAString& locale, LCID* winLCID);
   static void        GetXPLocale(LCID winLCID, nsAString& locale);
 
 private:
   // Static class - Don't allow instantiation.
   nsWin32Locale(void) {}
 };
 
 #endif
--- a/intl/locale/unix/nsPosixLocale.cpp
+++ b/intl/locale/unix/nsPosixLocale.cpp
@@ -8,17 +8,17 @@
 #include "nsPosixLocale.h"
 #include "mozilla/Sprintf.h"
 #include "plstr.h"
 #include "nsReadableUtils.h"
 
 static bool
 ParseLocaleString(const char* locale_string, char* language, char* country, char* extra, char separator);
 
-nsresult 
+nsresult
 nsPosixLocale::GetPlatformLocale(const nsAString& locale, nsACString& posixLocale)
 {
   char  country_code[MAX_COUNTRY_CODE_LEN+1];
   char  lang_code[MAX_LANGUAGE_CODE_LEN+1];
   char  extra[MAX_EXTRA_LEN+1];
   char  posix_locale[MAX_LOCALE_LEN+1];
   NS_LossyConvertUTF16toASCII xp_locale(locale);
 
@@ -80,17 +80,17 @@ nsPosixLocale::GetXPLocale(const char* p
     // Special case: substitute "nb" (Norwegian Bokmal) for macrolanguage
     // code "no" (Norwegian)
     if (nsDependentCString(lang_code).LowerCaseEqualsLiteral("no")) {
       lang_code[1] = 'b';
     }
 
     if (*country_code) {
       SprintfLiteral(posix_locale,"%s-%s",lang_code,country_code);
-    } 
+    }
     else {
       SprintfLiteral(posix_locale,"%s",lang_code);
     }
 
     CopyASCIItoUTF16(nsDependentCString(posix_locale), locale);
     return NS_OK;
 
   }
@@ -143,17 +143,17 @@ ParseLocaleString(const char* locale_str
     NS_ASSERTION(!isalpha(*src), "unexpected language/country separator");
     *language = '\0';
     return(false);
   }
 
   //
   // parse the country part
   //
-  if ((*src == '_') || (*src == '-')) { 
+  if ((*src == '_') || (*src == '-')) {
     src++;
     dest = country;
     dest_space = MAX_COUNTRY_CODE_LEN;
     while ((*src) && (isalpha(*src)) && (dest_space--)) {
       *dest++ = toupper(*src++);
     }
     *dest = '\0';
     len = dest - country;
@@ -176,17 +176,17 @@ ParseLocaleString(const char* locale_str
     *language = '\0';
     *country = '\0';
     return(false);
   }
 
   //
   // handle the extra part
   //
-  if (*src == '.') { 
+  if (*src == '.') {
     src++;  // move past the extra part separator
     dest = extra;
     dest_space = MAX_EXTRA_LEN;
     while ((*src) && (*src != '@') && (dest_space--)) {
       *dest++ = *src++;
     }
     *dest = '\0';
     len = dest - extra;
@@ -202,18 +202,18 @@ ParseLocaleString(const char* locale_str
   // check if all done
   if (*src == '\0') {
     return(true);
   }
 
   //
   // handle the modifier part
   //
-  
-  if (*src == '@') { 
+
+  if (*src == '@') {
     src++;  // move past the modifier separator
     NS_ASSERTION(strcmp("euro",src) == 0, "found non euro modifier");
     dest = modifier;
     dest_space = MAX_EXTRA_LEN;
     while ((*src) && (dest_space--)) {
       *dest++ = *src++;
     }
     *dest = '\0';
--- a/intl/locale/unix/nsUNIXCharset.cpp
+++ b/intl/locale/unix/nsUNIXCharset.cpp
@@ -51,20 +51,20 @@ ConvertLocaleToCharsetUsingDeprecatedCon
   oResult.AssignLiteral("ISO-8859-1");
   return NS_SUCCESS_USING_FALLBACK_LOCALE;
 }
 
 nsPlatformCharset::~nsPlatformCharset()
 {
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::GetCharset(nsPlatformCharsetSel selector, nsACString& oResult)
 {
-  oResult = mCharset; 
+  oResult = mCharset;
   return NS_OK;
 }
 
 nsresult
 nsPlatformCharset::InitGetCharset(nsACString &oString)
 {
 #if HAVE_LANGINFO_CODESET
   char* nl_langinfo_codeset = nullptr;
@@ -93,27 +93,27 @@ nsPlatformCharset::InitGetCharset(nsACSt
   // try falling back on a deprecated (locale based) name
   //
   char* locale = setlocale(LC_CTYPE, nullptr);
   nsAutoCString localeStr;
   localeStr.Assign(locale);
   return ConvertLocaleToCharsetUsingDeprecatedConfig(localeStr, oString);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::Init()
 {
   //
   // remember default locale so we can use the
   // same charset when asked for the same locale
   //
   char* locale = setlocale(LC_CTYPE, nullptr);
   NS_ASSERTION(locale, "cannot setlocale");
   if (locale) {
-    CopyASCIItoUTF16(locale, mLocale); 
+    CopyASCIItoUTF16(locale, mLocale);
   } else {
     mLocale.AssignLiteral("en_US");
   }
 
   // InitGetCharset only returns NS_OK or NS_SUCESS_USING_FALLBACK_LOCALE
   return InitGetCharset(mCharset);
 }
 
--- a/intl/locale/windows/nsWin32Locale.cpp
+++ b/intl/locale/windows/nsWin32Locale.cpp
@@ -8,54 +8,54 @@
 #include "nscore.h"
 #include "nsString.h"
 #include "nsReadableUtils.h"
 #include "nsWin32Locale.h"
 #include <windows.h>
 
 using namespace mozilla;
 
-struct iso_pair 
+struct iso_pair
 {
 	const char*	iso_code;
 	DWORD       win_code;
 };
 
 struct iso_map
 {
 	const char* iso_code;
 	DWORD       win_code;
 	iso_pair    sublang_list[20];
 };
 
 //
 // This list is used to map between ISO language
-// References : 
+// References :
 // http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
 // http://www.loc.gov/standards/iso639-2/
 // http://www.ethnologue.com/
 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_19ir.asp
 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_61df.asp
- 
+
 static const
 iso_map iso_list[] =
 {
 	{"af",	LANG_AFRIKAANS, {
 		{ "ZA", SUBLANG_DEFAULT },
 		{ "",0}}
 	},
 	{ "ar", LANG_ARABIC, {
-		{ "SA", SUBLANG_ARABIC_SAUDI_ARABIA }, 
-		{ "IQ", SUBLANG_ARABIC_IRAQ },  
-		{ "EG",	SUBLANG_ARABIC_EGYPT },	
+		{ "SA", SUBLANG_ARABIC_SAUDI_ARABIA },
+		{ "IQ", SUBLANG_ARABIC_IRAQ },
+		{ "EG",	SUBLANG_ARABIC_EGYPT },
 		{ "LY", SUBLANG_ARABIC_LIBYA },
 		{ "DZ", SUBLANG_ARABIC_ALGERIA },
 		{ "MA", SUBLANG_ARABIC_MOROCCO },
 		{ "TN", SUBLANG_ARABIC_TUNISIA },
-		{ "OM", SUBLANG_ARABIC_OMAN }, 
+		{ "OM", SUBLANG_ARABIC_OMAN },
 		{ "YE", SUBLANG_ARABIC_YEMEN },
 		{ "SY", SUBLANG_ARABIC_SYRIA },
 		{ "JO", SUBLANG_ARABIC_JORDAN },
 		{ "LB", SUBLANG_ARABIC_LEBANON },
 		{ "KW", SUBLANG_ARABIC_KUWAIT },
 		{ "AE", SUBLANG_ARABIC_UAE },
 		{ "BH", SUBLANG_ARABIC_BAHRAIN },
 		{ "QA", SUBLANG_ARABIC_QATAR },
@@ -76,17 +76,17 @@ iso_map iso_list[] =
 	{"ca",	LANG_CATALAN, {
 		{ "ES", SUBLANG_DEFAULT},
 		{ "",0}}
 	},
 	{"cs",	LANG_CZECH, {
 		{ "CZ", SUBLANG_DEFAULT},
 		{"",0}}
 	},
-	{ "da", LANG_DANISH, { 
+	{ "da", LANG_DANISH, {
 		{ "DK", SUBLANG_DEFAULT },
 		{ "",0}}
 	},
 	{ "de", LANG_GERMAN, {
 		{ "DE", SUBLANG_GERMAN },
 		{ "CH", SUBLANG_GERMAN_SWISS },
 		{ "AT", SUBLANG_GERMAN_AUSTRIAN },
 		{ "LU", SUBLANG_GERMAN_LUXEMBOURG },
@@ -163,21 +163,21 @@ iso_map iso_list[] =
 		{ "BE", SUBLANG_FRENCH_BELGIAN },
 		{ "CA", SUBLANG_FRENCH_CANADIAN },
 		{ "CH", SUBLANG_FRENCH_SWISS },
 		{ "LU", SUBLANG_FRENCH_LUXEMBOURG },
 		{ "MC", SUBLANG_FRENCH_MONACO },
 		{"",0}}
 	},
 	{ "gl", LANG_GALICIAN, {
-		{ "ES", SUBLANG_DEFAULT }, 
+		{ "ES", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "gu", LANG_GUJARATI, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"he",	LANG_HEBREW, {
 		{ "IL", SUBLANG_DEFAULT},
 		{ "", 0}}
 	},
 	{"hi",	LANG_HINDI, {
 		{ "IN", SUBLANG_DEFAULT },
@@ -224,25 +224,25 @@ iso_map iso_list[] =
 		{ "GE", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "kk", LANG_KAZAK, {
 		{ "KZ", SUBLANG_DEFAULT }, // KAZAKHSTAN
 		{ "", 0}}
 	},
 	{ "kn", LANG_KANNADA, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "ko", LANG_KOREAN, {
 		{ "KR", SUBLANG_KOREAN },
 		{ "", 0}}
 	},
 	{ "kok", LANG_KONKANI, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "ky", LANG_KYRGYZ, {
 		{ "KG", SUBLANG_DEFAULT }, // Kygyzstan
 		{ "", 0}}
 	},
 	{"lt",	LANG_LITHUANIAN, {
 		{ "LT", SUBLANG_DEFAULT },
@@ -252,21 +252,21 @@ iso_map iso_list[] =
 		{ "LV", SUBLANG_DEFAULT},
 		{ "", 0}}
 	},
 	{"mk",	LANG_MACEDONIAN, {
 		{ "MK", SUBLANG_DEFAULT },
 		{ "", 0 }}
 	},
 	{ "mn", LANG_MONGOLIAN, {
-		{ "MN", SUBLANG_DEFAULT }, 
+		{ "MN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "mr", LANG_MARATHI, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"ms",	LANG_MALAY, {
 		{ "MY", SUBLANG_MALAY_MALAYSIA },
 		{ "BN", SUBLANG_MALAY_BRUNEI_DARUSSALAM }, // XXX
 		{ "", 0}}
 	},
 	{"nb",	LANG_NORWEGIAN, {
@@ -282,17 +282,17 @@ iso_map iso_list[] =
 		{ "NO",  SUBLANG_NORWEGIAN_NYNORSK },
 		{ "", SUBLANG_NORWEGIAN_NYNORSK}}
 	},
 	{"no",	LANG_NORWEGIAN, {
 		{ "NO",  SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "pa", LANG_PUNJABI, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"pl",	LANG_POLISH, {
 		{ "PL", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "pt", LANG_PORTUGUESE, {
 		{ "PT", SUBLANG_PORTUGUESE },
@@ -303,31 +303,31 @@ iso_map iso_list[] =
 		{ "RO", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"ru",	LANG_RUSSIAN, {
 		{ "RU", SUBLANG_DEFAULT },
 		{ "", 0 }}
 	},
 	{ "sa", LANG_SANSKRIT, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"sk",	LANG_SLOVAK, {
 		{ "SK", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"sl",	LANG_SLOVENIAN, {
 		{ "SI", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"sq",	LANG_ALBANIAN, {
 		{ "AL", SUBLANG_DEFAULT },
 		{ "", 0}}
-	},		
+	},
 	/* Duplicate the SUBLANG codes for Croatian and Serbian, because the Windows
 	   LANG code is the same for both */
 	{"sr",	LANG_SERBIAN, {
 		{ "CS", SUBLANG_SERBIAN_LATIN },
 		{ "SP", SUBLANG_SERBIAN_CYRILLIC },
 		{ "HR", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
@@ -336,33 +336,33 @@ iso_map iso_list[] =
 		{ "FI", SUBLANG_SWEDISH_FINLAND },
 		{ "", 0 }}
 	},
 	{"sw",	LANG_SWAHILI, {
 		{ "KE", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "ta", LANG_TAMIL, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "te", LANG_TELUGU, {
-		{ "IN", SUBLANG_DEFAULT }, 
+		{ "IN", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"th",	LANG_THAI, {
 		{"TH", SUBLANG_DEFAULT},
 		{"",0}}
 	},
 	{"tr",	LANG_TURKISH, {
 		{ "TR", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{ "tt", LANG_TATAR, {
-		{ "RU", SUBLANG_DEFAULT }, 
+		{ "RU", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"uk",	LANG_UKRAINIAN, {
 		{ "UA", SUBLANG_DEFAULT },
 		{ "", 0}}
 	},
 	{"ur",	LANG_URDU, {
 		{ "PK", SUBLANG_URDU_PAKISTAN },
@@ -383,28 +383,28 @@ iso_map iso_list[] =
 		{ "HK", SUBLANG_CHINESE_HONGKONG },
 		{ "SG", SUBLANG_CHINESE_SINGAPORE },
 		{ "MO", SUBLANG_CHINESE_MACAU },
 		{ "",0}}
 	}
 };
 
 #define LENGTH_MAPPING_LIST		ArrayLength(iso_list)
-	
+
 //
 // This list maps ISO 2 digit country codes to Win32 country codes.
 // This list must be kept in alphabetic (by iso code) order and synchronized
 // with the list above.  This is only used in debug builds to check the consistentcy
 // of the internal tables.
 //
 #ifdef DEBUG
 static const
 iso_pair dbg_list[] =
 {
-	{"af",	LANG_AFRIKAANS},		
+	{"af",	LANG_AFRIKAANS},
 	{"ar",	LANG_ARABIC},
 	{"az",	LANG_AZERI},
 	{"be",	LANG_BELARUSIAN},
 	{"bg",	LANG_BULGARIAN},
 	{"ca",	LANG_CATALAN},
 	{"cs",	LANG_CZECH},
 	{"da",	LANG_DANISH},
 	{"de",	LANG_GERMAN},
@@ -448,17 +448,17 @@ iso_pair dbg_list[] =
 	{"pa",  LANG_PUNJABI},
 	{"pl",	LANG_POLISH},
 	{"pt",	LANG_PORTUGUESE},
 	{"ro",	LANG_ROMANIAN},
 	{"ru",	LANG_RUSSIAN},
 	{"sa",  LANG_SANSKRIT},
 	{"sk",	LANG_SLOVAK},
 	{"sl",	LANG_SLOVENIAN},
-	{"sq",	LANG_ALBANIAN},		
+	{"sq",	LANG_ALBANIAN},
 	{"sr",	LANG_SERBIAN},
 	{"sv",	LANG_SWEDISH},
 	{"sw",	LANG_SWAHILI},
 	{"ta",  LANG_TAMIL},
 	{"te",  LANG_TELUGU},
 	{"th",	LANG_THAI},
 	{"tr",	LANG_TURKISH},
 	{"tt",  LANG_TATAR},
@@ -514,17 +514,17 @@ nsWin32Locale::GetPlatformLocale(const n
           return NS_OK;
         }
       }
       // here we have a language match but no country match
       *winLCID = MAKELCID(MAKELANGID(iso_list[i].win_code,SUBLANG_DEFAULT),SORT_DEFAULT);
       return NS_OK;
     }
   }
-    
+
   return NS_ERROR_FAILURE;
 }
 
 void
 nsWin32Locale::GetXPLocale(LCID winLCID, nsAString& locale)
 {
   locale.SetCapacity(LOCALE_NAME_MAX_LENGTH);
   int length = LCIDToLocaleName(winLCID,
@@ -577,20 +577,20 @@ nsWin32Locale::GetXPLocale(LCID winLCID,
           break;
         }
       }
       return;
     }
   }
 
   //
-  // didn't find any match. fall back to en-US, which is better 
-  // than unusable buttons without 'OK', 'Cancel', etc (bug 224546)       
+  // didn't find any match. fall back to en-US, which is better
+  // than unusable buttons without 'OK', 'Cancel', etc (bug 224546)
   //
-  locale.AssignLiteral("en-US"); 
+  locale.AssignLiteral("en-US");
   return;
 }
 
 #ifdef DEBUG
 void
 test_internal_tables(void)
 {
 	size_t i;
--- a/intl/locale/windows/nsWinCharset.cpp
+++ b/intl/locale/windows/nsWinCharset.cpp
@@ -41,25 +41,25 @@ nsPlatformCharset::MapToCharset(nsAStrin
       ArrayLength(kWinCharsets), key, outCharset);
   if (NS_FAILED(rv)) {
     outCharset.AssignLiteral("windows-1252");
     return NS_SUCCESS_USING_FALLBACK_LOCALE;
   }
   return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::GetCharset(nsPlatformCharsetSel selector,
                               nsACString& oResult)
 {
   oResult = mCharset;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPlatformCharset::Init()
 {
   return NS_OK;
 }
 
 nsresult
 nsPlatformCharset::InitGetCharset(nsACString &oString)
 {
--- a/intl/lwbrk/jisx4051class.h
+++ b/intl/lwbrk/jisx4051class.h
@@ -1,13 +1,13 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-/* 
+/*
     DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
     mozilla/intl/lwbrk/tools/anzx4051.pl
  */
 static const uint32_t gLBClass00[32] = {
 0x55555555, // U+0000 - U+0007
 0x55555555, // U+0008 - U+000F
 0x55555555, // U+0010 - U+0017
 0x55555555, // U+0018 - U+001F
--- a/intl/lwbrk/nsILineBreaker.h
+++ b/intl/lwbrk/nsILineBreaker.h
@@ -19,23 +19,23 @@
 class nsILineBreaker : public nsISupports
 {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ILINEBREAKER_IID)
 
   enum {
     kWordBreak_Normal   = 0, // default
     kWordBreak_BreakAll = 1, // break all
-    kWordBreak_KeepAll  = 2  // always keep 
+    kWordBreak_KeepAll  = 2  // always keep
   };
 
-  virtual int32_t Next( const char16_t* aText, uint32_t aLen, 
+  virtual int32_t Next( const char16_t* aText, uint32_t aLen,
                         uint32_t aPos) = 0;
 
-  virtual int32_t Prev( const char16_t* aText, uint32_t aLen, 
+  virtual int32_t Prev( const char16_t* aText, uint32_t aLen,
                         uint32_t aPos) = 0;
 
   // Call this on a word with whitespace at either end. We will apply JISx4051
   // rules to find breaks inside the word. aBreakBefore is set to the break-
   // before status of each character; aBreakBefore[0] will always be false
   // because we never return a break before the first character.
   // aLength is the length of the aText array and also the length of the aBreakBefore
   // output array.
@@ -56,17 +56,17 @@ NS_IsSpace(char16_t u)
          u == 0x0009 ||                  // CHARACTER TABULATION
          u == 0x000D ||                  // CARRIAGE RETURN
          u == 0x1680 ||                  // OGHAM SPACE MARK
          (0x2000 <= u && u <= 0x2006) || // EN QUAD, EM QUAD, EN SPACE,
                                          // EM SPACE, THREE-PER-EM SPACE,
                                          // FOUR-PER-SPACE, SIX-PER-EM SPACE,
          (0x2008 <= u && u <= 0x200B) || // PUNCTUATION SPACE, THIN SPACE,
                                          // HAIR SPACE, ZERO WIDTH SPACE
-         u == 0x205F;                    // MEDIUM MATHEMATICAL SPACE 
+         u == 0x205F;                    // MEDIUM MATHEMATICAL SPACE
 }
 
 static inline bool
 NS_NeedsPlatformNativeHandling(char16_t aChar)
 {
   return (0x0e01 <= aChar && aChar <= 0x0fff) || // Thai, Lao, Tibetan
          (0x1780 <= aChar && aChar <= 0x17ff);   // Khmer
 }
--- a/intl/lwbrk/nsIWordBreaker.h
+++ b/intl/lwbrk/nsIWordBreaker.h
@@ -37,17 +37,17 @@ class nsIWordBreaker : public nsISupport
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWORDBREAKER_IID)
 
   virtual bool BreakInBetween(const char16_t* aText1 , uint32_t aTextLen1,
                                 const char16_t* aText2 ,
                                 uint32_t aTextLen2) = 0;
   virtual nsWordRange FindWord(const char16_t* aText1 , uint32_t aTextLen1,
                                uint32_t aOffset) = 0;
-  virtual int32_t NextWord(const char16_t* aText, uint32_t aLen, 
+  virtual int32_t NextWord(const char16_t* aText, uint32_t aLen,
                            uint32_t aPos) = 0;
-                           
+
   static nsWordBreakClass GetClass(char16_t aChar);
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsIWordBreaker, NS_IWORDBREAKER_IID)
 
 #endif  /* nsIWordBreaker_h__ */
--- a/intl/lwbrk/nsJISx4051LineBreaker.cpp
+++ b/intl/lwbrk/nsJISx4051LineBreaker.cpp
@@ -9,27 +9,27 @@
 
 #include "jisx4051class.h"
 #include "nsComplexBreaker.h"
 #include "nsTArray.h"
 #include "nsUnicodeProperties.h"
 
 using namespace mozilla::unicode;
 
-/* 
+/*
 
    Simplification of Pair Table in JIS X 4051
 
    1. The Origion Table - in 4.1.3
 
    In JIS x 4051. The pair table is defined as below
 
    Class of
    Leading    Class of Trailing Char Class
-   Char        
+   Char
 
               1  2  3  4  5  6  7  8  9 10 11 12 13 13 14 14 15 16 17 18 19 20
                                                  *  #  *  #
         1     X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  E
         2        X  X  X  X  X                                               X
         3        X  X  X  X  X                                               X
         4        X  X  X  X  X                                               X
         5        X  X  X  X  X                                               X
@@ -84,71 +84,71 @@ using namespace mozilla::unicode;
 
    Class of
    Leading    Class of Trailing Char Class
    Char
 
               1  2  3  4  5  6  7  8  9 10 11 12 15 17 18
 
         1     X  X  X  X  X  X  X  X  X  X  X  X  X  X  X
-        2        X  X  X  X  X                           
-        3        X  X  X  X  X                           
-        4        X  X  X  X  X                           
-        5        X  X  X  X  X                           
-        6        X  X  X  X  X                           
-        7        X  X  X  X  X  X                        
-        8        X  X  X  X  X                    X      
-        9        X  X  X  X  X                           
-       10        X  X  X  X  X                           
-       11        X  X  X  X  X                           
-       12        X  X  X  X  X                           
+        2        X  X  X  X  X
+        3        X  X  X  X  X
+        4        X  X  X  X  X
+        5        X  X  X  X  X
+        6        X  X  X  X  X
+        7        X  X  X  X  X  X
+        8        X  X  X  X  X                    X
+        9        X  X  X  X  X
+       10        X  X  X  X  X
+       11        X  X  X  X  X
+       12        X  X  X  X  X
        15        X  X  X  X  X        X           X     X
-       17        X  X  X  X  X                           
+       17        X  X  X  X  X
        18        X  X  X  X  X                    X     X
 
    3. Simplified by merged classes
 
    After the 2 simplification, the pair table have some duplication
    a. class 2, 3, 4, 5, 6,  are the same- we can merged them
    b. class 10, 11, 12, 17  are the same- we can merged them
 
 
    Class of
    Leading    Class of Trailing Char Class
    Char
 
               1 [a] 7  8  9 [b]15 18
 
         1     X  X  X  X  X  X  X  X
-      [a]        X                  
-        7        X  X               
-        8        X              X   
-        9        X                  
-      [b]        X                  
+      [a]        X
+        7        X  X
+        8        X              X
+        9        X
+      [b]        X
        15        X        X     X  X
        18        X              X  X
 
 
    4. We add COMPLEX characters and make it breakable w/ all ther class
       except after class 1 and before class [a]
 
    Class of
    Leading    Class of Trailing Char Class
    Char
 
               1 [a] 7  8  9 [b]15 18 COMPLEX
 
         1     X  X  X  X  X  X  X  X  X
-      [a]        X                     
-        7        X  X                  
-        8        X              X      
-        9        X                     
-      [b]        X                     
-       15        X        X     X  X   
-       18        X              X  X   
+      [a]        X
+        7        X  X
+        8        X              X
+        9        X
+      [b]        X
+       15        X        X     X  X
+       18        X              X  X
   COMPLEX        X                    T
 
      T : need special handling
 
 
    5. However, we need two special class for some punctuations/parentheses,
       theirs breaking rules like character class (18), see bug 389056.
       And also we need character like punctuation that is same behavior with 18,
@@ -161,23 +161,23 @@ using namespace mozilla::unicode;
    Class of
    Leading    Class of Trailing Char Class
    Char
 
               1 [a] 7  8  9 [b]15 18 COMPLEX [c] [d]
 
         1     X  X  X  X  X  X  X  X  X       X    X
       [a]        X                            X    X
-        7        X  X                               
-        8        X              X                   
-        9        X                                  
+        7        X  X
+        8        X              X
+        9        X
       [b]        X                                 X
        15        X        X     X  X          X    X
        18        X              X  X          X    X
-  COMPLEX        X                    T             
+  COMPLEX        X                    T
       [c]     X  X  X  X  X  X  X  X  X       X    X
       [d]        X              X  X               X
 
 
    6. And Unicode has "NON-BREAK" characters. The lines should be broken around
       them. But in JIS X 4051, such class is not, therefore, we create [e].
 
    Class of
@@ -294,17 +294,17 @@ static const uint16_t gPairConservative[
   0x0FFF
 };
 
 
 /*
 
    9. Now we map the class to number
 
-      0: 1 
+      0: 1
       1: [a]- 2, 3, 4, 5, 6
       2: 7
       3: 8
       4: 9
       5: [b]- 10, 11, 12, 17
       6: 15
       7: 18
       8: COMPLEX
@@ -460,17 +460,17 @@ GetClass(uint32_t u)
       }
       if (l < 0x00f0) {
         static char16_t NarrowFFEx[16] = {
           0x00A2, 0x00A3, 0x00AC, 0x00AF, 0x00A6, 0x00A5, 0x20A9, 0x0000,
           0x2502, 0x2190, 0x2191, 0x2192, 0x2193, 0x25A0, 0x25CB, 0x0000
         };
         return GetClass(NarrowFFEx[l - 0x00e0]);
       }
-    } else if (0x3100 == h) { 
+    } else if (0x3100 == h) {
       if (l <= 0xbf) { // Hangul Compatibility Jamo, Bopomofo, Kanbun
                        // XXX: This is per UAX #14, but UAX #14 may change
                        // the line breaking rules about Kanbun and Bopomofo.
         return CLASS_BREAKABLE;
       }
       if (l >= 0xf0) { // Katakana small letters for Ainu
         return CLASS_CLOSE;
       }
@@ -918,28 +918,28 @@ nsJISx4051LineBreaker::WordMove(const ch
     } while (begin < ret && ret < end && !breakState[ret - begin]);
   }
 
   return ret;
 }
 
 int32_t
 nsJISx4051LineBreaker::Next(const char16_t* aText, uint32_t aLen,
-                            uint32_t aPos) 
+                            uint32_t aPos)
 {
   NS_ASSERTION(aText, "aText shouldn't be null");
   NS_ASSERTION(aLen > aPos, "Bad position passed to nsJISx4051LineBreaker::Next");
 
   int32_t nextPos = WordMove(aText, aLen, aPos, 1);
   return nextPos < int32_t(aLen) ? nextPos : NS_LINEBREAKER_NEED_MORE_TEXT;
 }
 
 int32_t
 nsJISx4051LineBreaker::Prev(const char16_t* aText, uint32_t aLen,
-                            uint32_t aPos) 
+                            uint32_t aPos)
 {
   NS_ASSERTION(aText, "aText shouldn't be null");
   NS_ASSERTION(aLen >= aPos && aPos > 0,
                "Bad position passed to nsJISx4051LineBreaker::Prev");
 
   int32_t prevPos = WordMove(aText, aLen, aPos, -1);
   return prevPos > 0 ? prevPos : NS_LINEBREAKER_NEED_MORE_TEXT;
 }
@@ -1012,17 +1012,17 @@ nsJISx4051LineBreaker::GetJISx4051Breaks
           ++end;
         }
       }
 
       NS_GetComplexLineBreaks(aChars + cur, end - cur, aBreakBefore + cur);
 
       // We have to consider word-break value again for complex characters
       if (aWordBreak != nsILineBreaker::kWordBreak_Normal) {
-        // Respect word-break property 
+        // Respect word-break property
         for (uint32_t i = cur; i < end; i++)
           aBreakBefore[i] = (aWordBreak == nsILineBreaker::kWordBreak_BreakAll);
       }
 
       // restore breakability at chunk begin, which was always set to false
       // by the complex line breaker
       aBreakBefore[cur] = allowBreak;
 
--- a/intl/lwbrk/nsSampleWordBreaker.cpp
+++ b/intl/lwbrk/nsSampleWordBreaker.cpp
@@ -28,19 +28,19 @@ bool nsSampleWordBreaker::BreakInBetween
   return GetClass(aText1[aTextLen1-1]) != GetClass(aText2[0]);
 }
 
 
 #define IS_ASCII(c)            (0 == ( 0xFF80 & (c)))
 #define ASCII_IS_ALPHA(c)         ((( 'a' <= (c)) && ((c) <= 'z')) || (( 'A' <= (c)) && ((c) <= 'Z')))
 #define ASCII_IS_DIGIT(c)         (( '0' <= (c)) && ((c) <= '9'))
 #define ASCII_IS_SPACE(c)         (( ' ' == (c)) || ( '\t' == (c)) || ( '\r' == (c)) || ( '\n' == (c)))
-#define IS_ALPHABETICAL_SCRIPT(c) ((c) < 0x2E80) 
+#define IS_ALPHABETICAL_SCRIPT(c) ((c) < 0x2E80)
 
-// we change the beginning of IS_HAN from 0x4e00 to 0x3400 to relfect Unicode 3.0 
+// we change the beginning of IS_HAN from 0x4e00 to 0x3400 to relfect Unicode 3.0
 #define IS_HAN(c)              (( 0x3400 <= (c)) && ((c) <= 0x9fff))||(( 0xf900 <= (c)) && ((c) <= 0xfaff))
 #define IS_KATAKANA(c)         (( 0x30A0 <= (c)) && ((c) <= 0x30FF))
 #define IS_HIRAGANA(c)         (( 0x3040 <= (c)) && ((c) <= 0x309F))
 #define IS_HALFWIDTHKATAKANA(c)         (( 0xFF60 <= (c)) && ((c) <= 0xFF9F))
 #define IS_THAI(c)         (0x0E00 == (0xFF80 & (c) )) // Look at the higest 9 bits
 
 /* static */ nsWordBreakClass
 nsIWordBreaker::GetClass(char16_t c)
@@ -120,29 +120,29 @@ nsWordRange nsSampleWordBreaker::FindWor
   if(kWbClassThaiLetter == c)
   {
 	// need to call Thai word breaker from here
 	// we should pass the whole Thai segment to the thai word breaker to find a shorter answer
   }
   return range;
 }
 
-int32_t nsSampleWordBreaker::NextWord( 
-  const char16_t* aText, uint32_t aLen, uint32_t aPos) 
+int32_t nsSampleWordBreaker::NextWord(
+  const char16_t* aText, uint32_t aLen, uint32_t aPos)
 {
   nsWordBreakClass c1, c2;
   uint32_t cur = aPos;
   if (cur == aLen)
     return NS_WORDBREAKER_NEED_MORE_TEXT;
   c1 = GetClass(aText[cur]);
- 
+
   for(cur++; cur <aLen; cur++)
   {
      c2 = GetClass(aText[cur]);
-     if(c2 != c1) 
+     if(c2 != c1)
        break;
   }
   if(kWbClassThaiLetter == c1)
   {
 	// need to call Thai word breaker from here
 	// we should pass the whole Thai segment to the thai word breaker to find a shorter answer
   }
   if (cur == aLen)
--- a/intl/lwbrk/nsUniscribeBreaker.cpp
+++ b/intl/lwbrk/nsUniscribeBreaker.cpp
@@ -12,17 +12,17 @@
 #include "nsUTF8Utils.h"
 #include "nsString.h"
 #include "nsTArray.h"
 
 void
 NS_GetComplexLineBreaks(const char16_t* aText, uint32_t aLength,
                         uint8_t* aBreakBefore)
 {
-  NS_ASSERTION(aText, "aText shouldn't be null"); 
+  NS_ASSERTION(aText, "aText shouldn't be null");
 
   int outItems = 0;
   HRESULT result;
   AutoTArray<SCRIPT_ITEM, 64> items;
   char16ptr_t text = aText;
 
   memset(aBreakBefore, false, aLength);
 
@@ -38,21 +38,21 @@ NS_GetComplexLineBreaks(const char16_t* 
         return;
     }
   } while (result == E_OUTOFMEMORY);
 
   for (int iItem = 0; iItem < outItems; ++iItem)  {
     uint32_t endOffset = (iItem + 1 == outItems ? aLength : items[iItem + 1].iCharPos);
     uint32_t startOffset = items[iItem].iCharPos;
     AutoTArray<SCRIPT_LOGATTR, 64> sla;
-    
+
     if (!sla.AppendElements(endOffset - startOffset))
       return;
 
     if (ScriptBreak(text + startOffset, endOffset - startOffset,
-                    &items[iItem].a,  sla.Elements()) < 0) 
+                    &items[iItem].a,  sla.Elements()) < 0)
       return;
 
     for (uint32_t j=0; j+startOffset < endOffset; ++j) {
        aBreakBefore[j+startOffset] = sla[j].fSoftBreak;
     }
   }
 }
--- a/intl/lwbrk/rulebrk.c
+++ b/intl/lwbrk/rulebrk.c
@@ -11,17 +11,17 @@
 #define th_isspace(c)   ((c)==' '||(c)=='\t')
 
 
 /*
 /////////////////////////////////////////////////
 // Thai character type array
 */
 
-typedef unsigned short twb_t; 
+typedef unsigned short twb_t;
 extern const twb_t _TwbType[0x100-0xa0];
 
 /*
 // bit definition
 */
 
 #define VRS 0x0001
 #define VRE 0x0002
@@ -67,33 +67,33 @@ extern const twb_t _TwbType[0x100-0xa0];
 #endif
 #define RETURN(b) return (b)
 
 
 /*
 /////////////////////////////////////////////////
 */
 
-int TrbWordBreakPos(const th_char *pstr, int left, 
+int TrbWordBreakPos(const th_char *pstr, int left,
                     const th_char *rstr, int right)
 /*                 const ThBreakIterator *it, const th_char **p)*/
 {
 	/*
 	//int left, right;
 	//const th_char *s = *p;
 	*/
     const th_char *lstr = pstr + left;
 	th_char _c[6];
 	twb_t _t[6];
 	#define c(i) (_c[(i)+3])
 	#define t(i) (_t[(i)+3])
 	int i, j;
 
 	/*
-	//left = s - it->begin; 
+	//left = s - it->begin;
 	*/
 	if(left < 0) return -1;
 	/*
         //right = (it->end == NULL) ? 4 : it->begin - s;
 	*/
 	if(right < 1) return -1;
 
         /*
@@ -102,20 +102,20 @@ int TrbWordBreakPos(const th_char *pstr,
 	c(0) = rstr[0]; /* may be '\0' */
     if(!th_isthai(c(0))) return -1;
 	t(0) = twbtype(c(0));
 	if(!(t(0) & A)) return -1;
 
         /*
 	// get c(-1), t(-1)
         */
-	if(left >= 1) { 
-		c(-1) = lstr[-1]; 
+	if(left >= 1) {
+		c(-1) = lstr[-1];
 		if(!th_isthai(c(-1))) return 0;
-		t(-1) = twbtype(c(-1)); 
+		t(-1) = twbtype(c(-1));
 		if(!(t(-1) & A)) return 0;	/* handle punctuation marks here */
 	} else { c(-1) = 0; t(-1) = 0; }
 
 	/*
 	// get c(1..2), t(1..2)
 	*/
 	for(i = 1; i <= 2; i++) {
 		if(i >= right) { c(i) = 0; t(i) = 0; }
@@ -129,17 +129,17 @@ int TrbWordBreakPos(const th_char *pstr,
 		}
 	}
 	/*
 	// get c(-2..-3), t(-2..-3)
 	*/
 	for(i = -2, j = -2; i >= -3 ; j--) {
 		if(j < -left) { c(i) = 0; t(i) = 0; i--; }
 		else {
-			c(i) = lstr[j]; 
+			c(i) = lstr[j];
 			if(!th_isthai(c(i))) left = 0;
 			else {
 				t(i) = (twb_t)(th_isthai(c(i)) ? twbtype(c(i)) : 0);
 				if(!(t(i) & A)) left = 0;
 				else {
 					if((t(i+1) & MT) && ((t(i) & VR) || (t(i+2) & VR))) {
 						c(i+1) = c(i); t(i+1) = t(i);
 					} else i--;
@@ -158,17 +158,17 @@ int TrbWordBreakPos(const th_char *pstr,
 	// special case : vlao, C/ sara_a|aa, !sara_a
 	*/
 	if((t(-3) & (VLA|VLO)) && (t(-2) & C) && (c(0) != TH_SARA_A) &&
 		(c(-1) == TH_SARA_A || c(-0) == TH_SARA_AA)) return 0;
 
 	/*
 	// prohibit break
 	*/
-	if(t(0) & NB) return -1; 
+	if(t(0) & NB) return -1;
 	if(t(-1) & NE) return -1;
 
 
   /*
 	// apply 100% rules
   */
 	if(t(-1) & VRE) {
 		if(c(-2) == TH_SARA_AA && c(-1) == TH_SARA_A) return 0;
@@ -184,17 +184,17 @@ int TrbWordBreakPos(const th_char *pstr,
 		if(!(t(0) & C2) && c(1) == TH_SARA_I) {	/*	/ !C2 or /c, sara_i */
 			if(t(-2) & VRX) return 0; /* VRX, C / C, NB ? 100%? */
 			if(t(-2) & VC) return 0;	/* VC, C / C, NB ? 100% */
 		}
 	}
 	if((t(-1) & VRX) && (t(0) & CC)) return 0;				/* VRX/ CC */
 	if((t(-2) & VRS) && (t(-1) & C) && (t(0) & (V|M))) return 0;/* VRS, C/ !C */
 
-	
+
 	if((t(0) & CX) && (t(1) & C2) && (c(2) != TH_THANTHAKHAT)) {
 		if((t(-2) & A) && (t(-1) & CX)) return 0; /* A, CX / CX, C2 */
 		if((t(-2) & CX) && (t(-1) & MT)) return 0; /* CX, MT / CX, C2 */
 	}
 	/*
 	// apply 90% rules
 	*/
 	if(t(0) & VL) return 0;
@@ -209,26 +209,26 @@ int TrbWordBreakPos(const th_char *pstr,
 		if((t(-2) & VRS) && (t(-1) & C)) return 0;	/* VRS, C/ CHE */
 		/*if(t(-1) & VRX) return 0;					// VRX/ CHE */
 		if(t(-1) & VC) return 0;					/* VC/ CHE */
 	}
 	if(t(-1) & CHB) {
 		if((t(0) & C) && (t(1) & VR)) return 0;	/* CHB/ CC, VR */
 		if(t(0) & VC) return 0;					/* CHB/ VC */
 	}
-	
+
 	if((t(-2) & VL) && (t(1) & VR)) { /* VL, C? C, VR */
 		if(t(-2) & VLI) return 0;  /* VLI,C/C,VR .*/
 		else { /* vlao, C ? C , VR */
 			if(c(1) == TH_SARA_A) return 2; /* vlao, C, C, sara_a/ */
 			if(t(-2) & VLO) return 0; /* VLO, C/ C, !sara_a */
 			if(!(t(1) & VRA)) return 0;	/* VLA, C/ C, !vca */
 		}
 	}
-	/* C,MT,C */ 
+	/* C,MT,C */
 	if((t(-2) & C) && (t(-1) & MT) && (t(0) & CX)) return 1;
 
 	return -1;
 }
 
 
 int TrbFollowing(const th_char *begin, int length, int offset)
 /*
@@ -238,34 +238,34 @@ int TrbFollowing(const th_char *begin, i
 	const th_char *w = begin + offset;
     const th_char *end = begin + length;
 	while(w < end && *w && !th_isthai(*w) && th_isspace(*w)) w++;
 
 	if(w < end && *w && !th_isthai(*w)) {
 		int english = FALSE;
 		while(w < end && *w && !th_isthai(*w) && !th_isspace(*w)) {
 			if(th_isalpha(*w)) english = TRUE;
-			w++; 
+			w++;
 		}
-		if(english || w == end || 
+		if(english || w == end ||
             (!th_isthai(*w) && th_isspace(*w))) return w - begin;
-	} 
+	}
 	if(w == end || *w == 0 || !th_isthai(*w)) return w - begin;
 	w++;
 	if(w < end && *w && th_isthai(*w)) {
 		int brk = TrbWordBreakPos(begin, w-begin, w, end-w);
 		while (brk < 0) {
 			w++;
 			if(w == end || *w == 0 || !th_isthai(*w)) break;
 			brk = TrbWordBreakPos(begin, w-begin, w, end-w);
 		}
         if (brk > 0) w += brk;
 	}
 	if(w < end && *w && !th_isthai(*w)) {
-		while(w < end && *w && !th_isthai(*w) && 
+		while(w < end && *w && !th_isthai(*w) &&
             !th_isalpha(*w) && !th_isspace(*w)) w++;
 	}
 	return w - begin;
 }
 
 
 /*
 /////////////////////////////////////////////////
--- a/intl/lwbrk/rulebrk.h
+++ b/intl/lwbrk/rulebrk.h
@@ -1,9 +1,9 @@
-/* 
+/*
 Copyright (c) 1999 Samphan Raruenrom <samphan@thai.com>
 Permission to use, copy, modify, distribute and sell this software
 and its documentation for any purpose is hereby granted without fee,
 provided that the above copyright notice appear in all copies and
 that both that copyright notice and this permission notice appear
 in supporting documentation.  Samphan Raruenrom makes no
 representations about the suitability of this software for any
 purpose.  It is provided "as is" without express or implied warranty.
@@ -11,16 +11,16 @@ purpose.  It is provided "as is" without
 #ifndef __RULEBRK_H__
 #define __RULEBRK_H__
 #include "th_char.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-int TrbWordBreakPos(const th_char *pstr, int left, 
+int TrbWordBreakPos(const th_char *pstr, int left,
                     const th_char *rstr, int right);
 int TrbFollowing(const th_char *begin, int length, int offset);
 
 #ifdef __cplusplus
 }
 #endif
 #endif
--- a/intl/lwbrk/th_char.h
+++ b/intl/lwbrk/th_char.h
@@ -1,9 +1,9 @@
-/* 
+/*
 Copyright (c) 1999 Samphan Raruenrom <samphan@thai.com>
 Permission to use, copy, modify, distribute and sell this software
 and its documentation for any purpose is hereby granted without fee,
 provided that the above copyright notice appear in all copies and
 that both that copyright notice and this permission notice appear
 in supporting documentation.  Samphan Raruenrom makes no
 representations about the suitability of this software for any
 purpose.  It is provided "as is" without express or implied warranty.
@@ -46,9 +46,9 @@ TH_MAIHANAKAT,TH_SARA_AA,TH_SARA_AM,TH_S
 TH_SARA_UEE,TH_SARA_U,TH_SARA_UU,TH_PHINTHU,TH_REM_CHERNG_,TH_TAC_WBRK_,
 TH_UNDEF_DD,TH_UNDEF_DE,TH_BAHT,TH_SARA_E,TH_SARA_AE,TH_SARA_O,TH_MAIMUAN,
 TH_MAIMALAI,TH_LAKKHANGYAO,TH_MAIYAMOK,TH_MAITAIKHU,TH_MAIEK,TH_MAITHO,
 TH_MAITRI,TH_MAICHATTAWA,TH_THANTHAKHAT,TH_NIKHAHIT,TH_YAMAKKAN,TH_FONGMAN,
 TH_THAIZERO,TH_THAIONE,TH_THAITWO,TH_THAITHREE,TH_THAIFOUR,TH_THAIFIVE,
 TH_THAISIX,TH_THAISEVEN,TH_THAIEIGHT,TH_THAININE,TH_ANGKHANKHU,TH_KHOMUT,
 TH_UNDEF_FC,TH_UNDEF_FD,TH_UNDEF_FE,TH_THAIEND
 };
-#endif 
+#endif
--- a/intl/strres/nsStringBundleTextOverride.cpp
+++ b/intl/strres/nsStringBundleTextOverride.cpp
@@ -38,17 +38,17 @@ NS_IMPL_ISUPPORTS(URLPropertyElement, ns
 NS_IMETHODIMP
 URLPropertyElement::GetKey(nsACString& aKey)
 {
     nsresult rv =  mRealElement->GetKey(aKey);
     if (NS_FAILED(rv)) return rv;
 
     // chop off the url
     aKey.Cut(0, mURLLength);
-    
+
     return NS_OK;
 }
 
 // values are unaffected
 NS_IMETHODIMP
 URLPropertyElement::GetValue(nsAString& aValue)
 {
     return mRealElement->GetValue(aValue);
@@ -139,17 +139,17 @@ nsStringBundleTextOverride::Init()
 
     NS_WARNING("Using custom-strings.txt to override string bundles.");
     // read in the custom bundle. Keys are in the form
     // chrome://package/locale/foo.properties:keyname
 
     nsAutoCString customStringsURLSpec;
     rv = NS_GetURLSpecFromFile(customStringsFile, customStringsURLSpec);
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIURI> uri;
     rv = NS_NewURI(getter_AddRefs(uri), customStringsURLSpec);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsCOMPtr<nsIChannel> channel;
     rv = NS_NewChannel(getter_AddRefs(channel),
                        uri,
                        nsContentUtils::GetSystemPrincipal(),
@@ -167,17 +167,17 @@ nsStringBundleTextOverride::Init()
 
     rv = mValues->Load(in);
 
     // turn this on to see the contents of custom-strings.txt
 #ifdef DEBUG_alecf
     nsCOMPtr<nsISimpleEnumerator> enumerator;
     mValues->Enumerate(getter_AddRefs(enumerator));
     NS_ASSERTION(enumerator, "no enumerator!\n");
-    
+
     printf("custom-strings.txt contains:\n");
     printf("----------------------------\n");
 
     bool hasMore;
     enumerator->HasMoreElements(&hasMore);
     do {
         nsCOMPtr<nsISupports> sup;
         enumerator->GetNext(getter_AddRefs(sup));
@@ -189,17 +189,17 @@ nsStringBundleTextOverride::Init()
         prop->GetKey(key);
         prop->GetValue(value);
 
         printf("%s = '%s'\n", key.get(), NS_ConvertUTF16toUTF8(value).get());
 
         enumerator->HasMoreElements(&hasMore);
     } while (hasMore);
 #endif
-    
+
     return rv;
 }
 
 NS_IMETHODIMP
 nsStringBundleTextOverride::GetStringFromName(const nsACString& aURL,
                                               const nsACString& key,
                                               nsAString& aResult)
 {
@@ -220,19 +220,19 @@ nsStringBundleTextOverride::EnumerateKey
     nsCOMPtr<nsISimpleEnumerator> enumerator;
     mValues->Enumerate(getter_AddRefs(enumerator));
 
     // make the enumerator wrapper and pass it off
     nsPropertyEnumeratorByURL* propEnum =
         new nsPropertyEnumeratorByURL(aURL, enumerator);
 
     if (!propEnum) return NS_ERROR_OUT_OF_MEMORY;
-    
+
     NS_ADDREF(*aResult = propEnum);
-    
+
     return NS_OK;
 }
 
 
 //
 // nsPropertyEnumeratorByURL implementation
 //
 
@@ -245,17 +245,17 @@ nsPropertyEnumeratorByURL::GetNext(nsISu
     if (!mCurrent) return NS_ERROR_UNEXPECTED;
 
     // wrap mCurrent instead of returning it
     *aResult = new URLPropertyElement(mCurrent, mURL.Length());
     NS_ADDREF(*aResult);
 
     // release it so we don't return it twice
     mCurrent = nullptr;
-    
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsPropertyEnumeratorByURL::HasMoreElements(bool * aResult)
 {
     bool hasMore;
     mOuter->HasMoreElements(&hasMore);
@@ -264,23 +264,23 @@ nsPropertyEnumeratorByURL::HasMoreElemen
         nsCOMPtr<nsISupports> supports;
         mOuter->GetNext(getter_AddRefs(supports));
 
         mCurrent = do_QueryInterface(supports);
 
         if (mCurrent) {
             nsAutoCString curKey;
             mCurrent->GetKey(curKey);
-        
+
             if (StringBeginsWith(curKey, mURL))
                 break;
         }
-        
+
         mOuter->HasMoreElements(&hasMore);
     }
 
     if (!hasMore)
         mCurrent = nullptr;
-    
+
     *aResult = mCurrent ? true : false;
-    
+
     return NS_OK;
 }
--- a/intl/uconv/nsTextToSubURI.cpp
+++ b/intl/uconv/nsTextToSubURI.cpp
@@ -126,23 +126,23 @@ nsTextToSubURI::convertURItoUnicode(cons
   auto encoding = Encoding::ForLabelNoReplacement(aCharset);
   if (!encoding) {
     aOut.Truncate();
     return NS_ERROR_UCONV_NOCONV;
   }
   return encoding->DecodeWithoutBOMHandlingAndWithoutReplacement(aURI, aOut);
 }
 
-NS_IMETHODIMP  nsTextToSubURI::UnEscapeURIForUI(const nsACString & aCharset, 
-                                                const nsACString &aURIFragment, 
+NS_IMETHODIMP  nsTextToSubURI::UnEscapeURIForUI(const nsACString & aCharset,
+                                                const nsACString &aURIFragment,
                                                 nsAString &_retval)
 {
   nsAutoCString unescapedSpec;
   // skip control octets (0x00 - 0x1f and 0x7f) when unescaping
-  NS_UnescapeURL(PromiseFlatCString(aURIFragment), 
+  NS_UnescapeURL(PromiseFlatCString(aURIFragment),
                  esc_SkipControl | esc_AlwaysCopy, unescapedSpec);
 
   // in case of failure, return escaped URI
   // Test for != NS_OK rather than NS_FAILED, because incomplete multi-byte
   // sequences are also considered failure in this context
   if (convertURItoUnicode(
                 PromiseFlatCString(aCharset), unescapedSpec, _retval)
       != NS_OK) {
@@ -184,17 +184,17 @@ nsTextToSubURI::UnEscapeNonAsciiURI(cons
                                     nsAString& _retval)
 {
   nsAutoCString unescapedSpec;
   NS_UnescapeURL(PromiseFlatCString(aURIFragment),
                  esc_AlwaysCopy | esc_OnlyNonASCII, unescapedSpec);
   // leave the URI as it is if it's not UTF-8 and aCharset is not a ASCII
   // superset since converting "http:" with such an encoding is always a bad
   // idea.
-  if (!IsUTF8(unescapedSpec) && 
+  if (!IsUTF8(unescapedSpec) &&
       (aCharset.LowerCaseEqualsLiteral("utf-16") ||
        aCharset.LowerCaseEqualsLiteral("utf-16be") ||
        aCharset.LowerCaseEqualsLiteral("utf-16le") ||
        aCharset.LowerCaseEqualsLiteral("utf-7") ||
        aCharset.LowerCaseEqualsLiteral("x-imap4-modified-utf7"))){
     CopyASCIItoUTF16(aURIFragment, _retval);
     return NS_OK;
   }
--- a/intl/uconv/nsUConvCID.h
+++ b/intl/uconv/nsUConvCID.h
@@ -1,18 +1,18 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* vim:expandtab:shiftwidth=2:tabstop=2:
  **/
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-// I am taking the first step in the hope that  this file will  become 'the' 
-// repository of #defines for CID's and CONTRACTID's of implementations of 
-// all interfaces in nsUConvModule and be included by any file that wants 
-// to refers to one or more of implementations by CID/CONTRACTID. 
-// see bug 162765 comment #33. 
-  
+// I am taking the first step in the hope that  this file will  become 'the'
+// repository of #defines for CID's and CONTRACTID's of implementations of
+// all interfaces in nsUConvModule and be included by any file that wants
+// to refers to one or more of implementations by CID/CONTRACTID.
+// see bug 162765 comment #33.
+
 // {2b026890-5a2e-4981-ada2-a600358947b4}
 #define NS_UTF8CONVERTERSERVICE_CID { 0x2b026890, 0x5a2e, 0x4981, \
                             { 0xad, 0xa2, 0xa6, 0x00, 0x35, 0x89, 0x47, 0xb4 } }
 #define NS_UTF8CONVERTERSERVICE_CONTRACTID "@mozilla.org/intl/utf8converterservice;1"
 
--- a/intl/unicharutil/normalization_data.h
+++ b/intl/unicharutil/normalization_data.h
@@ -1,48 +1,48 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 
-/* This file is modified from JPNIC's mDNKit, it is under both MPL and 
+/* This file is modified from JPNIC's mDNKit, it is under both MPL and
  * JPNIC's license.
  */
 
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * Copyright (c) 2000,2002 Japan Network Information Center.
  * All rights reserved.
- *  
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
- * 
+ *
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@@ -64,5184 +64,5184 @@
  * Canonical Class
  */
 
 #define CANON_CLASS_BITS_0	9
 #define CANON_CLASS_BITS_1	7
 #define CANON_CLASS_BITS_2	5
 
 static const char16_t canon_class_imap[] = {
-	  272,   400,   528,   656,   784,   784,   784,   784, 
-	  784,   784,   912,   784,   784,   784,   784,  1040, 
-	 1168,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,  1296,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    1,     2,     3,     4,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     5,     0,     0,     0, 
-	    0,     0,     0,     0,     6,     7,     8,     0, 
-	    9,     0,    10,    11,     0,     0,    12,    13, 
-	   14,    15,    16,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    17,    18,     0,     0,    17,    19,     0, 
-	    0,    17,    19,     0,     0,    17,    19,     0, 
-	    0,    17,    19,     0,     0,     0,    19,     0, 
-	    0,     0,    20,     0,     0,    17,    19,     0, 
-	    0,     0,    19,     0,     0,     0,    21,     0, 
-	    0,    22,    23,     0,     0,    24,    25,     0, 
-	   26,    27,     0,    28,    29,     0,    30,     0, 
-	    0,    31,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,    32,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   33,    33,     0,     0,     0,     0,    34,     0, 
-	    0,     0,     0,     0,     0,    35,     0,     0, 
-	    0,    36,     0,     0,     0,     0,     0,     0, 
-	   37,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,    38,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,    39,    40, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    41,     0,     0,    42,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   43,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   44,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    45,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   46,    47,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    48,    49,    50,     0,     0, 
-	    0,     0,    51,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
+	  272,   400,   528,   656,   784,   784,   784,   784,
+	  784,   784,   912,   784,   784,   784,   784,  1040,
+	 1168,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,  1296,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    1,     2,     3,     4,     0,     0,     0,     0,
+	    0,     0,     0,     0,     5,     0,     0,     0,
+	    0,     0,     0,     0,     6,     7,     8,     0,
+	    9,     0,    10,    11,     0,     0,    12,    13,
+	   14,    15,    16,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    17,    18,     0,     0,    17,    19,     0,
+	    0,    17,    19,     0,     0,    17,    19,     0,
+	    0,    17,    19,     0,     0,     0,    19,     0,
+	    0,     0,    20,     0,     0,    17,    19,     0,
+	    0,     0,    19,     0,     0,     0,    21,     0,
+	    0,    22,    23,     0,     0,    24,    25,     0,
+	   26,    27,     0,    28,    29,     0,    30,     0,
+	    0,    31,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,    32,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   33,    33,     0,     0,     0,     0,    34,     0,
+	    0,     0,     0,     0,     0,    35,     0,     0,
+	    0,    36,     0,     0,     0,     0,     0,     0,
+	   37,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,    38,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,    39,    40,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    41,     0,     0,    42,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   43,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   44,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    45,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   46,    47,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    48,    49,    50,     0,     0,
+	    0,     0,    51,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
 };
 
 static const struct {
 	unsigned char tbl[32];
 } canon_class_table[] = {
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	 230,  230,  230,  230,  230,  230,  230,  230,  230,  230,  230, 
-	 230,  230,  230,  230,  230,  230,  230,  230,  230,  230,  232, 
-	 220,  220,  220,  220,  232,  216,  220,  220,  220,  220, 
-	}},
-	{{
-	 220,  202,  202,  220,  220,  220,  220,  202,  202,  220,  220, 
-	 220,  220,  220,  220,  220,  220,  220,  220,  220,    1,    1, 
-	   1,    1,    1,  220,  220,  220,  220,  230,  230,  230, 
-	}},
-	{{
-	 230,  230,  230,  230,  230,  240,  230,  220,  220,  220,  230, 
-	 230,  230,  220,  220,    0,  230,  230,  230,  220,  220,  220, 
-	 220,  230,  232,  220,  220,  230,  233,  234,  234,  233, 
-	}},
-	{{
-	 234,  234,  233,  230,  230,  230,  230,  230,  230,  230,  230, 
-	 230,  230,  230,  230,  230,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,  230,  230,  230,  230,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,  220,  230,  230,  230,  230, 
-	 220,  230,  230,  230,  222,  220,  230,  230,  230,  230, 
-	}},
-	{{
-	 230,  230,  220,  220,  220,  220,  220,  220,  230,  230,  220, 
-	 230,  230,  222,  228,  230,   10,   11,   12,   13,   14,   15, 
-	  16,   17,   18,   19,    0,   20,   21,   22,    0,   23, 
-	}},
-	{{
-	   0,   24,   25,    0,  230,  220,    0,   18,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  230,  230,  230,  230,  230,  230, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	  27,   28,   29,   30,   31,   32,   33,   34,  230,  230,  220, 
-	 220,  230,  230,  230,  230,  230,  220,  230,  230,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,   35,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	 230,  230,  230,  230,  230,  230,  230,    0,    0,  230, 
-	}},
-	{{
-	 230,  230,  230,  220,  230,    0,    0,  230,  230,    0,  220, 
-	 230,  230,  220,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,   36,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  230,  220,  230,  230,  220,  230, 
-	 230,  220,  220,  220,  230,  220,  220,  230,  220,  230, 
-	}},
-	{{
-	 230,  230,  220,  230,  220,  230,  220,  230,  220,  230,  230, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    7,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    9,    0,    0,    0,  230,  220,  230,  230,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    9,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    9,    0,    0,    0,    0,    0,    0,    0,   84, 
-	  91,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    9, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  103,  103,    9,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,  107,  107,  107, 
-	 107,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  118,  118,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,  122,  122,  122, 
-	 122,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  220,  220,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  220, 
-	   0,  220,    0,  216,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,  129,  130,    0,  132,    0, 
-	   0,    0,    0,    0,  130,  130,  130,  130,    0,    0, 
-	}},
-	{{
-	 130,    0,  230,  230,    9,    0,  230,  230,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,  220,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    7,    0,    9,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,  230, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    9,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    9,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,  230,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,  228,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,  222,  230,  220,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,  230,  220,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	 230,  230,  220,  230,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  230,  230,    1,    1,  230,  230, 
-	 230,  230,    1,    1,    1,  230,  230,    0,    0,    0, 
-	}},
-	{{
-	   0,  230,    0,    0,    0,    1,    1,  230,  220,  230,    1, 
-	   1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  218, 
-	 228,  232,  222,  224,  224,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    8,    8,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    9,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,   26,    0, 
-	}},
-	{{
-	 230,  230,  230,  230,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  220,    0,  230,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  230,    1,  220,    0,    0,    0,    0,    9, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,  216,  216,    1,    1,    1,    0, 
-	   0,    0,  226,  216,  216,  216,  216,  216,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  220,  220,  220,  220,  220, 
-	}},
-	{{
-	 220,  220,  220,    0,    0,  230,  230,  230,  230,  230,  220, 
-	 220,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  230, 
-	 230,  230,  230,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	}},
-	{{
-	   0,    0,  230,  230,  230,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	 230,  230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+	 230,  230,  230,  230,  230,  230,  230,  230,  230,  230,  232,
+	 220,  220,  220,  220,  232,  216,  220,  220,  220,  220,
+	}},
+	{{
+	 220,  202,  202,  220,  220,  220,  220,  202,  202,  220,  220,
+	 220,  220,  220,  220,  220,  220,  220,  220,  220,    1,    1,
+	   1,    1,    1,  220,  220,  220,  220,  230,  230,  230,
+	}},
+	{{
+	 230,  230,  230,  230,  230,  240,  230,  220,  220,  220,  230,
+	 230,  230,  220,  220,    0,  230,  230,  230,  220,  220,  220,
+	 220,  230,  232,  220,  220,  230,  233,  234,  234,  233,
+	}},
+	{{
+	 234,  234,  233,  230,  230,  230,  230,  230,  230,  230,  230,
+	 230,  230,  230,  230,  230,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,  230,  230,  230,  230,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,  220,  230,  230,  230,  230,
+	 220,  230,  230,  230,  222,  220,  230,  230,  230,  230,
+	}},
+	{{
+	 230,  230,  220,  220,  220,  220,  220,  220,  230,  230,  220,
+	 230,  230,  222,  228,  230,   10,   11,   12,   13,   14,   15,
+	  16,   17,   18,   19,    0,   20,   21,   22,    0,   23,
+	}},
+	{{
+	   0,   24,   25,    0,  230,  220,    0,   18,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  230,  230,  230,  230,  230,  230,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	  27,   28,   29,   30,   31,   32,   33,   34,  230,  230,  220,
+	 220,  230,  230,  230,  230,  230,  220,  230,  230,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,   35,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	 230,  230,  230,  230,  230,  230,  230,    0,    0,  230,
+	}},
+	{{
+	 230,  230,  230,  220,  230,    0,    0,  230,  230,    0,  220,
+	 230,  230,  220,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,   36,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  230,  220,  230,  230,  220,  230,
+	 230,  220,  220,  220,  230,  220,  220,  230,  220,  230,
+	}},
+	{{
+	 230,  230,  220,  230,  220,  230,  220,  230,  220,  230,  230,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    7,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    9,    0,    0,    0,  230,  220,  230,  230,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    9,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    9,    0,    0,    0,    0,    0,    0,    0,   84,
+	  91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    9,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  103,  103,    9,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,  107,  107,  107,
+	 107,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  118,  118,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,  122,  122,  122,
+	 122,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  220,  220,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  220,
+	   0,  220,    0,  216,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,  129,  130,    0,  132,    0,
+	   0,    0,    0,    0,  130,  130,  130,  130,    0,    0,
+	}},
+	{{
+	 130,    0,  230,  230,    9,    0,  230,  230,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,  220,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    7,    0,    9,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,  230,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    9,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    9,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,  230,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,  228,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,  222,  230,  220,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,  230,  220,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	 230,  230,  220,  230,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  230,  230,    1,    1,  230,  230,
+	 230,  230,    1,    1,    1,  230,  230,    0,    0,    0,
+	}},
+	{{
+	   0,  230,    0,    0,    0,    1,    1,  230,  220,  230,    1,
+	   1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  218,
+	 228,  232,  222,  224,  224,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    8,    8,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    9,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
+	}},
+	{{
+	 230,  230,  230,  230,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  220,    0,  230,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  230,    1,  220,    0,    0,    0,    0,    9,
+	}},
+	{{
+	   0,    0,    0,    0,    0,  216,  216,    1,    1,    1,    0,
+	   0,    0,  226,  216,  216,  216,  216,  216,    0,    0,    0,
+	   0,    0,    0,    0,    0,  220,  220,  220,  220,  220,
+	}},
+	{{
+	 220,  220,  220,    0,    0,  230,  230,  230,  230,  230,  220,
+	 220,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  230,
+	 230,  230,  230,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	}},
+	{{
+	   0,    0,  230,  230,  230,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 };
 
 /*
  * Canonical Composition
  */
 
 #define CANON_COMPOSE_BITS_0	9
 #define CANON_COMPOSE_BITS_1	7
 #define CANON_COMPOSE_BITS_2	5
 
 static const char16_t compose_imap[] = {
-	  272,   400,   528,   656,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	    0,     1,     2,     3,     0,     4,     5,     6, 
-	    7,     0,     8,     9,     0,    10,     0,    11, 
-	    0,    12,     0,     0,    13,     0,     0,     0, 
-	    0,     0,     0,     0,    14,    15,    16,     0, 
-	   17,    18,    19,    20,     0,     0,    21,    22, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    23,    24,     0,     0,     0,    25,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    26,     0,     0,     0,     0,    27,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,    28,     0,    29,     0,    30,     0, 
-	    0,     0,    31,     0,     0,    32,    33,     0, 
-	    0,     0,    34,     0,     0,     0,    35,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    36,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    37,    38,    39,     0,    40,    41,     0, 
-	   42,    43,    44,    45,     0,    46,    47,    48, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,    49,     0,    50,     0, 
-	   51,    52,    53,    54,    55,    56,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,    57,    58,    59,    60,    61,    62, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
+	  272,   400,   528,   656,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	    0,     1,     2,     3,     0,     4,     5,     6,
+	    7,     0,     8,     9,     0,    10,     0,    11,
+	    0,    12,     0,     0,    13,     0,     0,     0,
+	    0,     0,     0,     0,    14,    15,    16,     0,
+	   17,    18,    19,    20,     0,     0,    21,    22,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    23,    24,     0,     0,     0,    25,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    26,     0,     0,     0,     0,    27,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,    28,     0,    29,     0,    30,     0,
+	    0,     0,    31,     0,     0,    32,    33,     0,
+	    0,     0,    34,     0,     0,     0,    35,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    36,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    37,    38,    39,     0,    40,    41,     0,
+	   42,    43,    44,    45,     0,    46,    47,    48,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,    49,     0,    50,     0,
+	   51,    52,    53,    54,    55,    56,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,    57,    58,    59,    60,    61,    62,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
 };
 
 static const struct {
 	uint32_t tbl[32];
 } compose_table[] = {
 	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	   65537,    65538,    65539,        0, 
-	}},
-	{{
-	       0,  1048580,   196628,   327703,   393244,  1114146,    65587, 
-	  458804,   458811,   983106,    65617,   327762,   393303,   196701, 
-	  589920,  1048681,   131193,        0,   524411,   458883,   458890, 
-	 1245329,   131236,   393382,   131244,   589998,   393399,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,  1048765,   196813,   327888,   393429,  1114331,    65772, 
-	  458989,   524532,   917756,   131338,   327948,   393489,   196887, 
-	  590106,  1048867,   131379,        0,   524597,   459069,   524612, 
-	 1245516,   131423,   459105,   131432,   655722,   393588,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,   196986,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,   262525,        0,    65921,    65922,   131459, 
-	   65925,        0,        0,   262534,        0,        0,        0, 
-	       0,    65930,        0,        0,        0,        0,   262539, 
-	  197007,    65938,        0,    65939,        0,        0,        0, 
-	  262548,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,   262552,        0,    65948,    65949,   131486, 
-	   65952,        0,        0,   262561,        0,        0,        0, 
-	       0,    65957,        0,        0,        0,        0,   262566, 
-	  197034,    65965,        0,    65966,        0,        0,        0, 
-	  262575,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,   262579,   262583,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,   131515,   131517,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,   131519,   131521, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,    65987,    65988, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	   65989,    65990,        0,        0,        0,        0,        0, 
-	       0,    65991,    65992,    65993,    65994,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    65995, 
-	}},
-	{{
-	  328140,   328145,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,   328150,   328155,        0,        0,        0,        0, 
-	       0,        0,    66016,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    66017,    66018,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66019, 
-	   66020,    66021,    66022,        0,        0,        0,        0, 
-	   66023,    66024,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,    66025,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,   459242,        0,        0,        0, 
-	  262641,        0,   328181,        0,   459258,        0,        0, 
-	       0,        0,        0,   262657, 
-	}},
-	{{
-	       0,    66053,        0,        0,        0,   393734,        0, 
-	       0,        0,   328204,        0,        0,    66065,        0, 
-	   66066,        0,        0,   524819,        0,        0,        0, 
-	  262683,        0,   393759,        0,   524837,        0,        0, 
-	       0,        0,        0,   262701, 
-	}},
-	{{
-	       0,   131633,        0,        0,        0,   524851,        0, 
-	       0,        0,   393787,   197185,   197188,        0,        0, 
-	   66119,        0,        0,        0,   131656,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66122, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,   131659,        0,        0,    66125,        0, 
-	  197198,   131665,    66131,   262740,        0,    66136,        0, 
-	       0,        0,    66137,        0, 
-	}},
-	{{
-	       0,        0,        0,   262746,        0,        0,        0, 
-	   66142,        0,        0,        0,    66143,        0,    66144, 
-	       0,        0,   131681,        0,        0,    66147,        0, 
-	  197220,   131687,    66153,   262762,        0,    66158,        0, 
-	       0,        0,    66159,        0, 
-	}},
-	{{
-	       0,        0,        0,   262768,        0,        0,        0, 
-	   66164,        0,        0,        0,    66165,        0,    66166, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66167,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,    66168, 
-	   66169,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    66170,    66171,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66172,    66173,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	  197246,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66177,        0,    66178,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,    66179,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,    66180,        0,        0, 
-	   66181,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66182,        0,        0,        0,        0,        0, 
-	       0,        0,    66183,        0,        0,    66184,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	  131721,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	  197259,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,    66190,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,   131727, 
-	   66193,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66194, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    66195, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,   197268, 
-	       0,        0,        0,    66199,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,   131736, 
-	   66202,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,   197275,        0,        0, 
-	   66206,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,    66207,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66208,    66209,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,    66210,    66211, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,    66212,    66213,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	  131750,   131752,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    66218,    66219,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,    66220,    66221, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	  262830,   262834,    66230,    66231,    66232,    66233,    66234, 
-	   66235,   262844,   262848,    66244,    66245,    66246,    66247, 
-	   66248,    66249,   131786,   131788,        0,        0,        0, 
-	       0,        0,        0,   131790,   131792,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	  262866,   262870,    66266,    66267,    66268,    66269,    66270, 
-	   66271,   262880,   262884,    66280,    66281,    66282,    66283, 
-	   66284,    66285,   197358,   197361,        0,        0,        0, 
-	       0,        0,        0,   197364,   197367,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	  131834,   131836,        0,        0,        0,        0,        0, 
-	       0,   131838,   131840,        0,        0,        0,        0, 
-	       0,        0,   197378,   197381,        0,        0,        0, 
-	       0,        0,        0,        0,   197384,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	  262923,   262927,    66323,    66324,    66325,    66326,    66327, 
-	   66328,   262937,   262941,    66337,    66338,    66339,    66340, 
-	   66341,    66342,    66343,        0,        0,        0,    66344, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	   66345,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66346,        0,        0,        0,        0,        0, 
-	       0,        0,        0,   197419, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66350, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66351,        0,        0,        0,        0,        0, 
-	       0,        0,   197424,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,    66355,        0,    66356,        0,    66357, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,    66358,        0,    66359,        0,    66360, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,    66361,        0,        0,        0, 
-	       0,    66362,        0,        0,    66363,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,    66364,        0,    66365,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	   66366,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,    66367,        0,    66368,        0, 
-	       0,    66369,        0,        0,        0,        0,    66370, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,    66371,        0,        0,    66372,    66373,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,    66374,    66375,        0, 
-	       0,    66376,    66377,        0,        0,    66378,    66379, 
-	   66380,    66381,        0,        0, 
-	}},
-	{{
-	       0,        0,    66382,    66383,        0,        0,    66384, 
-	   66385,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,    66386,    66387,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,    66388,        0,        0,        0,        0, 
-	       0,    66389,    66390,        0,    66391,        0,        0, 
-	       0,        0,        0,        0,    66392,    66393,    66394, 
-	   66395,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66396, 
-	       0,        0,        0,        0,    66397,        0,    66398, 
-	       0,    66399,        0,    66400,        0,    66401,        0, 
-	   66402,        0,    66403,        0,    66404,        0,    66405, 
-	       0,    66406,        0,    66407, 
-	}},
-	{{
-	       0,    66408,        0,        0,    66409,        0,    66410, 
-	       0,    66411,        0,        0,        0,        0,        0, 
-	       0,   131948,        0,        0,   131950,        0,        0, 
-	  131952,        0,        0,   131954,        0,        0,   131956, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66422,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,    66423, 
-	       0,        0,        0,        0,    66424,        0,    66425, 
-	       0,    66426,        0,    66427,        0,    66428,        0, 
-	   66429,        0,    66430,        0,    66431,        0,    66432, 
-	       0,    66433,        0,    66434, 
-	}},
-	{{
-	       0,    66435,        0,        0,    66436,        0,    66437, 
-	       0,    66438,        0,        0,        0,        0,        0, 
-	       0,   131975,        0,        0,   131977,        0,        0, 
-	  131979,        0,        0,   131981,        0,        0,   131983, 
-	       0,        0,        0,        0, 
-	}},
-	{{
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66449,    66450,    66451,    66452,        0,        0, 
-	       0,        0,        0,        0,        0,        0,        0, 
-	       0,    66453,        0,        0, 
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	   65537,    65538,    65539,        0,
+	}},
+	{{
+	       0,  1048580,   196628,   327703,   393244,  1114146,    65587,
+	  458804,   458811,   983106,    65617,   327762,   393303,   196701,
+	  589920,  1048681,   131193,        0,   524411,   458883,   458890,
+	 1245329,   131236,   393382,   131244,   589998,   393399,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,  1048765,   196813,   327888,   393429,  1114331,    65772,
+	  458989,   524532,   917756,   131338,   327948,   393489,   196887,
+	  590106,  1048867,   131379,        0,   524597,   459069,   524612,
+	 1245516,   131423,   459105,   131432,   655722,   393588,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,   196986,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,   262525,        0,    65921,    65922,   131459,
+	   65925,        0,        0,   262534,        0,        0,        0,
+	       0,    65930,        0,        0,        0,        0,   262539,
+	  197007,    65938,        0,    65939,        0,        0,        0,
+	  262548,        0,        0,        0,
+	}},
+	{{
+	       0,        0,   262552,        0,    65948,    65949,   131486,
+	   65952,        0,        0,   262561,        0,        0,        0,
+	       0,    65957,        0,        0,        0,        0,   262566,
+	  197034,    65965,        0,    65966,        0,        0,        0,
+	  262575,        0,        0,        0,
+	}},
+	{{
+	       0,        0,   262579,   262583,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,   131515,   131517,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,   131519,   131521,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,    65987,    65988,
+	       0,        0,        0,        0,
+	}},
+	{{
+	   65989,    65990,        0,        0,        0,        0,        0,
+	       0,    65991,    65992,    65993,    65994,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    65995,
+	}},
+	{{
+	  328140,   328145,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,   328150,   328155,        0,        0,        0,        0,
+	       0,        0,    66016,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    66017,    66018,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66019,
+	   66020,    66021,    66022,        0,        0,        0,        0,
+	   66023,    66024,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,    66025,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,   459242,        0,        0,        0,
+	  262641,        0,   328181,        0,   459258,        0,        0,
+	       0,        0,        0,   262657,
+	}},
+	{{
+	       0,    66053,        0,        0,        0,   393734,        0,
+	       0,        0,   328204,        0,        0,    66065,        0,
+	   66066,        0,        0,   524819,        0,        0,        0,
+	  262683,        0,   393759,        0,   524837,        0,        0,
+	       0,        0,        0,   262701,
+	}},
+	{{
+	       0,   131633,        0,        0,        0,   524851,        0,
+	       0,        0,   393787,   197185,   197188,        0,        0,
+	   66119,        0,        0,        0,   131656,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66122,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,   131659,        0,        0,    66125,        0,
+	  197198,   131665,    66131,   262740,        0,    66136,        0,
+	       0,        0,    66137,        0,
+	}},
+	{{
+	       0,        0,        0,   262746,        0,        0,        0,
+	   66142,        0,        0,        0,    66143,        0,    66144,
+	       0,        0,   131681,        0,        0,    66147,        0,
+	  197220,   131687,    66153,   262762,        0,    66158,        0,
+	       0,        0,    66159,        0,
+	}},
+	{{
+	       0,        0,        0,   262768,        0,        0,        0,
+	   66164,        0,        0,        0,    66165,        0,    66166,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66167,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,    66168,
+	   66169,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    66170,    66171,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66172,    66173,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	  197246,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66177,        0,    66178,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,    66179,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,    66180,        0,        0,
+	   66181,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66182,        0,        0,        0,        0,        0,
+	       0,        0,    66183,        0,        0,    66184,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	  131721,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	  197259,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,    66190,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,   131727,
+	   66193,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66194,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    66195,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,   197268,
+	       0,        0,        0,    66199,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,   131736,
+	   66202,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,   197275,        0,        0,
+	   66206,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,    66207,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66208,    66209,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,    66210,    66211,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,    66212,    66213,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	  131750,   131752,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    66218,    66219,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,    66220,    66221,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	  262830,   262834,    66230,    66231,    66232,    66233,    66234,
+	   66235,   262844,   262848,    66244,    66245,    66246,    66247,
+	   66248,    66249,   131786,   131788,        0,        0,        0,
+	       0,        0,        0,   131790,   131792,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	  262866,   262870,    66266,    66267,    66268,    66269,    66270,
+	   66271,   262880,   262884,    66280,    66281,    66282,    66283,
+	   66284,    66285,   197358,   197361,        0,        0,        0,
+	       0,        0,        0,   197364,   197367,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	  131834,   131836,        0,        0,        0,        0,        0,
+	       0,   131838,   131840,        0,        0,        0,        0,
+	       0,        0,   197378,   197381,        0,        0,        0,
+	       0,        0,        0,        0,   197384,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	  262923,   262927,    66323,    66324,    66325,    66326,    66327,
+	   66328,   262937,   262941,    66337,    66338,    66339,    66340,
+	   66341,    66342,    66343,        0,        0,        0,    66344,
+	       0,        0,        0,        0,        0,        0,        0,
+	   66345,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66346,        0,        0,        0,        0,        0,
+	       0,        0,        0,   197419,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66350,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66351,        0,        0,        0,        0,        0,
+	       0,        0,   197424,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,    66355,        0,    66356,        0,    66357,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,    66358,        0,    66359,        0,    66360,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,    66361,        0,        0,        0,
+	       0,    66362,        0,        0,    66363,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,    66364,        0,    66365,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	   66366,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,    66367,        0,    66368,        0,
+	       0,    66369,        0,        0,        0,        0,    66370,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,    66371,        0,        0,    66372,    66373,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,    66374,    66375,        0,
+	       0,    66376,    66377,        0,        0,    66378,    66379,
+	   66380,    66381,        0,        0,
+	}},
+	{{
+	       0,        0,    66382,    66383,        0,        0,    66384,
+	   66385,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,    66386,    66387,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,    66388,        0,        0,        0,        0,
+	       0,    66389,    66390,        0,    66391,        0,        0,
+	       0,        0,        0,        0,    66392,    66393,    66394,
+	   66395,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66396,
+	       0,        0,        0,        0,    66397,        0,    66398,
+	       0,    66399,        0,    66400,        0,    66401,        0,
+	   66402,        0,    66403,        0,    66404,        0,    66405,
+	       0,    66406,        0,    66407,
+	}},
+	{{
+	       0,    66408,        0,        0,    66409,        0,    66410,
+	       0,    66411,        0,        0,        0,        0,        0,
+	       0,   131948,        0,        0,   131950,        0,        0,
+	  131952,        0,        0,   131954,        0,        0,   131956,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66422,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,    66423,
+	       0,        0,        0,        0,    66424,        0,    66425,
+	       0,    66426,        0,    66427,        0,    66428,        0,
+	   66429,        0,    66430,        0,    66431,        0,    66432,
+	       0,    66433,        0,    66434,
+	}},
+	{{
+	       0,    66435,        0,        0,    66436,        0,    66437,
+	       0,    66438,        0,        0,        0,        0,        0,
+	       0,   131975,        0,        0,   131977,        0,        0,
+	  131979,        0,        0,   131981,        0,        0,   131983,
+	       0,        0,        0,        0,
+	}},
+	{{
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66449,    66450,    66451,    66452,        0,        0,
+	       0,        0,        0,        0,        0,        0,        0,
+	       0,    66453,        0,        0,
 	}},
 };
 
 static const struct composition compose_seq[] = {
-	{ 0x00000000, 0x00000000 }, { 0x00000338, 0x0000226e }, 
-	{ 0x00000338, 0x00002260 }, { 0x00000338, 0x0000226f }, 
-	{ 0x00000300, 0x000000c0 }, { 0x00000301, 0x000000c1 }, 
-	{ 0x00000302, 0x000000c2 }, { 0x00000303, 0x000000c3 }, 
-	{ 0x00000304, 0x00000100 }, { 0x00000306, 0x00000102 }, 
-	{ 0x00000307, 0x00000226 }, { 0x00000308, 0x000000c4 }, 
-	{ 0x00000309, 0x00001ea2 }, { 0x0000030a, 0x000000c5 }, 
-	{ 0x0000030c, 0x000001cd }, { 0x0000030f, 0x00000200 }, 
-	{ 0x00000311, 0x00000202 }, { 0x00000323, 0x00001ea0 }, 
-	{ 0x00000325, 0x00001e00 }, { 0x00000328, 0x00000104 }, 
-	{ 0x00000307, 0x00001e02 }, { 0x00000323, 0x00001e04 }, 
-	{ 0x00000331, 0x00001e06 }, { 0x00000301, 0x00000106 }, 
-	{ 0x00000302, 0x00000108 }, { 0x00000307, 0x0000010a }, 
-	{ 0x0000030c, 0x0000010c }, { 0x00000327, 0x000000c7 }, 
-	{ 0x00000307, 0x00001e0a }, { 0x0000030c, 0x0000010e }, 
-	{ 0x00000323, 0x00001e0c }, { 0x00000327, 0x00001e10 }, 
-	{ 0x0000032d, 0x00001e12 }, { 0x00000331, 0x00001e0e }, 
-	{ 0x00000300, 0x000000c8 }, { 0x00000301, 0x000000c9 }, 
-	{ 0x00000302, 0x000000ca }, { 0x00000303, 0x00001ebc }, 
-	{ 0x00000304, 0x00000112 }, { 0x00000306, 0x00000114 }, 
-	{ 0x00000307, 0x00000116 }, { 0x00000308, 0x000000cb }, 
-	{ 0x00000309, 0x00001eba }, { 0x0000030c, 0x0000011a }, 
-	{ 0x0000030f, 0x00000204 }, { 0x00000311, 0x00000206 }, 
-	{ 0x00000323, 0x00001eb8 }, { 0x00000327, 0x00000228 }, 
-	{ 0x00000328, 0x00000118 }, { 0x0000032d, 0x00001e18 }, 
-	{ 0x00000330, 0x00001e1a }, { 0x00000307, 0x00001e1e }, 
-	{ 0x00000301, 0x000001f4 }, { 0x00000302, 0x0000011c }, 
-	{ 0x00000304, 0x00001e20 }, { 0x00000306, 0x0000011e }, 
-	{ 0x00000307, 0x00000120 }, { 0x0000030c, 0x000001e6 }, 
-	{ 0x00000327, 0x00000122 }, { 0x00000302, 0x00000124 }, 
-	{ 0x00000307, 0x00001e22 }, { 0x00000308, 0x00001e26 }, 
-	{ 0x0000030c, 0x0000021e }, { 0x00000323, 0x00001e24 }, 
-	{ 0x00000327, 0x00001e28 }, { 0x0000032e, 0x00001e2a }, 
-	{ 0x00000300, 0x000000cc }, { 0x00000301, 0x000000cd }, 
-	{ 0x00000302, 0x000000ce }, { 0x00000303, 0x00000128 }, 
-	{ 0x00000304, 0x0000012a }, { 0x00000306, 0x0000012c }, 
-	{ 0x00000307, 0x00000130 }, { 0x00000308, 0x000000cf }, 
-	{ 0x00000309, 0x00001ec8 }, { 0x0000030c, 0x000001cf }, 
-	{ 0x0000030f, 0x00000208 }, { 0x00000311, 0x0000020a }, 
-	{ 0x00000323, 0x00001eca }, { 0x00000328, 0x0000012e }, 
-	{ 0x00000330, 0x00001e2c }, { 0x00000302, 0x00000134 }, 
-	{ 0x00000301, 0x00001e30 }, { 0x0000030c, 0x000001e8 }, 
-	{ 0x00000323, 0x00001e32 }, { 0x00000327, 0x00000136 }, 
-	{ 0x00000331, 0x00001e34 }, { 0x00000301, 0x00000139 }, 
-	{ 0x0000030c, 0x0000013d }, { 0x00000323, 0x00001e36 }, 
-	{ 0x00000327, 0x0000013b }, { 0x0000032d, 0x00001e3c }, 
-	{ 0x00000331, 0x00001e3a }, { 0x00000301, 0x00001e3e }, 
-	{ 0x00000307, 0x00001e40 }, { 0x00000323, 0x00001e42 }, 
-	{ 0x00000300, 0x000001f8 }, { 0x00000301, 0x00000143 }, 
-	{ 0x00000303, 0x000000d1 }, { 0x00000307, 0x00001e44 }, 
-	{ 0x0000030c, 0x00000147 }, { 0x00000323, 0x00001e46 }, 
-	{ 0x00000327, 0x00000145 }, { 0x0000032d, 0x00001e4a }, 
-	{ 0x00000331, 0x00001e48 }, { 0x00000300, 0x000000d2 }, 
-	{ 0x00000301, 0x000000d3 }, { 0x00000302, 0x000000d4 }, 
-	{ 0x00000303, 0x000000d5 }, { 0x00000304, 0x0000014c }, 
-	{ 0x00000306, 0x0000014e }, { 0x00000307, 0x0000022e }, 
-	{ 0x00000308, 0x000000d6 }, { 0x00000309, 0x00001ece }, 
-	{ 0x0000030b, 0x00000150 }, { 0x0000030c, 0x000001d1 }, 
-	{ 0x0000030f, 0x0000020c }, { 0x00000311, 0x0000020e }, 
-	{ 0x0000031b, 0x000001a0 }, { 0x00000323, 0x00001ecc }, 
-	{ 0x00000328, 0x000001ea }, { 0x00000301, 0x00001e54 }, 
-	{ 0x00000307, 0x00001e56 }, { 0x00000301, 0x00000154 }, 
-	{ 0x00000307, 0x00001e58 }, { 0x0000030c, 0x00000158 }, 
-	{ 0x0000030f, 0x00000210 }, { 0x00000311, 0x00000212 }, 
-	{ 0x00000323, 0x00001e5a }, { 0x00000327, 0x00000156 }, 
-	{ 0x00000331, 0x00001e5e }, { 0x00000301, 0x0000015a }, 
-	{ 0x00000302, 0x0000015c }, { 0x00000307, 0x00001e60 }, 
-	{ 0x0000030c, 0x00000160 }, { 0x00000323, 0x00001e62 }, 
-	{ 0x00000326, 0x00000218 }, { 0x00000327, 0x0000015e }, 
-	{ 0x00000307, 0x00001e6a }, { 0x0000030c, 0x00000164 }, 
-	{ 0x00000323, 0x00001e6c }, { 0x00000326, 0x0000021a }, 
-	{ 0x00000327, 0x00000162 }, { 0x0000032d, 0x00001e70 }, 
-	{ 0x00000331, 0x00001e6e }, { 0x00000300, 0x000000d9 }, 
-	{ 0x00000301, 0x000000da }, { 0x00000302, 0x000000db }, 
-	{ 0x00000303, 0x00000168 }, { 0x00000304, 0x0000016a }, 
-	{ 0x00000306, 0x0000016c }, { 0x00000308, 0x000000dc }, 
-	{ 0x00000309, 0x00001ee6 }, { 0x0000030a, 0x0000016e }, 
-	{ 0x0000030b, 0x00000170 }, { 0x0000030c, 0x000001d3 }, 
-	{ 0x0000030f, 0x00000214 }, { 0x00000311, 0x00000216 }, 
-	{ 0x0000031b, 0x000001af }, { 0x00000323, 0x00001ee4 }, 
-	{ 0x00000324, 0x00001e72 }, { 0x00000328, 0x00000172 }, 
-	{ 0x0000032d, 0x00001e76 }, { 0x00000330, 0x00001e74 }, 
-	{ 0x00000303, 0x00001e7c }, { 0x00000323, 0x00001e7e }, 
-	{ 0x00000300, 0x00001e80 }, { 0x00000301, 0x00001e82 }, 
-	{ 0x00000302, 0x00000174 }, { 0x00000307, 0x00001e86 }, 
-	{ 0x00000308, 0x00001e84 }, { 0x00000323, 0x00001e88 }, 
-	{ 0x00000307, 0x00001e8a }, { 0x00000308, 0x00001e8c }, 
-	{ 0x00000300, 0x00001ef2 }, { 0x00000301, 0x000000dd }, 
-	{ 0x00000302, 0x00000176 }, { 0x00000303, 0x00001ef8 }, 
-	{ 0x00000304, 0x00000232 }, { 0x00000307, 0x00001e8e }, 
-	{ 0x00000308, 0x00000178 }, { 0x00000309, 0x00001ef6 }, 
-	{ 0x00000323, 0x00001ef4 }, { 0x00000301, 0x00000179 }, 
-	{ 0x00000302, 0x00001e90 }, { 0x00000307, 0x0000017b }, 
-	{ 0x0000030c, 0x0000017d }, { 0x00000323, 0x00001e92 }, 
-	{ 0x00000331, 0x00001e94 }, { 0x00000300, 0x000000e0 }, 
-	{ 0x00000301, 0x000000e1 }, { 0x00000302, 0x000000e2 }, 
-	{ 0x00000303, 0x000000e3 }, { 0x00000304, 0x00000101 }, 
-	{ 0x00000306, 0x00000103 }, { 0x00000307, 0x00000227 }, 
-	{ 0x00000308, 0x000000e4 }, { 0x00000309, 0x00001ea3 }, 
-	{ 0x0000030a, 0x000000e5 }, { 0x0000030c, 0x000001ce }, 
-	{ 0x0000030f, 0x00000201 }, { 0x00000311, 0x00000203 }, 
-	{ 0x00000323, 0x00001ea1 }, { 0x00000325, 0x00001e01 }, 
-	{ 0x00000328, 0x00000105 }, { 0x00000307, 0x00001e03 }, 
-	{ 0x00000323, 0x00001e05 }, { 0x00000331, 0x00001e07 }, 
-	{ 0x00000301, 0x00000107 }, { 0x00000302, 0x00000109 }, 
-	{ 0x00000307, 0x0000010b }, { 0x0000030c, 0x0000010d }, 
-	{ 0x00000327, 0x000000e7 }, { 0x00000307, 0x00001e0b }, 
-	{ 0x0000030c, 0x0000010f }, { 0x00000323, 0x00001e0d }, 
-	{ 0x00000327, 0x00001e11 }, { 0x0000032d, 0x00001e13 }, 
-	{ 0x00000331, 0x00001e0f }, { 0x00000300, 0x000000e8 }, 
-	{ 0x00000301, 0x000000e9 }, { 0x00000302, 0x000000ea }, 
-	{ 0x00000303, 0x00001ebd }, { 0x00000304, 0x00000113 }, 
-	{ 0x00000306, 0x00000115 }, { 0x00000307, 0x00000117 }, 
-	{ 0x00000308, 0x000000eb }, { 0x00000309, 0x00001ebb }, 
-	{ 0x0000030c, 0x0000011b }, { 0x0000030f, 0x00000205 }, 
-	{ 0x00000311, 0x00000207 }, { 0x00000323, 0x00001eb9 }, 
-	{ 0x00000327, 0x00000229 }, { 0x00000328, 0x00000119 }, 
-	{ 0x0000032d, 0x00001e19 }, { 0x00000330, 0x00001e1b }, 
-	{ 0x00000307, 0x00001e1f }, { 0x00000301, 0x000001f5 }, 
-	{ 0x00000302, 0x0000011d }, { 0x00000304, 0x00001e21 }, 
-	{ 0x00000306, 0x0000011f }, { 0x00000307, 0x00000121 }, 
-	{ 0x0000030c, 0x000001e7 }, { 0x00000327, 0x00000123 }, 
-	{ 0x00000302, 0x00000125 }, { 0x00000307, 0x00001e23 }, 
-	{ 0x00000308, 0x00001e27 }, { 0x0000030c, 0x0000021f }, 
-	{ 0x00000323, 0x00001e25 }, { 0x00000327, 0x00001e29 }, 
-	{ 0x0000032e, 0x00001e2b }, { 0x00000331, 0x00001e96 }, 
-	{ 0x00000300, 0x000000ec }, { 0x00000301, 0x000000ed }, 
-	{ 0x00000302, 0x000000ee }, { 0x00000303, 0x00000129 }, 
-	{ 0x00000304, 0x0000012b }, { 0x00000306, 0x0000012d }, 
-	{ 0x00000308, 0x000000ef }, { 0x00000309, 0x00001ec9 }, 
-	{ 0x0000030c, 0x000001d0 }, { 0x0000030f, 0x00000209 }, 
-	{ 0x00000311, 0x0000020b }, { 0x00000323, 0x00001ecb }, 
-	{ 0x00000328, 0x0000012f }, { 0x00000330, 0x00001e2d }, 
-	{ 0x00000302, 0x00000135 }, { 0x0000030c, 0x000001f0 }, 
-	{ 0x00000301, 0x00001e31 }, { 0x0000030c, 0x000001e9 }, 
-	{ 0x00000323, 0x00001e33 }, { 0x00000327, 0x00000137 }, 
-	{ 0x00000331, 0x00001e35 }, { 0x00000301, 0x0000013a }, 
-	{ 0x0000030c, 0x0000013e }, { 0x00000323, 0x00001e37 }, 
-	{ 0x00000327, 0x0000013c }, { 0x0000032d, 0x00001e3d }, 
-	{ 0x00000331, 0x00001e3b }, { 0x00000301, 0x00001e3f }, 
-	{ 0x00000307, 0x00001e41 }, { 0x00000323, 0x00001e43 }, 
-	{ 0x00000300, 0x000001f9 }, { 0x00000301, 0x00000144 }, 
-	{ 0x00000303, 0x000000f1 }, { 0x00000307, 0x00001e45 }, 
-	{ 0x0000030c, 0x00000148 }, { 0x00000323, 0x00001e47 }, 
-	{ 0x00000327, 0x00000146 }, { 0x0000032d, 0x00001e4b }, 
-	{ 0x00000331, 0x00001e49 }, { 0x00000300, 0x000000f2 }, 
-	{ 0x00000301, 0x000000f3 }, { 0x00000302, 0x000000f4 }, 
-	{ 0x00000303, 0x000000f5 }, { 0x00000304, 0x0000014d }, 
-	{ 0x00000306, 0x0000014f }, { 0x00000307, 0x0000022f }, 
-	{ 0x00000308, 0x000000f6 }, { 0x00000309, 0x00001ecf }, 
-	{ 0x0000030b, 0x00000151 }, { 0x0000030c, 0x000001d2 }, 
-	{ 0x0000030f, 0x0000020d }, { 0x00000311, 0x0000020f }, 
-	{ 0x0000031b, 0x000001a1 }, { 0x00000323, 0x00001ecd }, 
-	{ 0x00000328, 0x000001eb }, { 0x00000301, 0x00001e55 }, 
-	{ 0x00000307, 0x00001e57 }, { 0x00000301, 0x00000155 }, 
-	{ 0x00000307, 0x00001e59 }, { 0x0000030c, 0x00000159 }, 
-	{ 0x0000030f, 0x00000211 }, { 0x00000311, 0x00000213 }, 
-	{ 0x00000323, 0x00001e5b }, { 0x00000327, 0x00000157 }, 
-	{ 0x00000331, 0x00001e5f }, { 0x00000301, 0x0000015b }, 
-	{ 0x00000302, 0x0000015d }, { 0x00000307, 0x00001e61 }, 
-	{ 0x0000030c, 0x00000161 }, { 0x00000323, 0x00001e63 }, 
-	{ 0x00000326, 0x00000219 }, { 0x00000327, 0x0000015f }, 
-	{ 0x00000307, 0x00001e6b }, { 0x00000308, 0x00001e97 }, 
-	{ 0x0000030c, 0x00000165 }, { 0x00000323, 0x00001e6d }, 
-	{ 0x00000326, 0x0000021b }, { 0x00000327, 0x00000163 }, 
-	{ 0x0000032d, 0x00001e71 }, { 0x00000331, 0x00001e6f }, 
-	{ 0x00000300, 0x000000f9 }, { 0x00000301, 0x000000fa }, 
-	{ 0x00000302, 0x000000fb }, { 0x00000303, 0x00000169 }, 
-	{ 0x00000304, 0x0000016b }, { 0x00000306, 0x0000016d }, 
-	{ 0x00000308, 0x000000fc }, { 0x00000309, 0x00001ee7 }, 
-	{ 0x0000030a, 0x0000016f }, { 0x0000030b, 0x00000171 }, 
-	{ 0x0000030c, 0x000001d4 }, { 0x0000030f, 0x00000215 }, 
-	{ 0x00000311, 0x00000217 }, { 0x0000031b, 0x000001b0 }, 
-	{ 0x00000323, 0x00001ee5 }, { 0x00000324, 0x00001e73 }, 
-	{ 0x00000328, 0x00000173 }, { 0x0000032d, 0x00001e77 }, 
-	{ 0x00000330, 0x00001e75 }, { 0x00000303, 0x00001e7d }, 
-	{ 0x00000323, 0x00001e7f }, { 0x00000300, 0x00001e81 }, 
-	{ 0x00000301, 0x00001e83 }, { 0x00000302, 0x00000175 }, 
-	{ 0x00000307, 0x00001e87 }, { 0x00000308, 0x00001e85 }, 
-	{ 0x0000030a, 0x00001e98 }, { 0x00000323, 0x00001e89 }, 
-	{ 0x00000307, 0x00001e8b }, { 0x00000308, 0x00001e8d }, 
-	{ 0x00000300, 0x00001ef3 }, { 0x00000301, 0x000000fd }, 
-	{ 0x00000302, 0x00000177 }, { 0x00000303, 0x00001ef9 }, 
-	{ 0x00000304, 0x00000233 }, { 0x00000307, 0x00001e8f }, 
-	{ 0x00000308, 0x000000ff }, { 0x00000309, 0x00001ef7 }, 
-	{ 0x0000030a, 0x00001e99 }, { 0x00000323, 0x00001ef5 }, 
-	{ 0x00000301, 0x0000017a }, { 0x00000302, 0x00001e91 }, 
-	{ 0x00000307, 0x0000017c }, { 0x0000030c, 0x0000017e }, 
-	{ 0x00000323, 0x00001e93 }, { 0x00000331, 0x00001e95 }, 
-	{ 0x00000300, 0x00001fed }, { 0x00000301, 0x00000385 }, 
-	{ 0x00000342, 0x00001fc1 }, { 0x00000300, 0x00001ea6 }, 
-	{ 0x00000301, 0x00001ea4 }, { 0x00000303, 0x00001eaa }, 
-	{ 0x00000309, 0x00001ea8 }, { 0x00000304, 0x000001de }, 
-	{ 0x00000301, 0x000001fa }, { 0x00000301, 0x000001fc }, 
-	{ 0x00000304, 0x000001e2 }, { 0x00000301, 0x00001e08 }, 
-	{ 0x00000300, 0x00001ec0 }, { 0x00000301, 0x00001ebe }, 
-	{ 0x00000303, 0x00001ec4 }, { 0x00000309, 0x00001ec2 }, 
-	{ 0x00000301, 0x00001e2e }, { 0x00000300, 0x00001ed2 }, 
-	{ 0x00000301, 0x00001ed0 }, { 0x00000303, 0x00001ed6 }, 
-	{ 0x00000309, 0x00001ed4 }, { 0x00000301, 0x00001e4c }, 
-	{ 0x00000304, 0x0000022c }, { 0x00000308, 0x00001e4e }, 
-	{ 0x00000304, 0x0000022a }, { 0x00000301, 0x000001fe }, 
-	{ 0x00000300, 0x000001db }, { 0x00000301, 0x000001d7 }, 
-	{ 0x00000304, 0x000001d5 }, { 0x0000030c, 0x000001d9 }, 
-	{ 0x00000300, 0x00001ea7 }, { 0x00000301, 0x00001ea5 }, 
-	{ 0x00000303, 0x00001eab }, { 0x00000309, 0x00001ea9 }, 
-	{ 0x00000304, 0x000001df }, { 0x00000301, 0x000001fb }, 
-	{ 0x00000301, 0x000001fd }, { 0x00000304, 0x000001e3 }, 
-	{ 0x00000301, 0x00001e09 }, { 0x00000300, 0x00001ec1 }, 
-	{ 0x00000301, 0x00001ebf }, { 0x00000303, 0x00001ec5 }, 
-	{ 0x00000309, 0x00001ec3 }, { 0x00000301, 0x00001e2f }, 
-	{ 0x00000300, 0x00001ed3 }, { 0x00000301, 0x00001ed1 }, 
-	{ 0x00000303, 0x00001ed7 }, { 0x00000309, 0x00001ed5 }, 
-	{ 0x00000301, 0x00001e4d }, { 0x00000304, 0x0000022d }, 
-	{ 0x00000308, 0x00001e4f }, { 0x00000304, 0x0000022b }, 
-	{ 0x00000301, 0x000001ff }, { 0x00000300, 0x000001dc }, 
-	{ 0x00000301, 0x000001d8 }, { 0x00000304, 0x000001d6 }, 
-	{ 0x0000030c, 0x000001da }, { 0x00000300, 0x00001eb0 }, 
-	{ 0x00000301, 0x00001eae }, { 0x00000303, 0x00001eb4 }, 
-	{ 0x00000309, 0x00001eb2 }, { 0x00000300, 0x00001eb1 }, 
-	{ 0x00000301, 0x00001eaf }, { 0x00000303, 0x00001eb5 }, 
-	{ 0x00000309, 0x00001eb3 }, { 0x00000300, 0x00001e14 }, 
-	{ 0x00000301, 0x00001e16 }, { 0x00000300, 0x00001e15 }, 
-	{ 0x00000301, 0x00001e17 }, { 0x00000300, 0x00001e50 }, 
-	{ 0x00000301, 0x00001e52 }, { 0x00000300, 0x00001e51 }, 
-	{ 0x00000301, 0x00001e53 }, { 0x00000307, 0x00001e64 }, 
-	{ 0x00000307, 0x00001e65 }, { 0x00000307, 0x00001e66 }, 
-	{ 0x00000307, 0x00001e67 }, { 0x00000301, 0x00001e78 }, 
-	{ 0x00000301, 0x00001e79 }, { 0x00000308, 0x00001e7a }, 
-	{ 0x00000308, 0x00001e7b }, { 0x00000307, 0x00001e9b }, 
-	{ 0x00000300, 0x00001edc }, { 0x00000301, 0x00001eda }, 
-	{ 0x00000303, 0x00001ee0 }, { 0x00000309, 0x00001ede }, 
-	{ 0x00000323, 0x00001ee2 }, { 0x00000300, 0x00001edd }, 
-	{ 0x00000301, 0x00001edb }, { 0x00000303, 0x00001ee1 }, 
-	{ 0x00000309, 0x00001edf }, { 0x00000323, 0x00001ee3 }, 
-	{ 0x00000300, 0x00001eea }, { 0x00000301, 0x00001ee8 }, 
-	{ 0x00000303, 0x00001eee }, { 0x00000309, 0x00001eec }, 
-	{ 0x00000323, 0x00001ef0 }, { 0x00000300, 0x00001eeb }, 
-	{ 0x00000301, 0x00001ee9 }, { 0x00000303, 0x00001eef }, 
-	{ 0x00000309, 0x00001eed }, { 0x00000323, 0x00001ef1 }, 
-	{ 0x0000030c, 0x000001ee }, { 0x00000304, 0x000001ec }, 
-	{ 0x00000304, 0x000001ed }, { 0x00000304, 0x000001e0 }, 
-	{ 0x00000304, 0x000001e1 }, { 0x00000306, 0x00001e1c }, 
-	{ 0x00000306, 0x00001e1d }, { 0x00000304, 0x00000230 }, 
-	{ 0x00000304, 0x00000231 }, { 0x0000030c, 0x000001ef }, 
-	{ 0x00000300, 0x00001fba }, { 0x00000301, 0x00000386 }, 
-	{ 0x00000304, 0x00001fb9 }, { 0x00000306, 0x00001fb8 }, 
-	{ 0x00000313, 0x00001f08 }, { 0x00000314, 0x00001f09 }, 
-	{ 0x00000345, 0x00001fbc }, { 0x00000300, 0x00001fc8 }, 
-	{ 0x00000301, 0x00000388 }, { 0x00000313, 0x00001f18 }, 
-	{ 0x00000314, 0x00001f19 }, { 0x00000300, 0x00001fca }, 
-	{ 0x00000301, 0x00000389 }, { 0x00000313, 0x00001f28 }, 
-	{ 0x00000314, 0x00001f29 }, { 0x00000345, 0x00001fcc }, 
-	{ 0x00000300, 0x00001fda }, { 0x00000301, 0x0000038a }, 
-	{ 0x00000304, 0x00001fd9 }, { 0x00000306, 0x00001fd8 }, 
-	{ 0x00000308, 0x000003aa }, { 0x00000313, 0x00001f38 }, 
-	{ 0x00000314, 0x00001f39 }, { 0x00000300, 0x00001ff8 }, 
-	{ 0x00000301, 0x0000038c }, { 0x00000313, 0x00001f48 }, 
-	{ 0x00000314, 0x00001f49 }, { 0x00000314, 0x00001fec }, 
-	{ 0x00000300, 0x00001fea }, { 0x00000301, 0x0000038e }, 
-	{ 0x00000304, 0x00001fe9 }, { 0x00000306, 0x00001fe8 }, 
-	{ 0x00000308, 0x000003ab }, { 0x00000314, 0x00001f59 }, 
-	{ 0x00000300, 0x00001ffa }, { 0x00000301, 0x0000038f }, 
-	{ 0x00000313, 0x00001f68 }, { 0x00000314, 0x00001f69 }, 
-	{ 0x00000345, 0x00001ffc }, { 0x00000345, 0x00001fb4 }, 
-	{ 0x00000345, 0x00001fc4 }, { 0x00000300, 0x00001f70 }, 
-	{ 0x00000301, 0x000003ac }, { 0x00000304, 0x00001fb1 }, 
-	{ 0x00000306, 0x00001fb0 }, { 0x00000313, 0x00001f00 }, 
-	{ 0x00000314, 0x00001f01 }, { 0x00000342, 0x00001fb6 }, 
-	{ 0x00000345, 0x00001fb3 }, { 0x00000300, 0x00001f72 }, 
-	{ 0x00000301, 0x000003ad }, { 0x00000313, 0x00001f10 }, 
-	{ 0x00000314, 0x00001f11 }, { 0x00000300, 0x00001f74 }, 
-	{ 0x00000301, 0x000003ae }, { 0x00000313, 0x00001f20 }, 
-	{ 0x00000314, 0x00001f21 }, { 0x00000342, 0x00001fc6 }, 
-	{ 0x00000345, 0x00001fc3 }, { 0x00000300, 0x00001f76 }, 
-	{ 0x00000301, 0x000003af }, { 0x00000304, 0x00001fd1 }, 
-	{ 0x00000306, 0x00001fd0 }, { 0x00000308, 0x000003ca }, 
-	{ 0x00000313, 0x00001f30 }, { 0x00000314, 0x00001f31 }, 
-	{ 0x00000342, 0x00001fd6 }, { 0x00000300, 0x00001f78 }, 
-	{ 0x00000301, 0x000003cc }, { 0x00000313, 0x00001f40 }, 
-	{ 0x00000314, 0x00001f41 }, { 0x00000313, 0x00001fe4 }, 
-	{ 0x00000314, 0x00001fe5 }, { 0x00000300, 0x00001f7a }, 
-	{ 0x00000301, 0x000003cd }, { 0x00000304, 0x00001fe1 }, 
-	{ 0x00000306, 0x00001fe0 }, { 0x00000308, 0x000003cb }, 
-	{ 0x00000313, 0x00001f50 }, { 0x00000314, 0x00001f51 }, 
-	{ 0x00000342, 0x00001fe6 }, { 0x00000300, 0x00001f7c }, 
-	{ 0x00000301, 0x000003ce }, { 0x00000313, 0x00001f60 }, 
-	{ 0x00000314, 0x00001f61 }, { 0x00000342, 0x00001ff6 }, 
-	{ 0x00000345, 0x00001ff3 }, { 0x00000300, 0x00001fd2 }, 
-	{ 0x00000301, 0x00000390 }, { 0x00000342, 0x00001fd7 }, 
-	{ 0x00000300, 0x00001fe2 }, { 0x00000301, 0x000003b0 }, 
-	{ 0x00000342, 0x00001fe7 }, { 0x00000345, 0x00001ff4 }, 
-	{ 0x00000301, 0x000003d3 }, { 0x00000308, 0x000003d4 }, 
-	{ 0x00000308, 0x00000407 }, { 0x00000306, 0x000004d0 }, 
-	{ 0x00000308, 0x000004d2 }, { 0x00000301, 0x00000403 }, 
-	{ 0x00000300, 0x00000400 }, { 0x00000306, 0x000004d6 }, 
-	{ 0x00000308, 0x00000401 }, { 0x00000306, 0x000004c1 }, 
-	{ 0x00000308, 0x000004dc }, { 0x00000308, 0x000004de }, 
-	{ 0x00000300, 0x0000040d }, { 0x00000304, 0x000004e2 }, 
-	{ 0x00000306, 0x00000419 }, { 0x00000308, 0x000004e4 }, 
-	{ 0x00000301, 0x0000040c }, { 0x00000308, 0x000004e6 }, 
-	{ 0x00000304, 0x000004ee }, { 0x00000306, 0x0000040e }, 
-	{ 0x00000308, 0x000004f0 }, { 0x0000030b, 0x000004f2 }, 
-	{ 0x00000308, 0x000004f4 }, { 0x00000308, 0x000004f8 }, 
-	{ 0x00000308, 0x000004ec }, { 0x00000306, 0x000004d1 }, 
-	{ 0x00000308, 0x000004d3 }, { 0x00000301, 0x00000453 }, 
-	{ 0x00000300, 0x00000450 }, { 0x00000306, 0x000004d7 }, 
-	{ 0x00000308, 0x00000451 }, { 0x00000306, 0x000004c2 }, 
-	{ 0x00000308, 0x000004dd }, { 0x00000308, 0x000004df }, 
-	{ 0x00000300, 0x0000045d }, { 0x00000304, 0x000004e3 }, 
-	{ 0x00000306, 0x00000439 }, { 0x00000308, 0x000004e5 }, 
-	{ 0x00000301, 0x0000045c }, { 0x00000308, 0x000004e7 }, 
-	{ 0x00000304, 0x000004ef }, { 0x00000306, 0x0000045e }, 
-	{ 0x00000308, 0x000004f1 }, { 0x0000030b, 0x000004f3 }, 
-	{ 0x00000308, 0x000004f5 }, { 0x00000308, 0x000004f9 }, 
-	{ 0x00000308, 0x000004ed }, { 0x00000308, 0x00000457 }, 
-	{ 0x0000030f, 0x00000476 }, { 0x0000030f, 0x00000477 }, 
-	{ 0x00000308, 0x000004da }, { 0x00000308, 0x000004db }, 
-	{ 0x00000308, 0x000004ea }, { 0x00000308, 0x000004eb }, 
-	{ 0x00000653, 0x00000622 }, { 0x00000654, 0x00000623 }, 
-	{ 0x00000655, 0x00000625 }, { 0x00000654, 0x00000624 }, 
-	{ 0x00000654, 0x00000626 }, { 0x00000654, 0x000006c2 }, 
-	{ 0x00000654, 0x000006d3 }, { 0x00000654, 0x000006c0 }, 
-	{ 0x0000093c, 0x00000929 }, { 0x0000093c, 0x00000931 }, 
-	{ 0x0000093c, 0x00000934 }, { 0x000009be, 0x000009cb }, 
-	{ 0x000009d7, 0x000009cc }, { 0x00000b3e, 0x00000b4b }, 
-	{ 0x00000b56, 0x00000b48 }, { 0x00000b57, 0x00000b4c }, 
-	{ 0x00000bd7, 0x00000b94 }, { 0x00000bbe, 0x00000bca }, 
-	{ 0x00000bd7, 0x00000bcc }, { 0x00000bbe, 0x00000bcb }, 
-	{ 0x00000c56, 0x00000c48 }, { 0x00000cd5, 0x00000cc0 }, 
-	{ 0x00000cc2, 0x00000cca }, { 0x00000cd5, 0x00000cc7 }, 
-	{ 0x00000cd6, 0x00000cc8 }, { 0x00000cd5, 0x00000ccb }, 
-	{ 0x00000d3e, 0x00000d4a }, { 0x00000d57, 0x00000d4c }, 
-	{ 0x00000d3e, 0x00000d4b }, { 0x00000dca, 0x00000dda }, 
-	{ 0x00000dcf, 0x00000ddc }, { 0x00000ddf, 0x00000dde }, 
-	{ 0x00000dca, 0x00000ddd }, { 0x0000102e, 0x00001026 }, 
-	{ 0x00000304, 0x00001e38 }, { 0x00000304, 0x00001e39 }, 
-	{ 0x00000304, 0x00001e5c }, { 0x00000304, 0x00001e5d }, 
-	{ 0x00000307, 0x00001e68 }, { 0x00000307, 0x00001e69 }, 
-	{ 0x00000302, 0x00001eac }, { 0x00000306, 0x00001eb6 }, 
-	{ 0x00000302, 0x00001ead }, { 0x00000306, 0x00001eb7 }, 
-	{ 0x00000302, 0x00001ec6 }, { 0x00000302, 0x00001ec7 }, 
-	{ 0x00000302, 0x00001ed8 }, { 0x00000302, 0x00001ed9 }, 
-	{ 0x00000300, 0x00001f02 }, { 0x00000301, 0x00001f04 }, 
-	{ 0x00000342, 0x00001f06 }, { 0x00000345, 0x00001f80 }, 
-	{ 0x00000300, 0x00001f03 }, { 0x00000301, 0x00001f05 }, 
-	{ 0x00000342, 0x00001f07 }, { 0x00000345, 0x00001f81 }, 
-	{ 0x00000345, 0x00001f82 }, { 0x00000345, 0x00001f83 }, 
-	{ 0x00000345, 0x00001f84 }, { 0x00000345, 0x00001f85 }, 
-	{ 0x00000345, 0x00001f86 }, { 0x00000345, 0x00001f87 }, 
-	{ 0x00000300, 0x00001f0a }, { 0x00000301, 0x00001f0c }, 
-	{ 0x00000342, 0x00001f0e }, { 0x00000345, 0x00001f88 }, 
-	{ 0x00000300, 0x00001f0b }, { 0x00000301, 0x00001f0d }, 
-	{ 0x00000342, 0x00001f0f }, { 0x00000345, 0x00001f89 }, 
-	{ 0x00000345, 0x00001f8a }, { 0x00000345, 0x00001f8b }, 
-	{ 0x00000345, 0x00001f8c }, { 0x00000345, 0x00001f8d }, 
-	{ 0x00000345, 0x00001f8e }, { 0x00000345, 0x00001f8f }, 
-	{ 0x00000300, 0x00001f12 }, { 0x00000301, 0x00001f14 }, 
-	{ 0x00000300, 0x00001f13 }, { 0x00000301, 0x00001f15 }, 
-	{ 0x00000300, 0x00001f1a }, { 0x00000301, 0x00001f1c }, 
-	{ 0x00000300, 0x00001f1b }, { 0x00000301, 0x00001f1d }, 
-	{ 0x00000300, 0x00001f22 }, { 0x00000301, 0x00001f24 }, 
-	{ 0x00000342, 0x00001f26 }, { 0x00000345, 0x00001f90 }, 
-	{ 0x00000300, 0x00001f23 }, { 0x00000301, 0x00001f25 }, 
-	{ 0x00000342, 0x00001f27 }, { 0x00000345, 0x00001f91 }, 
-	{ 0x00000345, 0x00001f92 }, { 0x00000345, 0x00001f93 }, 
-	{ 0x00000345, 0x00001f94 }, { 0x00000345, 0x00001f95 }, 
-	{ 0x00000345, 0x00001f96 }, { 0x00000345, 0x00001f97 }, 
-	{ 0x00000300, 0x00001f2a }, { 0x00000301, 0x00001f2c }, 
-	{ 0x00000342, 0x00001f2e }, { 0x00000345, 0x00001f98 }, 
-	{ 0x00000300, 0x00001f2b }, { 0x00000301, 0x00001f2d }, 
-	{ 0x00000342, 0x00001f2f }, { 0x00000345, 0x00001f99 }, 
-	{ 0x00000345, 0x00001f9a }, { 0x00000345, 0x00001f9b }, 
-	{ 0x00000345, 0x00001f9c }, { 0x00000345, 0x00001f9d }, 
-	{ 0x00000345, 0x00001f9e }, { 0x00000345, 0x00001f9f }, 
-	{ 0x00000300, 0x00001f32 }, { 0x00000301, 0x00001f34 }, 
-	{ 0x00000342, 0x00001f36 }, { 0x00000300, 0x00001f33 }, 
-	{ 0x00000301, 0x00001f35 }, { 0x00000342, 0x00001f37 }, 
-	{ 0x00000300, 0x00001f3a }, { 0x00000301, 0x00001f3c }, 
-	{ 0x00000342, 0x00001f3e }, { 0x00000300, 0x00001f3b }, 
-	{ 0x00000301, 0x00001f3d }, { 0x00000342, 0x00001f3f }, 
-	{ 0x00000300, 0x00001f42 }, { 0x00000301, 0x00001f44 }, 
-	{ 0x00000300, 0x00001f43 }, { 0x00000301, 0x00001f45 }, 
-	{ 0x00000300, 0x00001f4a }, { 0x00000301, 0x00001f4c }, 
-	{ 0x00000300, 0x00001f4b }, { 0x00000301, 0x00001f4d }, 
-	{ 0x00000300, 0x00001f52 }, { 0x00000301, 0x00001f54 }, 
-	{ 0x00000342, 0x00001f56 }, { 0x00000300, 0x00001f53 }, 
-	{ 0x00000301, 0x00001f55 }, { 0x00000342, 0x00001f57 }, 
-	{ 0x00000300, 0x00001f5b }, { 0x00000301, 0x00001f5d }, 
-	{ 0x00000342, 0x00001f5f }, { 0x00000300, 0x00001f62 }, 
-	{ 0x00000301, 0x00001f64 }, { 0x00000342, 0x00001f66 }, 
-	{ 0x00000345, 0x00001fa0 }, { 0x00000300, 0x00001f63 }, 
-	{ 0x00000301, 0x00001f65 }, { 0x00000342, 0x00001f67 }, 
-	{ 0x00000345, 0x00001fa1 }, { 0x00000345, 0x00001fa2 }, 
-	{ 0x00000345, 0x00001fa3 }, { 0x00000345, 0x00001fa4 }, 
-	{ 0x00000345, 0x00001fa5 }, { 0x00000345, 0x00001fa6 }, 
-	{ 0x00000345, 0x00001fa7 }, { 0x00000300, 0x00001f6a }, 
-	{ 0x00000301, 0x00001f6c }, { 0x00000342, 0x00001f6e }, 
-	{ 0x00000345, 0x00001fa8 }, { 0x00000300, 0x00001f6b }, 
-	{ 0x00000301, 0x00001f6d }, { 0x00000342, 0x00001f6f }, 
-	{ 0x00000345, 0x00001fa9 }, { 0x00000345, 0x00001faa }, 
-	{ 0x00000345, 0x00001fab }, { 0x00000345, 0x00001fac }, 
-	{ 0x00000345, 0x00001fad }, { 0x00000345, 0x00001fae }, 
-	{ 0x00000345, 0x00001faf }, { 0x00000345, 0x00001fb2 }, 
-	{ 0x00000345, 0x00001fc2 }, { 0x00000345, 0x00001ff2 }, 
-	{ 0x00000345, 0x00001fb7 }, { 0x00000300, 0x00001fcd }, 
-	{ 0x00000301, 0x00001fce }, { 0x00000342, 0x00001fcf }, 
-	{ 0x00000345, 0x00001fc7 }, { 0x00000345, 0x00001ff7 }, 
-	{ 0x00000300, 0x00001fdd }, { 0x00000301, 0x00001fde }, 
-	{ 0x00000342, 0x00001fdf }, { 0x00000338, 0x0000219a }, 
-	{ 0x00000338, 0x0000219b }, { 0x00000338, 0x000021ae }, 
-	{ 0x00000338, 0x000021cd }, { 0x00000338, 0x000021cf }, 
-	{ 0x00000338, 0x000021ce }, { 0x00000338, 0x00002204 }, 
-	{ 0x00000338, 0x00002209 }, { 0x00000338, 0x0000220c }, 
-	{ 0x00000338, 0x00002224 }, { 0x00000338, 0x00002226 }, 
-	{ 0x00000338, 0x00002241 }, { 0x00000338, 0x00002244 }, 
-	{ 0x00000338, 0x00002247 }, { 0x00000338, 0x00002249 }, 
-	{ 0x00000338, 0x0000226d }, { 0x00000338, 0x00002262 }, 
-	{ 0x00000338, 0x00002270 }, { 0x00000338, 0x00002271 }, 
-	{ 0x00000338, 0x00002274 }, { 0x00000338, 0x00002275 }, 
-	{ 0x00000338, 0x00002278 }, { 0x00000338, 0x00002279 }, 
-	{ 0x00000338, 0x00002280 }, { 0x00000338, 0x00002281 }, 
-	{ 0x00000338, 0x000022e0 }, { 0x00000338, 0x000022e1 }, 
-	{ 0x00000338, 0x00002284 }, { 0x00000338, 0x00002285 }, 
-	{ 0x00000338, 0x00002288 }, { 0x00000338, 0x00002289 }, 
-	{ 0x00000338, 0x000022e2 }, { 0x00000338, 0x000022e3 }, 
-	{ 0x00000338, 0x000022ac }, { 0x00000338, 0x000022ad }, 
-	{ 0x00000338, 0x000022ae }, { 0x00000338, 0x000022af }, 
-	{ 0x00000338, 0x000022ea }, { 0x00000338, 0x000022eb }, 
-	{ 0x00000338, 0x000022ec }, { 0x00000338, 0x000022ed }, 
-	{ 0x00003099, 0x00003094 }, { 0x00003099, 0x0000304c }, 
-	{ 0x00003099, 0x0000304e }, { 0x00003099, 0x00003050 }, 
-	{ 0x00003099, 0x00003052 }, { 0x00003099, 0x00003054 }, 
-	{ 0x00003099, 0x00003056 }, { 0x00003099, 0x00003058 }, 
-	{ 0x00003099, 0x0000305a }, { 0x00003099, 0x0000305c }, 
-	{ 0x00003099, 0x0000305e }, { 0x00003099, 0x00003060 }, 
-	{ 0x00003099, 0x00003062 }, { 0x00003099, 0x00003065 }, 
-	{ 0x00003099, 0x00003067 }, { 0x00003099, 0x00003069 }, 
-	{ 0x00003099, 0x00003070 }, { 0x0000309a, 0x00003071 }, 
-	{ 0x00003099, 0x00003073 }, { 0x0000309a, 0x00003074 }, 
-	{ 0x00003099, 0x00003076 }, { 0x0000309a, 0x00003077 }, 
-	{ 0x00003099, 0x00003079 }, { 0x0000309a, 0x0000307a }, 
-	{ 0x00003099, 0x0000307c }, { 0x0000309a, 0x0000307d }, 
-	{ 0x00003099, 0x0000309e }, { 0x00003099, 0x000030f4 }, 
-	{ 0x00003099, 0x000030ac }, { 0x00003099, 0x000030ae }, 
-	{ 0x00003099, 0x000030b0 }, { 0x00003099, 0x000030b2 }, 
-	{ 0x00003099, 0x000030b4 }, { 0x00003099, 0x000030b6 }, 
-	{ 0x00003099, 0x000030b8 }, { 0x00003099, 0x000030ba }, 
-	{ 0x00003099, 0x000030bc }, { 0x00003099, 0x000030be }, 
-	{ 0x00003099, 0x000030c0 }, { 0x00003099, 0x000030c2 }, 
-	{ 0x00003099, 0x000030c5 }, { 0x00003099, 0x000030c7 }, 
-	{ 0x00003099, 0x000030c9 }, { 0x00003099, 0x000030d0 }, 
-	{ 0x0000309a, 0x000030d1 }, { 0x00003099, 0x000030d3 }, 
-	{ 0x0000309a, 0x000030d4 }, { 0x00003099, 0x000030d6 }, 
-	{ 0x0000309a, 0x000030d7 }, { 0x00003099, 0x000030d9 }, 
-	{ 0x0000309a, 0x000030da }, { 0x00003099, 0x000030dc }, 
-	{ 0x0000309a, 0x000030dd }, { 0x00003099, 0x000030f7 }, 
-	{ 0x00003099, 0x000030f8 }, { 0x00003099, 0x000030f9 }, 
-	{ 0x00003099, 0x000030fa }, { 0x00003099, 0x000030fe }, 
+	{ 0x00000000, 0x00000000 }, { 0x00000338, 0x0000226e },
+	{ 0x00000338, 0x00002260 }, { 0x00000338, 0x0000226f },
+	{ 0x00000300, 0x000000c0 }, { 0x00000301, 0x000000c1 },
+	{ 0x00000302, 0x000000c2 }, { 0x00000303, 0x000000c3 },
+	{ 0x00000304, 0x00000100 }, { 0x00000306, 0x00000102 },
+	{ 0x00000307, 0x00000226 }, { 0x00000308, 0x000000c4 },
+	{ 0x00000309, 0x00001ea2 }, { 0x0000030a, 0x000000c5 },
+	{ 0x0000030c, 0x000001cd }, { 0x0000030f, 0x00000200 },
+	{ 0x00000311, 0x00000202 }, { 0x00000323, 0x00001ea0 },
+	{ 0x00000325, 0x00001e00 }, { 0x00000328, 0x00000104 },
+	{ 0x00000307, 0x00001e02 }, { 0x00000323, 0x00001e04 },
+	{ 0x00000331, 0x00001e06 }, { 0x00000301, 0x00000106 },
+	{ 0x00000302, 0x00000108 }, { 0x00000307, 0x0000010a },
+	{ 0x0000030c, 0x0000010c }, { 0x00000327, 0x000000c7 },
+	{ 0x00000307, 0x00001e0a }, { 0x0000030c, 0x0000010e },
+	{ 0x00000323, 0x00001e0c }, { 0x00000327, 0x00001e10 },
+	{ 0x0000032d, 0x00001e12 }, { 0x00000331, 0x00001e0e },
+	{ 0x00000300, 0x000000c8 }, { 0x00000301, 0x000000c9 },
+	{ 0x00000302, 0x000000ca }, { 0x00000303, 0x00001ebc },
+	{ 0x00000304, 0x00000112 }, { 0x00000306, 0x00000114 },
+	{ 0x00000307, 0x00000116 }, { 0x00000308, 0x000000cb },
+	{ 0x00000309, 0x00001eba }, { 0x0000030c, 0x0000011a },
+	{ 0x0000030f, 0x00000204 }, { 0x00000311, 0x00000206 },
+	{ 0x00000323, 0x00001eb8 }, { 0x00000327, 0x00000228 },
+	{ 0x00000328, 0x00000118 }, { 0x0000032d, 0x00001e18 },
+	{ 0x00000330, 0x00001e1a }, { 0x00000307, 0x00001e1e },
+	{ 0x00000301, 0x000001f4 }, { 0x00000302, 0x0000011c },
+	{ 0x00000304, 0x00001e20 }, { 0x00000306, 0x0000011e },
+	{ 0x00000307, 0x00000120 }, { 0x0000030c, 0x000001e6 },
+	{ 0x00000327, 0x00000122 }, { 0x00000302, 0x00000124 },
+	{ 0x00000307, 0x00001e22 }, { 0x00000308, 0x00001e26 },
+	{ 0x0000030c, 0x0000021e }, { 0x00000323, 0x00001e24 },
+	{ 0x00000327, 0x00001e28 }, { 0x0000032e, 0x00001e2a },
+	{ 0x00000300, 0x000000cc }, { 0x00000301, 0x000000cd },
+	{ 0x00000302, 0x000000ce }, { 0x00000303, 0x00000128 },
+	{ 0x00000304, 0x0000012a }, { 0x00000306, 0x0000012c },
+	{ 0x00000307, 0x00000130 }, { 0x00000308, 0x000000cf },
+	{ 0x00000309, 0x00001ec8 }, { 0x0000030c, 0x000001cf },
+	{ 0x0000030f, 0x00000208 }, { 0x00000311, 0x0000020a },
+	{ 0x00000323, 0x00001eca }, { 0x00000328, 0x0000012e },
+	{ 0x00000330, 0x00001e2c }, { 0x00000302, 0x00000134 },
+	{ 0x00000301, 0x00001e30 }, { 0x0000030c, 0x000001e8 },
+	{ 0x00000323, 0x00001e32 }, { 0x00000327, 0x00000136 },
+	{ 0x00000331, 0x00001e34 }, { 0x00000301, 0x00000139 },
+	{ 0x0000030c, 0x0000013d }, { 0x00000323, 0x00001e36 },
+	{ 0x00000327, 0x0000013b }, { 0x0000032d, 0x00001e3c },
+	{ 0x00000331, 0x00001e3a }, { 0x00000301, 0x00001e3e },
+	{ 0x00000307, 0x00001e40 }, { 0x00000323, 0x00001e42 },
+	{ 0x00000300, 0x000001f8 }, { 0x00000301, 0x00000143 },
+	{ 0x00000303, 0x000000d1 }, { 0x00000307, 0x00001e44 },
+	{ 0x0000030c, 0x00000147 }, { 0x00000323, 0x00001e46 },
+	{ 0x00000327, 0x00000145 }, { 0x0000032d, 0x00001e4a },
+	{ 0x00000331, 0x00001e48 }, { 0x00000300, 0x000000d2 },
+	{ 0x00000301, 0x000000d3 }, { 0x00000302, 0x000000d4 },
+	{ 0x00000303, 0x000000d5 }, { 0x00000304, 0x0000014c },
+	{ 0x00000306, 0x0000014e }, { 0x00000307, 0x0000022e },
+	{ 0x00000308, 0x000000d6 }, { 0x00000309, 0x00001ece },
+	{ 0x0000030b, 0x00000150 }, { 0x0000030c, 0x000001d1 },
+	{ 0x0000030f, 0x0000020c }, { 0x00000311, 0x0000020e },
+	{ 0x0000031b, 0x000001a0 }, { 0x00000323, 0x00001ecc },
+	{ 0x00000328, 0x000001ea }, { 0x00000301, 0x00001e54 },
+	{ 0x00000307, 0x00001e56 }, { 0x00000301, 0x00000154 },
+	{ 0x00000307, 0x00001e58 }, { 0x0000030c, 0x00000158 },
+	{ 0x0000030f, 0x00000210 }, { 0x00000311, 0x00000212 },
+	{ 0x00000323, 0x00001e5a }, { 0x00000327, 0x00000156 },
+	{ 0x00000331, 0x00001e5e }, { 0x00000301, 0x0000015a },
+	{ 0x00000302, 0x0000015c }, { 0x00000307, 0x00001e60 },
+	{ 0x0000030c, 0x00000160 }, { 0x00000323, 0x00001e62 },
+	{ 0x00000326, 0x00000218 }, { 0x00000327, 0x0000015e },
+	{ 0x00000307, 0x00001e6a }, { 0x0000030c, 0x00000164 },
+	{ 0x00000323, 0x00001e6c }, { 0x00000326, 0x0000021a },
+	{ 0x00000327, 0x00000162 }, { 0x0000032d, 0x00001e70 },
+	{ 0x00000331, 0x00001e6e }, { 0x00000300, 0x000000d9 },
+	{ 0x00000301, 0x000000da }, { 0x00000302, 0x000000db },
+	{ 0x00000303, 0x00000168 }, { 0x00000304, 0x0000016a },
+	{ 0x00000306, 0x0000016c }, { 0x00000308, 0x000000dc },
+	{ 0x00000309, 0x00001ee6 }, { 0x0000030a, 0x0000016e },
+	{ 0x0000030b, 0x00000170 }, { 0x0000030c, 0x000001d3 },
+	{ 0x0000030f, 0x00000214 }, { 0x00000311, 0x00000216 },
+	{ 0x0000031b, 0x000001af }, { 0x00000323, 0x00001ee4 },
+	{ 0x00000324, 0x00001e72 }, { 0x00000328, 0x00000172 },
+	{ 0x0000032d, 0x00001e76 }, { 0x00000330, 0x00001e74 },
+	{ 0x00000303, 0x00001e7c }, { 0x00000323, 0x00001e7e },
+	{ 0x00000300, 0x00001e80 }, { 0x00000301, 0x00001e82 },
+	{ 0x00000302, 0x00000174 }, { 0x00000307, 0x00001e86 },
+	{ 0x00000308, 0x00001e84 }, { 0x00000323, 0x00001e88 },
+	{ 0x00000307, 0x00001e8a }, { 0x00000308, 0x00001e8c },
+	{ 0x00000300, 0x00001ef2 }, { 0x00000301, 0x000000dd },
+	{ 0x00000302, 0x00000176 }, { 0x00000303, 0x00001ef8 },
+	{ 0x00000304, 0x00000232 }, { 0x00000307, 0x00001e8e },
+	{ 0x00000308, 0x00000178 }, { 0x00000309, 0x00001ef6 },
+	{ 0x00000323, 0x00001ef4 }, { 0x00000301, 0x00000179 },
+	{ 0x00000302, 0x00001e90 }, { 0x00000307, 0x0000017b },
+	{ 0x0000030c, 0x0000017d }, { 0x00000323, 0x00001e92 },
+	{ 0x00000331, 0x00001e94 }, { 0x00000300, 0x000000e0 },
+	{ 0x00000301, 0x000000e1 }, { 0x00000302, 0x000000e2 },
+	{ 0x00000303, 0x000000e3 }, { 0x00000304, 0x00000101 },
+	{ 0x00000306, 0x00000103 }, { 0x00000307, 0x00000227 },
+	{ 0x00000308, 0x000000e4 }, { 0x00000309, 0x00001ea3 },
+	{ 0x0000030a, 0x000000e5 }, { 0x0000030c, 0x000001ce },
+	{ 0x0000030f, 0x00000201 }, { 0x00000311, 0x00000203 },
+	{ 0x00000323, 0x00001ea1 }, { 0x00000325, 0x00001e01 },
+	{ 0x00000328, 0x00000105 }, { 0x00000307, 0x00001e03 },
+	{ 0x00000323, 0x00001e05 }, { 0x00000331, 0x00001e07 },
+	{ 0x00000301, 0x00000107 }, { 0x00000302, 0x00000109 },
+	{ 0x00000307, 0x0000010b }, { 0x0000030c, 0x0000010d },
+	{ 0x00000327, 0x000000e7 }, { 0x00000307, 0x00001e0b },
+	{ 0x0000030c, 0x0000010f }, { 0x00000323, 0x00001e0d },
+	{ 0x00000327, 0x00001e11 }, { 0x0000032d, 0x00001e13 },
+	{ 0x00000331, 0x00001e0f }, { 0x00000300, 0x000000e8 },
+	{ 0x00000301, 0x000000e9 }, { 0x00000302, 0x000000ea },
+	{ 0x00000303, 0x00001ebd }, { 0x00000304, 0x00000113 },
+	{ 0x00000306, 0x00000115 }, { 0x00000307, 0x00000117 },
+	{ 0x00000308, 0x000000eb }, { 0x00000309, 0x00001ebb },
+	{ 0x0000030c, 0x0000011b }, { 0x0000030f, 0x00000205 },
+	{ 0x00000311, 0x00000207 }, { 0x00000323, 0x00001eb9 },
+	{ 0x00000327, 0x00000229 }, { 0x00000328, 0x00000119 },
+	{ 0x0000032d, 0x00001e19 }, { 0x00000330, 0x00001e1b },
+	{ 0x00000307, 0x00001e1f }, { 0x00000301, 0x000001f5 },
+	{ 0x00000302, 0x0000011d }, { 0x00000304, 0x00001e21 },
+	{ 0x00000306, 0x0000011f }, { 0x00000307, 0x00000121 },
+	{ 0x0000030c, 0x000001e7 }, { 0x00000327, 0x00000123 },
+	{ 0x00000302, 0x00000125 }, { 0x00000307, 0x00001e23 },
+	{ 0x00000308, 0x00001e27 }, { 0x0000030c, 0x0000021f },
+	{ 0x00000323, 0x00001e25 }, { 0x00000327, 0x00001e29 },
+	{ 0x0000032e, 0x00001e2b }, { 0x00000331, 0x00001e96 },
+	{ 0x00000300, 0x000000ec }, { 0x00000301, 0x000000ed },
+	{ 0x00000302, 0x000000ee }, { 0x00000303, 0x00000129 },
+	{ 0x00000304, 0x0000012b }, { 0x00000306, 0x0000012d },
+	{ 0x00000308, 0x000000ef }, { 0x00000309, 0x00001ec9 },
+	{ 0x0000030c, 0x000001d0 }, { 0x0000030f, 0x00000209 },
+	{ 0x00000311, 0x0000020b }, { 0x00000323, 0x00001ecb },
+	{ 0x00000328, 0x0000012f }, { 0x00000330, 0x00001e2d },
+	{ 0x00000302, 0x00000135 }, { 0x0000030c, 0x000001f0 },
+	{ 0x00000301, 0x00001e31 }, { 0x0000030c, 0x000001e9 },
+	{ 0x00000323, 0x00001e33 }, { 0x00000327, 0x00000137 },
+	{ 0x00000331, 0x00001e35 }, { 0x00000301, 0x0000013a },
+	{ 0x0000030c, 0x0000013e }, { 0x00000323, 0x00001e37 },
+	{ 0x00000327, 0x0000013c }, { 0x0000032d, 0x00001e3d },
+	{ 0x00000331, 0x00001e3b }, { 0x00000301, 0x00001e3f },
+	{ 0x00000307, 0x00001e41 }, { 0x00000323, 0x00001e43 },
+	{ 0x00000300, 0x000001f9 }, { 0x00000301, 0x00000144 },
+	{ 0x00000303, 0x000000f1 }, { 0x00000307, 0x00001e45 },
+	{ 0x0000030c, 0x00000148 }, { 0x00000323, 0x00001e47 },
+	{ 0x00000327, 0x00000146 }, { 0x0000032d, 0x00001e4b },
+	{ 0x00000331, 0x00001e49 }, { 0x00000300, 0x000000f2 },
+	{ 0x00000301, 0x000000f3 }, { 0x00000302, 0x000000f4 },
+	{ 0x00000303, 0x000000f5 }, { 0x00000304, 0x0000014d },
+	{ 0x00000306, 0x0000014f }, { 0x00000307, 0x0000022f },
+	{ 0x00000308, 0x000000f6 }, { 0x00000309, 0x00001ecf },
+	{ 0x0000030b, 0x00000151 }, { 0x0000030c, 0x000001d2 },
+	{ 0x0000030f, 0x0000020d }, { 0x00000311, 0x0000020f },
+	{ 0x0000031b, 0x000001a1 }, { 0x00000323, 0x00001ecd },
+	{ 0x00000328, 0x000001eb }, { 0x00000301, 0x00001e55 },
+	{ 0x00000307, 0x00001e57 }, { 0x00000301, 0x00000155 },
+	{ 0x00000307, 0x00001e59 }, { 0x0000030c, 0x00000159 },
+	{ 0x0000030f, 0x00000211 }, { 0x00000311, 0x00000213 },
+	{ 0x00000323, 0x00001e5b }, { 0x00000327, 0x00000157 },
+	{ 0x00000331, 0x00001e5f }, { 0x00000301, 0x0000015b },
+	{ 0x00000302, 0x0000015d }, { 0x00000307, 0x00001e61 },
+	{ 0x0000030c, 0x00000161 }, { 0x00000323, 0x00001e63 },
+	{ 0x00000326, 0x00000219 }, { 0x00000327, 0x0000015f },
+	{ 0x00000307, 0x00001e6b }, { 0x00000308, 0x00001e97 },
+	{ 0x0000030c, 0x00000165 }, { 0x00000323, 0x00001e6d },
+	{ 0x00000326, 0x0000021b }, { 0x00000327, 0x00000163 },
+	{ 0x0000032d, 0x00001e71 }, { 0x00000331, 0x00001e6f },
+	{ 0x00000300, 0x000000f9 }, { 0x00000301, 0x000000fa },
+	{ 0x00000302, 0x000000fb }, { 0x00000303, 0x00000169 },
+	{ 0x00000304, 0x0000016b }, { 0x00000306, 0x0000016d },
+	{ 0x00000308, 0x000000fc }, { 0x00000309, 0x00001ee7 },
+	{ 0x0000030a, 0x0000016f }, { 0x0000030b, 0x00000171 },
+	{ 0x0000030c, 0x000001d4 }, { 0x0000030f, 0x00000215 },
+	{ 0x00000311, 0x00000217 }, { 0x0000031b, 0x000001b0 },
+	{ 0x00000323, 0x00001ee5 }, { 0x00000324, 0x00001e73 },
+	{ 0x00000328, 0x00000173 }, { 0x0000032d, 0x00001e77 },
+	{ 0x00000330, 0x00001e75 }, { 0x00000303, 0x00001e7d },
+	{ 0x00000323, 0x00001e7f }, { 0x00000300, 0x00001e81 },
+	{ 0x00000301, 0x00001e83 }, { 0x00000302, 0x00000175 },
+	{ 0x00000307, 0x00001e87 }, { 0x00000308, 0x00001e85 },
+	{ 0x0000030a, 0x00001e98 }, { 0x00000323, 0x00001e89 },
+	{ 0x00000307, 0x00001e8b }, { 0x00000308, 0x00001e8d },
+	{ 0x00000300, 0x00001ef3 }, { 0x00000301, 0x000000fd },
+	{ 0x00000302, 0x00000177 }, { 0x00000303, 0x00001ef9 },
+	{ 0x00000304, 0x00000233 }, { 0x00000307, 0x00001e8f },
+	{ 0x00000308, 0x000000ff }, { 0x00000309, 0x00001ef7 },
+	{ 0x0000030a, 0x00001e99 }, { 0x00000323, 0x00001ef5 },
+	{ 0x00000301, 0x0000017a }, { 0x00000302, 0x00001e91 },
+	{ 0x00000307, 0x0000017c }, { 0x0000030c, 0x0000017e },
+	{ 0x00000323, 0x00001e93 }, { 0x00000331, 0x00001e95 },
+	{ 0x00000300, 0x00001fed }, { 0x00000301, 0x00000385 },
+	{ 0x00000342, 0x00001fc1 }, { 0x00000300, 0x00001ea6 },
+	{ 0x00000301, 0x00001ea4 }, { 0x00000303, 0x00001eaa },
+	{ 0x00000309, 0x00001ea8 }, { 0x00000304, 0x000001de },
+	{ 0x00000301, 0x000001fa }, { 0x00000301, 0x000001fc },
+	{ 0x00000304, 0x000001e2 }, { 0x00000301, 0x00001e08 },
+	{ 0x00000300, 0x00001ec0 }, { 0x00000301, 0x00001ebe },
+	{ 0x00000303, 0x00001ec4 }, { 0x00000309, 0x00001ec2 },
+	{ 0x00000301, 0x00001e2e }, { 0x00000300, 0x00001ed2 },
+	{ 0x00000301, 0x00001ed0 }, { 0x00000303, 0x00001ed6 },
+	{ 0x00000309, 0x00001ed4 }, { 0x00000301, 0x00001e4c },
+	{ 0x00000304, 0x0000022c }, { 0x00000308, 0x00001e4e },
+	{ 0x00000304, 0x0000022a }, { 0x00000301, 0x000001fe },
+	{ 0x00000300, 0x000001db }, { 0x00000301, 0x000001d7 },
+	{ 0x00000304, 0x000001d5 }, { 0x0000030c, 0x000001d9 },
+	{ 0x00000300, 0x00001ea7 }, { 0x00000301, 0x00001ea5 },
+	{ 0x00000303, 0x00001eab }, { 0x00000309, 0x00001ea9 },
+	{ 0x00000304, 0x000001df }, { 0x00000301, 0x000001fb },
+	{ 0x00000301, 0x000001fd }, { 0x00000304, 0x000001e3 },
+	{ 0x00000301, 0x00001e09 }, { 0x00000300, 0x00001ec1 },
+	{ 0x00000301, 0x00001ebf }, { 0x00000303, 0x00001ec5 },
+	{ 0x00000309, 0x00001ec3 }, { 0x00000301, 0x00001e2f },
+	{ 0x00000300, 0x00001ed3 }, { 0x00000301, 0x00001ed1 },
+	{ 0x00000303, 0x00001ed7 }, { 0x00000309, 0x00001ed5 },
+	{ 0x00000301, 0x00001e4d }, { 0x00000304, 0x0000022d },
+	{ 0x00000308, 0x00001e4f }, { 0x00000304, 0x0000022b },
+	{ 0x00000301, 0x000001ff }, { 0x00000300, 0x000001dc },
+	{ 0x00000301, 0x000001d8 }, { 0x00000304, 0x000001d6 },
+	{ 0x0000030c, 0x000001da }, { 0x00000300, 0x00001eb0 },
+	{ 0x00000301, 0x00001eae }, { 0x00000303, 0x00001eb4 },
+	{ 0x00000309, 0x00001eb2 }, { 0x00000300, 0x00001eb1 },
+	{ 0x00000301, 0x00001eaf }, { 0x00000303, 0x00001eb5 },
+	{ 0x00000309, 0x00001eb3 }, { 0x00000300, 0x00001e14 },
+	{ 0x00000301, 0x00001e16 }, { 0x00000300, 0x00001e15 },
+	{ 0x00000301, 0x00001e17 }, { 0x00000300, 0x00001e50 },
+	{ 0x00000301, 0x00001e52 }, { 0x00000300, 0x00001e51 },
+	{ 0x00000301, 0x00001e53 }, { 0x00000307, 0x00001e64 },
+	{ 0x00000307, 0x00001e65 }, { 0x00000307, 0x00001e66 },
+	{ 0x00000307, 0x00001e67 }, { 0x00000301, 0x00001e78 },
+	{ 0x00000301, 0x00001e79 }, { 0x00000308, 0x00001e7a },
+	{ 0x00000308, 0x00001e7b }, { 0x00000307, 0x00001e9b },
+	{ 0x00000300, 0x00001edc }, { 0x00000301, 0x00001eda },
+	{ 0x00000303, 0x00001ee0 }, { 0x00000309, 0x00001ede },
+	{ 0x00000323, 0x00001ee2 }, { 0x00000300, 0x00001edd },
+	{ 0x00000301, 0x00001edb }, { 0x00000303, 0x00001ee1 },
+	{ 0x00000309, 0x00001edf }, { 0x00000323, 0x00001ee3 },
+	{ 0x00000300, 0x00001eea }, { 0x00000301, 0x00001ee8 },
+	{ 0x00000303, 0x00001eee }, { 0x00000309, 0x00001eec },
+	{ 0x00000323, 0x00001ef0 }, { 0x00000300, 0x00001eeb },
+	{ 0x00000301, 0x00001ee9 }, { 0x00000303, 0x00001eef },
+	{ 0x00000309, 0x00001eed }, { 0x00000323, 0x00001ef1 },
+	{ 0x0000030c, 0x000001ee }, { 0x00000304, 0x000001ec },
+	{ 0x00000304, 0x000001ed }, { 0x00000304, 0x000001e0 },
+	{ 0x00000304, 0x000001e1 }, { 0x00000306, 0x00001e1c },
+	{ 0x00000306, 0x00001e1d }, { 0x00000304, 0x00000230 },
+	{ 0x00000304, 0x00000231 }, { 0x0000030c, 0x000001ef },
+	{ 0x00000300, 0x00001fba }, { 0x00000301, 0x00000386 },
+	{ 0x00000304, 0x00001fb9 }, { 0x00000306, 0x00001fb8 },
+	{ 0x00000313, 0x00001f08 }, { 0x00000314, 0x00001f09 },
+	{ 0x00000345, 0x00001fbc }, { 0x00000300, 0x00001fc8 },
+	{ 0x00000301, 0x00000388 }, { 0x00000313, 0x00001f18 },
+	{ 0x00000314, 0x00001f19 }, { 0x00000300, 0x00001fca },
+	{ 0x00000301, 0x00000389 }, { 0x00000313, 0x00001f28 },
+	{ 0x00000314, 0x00001f29 }, { 0x00000345, 0x00001fcc },
+	{ 0x00000300, 0x00001fda }, { 0x00000301, 0x0000038a },
+	{ 0x00000304, 0x00001fd9 }, { 0x00000306, 0x00001fd8 },
+	{ 0x00000308, 0x000003aa }, { 0x00000313, 0x00001f38 },
+	{ 0x00000314, 0x00001f39 }, { 0x00000300, 0x00001ff8 },
+	{ 0x00000301, 0x0000038c }, { 0x00000313, 0x00001f48 },
+	{ 0x00000314, 0x00001f49 }, { 0x00000314, 0x00001fec },
+	{ 0x00000300, 0x00001fea }, { 0x00000301, 0x0000038e },
+	{ 0x00000304, 0x00001fe9 }, { 0x00000306, 0x00001fe8 },
+	{ 0x00000308, 0x000003ab }, { 0x00000314, 0x00001f59 },
+	{ 0x00000300, 0x00001ffa }, { 0x00000301, 0x0000038f },
+	{ 0x00000313, 0x00001f68 }, { 0x00000314, 0x00001f69 },
+	{ 0x00000345, 0x00001ffc }, { 0x00000345, 0x00001fb4 },
+	{ 0x00000345, 0x00001fc4 }, { 0x00000300, 0x00001f70 },
+	{ 0x00000301, 0x000003ac }, { 0x00000304, 0x00001fb1 },
+	{ 0x00000306, 0x00001fb0 }, { 0x00000313, 0x00001f00 },
+	{ 0x00000314, 0x00001f01 }, { 0x00000342, 0x00001fb6 },
+	{ 0x00000345, 0x00001fb3 }, { 0x00000300, 0x00001f72 },
+	{ 0x00000301, 0x000003ad }, { 0x00000313, 0x00001f10 },
+	{ 0x00000314, 0x00001f11 }, { 0x00000300, 0x00001f74 },
+	{ 0x00000301, 0x000003ae }, { 0x00000313, 0x00001f20 },
+	{ 0x00000314, 0x00001f21 }, { 0x00000342, 0x00001fc6 },
+	{ 0x00000345, 0x00001fc3 }, { 0x00000300, 0x00001f76 },
+	{ 0x00000301, 0x000003af }, { 0x00000304, 0x00001fd1 },
+	{ 0x00000306, 0x00001fd0 }, { 0x00000308, 0x000003ca },
+	{ 0x00000313, 0x00001f30 }, { 0x00000314, 0x00001f31 },
+	{ 0x00000342, 0x00001fd6 }, { 0x00000300, 0x00001f78 },
+	{ 0x00000301, 0x000003cc }, { 0x00000313, 0x00001f40 },
+	{ 0x00000314, 0x00001f41 }, { 0x00000313, 0x00001fe4 },
+	{ 0x00000314, 0x00001fe5 }, { 0x00000300, 0x00001f7a },
+	{ 0x00000301, 0x000003cd }, { 0x00000304, 0x00001fe1 },
+	{ 0x00000306, 0x00001fe0 }, { 0x00000308, 0x000003cb },
+	{ 0x00000313, 0x00001f50 }, { 0x00000314, 0x00001f51 },
+	{ 0x00000342, 0x00001fe6 }, { 0x00000300, 0x00001f7c },
+	{ 0x00000301, 0x000003ce }, { 0x00000313, 0x00001f60 },
+	{ 0x00000314, 0x00001f61 }, { 0x00000342, 0x00001ff6 },
+	{ 0x00000345, 0x00001ff3 }, { 0x00000300, 0x00001fd2 },
+	{ 0x00000301, 0x00000390 }, { 0x00000342, 0x00001fd7 },
+	{ 0x00000300, 0x00001fe2 }, { 0x00000301, 0x000003b0 },
+	{ 0x00000342, 0x00001fe7 }, { 0x00000345, 0x00001ff4 },
+	{ 0x00000301, 0x000003d3 }, { 0x00000308, 0x000003d4 },
+	{ 0x00000308, 0x00000407 }, { 0x00000306, 0x000004d0 },
+	{ 0x00000308, 0x000004d2 }, { 0x00000301, 0x00000403 },
+	{ 0x00000300, 0x00000400 }, { 0x00000306, 0x000004d6 },
+	{ 0x00000308, 0x00000401 }, { 0x00000306, 0x000004c1 },
+	{ 0x00000308, 0x000004dc }, { 0x00000308, 0x000004de },
+	{ 0x00000300, 0x0000040d }, { 0x00000304, 0x000004e2 },
+	{ 0x00000306, 0x00000419 }, { 0x00000308, 0x000004e4 },
+	{ 0x00000301, 0x0000040c }, { 0x00000308, 0x000004e6 },
+	{ 0x00000304, 0x000004ee }, { 0x00000306, 0x0000040e },
+	{ 0x00000308, 0x000004f0 }, { 0x0000030b, 0x000004f2 },
+	{ 0x00000308, 0x000004f4 }, { 0x00000308, 0x000004f8 },
+	{ 0x00000308, 0x000004ec }, { 0x00000306, 0x000004d1 },
+	{ 0x00000308, 0x000004d3 }, { 0x00000301, 0x00000453 },
+	{ 0x00000300, 0x00000450 }, { 0x00000306, 0x000004d7 },
+	{ 0x00000308, 0x00000451 }, { 0x00000306, 0x000004c2 },
+	{ 0x00000308, 0x000004dd }, { 0x00000308, 0x000004df },
+	{ 0x00000300, 0x0000045d }, { 0x00000304, 0x000004e3 },
+	{ 0x00000306, 0x00000439 }, { 0x00000308, 0x000004e5 },
+	{ 0x00000301, 0x0000045c }, { 0x00000308, 0x000004e7 },
+	{ 0x00000304, 0x000004ef }, { 0x00000306, 0x0000045e },
+	{ 0x00000308, 0x000004f1 }, { 0x0000030b, 0x000004f3 },
+	{ 0x00000308, 0x000004f5 }, { 0x00000308, 0x000004f9 },
+	{ 0x00000308, 0x000004ed }, { 0x00000308, 0x00000457 },
+	{ 0x0000030f, 0x00000476 }, { 0x0000030f, 0x00000477 },
+	{ 0x00000308, 0x000004da }, { 0x00000308, 0x000004db },
+	{ 0x00000308, 0x000004ea }, { 0x00000308, 0x000004eb },
+	{ 0x00000653, 0x00000622 }, { 0x00000654, 0x00000623 },
+	{ 0x00000655, 0x00000625 }, { 0x00000654, 0x00000624 },
+	{ 0x00000654, 0x00000626 }, { 0x00000654, 0x000006c2 },
+	{ 0x00000654, 0x000006d3 }, { 0x00000654, 0x000006c0 },
+	{ 0x0000093c, 0x00000929 }, { 0x0000093c, 0x00000931 },
+	{ 0x0000093c, 0x00000934 }, { 0x000009be, 0x000009cb },
+	{ 0x000009d7, 0x000009cc }, { 0x00000b3e, 0x00000b4b },
+	{ 0x00000b56, 0x00000b48 }, { 0x00000b57, 0x00000b4c },
+	{ 0x00000bd7, 0x00000b94 }, { 0x00000bbe, 0x00000bca },
+	{ 0x00000bd7, 0x00000bcc }, { 0x00000bbe, 0x00000bcb },
+	{ 0x00000c56, 0x00000c48 }, { 0x00000cd5, 0x00000cc0 },
+	{ 0x00000cc2, 0x00000cca }, { 0x00000cd5, 0x00000cc7 },
+	{ 0x00000cd6, 0x00000cc8 }, { 0x00000cd5, 0x00000ccb },
+	{ 0x00000d3e, 0x00000d4a }, { 0x00000d57, 0x00000d4c },
+	{ 0x00000d3e, 0x00000d4b }, { 0x00000dca, 0x00000dda },
+	{ 0x00000dcf, 0x00000ddc }, { 0x00000ddf, 0x00000dde },
+	{ 0x00000dca, 0x00000ddd }, { 0x0000102e, 0x00001026 },
+	{ 0x00000304, 0x00001e38 }, { 0x00000304, 0x00001e39 },
+	{ 0x00000304, 0x00001e5c }, { 0x00000304, 0x00001e5d },
+	{ 0x00000307, 0x00001e68 }, { 0x00000307, 0x00001e69 },
+	{ 0x00000302, 0x00001eac }, { 0x00000306, 0x00001eb6 },
+	{ 0x00000302, 0x00001ead }, { 0x00000306, 0x00001eb7 },
+	{ 0x00000302, 0x00001ec6 }, { 0x00000302, 0x00001ec7 },
+	{ 0x00000302, 0x00001ed8 }, { 0x00000302, 0x00001ed9 },
+	{ 0x00000300, 0x00001f02 }, { 0x00000301, 0x00001f04 },
+	{ 0x00000342, 0x00001f06 }, { 0x00000345, 0x00001f80 },
+	{ 0x00000300, 0x00001f03 }, { 0x00000301, 0x00001f05 },
+	{ 0x00000342, 0x00001f07 }, { 0x00000345, 0x00001f81 },
+	{ 0x00000345, 0x00001f82 }, { 0x00000345, 0x00001f83 },
+	{ 0x00000345, 0x00001f84 }, { 0x00000345, 0x00001f85 },
+	{ 0x00000345, 0x00001f86 }, { 0x00000345, 0x00001f87 },
+	{ 0x00000300, 0x00001f0a }, { 0x00000301, 0x00001f0c },
+	{ 0x00000342, 0x00001f0e }, { 0x00000345, 0x00001f88 },
+	{ 0x00000300, 0x00001f0b }, { 0x00000301, 0x00001f0d },
+	{ 0x00000342, 0x00001f0f }, { 0x00000345, 0x00001f89 },
+	{ 0x00000345, 0x00001f8a }, { 0x00000345, 0x00001f8b },
+	{ 0x00000345, 0x00001f8c }, { 0x00000345, 0x00001f8d },
+	{ 0x00000345, 0x00001f8e }, { 0x00000345, 0x00001f8f },
+	{ 0x00000300, 0x00001f12 }, { 0x00000301, 0x00001f14 },
+	{ 0x00000300, 0x00001f13 }, { 0x00000301, 0x00001f15 },
+	{ 0x00000300, 0x00001f1a }, { 0x00000301, 0x00001f1c },
+	{ 0x00000300, 0x00001f1b }, { 0x00000301, 0x00001f1d },
+	{ 0x00000300, 0x00001f22 }, { 0x00000301, 0x00001f24 },
+	{ 0x00000342, 0x00001f26 }, { 0x00000345, 0x00001f90 },
+	{ 0x00000300, 0x00001f23 }, { 0x00000301, 0x00001f25 },
+	{ 0x00000342, 0x00001f27 }, { 0x00000345, 0x00001f91 },
+	{ 0x00000345, 0x00001f92 }, { 0x00000345, 0x00001f93 },
+	{ 0x00000345, 0x00001f94 }, { 0x00000345, 0x00001f95 },
+	{ 0x00000345, 0x00001f96 }, { 0x00000345, 0x00001f97 },
+	{ 0x00000300, 0x00001f2a }, { 0x00000301, 0x00001f2c },
+	{ 0x00000342, 0x00001f2e }, { 0x00000345, 0x00001f98 },
+	{ 0x00000300, 0x00001f2b }, { 0x00000301, 0x00001f2d },
+	{ 0x00000342, 0x00001f2f }, { 0x00000345, 0x00001f99 },
+	{ 0x00000345, 0x00001f9a }, { 0x00000345, 0x00001f9b },
+	{ 0x00000345, 0x00001f9c }, { 0x00000345, 0x00001f9d },
+	{ 0x00000345, 0x00001f9e }, { 0x00000345, 0x00001f9f },
+	{ 0x00000300, 0x00001f32 }, { 0x00000301, 0x00001f34 },
+	{ 0x00000342, 0x00001f36 }, { 0x00000300, 0x00001f33 },
+	{ 0x00000301, 0x00001f35 }, { 0x00000342, 0x00001f37 },
+	{ 0x00000300, 0x00001f3a }, { 0x00000301, 0x00001f3c },
+	{ 0x00000342, 0x00001f3e }, { 0x00000300, 0x00001f3b },
+	{ 0x00000301, 0x00001f3d }, { 0x00000342, 0x00001f3f },
+	{ 0x00000300, 0x00001f42 }, { 0x00000301, 0x00001f44 },
+	{ 0x00000300, 0x00001f43 }, { 0x00000301, 0x00001f45 },
+	{ 0x00000300, 0x00001f4a }, { 0x00000301, 0x00001f4c },
+	{ 0x00000300, 0x00001f4b }, { 0x00000301, 0x00001f4d },
+	{ 0x00000300, 0x00001f52 }, { 0x00000301, 0x00001f54 },
+	{ 0x00000342, 0x00001f56 }, { 0x00000300, 0x00001f53 },
+	{ 0x00000301, 0x00001f55 }, { 0x00000342, 0x00001f57 },
+	{ 0x00000300, 0x00001f5b }, { 0x00000301, 0x00001f5d },
+	{ 0x00000342, 0x00001f5f }, { 0x00000300, 0x00001f62 },
+	{ 0x00000301, 0x00001f64 }, { 0x00000342, 0x00001f66 },
+	{ 0x00000345, 0x00001fa0 }, { 0x00000300, 0x00001f63 },
+	{ 0x00000301, 0x00001f65 }, { 0x00000342, 0x00001f67 },
+	{ 0x00000345, 0x00001fa1 }, { 0x00000345, 0x00001fa2 },
+	{ 0x00000345, 0x00001fa3 }, { 0x00000345, 0x00001fa4 },
+	{ 0x00000345, 0x00001fa5 }, { 0x00000345, 0x00001fa6 },
+	{ 0x00000345, 0x00001fa7 }, { 0x00000300, 0x00001f6a },
+	{ 0x00000301, 0x00001f6c }, { 0x00000342, 0x00001f6e },
+	{ 0x00000345, 0x00001fa8 }, { 0x00000300, 0x00001f6b },
+	{ 0x00000301, 0x00001f6d }, { 0x00000342, 0x00001f6f },
+	{ 0x00000345, 0x00001fa9 }, { 0x00000345, 0x00001faa },
+	{ 0x00000345, 0x00001fab }, { 0x00000345, 0x00001fac },
+	{ 0x00000345, 0x00001fad }, { 0x00000345, 0x00001fae },
+	{ 0x00000345, 0x00001faf }, { 0x00000345, 0x00001fb2 },
+	{ 0x00000345, 0x00001fc2 }, { 0x00000345, 0x00001ff2 },
+	{ 0x00000345, 0x00001fb7 }, { 0x00000300, 0x00001fcd },
+	{ 0x00000301, 0x00001fce }, { 0x00000342, 0x00001fcf },
+	{ 0x00000345, 0x00001fc7 }, { 0x00000345, 0x00001ff7 },
+	{ 0x00000300, 0x00001fdd }, { 0x00000301, 0x00001fde },
+	{ 0x00000342, 0x00001fdf }, { 0x00000338, 0x0000219a },
+	{ 0x00000338, 0x0000219b }, { 0x00000338, 0x000021ae },
+	{ 0x00000338, 0x000021cd }, { 0x00000338, 0x000021cf },
+	{ 0x00000338, 0x000021ce }, { 0x00000338, 0x00002204 },
+	{ 0x00000338, 0x00002209 }, { 0x00000338, 0x0000220c },
+	{ 0x00000338, 0x00002224 }, { 0x00000338, 0x00002226 },
+	{ 0x00000338, 0x00002241 }, { 0x00000338, 0x00002244 },
+	{ 0x00000338, 0x00002247 }, { 0x00000338, 0x00002249 },
+	{ 0x00000338, 0x0000226d }, { 0x00000338, 0x00002262 },
+	{ 0x00000338, 0x00002270 }, { 0x00000338, 0x00002271 },
+	{ 0x00000338, 0x00002274 }, { 0x00000338, 0x00002275 },
+	{ 0x00000338, 0x00002278 }, { 0x00000338, 0x00002279 },
+	{ 0x00000338, 0x00002280 }, { 0x00000338, 0x00002281 },
+	{ 0x00000338, 0x000022e0 }, { 0x00000338, 0x000022e1 },
+	{ 0x00000338, 0x00002284 }, { 0x00000338, 0x00002285 },
+	{ 0x00000338, 0x00002288 }, { 0x00000338, 0x00002289 },
+	{ 0x00000338, 0x000022e2 }, { 0x00000338, 0x000022e3 },
+	{ 0x00000338, 0x000022ac }, { 0x00000338, 0x000022ad },
+	{ 0x00000338, 0x000022ae }, { 0x00000338, 0x000022af },
+	{ 0x00000338, 0x000022ea }, { 0x00000338, 0x000022eb },
+	{ 0x00000338, 0x000022ec }, { 0x00000338, 0x000022ed },
+	{ 0x00003099, 0x00003094 }, { 0x00003099, 0x0000304c },
+	{ 0x00003099, 0x0000304e }, { 0x00003099, 0x00003050 },
+	{ 0x00003099, 0x00003052 }, { 0x00003099, 0x00003054 },
+	{ 0x00003099, 0x00003056 }, { 0x00003099, 0x00003058 },
+	{ 0x00003099, 0x0000305a }, { 0x00003099, 0x0000305c },
+	{ 0x00003099, 0x0000305e }, { 0x00003099, 0x00003060 },
+	{ 0x00003099, 0x00003062 }, { 0x00003099, 0x00003065 },
+	{ 0x00003099, 0x00003067 }, { 0x00003099, 0x00003069 },
+	{ 0x00003099, 0x00003070 }, { 0x0000309a, 0x00003071 },
+	{ 0x00003099, 0x00003073 }, { 0x0000309a, 0x00003074 },
+	{ 0x00003099, 0x00003076 }, { 0x0000309a, 0x00003077 },
+	{ 0x00003099, 0x00003079 }, { 0x0000309a, 0x0000307a },
+	{ 0x00003099, 0x0000307c }, { 0x0000309a, 0x0000307d },
+	{ 0x00003099, 0x0000309e }, { 0x00003099, 0x000030f4 },
+	{ 0x00003099, 0x000030ac }, { 0x00003099, 0x000030ae },
+	{ 0x00003099, 0x000030b0 }, { 0x00003099, 0x000030b2 },
+	{ 0x00003099, 0x000030b4 }, { 0x00003099, 0x000030b6 },
+	{ 0x00003099, 0x000030b8 }, { 0x00003099, 0x000030ba },
+	{ 0x00003099, 0x000030bc }, { 0x00003099, 0x000030be },
+	{ 0x00003099, 0x000030c0 }, { 0x00003099, 0x000030c2 },
+	{ 0x00003099, 0x000030c5 }, { 0x00003099, 0x000030c7 },
+	{ 0x00003099, 0x000030c9 }, { 0x00003099, 0x000030d0 },
+	{ 0x0000309a, 0x000030d1 }, { 0x00003099, 0x000030d3 },
+	{ 0x0000309a, 0x000030d4 }, { 0x00003099, 0x000030d6 },
+	{ 0x0000309a, 0x000030d7 }, { 0x00003099, 0x000030d9 },
+	{ 0x0000309a, 0x000030da }, { 0x00003099, 0x000030dc },
+	{ 0x0000309a, 0x000030dd }, { 0x00003099, 0x000030f7 },
+	{ 0x00003099, 0x000030f8 }, { 0x00003099, 0x000030f9 },
+	{ 0x00003099, 0x000030fa }, { 0x00003099, 0x000030fe },
 };
 
 
 /*
  * Canonical/Compatibility Decomposition
  */
 
 #define DECOMP_BITS_0	9
 #define DECOMP_BITS_1	7
 #define DECOMP_BITS_2	5
 #define DECOMP_COMPAT	32768
 
 static const char16_t decompose_imap[] = {
-	  272,   400,   528,   656,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   912, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,  1040,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,  1168, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	    0,     0,     0,     0,     0,     1,     2,     3, 
-	    4,     5,     6,     7,     0,     8,     9,    10, 
-	   11,    12,     0,     0,     0,    13,    14,    15, 
-	    0,     0,    16,    17,    18,    19,    20,    21, 
-	   22,    23,    24,    25,     0,     0,    26,    27, 
-	    0,     0,     0,     0,    28,     0,     0,     0, 
-	    0,    29,     0,    30,     0,     0,    31,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    32,    33,     0,     0,     0,    34,     0, 
-	    0,    35,    36,     0,     0,     0,     0,     0, 
-	    0,     0,    37,     0,    38,     0,    39,     0, 
-	    0,     0,    40,     0,     0,     0,    41,     0, 
-	    0,     0,    42,     0,     0,     0,    43,     0, 
-	    0,    44,     0,     0,     0,    45,    46,     0, 
-	   47,     0,    48,    49,    50,    51,     0,     0, 
-	    0,    52,     0,     0,     0,     0,     0,    53, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    54,    55,    56,    57,    58,     0,     0, 
-	   59,    60,    61,    62,    63,    64,    65,    66, 
-	   67,    68,    69,    70,    71,    72,    73,    74, 
-	   75,    76,    77,    78,    79,    80,     0,     0, 
-	   81,    82,    83,    84,    85,    86,    87,     0, 
-	   88,    89,    90,    91,    92,    93,     0,    94, 
-	    0,    95,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    96,    97,    98,    99,   100, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  101,     0,     0,   102,     0,     0,   103,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,   104,     0,     0,     0,     0, 
-	    0,     0,     0,     0,   105,     0,     0,   106, 
-	  107,   108,   109,   110,   111,   112,   113,     0, 
-	  114,   115,   116,   117,   118,   119,   120,   121, 
-	    0,   122,   123,   124,   125,     0,     0,     0, 
-	  126,   127,   128,   129,   130,   131,   132,   133, 
-	  134,   135,   136,   137,   138,   139,   140,   141, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  142,   143,   144,   145,   146,   147,   148,   149, 
-	  150,   151,   152,   153,   154,   155,   156,     0, 
-	  157,   158,   159,   160,   161,   162,   163,   164, 
-	  165,   166,   167,   168,   169,   170,   171,   172, 
-	  173,   174,   175,   176,   177,   178,   179,   180, 
-	  181,   182,   183,   184,   185,   186,   187,   188, 
-	  189,   190,   191,   192,   193,   194,   195,   196, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,   197,   198,     0,   199,   200,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  201,   202,   203,   204,   205,   206,   207,   208, 
-	  209,   210,   211,   212,   213,   214,   215,   216, 
-	  217,   218,   219,   220,   221,   222,   223,   224, 
-	  225,   226,   227,   228,   229,   230,   231,   232, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  233,   234,   235,   236,   237,   238,   239,   240, 
-	  241,   242,   243,   244,   245,   246,   247,   248, 
-	  249,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
+	  272,   400,   528,   656,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   912,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,  1040,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,  1168,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	    0,     0,     0,     0,     0,     1,     2,     3,
+	    4,     5,     6,     7,     0,     8,     9,    10,
+	   11,    12,     0,     0,     0,    13,    14,    15,
+	    0,     0,    16,    17,    18,    19,    20,    21,
+	   22,    23,    24,    25,     0,     0,    26,    27,
+	    0,     0,     0,     0,    28,     0,     0,     0,
+	    0,    29,     0,    30,     0,     0,    31,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    32,    33,     0,     0,     0,    34,     0,
+	    0,    35,    36,     0,     0,     0,     0,     0,
+	    0,     0,    37,     0,    38,     0,    39,     0,
+	    0,     0,    40,     0,     0,     0,    41,     0,
+	    0,     0,    42,     0,     0,     0,    43,     0,
+	    0,    44,     0,     0,     0,    45,    46,     0,
+	   47,     0,    48,    49,    50,    51,     0,     0,
+	    0,    52,     0,     0,     0,     0,     0,    53,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    54,    55,    56,    57,    58,     0,     0,
+	   59,    60,    61,    62,    63,    64,    65,    66,
+	   67,    68,    69,    70,    71,    72,    73,    74,
+	   75,    76,    77,    78,    79,    80,     0,     0,
+	   81,    82,    83,    84,    85,    86,    87,     0,
+	   88,    89,    90,    91,    92,    93,     0,    94,
+	    0,    95,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    96,    97,    98,    99,   100,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  101,     0,     0,   102,     0,     0,   103,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,   104,     0,     0,     0,     0,
+	    0,     0,     0,     0,   105,     0,     0,   106,
+	  107,   108,   109,   110,   111,   112,   113,     0,
+	  114,   115,   116,   117,   118,   119,   120,   121,
+	    0,   122,   123,   124,   125,     0,     0,     0,
+	  126,   127,   128,   129,   130,   131,   132,   133,
+	  134,   135,   136,   137,   138,   139,   140,   141,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  142,   143,   144,   145,   146,   147,   148,   149,
+	  150,   151,   152,   153,   154,   155,   156,     0,
+	  157,   158,   159,   160,   161,   162,   163,   164,
+	  165,   166,   167,   168,   169,   170,   171,   172,
+	  173,   174,   175,   176,   177,   178,   179,   180,
+	  181,   182,   183,   184,   185,   186,   187,   188,
+	  189,   190,   191,   192,   193,   194,   195,   196,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,   197,   198,     0,   199,   200,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  201,   202,   203,   204,   205,   206,   207,   208,
+	  209,   210,   211,   212,   213,   214,   215,   216,
+	  217,   218,   219,   220,   221,   222,   223,   224,
+	  225,   226,   227,   228,   229,   230,   231,   232,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  233,   234,   235,   236,   237,   238,   239,   240,
+	  241,   242,   243,   244,   245,   246,   247,   248,
+	  249,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
 };
 
 static const struct {
 	char16_t tbl[32];
 } decompose_table[] = {
 	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 32769,      0,      0,      0,      0,      0,      0,      0, 
-	 32770,      0,  32772,      0,      0,      0,      0,  32773, 
-	     0,      0,  32775,  32776,  32777,  32779,      0,      0, 
-	 32780,  32782,  32783,      0,  32784,  32787,  32790,      0, 
-	}},
-	{{
-	    25,     27,     29,     31,     33,     35,      0,     37, 
-	    39,     41,     43,     45,     47,     49,     51,     53, 
-	     0,     55,     57,     59,     61,     63,     65,      0, 
-	     0,     67,     69,     71,     73,     75,      0,      0, 
-	}},
-	{{
-	    77,     79,     81,     83,     85,     87,      0,     89, 
-	    91,     93,     95,     97,     99,    101,    103,    105, 
-	     0,    107,    109,    111,    113,    115,    117,      0, 
-	     0,    119,    121,    123,    125,    127,      0,    129, 
-	}},
-	{{
-	   131,    133,    135,    137,    139,    141,    143,    145, 
-	   147,    149,    151,    153,    155,    157,    159,    161, 
-	     0,      0,    163,    165,    167,    169,    171,    173, 
-	   175,    177,    179,    181,    183,    185,    187,    189, 
-	}},
-	{{
-	   191,    193,    195,    197,    199,    201,      0,      0, 
-	   203,    205,    207,    209,    211,    213,    215,    217, 
-	   219,      0,  32989,  32991,    225,    227,    229,    231, 
-	     0,    233,    235,    237,    239,    241,    243,  33013, 
-	}},
-	{{
-	 33015,      0,      0,    249,    251,    253,    255,    257, 
-	   259,  33029,      0,      0,    263,    265,    267,    269, 
-	   271,    273,      0,      0,    275,    277,    279,    281, 
-	   283,    285,    287,    289,    291,    293,    295,    297, 
-	}},
-	{{
-	   299,    301,    303,    305,    307,    309,      0,      0, 
-	   311,    313,    315,    317,    319,    321,    323,    325, 
-	   327,    329,    331,    333,    335,    337,    339,    341, 
-	   343,    345,    347,    349,    351,    353,    355,  33125, 
-	}},
-	{{
-	   358,    360,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,    362, 
-	   364,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,  33134,  33136,  33138,  33140, 
-	 33142,  33144,  33146,  33148,  33150,    384,    386,    388, 
-	   390,    392,    394,    396,    398,    400,    402,    404, 
-	   406,    408,    410,    412,    414,      0,    416,    418, 
-	}},
-	{{
-	   420,    422,    424,    426,      0,      0,    428,    430, 
-	   432,    434,    436,    438,    440,    442,    444,    446, 
-	   448,  33218,  33220,  33222,    456,    458,      0,      0, 
-	   460,    462,    464,    466,    468,    470,    472,    474, 
-	}},
-	{{
-	   476,    478,    480,    482,    484,    486,    488,    490, 
-	   492,    494,    496,    498,    500,    502,    504,    506, 
-	   508,    510,    512,    514,    516,    518,    520,    522, 
-	   524,    526,    528,    530,      0,      0,    532,    534, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,    536,    538, 
-	   540,    542,    544,    546,    548,    550,    552,    554, 
-	   556,    558,    560,    562,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 33332,  33333,  33334,  33335,  33336,  33337,  33338,  33339, 
-	 33340,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 33341,  33343,  33345,  33347,  33349,  33351,      0,      0, 
-	}},
-	{{
-	 33353,  33354,  33355,  33356,  33357,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	   590,    591,      0,    592,    593,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,    595,      0,      0,      0, 
-	     0,      0,  33364,      0,      0,      0,    598,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,  33367,    601,    603,    605, 
-	   606,    608,    610,      0,    612,      0,    614,    616, 
-	   618,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,    620,    622,    624,    626,    628,    630, 
-	   632,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,    634,    636,    638,    640,    642,      0, 
-	 33412,  33413,  33414,    647,    649,  33419,  33420,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 33421,  33422,  33423,      0,  33424,  33425,      0,      0, 
-	     0,  33426,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	   659,    661,      0,    663,      0,      0,      0,    665, 
-	     0,      0,      0,      0,    667,    669,    671,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    673,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    675,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	   677,    679,      0,    681,      0,      0,      0,    683, 
-	     0,      0,      0,      0,    685,    687,    689,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,    691,    693, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,    695,    697,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	   699,    701,    703,    705,      0,      0,    707,    709, 
-	     0,      0,    711,    713,    715,    717,    719,    721, 
-	}},
-	{{
-	     0,      0,    723,    725,    727,    729,    731,    733, 
-	     0,      0,    735,    737,    739,    741,    743,    745, 
-	   747,    749,    751,    753,    755,    757,      0,      0, 
-	   759,    761,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,  33531, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,    765,    767,    769,    771,    773,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,  33543,  33545,  33547, 
-	 33549,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	   783,      0,    785,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,    787,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    789,      0,      0,      0,      0,      0,      0, 
-	     0,    791,      0,      0,    793,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	   795,    797,    799,    801,    803,    805,    807,    809, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,    811,    813,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,    815,    817,      0,    819, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,    821,      0,      0,    823,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    825,    827,    829,      0,      0,    831,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	   833,      0,      0,    835,    837,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,    839,    841,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,    843,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,    845,    847,    849,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	   851,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	   853,      0,      0,      0,      0,      0,      0,    855, 
-	   857,      0,    859,    861,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,    863,    865,    867,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,    869,      0,    871,    873,    875,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  33645,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  33647,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  33649,  33651,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  33653,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,    886,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,    888,      0,      0, 
-	     0,      0,    890,      0,      0,      0,      0,    892, 
-	     0,      0,      0,      0,    894,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    896,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,    898,      0,    900,    902,  33672, 
-	   906,  33676,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,    910,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,    912,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,    914,      0,      0, 
-	}},
-	{{
-	     0,      0,    916,      0,      0,      0,      0,    918, 
-	     0,      0,      0,      0,    920,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,    922,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,    924,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  33694,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  33695,  33696,  33697,      0, 
-	 33698,  33699,  33700,  33701,  33702,  33703,  33704,  33705, 
-	 33706,  33707,  33708,      0,  33709,  33710,  33711,  33712, 
-	}},
-	{{
-	 33713,  33714,  33715,  33716,  33717,  33718,  33719,  33720, 
-	 33721,  33722,  33723,  33724,  33725,  33726,      0,  33727, 
-	 33728,  33729,  33730,  33731,  33732,  33733,  33734,  33735, 
-	 33736,  33737,  33738,  33739,  33740,  33741,  33742,  33743, 
-	}},
-	{{
-	 33744,  33745,  33746,  33747,  33748,  33749,  33750,  33751, 
-	 33752,  33753,  33754,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 33755,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  33756,  33757,  33758,  33759,  33760, 
-	}},
-	{{
-	 33761,  33762,  33763,  33764,  33765,  33766,  33767,  33768, 
-	 33769,  33770,  33771,  33772,  33773,  33774,  33775,  33776, 
-	 33777,  33778,  33779,  33780,  33781,  33782,  33783,  33784, 
-	 33785,  33786,  33787,  33788,  33789,  33790,  33791,  33792, 
-	}},
-	{{
-	  1025,   1027,   1029,   1031,   1033,   1035,   1037,   1039, 
-	  1041,   1043,   1045,   1047,   1049,   1051,   1053,   1055, 
-	  1057,   1059,   1061,   1063,   1065,   1067,   1069,   1071, 
-	  1073,   1075,   1077,   1079,   1081,   1083,   1085,   1087, 
-	}},
-	{{
-	  1089,   1091,   1093,   1095,   1097,   1099,   1101,   1103, 
-	  1105,   1107,   1109,   1111,   1113,   1115,   1117,   1119, 
-	  1121,   1123,   1125,   1127,   1129,   1131,   1133,   1135, 
-	  1137,   1139,   1141,   1143,   1145,   1147,   1149,   1151, 
-	}},
-	{{
-	  1153,   1155,   1157,   1159,   1161,   1163,   1165,   1167, 
-	  1169,   1171,   1173,   1175,   1177,   1179,   1181,   1183, 
-	  1185,   1187,   1189,   1191,   1193,   1195,   1197,   1199, 
-	  1201,   1203,   1205,   1207,   1209,   1211,   1213,   1215, 
-	}},
-	{{
-	  1217,   1219,   1221,   1223,   1225,   1227,   1229,   1231, 
-	  1233,   1235,   1237,   1239,   1241,   1243,   1245,   1247, 
-	  1249,   1251,   1253,   1255,   1257,   1259,   1261,   1263, 
-	  1265,   1267,   1269,   1271,   1273,   1275,   1277,   1279, 
-	}},
-	{{
-	  1281,   1283,   1285,   1287,   1289,   1291,   1293,   1295, 
-	  1297,   1299,   1301,   1303,   1305,   1307,   1309,   1311, 
-	  1313,   1315,   1317,   1319,   1321,   1323,   1325,   1327, 
-	  1329,   1331,  34101,   1335,      0,      0,      0,      0, 
-	}},
-	{{
-	  1337,   1339,   1341,   1343,   1345,   1347,   1349,   1351, 
-	  1353,   1355,   1357,   1359,   1361,   1363,   1365,   1367, 
-	  1369,   1371,   1373,   1375,   1377,   1379,   1381,   1383, 
-	  1385,   1387,   1389,   1391,   1393,   1395,   1397,   1399, 
-	}},
-	{{
-	  1401,   1403,   1405,   1407,   1409,   1411,   1413,   1415, 
-	  1417,   1419,   1421,   1423,   1425,   1427,   1429,   1431, 
-	  1433,   1435,   1437,   1439,   1441,   1443,   1445,   1447, 
-	  1449,   1451,   1453,   1455,   1457,   1459,   1461,   1463, 
-	}},
-	{{
-	  1465,   1467,   1469,   1471,   1473,   1475,   1477,   1479, 
-	  1481,   1483,   1485,   1487,   1489,   1491,   1493,   1495, 
-	  1497,   1499,   1501,   1503,   1505,   1507,   1509,   1511, 
-	  1513,   1515,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	  1517,   1519,   1521,   1523,   1525,   1527,   1529,   1531, 
-	  1533,   1535,   1537,   1539,   1541,   1543,   1545,   1547, 
-	  1549,   1551,   1553,   1555,   1557,   1559,      0,      0, 
-	  1561,   1563,   1565,   1567,   1569,   1571,      0,      0, 
-	}},
-	{{
-	  1573,   1575,   1577,   1579,   1581,   1583,   1585,   1587, 
-	  1589,   1591,   1593,   1595,   1597,   1599,   1601,   1603, 
-	  1605,   1607,   1609,   1611,   1613,   1615,   1617,   1619, 
-	  1621,   1623,   1625,   1627,   1629,   1631,   1633,   1635, 
-	}},
-	{{
-	  1637,   1639,   1641,   1643,   1645,   1647,      0,      0, 
-	  1649,   1651,   1653,   1655,   1657,   1659,      0,      0, 
-	  1661,   1663,   1665,   1667,   1669,   1671,   1673,   1675, 
-	     0,   1677,      0,   1679,      0,   1681,      0,   1683, 
-	}},
-	{{
-	  1685,   1687,   1689,   1691,   1693,   1695,   1697,   1699, 
-	  1701,   1703,   1705,   1707,   1709,   1711,   1713,   1715, 
-	  1717,   1719,   1720,   1722,   1723,   1725,   1726,   1728, 
-	  1729,   1731,   1732,   1734,   1735,   1737,      0,      0, 
-	}},
-	{{
-	  1738,   1740,   1742,   1744,   1746,   1748,   1750,   1752, 
-	  1754,   1756,   1758,   1760,   1762,   1764,   1766,   1768, 
-	  1770,   1772,   1774,   1776,   1778,   1780,   1782,   1784, 
-	  1786,   1788,   1790,   1792,   1794,   1796,   1798,   1800, 
-	}},
-	{{
-	  1802,   1804,   1806,   1808,   1810,   1812,   1814,   1816, 
-	  1818,   1820,   1822,   1824,   1826,   1828,   1830,   1832, 
-	  1834,   1836,   1838,   1840,   1842,      0,   1844,   1846, 
-	  1848,   1850,   1852,   1854,   1855,  34625,   1859,  34628, 
-	}},
-	{{
-	 34630,   1864,   1866,   1868,   1870,      0,   1872,   1874, 
-	  1876,   1878,   1879,   1881,   1882,   1884,   1886,   1888, 
-	  1890,   1892,   1894,   1896,      0,      0,   1897,   1899, 
-	  1901,   1903,   1905,   1907,      0,   1908,   1910,   1912, 
-	}},
-	{{
-	  1914,   1916,   1918,   1920,   1921,   1923,   1925,   1927, 
-	  1929,   1931,   1933,   1935,   1936,   1938,   1940,   1941, 
-	     0,      0,   1942,   1944,   1946,      0,   1948,   1950, 
-	  1952,   1954,   1955,   1957,   1958,   1960,  34729,      0, 
-	}},
-	{{
-	  1963,   1964,  34733,  34734,  34735,  34736,  34737,  34738, 
-	 34739,  34740,  34741,      0,      0,      0,      0,      0, 
-	     0,  34742,      0,      0,      0,      0,      0,  34743, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,  34745,  34746,  34748,      0, 
-	     0,      0,      0,      0,      0,      0,      0,  34751, 
-	     0,      0,      0,  34752,  34754,      0,  34757,  34759, 
-	     0,      0,      0,      0,  34762,      0,  34764,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,  34766, 
-	 34768,  34770,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,  34772, 
-	     0,      0,      0,      0,      0,      0,      0,  34776, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 34777,  34778,      0,      0,  34779,  34780,  34781,  34782, 
-	 34783,  34784,  34785,  34786,  34787,  34788,  34789,  34790, 
-	}},
-	{{
-	 34791,  34792,  34793,  34794,  34795,  34796,  34797,  34798, 
-	 34799,  34800,  34801,  34802,  34803,  34804,  34805,      0, 
-	 34806,  34807,  34808,  34809,  34810,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 34811,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 34813,  34816,  34819,  34820,      0,  34822,  34825,  34828, 
-	     0,  34829,  34831,  34832,  34833,  34834,  34835,  34836, 
-	 34837,  34838,  34839,  34840,      0,  34841,  34842,      0, 
-	     0,  34844,  34845,  34846,  34847,  34848,      0,      0, 
-	}},
-	{{
-	 34849,  34851,  34854,      0,  34856,      0,   2089,      0, 
-	 34858,      0,   2091,   2092,  34861,  34862,      0,  34863, 
-	 34864,  34865,      0,  34866,  34867,  34868,  34869,  34870, 
-	 34871,  34872,      0,  34873,  34876,  34877,  34878,  34879, 
-	}},
-	{{
-	 34880,      0,      0,      0,      0,  34881,  34882,  34883, 
-	 34884,  34885,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  34886,  34889,  34892,  34895,  34898, 
-	 34901,  34904,  34907,  34910,  34913,  34916,  34919,  34922, 
-	}},
-	{{
-	 34924,  34925,  34927,  34930,  34932,  34933,  34935,  34938, 
-	 34942,  34944,  34945,  34947,  34950,  34951,  34952,  34953, 
-	 34954,  34955,  34957,  34960,  34962,  34963,  34965,  34968, 
-	 34972,  34974,  34975,  34977,  34980,  34981,  34982,  34983, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,   2216,   2218,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,   2220,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,   2222,   2224,   2226, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,   2228,      0,      0,      0, 
-	     0,   2230,      0,      0,   2232,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,   2234,      0,   2236,      0, 
-	     0,      0,      0,      0,  35006,  35008,      0,  35011, 
-	 35013,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,   2248,      0,      0,   2250,      0,      0,   2252, 
-	     0,   2254,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	  2256,      0,   2258,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,   2260,   2262,   2264, 
-	  2266,   2268,      0,      0,   2270,   2272,      0,      0, 
-	  2274,   2276,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	  2278,   2280,      0,      0,   2282,   2284,      0,      0, 
-	  2286,   2288,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2290,   2292,   2294,   2296, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	  2298,   2300,   2302,   2304,      0,      0,      0,      0, 
-	     0,      0,   2306,   2308,   2310,   2312,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,   2314,   2315,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 35084,  35085,  35086,  35087,  35088,  35089,  35090,  35091, 
-	 35092,  35093,  35095,  35097,  35099,  35101,  35103,  35105, 
-	 35107,  35109,  35111,  35113,  35115,  35118,  35121,  35124, 
-	 35127,  35130,  35133,  35136,  35139,  35142,  35146,  35150, 
-	}},
-	{{
-	 35154,  35158,  35162,  35166,  35170,  35174,  35178,  35182, 
-	 35186,  35188,  35190,  35192,  35194,  35196,  35198,  35200, 
-	 35202,  35204,  35207,  35210,  35213,  35216,  35219,  35222, 
-	 35225,  35228,  35231,  35234,  35237,  35240,  35243,  35246, 
-	}},
-	{{
-	 35249,  35252,  35255,  35258,  35261,  35264,  35267,  35270, 
-	 35273,  35276,  35279,  35282,  35285,  35288,  35291,  35294, 
-	 35297,  35300,  35303,  35306,  35309,  35312,  35315,  35316, 
-	 35317,  35318,  35319,  35320,  35321,  35322,  35323,  35324, 
-	}},
-	{{
-	 35325,  35326,  35327,  35328,  35329,  35330,  35331,  35332, 
-	 35333,  35334,  35335,  35336,  35337,  35338,  35339,  35340, 
-	 35341,  35342,  35343,  35344,  35345,  35346,  35347,  35348, 
-	 35349,  35350,  35351,  35352,  35353,  35354,  35355,  35356, 
-	}},
-	{{
-	 35357,  35358,  35359,  35360,  35361,  35362,  35363,  35364, 
-	 35365,  35366,  35367,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  35368,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,  35372,  35375,  35377,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2612,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,  35382, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,  35383, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  35384,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 35385,  35386,  35387,  35388,  35389,  35390,  35391,  35392, 
-	 35393,  35394,  35395,  35396,  35397,  35398,  35399,  35400, 
-	 35401,  35402,  35403,  35404,  35405,  35406,  35407,  35408, 
-	 35409,  35410,  35411,  35412,  35413,  35414,  35415,  35416, 
-	}},
-	{{
-	 35417,  35418,  35419,  35420,  35421,  35422,  35423,  35424, 
-	 35425,  35426,  35427,  35428,  35429,  35430,  35431,  35432, 
-	 35433,  35434,  35435,  35436,  35437,  35438,  35439,  35440, 
-	 35441,  35442,  35443,  35444,  35445,  35446,  35447,  35448, 
-	}},
-	{{
-	 35449,  35450,  35451,  35452,  35453,  35454,  35455,  35456, 
-	 35457,  35458,  35459,  35460,  35461,  35462,  35463,  35464, 
-	 35465,  35466,  35467,  35468,  35469,  35470,  35471,  35472, 
-	 35473,  35474,  35475,  35476,  35477,  35478,  35479,  35480, 
-	}},
-	{{
-	 35481,  35482,  35483,  35484,  35485,  35486,  35487,  35488, 
-	 35489,  35490,  35491,  35492,  35493,  35494,  35495,  35496, 
-	 35497,  35498,  35499,  35500,  35501,  35502,  35503,  35504, 
-	 35505,  35506,  35507,  35508,  35509,  35510,  35511,  35512, 
-	}},
-	{{
-	 35513,  35514,  35515,  35516,  35517,  35518,  35519,  35520, 
-	 35521,  35522,  35523,  35524,  35525,  35526,  35527,  35528, 
-	 35529,  35530,  35531,  35532,  35533,  35534,  35535,  35536, 
-	 35537,  35538,  35539,  35540,  35541,  35542,  35543,  35544, 
-	}},
-	{{
-	 35545,  35546,  35547,  35548,  35549,  35550,  35551,  35552, 
-	 35553,  35554,  35555,  35556,  35557,  35558,  35559,  35560, 
-	 35561,  35562,  35563,  35564,  35565,  35566,  35567,  35568, 
-	 35569,  35570,  35571,  35572,  35573,  35574,  35575,  35576, 
-	}},
-	{{
-	 35577,  35578,  35579,  35580,  35581,  35582,  35583,  35584, 
-	 35585,  35586,  35587,  35588,  35589,  35590,  35591,  35592, 
-	 35593,  35594,  35595,  35596,  35597,  35598,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 35599,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,  35600,      0, 
-	 35601,  35602,  35603,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2836,      0,   2838,      0, 
-	  2840,      0,   2842,      0,   2844,      0,   2846,      0, 
-	  2848,      0,   2850,      0,   2852,      0,   2854,      0, 
-	}},
-	{{
-	  2856,      0,   2858,      0,      0,   2860,      0,   2862, 
-	     0,   2864,      0,      0,      0,      0,      0,      0, 
-	  2866,   2868,      0,   2870,   2872,      0,   2874,   2876, 
-	     0,   2878,   2880,      0,   2882,   2884,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2886,      0,      0,      0, 
-	     0,      0,      0,  35656,  35658,      0,   2892,  35662, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2896,      0,   2898,      0, 
-	  2900,      0,   2902,      0,   2904,      0,   2906,      0, 
-	  2908,      0,   2910,      0,   2912,      0,   2914,      0, 
-	}},
-	{{
-	  2916,      0,   2918,      0,      0,   2920,      0,   2922, 
-	     0,   2924,      0,      0,      0,      0,      0,      0, 
-	  2926,   2928,      0,   2930,   2932,      0,   2934,   2936, 
-	     0,   2938,   2940,      0,   2942,   2944,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,   2946,      0,      0,   2948, 
-	  2950,   2952,   2954,      0,      0,      0,   2956,  35726, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,  35728,  35729,  35730,  35731,  35732,  35733,  35734, 
-	 35735,  35736,  35737,  35738,  35739,  35740,  35741,  35742, 
-	}},
-	{{
-	 35743,  35744,  35745,  35746,  35747,  35748,  35749,  35750, 
-	 35751,  35752,  35753,  35754,  35755,  35756,  35757,  35758, 
-	 35759,  35760,  35761,  35762,  35763,  35764,  35765,  35766, 
-	 35767,  35768,  35769,  35770,  35771,  35772,  35773,  35774, 
-	}},
-	{{
-	 35775,  35776,  35777,  35778,  35779,  35780,  35781,  35782, 
-	 35783,  35784,  35785,  35786,  35787,  35788,  35789,  35790, 
-	 35791,  35792,  35793,  35794,  35795,  35796,  35797,  35798, 
-	 35799,  35800,  35801,  35802,  35803,  35804,  35805,  35806, 
-	}},
-	{{
-	 35807,  35808,  35809,  35810,  35811,  35812,  35813,  35814, 
-	 35815,  35816,  35817,  35818,  35819,  35820,  35821,      0, 
-	     0,      0,  35822,  35823,  35824,  35825,  35826,  35827, 
-	 35828,  35829,  35830,  35831,  35832,  35833,  35834,  35835, 
-	}},
-	{{
-	 35836,  35839,  35842,  35845,  35848,  35851,  35854,  35857, 
-	 35860,  35863,  35866,  35869,  35872,  35875,  35878,  35882, 
-	 35886,  35890,  35894,  35898,  35902,  35906,  35910,  35914, 
-	 35918,  35922,  35926,  35930,  35934,  35938,  35945,      0, 
-	}},
-	{{
-	 35951,  35954,  35957,  35960,  35963,  35966,  35969,  35972, 
-	 35975,  35978,  35981,  35984,  35987,  35990,  35993,  35996, 
-	 35999,  36002,  36005,  36008,  36011,  36014,  36017,  36020, 
-	 36023,  36026,  36029,  36032,  36035,  36038,  36041,  36044, 
-	}},
-	{{
-	 36047,  36050,  36053,  36056,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 36059,  36062,  36064,  36066,  36068,  36070,  36072,  36074, 
-	 36076,  36078,  36080,  36082,  36084,  36086,  36088,  36090, 
-	}},
-	{{
-	 36092,  36093,  36094,  36095,  36096,  36097,  36098,  36099, 
-	 36100,  36101,  36102,  36103,  36104,  36105,  36106,  36108, 
-	 36110,  36112,  36114,  36116,  36118,  36120,  36122,  36124, 
-	 36126,  36128,  36130,  36132,  36134,  36139,  36143,      0, 
-	}},
-	{{
-	 36145,  36146,  36147,  36148,  36149,  36150,  36151,  36152, 
-	 36153,  36154,  36155,  36156,  36157,  36158,  36159,  36160, 
-	 36161,  36162,  36163,  36164,  36165,  36166,  36167,  36168, 
-	 36169,  36170,  36171,  36172,  36173,  36174,  36175,  36176, 
-	}},
-	{{
-	 36177,  36178,  36179,  36180,  36181,  36182,  36183,  36184, 
-	 36185,  36186,  36187,  36188,  36189,  36190,  36191,  36192, 
-	 36193,  36194,  36196,  36198,  36200,  36202,  36204,  36206, 
-	 36208,  36210,  36212,  36214,  36216,  36218,  36220,  36222, 
-	}},
-	{{
-	 36224,  36226,  36228,  36230,  36232,  36234,  36236,  36238, 
-	 36240,  36242,  36245,  36248,  36251,  36253,  36256,  36258, 
-	 36261,  36262,  36263,  36264,  36265,  36266,  36267,  36268, 
-	 36269,  36270,  36271,  36272,  36273,  36274,  36275,  36276, 
-	}},
-	{{
-	 36277,  36278,  36279,  36280,  36281,  36282,  36283,  36284, 
-	 36285,  36286,  36287,  36288,  36289,  36290,  36291,  36292, 
-	 36293,  36294,  36295,  36296,  36297,  36298,  36299,  36300, 
-	 36301,  36302,  36303,  36304,  36305,  36306,  36307,      0, 
-	}},
-	{{
-	 36308,  36312,  36316,  36320,  36323,  36327,  36330,  36333, 
-	 36338,  36342,  36345,  36348,  36351,  36355,  36359,  36362, 
-	 36365,  36367,  36370,  36374,  36378,  36380,  36385,  36391, 
-	 36396,  36399,  36404,  36409,  36413,  36416,  36419,  36422, 
-	}},
-	{{
-	 36426,  36431,  36435,  36438,  36441,  36444,  36446,  36448, 
-	 36450,  36452,  36455,  36458,  36463,  36466,  36470,  36475, 
-	 36478,  36480,  36482,  36487,  36491,  36496,  36499,  36504, 
-	 36506,  36509,  36512,  36515,  36518,  36521,  36525,  36528, 
-	}},
-	{{
-	 36530,  36533,  36536,  36539,  36543,  36546,  36549,  36552, 
-	 36557,  36561,  36563,  36568,  36570,  36574,  36578,  36581, 
-	 36584,  36587,  36591,  36593,  36596,  36600,  36602,  36607, 
-	 36610,  36612,  36614,  36616,  36618,  36620,  36622,  36624, 
-	}},
-	{{
-	 36626,  36628,  36630,  36633,  36636,  36639,  36642,  36645, 
-	 36648,  36651,  36654,  36657,  36660,  36663,  36666,  36669, 
-	 36672,  36675,  36678,  36680,  36682,  36685,  36687,  36689, 
-	 36691,  36694,  36697,  36699,  36701,  36703,  36705,  36707, 
-	}},
-	{{
-	 36711,  36713,  36715,  36717,  36719,  36721,  36723,  36725, 
-	 36727,  36730,  36734,  36736,  36738,  36740,  36742,  36744, 
-	 36746,  36748,  36751,  36754,  36757,  36760,  36762,  36764, 
-	 36766,  36768,  36770,  36772,  36774,  36776,  36778,  36780, 
-	}},
-	{{
-	 36783,  36786,  36788,  36791,  36794,  36797,  36799,  36802, 
-	 36805,  36809,  36811,  36814,  36817,  36820,  36823,  36828, 
-	 36834,  36836,  36838,  36840,  36842,  36844,  36846,  36848, 
-	 36850,  36852,  36854,  36856,  36858,  36860,  36862,  36864, 
-	}},
-	{{
-	 36866,  36868,  36870,  36874,  36876,  36878,  36880,  36884, 
-	 36887,  36889,  36891,  36893,  36895,  36897,  36899,  36901, 
-	 36903,  36905,  36907,  36910,  36912,  36914,  36917,  36920, 
-	 36922,  36926,  36929,  36931,  36933,  36935,  36937,  36940, 
-	}},
-	{{
-	 36943,  36945,  36947,  36949,  36951,  36953,  36955,  36957, 
-	 36959,  36961,  36964,  36967,  36970,  36973,  36976,  36979, 
-	 36982,  36985,  36988,  36991,  36994,  36997,  37000,  37003, 
-	 37006,  37009,  37012,  37015,  37018,  37021,  37024,  37027, 
-	}},
-	{{
-	  4262,   4263,   4264,   4265,   4266,   4267,   4268,   4269, 
-	  4270,   4271,   4272,   4273,   4274,   4275,   4276,   4277, 
-	  4278,   4279,   4280,   4281,   4282,   4283,   4284,   4285, 
-	  4286,   4287,   4288,   4289,   4290,   4291,   4292,   4293, 
-	}},
-	{{
-	  4294,   4295,   4296,   4297,   4298,   4299,   4300,   4301, 
-	  4302,   4303,   4304,   4305,   4306,   4307,   4308,   4309, 
-	  4310,   4311,   4312,   4313,   4314,   4315,   4316,   4317, 
-	  4318,   4319,   4320,   4321,   4322,   4323,   4324,   4325, 
-	}},
-	{{
-	  4326,   4327,   4328,   4329,   4330,   4331,   4332,   4333, 
-	  4334,   4335,   4336,   4337,   4338,   4339,   4340,   4341, 
-	  4342,   4343,   4344,   4345,   4346,   4347,   4348,   4349, 
-	  4350,   4351,   4352,   4353,   4354,   4355,   4356,   4357, 
-	}},
-	{{
-	  4358,   4359,   4360,   4361,   4362,   4363,   4364,   4365, 
-	  4366,   4367,   4368,   4369,   4370,   4371,   4372,   4373, 
-	  4374,   4375,   4376,   4377,   4378,   4379,   4380,   4381, 
-	  4382,   4383,   4384,   4385,   4386,   4387,   4388,   4389, 
-	}},
-	{{
-	  4390,   4391,   4392,   4393,   4394,   4395,   4396,   4397, 
-	  4398,   4399,   4400,   4401,   4402,   4403,   4404,   4405, 
-	  4406,   4407,   4408,   4409,   4410,   4411,   4412,   4413, 
-	  4414,   4415,   4416,   4417,   4418,   4419,   4420,   4421, 
-	}},
-	{{
-	  4422,   4423,   4424,   4425,   4426,   4427,   4428,   4429, 
-	  4430,   4431,   4432,   4433,   4434,   4435,   4436,   4437, 
-	  4438,   4439,   4440,   4441,   4442,   4443,   4444,   4445, 
-	  4446,   4447,   4448,   4449,   4450,   4451,   4452,   4453, 
-	}},
-	{{
-	  4454,   4455,   4456,   4457,   4458,   4459,   4460,   4461, 
-	  4462,   4463,   4464,   4465,   4466,   4467,   4468,   4469, 
-	  4470,   4471,   4472,   4473,   4474,   4475,   4476,   4477, 
-	  4478,   4479,   4480,   4481,   4482,   4483,   4484,   4485, 
-	}},
-	{{
-	  4486,   4487,   4488,   4489,   4490,   4491,   4492,   4493, 
-	  4494,   4495,   4496,   4497,   4498,   4499,   4500,   4501, 
-	  4502,   4503,   4504,   4505,   4506,   4507,   4508,   4509, 
-	  4510,   4511,   4512,   4513,   4514,   4515,   4516,   4517, 
-	}},
-	{{
-	  4518,   4519,   4520,   4521,   4522,   4523,   4524,   4525, 
-	  4526,   4527,   4528,   4529,   4530,   4531,      0,      0, 
-	  4532,      0,   4533,      0,      0,   4534,   4535,   4536, 
-	  4537,   4538,   4539,   4540,   4541,   4542,   4543,      0, 
-	}},
-	{{
-	  4544,      0,   4545,      0,      0,   4546,   4547,      0, 
-	     0,      0,   4548,   4549,   4550,   4551,      0,      0, 
-	  4552,   4553,   4554,   4555,   4556,   4557,   4558,   4559, 
-	  4560,   4561,   4562,   4563,   4564,   4565,   4566,   4567, 
-	}},
-	{{
-	  4568,   4569,   4570,   4571,   4572,   4573,   4574,   4575, 
-	  4576,   4577,   4578,   4579,   4580,   4581,   4582,   4583, 
-	  4584,   4585,   4586,   4587,   4588,   4589,   4590,   4591, 
-	  4592,   4593,   4594,   4595,   4596,   4597,   4598,   4599, 
-	}},
-	{{
-	  4600,   4601,   4602,   4603,   4604,   4605,   4606,   4607, 
-	  4608,   4609,   4610,      0,      0,      0,      0,      0, 
-	  4611,   4612,   4613,   4614,   4615,   4616,   4617,   4618, 
-	  4619,   4620,   4621,   4622,   4623,   4624,   4625,   4626, 
-	}},
-	{{
-	  4627,   4628,   4629,   4630,   4631,   4632,   4633,   4634, 
-	  4635,   4636,   4637,   4638,   4639,   4640,   4641,   4642, 
-	  4643,   4644,   4645,   4646,   4647,   4648,   4649,   4650, 
-	  4651,   4652,   4653,   4654,   4655,   4656,   4657,   4658, 
-	}},
-	{{
-	  4659,   4660,   4661,   4662,   4663,   4664,   4665,   4666, 
-	  4667,   4668,   4669,   4670,   4671,   4672,   4673,   4674, 
-	  4675,   4676,   4677,   4678,   4679,   4680,   4681,   4682, 
-	  4683,   4684,   4685,   4686,   4687,   4688,   4689,   4690, 
-	}},
-	{{
-	  4691,   4692,   4693,   4694,   4695,   4696,   4697,   4698, 
-	  4699,   4700,   4701,   4702,   4703,   4704,   4705,   4706, 
-	  4707,   4708,   4709,   4710,   4711,   4712,   4713,   4714, 
-	  4715,   4716,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 37485,  37487,  37489,  37491,  37494,  37497,  37499,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  37501,  37503,  37505,  37507,  37509, 
-	     0,      0,      0,      0,      0,   4743,      0,   4745, 
-	}},
-	{{
-	 37515,  37516,  37517,  37518,  37519,  37520,  37521,  37522, 
-	 37523,  37524,   4757,   4759,   4761,   4763,   4765,   4767, 
-	  4769,   4771,   4773,   4775,   4777,   4779,   4781,      0, 
-	  4783,   4785,   4787,   4789,   4791,      0,   4793,      0, 
-	}},
-	{{
-	  4795,   4797,      0,   4799,   4801,      0,   4803,   4805, 
-	  4807,   4809,   4811,   4813,   4815,   4817,   4819,  37589, 
-	 37591,  37592,  37593,  37594,  37595,  37596,  37597,  37598, 
-	 37599,  37600,  37601,  37602,  37603,  37604,  37605,  37606, 
-	}},
-	{{
-	 37607,  37608,  37609,  37610,  37611,  37612,  37613,  37614, 
-	 37615,  37616,  37617,  37618,  37619,  37620,  37621,  37622, 
-	 37623,  37624,  37625,  37626,  37627,  37628,  37629,  37630, 
-	 37631,  37632,  37633,  37634,  37635,  37636,  37637,  37638, 
-	}},
-	{{
-	 37639,  37640,  37641,  37642,  37643,  37644,  37645,  37646, 
-	 37647,  37648,  37649,  37650,  37651,  37652,  37653,  37654, 
-	 37655,  37656,  37657,  37658,  37659,  37660,  37661,  37662, 
-	 37663,  37664,  37665,  37666,  37667,  37668,  37669,  37670, 
-	}},
-	{{
-	 37671,  37672,  37673,  37674,  37675,  37676,  37677,  37678, 
-	 37679,  37680,  37681,  37682,  37683,  37684,  37685,  37686, 
-	 37687,  37688,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,  37689,  37690,  37691,  37692,  37693, 
-	 37694,  37695,  37696,  37697,  37698,  37699,  37700,  37701, 
-	}},
-	{{
-	 37702,  37703,  37704,  37705,  37706,  37707,  37708,  37709, 
-	 37710,  37711,  37712,  37714,  37716,  37718,  37720,  37722, 
-	 37724,  37726,  37728,  37730,  37732,  37734,  37736,  37738, 
-	 37740,  37742,  37744,  37746,  37748,  37749,  37750,  37751, 
-	}},
-	{{
-	 37752,  37754,  37756,  37758,  37760,  37762,  37764,  37766, 
-	 37768,  37770,  37772,  37774,  37776,  37778,  37780,  37782, 
-	 37784,  37786,  37788,  37790,  37792,  37794,  37796,  37798, 
-	 37800,  37802,  37804,  37806,  37808,  37810,  37812,  37814, 
-	}},
-	{{
-	 37816,  37818,  37820,  37822,  37824,  37826,  37828,  37830, 
-	 37832,  37834,  37836,  37838,  37840,  37842,  37844,  37846, 
-	 37848,  37850,  37852,  37854,  37856,  37858,  37860,  37862, 
-	 37864,  37866,  37868,  37870,  37872,  37874,  37876,  37878, 
-	}},
-	{{
-	 37880,  37882,  37884,  37886,  37888,  37890,  37892,  37894, 
-	 37896,  37898,  37900,  37902,  37904,  37906,  37908,  37910, 
-	 37912,  37914,  37916,  37918,  37920,  37922,  37924,  37926, 
-	 37928,  37930,  37932,  37934,  37936,  37938,  37940,  37943, 
-	}},
-	{{
-	 37946,  37949,  37952,  37955,  37958,  37960,  37962,  37964, 
-	 37966,  37968,  37970,  37972,  37974,  37976,  37978,  37980, 
-	 37982,  37984,  37986,  37988,  37990,  37992,  37994,  37996, 
-	 37998,  38000,  38002,  38004,  38006,  38008,  38010,  38012, 
-	}},
-	{{
-	 38014,  38016,  38018,  38020,  38022,  38024,  38026,  38028, 
-	 38030,  38032,  38034,  38036,  38038,  38040,  38042,  38044, 
-	 38046,  38048,  38050,  38052,  38054,  38056,  38058,  38060, 
-	 38062,  38064,  38066,  38068,  38070,  38072,  38074,  38076, 
-	}},
-	{{
-	 38078,  38080,  38082,  38084,  38086,  38088,  38090,  38092, 
-	 38094,  38096,  38098,  38100,  38102,  38104,  38106,  38108, 
-	 38110,  38112,  38114,  38116,  38118,  38120,  38122,  38124, 
-	 38126,  38128,  38130,  38132,  38134,  38136,  38138,  38140, 
-	}},
-	{{
-	 38142,  38144,  38146,  38148,  38150,  38152,  38154,  38156, 
-	 38158,  38160,  38162,  38164,  38166,  38168,  38170,  38172, 
-	 38174,  38176,  38178,  38180,  38182,  38184,  38186,  38188, 
-	 38190,  38192,  38194,  38196,  38198,  38200,  38202,  38204, 
-	}},
-	{{
-	 38206,  38208,  38210,  38212,  38214,  38216,  38218,  38220, 
-	 38222,  38224,  38226,  38228,  38230,  38232,  38234,  38236, 
-	 38238,  38240,  38242,  38245,  38248,  38251,  38253,  38255, 
-	 38257,  38259,  38261,  38263,  38265,  38267,  38269,  38271, 
-	}},
-	{{
-	 38273,  38275,  38277,  38279,  38281,  38283,  38285,  38287, 
-	 38289,  38291,  38293,  38295,  38297,  38299,  38301,  38303, 
-	 38305,  38307,  38309,  38311,  38313,  38315,  38317,  38319, 
-	 38321,  38323,  38325,  38327,  38329,  38331,  38333,  38335, 
-	}},
-	{{
-	 38337,  38339,  38341,  38343,  38345,  38347,  38349,  38351, 
-	 38353,  38355,  38357,  38359,  38361,  38363,  38365,  38367, 
-	 38369,  38371,  38373,  38375,  38377,  38379,  38381,  38383, 
-	 38385,  38387,  38389,  38391,  38393,  38395,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 38397,  38400,  38403,  38406,  38409,  38412,  38415,  38418, 
-	 38421,  38424,  38427,  38430,  38433,  38436,  38439,  38442, 
-	}},
-	{{
-	 38445,  38448,  38451,  38454,  38457,  38460,  38463,  38466, 
-	 38469,  38472,  38475,  38478,  38481,  38484,  38487,  38490, 
-	 38493,  38496,  38499,  38502,  38505,  38508,  38511,  38514, 
-	 38517,  38520,  38523,  38526,  38529,  38532,  38535,  38538, 
-	}},
-	{{
-	 38541,  38544,  38547,  38550,  38553,  38556,  38559,  38562, 
-	 38565,  38568,  38571,  38574,  38577,  38580,  38583,  38586, 
-	     0,      0,  38589,  38592,  38595,  38598,  38601,  38604, 
-	 38607,  38610,  38613,  38616,  38619,  38622,  38625,  38628, 
-	}},
-	{{
-	 38631,  38634,  38637,  38640,  38643,  38646,  38649,  38652, 
-	 38655,  38658,  38661,  38664,  38667,  38670,  38673,  38676, 
-	 38679,  38682,  38685,  38688,  38691,  38694,  38697,  38700, 
-	 38703,  38706,  38709,  38712,  38715,  38718,  38721,  38724, 
-	}},
-	{{
-	 38727,  38730,  38733,  38736,  38739,  38742,  38745,  38748, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 38751,  38754,  38757,  38761,  38765,  38769,  38773,  38777, 
-	 38781,  38785,  38788,  38806,  38814,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 38818,  38819,  38820,  38821,  38822,  38823,  38824,  38825, 
-	 38826,  38827,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	 38828,  38829,  38830,  38831,  38832,  38833,  38834,  38835, 
-	 38836,  38837,  38838,  38839,  38840,  38841,  38842,  38843, 
-	}},
-	{{
-	 38844,  38845,  38846,  38847,  38848,      0,      0,  38849, 
-	 38850,  38851,  38852,  38853,  38854,  38855,  38856,  38857, 
-	 38858,  38859,  38860,      0,  38861,  38862,  38863,  38864, 
-	 38865,  38866,  38867,  38868,  38869,  38870,  38871,  38872, 
-	}},
-	{{
-	 38873,  38874,  38875,  38876,  38877,  38878,  38879,      0, 
-	 38880,  38881,  38882,  38883,      0,      0,      0,      0, 
-	 38884,  38886,  38888,      0,  38890,      0,  38892,  38894, 
-	 38896,  38898,  38900,  38902,  38904,  38906,  38908,  38910, 
-	}},
-	{{
-	 38912,  38913,  38914,  38915,  38916,  38917,  38918,  38919, 
-	 38920,  38921,  38922,  38923,  38924,  38925,  38926,  38927, 
-	 38928,  38929,  38930,  38931,  38932,  38933,  38934,  38935, 
-	 38936,  38937,  38938,  38939,  38940,  38941,  38942,  38943, 
-	}},
-	{{
-	 38944,  38945,  38946,  38947,  38948,  38949,  38950,  38951, 
-	 38952,  38953,  38954,  38955,  38956,  38957,  38958,  38959, 
-	 38960,  38961,  38962,  38963,  38964,  38965,  38966,  38967, 
-	 38968,  38969,  38970,  38971,  38972,  38973,  38974,  38975, 
-	}},
-	{{
-	 38976,  38977,  38978,  38979,  38980,  38981,  38982,  38983, 
-	 38984,  38985,  38986,  38987,  38988,  38989,  38990,  38991, 
-	 38992,  38993,  38994,  38995,  38996,  38997,  38998,  38999, 
-	 39000,  39001,  39002,  39003,  39004,  39005,  39006,  39007, 
-	}},
-	{{
-	 39008,  39009,  39010,  39011,  39012,  39013,  39014,  39015, 
-	 39016,  39017,  39018,  39019,  39020,  39021,  39022,  39023, 
-	 39024,  39025,  39026,  39027,  39028,  39029,  39031,  39033, 
-	 39035,  39037,  39039,  39041,  39043,      0,      0,      0, 
-	}},
-	{{
-	     0,  39045,  39046,  39047,  39048,  39049,  39050,  39051, 
-	 39052,  39053,  39054,  39055,  39056,  39057,  39058,  39059, 
-	 39060,  39061,  39062,  39063,  39064,  39065,  39066,  39067, 
-	 39068,  39069,  39070,  39071,  39072,  39073,  39074,  39075, 
-	}},
-	{{
-	 39076,  39077,  39078,  39079,  39080,  39081,  39082,  39083, 
-	 39084,  39085,  39086,  39087,  39088,  39089,  39090,  39091, 
-	 39092,  39093,  39094,  39095,  39096,  39097,  39098,  39099, 
-	 39100,  39101,  39102,  39103,  39104,  39105,  39106,  39107, 
-	}},
-	{{
-	 39108,  39109,  39110,  39111,  39112,  39113,  39114,  39115, 
-	 39116,  39117,  39118,  39119,  39120,  39121,  39122,  39123, 
-	 39124,  39125,  39126,  39127,  39128,  39129,  39130,  39131, 
-	 39132,  39133,  39134,  39135,  39136,  39137,  39138,  39139, 
-	}},
-	{{
-	 39140,  39141,  39142,  39143,  39144,  39145,  39146,  39147, 
-	 39148,  39149,  39150,  39151,  39152,  39153,  39154,  39155, 
-	 39156,  39157,  39158,  39159,  39160,  39161,  39162,  39163, 
-	 39164,  39165,  39166,  39167,  39168,  39169,  39170,  39171, 
-	}},
-	{{
-	 39172,  39173,  39174,  39175,  39176,  39177,  39178,  39179, 
-	 39180,  39181,  39182,  39183,  39184,  39185,  39186,  39187, 
-	 39188,  39189,  39190,  39191,  39192,  39193,  39194,  39195, 
-	 39196,  39197,  39198,  39199,  39200,  39201,  39202,  39203, 
-	}},
-	{{
-	 39204,  39205,  39206,  39207,  39208,  39209,  39210,  39211, 
-	 39212,  39213,  39214,  39215,  39216,  39217,  39218,  39219, 
-	 39220,  39221,  39222,  39223,  39224,  39225,  39226,  39227, 
-	 39228,  39229,  39230,  39231,  39232,  39233,  39234,      0, 
-	}},
-	{{
-	     0,      0,  39235,  39236,  39237,  39238,  39239,  39240, 
-	     0,      0,  39241,  39242,  39243,  39244,  39245,  39246, 
-	     0,      0,  39247,  39248,  39249,  39250,  39251,  39252, 
-	     0,      0,  39253,  39254,  39255,      0,      0,      0, 
-	}},
-	{{
-	 39256,  39257,  39258,  39259,  39260,  39261,  39262,      0, 
-	 39263,  39264,  39265,  39266,  39267,  39268,  39269,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,   6502,   6504, 
-	}},
-	{{
-	  6506,   6508,   6510,   6512,   6514,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,   6516,   6518,   6520,   6522,   6524, 
-	}},
-	{{
-	  6526,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	     0,      0,      0,      0,      0,      0,      0,      0, 
-	}},
-	{{
-	 39296,  39297,  39298,  39299,  39300,  39301,  39302,  39303, 
-	 39304,  39305,  39306,  39307,  39308,  39309,  39310,  39311, 
-	 39312,  39313,  39314,  39315,  39316,  39317,  39318,  39319, 
-	 39320,  39321,  39322,  39323,  39324,  39325,  39326,  39327, 
-	}},
-	{{
-	 39328,  39329,  39330,  39331,  39332,  39333,  39334,  39335, 
-	 39336,  39337,  39338,  39339,  39340,  39341,  39342,  39343, 
-	 39344,  39345,  39346,  39347,  39348,  39349,  39350,  39351, 
-	 39352,  39353,  39354,  39355,  39356,  39357,  39358,  39359, 
-	}},
-	{{
-	 39360,  39361,  39362,  39363,  39364,  39365,  39366,  39367, 
-	 39368,  39369,  39370,  39371,  39372,  39373,  39374,  39375, 
-	 39376,  39377,  39378,  39379,  39380,      0,  39381,  39382, 
-	 39383,  39384,  39385,  39386,  39387,  39388,  39389,  39390, 
-	}},
-	{{
-	 39391,  39392,  39393,  39394,  39395,  39396,  39397,  39398, 
-	 39399,  39400,  39401,  39402,  39403,  39404,  39405,  39406, 
-	 39407,  39408,  39409,  39410,  39411,  39412,  39413,  39414, 
-	 39415,  39416,  39417,  39418,  39419,  39420,  39421,  39422, 
-	}},
-	{{
-	 39423,  39424,  39425,  39426,  39427,  39428,  39429,  39430, 
-	 39431,  39432,  39433,  39434,  39435,  39436,  39437,  39438, 
-	 39439,  39440,  39441,  39442,  39443,  39444,  39445,  39446, 
-	 39447,  39448,  39449,  39450,  39451,      0,  39452,  39453, 
-	}},
-	{{
-	     0,      0,  39454,      0,      0,  39455,  39456,      0, 
-	     0,  39457,  39458,  39459,  39460,      0,  39461,  39462, 
-	 39463,  39464,  39465,  39466,  39467,  39468,  39469,  39470, 
-	 39471,  39472,      0,  39473,      0,  39474,  39475,  39476, 
-	}},
-	{{
-	 39477,  39478,  39479,  39480,      0,  39481,  39482,  39483, 
-	 39484,  39485,  39486,  39487,  39488,  39489,  39490,  39491, 
-	 39492,  39493,  39494,  39495,  39496,  39497,  39498,  39499, 
-	 39500,  39501,  39502,  39503,  39504,  39505,  39506,  39507, 
-	}},
-	{{
-	 39508,  39509,  39510,  39511,  39512,  39513,  39514,  39515, 
-	 39516,  39517,  39518,  39519,  39520,  39521,  39522,  39523, 
-	 39524,  39525,  39526,  39527,  39528,  39529,  39530,  39531, 
-	 39532,  39533,  39534,  39535,  39536,  39537,  39538,  39539, 
-	}},
-	{{
-	 39540,  39541,  39542,  39543,  39544,  39545,      0,  39546, 
-	 39547,  39548,  39549,      0,      0,  39550,  39551,  39552, 
-	 39553,  39554,  39555,  39556,  39557,      0,  39558,  39559, 
-	 39560,  39561,  39562,  39563,  39564,      0,  39565,  39566, 
-	}},
-	{{
-	 39567,  39568,  39569,  39570,  39571,  39572,  39573,  39574, 
-	 39575,  39576,  39577,  39578,  39579,  39580,  39581,  39582, 
-	 39583,  39584,  39585,  39586,  39587,  39588,  39589,  39590, 
-	 39591,  39592,      0,  39593,  39594,  39595,  39596,      0, 
-	}},
-	{{
-	 39597,  39598,  39599,  39600,  39601,      0,  39602,      0, 
-	     0,      0,  39603,  39604,  39605,  39606,  39607,  39608, 
-	 39609,      0,  39610,  39611,  39612,  39613,  39614,  39615, 
-	 39616,  39617,  39618,  39619,  39620,  39621,  39622,  39623, 
-	}},
-	{{
-	 39624,  39625,  39626,  39627,  39628,  39629,  39630,  39631, 
-	 39632,  39633,  39634,  39635,  39636,  39637,  39638,  39639, 
-	 39640,  39641,  39642,  39643,  39644,  39645,  39646,  39647, 
-	 39648,  39649,  39650,  39651,  39652,  39653,  39654,  39655, 
-	}},
-	{{
-	 39656,  39657,  39658,  39659,  39660,  39661,  39662,  39663, 
-	 39664,  39665,  39666,  39667,  39668,  39669,  39670,  39671, 
-	 39672,  39673,  39674,  39675,  39676,  39677,  39678,  39679, 
-	 39680,  39681,  39682,  39683,  39684,  39685,  39686,  39687, 
-	}},
-	{{
-	 39688,  39689,  39690,  39691,  39692,  39693,  39694,  39695, 
-	 39696,  39697,  39698,  39699,  39700,  39701,  39702,  39703, 
-	 39704,  39705,  39706,  39707,  39708,  39709,  39710,  39711, 
-	 39712,  39713,  39714,  39715,  39716,  39717,  39718,  39719, 
-	}},
-	{{
-	 39720,  39721,  39722,  39723,  39724,  39725,  39726,  39727, 
-	 39728,  39729,  39730,  39731,  39732,  39733,  39734,  39735, 
-	 39736,  39737,  39738,  39739,  39740,  39741,  39742,  39743, 
-	 39744,  39745,  39746,  39747,  39748,  39749,  39750,  39751, 
-	}},
-	{{
-	 39752,  39753,  39754,  39755,  39756,  39757,  39758,  39759, 
-	 39760,  39761,  39762,  39763,  39764,  39765,  39766,  39767, 
-	 39768,  39769,  39770,  39771,  39772,  39773,  39774,  39775, 
-	 39776,  39777,  39778,  39779,  39780,  39781,  39782,  39783, 
-	}},
-	{{
-	 39784,  39785,  39786,  39787,  39788,  39789,  39790,  39791, 
-	 39792,  39793,  39794,  39795,  39796,  39797,  39798,  39799, 
-	 39800,  39801,  39802,  39803,  39804,  39805,  39806,  39807, 
-	 39808,  39809,  39810,  39811,  39812,  39813,  39814,  39815, 
-	}},
-	{{
-	 39816,  39817,  39818,  39819,  39820,  39821,  39822,  39823, 
-	 39824,  39825,  39826,  39827,  39828,  39829,  39830,  39831, 
-	 39832,  39833,  39834,  39835,  39836,  39837,  39838,  39839, 
-	 39840,  39841,  39842,  39843,  39844,  39845,  39846,  39847, 
-	}},
-	{{
-	 39848,  39849,  39850,  39851,  39852,  39853,  39854,  39855, 
-	 39856,  39857,  39858,  39859,  39860,  39861,  39862,  39863, 
-	 39864,  39865,  39866,  39867,  39868,  39869,  39870,  39871, 
-	 39872,  39873,  39874,  39875,  39876,  39877,  39878,  39879, 
-	}},
-	{{
-	 39880,  39881,  39882,  39883,  39884,  39885,  39886,  39887, 
-	 39888,  39889,  39890,  39891,  39892,  39893,  39894,  39895, 
-	 39896,  39897,  39898,  39899,  39900,  39901,  39902,  39903, 
-	 39904,  39905,  39906,  39907,  39908,  39909,  39910,  39911, 
-	}},
-	{{
-	 39912,  39913,  39914,  39915,  39916,  39917,  39918,  39919, 
-	 39920,  39921,  39922,  39923,  39924,  39925,  39926,  39927, 
-	 39928,  39929,  39930,  39931,  39932,  39933,  39934,  39935, 
-	 39936,  39937,  39938,  39939,  39940,  39941,  39942,  39943, 
-	}},
-	{{
-	 39944,  39945,  39946,  39947,  39948,  39949,      0,      0, 
-	 39950,  39951,  39952,  39953,  39954,  39955,  39956,  39957, 
-	 39958,  39959,  39960,  39961,  39962,  39963,  39964,  39965, 
-	 39966,  39967,  39968,  39969,  39970,  39971,  39972,  39973, 
-	}},
-	{{
-	 39974,  39975,  39976,  39977,  39978,  39979,  39980,  39981, 
-	 39982,  39983,  39984,  39985,  39986,  39987,  39988,  39989, 
-	 39990,  39991,  39992,  39993,  39994,  39995,  39996,  39997, 
-	 39998,  39999,  40000,  40001,  40002,  40003,  40004,  40005, 
-	}},
-	{{
-	 40006,  40007,  40008,  40009,  40010,  40011,  40012,  40013, 
-	 40014,  40015,  40016,  40017,  40018,  40019,  40020,  40021, 
-	 40022,  40023,  40024,  40025,  40026,  40027,  40028,  40029, 
-	 40030,  40031,  40032,  40033,  40034,  40035,  40036,  40037, 
-	}},
-	{{
-	 40038,  40039,  40040,  40041,  40042,  40043,  40044,  40045, 
-	 40046,  40047,  40048,  40049,  40050,  40051,  40052,  40053, 
-	 40054,  40055,  40056,  40057,  40058,  40059,  40060,  40061, 
-	 40062,  40063,  40064,  40065,  40066,  40067,  40068,  40069, 
-	}},
-	{{
-	 40070,  40071,  40072,  40073,  40074,  40075,  40076,  40077, 
-	 40078,  40079,  40080,  40081,  40082,  40083,  40084,  40085, 
-	 40086,  40087,  40088,  40089,  40090,  40091,  40092,  40093, 
-	 40094,  40095,  40096,  40097,  40098,  40099,  40100,  40101, 
-	}},
-	{{
-	 40102,  40103,  40104,  40105,  40106,  40107,  40108,  40109, 
-	 40110,  40111,  40112,  40113,  40114,  40115,  40116,  40117, 
-	 40118,  40119,  40120,  40121,  40122,  40123,  40124,  40125, 
-	 40126,  40127,  40128,  40129,  40130,  40131,  40132,  40133, 
-	}},
-	{{
-	 40134,  40135,  40136,  40137,  40138,  40139,  40140,  40141, 
-	 40142,  40143,  40144,  40145,  40146,  40147,  40148,  40149, 
-	 40150,  40151,  40152,  40153,  40154,  40155,  40156,  40157, 
-	 40158,  40159,  40160,  40161,  40162,  40163,  40164,  40165, 
-	}},
-	{{
-	 40166,  40167,  40168,  40169,  40170,  40171,  40172,  40173, 
-	 40174,  40175,  40176,  40177,  40178,  40179,  40180,  40181, 
-	 40182,  40183,  40184,  40185,  40186,  40187,  40188,  40189, 
-	 40190,  40191,  40192,  40193,  40194,  40195,  40196,  40197, 
-	}},
-	{{
-	 40198,  40199,  40200,  40201,  40202,  40203,  40204,  40205, 
-	 40206,  40207,  40208,  40209,  40210,  40211,  40212,  40213, 
-	 40214,  40215,  40216,  40217,  40218,  40219,  40220,  40221, 
-	 40222,  40223,  40224,  40225,  40226,  40227,  40228,  40229, 
-	}},
-	{{
-	 40230,  40231,  40232,  40233,  40234,  40235,  40236,  40237, 
-	 40238,  40239,      0,      0,      0,      0,  40240,  40241, 
-	 40242,  40243,  40244,  40245,  40246,  40247,  40248,  40249, 
-	 40250,  40251,  40252,  40253,  40254,  40255,  40256,  40257, 
-	}},
-	{{
-	 40258,  40259,  40260,  40261,  40262,  40263,  40264,  40265, 
-	 40266,  40267,  40268,  40269,  40270,  40271,  40272,  40273, 
-	 40274,  40275,  40276,  40277,  40278,  40279,  40280,  40281, 
-	 40282,  40283,  40284,  40285,  40286,  40287,  40288,  40289, 
-	}},
-	{{
-	  7522,   7523,   7524,   7525,   7526,   7527,   7528,   7529, 
-	  7530,   7531,   7532,   7533,   7534,   7535,   7536,   7537, 
-	  7538,   7539,   7540,   7541,   7542,   7543,   7544,   7545, 
-	  7546,   7547,   7548,   7549,   7550,   7551,   7552,   7553, 
-	}},
-	{{
-	  7554,   7555,   7556,   7557,   7558,   7559,   7560,   7561, 
-	  7562,   7563,   7564,   7565,   7566,   7567,   7568,   7569, 
-	  7570,   7571,   7572,   7573,   7574,   7575,   7576,   7577, 
-	  7578,   7579,   7580,   7581,   7582,   7583,   7584,   7585, 
-	}},
-	{{
-	  7586,   7587,   7588,   7589,   7590,   7591,   7592,   7593, 
-	  7594,   7595,   7596,   7597,   7598,   7599,   7600,   7601, 
-	  7602,   7603,   7604,   7605,   7606,   7607,   7608,   7609, 
-	  7610,   7611,   7612,   7613,   7614,   7615,   7616,   7617, 
-	}},
-	{{
-	  7618,   7619,   7620,   7621,   7622,   7623,   7624,   7625, 
-	  7626,   7627,   7628,   7629,   7630,   7631,   7632,   7633, 
-	  7634,   7635,   7636,   7637,   7638,   7639,   7640,   7641, 
-	  7642,   7643,   7644,   7645,   7646,   7647,   7648,   7649, 
-	}},
-	{{
-	  7650,   7651,   7652,   7653,   7654,   7655,   7656,   7657, 
-	  7658,   7659,   7660,   7661,   7662,   7663,   7664,   7665, 
-	  7666,   7667,   7668,   7669,   7670,   7671,   7672,   7673, 
-	  7674,   7675,   7676,   7677,   7678,   7679,   7680,   7681, 
-	}},
-	{{
-	  7682,   7683,   7684,   7685,   7686,   7687,   7688,   7689, 
-	  7690,   7691,   7692,   7693,   7694,   7695,   7696,   7697, 
-	  7698,   7699,   7700,   7701,   7702,   7703,   7704,   7705, 
-	  7706,   7707,   7708,   7709,   7710,   7711,   7712,   7713, 
-	}},
-	{{
-	  7714,   7715,   7716,   7717,   7718,   7719,   7720,   7721, 
-	  7722,   7723,   7724,   7725,   7726,   7727,   7728,   7729, 
-	  7730,   7731,   7732,   7733,   7734,   7735,   7736,   7737, 
-	  7738,   7739,   7740,   7741,   7742,   7743,   7744,   7745, 
-	}},
-	{{
-	  7746,   7747,   7748,   7749,   7750,   7751,   7752,   7753, 
-	  7754,   7755,   7756,   7757,   7758,   7759,   7760,   7761, 
-	  7762,   7763,   7764,   7765,   7766,   7767,   7768,   7769, 
-	  7770,   7771,   7772,   7773,   7774,   7775,   7776,   7777, 
-	}},
-	{{
-	  7778,   7779,   7780,   7781,   7782,   7783,   7784,   7785, 
-	  7786,   7787,   7788,   7789,   7790,   7791,   7792,   7793, 
-	  7794,   7795,   7796,   7797,   7798,   7799,   7800,   7801, 
-	  7802,   7803,   7804,   7805,   7806,   7807,   7808,   7809, 
-	}},
-	{{
-	  7810,   7811,   7812,   7813,   7814,   7815,   7816,   7817, 
-	  7818,   7819,   7820,   7821,   7822,   7823,   7824,   7825, 
-	  7826,   7827,   7828,   7829,   7830,   7831,   7832,   7833, 
-	  7834,   7835,   7836,   7837,   7838,   7839,   7840,   7841, 
-	}},
-	{{
-	  7842,   7843,   7844,   7845,   7846,   7847,   7848,   7849, 
-	  7850,   7851,   7852,   7853,   7854,   7855,   7856,   7857, 
-	  7858,   7859,   7860,   7861,   7862,   7863,   7864,   7865, 
-	  7866,   7867,   7868,   7869,   7870,   7871,   7872,   7873, 
-	}},
-	{{
-	  7874,   7875,   7876,   7877,   7878,   7879,   7880,   7881, 
-	  7882,   7883,   7884,   7885,   7886,   7887,   7888,   7889, 
-	  7890,   7891,   7892,   7893,   7894,   7895,   7896,   7897, 
-	  7898,   7899,   7900,   7901,   7902,   7903,   7904,   7905, 
-	}},
-	{{
-	  7906,   7907,   7908,   7909,   7910,   7911,   7912,   7913, 
-	  7914,   7915,   7916,   7917,   7918,   7919,   7920,   7921, 
-	  7922,   7923,   7924,   7925,   7926,   7927,   7928,   7929, 
-	  7930,   7931,   7932,   7933,   7934,   7935,   7936,   7937, 
-	}},
-	{{
-	  7938,   7939,   7940,   7941,   7942,   7943,   7944,   7945, 
-	  7946,   7947,   7948,   7949,   7950,   7951,   7952,   7953, 
-	  7954,   7955,   7956,   7957,   7958,   7959,   7960,   7961, 
-	  7962,   7963,   7964,   7965,   7966,   7967,   7968,   7969, 
-	}},
-	{{
-	  7970,   7971,   7972,   7973,   7974,   7975,   7976,   7977, 
-	  7978,   7979,   7980,   7981,   7982,   7983,   7984,   7985, 
-	  7986,   7987,   7988,   7989,   7990,   7991,   7992,   7993, 
-	  7994,   7995,   7996,   7997,   7998,   7999,   8000,   8001, 
-	}},
-	{{
-	  8002,   8003,   8004,   8005,   8006,   8007,   8008,   8009, 
-	  8010,   8011,   8012,   8013,   8014,   8015,   8016,   8017, 
-	  8018,   8019,   8020,   8021,   8022,   8023,   8024,   8025, 
-	  8026,   8027,   8028,   8029,   8030,   8031,   8032,   8033, 
-	}},
-	{{
-	  8034,   8035,   8036,   8037,   8038,   8039,   8040,   8041, 
-	  8042,   8043,   8044,   8045,   8046,   8047,   8048,   8049, 
-	  8050,   8051,   8052,   8053,   8054,   8055,   8056,   8057, 
-	  8058,   8059,   8060,   8061,   8062,   8063,      0,      0, 
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 32769,      0,      0,      0,      0,      0,      0,      0,
+	 32770,      0,  32772,      0,      0,      0,      0,  32773,
+	     0,      0,  32775,  32776,  32777,  32779,      0,      0,
+	 32780,  32782,  32783,      0,  32784,  32787,  32790,      0,
+	}},
+	{{
+	    25,     27,     29,     31,     33,     35,      0,     37,
+	    39,     41,     43,     45,     47,     49,     51,     53,
+	     0,     55,     57,     59,     61,     63,     65,      0,
+	     0,     67,     69,     71,     73,     75,      0,      0,
+	}},
+	{{
+	    77,     79,     81,     83,     85,     87,      0,     89,
+	    91,     93,     95,     97,     99,    101,    103,    105,
+	     0,    107,    109,    111,    113,    115,    117,      0,
+	     0,    119,    121,    123,    125,    127,      0,    129,
+	}},
+	{{
+	   131,    133,    135,    137,    139,    141,    143,    145,
+	   147,    149,    151,    153,    155,    157,    159,    161,
+	     0,      0,    163,    165,    167,    169,    171,    173,
+	   175,    177,    179,    181,    183,    185,    187,    189,
+	}},
+	{{
+	   191,    193,    195,    197,    199,    201,      0,      0,
+	   203,    205,    207,    209,    211,    213,    215,    217,
+	   219,      0,  32989,  32991,    225,    227,    229,    231,
+	     0,    233,    235,    237,    239,    241,    243,  33013,
+	}},
+	{{
+	 33015,      0,      0,    249,    251,    253,    255,    257,
+	   259,  33029,      0,      0,    263,    265,    267,    269,
+	   271,    273,      0,      0,    275,    277,    279,    281,
+	   283,    285,    287,    289,    291,    293,    295,    297,
+	}},
+	{{
+	   299,    301,    303,    305,    307,    309,      0,      0,
+	   311,    313,    315,    317,    319,    321,    323,    325,
+	   327,    329,    331,    333,    335,    337,    339,    341,
+	   343,    345,    347,    349,    351,    353,    355,  33125,
+	}},
+	{{
+	   358,    360,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,    362,
+	   364,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,  33134,  33136,  33138,  33140,
+	 33142,  33144,  33146,  33148,  33150,    384,    386,    388,
+	   390,    392,    394,    396,    398,    400,    402,    404,
+	   406,    408,    410,    412,    414,      0,    416,    418,
+	}},
+	{{
+	   420,    422,    424,    426,      0,      0,    428,    430,
+	   432,    434,    436,    438,    440,    442,    444,    446,
+	   448,  33218,  33220,  33222,    456,    458,      0,      0,
+	   460,    462,    464,    466,    468,    470,    472,    474,
+	}},
+	{{
+	   476,    478,    480,    482,    484,    486,    488,    490,
+	   492,    494,    496,    498,    500,    502,    504,    506,
+	   508,    510,    512,    514,    516,    518,    520,    522,
+	   524,    526,    528,    530,      0,      0,    532,    534,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,    536,    538,
+	   540,    542,    544,    546,    548,    550,    552,    554,
+	   556,    558,    560,    562,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 33332,  33333,  33334,  33335,  33336,  33337,  33338,  33339,
+	 33340,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 33341,  33343,  33345,  33347,  33349,  33351,      0,      0,
+	}},
+	{{
+	 33353,  33354,  33355,  33356,  33357,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	   590,    591,      0,    592,    593,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,    595,      0,      0,      0,
+	     0,      0,  33364,      0,      0,      0,    598,      0,
+	}},
+	{{
+	     0,      0,      0,      0,  33367,    601,    603,    605,
+	   606,    608,    610,      0,    612,      0,    614,    616,
+	   618,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,    620,    622,    624,    626,    628,    630,
+	   632,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,    634,    636,    638,    640,    642,      0,
+	 33412,  33413,  33414,    647,    649,  33419,  33420,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 33421,  33422,  33423,      0,  33424,  33425,      0,      0,
+	     0,  33426,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	   659,    661,      0,    663,      0,      0,      0,    665,
+	     0,      0,      0,      0,    667,    669,    671,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    673,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    675,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	   677,    679,      0,    681,      0,      0,      0,    683,
+	     0,      0,      0,      0,    685,    687,    689,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,    691,    693,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,    695,    697,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	   699,    701,    703,    705,      0,      0,    707,    709,
+	     0,      0,    711,    713,    715,    717,    719,    721,
+	}},
+	{{
+	     0,      0,    723,    725,    727,    729,    731,    733,
+	     0,      0,    735,    737,    739,    741,    743,    745,
+	   747,    749,    751,    753,    755,    757,      0,      0,
+	   759,    761,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,  33531,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,    765,    767,    769,    771,    773,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,  33543,  33545,  33547,
+	 33549,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	   783,      0,    785,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,    787,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    789,      0,      0,      0,      0,      0,      0,
+	     0,    791,      0,      0,    793,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	   795,    797,    799,    801,    803,    805,    807,    809,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,    811,    813,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,    815,    817,      0,    819,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,    821,      0,      0,    823,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    825,    827,    829,      0,      0,    831,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	   833,      0,      0,    835,    837,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,    839,    841,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,    843,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,    845,    847,    849,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	   851,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	   853,      0,      0,      0,      0,      0,      0,    855,
+	   857,      0,    859,    861,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,    863,    865,    867,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,    869,      0,    871,    873,    875,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  33645,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  33647,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  33649,  33651,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  33653,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,    886,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,    888,      0,      0,
+	     0,      0,    890,      0,      0,      0,      0,    892,
+	     0,      0,      0,      0,    894,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    896,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,    898,      0,    900,    902,  33672,
+	   906,  33676,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,    910,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,    912,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,    914,      0,      0,
+	}},
+	{{
+	     0,      0,    916,      0,      0,      0,      0,    918,
+	     0,      0,      0,      0,    920,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,    922,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,    924,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  33694,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  33695,  33696,  33697,      0,
+	 33698,  33699,  33700,  33701,  33702,  33703,  33704,  33705,
+	 33706,  33707,  33708,      0,  33709,  33710,  33711,  33712,
+	}},
+	{{
+	 33713,  33714,  33715,  33716,  33717,  33718,  33719,  33720,
+	 33721,  33722,  33723,  33724,  33725,  33726,      0,  33727,
+	 33728,  33729,  33730,  33731,  33732,  33733,  33734,  33735,
+	 33736,  33737,  33738,  33739,  33740,  33741,  33742,  33743,
+	}},
+	{{
+	 33744,  33745,  33746,  33747,  33748,  33749,  33750,  33751,
+	 33752,  33753,  33754,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 33755,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  33756,  33757,  33758,  33759,  33760,
+	}},
+	{{
+	 33761,  33762,  33763,  33764,  33765,  33766,  33767,  33768,
+	 33769,  33770,  33771,  33772,  33773,  33774,  33775,  33776,
+	 33777,  33778,  33779,  33780,  33781,  33782,  33783,  33784,
+	 33785,  33786,  33787,  33788,  33789,  33790,  33791,  33792,
+	}},
+	{{
+	  1025,   1027,   1029,   1031,   1033,   1035,   1037,   1039,
+	  1041,   1043,   1045,   1047,   1049,   1051,   1053,   1055,
+	  1057,   1059,   1061,   1063,   1065,   1067,   1069,   1071,
+	  1073,   1075,   1077,   1079,   1081,   1083,   1085,   1087,
+	}},
+	{{
+	  1089,   1091,   1093,   1095,   1097,   1099,   1101,   1103,
+	  1105,   1107,   1109,   1111,   1113,   1115,   1117,   1119,
+	  1121,   1123,   1125,   1127,   1129,   1131,   1133,   1135,
+	  1137,   1139,   1141,   1143,   1145,   1147,   1149,   1151,
+	}},
+	{{
+	  1153,   1155,   1157,   1159,   1161,   1163,   1165,   1167,
+	  1169,   1171,   1173,   1175,   1177,   1179,   1181,   1183,
+	  1185,   1187,   1189,   1191,   1193,   1195,   1197,   1199,
+	  1201,   1203,   1205,   1207,   1209,   1211,   1213,   1215,
+	}},
+	{{
+	  1217,   1219,   1221,   1223,   1225,   1227,   1229,   1231,
+	  1233,   1235,   1237,   1239,   1241,   1243,   1245,   1247,
+	  1249,   1251,   1253,   1255,   1257,   1259,   1261,   1263,
+	  1265,   1267,   1269,   1271,   1273,   1275,   1277,   1279,
+	}},
+	{{
+	  1281,   1283,   1285,   1287,   1289,   1291,   1293,   1295,
+	  1297,   1299,   1301,   1303,   1305,   1307,   1309,   1311,
+	  1313,   1315,   1317,   1319,   1321,   1323,   1325,   1327,
+	  1329,   1331,  34101,   1335,      0,      0,      0,      0,
+	}},
+	{{
+	  1337,   1339,   1341,   1343,   1345,   1347,   1349,   1351,
+	  1353,   1355,   1357,   1359,   1361,   1363,   1365,   1367,
+	  1369,   1371,   1373,   1375,   1377,   1379,   1381,   1383,
+	  1385,   1387,   1389,   1391,   1393,   1395,   1397,   1399,
+	}},
+	{{
+	  1401,   1403,   1405,   1407,   1409,   1411,   1413,   1415,
+	  1417,   1419,   1421,   1423,   1425,   1427,   1429,   1431,
+	  1433,   1435,   1437,   1439,   1441,   1443,   1445,   1447,
+	  1449,   1451,   1453,   1455,   1457,   1459,   1461,   1463,
+	}},
+	{{
+	  1465,   1467,   1469,   1471,   1473,   1475,   1477,   1479,
+	  1481,   1483,   1485,   1487,   1489,   1491,   1493,   1495,
+	  1497,   1499,   1501,   1503,   1505,   1507,   1509,   1511,
+	  1513,   1515,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	  1517,   1519,   1521,   1523,   1525,   1527,   1529,   1531,
+	  1533,   1535,   1537,   1539,   1541,   1543,   1545,   1547,
+	  1549,   1551,   1553,   1555,   1557,   1559,      0,      0,
+	  1561,   1563,   1565,   1567,   1569,   1571,      0,      0,
+	}},
+	{{
+	  1573,   1575,   1577,   1579,   1581,   1583,   1585,   1587,
+	  1589,   1591,   1593,   1595,   1597,   1599,   1601,   1603,
+	  1605,   1607,   1609,   1611,   1613,   1615,   1617,   1619,
+	  1621,   1623,   1625,   1627,   1629,   1631,   1633,   1635,
+	}},
+	{{
+	  1637,   1639,   1641,   1643,   1645,   1647,      0,      0,
+	  1649,   1651,   1653,   1655,   1657,   1659,      0,      0,
+	  1661,   1663,   1665,   1667,   1669,   1671,   1673,   1675,
+	     0,   1677,      0,   1679,      0,   1681,      0,   1683,
+	}},
+	{{
+	  1685,   1687,   1689,   1691,   1693,   1695,   1697,   1699,
+	  1701,   1703,   1705,   1707,   1709,   1711,   1713,   1715,
+	  1717,   1719,   1720,   1722,   1723,   1725,   1726,   1728,
+	  1729,   1731,   1732,   1734,   1735,   1737,      0,      0,
+	}},
+	{{
+	  1738,   1740,   1742,   1744,   1746,   1748,   1750,   1752,
+	  1754,   1756,   1758,   1760,   1762,   1764,   1766,   1768,
+	  1770,   1772,   1774,   1776,   1778,   1780,   1782,   1784,
+	  1786,   1788,   1790,   1792,   1794,   1796,   1798,   1800,
+	}},
+	{{
+	  1802,   1804,   1806,   1808,   1810,   1812,   1814,   1816,
+	  1818,   1820,   1822,   1824,   1826,   1828,   1830,   1832,
+	  1834,   1836,   1838,   1840,   1842,      0,   1844,   1846,
+	  1848,   1850,   1852,   1854,   1855,  34625,   1859,  34628,
+	}},
+	{{
+	 34630,   1864,   1866,   1868,   1870,      0,   1872,   1874,
+	  1876,   1878,   1879,   1881,   1882,   1884,   1886,   1888,
+	  1890,   1892,   1894,   1896,      0,      0,   1897,   1899,
+	  1901,   1903,   1905,   1907,      0,   1908,   1910,   1912,
+	}},
+	{{
+	  1914,   1916,   1918,   1920,   1921,   1923,   1925,   1927,
+	  1929,   1931,   1933,   1935,   1936,   1938,   1940,   1941,
+	     0,      0,   1942,   1944,   1946,      0,   1948,   1950,
+	  1952,   1954,   1955,   1957,   1958,   1960,  34729,      0,
+	}},
+	{{
+	  1963,   1964,  34733,  34734,  34735,  34736,  34737,  34738,
+	 34739,  34740,  34741,      0,      0,      0,      0,      0,
+	     0,  34742,      0,      0,      0,      0,      0,  34743,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,  34745,  34746,  34748,      0,
+	     0,      0,      0,      0,      0,      0,      0,  34751,
+	     0,      0,      0,  34752,  34754,      0,  34757,  34759,
+	     0,      0,      0,      0,  34762,      0,  34764,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,  34766,
+	 34768,  34770,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,  34772,
+	     0,      0,      0,      0,      0,      0,      0,  34776,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 34777,  34778,      0,      0,  34779,  34780,  34781,  34782,
+	 34783,  34784,  34785,  34786,  34787,  34788,  34789,  34790,
+	}},
+	{{
+	 34791,  34792,  34793,  34794,  34795,  34796,  34797,  34798,
+	 34799,  34800,  34801,  34802,  34803,  34804,  34805,      0,
+	 34806,  34807,  34808,  34809,  34810,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 34811,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 34813,  34816,  34819,  34820,      0,  34822,  34825,  34828,
+	     0,  34829,  34831,  34832,  34833,  34834,  34835,  34836,
+	 34837,  34838,  34839,  34840,      0,  34841,  34842,      0,
+	     0,  34844,  34845,  34846,  34847,  34848,      0,      0,
+	}},
+	{{
+	 34849,  34851,  34854,      0,  34856,      0,   2089,      0,
+	 34858,      0,   2091,   2092,  34861,  34862,      0,  34863,
+	 34864,  34865,      0,  34866,  34867,  34868,  34869,  34870,
+	 34871,  34872,      0,  34873,  34876,  34877,  34878,  34879,
+	}},
+	{{
+	 34880,      0,      0,      0,      0,  34881,  34882,  34883,
+	 34884,  34885,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  34886,  34889,  34892,  34895,  34898,
+	 34901,  34904,  34907,  34910,  34913,  34916,  34919,  34922,
+	}},
+	{{
+	 34924,  34925,  34927,  34930,  34932,  34933,  34935,  34938,
+	 34942,  34944,  34945,  34947,  34950,  34951,  34952,  34953,
+	 34954,  34955,  34957,  34960,  34962,  34963,  34965,  34968,
+	 34972,  34974,  34975,  34977,  34980,  34981,  34982,  34983,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,   2216,   2218,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,   2220,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,   2222,   2224,   2226,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,   2228,      0,      0,      0,
+	     0,   2230,      0,      0,   2232,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,   2234,      0,   2236,      0,
+	     0,      0,      0,      0,  35006,  35008,      0,  35011,
+	 35013,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,   2248,      0,      0,   2250,      0,      0,   2252,
+	     0,   2254,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	  2256,      0,   2258,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,   2260,   2262,   2264,
+	  2266,   2268,      0,      0,   2270,   2272,      0,      0,
+	  2274,   2276,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	  2278,   2280,      0,      0,   2282,   2284,      0,      0,
+	  2286,   2288,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2290,   2292,   2294,   2296,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	  2298,   2300,   2302,   2304,      0,      0,      0,      0,
+	     0,      0,   2306,   2308,   2310,   2312,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,   2314,   2315,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 35084,  35085,  35086,  35087,  35088,  35089,  35090,  35091,
+	 35092,  35093,  35095,  35097,  35099,  35101,  35103,  35105,
+	 35107,  35109,  35111,  35113,  35115,  35118,  35121,  35124,
+	 35127,  35130,  35133,  35136,  35139,  35142,  35146,  35150,
+	}},
+	{{
+	 35154,  35158,  35162,  35166,  35170,  35174,  35178,  35182,
+	 35186,  35188,  35190,  35192,  35194,  35196,  35198,  35200,
+	 35202,  35204,  35207,  35210,  35213,  35216,  35219,  35222,
+	 35225,  35228,  35231,  35234,  35237,  35240,  35243,  35246,
+	}},
+	{{
+	 35249,  35252,  35255,  35258,  35261,  35264,  35267,  35270,
+	 35273,  35276,  35279,  35282,  35285,  35288,  35291,  35294,
+	 35297,  35300,  35303,  35306,  35309,  35312,  35315,  35316,
+	 35317,  35318,  35319,  35320,  35321,  35322,  35323,  35324,
+	}},
+	{{
+	 35325,  35326,  35327,  35328,  35329,  35330,  35331,  35332,
+	 35333,  35334,  35335,  35336,  35337,  35338,  35339,  35340,
+	 35341,  35342,  35343,  35344,  35345,  35346,  35347,  35348,
+	 35349,  35350,  35351,  35352,  35353,  35354,  35355,  35356,
+	}},
+	{{
+	 35357,  35358,  35359,  35360,  35361,  35362,  35363,  35364,
+	 35365,  35366,  35367,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  35368,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,  35372,  35375,  35377,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2612,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,  35382,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,  35383,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  35384,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 35385,  35386,  35387,  35388,  35389,  35390,  35391,  35392,
+	 35393,  35394,  35395,  35396,  35397,  35398,  35399,  35400,
+	 35401,  35402,  35403,  35404,  35405,  35406,  35407,  35408,
+	 35409,  35410,  35411,  35412,  35413,  35414,  35415,  35416,
+	}},
+	{{
+	 35417,  35418,  35419,  35420,  35421,  35422,  35423,  35424,
+	 35425,  35426,  35427,  35428,  35429,  35430,  35431,  35432,
+	 35433,  35434,  35435,  35436,  35437,  35438,  35439,  35440,
+	 35441,  35442,  35443,  35444,  35445,  35446,  35447,  35448,
+	}},
+	{{
+	 35449,  35450,  35451,  35452,  35453,  35454,  35455,  35456,
+	 35457,  35458,  35459,  35460,  35461,  35462,  35463,  35464,
+	 35465,  35466,  35467,  35468,  35469,  35470,  35471,  35472,
+	 35473,  35474,  35475,  35476,  35477,  35478,  35479,  35480,
+	}},
+	{{
+	 35481,  35482,  35483,  35484,  35485,  35486,  35487,  35488,
+	 35489,  35490,  35491,  35492,  35493,  35494,  35495,  35496,
+	 35497,  35498,  35499,  35500,  35501,  35502,  35503,  35504,
+	 35505,  35506,  35507,  35508,  35509,  35510,  35511,  35512,
+	}},
+	{{
+	 35513,  35514,  35515,  35516,  35517,  35518,  35519,  35520,
+	 35521,  35522,  35523,  35524,  35525,  35526,  35527,  35528,
+	 35529,  35530,  35531,  35532,  35533,  35534,  35535,  35536,
+	 35537,  35538,  35539,  35540,  35541,  35542,  35543,  35544,
+	}},
+	{{
+	 35545,  35546,  35547,  35548,  35549,  35550,  35551,  35552,
+	 35553,  35554,  35555,  35556,  35557,  35558,  35559,  35560,
+	 35561,  35562,  35563,  35564,  35565,  35566,  35567,  35568,
+	 35569,  35570,  35571,  35572,  35573,  35574,  35575,  35576,
+	}},
+	{{
+	 35577,  35578,  35579,  35580,  35581,  35582,  35583,  35584,
+	 35585,  35586,  35587,  35588,  35589,  35590,  35591,  35592,
+	 35593,  35594,  35595,  35596,  35597,  35598,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 35599,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,  35600,      0,
+	 35601,  35602,  35603,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2836,      0,   2838,      0,
+	  2840,      0,   2842,      0,   2844,      0,   2846,      0,
+	  2848,      0,   2850,      0,   2852,      0,   2854,      0,
+	}},
+	{{
+	  2856,      0,   2858,      0,      0,   2860,      0,   2862,
+	     0,   2864,      0,      0,      0,      0,      0,      0,
+	  2866,   2868,      0,   2870,   2872,      0,   2874,   2876,
+	     0,   2878,   2880,      0,   2882,   2884,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2886,      0,      0,      0,
+	     0,      0,      0,  35656,  35658,      0,   2892,  35662,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2896,      0,   2898,      0,
+	  2900,      0,   2902,      0,   2904,      0,   2906,      0,
+	  2908,      0,   2910,      0,   2912,      0,   2914,      0,
+	}},
+	{{
+	  2916,      0,   2918,      0,      0,   2920,      0,   2922,
+	     0,   2924,      0,      0,      0,      0,      0,      0,
+	  2926,   2928,      0,   2930,   2932,      0,   2934,   2936,
+	     0,   2938,   2940,      0,   2942,   2944,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,   2946,      0,      0,   2948,
+	  2950,   2952,   2954,      0,      0,      0,   2956,  35726,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,  35728,  35729,  35730,  35731,  35732,  35733,  35734,
+	 35735,  35736,  35737,  35738,  35739,  35740,  35741,  35742,
+	}},
+	{{
+	 35743,  35744,  35745,  35746,  35747,  35748,  35749,  35750,
+	 35751,  35752,  35753,  35754,  35755,  35756,  35757,  35758,
+	 35759,  35760,  35761,  35762,  35763,  35764,  35765,  35766,
+	 35767,  35768,  35769,  35770,  35771,  35772,  35773,  35774,
+	}},
+	{{
+	 35775,  35776,  35777,  35778,  35779,  35780,  35781,  35782,
+	 35783,  35784,  35785,  35786,  35787,  35788,  35789,  35790,
+	 35791,  35792,  35793,  35794,  35795,  35796,  35797,  35798,
+	 35799,  35800,  35801,  35802,  35803,  35804,  35805,  35806,
+	}},
+	{{
+	 35807,  35808,  35809,  35810,  35811,  35812,  35813,  35814,
+	 35815,  35816,  35817,  35818,  35819,  35820,  35821,      0,
+	     0,      0,  35822,  35823,  35824,  35825,  35826,  35827,
+	 35828,  35829,  35830,  35831,  35832,  35833,  35834,  35835,
+	}},
+	{{
+	 35836,  35839,  35842,  35845,  35848,  35851,  35854,  35857,
+	 35860,  35863,  35866,  35869,  35872,  35875,  35878,  35882,
+	 35886,  35890,  35894,  35898,  35902,  35906,  35910,  35914,
+	 35918,  35922,  35926,  35930,  35934,  35938,  35945,      0,
+	}},
+	{{
+	 35951,  35954,  35957,  35960,  35963,  35966,  35969,  35972,
+	 35975,  35978,  35981,  35984,  35987,  35990,  35993,  35996,
+	 35999,  36002,  36005,  36008,  36011,  36014,  36017,  36020,
+	 36023,  36026,  36029,  36032,  36035,  36038,  36041,  36044,
+	}},
+	{{
+	 36047,  36050,  36053,  36056,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 36059,  36062,  36064,  36066,  36068,  36070,  36072,  36074,
+	 36076,  36078,  36080,  36082,  36084,  36086,  36088,  36090,
+	}},
+	{{
+	 36092,  36093,  36094,  36095,  36096,  36097,  36098,  36099,
+	 36100,  36101,  36102,  36103,  36104,  36105,  36106,  36108,
+	 36110,  36112,  36114,  36116,  36118,  36120,  36122,  36124,
+	 36126,  36128,  36130,  36132,  36134,  36139,  36143,      0,
+	}},
+	{{
+	 36145,  36146,  36147,  36148,  36149,  36150,  36151,  36152,
+	 36153,  36154,  36155,  36156,  36157,  36158,  36159,  36160,
+	 36161,  36162,  36163,  36164,  36165,  36166,  36167,  36168,
+	 36169,  36170,  36171,  36172,  36173,  36174,  36175,  36176,
+	}},
+	{{
+	 36177,  36178,  36179,  36180,  36181,  36182,  36183,  36184,
+	 36185,  36186,  36187,  36188,  36189,  36190,  36191,  36192,
+	 36193,  36194,  36196,  36198,  36200,  36202,  36204,  36206,
+	 36208,  36210,  36212,  36214,  36216,  36218,  36220,  36222,
+	}},
+	{{
+	 36224,  36226,  36228,  36230,  36232,  36234,  36236,  36238,
+	 36240,  36242,  36245,  36248,  36251,  36253,  36256,  36258,
+	 36261,  36262,  36263,  36264,  36265,  36266,  36267,  36268,
+	 36269,  36270,  36271,  36272,  36273,  36274,  36275,  36276,
+	}},
+	{{
+	 36277,  36278,  36279,  36280,  36281,  36282,  36283,  36284,
+	 36285,  36286,  36287,  36288,  36289,  36290,  36291,  36292,
+	 36293,  36294,  36295,  36296,  36297,  36298,  36299,  36300,
+	 36301,  36302,  36303,  36304,  36305,  36306,  36307,      0,
+	}},
+	{{
+	 36308,  36312,  36316,  36320,  36323,  36327,  36330,  36333,
+	 36338,  36342,  36345,  36348,  36351,  36355,  36359,  36362,
+	 36365,  36367,  36370,  36374,  36378,  36380,  36385,  36391,
+	 36396,  36399,  36404,  36409,  36413,  36416,  36419,  36422,
+	}},
+	{{
+	 36426,  36431,  36435,  36438,  36441,  36444,  36446,  36448,
+	 36450,  36452,  36455,  36458,  36463,  36466,  36470,  36475,
+	 36478,  36480,  36482,  36487,  36491,  36496,  36499,  36504,
+	 36506,  36509,  36512,  36515,  36518,  36521,  36525,  36528,
+	}},
+	{{
+	 36530,  36533,  36536,  36539,  36543,  36546,  36549,  36552,
+	 36557,  36561,  36563,  36568,  36570,  36574,  36578,  36581,
+	 36584,  36587,  36591,  36593,  36596,  36600,  36602,  36607,
+	 36610,  36612,  36614,  36616,  36618,  36620,  36622,  36624,
+	}},
+	{{
+	 36626,  36628,  36630,  36633,  36636,  36639,  36642,  36645,
+	 36648,  36651,  36654,  36657,  36660,  36663,  36666,  36669,
+	 36672,  36675,  36678,  36680,  36682,  36685,  36687,  36689,
+	 36691,  36694,  36697,  36699,  36701,  36703,  36705,  36707,
+	}},
+	{{
+	 36711,  36713,  36715,  36717,  36719,  36721,  36723,  36725,
+	 36727,  36730,  36734,  36736,  36738,  36740,  36742,  36744,
+	 36746,  36748,  36751,  36754,  36757,  36760,  36762,  36764,
+	 36766,  36768,  36770,  36772,  36774,  36776,  36778,  36780,
+	}},
+	{{
+	 36783,  36786,  36788,  36791,  36794,  36797,  36799,  36802,
+	 36805,  36809,  36811,  36814,  36817,  36820,  36823,  36828,
+	 36834,  36836,  36838,  36840,  36842,  36844,  36846,  36848,
+	 36850,  36852,  36854,  36856,  36858,  36860,  36862,  36864,
+	}},
+	{{
+	 36866,  36868,  36870,  36874,  36876,  36878,  36880,  36884,
+	 36887,  36889,  36891,  36893,  36895,  36897,  36899,  36901,
+	 36903,  36905,  36907,  36910,  36912,  36914,  36917,  36920,
+	 36922,  36926,  36929,  36931,  36933,  36935,  36937,  36940,
+	}},
+	{{
+	 36943,  36945,  36947,  36949,  36951,  36953,  36955,  36957,
+	 36959,  36961,  36964,  36967,  36970,  36973,  36976,  36979,
+	 36982,  36985,  36988,  36991,  36994,  36997,  37000,  37003,
+	 37006,  37009,  37012,  37015,  37018,  37021,  37024,  37027,
+	}},
+	{{
+	  4262,   4263,   4264,   4265,   4266,   4267,   4268,   4269,
+	  4270,   4271,   4272,   4273,   4274,   4275,   4276,   4277,
+	  4278,   4279,   4280,   4281,   4282,   4283,   4284,   4285,
+	  4286,   4287,   4288,   4289,   4290,   4291,   4292,   4293,
+	}},
+	{{
+	  4294,   4295,   4296,   4297,   4298,   4299,   4300,   4301,
+	  4302,   4303,   4304,   4305,   4306,   4307,   4308,   4309,
+	  4310,   4311,   4312,   4313,   4314,   4315,   4316,   4317,
+	  4318,   4319,   4320,   4321,   4322,   4323,   4324,   4325,
+	}},
+	{{
+	  4326,   4327,   4328,   4329,   4330,   4331,   4332,   4333,
+	  4334,   4335,   4336,   4337,   4338,   4339,   4340,   4341,
+	  4342,   4343,   4344,   4345,   4346,   4347,   4348,   4349,
+	  4350,   4351,   4352,   4353,   4354,   4355,   4356,   4357,
+	}},
+	{{
+	  4358,   4359,   4360,   4361,   4362,   4363,   4364,   4365,
+	  4366,   4367,   4368,   4369,   4370,   4371,   4372,   4373,
+	  4374,   4375,   4376,   4377,   4378,   4379,   4380,   4381,
+	  4382,   4383,   4384,   4385,   4386,   4387,   4388,   4389,
+	}},
+	{{
+	  4390,   4391,   4392,   4393,   4394,   4395,   4396,   4397,
+	  4398,   4399,   4400,   4401,   4402,   4403,   4404,   4405,
+	  4406,   4407,   4408,   4409,   4410,   4411,   4412,   4413,
+	  4414,   4415,   4416,   4417,   4418,   4419,   4420,   4421,
+	}},
+	{{
+	  4422,   4423,   4424,   4425,   4426,   4427,   4428,   4429,
+	  4430,   4431,   4432,   4433,   4434,   4435,   4436,   4437,
+	  4438,   4439,   4440,   4441,   4442,   4443,   4444,   4445,
+	  4446,   4447,   4448,   4449,   4450,   4451,   4452,   4453,
+	}},
+	{{
+	  4454,   4455,   4456,   4457,   4458,   4459,   4460,   4461,
+	  4462,   4463,   4464,   4465,   4466,   4467,   4468,   4469,
+	  4470,   4471,   4472,   4473,   4474,   4475,   4476,   4477,
+	  4478,   4479,   4480,   4481,   4482,   4483,   4484,   4485,
+	}},
+	{{
+	  4486,   4487,   4488,   4489,   4490,   4491,   4492,   4493,
+	  4494,   4495,   4496,   4497,   4498,   4499,   4500,   4501,
+	  4502,   4503,   4504,   4505,   4506,   4507,   4508,   4509,
+	  4510,   4511,   4512,   4513,   4514,   4515,   4516,   4517,
+	}},
+	{{
+	  4518,   4519,   4520,   4521,   4522,   4523,   4524,   4525,
+	  4526,   4527,   4528,   4529,   4530,   4531,      0,      0,
+	  4532,      0,   4533,      0,      0,   4534,   4535,   4536,
+	  4537,   4538,   4539,   4540,   4541,   4542,   4543,      0,
+	}},
+	{{
+	  4544,      0,   4545,      0,      0,   4546,   4547,      0,
+	     0,      0,   4548,   4549,   4550,   4551,      0,      0,
+	  4552,   4553,   4554,   4555,   4556,   4557,   4558,   4559,
+	  4560,   4561,   4562,   4563,   4564,   4565,   4566,   4567,
+	}},
+	{{
+	  4568,   4569,   4570,   4571,   4572,   4573,   4574,   4575,
+	  4576,   4577,   4578,   4579,   4580,   4581,   4582,   4583,
+	  4584,   4585,   4586,   4587,   4588,   4589,   4590,   4591,
+	  4592,   4593,   4594,   4595,   4596,   4597,   4598,   4599,
+	}},
+	{{
+	  4600,   4601,   4602,   4603,   4604,   4605,   4606,   4607,
+	  4608,   4609,   4610,      0,      0,      0,      0,      0,
+	  4611,   4612,   4613,   4614,   4615,   4616,   4617,   4618,
+	  4619,   4620,   4621,   4622,   4623,   4624,   4625,   4626,
+	}},
+	{{
+	  4627,   4628,   4629,   4630,   4631,   4632,   4633,   4634,
+	  4635,   4636,   4637,   4638,   4639,   4640,   4641,   4642,
+	  4643,   4644,   4645,   4646,   4647,   4648,   4649,   4650,
+	  4651,   4652,   4653,   4654,   4655,   4656,   4657,   4658,
+	}},
+	{{
+	  4659,   4660,   4661,   4662,   4663,   4664,   4665,   4666,
+	  4667,   4668,   4669,   4670,   4671,   4672,   4673,   4674,
+	  4675,   4676,   4677,   4678,   4679,   4680,   4681,   4682,
+	  4683,   4684,   4685,   4686,   4687,   4688,   4689,   4690,
+	}},
+	{{
+	  4691,   4692,   4693,   4694,   4695,   4696,   4697,   4698,
+	  4699,   4700,   4701,   4702,   4703,   4704,   4705,   4706,
+	  4707,   4708,   4709,   4710,   4711,   4712,   4713,   4714,
+	  4715,   4716,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 37485,  37487,  37489,  37491,  37494,  37497,  37499,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  37501,  37503,  37505,  37507,  37509,
+	     0,      0,      0,      0,      0,   4743,      0,   4745,
+	}},
+	{{
+	 37515,  37516,  37517,  37518,  37519,  37520,  37521,  37522,
+	 37523,  37524,   4757,   4759,   4761,   4763,   4765,   4767,
+	  4769,   4771,   4773,   4775,   4777,   4779,   4781,      0,
+	  4783,   4785,   4787,   4789,   4791,      0,   4793,      0,
+	}},
+	{{
+	  4795,   4797,      0,   4799,   4801,      0,   4803,   4805,
+	  4807,   4809,   4811,   4813,   4815,   4817,   4819,  37589,
+	 37591,  37592,  37593,  37594,  37595,  37596,  37597,  37598,
+	 37599,  37600,  37601,  37602,  37603,  37604,  37605,  37606,
+	}},
+	{{
+	 37607,  37608,  37609,  37610,  37611,  37612,  37613,  37614,
+	 37615,  37616,  37617,  37618,  37619,  37620,  37621,  37622,
+	 37623,  37624,  37625,  37626,  37627,  37628,  37629,  37630,
+	 37631,  37632,  37633,  37634,  37635,  37636,  37637,  37638,
+	}},
+	{{
+	 37639,  37640,  37641,  37642,  37643,  37644,  37645,  37646,
+	 37647,  37648,  37649,  37650,  37651,  37652,  37653,  37654,
+	 37655,  37656,  37657,  37658,  37659,  37660,  37661,  37662,
+	 37663,  37664,  37665,  37666,  37667,  37668,  37669,  37670,
+	}},
+	{{
+	 37671,  37672,  37673,  37674,  37675,  37676,  37677,  37678,
+	 37679,  37680,  37681,  37682,  37683,  37684,  37685,  37686,
+	 37687,  37688,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,  37689,  37690,  37691,  37692,  37693,
+	 37694,  37695,  37696,  37697,  37698,  37699,  37700,  37701,
+	}},
+	{{
+	 37702,  37703,  37704,  37705,  37706,  37707,  37708,  37709,
+	 37710,  37711,  37712,  37714,  37716,  37718,  37720,  37722,
+	 37724,  37726,  37728,  37730,  37732,  37734,  37736,  37738,
+	 37740,  37742,  37744,  37746,  37748,  37749,  37750,  37751,
+	}},
+	{{
+	 37752,  37754,  37756,  37758,  37760,  37762,  37764,  37766,
+	 37768,  37770,  37772,  37774,  37776,  37778,  37780,  37782,
+	 37784,  37786,  37788,  37790,  37792,  37794,  37796,  37798,
+	 37800,  37802,  37804,  37806,  37808,  37810,  37812,  37814,
+	}},
+	{{
+	 37816,  37818,  37820,  37822,  37824,  37826,  37828,  37830,
+	 37832,  37834,  37836,  37838,  37840,  37842,  37844,  37846,
+	 37848,  37850,  37852,  37854,  37856,  37858,  37860,  37862,
+	 37864,  37866,  37868,  37870,  37872,  37874,  37876,  37878,
+	}},
+	{{
+	 37880,  37882,  37884,  37886,  37888,  37890,  37892,  37894,
+	 37896,  37898,  37900,  37902,  37904,  37906,  37908,  37910,
+	 37912,  37914,  37916,  37918,  37920,  37922,  37924,  37926,
+	 37928,  37930,  37932,  37934,  37936,  37938,  37940,  37943,
+	}},
+	{{
+	 37946,  37949,  37952,  37955,  37958,  37960,  37962,  37964,
+	 37966,  37968,  37970,  37972,  37974,  37976,  37978,  37980,
+	 37982,  37984,  37986,  37988,  37990,  37992,  37994,  37996,
+	 37998,  38000,  38002,  38004,  38006,  38008,  38010,  38012,
+	}},
+	{{
+	 38014,  38016,  38018,  38020,  38022,  38024,  38026,  38028,
+	 38030,  38032,  38034,  38036,  38038,  38040,  38042,  38044,
+	 38046,  38048,  38050,  38052,  38054,  38056,  38058,  38060,
+	 38062,  38064,  38066,  38068,  38070,  38072,  38074,  38076,
+	}},
+	{{
+	 38078,  38080,  38082,  38084,  38086,  38088,  38090,  38092,
+	 38094,  38096,  38098,  38100,  38102,  38104,  38106,  38108,
+	 38110,  38112,  38114,  38116,  38118,  38120,  38122,  38124,
+	 38126,  38128,  38130,  38132,  38134,  38136,  38138,  38140,
+	}},
+	{{
+	 38142,  38144,  38146,  38148,  38150,  38152,  38154,  38156,
+	 38158,  38160,  38162,  38164,  38166,  38168,  38170,  38172,
+	 38174,  38176,  38178,  38180,  38182,  38184,  38186,  38188,
+	 38190,  38192,  38194,  38196,  38198,  38200,  38202,  38204,
+	}},
+	{{
+	 38206,  38208,  38210,  38212,  38214,  38216,  38218,  38220,
+	 38222,  38224,  38226,  38228,  38230,  38232,  38234,  38236,
+	 38238,  38240,  38242,  38245,  38248,  38251,  38253,  38255,
+	 38257,  38259,  38261,  38263,  38265,  38267,  38269,  38271,
+	}},
+	{{
+	 38273,  38275,  38277,  38279,  38281,  38283,  38285,  38287,
+	 38289,  38291,  38293,  38295,  38297,  38299,  38301,  38303,
+	 38305,  38307,  38309,  38311,  38313,  38315,  38317,  38319,
+	 38321,  38323,  38325,  38327,  38329,  38331,  38333,  38335,
+	}},
+	{{
+	 38337,  38339,  38341,  38343,  38345,  38347,  38349,  38351,
+	 38353,  38355,  38357,  38359,  38361,  38363,  38365,  38367,
+	 38369,  38371,  38373,  38375,  38377,  38379,  38381,  38383,
+	 38385,  38387,  38389,  38391,  38393,  38395,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 38397,  38400,  38403,  38406,  38409,  38412,  38415,  38418,
+	 38421,  38424,  38427,  38430,  38433,  38436,  38439,  38442,
+	}},
+	{{
+	 38445,  38448,  38451,  38454,  38457,  38460,  38463,  38466,
+	 38469,  38472,  38475,  38478,  38481,  38484,  38487,  38490,
+	 38493,  38496,  38499,  38502,  38505,  38508,  38511,  38514,
+	 38517,  38520,  38523,  38526,  38529,  38532,  38535,  38538,
+	}},
+	{{
+	 38541,  38544,  38547,  38550,  38553,  38556,  38559,  38562,
+	 38565,  38568,  38571,  38574,  38577,  38580,  38583,  38586,
+	     0,      0,  38589,  38592,  38595,  38598,  38601,  38604,
+	 38607,  38610,  38613,  38616,  38619,  38622,  38625,  38628,
+	}},
+	{{
+	 38631,  38634,  38637,  38640,  38643,  38646,  38649,  38652,
+	 38655,  38658,  38661,  38664,  38667,  38670,  38673,  38676,
+	 38679,  38682,  38685,  38688,  38691,  38694,  38697,  38700,
+	 38703,  38706,  38709,  38712,  38715,  38718,  38721,  38724,
+	}},
+	{{
+	 38727,  38730,  38733,  38736,  38739,  38742,  38745,  38748,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 38751,  38754,  38757,  38761,  38765,  38769,  38773,  38777,
+	 38781,  38785,  38788,  38806,  38814,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 38818,  38819,  38820,  38821,  38822,  38823,  38824,  38825,
+	 38826,  38827,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	 38828,  38829,  38830,  38831,  38832,  38833,  38834,  38835,
+	 38836,  38837,  38838,  38839,  38840,  38841,  38842,  38843,
+	}},
+	{{
+	 38844,  38845,  38846,  38847,  38848,      0,      0,  38849,
+	 38850,  38851,  38852,  38853,  38854,  38855,  38856,  38857,
+	 38858,  38859,  38860,      0,  38861,  38862,  38863,  38864,
+	 38865,  38866,  38867,  38868,  38869,  38870,  38871,  38872,
+	}},
+	{{
+	 38873,  38874,  38875,  38876,  38877,  38878,  38879,      0,
+	 38880,  38881,  38882,  38883,      0,      0,      0,      0,
+	 38884,  38886,  38888,      0,  38890,      0,  38892,  38894,
+	 38896,  38898,  38900,  38902,  38904,  38906,  38908,  38910,
+	}},
+	{{
+	 38912,  38913,  38914,  38915,  38916,  38917,  38918,  38919,
+	 38920,  38921,  38922,  38923,  38924,  38925,  38926,  38927,
+	 38928,  38929,  38930,  38931,  38932,  38933,  38934,  38935,
+	 38936,  38937,  38938,  38939,  38940,  38941,  38942,  38943,
+	}},
+	{{
+	 38944,  38945,  38946,  38947,  38948,  38949,  38950,  38951,
+	 38952,  38953,  38954,  38955,  38956,  38957,  38958,  38959,
+	 38960,  38961,  38962,  38963,  38964,  38965,  38966,  38967,
+	 38968,  38969,  38970,  38971,  38972,  38973,  38974,  38975,
+	}},
+	{{
+	 38976,  38977,  38978,  38979,  38980,  38981,  38982,  38983,
+	 38984,  38985,  38986,  38987,  38988,  38989,  38990,  38991,
+	 38992,  38993,  38994,  38995,  38996,  38997,  38998,  38999,
+	 39000,  39001,  39002,  39003,  39004,  39005,  39006,  39007,
+	}},
+	{{
+	 39008,  39009,  39010,  39011,  39012,  39013,  39014,  39015,
+	 39016,  39017,  39018,  39019,  39020,  39021,  39022,  39023,
+	 39024,  39025,  39026,  39027,  39028,  39029,  39031,  39033,
+	 39035,  39037,  39039,  39041,  39043,      0,      0,      0,
+	}},
+	{{
+	     0,  39045,  39046,  39047,  39048,  39049,  39050,  39051,
+	 39052,  39053,  39054,  39055,  39056,  39057,  39058,  39059,
+	 39060,  39061,  39062,  39063,  39064,  39065,  39066,  39067,
+	 39068,  39069,  39070,  39071,  39072,  39073,  39074,  39075,
+	}},
+	{{
+	 39076,  39077,  39078,  39079,  39080,  39081,  39082,  39083,
+	 39084,  39085,  39086,  39087,  39088,  39089,  39090,  39091,
+	 39092,  39093,  39094,  39095,  39096,  39097,  39098,  39099,
+	 39100,  39101,  39102,  39103,  39104,  39105,  39106,  39107,
+	}},
+	{{
+	 39108,  39109,  39110,  39111,  39112,  39113,  39114,  39115,
+	 39116,  39117,  39118,  39119,  39120,  39121,  39122,  39123,
+	 39124,  39125,  39126,  39127,  39128,  39129,  39130,  39131,
+	 39132,  39133,  39134,  39135,  39136,  39137,  39138,  39139,
+	}},
+	{{
+	 39140,  39141,  39142,  39143,  39144,  39145,  39146,  39147,
+	 39148,  39149,  39150,  39151,  39152,  39153,  39154,  39155,
+	 39156,  39157,  39158,  39159,  39160,  39161,  39162,  39163,
+	 39164,  39165,  39166,  39167,  39168,  39169,  39170,  39171,
+	}},
+	{{
+	 39172,  39173,  39174,  39175,  39176,  39177,  39178,  39179,
+	 39180,  39181,  39182,  39183,  39184,  39185,  39186,  39187,
+	 39188,  39189,  39190,  39191,  39192,  39193,  39194,  39195,
+	 39196,  39197,  39198,  39199,  39200,  39201,  39202,  39203,
+	}},
+	{{
+	 39204,  39205,  39206,  39207,  39208,  39209,  39210,  39211,
+	 39212,  39213,  39214,  39215,  39216,  39217,  39218,  39219,
+	 39220,  39221,  39222,  39223,  39224,  39225,  39226,  39227,
+	 39228,  39229,  39230,  39231,  39232,  39233,  39234,      0,
+	}},
+	{{
+	     0,      0,  39235,  39236,  39237,  39238,  39239,  39240,
+	     0,      0,  39241,  39242,  39243,  39244,  39245,  39246,
+	     0,      0,  39247,  39248,  39249,  39250,  39251,  39252,
+	     0,      0,  39253,  39254,  39255,      0,      0,      0,
+	}},
+	{{
+	 39256,  39257,  39258,  39259,  39260,  39261,  39262,      0,
+	 39263,  39264,  39265,  39266,  39267,  39268,  39269,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,   6502,   6504,
+	}},
+	{{
+	  6506,   6508,   6510,   6512,   6514,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,   6516,   6518,   6520,   6522,   6524,
+	}},
+	{{
+	  6526,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	     0,      0,      0,      0,      0,      0,      0,      0,
+	}},
+	{{
+	 39296,  39297,  39298,  39299,  39300,  39301,  39302,  39303,
+	 39304,  39305,  39306,  39307,  39308,  39309,  39310,  39311,
+	 39312,  39313,  39314,  39315,  39316,  39317,  39318,  39319,
+	 39320,  39321,  39322,  39323,  39324,  39325,  39326,  39327,
+	}},
+	{{
+	 39328,  39329,  39330,  39331,  39332,  39333,  39334,  39335,
+	 39336,  39337,  39338,  39339,  39340,  39341,  39342,  39343,
+	 39344,  39345,  39346,  39347,  39348,  39349,  39350,  39351,
+	 39352,  39353,  39354,  39355,  39356,  39357,  39358,  39359,
+	}},
+	{{
+	 39360,  39361,  39362,  39363,  39364,  39365,  39366,  39367,
+	 39368,  39369,  39370,  39371,  39372,  39373,  39374,  39375,
+	 39376,  39377,  39378,  39379,  39380,      0,  39381,  39382,
+	 39383,  39384,  39385,  39386,  39387,  39388,  39389,  39390,
+	}},
+	{{
+	 39391,  39392,  39393,  39394,  39395,  39396,  39397,  39398,
+	 39399,  39400,  39401,  39402,  39403,  39404,  39405,  39406,
+	 39407,  39408,  39409,  39410,  39411,  39412,  39413,  39414,
+	 39415,  39416,  39417,  39418,  39419,  39420,  39421,  39422,
+	}},
+	{{
+	 39423,  39424,  39425,  39426,  39427,  39428,  39429,  39430,
+	 39431,  39432,  39433,  39434,  39435,  39436,  39437,  39438,
+	 39439,  39440,  39441,  39442,  39443,  39444,  39445,  39446,
+	 39447,  39448,  39449,  39450,  39451,      0,  39452,  39453,
+	}},
+	{{
+	     0,      0,  39454,      0,      0,  39455,  39456,      0,
+	     0,  39457,  39458,  39459,  39460,      0,  39461,  39462,
+	 39463,  39464,  39465,  39466,  39467,  39468,  39469,  39470,
+	 39471,  39472,      0,  39473,      0,  39474,  39475,  39476,
+	}},
+	{{
+	 39477,  39478,  39479,  39480,      0,  39481,  39482,  39483,
+	 39484,  39485,  39486,  39487,  39488,  39489,  39490,  39491,
+	 39492,  39493,  39494,  39495,  39496,  39497,  39498,  39499,
+	 39500,  39501,  39502,  39503,  39504,  39505,  39506,  39507,
+	}},
+	{{
+	 39508,  39509,  39510,  39511,  39512,  39513,  39514,  39515,
+	 39516,  39517,  39518,  39519,  39520,  39521,  39522,  39523,
+	 39524,  39525,  39526,  39527,  39528,  39529,  39530,  39531,
+	 39532,  39533,  39534,  39535,  39536,  39537,  39538,  39539,
+	}},
+	{{
+	 39540,  39541,  39542,  39543,  39544,  39545,      0,  39546,
+	 39547,  39548,  39549,      0,      0,  39550,  39551,  39552,
+	 39553,  39554,  39555,  39556,  39557,      0,  39558,  39559,
+	 39560,  39561,  39562,  39563,  39564,      0,  39565,  39566,
+	}},
+	{{
+	 39567,  39568,  39569,  39570,  39571,  39572,  39573,  39574,
+	 39575,  39576,  39577,  39578,  39579,  39580,  39581,  39582,
+	 39583,  39584,  39585,  39586,  39587,  39588,  39589,  39590,
+	 39591,  39592,      0,  39593,  39594,  39595,  39596,      0,
+	}},
+	{{
+	 39597,  39598,  39599,  39600,  39601,      0,  39602,      0,
+	     0,      0,  39603,  39604,  39605,  39606,  39607,  39608,
+	 39609,      0,  39610,  39611,  39612,  39613,  39614,  39615,
+	 39616,  39617,  39618,  39619,  39620,  39621,  39622,  39623,
+	}},
+	{{
+	 39624,  39625,  39626,  39627,  39628,  39629,  39630,  39631,
+	 39632,  39633,  39634,  39635,  39636,  39637,  39638,  39639,
+	 39640,  39641,  39642,  39643,  39644,  39645,  39646,  39647,
+	 39648,  39649,  39650,  39651,  39652,  39653,  39654,  39655,
+	}},
+	{{
+	 39656,  39657,  39658,  39659,  39660,  39661,  39662,  39663,
+	 39664,  39665,  39666,  39667,  39668,  39669,  39670,  39671,
+	 39672,  39673,  39674,  39675,  39676,  39677,  39678,  39679,
+	 39680,  39681,  39682,  39683,  39684,  39685,  39686,  39687,
+	}},
+	{{
+	 39688,  39689,  39690,  39691,  39692,  39693,  39694,  39695,
+	 39696,  39697,  39698,  39699,  39700,  39701,  39702,  39703,
+	 39704,  39705,  39706,  39707,  39708,  39709,  39710,  39711,
+	 39712,  39713,  39714,  39715,  39716,  39717,  39718,  39719,
+	}},
+	{{
+	 39720,  39721,  39722,  39723,  39724,  39725,  39726,  39727,
+	 39728,  39729,  39730,  39731,  39732,  39733,  39734,  39735,
+	 39736,  39737,  39738,  39739,  39740,  39741,  39742,  39743,
+	 39744,  39745,  39746,  39747,  39748,  39749,  39750,  39751,
+	}},
+	{{
+	 39752,  39753,  39754,  39755,  39756,  39757,  39758,  39759,
+	 39760,  39761,  39762,  39763,  39764,  39765,  39766,  39767,
+	 39768,  39769,  39770,  39771,  39772,  39773,  39774,  39775,
+	 39776,  39777,  39778,  39779,  39780,  39781,  39782,  39783,
+	}},
+	{{
+	 39784,  39785,  39786,  39787,  39788,  39789,  39790,  39791,
+	 39792,  39793,  39794,  39795,  39796,  39797,  39798,  39799,
+	 39800,  39801,  39802,  39803,  39804,  39805,  39806,  39807,
+	 39808,  39809,  39810,  39811,  39812,  39813,  39814,  39815,
+	}},
+	{{
+	 39816,  39817,  39818,  39819,  39820,  39821,  39822,  39823,
+	 39824,  39825,  39826,  39827,  39828,  39829,  39830,  39831,
+	 39832,  39833,  39834,  39835,  39836,  39837,  39838,  39839,
+	 39840,  39841,  39842,  39843,  39844,  39845,  39846,  39847,
+	}},
+	{{
+	 39848,  39849,  39850,  39851,  39852,  39853,  39854,  39855,
+	 39856,  39857,  39858,  39859,  39860,  39861,  39862,  39863,
+	 39864,  39865,  39866,  39867,  39868,  39869,  39870,  39871,
+	 39872,  39873,  39874,  39875,  39876,  39877,  39878,  39879,
+	}},
+	{{
+	 39880,  39881,  39882,  39883,  39884,  39885,  39886,  39887,
+	 39888,  39889,  39890,  39891,  39892,  39893,  39894,  39895,
+	 39896,  39897,  39898,  39899,  39900,  39901,  39902,  39903,
+	 39904,  39905,  39906,  39907,  39908,  39909,  39910,  39911,
+	}},
+	{{
+	 39912,  39913,  39914,  39915,  39916,  39917,  39918,  39919,
+	 39920,  39921,  39922,  39923,  39924,  39925,  39926,  39927,
+	 39928,  39929,  39930,  39931,  39932,  39933,  39934,  39935,
+	 39936,  39937,  39938,  39939,  39940,  39941,  39942,  39943,
+	}},
+	{{
+	 39944,  39945,  39946,  39947,  39948,  39949,      0,      0,
+	 39950,  39951,  39952,  39953,  39954,  39955,  39956,  39957,
+	 39958,  39959,  39960,  39961,  39962,  39963,  39964,  39965,
+	 39966,  39967,  39968,  39969,  39970,  39971,  39972,  39973,
+	}},
+	{{
+	 39974,  39975,  39976,  39977,  39978,  39979,  39980,  39981,
+	 39982,  39983,  39984,  39985,  39986,  39987,  39988,  39989,
+	 39990,  39991,  39992,  39993,  39994,  39995,  39996,  39997,
+	 39998,  39999,  40000,  40001,  40002,  40003,  40004,  40005,
+	}},
+	{{
+	 40006,  40007,  40008,  40009,  40010,  40011,  40012,  40013,
+	 40014,  40015,  40016,  40017,  40018,  40019,  40020,  40021,
+	 40022,  40023,  40024,  40025,  40026,  40027,  40028,  40029,
+	 40030,  40031,  40032,  40033,  40034,  40035,  40036,  40037,
+	}},
+	{{
+	 40038,  40039,  40040,  40041,  40042,  40043,  40044,  40045,
+	 40046,  40047,  40048,  40049,  40050,  40051,  40052,  40053,
+	 40054,  40055,  40056,  40057,  40058,  40059,  40060,  40061,
+	 40062,  40063,  40064,  40065,  40066,  40067,  40068,  40069,
+	}},
+	{{
+	 40070,  40071,  40072,  40073,  40074,  40075,  40076,  40077,
+	 40078,  40079,  40080,  40081,  40082,  40083,  40084,  40085,
+	 40086,  40087,  40088,  40089,  40090,  40091,  40092,  40093,
+	 40094,  40095,  40096,  40097,  40098,  40099,  40100,  40101,
+	}},
+	{{
+	 40102,  40103,  40104,  40105,  40106,  40107,  40108,  40109,
+	 40110,  40111,  40112,  40113,  40114,  40115,  40116,  40117,
+	 40118,  40119,  40120,  40121,  40122,  40123,  40124,  40125,
+	 40126,  40127,  40128,  40129,  40130,  40131,  40132,  40133,
+	}},
+	{{
+	 40134,  40135,  40136,  40137,  40138,  40139,  40140,  40141,
+	 40142,  40143,  40144,  40145,  40146,  40147,  40148,  40149,
+	 40150,  40151,  40152,  40153,  40154,  40155,  40156,  40157,
+	 40158,  40159,  40160,  40161,  40162,  40163,  40164,  40165,
+	}},
+	{{
+	 40166,  40167,  40168,  40169,  40170,  40171,  40172,  40173,
+	 40174,  40175,  40176,  40177,  40178,  40179,  40180,  40181,
+	 40182,  40183,  40184,  40185,  40186,  40187,  40188,  40189,
+	 40190,  40191,  40192,  40193,  40194,  40195,  40196,  40197,
+	}},
+	{{
+	 40198,  40199,  40200,  40201,  40202,  40203,  40204,  40205,
+	 40206,  40207,  40208,  40209,  40210,  40211,  40212,  40213,
+	 40214,  40215,  40216,  40217,  40218,  40219,  40220,  40221,
+	 40222,  40223,  40224,  40225,  40226,  40227,  40228,  40229,
+	}},
+	{{
+	 40230,  40231,  40232,  40233,  40234,  40235,  40236,  40237,
+	 40238,  40239,      0,      0,      0,      0,  40240,  40241,
+	 40242,  40243,  40244,  40245,  40246,  40247,  40248,  40249,
+	 40250,  40251,  40252,  40253,  40254,  40255,  40256,  40257,
+	}},
+	{{
+	 40258,  40259,  40260,  40261,  40262,  40263,  40264,  40265,
+	 40266,  40267,  40268,  40269,  40270,  40271,  40272,  40273,
+	 40274,  40275,  40276,  40277,  40278,  40279,  40280,  40281,
+	 40282,  40283,  40284,  40285,  40286,  40287,  40288,  40289,
+	}},
+	{{
+	  7522,   7523,   7524,   7525,   7526,   7527,   7528,   7529,
+	  7530,   7531,   7532,   7533,   7534,   7535,   7536,   7537,
+	  7538,   7539,   7540,   7541,   7542,   7543,   7544,   7545,
+	  7546,   7547,   7548,   7549,   7550,   7551,   7552,   7553,
+	}},
+	{{
+	  7554,   7555,   7556,   7557,   7558,   7559,   7560,   7561,
+	  7562,   7563,   7564,   7565,   7566,   7567,   7568,   7569,
+	  7570,   7571,   7572,   7573,   7574,   7575,   7576,   7577,
+	  7578,   7579,   7580,   7581,   7582,   7583,   7584,   7585,
+	}},
+	{{
+	  7586,   7587,   7588,   7589,   7590,   7591,   7592,   7593,
+	  7594,   7595,   7596,   7597,   7598,   7599,   7600,   7601,
+	  7602,   7603,   7604,   7605,   7606,   7607,   7608,   7609,
+	  7610,   7611,   7612,   7613,   7614,   7615,   7616,   7617,
+	}},
+	{{
+	  7618,   7619,   7620,   7621,   7622,   7623,   7624,   7625,
+	  7626,   7627,   7628,   7629,   7630,   7631,   7632,   7633,
+	  7634,   7635,   7636,   7637,   7638,   7639,   7640,   7641,
+	  7642,   7643,   7644,   7645,   7646,   7647,   7648,   7649,
+	}},
+	{{
+	  7650,   7651,   7652,   7653,   7654,   7655,   7656,   7657,
+	  7658,   7659,   7660,   7661,   7662,   7663,   7664,   7665,
+	  7666,   7667,   7668,   7669,   7670,   7671,   7672,   7673,
+	  7674,   7675,   7676,   7677,   7678,   7679,   7680,   7681,
+	}},
+	{{
+	  7682,   7683,   7684,   7685,   7686,   7687,   7688,   7689,
+	  7690,   7691,   7692,   7693,   7694,   7695,   7696,   7697,
+	  7698,   7699,   7700,   7701,   7702,   7703,   7704,   7705,
+	  7706,   7707,   7708,   7709,   7710,   7711,   7712,   7713,
+	}},
+	{{
+	  7714,   7715,   7716,   7717,   7718,   7719,   7720,   7721,
+	  7722,   7723,   7724,   7725,   7726,   7727,   7728,   7729,
+	  7730,   7731,   7732,   7733,   7734,   7735,   7736,   7737,
+	  7738,   7739,   7740,   7741,   7742,   7743,   7744,   7745,
+	}},
+	{{
+	  7746,   7747,   7748,   7749,   7750,   7751,   7752,   7753,
+	  7754,   7755,   7756,   7757,   7758,   7759,   7760,   7761,
+	  7762,   7763,   7764,   7765,   7766,   7767,   7768,   7769,
+	  7770,   7771,   7772,   7773,   7774,   7775,   7776,   7777,
+	}},
+	{{
+	  7778,   7779,   7780,   7781,   7782,   7783,   7784,   7785,
+	  7786,   7787,   7788,   7789,   7790,   7791,   7792,   7793,
+	  7794,   7795,   7796,   7797,   7798,   7799,   7800,   7801,
+	  7802,   7803,   7804,   7805,   7806,   7807,   7808,   7809,
+	}},
+	{{
+	  7810,   7811,   7812,   7813,   7814,   7815,   7816,   7817,
+	  7818,   7819,   7820,   7821,   7822,   7823,   7824,   7825,
+	  7826,   7827,   7828,   7829,   7830,   7831,   7832,   7833,
+	  7834,   7835,   7836,   7837,   7838,   7839,   7840,   7841,
+	}},
+	{{
+	  7842,   7843,   7844,   7845,   7846,   7847,   7848,   7849,
+	  7850,   7851,   7852,   7853,   7854,   7855,   7856,   7857,
+	  7858,   7859,   7860,   7861,   7862,   7863,   7864,   7865,
+	  7866,   7867,   7868,   7869,   7870,   7871,   7872,   7873,
+	}},
+	{{
+	  7874,   7875,   7876,   7877,   7878,   7879,   7880,   7881,
+	  7882,   7883,   7884,   7885,   7886,   7887,   7888,   7889,
+	  7890,   7891,   7892,   7893,   7894,   7895,   7896,   7897,
+	  7898,   7899,   7900,   7901,   7902,   7903,   7904,   7905,
+	}},
+	{{
+	  7906,   7907,   7908,   7909,   7910,   7911,   7912,   7913,
+	  7914,   7915,   7916,   7917,   7918,   7919,   7920,   7921,
+	  7922,   7923,   7924,   7925,   7926,   7927,   7928,   7929,
+	  7930,   7931,   7932,   7933,   7934,   7935,   7936,   7937,
+	}},
+	{{
+	  7938,   7939,   7940,   7941,   7942,   7943,   7944,   7945,
+	  7946,   7947,   7948,   7949,   7950,   7951,   7952,   7953,
+	  7954,   7955,   7956,   7957,   7958,   7959,   7960,   7961,
+	  7962,   7963,   7964,   7965,   7966,   7967,   7968,   7969,
+	}},
+	{{
+	  7970,   7971,   7972,   7973,   7974,   7975,   7976,   7977,
+	  7978,   7979,   7980,   7981,   7982,   7983,   7984,   7985,
+	  7986,   7987,   7988,   7989,   7990,   7991,   7992,   7993,
+	  7994,   7995,   7996,   7997,   7998,   7999,   8000,   8001,
+	}},
+	{{
+	  8002,   8003,   8004,   8005,   8006,   8007,   8008,   8009,
+	  8010,   8011,   8012,   8013,   8014,   8015,   8016,   8017,
+	  8018,   8019,   8020,   8021,   8022,   8023,   8024,   8025,
+	  8026,   8027,   8028,   8029,   8030,   8031,   8032,   8033,
+	}},
+	{{
+	  8034,   8035,   8036,   8037,   8038,   8039,   8040,   8041,
+	  8042,   8043,   8044,   8045,   8046,   8047,   8048,   8049,
+	  8050,   8051,   8052,   8053,   8054,   8055,   8056,   8057,
+	  8058,   8059,   8060,   8061,   8062,   8063,      0,      0,
 	}},
 };
 static const uint32_t decompose_seq[] = {
-	0x00000000, 0x80000020, 0x00000020, 0x80000308, 
-	0x80000061, 0x00000020, 0x80000304, 0x80000032, 
-	0x80000033, 0x00000020, 0x80000301, 0x800003bc, 
-	0x00000020, 0x80000327, 0x80000031, 0x8000006f, 
-	0x00000031, 0x00002044, 0x80000034, 0x00000031, 
-	0x00002044, 0x80000032, 0x00000033, 0x00002044, 
-	0x80000034, 0x00000041, 0x80000300, 0x00000041, 
-	0x80000301, 0x00000041, 0x80000302, 0x00000041, 
-	0x80000303, 0x00000041, 0x80000308, 0x00000041, 
-	0x8000030a, 0x00000043, 0x80000327, 0x00000045, 
-	0x80000300, 0x00000045, 0x80000301, 0x00000045, 
-	0x80000302, 0x00000045, 0x80000308, 0x00000049, 
-	0x80000300, 0x00000049, 0x80000301, 0x00000049, 
-	0x80000302, 0x00000049, 0x80000308, 0x0000004e, 
-	0x80000303, 0x0000004f, 0x80000300, 0x0000004f, 
-	0x80000301, 0x0000004f, 0x80000302, 0x0000004f, 
-	0x80000303, 0x0000004f, 0x80000308, 0x00000055, 
-	0x80000300, 0x00000055, 0x80000301, 0x00000055, 
-	0x80000302, 0x00000055, 0x80000308, 0x00000059, 
-	0x80000301, 0x00000061, 0x80000300, 0x00000061, 
-	0x80000301, 0x00000061, 0x80000302, 0x00000061, 
-	0x80000303, 0x00000061, 0x80000308, 0x00000061, 
-	0x8000030a, 0x00000063, 0x80000327, 0x00000065, 
-	0x80000300, 0x00000065, 0x80000301, 0x00000065, 
-	0x80000302, 0x00000065, 0x80000308, 0x00000069, 
-	0x80000300, 0x00000069, 0x80000301, 0x00000069, 
-	0x80000302, 0x00000069, 0x80000308, 0x0000006e, 
-	0x80000303, 0x0000006f, 0x80000300, 0x0000006f, 
-	0x80000301, 0x0000006f, 0x80000302, 0x0000006f, 
-	0x80000303, 0x0000006f, 0x80000308, 0x00000075, 
-	0x80000300, 0x00000075, 0x80000301, 0x00000075, 
-	0x80000302, 0x00000075, 0x80000308, 0x00000079, 
-	0x80000301, 0x00000079, 0x80000308, 0x00000041, 
-	0x80000304, 0x00000061, 0x80000304, 0x00000041, 
-	0x80000306, 0x00000061, 0x80000306, 0x00000041, 
-	0x80000328, 0x00000061, 0x80000328, 0x00000043, 
-	0x80000301, 0x00000063, 0x80000301, 0x00000043, 
-	0x80000302, 0x00000063, 0x80000302, 0x00000043, 
-	0x80000307, 0x00000063, 0x80000307, 0x00000043, 
-	0x8000030c, 0x00000063, 0x8000030c, 0x00000044, 
-	0x8000030c, 0x00000064, 0x8000030c, 0x00000045, 
-	0x80000304, 0x00000065, 0x80000304, 0x00000045, 
-	0x80000306, 0x00000065, 0x80000306, 0x00000045, 
-	0x80000307, 0x00000065, 0x80000307, 0x00000045, 
-	0x80000328, 0x00000065, 0x80000328, 0x00000045, 
-	0x8000030c, 0x00000065, 0x8000030c, 0x00000047, 
-	0x80000302, 0x00000067, 0x80000302, 0x00000047, 
-	0x80000306, 0x00000067, 0x80000306, 0x00000047, 
-	0x80000307, 0x00000067, 0x80000307, 0x00000047, 
-	0x80000327, 0x00000067, 0x80000327, 0x00000048, 
-	0x80000302, 0x00000068, 0x80000302, 0x00000049, 
-	0x80000303, 0x00000069, 0x80000303, 0x00000049, 
-	0x80000304, 0x00000069, 0x80000304, 0x00000049, 
-	0x80000306, 0x00000069, 0x80000306, 0x00000049, 
-	0x80000328, 0x00000069, 0x80000328, 0x00000049, 
-	0x80000307, 0x00000049, 0x8000004a, 0x00000069, 
-	0x8000006a, 0x0000004a, 0x80000302, 0x0000006a, 
-	0x80000302, 0x0000004b, 0x80000327, 0x0000006b, 
-	0x80000327, 0x0000004c, 0x80000301, 0x0000006c, 
-	0x80000301, 0x0000004c, 0x80000327, 0x0000006c, 
-	0x80000327, 0x0000004c, 0x8000030c, 0x0000006c, 
-	0x8000030c, 0x0000004c, 0x800000b7, 0x0000006c, 
-	0x800000b7, 0x0000004e, 0x80000301, 0x0000006e, 
-	0x80000301, 0x0000004e, 0x80000327, 0x0000006e, 
-	0x80000327, 0x0000004e, 0x8000030c, 0x0000006e, 
-	0x8000030c, 0x000002bc, 0x8000006e, 0x0000004f, 
-	0x80000304, 0x0000006f, 0x80000304, 0x0000004f, 
-	0x80000306, 0x0000006f, 0x80000306, 0x0000004f, 
-	0x8000030b, 0x0000006f, 0x8000030b, 0x00000052, 
-	0x80000301, 0x00000072, 0x80000301, 0x00000052, 
-	0x80000327, 0x00000072, 0x80000327, 0x00000052, 
-	0x8000030c, 0x00000072, 0x8000030c, 0x00000053, 
-	0x80000301, 0x00000073, 0x80000301, 0x00000053, 
-	0x80000302, 0x00000073, 0x80000302, 0x00000053, 
-	0x80000327, 0x00000073, 0x80000327, 0x00000053, 
-	0x8000030c, 0x00000073, 0x8000030c, 0x00000054, 
-	0x80000327, 0x00000074, 0x80000327, 0x00000054, 
-	0x8000030c, 0x00000074, 0x8000030c, 0x00000055, 
-	0x80000303, 0x00000075, 0x80000303, 0x00000055, 
-	0x80000304, 0x00000075, 0x80000304, 0x00000055, 
-	0x80000306, 0x00000075, 0x80000306, 0x00000055, 
-	0x8000030a, 0x00000075, 0x8000030a, 0x00000055, 
-	0x8000030b, 0x00000075, 0x8000030b, 0x00000055, 
-	0x80000328, 0x00000075, 0x80000328, 0x00000057, 
-	0x80000302, 0x00000077, 0x80000302, 0x00000059, 
-	0x80000302, 0x00000079, 0x80000302, 0x00000059, 
-	0x80000308, 0x0000005a, 0x80000301, 0x0000007a, 
-	0x80000301, 0x0000005a, 0x80000307, 0x0000007a, 
-	0x80000307, 0x0000005a, 0x8000030c, 0x0000007a, 
-	0x8000030c, 0x80000073, 0x0000004f, 0x8000031b, 
-	0x0000006f, 0x8000031b, 0x00000055, 0x8000031b, 
-	0x00000075, 0x8000031b, 0x00000044, 0x8000017d, 
-	0x00000044, 0x8000017e, 0x00000064, 0x8000017e, 
-	0x0000004c, 0x8000004a, 0x0000004c, 0x8000006a, 
-	0x0000006c, 0x8000006a, 0x0000004e, 0x8000004a, 
-	0x0000004e, 0x8000006a, 0x0000006e, 0x8000006a, 
-	0x00000041, 0x8000030c, 0x00000061, 0x8000030c, 
-	0x00000049, 0x8000030c, 0x00000069, 0x8000030c, 
-	0x0000004f, 0x8000030c, 0x0000006f, 0x8000030c, 
-	0x00000055, 0x8000030c, 0x00000075, 0x8000030c, 
-	0x000000dc, 0x80000304, 0x000000fc, 0x80000304, 
-	0x000000dc, 0x80000301, 0x000000fc, 0x80000301, 
-	0x000000dc, 0x8000030c, 0x000000fc, 0x8000030c, 
-	0x000000dc, 0x80000300, 0x000000fc, 0x80000300, 
-	0x000000c4, 0x80000304, 0x000000e4, 0x80000304, 
-	0x00000226, 0x80000304, 0x00000227, 0x80000304, 
-	0x000000c6, 0x80000304, 0x000000e6, 0x80000304, 
-	0x00000047, 0x8000030c, 0x00000067, 0x8000030c, 
-	0x0000004b, 0x8000030c, 0x0000006b, 0x8000030c, 
-	0x0000004f, 0x80000328, 0x0000006f, 0x80000328, 
-	0x000001ea, 0x80000304, 0x000001eb, 0x80000304, 
-	0x000001b7, 0x8000030c, 0x00000292, 0x8000030c, 
-	0x0000006a, 0x8000030c, 0x00000044, 0x8000005a, 
-	0x00000044, 0x8000007a, 0x00000064, 0x8000007a, 
-	0x00000047, 0x80000301, 0x00000067, 0x80000301, 
-	0x0000004e, 0x80000300, 0x0000006e, 0x80000300, 
-	0x000000c5, 0x80000301, 0x000000e5, 0x80000301, 
-	0x000000c6, 0x80000301, 0x000000e6, 0x80000301, 
-	0x000000d8, 0x80000301, 0x000000f8, 0x80000301, 
-	0x00000041, 0x8000030f, 0x00000061, 0x8000030f, 
-	0x00000041, 0x80000311, 0x00000061, 0x80000311, 
-	0x00000045, 0x8000030f, 0x00000065, 0x8000030f, 
-	0x00000045, 0x80000311, 0x00000065, 0x80000311, 
-	0x00000049, 0x8000030f, 0x00000069, 0x8000030f, 
-	0x00000049, 0x80000311, 0x00000069, 0x80000311, 
-	0x0000004f, 0x8000030f, 0x0000006f, 0x8000030f, 
-	0x0000004f, 0x80000311, 0x0000006f, 0x80000311, 
-	0x00000052, 0x8000030f, 0x00000072, 0x8000030f, 
-	0x00000052, 0x80000311, 0x00000072, 0x80000311, 
-	0x00000055, 0x8000030f, 0x00000075, 0x8000030f, 
-	0x00000055, 0x80000311, 0x00000075, 0x80000311, 
-	0x00000053, 0x80000326, 0x00000073, 0x80000326, 
-	0x00000054, 0x80000326, 0x00000074, 0x80000326, 
-	0x00000048, 0x8000030c, 0x00000068, 0x8000030c, 
-	0x00000041, 0x80000307, 0x00000061, 0x80000307, 
-	0x00000045, 0x80000327, 0x00000065, 0x80000327, 
-	0x000000d6, 0x80000304, 0x000000f6, 0x80000304, 
-	0x000000d5, 0x80000304, 0x000000f5, 0x80000304, 
-	0x0000004f, 0x80000307, 0x0000006f, 0x80000307, 
-	0x0000022e, 0x80000304, 0x0000022f, 0x80000304, 
-	0x00000059, 0x80000304, 0x00000079, 0x80000304, 
-	0x80000068, 0x80000266, 0x8000006a, 0x80000072, 
-	0x80000279, 0x8000027b, 0x80000281, 0x80000077, 
-	0x80000079, 0x00000020, 0x80000306, 0x00000020, 
-	0x80000307, 0x00000020, 0x8000030a, 0x00000020, 
-	0x80000328, 0x00000020, 0x80000303, 0x00000020, 
-	0x8000030b, 0x80000263, 0x8000006c, 0x80000073, 
-	0x80000078, 0x80000295, 0x80000300, 0x80000301, 
-	0x80000313, 0x00000308, 0x80000301, 0x800002b9, 
-	0x00000020, 0x80000345, 0x8000003b, 0x00000020, 
-	0x80000301, 0x000000a8, 0x80000301, 0x00000391, 
-	0x80000301, 0x800000b7, 0x00000395, 0x80000301, 
-	0x00000397, 0x80000301, 0x00000399, 0x80000301, 
-	0x0000039f, 0x80000301, 0x000003a5, 0x80000301, 
-	0x000003a9, 0x80000301, 0x000003ca, 0x80000301, 
-	0x00000399, 0x80000308, 0x000003a5, 0x80000308, 
-	0x000003b1, 0x80000301, 0x000003b5, 0x80000301, 
-	0x000003b7, 0x80000301, 0x000003b9, 0x80000301, 
-	0x000003cb, 0x80000301, 0x000003b9, 0x80000308, 
-	0x000003c5, 0x80000308, 0x000003bf, 0x80000301, 
-	0x000003c5, 0x80000301, 0x000003c9, 0x80000301, 
-	0x800003b2, 0x800003b8, 0x800003a5, 0x000003d2, 
-	0x80000301, 0x000003d2, 0x80000308, 0x800003c6, 
-	0x800003c0, 0x800003ba, 0x800003c1, 0x800003c2, 
-	0x80000398, 0x800003b5, 0x800003a3, 0x00000415, 
-	0x80000300, 0x00000415, 0x80000308, 0x00000413, 
-	0x80000301, 0x00000406, 0x80000308, 0x0000041a, 
-	0x80000301, 0x00000418, 0x80000300, 0x00000423, 
-	0x80000306, 0x00000418, 0x80000306, 0x00000438, 
-	0x80000306, 0x00000435, 0x80000300, 0x00000435, 
-	0x80000308, 0x00000433, 0x80000301, 0x00000456, 
-	0x80000308, 0x0000043a, 0x80000301, 0x00000438, 
-	0x80000300, 0x00000443, 0x80000306, 0x00000474, 
-	0x8000030f, 0x00000475, 0x8000030f, 0x00000416, 
-	0x80000306, 0x00000436, 0x80000306, 0x00000410, 
-	0x80000306, 0x00000430, 0x80000306, 0x00000410, 
-	0x80000308, 0x00000430, 0x80000308, 0x00000415, 
-	0x80000306, 0x00000435, 0x80000306, 0x000004d8, 
-	0x80000308, 0x000004d9, 0x80000308, 0x00000416, 
-	0x80000308, 0x00000436, 0x80000308, 0x00000417, 
-	0x80000308, 0x00000437, 0x80000308, 0x00000418, 
-	0x80000304, 0x00000438, 0x80000304, 0x00000418, 
-	0x80000308, 0x00000438, 0x80000308, 0x0000041e, 
-	0x80000308, 0x0000043e, 0x80000308, 0x000004e8, 
-	0x80000308, 0x000004e9, 0x80000308, 0x0000042d, 
-	0x80000308, 0x0000044d, 0x80000308, 0x00000423, 
-	0x80000304, 0x00000443, 0x80000304, 0x00000423, 
-	0x80000308, 0x00000443, 0x80000308, 0x00000423, 
-	0x8000030b, 0x00000443, 0x8000030b, 0x00000427, 
-	0x80000308, 0x00000447, 0x80000308, 0x0000042b, 
-	0x80000308, 0x0000044b, 0x80000308, 0x00000565, 
-	0x80000582, 0x00000627, 0x80000653, 0x00000627, 
-	0x80000654, 0x00000648, 0x80000654, 0x00000627, 
-	0x80000655, 0x0000064a, 0x80000654, 0x00000627, 
-	0x80000674, 0x00000648, 0x80000674, 0x000006c7, 
-	0x80000674, 0x0000064a, 0x80000674, 0x000006d5, 
-	0x80000654, 0x000006c1, 0x80000654, 0x000006d2, 
-	0x80000654, 0x00000928, 0x8000093c, 0x00000930, 
-	0x8000093c, 0x00000933, 0x8000093c, 0x00000915, 
-	0x8000093c, 0x00000916, 0x8000093c, 0x00000917, 
-	0x8000093c, 0x0000091c, 0x8000093c, 0x00000921, 
-	0x8000093c, 0x00000922, 0x8000093c, 0x0000092b, 
-	0x8000093c, 0x0000092f, 0x8000093c, 0x000009c7, 
-	0x800009be, 0x000009c7, 0x800009d7, 0x000009a1, 
-	0x800009bc, 0x000009a2, 0x800009bc, 0x000009af, 
-	0x800009bc, 0x00000a32, 0x80000a3c, 0x00000a38, 
-	0x80000a3c, 0x00000a16, 0x80000a3c, 0x00000a17, 
-	0x80000a3c, 0x00000a1c, 0x80000a3c, 0x00000a2b, 
-	0x80000a3c, 0x00000b47, 0x80000b56, 0x00000b47, 
-	0x80000b3e, 0x00000b47, 0x80000b57, 0x00000b21, 
-	0x80000b3c, 0x00000b22, 0x80000b3c, 0x00000b92, 
-	0x80000bd7, 0x00000bc6, 0x80000bbe, 0x00000bc7, 
-	0x80000bbe, 0x00000bc6, 0x80000bd7, 0x00000c46, 
-	0x80000c56, 0x00000cbf, 0x80000cd5, 0x00000cc6, 
-	0x80000cd5, 0x00000cc6, 0x80000cd6, 0x00000cc6, 
-	0x80000cc2, 0x00000cca, 0x80000cd5, 0x00000d46, 
-	0x80000d3e, 0x00000d47, 0x80000d3e, 0x00000d46, 
-	0x80000d57, 0x00000dd9, 0x80000dca, 0x00000dd9, 
-	0x80000dcf, 0x00000ddc, 0x80000dca, 0x00000dd9, 
-	0x80000ddf, 0x00000e4d, 0x80000e32, 0x00000ecd, 
-	0x80000eb2, 0x00000eab, 0x80000e99, 0x00000eab, 
-	0x80000ea1, 0x80000f0b, 0x00000f42, 0x80000fb7, 
-	0x00000f4c, 0x80000fb7, 0x00000f51, 0x80000fb7, 
-	0x00000f56, 0x80000fb7, 0x00000f5b, 0x80000fb7, 
-	0x00000f40, 0x80000fb5, 0x00000f71, 0x80000f72, 
-	0x00000f71, 0x80000f74, 0x00000fb2, 0x80000f80, 
-	0x00000fb2, 0x80000f81, 0x00000fb3, 0x80000f80, 
-	0x00000fb3, 0x80000f81, 0x00000f71, 0x80000f80, 
-	0x00000f92, 0x80000fb7, 0x00000f9c, 0x80000fb7, 
-	0x00000fa1, 0x80000fb7, 0x00000fa6, 0x80000fb7, 
-	0x00000fab, 0x80000fb7, 0x00000f90, 0x80000fb5, 
-	0x00001025, 0x8000102e, 0x800010dc, 0x80000041, 
-	0x800000c6, 0x80000042, 0x80000044, 0x80000045, 
-	0x8000018e, 0x80000047, 0x80000048, 0x80000049, 
-	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, 
-	0x8000004e, 0x8000004f, 0x80000222, 0x80000050, 
-	0x80000052, 0x80000054, 0x80000055, 0x80000057, 
-	0x80000061, 0x80000250, 0x80000251, 0x80001d02, 
-	0x80000062, 0x80000064, 0x80000065, 0x80000259, 
-	0x8000025b, 0x8000025c, 0x80000067, 0x8000006b, 
-	0x8000006d, 0x8000014b, 0x8000006f, 0x80000254, 
-	0x80001d16, 0x80001d17, 0x80000070, 0x80000074, 
-	0x80000075, 0x80001d1d, 0x8000026f, 0x80000076, 
-	0x80001d25, 0x800003b2, 0x800003b3, 0x800003b4, 
-	0x800003c6, 0x800003c7, 0x80000069, 0x80000072, 
-	0x80000075, 0x80000076, 0x800003b2, 0x800003b3, 
-	0x800003c1, 0x800003c6, 0x800003c7, 0x8000043d, 
-	0x80000252, 0x80000063, 0x80000255, 0x800000f0, 
-	0x8000025c, 0x80000066, 0x8000025f, 0x80000261, 
-	0x80000265, 0x80000268, 0x80000269, 0x8000026a, 
-	0x80001d7b, 0x8000029d, 0x8000026d, 0x80001d85, 
-	0x8000029f, 0x80000271, 0x80000270, 0x80000272, 
-	0x80000273, 0x80000274, 0x80000275, 0x80000278, 
-	0x80000282, 0x80000283, 0x800001ab, 0x80000289, 
-	0x8000028a, 0x80001d1c, 0x8000028b, 0x8000028c, 
-	0x8000007a, 0x80000290, 0x80000291, 0x80000292, 
-	0x800003b8, 0x00000041, 0x80000325, 0x00000061, 
-	0x80000325, 0x00000042, 0x80000307, 0x00000062, 
-	0x80000307, 0x00000042, 0x80000323, 0x00000062, 
-	0x80000323, 0x00000042, 0x80000331, 0x00000062, 
-	0x80000331, 0x000000c7, 0x80000301, 0x000000e7, 
-	0x80000301, 0x00000044, 0x80000307, 0x00000064, 
-	0x80000307, 0x00000044, 0x80000323, 0x00000064, 
-	0x80000323, 0x00000044, 0x80000331, 0x00000064, 
-	0x80000331, 0x00000044, 0x80000327, 0x00000064, 
-	0x80000327, 0x00000044, 0x8000032d, 0x00000064, 
-	0x8000032d, 0x00000112, 0x80000300, 0x00000113, 
-	0x80000300, 0x00000112, 0x80000301, 0x00000113, 
-	0x80000301, 0x00000045, 0x8000032d, 0x00000065, 
-	0x8000032d, 0x00000045, 0x80000330, 0x00000065, 
-	0x80000330, 0x00000228, 0x80000306, 0x00000229, 
-	0x80000306, 0x00000046, 0x80000307, 0x00000066, 
-	0x80000307, 0x00000047, 0x80000304, 0x00000067, 
-	0x80000304, 0x00000048, 0x80000307, 0x00000068, 
-	0x80000307, 0x00000048, 0x80000323, 0x00000068, 
-	0x80000323, 0x00000048, 0x80000308, 0x00000068, 
-	0x80000308, 0x00000048, 0x80000327, 0x00000068, 
-	0x80000327, 0x00000048, 0x8000032e, 0x00000068, 
-	0x8000032e, 0x00000049, 0x80000330, 0x00000069, 
-	0x80000330, 0x000000cf, 0x80000301, 0x000000ef, 
-	0x80000301, 0x0000004b, 0x80000301, 0x0000006b, 
-	0x80000301, 0x0000004b, 0x80000323, 0x0000006b, 
-	0x80000323, 0x0000004b, 0x80000331, 0x0000006b, 
-	0x80000331, 0x0000004c, 0x80000323, 0x0000006c, 
-	0x80000323, 0x00001e36, 0x80000304, 0x00001e37, 
-	0x80000304, 0x0000004c, 0x80000331, 0x0000006c, 
-	0x80000331, 0x0000004c, 0x8000032d, 0x0000006c, 
-	0x8000032d, 0x0000004d, 0x80000301, 0x0000006d, 
-	0x80000301, 0x0000004d, 0x80000307, 0x0000006d, 
-	0x80000307, 0x0000004d, 0x80000323, 0x0000006d, 
-	0x80000323, 0x0000004e, 0x80000307, 0x0000006e, 
-	0x80000307, 0x0000004e, 0x80000323, 0x0000006e, 
-	0x80000323, 0x0000004e, 0x80000331, 0x0000006e, 
-	0x80000331, 0x0000004e, 0x8000032d, 0x0000006e, 
-	0x8000032d, 0x000000d5, 0x80000301, 0x000000f5, 
-	0x80000301, 0x000000d5, 0x80000308, 0x000000f5, 
-	0x80000308, 0x0000014c, 0x80000300, 0x0000014d, 
-	0x80000300, 0x0000014c, 0x80000301, 0x0000014d, 
-	0x80000301, 0x00000050, 0x80000301, 0x00000070, 
-	0x80000301, 0x00000050, 0x80000307, 0x00000070, 
-	0x80000307, 0x00000052, 0x80000307, 0x00000072, 
-	0x80000307, 0x00000052, 0x80000323, 0x00000072, 
-	0x80000323, 0x00001e5a, 0x80000304, 0x00001e5b, 
-	0x80000304, 0x00000052, 0x80000331, 0x00000072, 
-	0x80000331, 0x00000053, 0x80000307, 0x00000073, 
-	0x80000307, 0x00000053, 0x80000323, 0x00000073, 
-	0x80000323, 0x0000015a, 0x80000307, 0x0000015b, 
-	0x80000307, 0x00000160, 0x80000307, 0x00000161, 
-	0x80000307, 0x00001e62, 0x80000307, 0x00001e63, 
-	0x80000307, 0x00000054, 0x80000307, 0x00000074, 
-	0x80000307, 0x00000054, 0x80000323, 0x00000074, 
-	0x80000323, 0x00000054, 0x80000331, 0x00000074, 
-	0x80000331, 0x00000054, 0x8000032d, 0x00000074, 
-	0x8000032d, 0x00000055, 0x80000324, 0x00000075, 
-	0x80000324, 0x00000055, 0x80000330, 0x00000075, 
-	0x80000330, 0x00000055, 0x8000032d, 0x00000075, 
-	0x8000032d, 0x00000168, 0x80000301, 0x00000169, 
-	0x80000301, 0x0000016a, 0x80000308, 0x0000016b, 
-	0x80000308, 0x00000056, 0x80000303, 0x00000076, 
-	0x80000303, 0x00000056, 0x80000323, 0x00000076, 
-	0x80000323, 0x00000057, 0x80000300, 0x00000077, 
-	0x80000300, 0x00000057, 0x80000301, 0x00000077, 
-	0x80000301, 0x00000057, 0x80000308, 0x00000077, 
-	0x80000308, 0x00000057, 0x80000307, 0x00000077, 
-	0x80000307, 0x00000057, 0x80000323, 0x00000077, 
-	0x80000323, 0x00000058, 0x80000307, 0x00000078, 
-	0x80000307, 0x00000058, 0x80000308, 0x00000078, 
-	0x80000308, 0x00000059, 0x80000307, 0x00000079, 
-	0x80000307, 0x0000005a, 0x80000302, 0x0000007a, 
-	0x80000302, 0x0000005a, 0x80000323, 0x0000007a, 
-	0x80000323, 0x0000005a, 0x80000331, 0x0000007a, 
-	0x80000331, 0x00000068, 0x80000331, 0x00000074, 
-	0x80000308, 0x00000077, 0x8000030a, 0x00000079, 
-	0x8000030a, 0x00000061, 0x800002be, 0x0000017f, 
-	0x80000307, 0x00000041, 0x80000323, 0x00000061, 
-	0x80000323, 0x00000041, 0x80000309, 0x00000061, 
-	0x80000309, 0x000000c2, 0x80000301, 0x000000e2, 
-	0x80000301, 0x000000c2, 0x80000300, 0x000000e2, 
-	0x80000300, 0x000000c2, 0x80000309, 0x000000e2, 
-	0x80000309, 0x000000c2, 0x80000303, 0x000000e2, 
-	0x80000303, 0x00001ea0, 0x80000302, 0x00001ea1, 
-	0x80000302, 0x00000102, 0x80000301, 0x00000103, 
-	0x80000301, 0x00000102, 0x80000300, 0x00000103, 
-	0x80000300, 0x00000102, 0x80000309, 0x00000103, 
-	0x80000309, 0x00000102, 0x80000303, 0x00000103, 
-	0x80000303, 0x00001ea0, 0x80000306, 0x00001ea1, 
-	0x80000306, 0x00000045, 0x80000323, 0x00000065, 
-	0x80000323, 0x00000045, 0x80000309, 0x00000065, 
-	0x80000309, 0x00000045, 0x80000303, 0x00000065, 
-	0x80000303, 0x000000ca, 0x80000301, 0x000000ea, 
-	0x80000301, 0x000000ca, 0x80000300, 0x000000ea, 
-	0x80000300, 0x000000ca, 0x80000309, 0x000000ea, 
-	0x80000309, 0x000000ca, 0x80000303, 0x000000ea, 
-	0x80000303, 0x00001eb8, 0x80000302, 0x00001eb9, 
-	0x80000302, 0x00000049, 0x80000309, 0x00000069, 
-	0x80000309, 0x00000049, 0x80000323, 0x00000069, 
-	0x80000323, 0x0000004f, 0x80000323, 0x0000006f, 
-	0x80000323, 0x0000004f, 0x80000309, 0x0000006f, 
-	0x80000309, 0x000000d4, 0x80000301, 0x000000f4, 
-	0x80000301, 0x000000d4, 0x80000300, 0x000000f4, 
-	0x80000300, 0x000000d4, 0x80000309, 0x000000f4, 
-	0x80000309, 0x000000d4, 0x80000303, 0x000000f4, 
-	0x80000303, 0x00001ecc, 0x80000302, 0x00001ecd, 
-	0x80000302, 0x000001a0, 0x80000301, 0x000001a1, 
-	0x80000301, 0x000001a0, 0x80000300, 0x000001a1, 
-	0x80000300, 0x000001a0, 0x80000309, 0x000001a1, 
-	0x80000309, 0x000001a0, 0x80000303, 0x000001a1, 
-	0x80000303, 0x000001a0, 0x80000323, 0x000001a1, 
-	0x80000323, 0x00000055, 0x80000323, 0x00000075, 
-	0x80000323, 0x00000055, 0x80000309, 0x00000075, 
-	0x80000309, 0x000001af, 0x80000301, 0x000001b0, 
-	0x80000301, 0x000001af, 0x80000300, 0x000001b0, 
-	0x80000300, 0x000001af, 0x80000309, 0x000001b0, 
-	0x80000309, 0x000001af, 0x80000303, 0x000001b0, 
-	0x80000303, 0x000001af, 0x80000323, 0x000001b0, 
-	0x80000323, 0x00000059, 0x80000300, 0x00000079, 
-	0x80000300, 0x00000059, 0x80000323, 0x00000079, 
-	0x80000323, 0x00000059, 0x80000309, 0x00000079, 
-	0x80000309, 0x00000059, 0x80000303, 0x00000079, 
-	0x80000303, 0x000003b1, 0x80000313, 0x000003b1, 
-	0x80000314, 0x00001f00, 0x80000300, 0x00001f01, 
-	0x80000300, 0x00001f00, 0x80000301, 0x00001f01, 
-	0x80000301, 0x00001f00, 0x80000342, 0x00001f01, 
-	0x80000342, 0x00000391, 0x80000313, 0x00000391, 
-	0x80000314, 0x00001f08, 0x80000300, 0x00001f09, 
-	0x80000300, 0x00001f08, 0x80000301, 0x00001f09, 
-	0x80000301, 0x00001f08, 0x80000342, 0x00001f09, 
-	0x80000342, 0x000003b5, 0x80000313, 0x000003b5, 
-	0x80000314, 0x00001f10, 0x80000300, 0x00001f11, 
-	0x80000300, 0x00001f10, 0x80000301, 0x00001f11, 
-	0x80000301, 0x00000395, 0x80000313, 0x00000395, 
-	0x80000314, 0x00001f18, 0x80000300, 0x00001f19, 
-	0x80000300, 0x00001f18, 0x80000301, 0x00001f19, 
-	0x80000301, 0x000003b7, 0x80000313, 0x000003b7, 
-	0x80000314, 0x00001f20, 0x80000300, 0x00001f21, 
-	0x80000300, 0x00001f20, 0x80000301, 0x00001f21, 
-	0x80000301, 0x00001f20, 0x80000342, 0x00001f21, 
-	0x80000342, 0x00000397, 0x80000313, 0x00000397, 
-	0x80000314, 0x00001f28, 0x80000300, 0x00001f29, 
-	0x80000300, 0x00001f28, 0x80000301, 0x00001f29, 
-	0x80000301, 0x00001f28, 0x80000342, 0x00001f29, 
-	0x80000342, 0x000003b9, 0x80000313, 0x000003b9, 
-	0x80000314, 0x00001f30, 0x80000300, 0x00001f31, 
-	0x80000300, 0x00001f30, 0x80000301, 0x00001f31, 
-	0x80000301, 0x00001f30, 0x80000342, 0x00001f31, 
-	0x80000342, 0x00000399, 0x80000313, 0x00000399, 
-	0x80000314, 0x00001f38, 0x80000300, 0x00001f39, 
-	0x80000300, 0x00001f38, 0x80000301, 0x00001f39, 
-	0x80000301, 0x00001f38, 0x80000342, 0x00001f39, 
-	0x80000342, 0x000003bf, 0x80000313, 0x000003bf, 
-	0x80000314, 0x00001f40, 0x80000300, 0x00001f41, 
-	0x80000300, 0x00001f40, 0x80000301, 0x00001f41, 
-	0x80000301, 0x0000039f, 0x80000313, 0x0000039f, 
-	0x80000314, 0x00001f48, 0x80000300, 0x00001f49, 
-	0x80000300, 0x00001f48, 0x80000301, 0x00001f49, 
-	0x80000301, 0x000003c5, 0x80000313, 0x000003c5, 
-	0x80000314, 0x00001f50, 0x80000300, 0x00001f51, 
-	0x80000300, 0x00001f50, 0x80000301, 0x00001f51, 
-	0x80000301, 0x00001f50, 0x80000342, 0x00001f51, 
-	0x80000342, 0x000003a5, 0x80000314, 0x00001f59, 
-	0x80000300, 0x00001f59, 0x80000301, 0x00001f59, 
-	0x80000342, 0x000003c9, 0x80000313, 0x000003c9, 
-	0x80000314, 0x00001f60, 0x80000300, 0x00001f61, 
-	0x80000300, 0x00001f60, 0x80000301, 0x00001f61, 
-	0x80000301, 0x00001f60, 0x80000342, 0x00001f61, 
-	0x80000342, 0x000003a9, 0x80000313, 0x000003a9, 
-	0x80000314, 0x00001f68, 0x80000300, 0x00001f69, 
-	0x80000300, 0x00001f68, 0x80000301, 0x00001f69, 
-	0x80000301, 0x00001f68, 0x80000342, 0x00001f69, 
-	0x80000342, 0x000003b1, 0x80000300, 0x800003ac, 
-	0x000003b5, 0x80000300, 0x800003ad, 0x000003b7, 
-	0x80000300, 0x800003ae, 0x000003b9, 0x80000300, 
-	0x800003af, 0x000003bf, 0x80000300, 0x800003cc, 
-	0x000003c5, 0x80000300, 0x800003cd, 0x000003c9, 
-	0x80000300, 0x800003ce, 0x00001f00, 0x80000345, 
-	0x00001f01, 0x80000345, 0x00001f02, 0x80000345, 
-	0x00001f03, 0x80000345, 0x00001f04, 0x80000345, 
-	0x00001f05, 0x80000345, 0x00001f06, 0x80000345, 
-	0x00001f07, 0x80000345, 0x00001f08, 0x80000345, 
-	0x00001f09, 0x80000345, 0x00001f0a, 0x80000345, 
-	0x00001f0b, 0x80000345, 0x00001f0c, 0x80000345, 
-	0x00001f0d, 0x80000345, 0x00001f0e, 0x80000345, 
-	0x00001f0f, 0x80000345, 0x00001f20, 0x80000345, 
-	0x00001f21, 0x80000345, 0x00001f22, 0x80000345, 
-	0x00001f23, 0x80000345, 0x00001f24, 0x80000345, 
-	0x00001f25, 0x80000345, 0x00001f26, 0x80000345, 
-	0x00001f27, 0x80000345, 0x00001f28, 0x80000345, 
-	0x00001f29, 0x80000345, 0x00001f2a, 0x80000345, 
-	0x00001f2b, 0x80000345, 0x00001f2c, 0x80000345, 
-	0x00001f2d, 0x80000345, 0x00001f2e, 0x80000345, 
-	0x00001f2f, 0x80000345, 0x00001f60, 0x80000345, 
-	0x00001f61, 0x80000345, 0x00001f62, 0x80000345, 
-	0x00001f63, 0x80000345, 0x00001f64, 0x80000345, 
-	0x00001f65, 0x80000345, 0x00001f66, 0x80000345, 
-	0x00001f67, 0x80000345, 0x00001f68, 0x80000345, 
-	0x00001f69, 0x80000345, 0x00001f6a, 0x80000345, 
-	0x00001f6b, 0x80000345, 0x00001f6c, 0x80000345, 
-	0x00001f6d, 0x80000345, 0x00001f6e, 0x80000345, 
-	0x00001f6f, 0x80000345, 0x000003b1, 0x80000306, 
-	0x000003b1, 0x80000304, 0x00001f70, 0x80000345, 
-	0x000003b1, 0x80000345, 0x000003ac, 0x80000345, 
-	0x000003b1, 0x80000342, 0x00001fb6, 0x80000345, 
-	0x00000391, 0x80000306, 0x00000391, 0x80000304, 
-	0x00000391, 0x80000300, 0x80000386, 0x00000391, 
-	0x80000345, 0x00000020, 0x80000313, 0x800003b9, 
-	0x00000020, 0x80000313, 0x00000020, 0x80000342, 
-	0x000000a8, 0x80000342, 0x00001f74, 0x80000345, 
-	0x000003b7, 0x80000345, 0x000003ae, 0x80000345, 
-	0x000003b7, 0x80000342, 0x00001fc6, 0x80000345, 
-	0x00000395, 0x80000300, 0x80000388, 0x00000397, 
-	0x80000300, 0x80000389, 0x00000397, 0x80000345, 
-	0x00001fbf, 0x80000300, 0x00001fbf, 0x80000301, 
-	0x00001fbf, 0x80000342, 0x000003b9, 0x80000306, 
-	0x000003b9, 0x80000304, 0x000003ca, 0x80000300, 
-	0x80000390, 0x000003b9, 0x80000342, 0x000003ca, 
-	0x80000342, 0x00000399, 0x80000306, 0x00000399, 
-	0x80000304, 0x00000399, 0x80000300, 0x8000038a, 
-	0x00001ffe, 0x80000300, 0x00001ffe, 0x80000301, 
-	0x00001ffe, 0x80000342, 0x000003c5, 0x80000306, 
-	0x000003c5, 0x80000304, 0x000003cb, 0x80000300, 
-	0x800003b0, 0x000003c1, 0x80000313, 0x000003c1, 
-	0x80000314, 0x000003c5, 0x80000342, 0x000003cb, 
-	0x80000342, 0x000003a5, 0x80000306, 0x000003a5, 
-	0x80000304, 0x000003a5, 0x80000300, 0x8000038e, 
-	0x000003a1, 0x80000314, 0x000000a8, 0x80000300, 
-	0x80000385, 0x80000060, 0x00001f7c, 0x80000345, 
-	0x000003c9, 0x80000345, 0x000003ce, 0x80000345, 
-	0x000003c9, 0x80000342, 0x00001ff6, 0x80000345, 
-	0x0000039f, 0x80000300, 0x8000038c, 0x000003a9, 
-	0x80000300, 0x8000038f, 0x000003a9, 0x80000345, 
-	0x800000b4, 0x00000020, 0x80000314, 0x80002002, 
-	0x80002003, 0x80000020, 0x80000020, 0x80000020, 
-	0x80000020, 0x80000020, 0x80000020, 0x80000020, 
-	0x80000020, 0x80000020, 0x80002010, 0x00000020, 
-	0x80000333, 0x8000002e, 0x0000002e, 0x8000002e, 
-	0x0000002e, 0x0000002e, 0x8000002e, 0x80000020, 
-	0x00002032, 0x80002032, 0x00002032, 0x00002032, 
-	0x80002032, 0x00002035, 0x80002035, 0x00002035, 
-	0x00002035, 0x80002035, 0x00000021, 0x80000021, 
-	0x00000020, 0x80000305, 0x0000003f, 0x8000003f, 
-	0x0000003f, 0x80000021, 0x00000021, 0x8000003f, 
-	0x00002032, 0x00002032, 0x00002032, 0x80002032, 
-	0x80000020, 0x80000030, 0x80000069, 0x80000034, 
-	0x80000035, 0x80000036, 0x80000037, 0x80000038, 
-	0x80000039, 0x8000002b, 0x80002212, 0x8000003d, 
-	0x80000028, 0x80000029, 0x8000006e, 0x80000030, 
-	0x80000031, 0x80000032, 0x80000033, 0x80000034, 
-	0x80000035, 0x80000036, 0x80000037, 0x80000038, 
-	0x80000039, 0x8000002b, 0x80002212, 0x8000003d, 
-	0x80000028, 0x80000029, 0x80000061, 0x80000065, 
-	0x8000006f, 0x80000078, 0x80000259, 0x00000052, 
-	0x80000073, 0x00000061, 0x0000002f, 0x80000063, 
-	0x00000061, 0x0000002f, 0x80000073, 0x80000043, 
-	0x000000b0, 0x80000043, 0x00000063, 0x0000002f, 
-	0x8000006f, 0x00000063, 0x0000002f, 0x80000075, 
-	0x80000190, 0x000000b0, 0x80000046, 0x80000067, 
-	0x80000048, 0x80000048, 0x80000048, 0x80000068, 
-	0x80000127, 0x80000049, 0x80000049, 0x8000004c, 
-	0x8000006c, 0x8000004e, 0x0000004e, 0x8000006f, 
-	0x80000050, 0x80000051, 0x80000052, 0x80000052, 
-	0x80000052, 0x00000053, 0x8000004d, 0x00000054, 
-	0x00000045, 0x8000004c, 0x00000054, 0x8000004d, 
-	0x8000005a, 0x800003a9, 0x8000005a, 0x8000004b, 
-	0x800000c5, 0x80000042, 0x80000043, 0x80000065, 
-	0x80000045, 0x80000046, 0x8000004d, 0x8000006f, 
-	0x800005d0, 0x800005d1, 0x800005d2, 0x800005d3, 
-	0x80000069, 0x00000046, 0x00000041, 0x80000058, 
-	0x800003c0, 0x800003b3, 0x80000393, 0x800003a0, 
-	0x80002211, 0x80000044, 0x80000064, 0x80000065, 
-	0x80000069, 0x8000006a, 0x00000031, 0x00002044, 
-	0x80000033, 0x00000032, 0x00002044, 0x80000033, 
-	0x00000031, 0x00002044, 0x80000035, 0x00000032, 
-	0x00002044, 0x80000035, 0x00000033, 0x00002044, 
-	0x80000035, 0x00000034, 0x00002044, 0x80000035, 
-	0x00000031, 0x00002044, 0x80000036, 0x00000035, 
-	0x00002044, 0x80000036, 0x00000031, 0x00002044, 
-	0x80000038, 0x00000033, 0x00002044, 0x80000038, 
-	0x00000035, 0x00002044, 0x80000038, 0x00000037, 
-	0x00002044, 0x80000038, 0x00000031, 0x80002044, 
-	0x80000049, 0x00000049, 0x80000049, 0x00000049, 
-	0x00000049, 0x80000049, 0x00000049, 0x80000056, 
-	0x80000056, 0x00000056, 0x80000049, 0x00000056, 
-	0x00000049, 0x80000049, 0x00000056, 0x00000049, 
-	0x00000049, 0x80000049, 0x00000049, 0x80000058, 
-	0x80000058, 0x00000058, 0x80000049, 0x00000058, 
-	0x00000049, 0x80000049, 0x8000004c, 0x80000043, 
-	0x80000044, 0x8000004d, 0x80000069, 0x00000069, 
-	0x80000069, 0x00000069, 0x00000069, 0x80000069, 
-	0x00000069, 0x80000076, 0x80000076, 0x00000076, 
-	0x80000069, 0x00000076, 0x00000069, 0x80000069, 
-	0x00000076, 0x00000069, 0x00000069, 0x80000069, 
-	0x00000069, 0x80000078, 0x80000078, 0x00000078, 
-	0x80000069, 0x00000078, 0x00000069, 0x80000069, 
-	0x8000006c, 0x80000063, 0x80000064, 0x8000006d, 
-	0x00002190, 0x80000338, 0x00002192, 0x80000338, 
-	0x00002194, 0x80000338, 0x000021d0, 0x80000338, 
-	0x000021d4, 0x80000338, 0x000021d2, 0x80000338, 
-	0x00002203, 0x80000338, 0x00002208, 0x80000338, 
-	0x0000220b, 0x80000338, 0x00002223, 0x80000338, 
-	0x00002225, 0x80000338, 0x0000222b, 0x8000222b, 
-	0x0000222b, 0x0000222b, 0x8000222b, 0x0000222e, 
-	0x8000222e, 0x0000222e, 0x0000222e, 0x8000222e, 
-	0x0000223c, 0x80000338, 0x00002243, 0x80000338, 
-	0x00002245, 0x80000338, 0x00002248, 0x80000338, 
-	0x0000003d, 0x80000338, 0x00002261, 0x80000338, 
-	0x0000224d, 0x80000338, 0x0000003c, 0x80000338, 
-	0x0000003e, 0x80000338, 0x00002264, 0x80000338, 
-	0x00002265, 0x80000338, 0x00002272, 0x80000338, 
-	0x00002273, 0x80000338, 0x00002276, 0x80000338, 
-	0x00002277, 0x80000338, 0x0000227a, 0x80000338, 
-	0x0000227b, 0x80000338, 0x00002282, 0x80000338, 
-	0x00002283, 0x80000338, 0x00002286, 0x80000338, 
-	0x00002287, 0x80000338, 0x000022a2, 0x80000338, 
-	0x000022a8, 0x80000338, 0x000022a9, 0x80000338, 
-	0x000022ab, 0x80000338, 0x0000227c, 0x80000338, 
-	0x0000227d, 0x80000338, 0x00002291, 0x80000338, 
-	0x00002292, 0x80000338, 0x000022b2, 0x80000338, 
-	0x000022b3, 0x80000338, 0x000022b4, 0x80000338, 
-	0x000022b5, 0x80000338, 0x80003008, 0x80003009, 
-	0x80000031, 0x80000032, 0x80000033, 0x80000034, 
-	0x80000035, 0x80000036, 0x80000037, 0x80000038, 
-	0x80000039, 0x00000031, 0x80000030, 0x00000031, 
-	0x80000031, 0x00000031, 0x80000032, 0x00000031, 
-	0x80000033, 0x00000031, 0x80000034, 0x00000031, 
-	0x80000035, 0x00000031, 0x80000036, 0x00000031, 
-	0x80000037, 0x00000031, 0x80000038, 0x00000031, 
-	0x80000039, 0x00000032, 0x80000030, 0x00000028, 
-	0x00000031, 0x80000029, 0x00000028, 0x00000032, 
-	0x80000029, 0x00000028, 0x00000033, 0x80000029, 
-	0x00000028, 0x00000034, 0x80000029, 0x00000028, 
-	0x00000035, 0x80000029, 0x00000028, 0x00000036, 
-	0x80000029, 0x00000028, 0x00000037, 0x80000029, 
-	0x00000028, 0x00000038, 0x80000029, 0x00000028, 
-	0x00000039, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000030, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000031, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000032, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000033, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000034, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000035, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000036, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000037, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000038, 0x80000029, 0x00000028, 0x00000031, 
-	0x00000039, 0x80000029, 0x00000028, 0x00000032, 
-	0x00000030, 0x80000029, 0x00000031, 0x8000002e, 
-	0x00000032, 0x8000002e, 0x00000033, 0x8000002e, 
-	0x00000034, 0x8000002e, 0x00000035, 0x8000002e, 
-	0x00000036, 0x8000002e, 0x00000037, 0x8000002e, 
-	0x00000038, 0x8000002e, 0x00000039, 0x8000002e, 
-	0x00000031, 0x00000030, 0x8000002e, 0x00000031, 
-	0x00000031, 0x8000002e, 0x00000031, 0x00000032, 
-	0x8000002e, 0x00000031, 0x00000033, 0x8000002e, 
-	0x00000031, 0x00000034, 0x8000002e, 0x00000031, 
-	0x00000035, 0x8000002e, 0x00000031, 0x00000036, 
-	0x8000002e, 0x00000031, 0x00000037, 0x8000002e, 
-	0x00000031, 0x00000038, 0x8000002e, 0x00000031, 
-	0x00000039, 0x8000002e, 0x00000032, 0x00000030, 
-	0x8000002e, 0x00000028, 0x00000061, 0x80000029, 
-	0x00000028, 0x00000062, 0x80000029, 0x00000028, 
-	0x00000063, 0x80000029, 0x00000028, 0x00000064, 
-	0x80000029, 0x00000028, 0x00000065, 0x80000029, 
-	0x00000028, 0x00000066, 0x80000029, 0x00000028, 
-	0x00000067, 0x80000029, 0x00000028, 0x00000068, 
-	0x80000029, 0x00000028, 0x00000069, 0x80000029, 
-	0x00000028, 0x0000006a, 0x80000029, 0x00000028, 
-	0x0000006b, 0x80000029, 0x00000028, 0x0000006c, 
-	0x80000029, 0x00000028, 0x0000006d, 0x80000029, 
-	0x00000028, 0x0000006e, 0x80000029, 0x00000028, 
-	0x0000006f, 0x80000029, 0x00000028, 0x00000070, 
-	0x80000029, 0x00000028, 0x00000071, 0x80000029, 
-	0x00000028, 0x00000072, 0x80000029, 0x00000028, 
-	0x00000073, 0x80000029, 0x00000028, 0x00000074, 
-	0x80000029, 0x00000028, 0x00000075, 0x80000029, 
-	0x00000028, 0x00000076, 0x80000029, 0x00000028, 
-	0x00000077, 0x80000029, 0x00000028, 0x00000078, 
-	0x80000029, 0x00000028, 0x00000079, 0x80000029, 
-	0x00000028, 0x0000007a, 0x80000029, 0x80000041, 
-	0x80000042, 0x80000043, 0x80000044, 0x80000045, 
-	0x80000046, 0x80000047, 0x80000048, 0x80000049, 
-	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, 
-	0x8000004e, 0x8000004f, 0x80000050, 0x80000051, 
-	0x80000052, 0x80000053, 0x80000054, 0x80000055, 
-	0x80000056, 0x80000057, 0x80000058, 0x80000059, 
-	0x8000005a, 0x80000061, 0x80000062, 0x80000063, 
-	0x80000064, 0x80000065, 0x80000066, 0x80000067, 
-	0x80000068, 0x80000069, 0x8000006a, 0x8000006b, 
-	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, 
-	0x80000070, 0x80000071, 0x80000072, 0x80000073, 
-	0x80000074, 0x80000075, 0x80000076, 0x80000077, 
-	0x80000078, 0x80000079, 0x8000007a, 0x80000030, 
-	0x0000222b, 0x0000222b, 0x0000222b, 0x8000222b, 
-	0x0000003a, 0x0000003a, 0x8000003d, 0x0000003d, 
-	0x8000003d, 0x0000003d, 0x0000003d, 0x8000003d, 
-	0x00002add, 0x80000338, 0x80002d61, 0x80006bcd, 
-	0x80009f9f, 0x80004e00, 0x80004e28, 0x80004e36, 
-	0x80004e3f, 0x80004e59, 0x80004e85, 0x80004e8c, 
-	0x80004ea0, 0x80004eba, 0x8000513f, 0x80005165, 
-	0x8000516b, 0x80005182, 0x80005196, 0x800051ab, 
-	0x800051e0, 0x800051f5, 0x80005200, 0x8000529b, 
-	0x800052f9, 0x80005315, 0x8000531a, 0x80005338, 
-	0x80005341, 0x8000535c, 0x80005369, 0x80005382, 
-	0x800053b6, 0x800053c8, 0x800053e3, 0x800056d7, 
-	0x8000571f, 0x800058eb, 0x80005902, 0x8000590a, 
-	0x80005915, 0x80005927, 0x80005973, 0x80005b50, 
-	0x80005b80, 0x80005bf8, 0x80005c0f, 0x80005c22, 
-	0x80005c38, 0x80005c6e, 0x80005c71, 0x80005ddb, 
-	0x80005de5, 0x80005df1, 0x80005dfe, 0x80005e72, 
-	0x80005e7a, 0x80005e7f, 0x80005ef4, 0x80005efe, 
-	0x80005f0b, 0x80005f13, 0x80005f50, 0x80005f61, 
-	0x80005f73, 0x80005fc3, 0x80006208, 0x80006236, 
-	0x8000624b, 0x8000652f, 0x80006534, 0x80006587, 
-	0x80006597, 0x800065a4, 0x800065b9, 0x800065e0, 
-	0x800065e5, 0x800066f0, 0x80006708, 0x80006728, 
-	0x80006b20, 0x80006b62, 0x80006b79, 0x80006bb3, 
-	0x80006bcb, 0x80006bd4, 0x80006bdb, 0x80006c0f, 
-	0x80006c14, 0x80006c34, 0x8000706b, 0x8000722a, 
-	0x80007236, 0x8000723b, 0x8000723f, 0x80007247, 
-	0x80007259, 0x8000725b, 0x800072ac, 0x80007384, 
-	0x80007389, 0x800074dc, 0x800074e6, 0x80007518, 
-	0x8000751f, 0x80007528, 0x80007530, 0x8000758b, 
-	0x80007592, 0x80007676, 0x8000767d, 0x800076ae, 
-	0x800076bf, 0x800076ee, 0x800077db, 0x800077e2, 
-	0x800077f3, 0x8000793a, 0x800079b8, 0x800079be, 
-	0x80007a74, 0x80007acb, 0x80007af9, 0x80007c73, 
-	0x80007cf8, 0x80007f36, 0x80007f51, 0x80007f8a, 
-	0x80007fbd, 0x80008001, 0x8000800c, 0x80008012, 
-	0x80008033, 0x8000807f, 0x80008089, 0x800081e3, 
-	0x800081ea, 0x800081f3, 0x800081fc, 0x8000820c, 
-	0x8000821b, 0x8000821f, 0x8000826e, 0x80008272, 
-	0x80008278, 0x8000864d, 0x8000866b, 0x80008840, 
-	0x8000884c, 0x80008863, 0x8000897e, 0x8000898b, 
-	0x800089d2, 0x80008a00, 0x80008c37, 0x80008c46, 
-	0x80008c55, 0x80008c78, 0x80008c9d, 0x80008d64, 
-	0x80008d70, 0x80008db3, 0x80008eab, 0x80008eca, 
-	0x80008f9b, 0x80008fb0, 0x80008fb5, 0x80009091, 
-	0x80009149, 0x800091c6, 0x800091cc, 0x800091d1, 
-	0x80009577, 0x80009580, 0x8000961c, 0x800096b6, 
-	0x800096b9, 0x800096e8, 0x80009751, 0x8000975e, 
-	0x80009762, 0x80009769, 0x800097cb, 0x800097ed, 
-	0x800097f3, 0x80009801, 0x800098a8, 0x800098db, 
-	0x800098df, 0x80009996, 0x80009999, 0x800099ac, 
-	0x80009aa8, 0x80009ad8, 0x80009adf, 0x80009b25, 
-	0x80009b2f, 0x80009b32, 0x80009b3c, 0x80009b5a, 
-	0x80009ce5, 0x80009e75, 0x80009e7f, 0x80009ea5, 
-	0x80009ebb, 0x80009ec3, 0x80009ecd, 0x80009ed1, 
-	0x80009ef9, 0x80009efd, 0x80009f0e, 0x80009f13, 
-	0x80009f20, 0x80009f3b, 0x80009f4a, 0x80009f52, 
-	0x80009f8d, 0x80009f9c, 0x80009fa0, 0x80000020, 
-	0x80003012, 0x80005341, 0x80005344, 0x80005345, 
-	0x0000304b, 0x80003099, 0x0000304d, 0x80003099, 
-	0x0000304f, 0x80003099, 0x00003051, 0x80003099, 
-	0x00003053, 0x80003099, 0x00003055, 0x80003099, 
-	0x00003057, 0x80003099, 0x00003059, 0x80003099, 
-	0x0000305b, 0x80003099, 0x0000305d, 0x80003099, 
-	0x0000305f, 0x80003099, 0x00003061, 0x80003099, 
-	0x00003064, 0x80003099, 0x00003066, 0x80003099, 
-	0x00003068, 0x80003099, 0x0000306f, 0x80003099, 
-	0x0000306f, 0x8000309a, 0x00003072, 0x80003099, 
-	0x00003072, 0x8000309a, 0x00003075, 0x80003099, 
-	0x00003075, 0x8000309a, 0x00003078, 0x80003099, 
-	0x00003078, 0x8000309a, 0x0000307b, 0x80003099, 
-	0x0000307b, 0x8000309a, 0x00003046, 0x80003099, 
-	0x00000020, 0x80003099, 0x00000020, 0x8000309a, 
-	0x0000309d, 0x80003099, 0x00003088, 0x8000308a, 
-	0x000030ab, 0x80003099, 0x000030ad, 0x80003099, 
-	0x000030af, 0x80003099, 0x000030b1, 0x80003099, 
-	0x000030b3, 0x80003099, 0x000030b5, 0x80003099, 
-	0x000030b7, 0x80003099, 0x000030b9, 0x80003099, 
-	0x000030bb, 0x80003099, 0x000030bd, 0x80003099, 
-	0x000030bf, 0x80003099, 0x000030c1, 0x80003099, 
-	0x000030c4, 0x80003099, 0x000030c6, 0x80003099, 
-	0x000030c8, 0x80003099, 0x000030cf, 0x80003099, 
-	0x000030cf, 0x8000309a, 0x000030d2, 0x80003099, 
-	0x000030d2, 0x8000309a, 0x000030d5, 0x80003099, 
-	0x000030d5, 0x8000309a, 0x000030d8, 0x80003099, 
-	0x000030d8, 0x8000309a, 0x000030db, 0x80003099, 
-	0x000030db, 0x8000309a, 0x000030a6, 0x80003099, 
-	0x000030ef, 0x80003099, 0x000030f0, 0x80003099, 
-	0x000030f1, 0x80003099, 0x000030f2, 0x80003099, 
-	0x000030fd, 0x80003099, 0x000030b3, 0x800030c8, 
-	0x80001100, 0x80001101, 0x800011aa, 0x80001102, 
-	0x800011ac, 0x800011ad, 0x80001103, 0x80001104, 
-	0x80001105, 0x800011b0, 0x800011b1, 0x800011b2, 
-	0x800011b3, 0x800011b4, 0x800011b5, 0x8000111a, 
-	0x80001106, 0x80001107, 0x80001108, 0x80001121, 
-	0x80001109, 0x8000110a, 0x8000110b, 0x8000110c, 
-	0x8000110d, 0x8000110e, 0x8000110f, 0x80001110, 
-	0x80001111, 0x80001112, 0x80001161, 0x80001162, 
-	0x80001163, 0x80001164, 0x80001165, 0x80001166, 
-	0x80001167, 0x80001168, 0x80001169, 0x8000116a, 
-	0x8000116b, 0x8000116c, 0x8000116d, 0x8000116e, 
-	0x8000116f, 0x80001170, 0x80001171, 0x80001172, 
-	0x80001173, 0x80001174, 0x80001175, 0x80001160, 
-	0x80001114, 0x80001115, 0x800011c7, 0x800011c8, 
-	0x800011cc, 0x800011ce, 0x800011d3, 0x800011d7, 
-	0x800011d9, 0x8000111c, 0x800011dd, 0x800011df, 
-	0x8000111d, 0x8000111e, 0x80001120, 0x80001122, 
-	0x80001123, 0x80001127, 0x80001129, 0x8000112b, 
-	0x8000112c, 0x8000112d, 0x8000112e, 0x8000112f, 
-	0x80001132, 0x80001136, 0x80001140, 0x80001147, 
-	0x8000114c, 0x800011f1, 0x800011f2, 0x80001157, 
-	0x80001158, 0x80001159, 0x80001184, 0x80001185, 
-	0x80001188, 0x80001191, 0x80001192, 0x80001194, 
-	0x8000119e, 0x800011a1, 0x80004e00, 0x80004e8c, 
-	0x80004e09, 0x800056db, 0x80004e0a, 0x80004e2d, 
-	0x80004e0b, 0x80007532, 0x80004e59, 0x80004e19, 
-	0x80004e01, 0x80005929, 0x80005730, 0x80004eba, 
-	0x00000028, 0x00001100, 0x80000029, 0x00000028, 
-	0x00001102, 0x80000029, 0x00000028, 0x00001103, 
-	0x80000029, 0x00000028, 0x00001105, 0x80000029, 
-	0x00000028, 0x00001106, 0x80000029, 0x00000028, 
-	0x00001107, 0x80000029, 0x00000028, 0x00001109, 
-	0x80000029, 0x00000028, 0x0000110b, 0x80000029, 
-	0x00000028, 0x0000110c, 0x80000029, 0x00000028, 
-	0x0000110e, 0x80000029, 0x00000028, 0x0000110f, 
-	0x80000029, 0x00000028, 0x00001110, 0x80000029, 
-	0x00000028, 0x00001111, 0x80000029, 0x00000028, 
-	0x00001112, 0x80000029, 0x00000028, 0x00001100, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001102, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001103, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001105, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001106, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001107, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001109, 
-	0x00001161, 0x80000029, 0x00000028, 0x0000110b, 
-	0x00001161, 0x80000029, 0x00000028, 0x0000110c, 
-	0x00001161, 0x80000029, 0x00000028, 0x0000110e, 
-	0x00001161, 0x80000029, 0x00000028, 0x0000110f, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001110, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001111, 
-	0x00001161, 0x80000029, 0x00000028, 0x00001112, 
-	0x00001161, 0x80000029, 0x00000028, 0x0000110c, 
-	0x0000116e, 0x80000029, 0x00000028, 0x0000110b, 
-	0x00001169, 0x0000110c, 0x00001165, 0x000011ab, 
-	0x80000029, 0x00000028, 0x0000110b, 0x00001169, 
-	0x00001112, 0x0000116e, 0x80000029, 0x00000028, 
-	0x00004e00, 0x80000029, 0x00000028, 0x00004e8c, 
-	0x80000029, 0x00000028, 0x00004e09, 0x80000029, 
-	0x00000028, 0x000056db, 0x80000029, 0x00000028, 
-	0x00004e94, 0x80000029, 0x00000028, 0x0000516d, 
-	0x80000029, 0x00000028, 0x00004e03, 0x80000029, 
-	0x00000028, 0x0000516b, 0x80000029, 0x00000028, 
-	0x00004e5d, 0x80000029, 0x00000028, 0x00005341, 
-	0x80000029, 0x00000028, 0x00006708, 0x80000029, 
-	0x00000028, 0x0000706b, 0x80000029, 0x00000028, 
-	0x00006c34, 0x80000029, 0x00000028, 0x00006728, 
-	0x80000029, 0x00000028, 0x000091d1, 0x80000029, 
-	0x00000028, 0x0000571f, 0x80000029, 0x00000028, 
-	0x000065e5, 0x80000029, 0x00000028, 0x0000682a, 
-	0x80000029, 0x00000028, 0x00006709, 0x80000029, 
-	0x00000028, 0x0000793e, 0x80000029, 0x00000028, 
-	0x0000540d, 0x80000029, 0x00000028, 0x00007279, 
-	0x80000029, 0x00000028, 0x00008ca1, 0x80000029, 
-	0x00000028, 0x0000795d, 0x80000029, 0x00000028, 
-	0x000052b4, 0x80000029, 0x00000028, 0x00004ee3, 
-	0x80000029, 0x00000028, 0x0000547c, 0x80000029, 
-	0x00000028, 0x00005b66, 0x80000029, 0x00000028, 
-	0x000076e3, 0x80000029, 0x00000028, 0x00004f01, 
-	0x80000029, 0x00000028, 0x00008cc7, 0x80000029, 
-	0x00000028, 0x00005354, 0x80000029, 0x00000028, 
-	0x0000796d, 0x80000029, 0x00000028, 0x00004f11, 
-	0x80000029, 0x00000028, 0x000081ea, 0x80000029, 
-	0x00000028, 0x000081f3, 0x80000029, 0x00000050, 
-	0x00000054, 0x80000045, 0x00000032, 0x80000031, 
-	0x00000032, 0x80000032, 0x00000032, 0x80000033, 
-	0x00000032, 0x80000034, 0x00000032, 0x80000035, 
-	0x00000032, 0x80000036, 0x00000032, 0x80000037, 
-	0x00000032, 0x80000038, 0x00000032, 0x80000039, 
-	0x00000033, 0x80000030, 0x00000033, 0x80000031, 
-	0x00000033, 0x80000032, 0x00000033, 0x80000033, 
-	0x00000033, 0x80000034, 0x00000033, 0x80000035, 
-	0x80001100, 0x80001102, 0x80001103, 0x80001105, 
-	0x80001106, 0x80001107, 0x80001109, 0x8000110b, 
-	0x8000110c, 0x8000110e, 0x8000110f, 0x80001110, 
-	0x80001111, 0x80001112, 0x00001100, 0x80001161, 
-	0x00001102, 0x80001161, 0x00001103, 0x80001161, 
-	0x00001105, 0x80001161, 0x00001106, 0x80001161, 
-	0x00001107, 0x80001161, 0x00001109, 0x80001161, 
-	0x0000110b, 0x80001161, 0x0000110c, 0x80001161, 
-	0x0000110e, 0x80001161, 0x0000110f, 0x80001161, 
-	0x00001110, 0x80001161, 0x00001111, 0x80001161, 
-	0x00001112, 0x80001161, 0x0000110e, 0x00001161, 
-	0x000011b7, 0x00001100, 0x80001169, 0x0000110c, 
-	0x0000116e, 0x0000110b, 0x80001174, 0x0000110b, 
-	0x8000116e, 0x80004e00, 0x80004e8c, 0x80004e09, 
-	0x800056db, 0x80004e94, 0x8000516d, 0x80004e03, 
-	0x8000516b, 0x80004e5d, 0x80005341, 0x80006708, 
-	0x8000706b, 0x80006c34, 0x80006728, 0x800091d1, 
-	0x8000571f, 0x800065e5, 0x8000682a, 0x80006709, 
-	0x8000793e, 0x8000540d, 0x80007279, 0x80008ca1, 
-	0x8000795d, 0x800052b4, 0x800079d8, 0x80007537, 
-	0x80005973, 0x80009069, 0x8000512a, 0x80005370, 
-	0x80006ce8, 0x80009805, 0x80004f11, 0x80005199, 
-	0x80006b63, 0x80004e0a, 0x80004e2d, 0x80004e0b, 
-	0x80005de6, 0x800053f3, 0x8000533b, 0x80005b97, 
-	0x80005b66, 0x800076e3, 0x80004f01, 0x80008cc7, 
-	0x80005354, 0x8000591c, 0x00000033, 0x80000036, 
-	0x00000033, 0x80000037, 0x00000033, 0x80000038, 
-	0x00000033, 0x80000039, 0x00000034, 0x80000030, 
-	0x00000034, 0x80000031, 0x00000034, 0x80000032, 
-	0x00000034, 0x80000033, 0x00000034, 0x80000034, 
-	0x00000034, 0x80000035, 0x00000034, 0x80000036, 
-	0x00000034, 0x80000037, 0x00000034, 0x80000038, 
-	0x00000034, 0x80000039, 0x00000035, 0x80000030, 
-	0x00000031, 0x80006708, 0x00000032, 0x80006708, 
-	0x00000033, 0x80006708, 0x00000034, 0x80006708, 
-	0x00000035, 0x80006708, 0x00000036, 0x80006708, 
-	0x00000037, 0x80006708, 0x00000038, 0x80006708, 
-	0x00000039, 0x80006708, 0x00000031, 0x00000030, 
-	0x80006708, 0x00000031, 0x00000031, 0x80006708, 
-	0x00000031, 0x00000032, 0x80006708, 0x00000048, 
-	0x80000067, 0x00000065, 0x00000072, 0x80000067, 
-	0x00000065, 0x80000056, 0x0000004c, 0x00000054, 
-	0x80000044, 0x800030a2, 0x800030a4, 0x800030a6, 
-	0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad, 
-	0x800030af, 0x800030b1, 0x800030b3, 0x800030b5, 
-	0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd, 
-	0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6, 
-	0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc, 
-	0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2, 
-	0x800030d5, 0x800030d8, 0x800030db, 0x800030de, 
-	0x800030df, 0x800030e0, 0x800030e1, 0x800030e2, 
-	0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9, 
-	0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed, 
-	0x800030ef, 0x800030f0, 0x800030f1, 0x800030f2, 
-	0x000030a2, 0x000030d1, 0x000030fc, 0x800030c8, 
-	0x000030a2, 0x000030eb, 0x000030d5, 0x800030a1, 
-	0x000030a2, 0x000030f3, 0x000030da, 0x800030a2, 
-	0x000030a2, 0x000030fc, 0x800030eb, 0x000030a4, 
-	0x000030cb, 0x000030f3, 0x800030b0, 0x000030a4, 
-	0x000030f3, 0x800030c1, 0x000030a6, 0x000030a9, 
-	0x800030f3, 0x000030a8, 0x000030b9, 0x000030af, 
-	0x000030fc, 0x800030c9, 0x000030a8, 0x000030fc, 
-	0x000030ab, 0x800030fc, 0x000030aa, 0x000030f3, 
-	0x800030b9, 0x000030aa, 0x000030fc, 0x800030e0, 
-	0x000030ab, 0x000030a4, 0x800030ea, 0x000030ab, 
-	0x000030e9, 0x000030c3, 0x800030c8, 0x000030ab, 
-	0x000030ed, 0x000030ea, 0x800030fc, 0x000030ac, 
-	0x000030ed, 0x800030f3, 0x000030ac, 0x000030f3, 
-	0x800030de, 0x000030ae, 0x800030ac, 0x000030ae, 
-	0x000030cb, 0x800030fc, 0x000030ad, 0x000030e5, 
-	0x000030ea, 0x800030fc, 0x000030ae, 0x000030eb, 
-	0x000030c0, 0x800030fc, 0x000030ad, 0x800030ed, 
-	0x000030ad, 0x000030ed, 0x000030b0, 0x000030e9, 
-	0x800030e0, 0x000030ad, 0x000030ed, 0x000030e1, 
-	0x000030fc, 0x000030c8, 0x800030eb, 0x000030ad, 
-	0x000030ed, 0x000030ef, 0x000030c3, 0x800030c8, 
-	0x000030b0, 0x000030e9, 0x800030e0, 0x000030b0, 
-	0x000030e9, 0x000030e0, 0x000030c8, 0x800030f3, 
-	0x000030af, 0x000030eb, 0x000030bc, 0x000030a4, 
-	0x800030ed, 0x000030af, 0x000030ed, 0x000030fc, 
-	0x800030cd, 0x000030b1, 0x000030fc, 0x800030b9, 
-	0x000030b3, 0x000030eb, 0x800030ca, 0x000030b3, 
-	0x000030fc, 0x800030dd, 0x000030b5, 0x000030a4, 
-	0x000030af, 0x800030eb, 0x000030b5, 0x000030f3, 
-	0x000030c1, 0x000030fc, 0x800030e0, 0x000030b7, 
-	0x000030ea, 0x000030f3, 0x800030b0, 0x000030bb, 
-	0x000030f3, 0x800030c1, 0x000030bb, 0x000030f3, 
-	0x800030c8, 0x000030c0, 0x000030fc, 0x800030b9, 
-	0x000030c7, 0x800030b7, 0x000030c9, 0x800030eb, 
-	0x000030c8, 0x800030f3, 0x000030ca, 0x800030ce, 
-	0x000030ce, 0x000030c3, 0x800030c8, 0x000030cf, 
-	0x000030a4, 0x800030c4, 0x000030d1, 0x000030fc, 
-	0x000030bb, 0x000030f3, 0x800030c8, 0x000030d1, 
-	0x000030fc, 0x800030c4, 0x000030d0, 0x000030fc, 
-	0x000030ec, 0x800030eb, 0x000030d4, 0x000030a2, 
-	0x000030b9, 0x000030c8, 0x800030eb, 0x000030d4, 
-	0x000030af, 0x800030eb, 0x000030d4, 0x800030b3, 
-	0x000030d3, 0x800030eb, 0x000030d5, 0x000030a1, 
-	0x000030e9, 0x000030c3, 0x800030c9, 0x000030d5, 
-	0x000030a3, 0x000030fc, 0x800030c8, 0x000030d6, 
-	0x000030c3, 0x000030b7, 0x000030a7, 0x800030eb, 
-	0x000030d5, 0x000030e9, 0x800030f3, 0x000030d8, 
-	0x000030af, 0x000030bf, 0x000030fc, 0x800030eb, 
-	0x000030da, 0x800030bd, 0x000030da, 0x000030cb, 
-	0x800030d2, 0x000030d8, 0x000030eb, 0x800030c4, 
-	0x000030da, 0x000030f3, 0x800030b9, 0x000030da, 
-	0x000030fc, 0x800030b8, 0x000030d9, 0x000030fc, 
-	0x800030bf, 0x000030dd, 0x000030a4, 0x000030f3, 
-	0x800030c8, 0x000030dc, 0x000030eb, 0x800030c8, 
-	0x000030db, 0x800030f3, 0x000030dd, 0x000030f3, 
-	0x800030c9, 0x000030db, 0x000030fc, 0x800030eb, 
-	0x000030db, 0x000030fc, 0x800030f3, 0x000030de, 
-	0x000030a4, 0x000030af, 0x800030ed, 0x000030de, 
-	0x000030a4, 0x800030eb, 0x000030de, 0x000030c3, 
-	0x800030cf, 0x000030de, 0x000030eb, 0x800030af, 
-	0x000030de, 0x000030f3, 0x000030b7, 0x000030e7, 
-	0x800030f3, 0x000030df, 0x000030af, 0x000030ed, 
-	0x800030f3, 0x000030df, 0x800030ea, 0x000030df, 
-	0x000030ea, 0x000030d0, 0x000030fc, 0x800030eb, 
-	0x000030e1, 0x800030ac, 0x000030e1, 0x000030ac, 
-	0x000030c8, 0x800030f3, 0x000030e1, 0x000030fc, 
-	0x000030c8, 0x800030eb, 0x000030e4, 0x000030fc, 
-	0x800030c9, 0x000030e4, 0x000030fc, 0x800030eb, 
-	0x000030e6, 0x000030a2, 0x800030f3, 0x000030ea, 
-	0x000030c3, 0x000030c8, 0x800030eb, 0x000030ea, 
-	0x800030e9, 0x000030eb, 0x000030d4, 0x800030fc, 
-	0x000030eb, 0x000030fc, 0x000030d6, 0x800030eb, 
-	0x000030ec, 0x800030e0, 0x000030ec, 0x000030f3, 
-	0x000030c8, 0x000030b2, 0x800030f3, 0x000030ef, 
-	0x000030c3, 0x800030c8, 0x00000030, 0x800070b9, 
-	0x00000031, 0x800070b9, 0x00000032, 0x800070b9, 
-	0x00000033, 0x800070b9, 0x00000034, 0x800070b9, 
-	0x00000035, 0x800070b9, 0x00000036, 0x800070b9, 
-	0x00000037, 0x800070b9, 0x00000038, 0x800070b9, 
-	0x00000039, 0x800070b9, 0x00000031, 0x00000030, 
-	0x800070b9, 0x00000031, 0x00000031, 0x800070b9, 
-	0x00000031, 0x00000032, 0x800070b9, 0x00000031, 
-	0x00000033, 0x800070b9, 0x00000031, 0x00000034, 
-	0x800070b9, 0x00000031, 0x00000035, 0x800070b9, 
-	0x00000031, 0x00000036, 0x800070b9, 0x00000031, 
-	0x00000037, 0x800070b9, 0x00000031, 0x00000038, 
-	0x800070b9, 0x00000031, 0x00000039, 0x800070b9, 
-	0x00000032, 0x00000030, 0x800070b9, 0x00000032, 
-	0x00000031, 0x800070b9, 0x00000032, 0x00000032, 
-	0x800070b9, 0x00000032, 0x00000033, 0x800070b9, 
-	0x00000032, 0x00000034, 0x800070b9, 0x00000068, 
-	0x00000050, 0x80000061, 0x00000064, 0x80000061, 
-	0x00000041, 0x80000055, 0x00000062, 0x00000061, 
-	0x80000072, 0x0000006f, 0x80000056, 0x00000070, 
-	0x80000063, 0x00000064, 0x8000006d, 0x00000064, 
-	0x0000006d, 0x800000b2, 0x00000064, 0x0000006d, 
-	0x800000b3, 0x00000049, 0x80000055, 0x00005e73, 
-	0x80006210, 0x0000662d, 0x8000548c, 0x00005927, 
-	0x80006b63, 0x0000660e, 0x80006cbb, 0x0000682a, 
-	0x00005f0f, 0x00004f1a, 0x8000793e, 0x00000070, 
-	0x80000041, 0x0000006e, 0x80000041, 0x000003bc, 
-	0x80000041, 0x0000006d, 0x80000041, 0x0000006b, 
-	0x80000041, 0x0000004b, 0x80000042, 0x0000004d, 
-	0x80000042, 0x00000047, 0x80000042, 0x00000063, 
-	0x00000061, 0x8000006c, 0x0000006b, 0x00000063, 
-	0x00000061, 0x8000006c, 0x00000070, 0x80000046, 
-	0x0000006e, 0x80000046, 0x000003bc, 0x80000046, 
-	0x000003bc, 0x80000067, 0x0000006d, 0x80000067, 
-	0x0000006b, 0x80000067, 0x00000048, 0x8000007a, 
-	0x0000006b, 0x00000048, 0x8000007a, 0x0000004d, 
-	0x00000048, 0x8000007a, 0x00000047, 0x00000048, 
-	0x8000007a, 0x00000054, 0x00000048, 0x8000007a, 
-	0x000003bc, 0x80002113, 0x0000006d, 0x80002113, 
-	0x00000064, 0x80002113, 0x0000006b, 0x80002113, 
-	0x00000066, 0x8000006d, 0x0000006e, 0x8000006d, 
-	0x000003bc, 0x8000006d, 0x0000006d, 0x8000006d, 
-	0x00000063, 0x8000006d, 0x0000006b, 0x8000006d, 
-	0x0000006d, 0x0000006d, 0x800000b2, 0x00000063, 
-	0x0000006d, 0x800000b2, 0x0000006d, 0x800000b2, 
-	0x0000006b, 0x0000006d, 0x800000b2, 0x0000006d, 
-	0x0000006d, 0x800000b3, 0x00000063, 0x0000006d, 
-	0x800000b3, 0x0000006d, 0x800000b3, 0x0000006b, 
-	0x0000006d, 0x800000b3, 0x0000006d, 0x00002215, 
-	0x80000073, 0x0000006d, 0x00002215, 0x00000073, 
-	0x800000b2, 0x00000050, 0x80000061, 0x0000006b, 
-	0x00000050, 0x80000061, 0x0000004d, 0x00000050, 
-	0x80000061, 0x00000047, 0x00000050, 0x80000061, 
-	0x00000072, 0x00000061, 0x80000064, 0x00000072, 
-	0x00000061, 0x00000064, 0x00002215, 0x80000073, 
-	0x00000072, 0x00000061, 0x00000064, 0x00002215, 
-	0x00000073, 0x800000b2, 0x00000070, 0x80000073, 
-	0x0000006e, 0x80000073, 0x000003bc, 0x80000073, 
-	0x0000006d, 0x80000073, 0x00000070, 0x80000056, 
-	0x0000006e, 0x80000056, 0x000003bc, 0x80000056, 
-	0x0000006d, 0x80000056, 0x0000006b, 0x80000056, 
-	0x0000004d, 0x80000056, 0x00000070, 0x80000057, 
-	0x0000006e, 0x80000057, 0x000003bc, 0x80000057, 
-	0x0000006d, 0x80000057, 0x0000006b, 0x80000057, 
-	0x0000004d, 0x80000057, 0x0000006b, 0x800003a9, 
-	0x0000004d, 0x800003a9, 0x00000061, 0x0000002e, 
-	0x0000006d, 0x8000002e, 0x00000042, 0x80000071, 
-	0x00000063, 0x80000063, 0x00000063, 0x80000064, 
-	0x00000043, 0x00002215, 0x0000006b, 0x80000067, 
-	0x00000043, 0x0000006f, 0x8000002e, 0x00000064, 
-	0x80000042, 0x00000047, 0x80000079, 0x00000068, 
-	0x80000061, 0x00000048, 0x80000050, 0x00000069, 
-	0x8000006e, 0x0000004b, 0x8000004b, 0x0000004b, 
-	0x8000004d, 0x0000006b, 0x80000074, 0x0000006c, 
-	0x8000006d, 0x0000006c, 0x8000006e, 0x0000006c, 
-	0x0000006f, 0x80000067, 0x0000006c, 0x80000078, 
-	0x0000006d, 0x80000062, 0x0000006d, 0x00000069, 
-	0x8000006c, 0x0000006d, 0x0000006f, 0x8000006c, 
-	0x00000050, 0x80000048, 0x00000070, 0x0000002e, 
-	0x0000006d, 0x8000002e, 0x00000050, 0x00000050, 
-	0x8000004d, 0x00000050, 0x80000052, 0x00000073, 
-	0x80000072, 0x00000053, 0x80000076, 0x00000057, 
-	0x80000062, 0x00000056, 0x00002215, 0x8000006d, 
-	0x00000041, 0x00002215, 0x8000006d, 0x00000031, 
-	0x800065e5, 0x00000032, 0x800065e5, 0x00000033, 
-	0x800065e5, 0x00000034, 0x800065e5, 0x00000035, 
-	0x800065e5, 0x00000036, 0x800065e5, 0x00000037, 
-	0x800065e5, 0x00000038, 0x800065e5, 0x00000039, 
-	0x800065e5, 0x00000031, 0x00000030, 0x800065e5, 
-	0x00000031, 0x00000031, 0x800065e5, 0x00000031, 
-	0x00000032, 0x800065e5, 0x00000031, 0x00000033, 
-	0x800065e5, 0x00000031, 0x00000034, 0x800065e5, 
-	0x00000031, 0x00000035, 0x800065e5, 0x00000031, 
-	0x00000036, 0x800065e5, 0x00000031, 0x00000037, 
-	0x800065e5, 0x00000031, 0x00000038, 0x800065e5, 
-	0x00000031, 0x00000039, 0x800065e5, 0x00000032, 
-	0x00000030, 0x800065e5, 0x00000032, 0x00000031, 
-	0x800065e5, 0x00000032, 0x00000032, 0x800065e5, 
-	0x00000032, 0x00000033, 0x800065e5, 0x00000032, 
-	0x00000034, 0x800065e5, 0x00000032, 0x00000035, 
-	0x800065e5, 0x00000032, 0x00000036, 0x800065e5, 
-	0x00000032, 0x00000037, 0x800065e5, 0x00000032, 
-	0x00000038, 0x800065e5, 0x00000032, 0x00000039, 
-	0x800065e5, 0x00000033, 0x00000030, 0x800065e5, 
-	0x00000033, 0x00000031, 0x800065e5, 0x00000067, 
-	0x00000061, 0x8000006c, 0x80008c48, 0x800066f4, 
-	0x80008eca, 0x80008cc8, 0x80006ed1, 0x80004e32, 
-	0x800053e5, 0x80009f9c, 0x80009f9c, 0x80005951, 
-	0x800091d1, 0x80005587, 0x80005948, 0x800061f6, 
-	0x80007669, 0x80007f85, 0x8000863f, 0x800087ba, 
-	0x800088f8, 0x8000908f, 0x80006a02, 0x80006d1b, 
-	0x800070d9, 0x800073de, 0x8000843d, 0x8000916a, 
-	0x800099f1, 0x80004e82, 0x80005375, 0x80006b04, 
-	0x8000721b, 0x8000862d, 0x80009e1e, 0x80005d50, 
-	0x80006feb, 0x800085cd, 0x80008964, 0x800062c9, 
-	0x800081d8, 0x8000881f, 0x80005eca, 0x80006717, 
-	0x80006d6a, 0x800072fc, 0x800090ce, 0x80004f86, 
-	0x800051b7, 0x800052de, 0x800064c4, 0x80006ad3, 
-	0x80007210, 0x800076e7, 0x80008001, 0x80008606, 
-	0x8000865c, 0x80008def, 0x80009732, 0x80009b6f, 
-	0x80009dfa, 0x8000788c, 0x8000797f, 0x80007da0, 
-	0x800083c9, 0x80009304, 0x80009e7f, 0x80008ad6, 
-	0x800058df, 0x80005f04, 0x80007c60, 0x8000807e, 
-	0x80007262, 0x800078ca, 0x80008cc2, 0x800096f7, 
-	0x800058d8, 0x80005c62, 0x80006a13, 0x80006dda, 
-	0x80006f0f, 0x80007d2f, 0x80007e37, 0x8000964b, 
-	0x800052d2, 0x8000808b, 0x800051dc, 0x800051cc, 
-	0x80007a1c, 0x80007dbe, 0x800083f1, 0x80009675, 
-	0x80008b80, 0x800062cf, 0x80006a02, 0x80008afe, 
-	0x80004e39, 0x80005be7, 0x80006012, 0x80007387, 
-	0x80007570, 0x80005317, 0x800078fb, 0x80004fbf, 
-	0x80005fa9, 0x80004e0d, 0x80006ccc, 0x80006578, 
-	0x80007d22, 0x800053c3, 0x8000585e, 0x80007701, 
-	0x80008449, 0x80008aaa, 0x80006bba, 0x80008fb0, 
-	0x80006c88, 0x800062fe, 0x800082e5, 0x800063a0, 
-	0x80007565, 0x80004eae, 0x80005169, 0x800051c9, 
-	0x80006881, 0x80007ce7, 0x8000826f, 0x80008ad2, 
-	0x800091cf, 0x800052f5, 0x80005442, 0x80005973, 
-	0x80005eec, 0x800065c5, 0x80006ffe, 0x8000792a, 
-	0x800095ad, 0x80009a6a, 0x80009e97, 0x80009ece, 
-	0x8000529b, 0x800066c6, 0x80006b77, 0x80008f62, 
-	0x80005e74, 0x80006190, 0x80006200, 0x8000649a, 
-	0x80006f23, 0x80007149, 0x80007489, 0x800079ca, 
-	0x80007df4, 0x8000806f, 0x80008f26, 0x800084ee, 
-	0x80009023, 0x8000934a, 0x80005217, 0x800052a3, 
-	0x800054bd, 0x800070c8, 0x800088c2, 0x80008aaa, 
-	0x80005ec9, 0x80005ff5, 0x8000637b, 0x80006bae, 
-	0x80007c3e, 0x80007375, 0x80004ee4, 0x800056f9, 
-	0x80005be7, 0x80005dba, 0x8000601c, 0x800073b2, 
-	0x80007469, 0x80007f9a, 0x80008046, 0x80009234, 
-	0x800096f6, 0x80009748, 0x80009818, 0x80004f8b, 
-	0x800079ae, 0x800091b4, 0x800096b8, 0x800060e1, 
-	0x80004e86, 0x800050da, 0x80005bee, 0x80005c3f, 
-	0x80006599, 0x80006a02, 0x800071ce, 0x80007642, 
-	0x800084fc, 0x8000907c, 0x80009f8d, 0x80006688, 
-	0x8000962e, 0x80005289, 0x8000677b, 0x800067f3, 
-	0x80006d41, 0x80006e9c, 0x80007409, 0x80007559, 
-	0x8000786b, 0x80007d10, 0x8000985e, 0x8000516d, 
-	0x8000622e, 0x80009678, 0x8000502b, 0x80005d19, 
-	0x80006dea, 0x80008f2a, 0x80005f8b, 0x80006144, 
-	0x80006817, 0x80007387, 0x80009686, 0x80005229, 
-	0x8000540f, 0x80005c65, 0x80006613, 0x8000674e, 
-	0x800068a8, 0x80006ce5, 0x80007406, 0x800075e2, 
-	0x80007f79, 0x800088cf, 0x800088e1, 0x800091cc, 
-	0x800096e2, 0x8000533f, 0x80006eba, 0x8000541d, 
-	0x800071d0, 0x80007498, 0x800085fa, 0x800096a3, 
-	0x80009c57, 0x80009e9f, 0x80006797, 0x80006dcb, 
-	0x800081e8, 0x80007acb, 0x80007b20, 0x80007c92, 
-	0x800072c0, 0x80007099, 0x80008b58, 0x80004ec0, 
-	0x80008336, 0x8000523a, 0x80005207, 0x80005ea6, 
-	0x800062d3, 0x80007cd6, 0x80005b85, 0x80006d1e, 
-	0x800066b4, 0x80008f3b, 0x8000884c, 0x8000964d, 
-	0x8000898b, 0x80005ed3, 0x80005140, 0x800055c0, 
-	0x8000585a, 0x80006674, 0x800051de, 0x8000732a, 
-	0x800076ca, 0x8000793c, 0x8000795e, 0x80007965, 
-	0x8000798f, 0x80009756, 0x80007cbe, 0x80007fbd, 
-	0x80008612, 0x80008af8, 0x80009038, 0x800090fd, 
-	0x800098ef, 0x800098fc, 0x80009928, 0x80009db4, 
-	0x80004fae, 0x800050e7, 0x8000514d, 0x800052c9, 
-	0x800052e4, 0x80005351, 0x8000559d, 0x80005606, 
-	0x80005668, 0x80005840, 0x800058a8, 0x80005c64, 
-	0x80005c6e, 0x80006094, 0x80006168, 0x8000618e, 
-	0x800061f2, 0x8000654f, 0x800065e2, 0x80006691, 
-	0x80006885, 0x80006d77, 0x80006e1a, 0x80006f22, 
-	0x8000716e, 0x8000722b, 0x80007422, 0x80007891, 
-	0x8000793e, 0x80007949, 0x80007948, 0x80007950, 
-	0x80007956, 0x8000795d, 0x8000798d, 0x8000798e, 
-	0x80007a40, 0x80007a81, 0x80007bc0, 0x80007df4, 
-	0x80007e09, 0x80007e41, 0x80007f72, 0x80008005, 
-	0x800081ed, 0x80008279, 0x80008279, 0x80008457, 
-	0x80008910, 0x80008996, 0x80008b01, 0x80008b39, 
-	0x80008cd3, 0x80008d08, 0x80008fb6, 0x80009038, 
-	0x800096e3, 0x800097ff, 0x8000983b, 0x80004e26, 
-	0x800051b5, 0x80005168, 0x80004f80, 0x80005145, 
-	0x80005180, 0x800052c7, 0x800052fa, 0x8000559d, 
-	0x80005555, 0x80005599, 0x800055e2, 0x8000585a, 
-	0x800058b3, 0x80005944, 0x80005954, 0x80005a62, 
-	0x80005b28, 0x80005ed2, 0x80005ed9, 0x80005f69, 
-	0x80005fad, 0x800060d8, 0x8000614e, 0x80006108, 
-	0x8000618e, 0x80006160, 0x800061f2, 0x80006234, 
-	0x800063c4, 0x8000641c, 0x80006452, 0x80006556, 
-	0x80006674, 0x80006717, 0x8000671b, 0x80006756, 
-	0x80006b79, 0x80006bba, 0x80006d41, 0x80006edb, 
-	0x80006ecb, 0x80006f22, 0x8000701e, 0x8000716e, 
-	0x800077a7, 0x80007235, 0x800072af, 0x8000732a, 
-	0x80007471, 0x80007506, 0x8000753b, 0x8000761d, 
-	0x8000761f, 0x800076ca, 0x800076db, 0x800076f4, 
-	0x8000774a, 0x80007740, 0x800078cc, 0x80007ab1, 
-	0x80007bc0, 0x80007c7b, 0x80007d5b, 0x80007df4, 
-	0x80007f3e, 0x80008005, 0x80008352, 0x800083ef, 
-	0x80008779, 0x80008941, 0x80008986, 0x80008996, 
-	0x80008abf, 0x80008af8, 0x80008acb, 0x80008b01, 
-	0x80008afe, 0x80008aed, 0x80008b39, 0x80008b8a, 
-	0x80008d08, 0x80008f38, 0x80009072, 0x80009199, 
-	0x80009276, 0x8000967c, 0x800096e3, 0x80009756, 
-	0x800097db, 0x800097ff, 0x8000980b, 0x8000983b, 
-	0x80009b12, 0x80009f9c, 0x8002284a, 0x80022844, 
-	0x800233d5, 0x80003b9d, 0x80004018, 0x80004039, 
-	0x80025249, 0x80025cd0, 0x80027ed3, 0x80009f43, 
-	0x80009f8e, 0x00000066, 0x80000066, 0x00000066, 
-	0x80000069, 0x00000066, 0x8000006c, 0x00000066, 
-	0x00000066, 0x80000069, 0x00000066, 0x00000066, 
-	0x8000006c, 0x0000017f, 0x80000074, 0x00000073, 
-	0x80000074, 0x00000574, 0x80000576, 0x00000574, 
-	0x80000565, 0x00000574, 0x8000056b, 0x0000057e, 
-	0x80000576, 0x00000574, 0x8000056d, 0x000005d9, 
-	0x800005b4, 0x000005f2, 0x800005b7, 0x800005e2, 
-	0x800005d0, 0x800005d3, 0x800005d4, 0x800005db, 
-	0x800005dc, 0x800005dd, 0x800005e8, 0x800005ea, 
-	0x8000002b, 0x000005e9, 0x800005c1, 0x000005e9, 
-	0x800005c2, 0x0000fb49, 0x800005c1, 0x0000fb49, 
-	0x800005c2, 0x000005d0, 0x800005b7, 0x000005d0, 
-	0x800005b8, 0x000005d0, 0x800005bc, 0x000005d1, 
-	0x800005bc, 0x000005d2, 0x800005bc, 0x000005d3, 
-	0x800005bc, 0x000005d4, 0x800005bc, 0x000005d5, 
-	0x800005bc, 0x000005d6, 0x800005bc, 0x000005d8, 
-	0x800005bc, 0x000005d9, 0x800005bc, 0x000005da, 
-	0x800005bc, 0x000005db, 0x800005bc, 0x000005dc, 
-	0x800005bc, 0x000005de, 0x800005bc, 0x000005e0, 
-	0x800005bc, 0x000005e1, 0x800005bc, 0x000005e3, 
-	0x800005bc, 0x000005e4, 0x800005bc, 0x000005e6, 
-	0x800005bc, 0x000005e7, 0x800005bc, 0x000005e8, 
-	0x800005bc, 0x000005e9, 0x800005bc, 0x000005ea, 
-	0x800005bc, 0x000005d5, 0x800005b9, 0x000005d1, 
-	0x800005bf, 0x000005db, 0x800005bf, 0x000005e4, 
-	0x800005bf, 0x000005d0, 0x800005dc, 0x80000671, 
-	0x80000671, 0x8000067b, 0x8000067b, 0x8000067b, 
-	0x8000067b, 0x8000067e, 0x8000067e, 0x8000067e, 
-	0x8000067e, 0x80000680, 0x80000680, 0x80000680, 
-	0x80000680, 0x8000067a, 0x8000067a, 0x8000067a, 
-	0x8000067a, 0x8000067f, 0x8000067f, 0x8000067f, 
-	0x8000067f, 0x80000679, 0x80000679, 0x80000679, 
-	0x80000679, 0x800006a4, 0x800006a4, 0x800006a4, 
-	0x800006a4, 0x800006a6, 0x800006a6, 0x800006a6, 
-	0x800006a6, 0x80000684, 0x80000684, 0x80000684, 
-	0x80000684, 0x80000683, 0x80000683, 0x80000683, 
-	0x80000683, 0x80000686, 0x80000686, 0x80000686, 
-	0x80000686, 0x80000687, 0x80000687, 0x80000687, 
-	0x80000687, 0x8000068d, 0x8000068d, 0x8000068c, 
-	0x8000068c, 0x8000068e, 0x8000068e, 0x80000688, 
-	0x80000688, 0x80000698, 0x80000698, 0x80000691, 
-	0x80000691, 0x800006a9, 0x800006a9, 0x800006a9, 
-	0x800006a9, 0x800006af, 0x800006af, 0x800006af, 
-	0x800006af, 0x800006b3, 0x800006b3, 0x800006b3, 
-	0x800006b3, 0x800006b1, 0x800006b1, 0x800006b1, 
-	0x800006b1, 0x800006ba, 0x800006ba, 0x800006bb, 
-	0x800006bb, 0x800006bb, 0x800006bb, 0x800006c0, 
-	0x800006c0, 0x800006c1, 0x800006c1, 0x800006c1, 
-	0x800006c1, 0x800006be, 0x800006be, 0x800006be, 
-	0x800006be, 0x800006d2, 0x800006d2, 0x800006d3, 
-	0x800006d3, 0x800006ad, 0x800006ad, 0x800006ad, 
-	0x800006ad, 0x800006c7, 0x800006c7, 0x800006c6, 
-	0x800006c6, 0x800006c8, 0x800006c8, 0x80000677, 
-	0x800006cb, 0x800006cb, 0x800006c5, 0x800006c5, 
-	0x800006c9, 0x800006c9, 0x800006d0, 0x800006d0, 
-	0x800006d0, 0x800006d0, 0x80000649, 0x80000649, 
-	0x00000626, 0x80000627, 0x00000626, 0x80000627, 
-	0x00000626, 0x800006d5, 0x00000626, 0x800006d5, 
-	0x00000626, 0x80000648, 0x00000626, 0x80000648, 
-	0x00000626, 0x800006c7, 0x00000626, 0x800006c7, 
-	0x00000626, 0x800006c6, 0x00000626, 0x800006c6, 
-	0x00000626, 0x800006c8, 0x00000626, 0x800006c8, 
-	0x00000626, 0x800006d0, 0x00000626, 0x800006d0, 
-	0x00000626, 0x800006d0, 0x00000626, 0x80000649, 
-	0x00000626, 0x80000649, 0x00000626, 0x80000649, 
-	0x800006cc, 0x800006cc, 0x800006cc, 0x800006cc, 
-	0x00000626, 0x8000062c, 0x00000626, 0x8000062d, 
-	0x00000626, 0x80000645, 0x00000626, 0x80000649, 
-	0x00000626, 0x8000064a, 0x00000628, 0x8000062c, 
-	0x00000628, 0x8000062d, 0x00000628, 0x8000062e, 
-	0x00000628, 0x80000645, 0x00000628, 0x80000649, 
-	0x00000628, 0x8000064a, 0x0000062a, 0x8000062c, 
-	0x0000062a, 0x8000062d, 0x0000062a, 0x8000062e, 
-	0x0000062a, 0x80000645, 0x0000062a, 0x80000649, 
-	0x0000062a, 0x8000064a, 0x0000062b, 0x8000062c, 
-	0x0000062b, 0x80000645, 0x0000062b, 0x80000649, 
-	0x0000062b, 0x8000064a, 0x0000062c, 0x8000062d, 
-	0x0000062c, 0x80000645, 0x0000062d, 0x8000062c, 
-	0x0000062d, 0x80000645, 0x0000062e, 0x8000062c, 
-	0x0000062e, 0x8000062d, 0x0000062e, 0x80000645, 
-	0x00000633, 0x8000062c, 0x00000633, 0x8000062d, 
-	0x00000633, 0x8000062e, 0x00000633, 0x80000645, 
-	0x00000635, 0x8000062d, 0x00000635, 0x80000645, 
-	0x00000636, 0x8000062c, 0x00000636, 0x8000062d, 
-	0x00000636, 0x8000062e, 0x00000636, 0x80000645, 
-	0x00000637, 0x8000062d, 0x00000637, 0x80000645, 
-	0x00000638, 0x80000645, 0x00000639, 0x8000062c, 
-	0x00000639, 0x80000645, 0x0000063a, 0x8000062c, 
-	0x0000063a, 0x80000645, 0x00000641, 0x8000062c, 
-	0x00000641, 0x8000062d, 0x00000641, 0x8000062e, 
-	0x00000641, 0x80000645, 0x00000641, 0x80000649, 
-	0x00000641, 0x8000064a, 0x00000642, 0x8000062d, 
-	0x00000642, 0x80000645, 0x00000642, 0x80000649, 
-	0x00000642, 0x8000064a, 0x00000643, 0x80000627, 
-	0x00000643, 0x8000062c, 0x00000643, 0x8000062d, 
-	0x00000643, 0x8000062e, 0x00000643, 0x80000644, 
-	0x00000643, 0x80000645, 0x00000643, 0x80000649, 
-	0x00000643, 0x8000064a, 0x00000644, 0x8000062c, 
-	0x00000644, 0x8000062d, 0x00000644, 0x8000062e, 
-	0x00000644, 0x80000645, 0x00000644, 0x80000649, 
-	0x00000644, 0x8000064a, 0x00000645, 0x8000062c, 
-	0x00000645, 0x8000062d, 0x00000645, 0x8000062e, 
-	0x00000645, 0x80000645, 0x00000645, 0x80000649, 
-	0x00000645, 0x8000064a, 0x00000646, 0x8000062c, 
-	0x00000646, 0x8000062d, 0x00000646, 0x8000062e, 
-	0x00000646, 0x80000645, 0x00000646, 0x80000649, 
-	0x00000646, 0x8000064a, 0x00000647, 0x8000062c, 
-	0x00000647, 0x80000645, 0x00000647, 0x80000649, 
-	0x00000647, 0x8000064a, 0x0000064a, 0x8000062c, 
-	0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e, 
-	0x0000064a, 0x80000645, 0x0000064a, 0x80000649, 
-	0x0000064a, 0x8000064a, 0x00000630, 0x80000670, 
-	0x00000631, 0x80000670, 0x00000649, 0x80000670, 
-	0x00000020, 0x0000064c, 0x80000651, 0x00000020, 
-	0x0000064d, 0x80000651, 0x00000020, 0x0000064e, 
-	0x80000651, 0x00000020, 0x0000064f, 0x80000651, 
-	0x00000020, 0x00000650, 0x80000651, 0x00000020, 
-	0x00000651, 0x80000670, 0x00000626, 0x80000631, 
-	0x00000626, 0x80000632, 0x00000626, 0x80000645, 
-	0x00000626, 0x80000646, 0x00000626, 0x80000649, 
-	0x00000626, 0x8000064a, 0x00000628, 0x80000631, 
-	0x00000628, 0x80000632, 0x00000628, 0x80000645, 
-	0x00000628, 0x80000646, 0x00000628, 0x80000649, 
-	0x00000628, 0x8000064a, 0x0000062a, 0x80000631, 
-	0x0000062a, 0x80000632, 0x0000062a, 0x80000645, 
-	0x0000062a, 0x80000646, 0x0000062a, 0x80000649, 
-	0x0000062a, 0x8000064a, 0x0000062b, 0x80000631, 
-	0x0000062b, 0x80000632, 0x0000062b, 0x80000645, 
-	0x0000062b, 0x80000646, 0x0000062b, 0x80000649, 
-	0x0000062b, 0x8000064a, 0x00000641, 0x80000649, 
-	0x00000641, 0x8000064a, 0x00000642, 0x80000649, 
-	0x00000642, 0x8000064a, 0x00000643, 0x80000627, 
-	0x00000643, 0x80000644, 0x00000643, 0x80000645, 
-	0x00000643, 0x80000649, 0x00000643, 0x8000064a, 
-	0x00000644, 0x80000645, 0x00000644, 0x80000649, 
-	0x00000644, 0x8000064a, 0x00000645, 0x80000627, 
-	0x00000645, 0x80000645, 0x00000646, 0x80000631, 
-	0x00000646, 0x80000632, 0x00000646, 0x80000645, 
-	0x00000646, 0x80000646, 0x00000646, 0x80000649, 
-	0x00000646, 0x8000064a, 0x00000649, 0x80000670, 
-	0x0000064a, 0x80000631, 0x0000064a, 0x80000632, 
-	0x0000064a, 0x80000645, 0x0000064a, 0x80000646, 
-	0x0000064a, 0x80000649, 0x0000064a, 0x8000064a, 
-	0x00000626, 0x8000062c, 0x00000626, 0x8000062d, 
-	0x00000626, 0x8000062e, 0x00000626, 0x80000645, 
-	0x00000626, 0x80000647, 0x00000628, 0x8000062c, 
-	0x00000628, 0x8000062d, 0x00000628, 0x8000062e, 
-	0x00000628, 0x80000645, 0x00000628, 0x80000647, 
-	0x0000062a, 0x8000062c, 0x0000062a, 0x8000062d, 
-	0x0000062a, 0x8000062e, 0x0000062a, 0x80000645, 
-	0x0000062a, 0x80000647, 0x0000062b, 0x80000645, 
-	0x0000062c, 0x8000062d, 0x0000062c, 0x80000645, 
-	0x0000062d, 0x8000062c, 0x0000062d, 0x80000645, 
-	0x0000062e, 0x8000062c, 0x0000062e, 0x80000645, 
-	0x00000633, 0x8000062c, 0x00000633, 0x8000062d, 
-	0x00000633, 0x8000062e, 0x00000633, 0x80000645, 
-	0x00000635, 0x8000062d, 0x00000635, 0x8000062e, 
-	0x00000635, 0x80000645, 0x00000636, 0x8000062c, 
-	0x00000636, 0x8000062d, 0x00000636, 0x8000062e, 
-	0x00000636, 0x80000645, 0x00000637, 0x8000062d, 
-	0x00000638, 0x80000645, 0x00000639, 0x8000062c, 
-	0x00000639, 0x80000645, 0x0000063a, 0x8000062c, 
-	0x0000063a, 0x80000645, 0x00000641, 0x8000062c, 
-	0x00000641, 0x8000062d, 0x00000641, 0x8000062e, 
-	0x00000641, 0x80000645, 0x00000642, 0x8000062d, 
-	0x00000642, 0x80000645, 0x00000643, 0x8000062c, 
-	0x00000643, 0x8000062d, 0x00000643, 0x8000062e, 
-	0x00000643, 0x80000644, 0x00000643, 0x80000645, 
-	0x00000644, 0x8000062c, 0x00000644, 0x8000062d, 
-	0x00000644, 0x8000062e, 0x00000644, 0x80000645, 
-	0x00000644, 0x80000647, 0x00000645, 0x8000062c, 
-	0x00000645, 0x8000062d, 0x00000645, 0x8000062e, 
-	0x00000645, 0x80000645, 0x00000646, 0x8000062c, 
-	0x00000646, 0x8000062d, 0x00000646, 0x8000062e, 
-	0x00000646, 0x80000645, 0x00000646, 0x80000647, 
-	0x00000647, 0x8000062c, 0x00000647, 0x80000645, 
-	0x00000647, 0x80000670, 0x0000064a, 0x8000062c, 
-	0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e, 
-	0x0000064a, 0x80000645, 0x0000064a, 0x80000647, 
-	0x00000626, 0x80000645, 0x00000626, 0x80000647, 
-	0x00000628, 0x80000645, 0x00000628, 0x80000647, 
-	0x0000062a, 0x80000645, 0x0000062a, 0x80000647, 
-	0x0000062b, 0x80000645, 0x0000062b, 0x80000647, 
-	0x00000633, 0x80000645, 0x00000633, 0x80000647, 
-	0x00000634, 0x80000645, 0x00000634, 0x80000647, 
-	0x00000643, 0x80000644, 0x00000643, 0x80000645, 
-	0x00000644, 0x80000645, 0x00000646, 0x80000645, 
-	0x00000646, 0x80000647, 0x0000064a, 0x80000645, 
-	0x0000064a, 0x80000647, 0x00000640, 0x0000064e, 
-	0x80000651, 0x00000640, 0x0000064f, 0x80000651, 
-	0x00000640, 0x00000650, 0x80000651, 0x00000637, 
-	0x80000649, 0x00000637, 0x8000064a, 0x00000639, 
-	0x80000649, 0x00000639, 0x8000064a, 0x0000063a, 
-	0x80000649, 0x0000063a, 0x8000064a, 0x00000633, 
-	0x80000649, 0x00000633, 0x8000064a, 0x00000634, 
-	0x80000649, 0x00000634, 0x8000064a, 0x0000062d, 
-	0x80000649, 0x0000062d, 0x8000064a, 0x0000062c, 
-	0x80000649, 0x0000062c, 0x8000064a, 0x0000062e, 
-	0x80000649, 0x0000062e, 0x8000064a, 0x00000635, 
-	0x80000649, 0x00000635, 0x8000064a, 0x00000636, 
-	0x80000649, 0x00000636, 0x8000064a, 0x00000634, 
-	0x8000062c, 0x00000634, 0x8000062d, 0x00000634, 
-	0x8000062e, 0x00000634, 0x80000645, 0x00000634, 
-	0x80000631, 0x00000633, 0x80000631, 0x00000635, 
-	0x80000631, 0x00000636, 0x80000631, 0x00000637, 
-	0x80000649, 0x00000637, 0x8000064a, 0x00000639, 
-	0x80000649, 0x00000639, 0x8000064a, 0x0000063a, 
-	0x80000649, 0x0000063a, 0x8000064a, 0x00000633, 
-	0x80000649, 0x00000633, 0x8000064a, 0x00000634, 
-	0x80000649, 0x00000634, 0x8000064a, 0x0000062d, 
-	0x80000649, 0x0000062d, 0x8000064a, 0x0000062c, 
-	0x80000649, 0x0000062c, 0x8000064a, 0x0000062e, 
-	0x80000649, 0x0000062e, 0x8000064a, 0x00000635, 
-	0x80000649, 0x00000635, 0x8000064a, 0x00000636, 
-	0x80000649, 0x00000636, 0x8000064a, 0x00000634, 
-	0x8000062c, 0x00000634, 0x8000062d, 0x00000634, 
-	0x8000062e, 0x00000634, 0x80000645, 0x00000634, 
-	0x80000631, 0x00000633, 0x80000631, 0x00000635, 
-	0x80000631, 0x00000636, 0x80000631, 0x00000634, 
-	0x8000062c, 0x00000634, 0x8000062d, 0x00000634, 
-	0x8000062e, 0x00000634, 0x80000645, 0x00000633, 
-	0x80000647, 0x00000634, 0x80000647, 0x00000637, 
-	0x80000645, 0x00000633, 0x8000062c, 0x00000633, 
-	0x8000062d, 0x00000633, 0x8000062e, 0x00000634, 
-	0x8000062c, 0x00000634, 0x8000062d, 0x00000634, 
-	0x8000062e, 0x00000637, 0x80000645, 0x00000638, 
-	0x80000645, 0x00000627, 0x8000064b, 0x00000627, 
-	0x8000064b, 0x0000062a, 0x0000062c, 0x80000645, 
-	0x0000062a, 0x0000062d, 0x8000062c, 0x0000062a, 
-	0x0000062d, 0x8000062c, 0x0000062a, 0x0000062d, 
-	0x80000645, 0x0000062a, 0x0000062e, 0x80000645, 
-	0x0000062a, 0x00000645, 0x8000062c, 0x0000062a, 
-	0x00000645, 0x8000062d, 0x0000062a, 0x00000645, 
-	0x8000062e, 0x0000062c, 0x00000645, 0x8000062d, 
-	0x0000062c, 0x00000645, 0x8000062d, 0x0000062d, 
-	0x00000645, 0x8000064a, 0x0000062d, 0x00000645, 
-	0x80000649, 0x00000633, 0x0000062d, 0x8000062c, 
-	0x00000633, 0x0000062c, 0x8000062d, 0x00000633, 
-	0x0000062c, 0x80000649, 0x00000633, 0x00000645, 
-	0x8000062d, 0x00000633, 0x00000645, 0x8000062d, 
-	0x00000633, 0x00000645, 0x8000062c, 0x00000633, 
-	0x00000645, 0x80000645, 0x00000633, 0x00000645, 
-	0x80000645, 0x00000635, 0x0000062d, 0x8000062d, 
-	0x00000635, 0x0000062d, 0x8000062d, 0x00000635, 
-	0x00000645, 0x80000645, 0x00000634, 0x0000062d, 
-	0x80000645, 0x00000634, 0x0000062d, 0x80000645, 
-	0x00000634, 0x0000062c, 0x8000064a, 0x00000634, 
-	0x00000645, 0x8000062e, 0x00000634, 0x00000645, 
-	0x8000062e, 0x00000634, 0x00000645, 0x80000645, 
-	0x00000634, 0x00000645, 0x80000645, 0x00000636, 
-	0x0000062d, 0x80000649, 0x00000636, 0x0000062e, 
-	0x80000645, 0x00000636, 0x0000062e, 0x80000645, 
-	0x00000637, 0x00000645, 0x8000062d, 0x00000637, 
-	0x00000645, 0x8000062d, 0x00000637, 0x00000645, 
-	0x80000645, 0x00000637, 0x00000645, 0x8000064a, 
-	0x00000639, 0x0000062c, 0x80000645, 0x00000639, 
-	0x00000645, 0x80000645, 0x00000639, 0x00000645, 
-	0x80000645, 0x00000639, 0x00000645, 0x80000649, 
-	0x0000063a, 0x00000645, 0x80000645, 0x0000063a, 
-	0x00000645, 0x8000064a, 0x0000063a, 0x00000645, 
-	0x80000649, 0x00000641, 0x0000062e, 0x80000645, 
-	0x00000641, 0x0000062e, 0x80000645, 0x00000642, 
-	0x00000645, 0x8000062d, 0x00000642, 0x00000645, 
-	0x80000645, 0x00000644, 0x0000062d, 0x80000645, 
-	0x00000644, 0x0000062d, 0x8000064a, 0x00000644, 
-	0x0000062d, 0x80000649, 0x00000644, 0x0000062c, 
-	0x8000062c, 0x00000644, 0x0000062c, 0x8000062c, 
-	0x00000644, 0x0000062e, 0x80000645, 0x00000644, 
-	0x0000062e, 0x80000645, 0x00000644, 0x00000645, 
-	0x8000062d, 0x00000644, 0x00000645, 0x8000062d, 
-	0x00000645, 0x0000062d, 0x8000062c, 0x00000645, 
-	0x0000062d, 0x80000645, 0x00000645, 0x0000062d, 
-	0x8000064a, 0x00000645, 0x0000062c, 0x8000062d, 
-	0x00000645, 0x0000062c, 0x80000645, 0x00000645, 
-	0x0000062e, 0x8000062c, 0x00000645, 0x0000062e, 
-	0x80000645, 0x00000645, 0x0000062c, 0x8000062e, 
-	0x00000647, 0x00000645, 0x8000062c, 0x00000647, 
-	0x00000645, 0x80000645, 0x00000646, 0x0000062d, 
-	0x80000645, 0x00000646, 0x0000062d, 0x80000649, 
-	0x00000646, 0x0000062c, 0x80000645, 0x00000646, 
-	0x0000062c, 0x80000645, 0x00000646, 0x0000062c, 
-	0x80000649, 0x00000646, 0x00000645, 0x8000064a, 
-	0x00000646, 0x00000645, 0x80000649, 0x0000064a, 
-	0x00000645, 0x80000645, 0x0000064a, 0x00000645, 
-	0x80000645, 0x00000628, 0x0000062e, 0x8000064a, 
-	0x0000062a, 0x0000062c, 0x8000064a, 0x0000062a, 
-	0x0000062c, 0x80000649, 0x0000062a, 0x0000062e, 
-	0x8000064a, 0x0000062a, 0x0000062e, 0x80000649, 
-	0x0000062a, 0x00000645, 0x8000064a, 0x0000062a, 
-	0x00000645, 0x80000649, 0x0000062c, 0x00000645, 
-	0x8000064a, 0x0000062c, 0x0000062d, 0x80000649, 
-	0x0000062c, 0x00000645, 0x80000649, 0x00000633, 
-	0x0000062e, 0x80000649, 0x00000635, 0x0000062d, 
-	0x8000064a, 0x00000634, 0x0000062d, 0x8000064a, 
-	0x00000636, 0x0000062d, 0x8000064a, 0x00000644, 
-	0x0000062c, 0x8000064a, 0x00000644, 0x00000645, 
-	0x8000064a, 0x0000064a, 0x0000062d, 0x8000064a, 
-	0x0000064a, 0x0000062c, 0x8000064a, 0x0000064a, 
-	0x00000645, 0x8000064a, 0x00000645, 0x00000645, 
-	0x8000064a, 0x00000642, 0x00000645, 0x8000064a, 
-	0x00000646, 0x0000062d, 0x8000064a, 0x00000642, 
-	0x00000645, 0x8000062d, 0x00000644, 0x0000062d, 
-	0x80000645, 0x00000639, 0x00000645, 0x8000064a, 
-	0x00000643, 0x00000645, 0x8000064a, 0x00000646, 
-	0x0000062c, 0x8000062d, 0x00000645, 0x0000062e, 
-	0x8000064a, 0x00000644, 0x0000062c, 0x80000645, 
-	0x00000643, 0x00000645, 0x80000645, 0x00000644, 
-	0x0000062c, 0x80000645, 0x00000646, 0x0000062c, 
-	0x8000062d, 0x0000062c, 0x0000062d, 0x8000064a, 
-	0x0000062d, 0x0000062c, 0x8000064a, 0x00000645, 
-	0x0000062c, 0x8000064a, 0x00000641, 0x00000645, 
-	0x8000064a, 0x00000628, 0x0000062d, 0x8000064a, 
-	0x00000643, 0x00000645, 0x80000645, 0x00000639, 
-	0x0000062c, 0x80000645, 0x00000635, 0x00000645, 
-	0x80000645, 0x00000633, 0x0000062e, 0x8000064a, 
-	0x00000646, 0x0000062c, 0x8000064a, 0x00000635, 
-	0x00000644, 0x800006d2, 0x00000642, 0x00000644, 
-	0x800006d2, 0x00000627, 0x00000644, 0x00000644, 
-	0x80000647, 0x00000627, 0x00000643, 0x00000628, 
-	0x80000631, 0x00000645, 0x0000062d, 0x00000645, 
-	0x8000062f, 0x00000635, 0x00000644, 0x00000639, 
-	0x80000645, 0x00000631, 0x00000633, 0x00000648, 
-	0x80000644, 0x00000639, 0x00000644, 0x0000064a, 
-	0x80000647, 0x00000648, 0x00000633, 0x00000644, 
-	0x80000645, 0x00000635, 0x00000644, 0x80000649, 
-	0x00000635, 0x00000644, 0x00000649, 0x00000020, 
-	0x00000627, 0x00000644, 0x00000644, 0x00000647, 
-	0x00000020, 0x00000639, 0x00000644, 0x0000064a, 
-	0x00000647, 0x00000020, 0x00000648, 0x00000633, 
-	0x00000644, 0x80000645, 0x0000062c, 0x00000644, 
-	0x00000020, 0x0000062c, 0x00000644, 0x00000627, 
-	0x00000644, 0x80000647, 0x00000631, 0x000006cc, 
-	0x00000627, 0x80000644, 0x8000002c, 0x80003001, 
-	0x80003002, 0x8000003a, 0x8000003b, 0x80000021, 
-	0x8000003f, 0x80003016, 0x80003017, 0x80002026, 
-	0x80002025, 0x80002014, 0x80002013, 0x8000005f, 
-	0x8000005f, 0x80000028, 0x80000029, 0x8000007b, 
-	0x8000007d, 0x80003014, 0x80003015, 0x80003010, 
-	0x80003011, 0x8000300a, 0x8000300b, 0x80003008, 
-	0x80003009, 0x8000300c, 0x8000300d, 0x8000300e, 
-	0x8000300f, 0x8000005b, 0x8000005d, 0x8000203e, 
-	0x8000203e, 0x8000203e, 0x8000203e, 0x8000005f, 
-	0x8000005f, 0x8000005f, 0x8000002c, 0x80003001, 
-	0x8000002e, 0x8000003b, 0x8000003a, 0x8000003f, 
-	0x80000021, 0x80002014, 0x80000028, 0x80000029, 
-	0x8000007b, 0x8000007d, 0x80003014, 0x80003015, 
-	0x80000023, 0x80000026, 0x8000002a, 0x8000002b, 
-	0x8000002d, 0x8000003c, 0x8000003e, 0x8000003d, 
-	0x8000005c, 0x80000024, 0x80000025, 0x80000040, 
-	0x00000020, 0x8000064b, 0x00000640, 0x8000064b, 
-	0x00000020, 0x8000064c, 0x00000020, 0x8000064d, 
-	0x00000020, 0x8000064e, 0x00000640, 0x8000064e, 
-	0x00000020, 0x8000064f, 0x00000640, 0x8000064f, 
-	0x00000020, 0x80000650, 0x00000640, 0x80000650, 
-	0x00000020, 0x80000651, 0x00000640, 0x80000651, 
-	0x00000020, 0x80000652, 0x00000640, 0x80000652, 
-	0x80000621, 0x80000622, 0x80000622, 0x80000623, 
-	0x80000623, 0x80000624, 0x80000624, 0x80000625, 
-	0x80000625, 0x80000626, 0x80000626, 0x80000626, 
-	0x80000626, 0x80000627, 0x80000627, 0x80000628, 
-	0x80000628, 0x80000628, 0x80000628, 0x80000629, 
-	0x80000629, 0x8000062a, 0x8000062a, 0x8000062a, 
-	0x8000062a, 0x8000062b, 0x8000062b, 0x8000062b, 
-	0x8000062b, 0x8000062c, 0x8000062c, 0x8000062c, 
-	0x8000062c, 0x8000062d, 0x8000062d, 0x8000062d, 
-	0x8000062d, 0x8000062e, 0x8000062e, 0x8000062e, 
-	0x8000062e, 0x8000062f, 0x8000062f, 0x80000630, 
-	0x80000630, 0x80000631, 0x80000631, 0x80000632, 
-	0x80000632, 0x80000633, 0x80000633, 0x80000633, 
-	0x80000633, 0x80000634, 0x80000634, 0x80000634, 
-	0x80000634, 0x80000635, 0x80000635, 0x80000635, 
-	0x80000635, 0x80000636, 0x80000636, 0x80000636, 
-	0x80000636, 0x80000637, 0x80000637, 0x80000637, 
-	0x80000637, 0x80000638, 0x80000638, 0x80000638, 
-	0x80000638, 0x80000639, 0x80000639, 0x80000639, 
-	0x80000639, 0x8000063a, 0x8000063a, 0x8000063a, 
-	0x8000063a, 0x80000641, 0x80000641, 0x80000641, 
-	0x80000641, 0x80000642, 0x80000642, 0x80000642, 
-	0x80000642, 0x80000643, 0x80000643, 0x80000643, 
-	0x80000643, 0x80000644, 0x80000644, 0x80000644, 
-	0x80000644, 0x80000645, 0x80000645, 0x80000645, 
-	0x80000645, 0x80000646, 0x80000646, 0x80000646, 
-	0x80000646, 0x80000647, 0x80000647, 0x80000647, 
-	0x80000647, 0x80000648, 0x80000648, 0x80000649, 
-	0x80000649, 0x8000064a, 0x8000064a, 0x8000064a, 
-	0x8000064a, 0x00000644, 0x80000622, 0x00000644, 
-	0x80000622, 0x00000644, 0x80000623, 0x00000644, 
-	0x80000623, 0x00000644, 0x80000625, 0x00000644, 
-	0x80000625, 0x00000644, 0x80000627, 0x00000644, 
-	0x80000627, 0x80000021, 0x80000022, 0x80000023, 
-	0x80000024, 0x80000025, 0x80000026, 0x80000027, 
-	0x80000028, 0x80000029, 0x8000002a, 0x8000002b, 
-	0x8000002c, 0x8000002d, 0x8000002e, 0x8000002f, 
-	0x80000030, 0x80000031, 0x80000032, 0x80000033, 
-	0x80000034, 0x80000035, 0x80000036, 0x80000037, 
-	0x80000038, 0x80000039, 0x8000003a, 0x8000003b, 
-	0x8000003c, 0x8000003d, 0x8000003e, 0x8000003f, 
-	0x80000040, 0x80000041, 0x80000042, 0x80000043, 
-	0x80000044, 0x80000045, 0x80000046, 0x80000047, 
-	0x80000048, 0x80000049, 0x8000004a, 0x8000004b, 
-	0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f, 
-	0x80000050, 0x80000051, 0x80000052, 0x80000053, 
-	0x80000054, 0x80000055, 0x80000056, 0x80000057, 
-	0x80000058, 0x80000059, 0x8000005a, 0x8000005b, 
-	0x8000005c, 0x8000005d, 0x8000005e, 0x8000005f, 
-	0x80000060, 0x80000061, 0x80000062, 0x80000063, 
-	0x80000064, 0x80000065, 0x80000066, 0x80000067, 
-	0x80000068, 0x80000069, 0x8000006a, 0x8000006b, 
-	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, 
-	0x80000070, 0x80000071, 0x80000072, 0x80000073, 
-	0x80000074, 0x80000075, 0x80000076, 0x80000077, 
-	0x80000078, 0x80000079, 0x8000007a, 0x8000007b, 
-	0x8000007c, 0x8000007d, 0x8000007e, 0x80002985, 
-	0x80002986, 0x80003002, 0x8000300c, 0x8000300d, 
-	0x80003001, 0x800030fb, 0x800030f2, 0x800030a1, 
-	0x800030a3, 0x800030a5, 0x800030a7, 0x800030a9, 
-	0x800030e3, 0x800030e5, 0x800030e7, 0x800030c3, 
-	0x800030fc, 0x800030a2, 0x800030a4, 0x800030a6, 
-	0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad, 
-	0x800030af, 0x800030b1, 0x800030b3, 0x800030b5, 
-	0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd, 
-	0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6, 
-	0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc, 
-	0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2, 
-	0x800030d5, 0x800030d8, 0x800030db, 0x800030de, 
-	0x800030df, 0x800030e0, 0x800030e1, 0x800030e2, 
-	0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9, 
-	0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed, 
-	0x800030ef, 0x800030f3, 0x80003099, 0x8000309a, 
-	0x80003164, 0x80003131, 0x80003132, 0x80003133, 
-	0x80003134, 0x80003135, 0x80003136, 0x80003137, 
-	0x80003138, 0x80003139, 0x8000313a, 0x8000313b, 
-	0x8000313c, 0x8000313d, 0x8000313e, 0x8000313f, 
-	0x80003140, 0x80003141, 0x80003142, 0x80003143, 
-	0x80003144, 0x80003145, 0x80003146, 0x80003147, 
-	0x80003148, 0x80003149, 0x8000314a, 0x8000314b, 
-	0x8000314c, 0x8000314d, 0x8000314e, 0x8000314f, 
-	0x80003150, 0x80003151, 0x80003152, 0x80003153, 
-	0x80003154, 0x80003155, 0x80003156, 0x80003157, 
-	0x80003158, 0x80003159, 0x8000315a, 0x8000315b, 
-	0x8000315c, 0x8000315d, 0x8000315e, 0x8000315f, 
-	0x80003160, 0x80003161, 0x80003162, 0x80003163, 
-	0x800000a2, 0x800000a3, 0x800000ac, 0x800000af, 
-	0x800000a6, 0x800000a5, 0x800020a9, 0x80002502, 
-	0x80002190, 0x80002191, 0x80002192, 0x80002193, 
-	0x800025a0, 0x800025cb, 0x0001d157, 0x8001d165, 
-	0x0001d158, 0x8001d165, 0x0001d15f, 0x8001d16e, 
-	0x0001d15f, 0x8001d16f, 0x0001d15f, 0x8001d170, 
-	0x0001d15f, 0x8001d171, 0x0001d15f, 0x8001d172, 
-	0x0001d1b9, 0x8001d165, 0x0001d1ba, 0x8001d165, 
-	0x0001d1bb, 0x8001d16e, 0x0001d1bc, 0x8001d16e, 
-	0x0001d1bb, 0x8001d16f, 0x0001d1bc, 0x8001d16f, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000069, 0x8000006a, 0x8000006b, 
-	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, 
-	0x80000070, 0x80000071, 0x80000072, 0x80000073, 
-	0x80000074, 0x80000075, 0x80000076, 0x80000077, 
-	0x80000078, 0x80000079, 0x8000007a, 0x80000041, 
-	0x80000042, 0x80000043, 0x80000044, 0x80000045, 
-	0x80000046, 0x80000047, 0x80000048, 0x80000049, 
-	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, 
-	0x8000004e, 0x8000004f, 0x80000050, 0x80000051, 
-	0x80000052, 0x80000053, 0x80000054, 0x80000055, 
-	0x80000056, 0x80000057, 0x80000058, 0x80000059, 
-	0x8000005a, 0x80000061, 0x80000062, 0x80000063, 
-	0x80000064, 0x80000065, 0x80000066, 0x80000067, 
-	0x80000068, 0x80000069, 0x8000006a, 0x8000006b, 
-	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, 
-	0x80000070, 0x80000071, 0x80000072, 0x80000073, 
-	0x80000074, 0x80000075, 0x80000076, 0x80000077, 
-	0x80000078, 0x80000079, 0x8000007a, 0x80000041, 
-	0x80000043, 0x80000044, 0x80000047, 0x8000004a, 
-	0x8000004b, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000053, 0x80000054, 0x80000055, 
-	0x80000056, 0x80000057, 0x80000058, 0x80000059, 
-	0x8000005a, 0x80000061, 0x80000062, 0x80000063, 
-	0x80000064, 0x80000066, 0x80000068, 0x80000069, 
-	0x8000006a, 0x8000006b, 0x8000006c, 0x8000006d, 
-	0x8000006e, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000044, 0x80000045, 
-	0x80000046, 0x80000047, 0x8000004a, 0x8000004b, 
-	0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f, 
-	0x80000050, 0x80000051, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x80000061, 0x80000062, 0x80000063, 
-	0x80000064, 0x80000065, 0x80000066, 0x80000067, 
-	0x80000068, 0x80000069, 0x8000006a, 0x8000006b, 
-	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, 
-	0x80000070, 0x80000071, 0x80000072, 0x80000073, 
-	0x80000074, 0x80000075, 0x80000076, 0x80000077, 
-	0x80000078, 0x80000079, 0x8000007a, 0x80000041, 
-	0x80000042, 0x80000044, 0x80000045, 0x80000046, 
-	0x80000047, 0x80000049, 0x8000004a, 0x8000004b, 
-	0x8000004c, 0x8000004d, 0x8000004f, 0x80000053, 
-	0x80000054, 0x80000055, 0x80000056, 0x80000057, 
-	0x80000058, 0x80000059, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000041, 0x80000042, 0x80000043, 0x80000044, 
-	0x80000045, 0x80000046, 0x80000047, 0x80000048, 
-	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, 
-	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, 
-	0x80000051, 0x80000052, 0x80000053, 0x80000054, 
-	0x80000055, 0x80000056, 0x80000057, 0x80000058, 
-	0x80000059, 0x8000005a, 0x80000061, 0x80000062, 
-	0x80000063, 0x80000064, 0x80000065, 0x80000066, 
-	0x80000067, 0x80000068, 0x80000069, 0x8000006a, 
-	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, 
-	0x8000006f, 0x80000070, 0x80000071, 0x80000072, 
-	0x80000073, 0x80000074, 0x80000075, 0x80000076, 
-	0x80000077, 0x80000078, 0x80000079, 0x8000007a, 
-	0x80000131, 0x80000237, 0x80000391, 0x80000392, 
-	0x80000393, 0x80000394, 0x80000395, 0x80000396, 
-	0x80000397, 0x80000398, 0x80000399, 0x8000039a, 
-	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, 
-	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, 
-	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, 
-	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, 
-	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, 
-	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, 
-	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, 
-	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, 
-	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, 
-	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, 
-	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, 
-	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, 
-	0x80000391, 0x80000392, 0x80000393, 0x80000394, 
-	0x80000395, 0x80000396, 0x80000397, 0x80000398, 
-	0x80000399, 0x8000039a, 0x8000039b, 0x8000039c, 
-	0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0, 
-	0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4, 
-	0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8, 
-	0x800003a9, 0x80002207, 0x800003b1, 0x800003b2, 
-	0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6, 
-	0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba, 
-	0x800003bb, 0x800003bc, 0x800003bd, 0x800003be, 
-	0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2, 
-	0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6, 
-	0x800003c7, 0x800003c8, 0x800003c9, 0x80002202, 
-	0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5, 
-	0x800003f1, 0x800003d6, 0x80000391, 0x80000392, 
-	0x80000393, 0x80000394, 0x80000395, 0x80000396, 
-	0x80000397, 0x80000398, 0x80000399, 0x8000039a, 
-	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, 
-	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, 
-	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, 
-	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, 
-	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, 
-	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, 
-	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, 
-	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, 
-	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, 
-	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, 
-	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, 
-	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, 
-	0x80000391, 0x80000392, 0x80000393, 0x80000394, 
-	0x80000395, 0x80000396, 0x80000397, 0x80000398, 
-	0x80000399, 0x8000039a, 0x8000039b, 0x8000039c, 
-	0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0, 
-	0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4, 
-	0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8, 
-	0x800003a9, 0x80002207, 0x800003b1, 0x800003b2, 
-	0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6, 
-	0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba, 
-	0x800003bb, 0x800003bc, 0x800003bd, 0x800003be, 
-	0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2, 
-	0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6, 
-	0x800003c7, 0x800003c8, 0x800003c9, 0x80002202, 
-	0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5, 
-	0x800003f1, 0x800003d6, 0x80000391, 0x80000392, 
-	0x80000393, 0x80000394, 0x80000395, 0x80000396, 
-	0x80000397, 0x80000398, 0x80000399, 0x8000039a, 
-	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, 
-	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, 
-	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, 
-	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, 
-	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, 
-	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, 
-	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, 
-	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, 
-	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, 
-	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, 
-	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, 
-	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, 
-	0x80000030, 0x80000031, 0x80000032, 0x80000033, 
-	0x80000034, 0x80000035, 0x80000036, 0x80000037, 
-	0x80000038, 0x80000039, 0x80000030, 0x80000031, 
-	0x80000032, 0x80000033, 0x80000034, 0x80000035, 
-	0x80000036, 0x80000037, 0x80000038, 0x80000039, 
-	0x80000030, 0x80000031, 0x80000032, 0x80000033, 
-	0x80000034, 0x80000035, 0x80000036, 0x80000037, 
-	0x80000038, 0x80000039, 0x80000030, 0x80000031, 
-	0x80000032, 0x80000033, 0x80000034, 0x80000035, 
-	0x80000036, 0x80000037, 0x80000038, 0x80000039, 
-	0x80000030, 0x80000031, 0x80000032, 0x80000033, 
-	0x80000034, 0x80000035, 0x80000036, 0x80000037, 
-	0x80000038, 0x80000039, 0x80004e3d, 0x80004e38, 
-	0x80004e41, 0x80020122, 0x80004f60, 0x80004fae, 
-	0x80004fbb, 0x80005002, 0x8000507a, 0x80005099, 
-	0x800050e7, 0x800050cf, 0x8000349e, 0x8002063a, 
-	0x8000514d, 0x80005154, 0x80005164, 0x80005177, 
-	0x8002051c, 0x800034b9, 0x80005167, 0x8000518d, 
-	0x8002054b, 0x80005197, 0x800051a4, 0x80004ecc, 
-	0x800051ac, 0x800051b5, 0x800291df, 0x800051f5, 
-	0x80005203, 0x800034df, 0x8000523b, 0x80005246, 
-	0x80005272, 0x80005277, 0x80003515, 0x800052c7, 
-	0x800052c9, 0x800052e4, 0x800052fa, 0x80005305, 
-	0x80005306, 0x80005317, 0x80005349, 0x80005351, 
-	0x8000535a, 0x80005373, 0x8000537d, 0x8000537f, 
-	0x8000537f, 0x8000537f, 0x80020a2c, 0x80007070, 
-	0x800053ca, 0x800053df, 0x80020b63, 0x800053eb, 
-	0x800053f1, 0x80005406, 0x8000549e, 0x80005438, 
-	0x80005448, 0x80005468, 0x800054a2, 0x800054f6, 
-	0x80005510, 0x80005553, 0x80005563, 0x80005584, 
-	0x80005584, 0x80005599, 0x800055ab, 0x800055b3, 
-	0x800055c2, 0x80005716, 0x80005606, 0x80005717, 
-	0x80005651, 0x80005674, 0x80005207, 0x800058ee, 
-	0x800057ce, 0x800057f4, 0x8000580d, 0x8000578b, 
-	0x80005832, 0x80005831, 0x800058ac, 0x800214e4, 
-	0x800058f2, 0x800058f7, 0x80005906, 0x8000591a, 
-	0x80005922, 0x80005962, 0x800216a8, 0x800216ea, 
-	0x800059ec, 0x80005a1b, 0x80005a27, 0x800059d8, 
-	0x80005a66, 0x800036ee, 0x800036fc, 0x80005b08, 
-	0x80005b3e, 0x80005b3e, 0x800219c8, 0x80005bc3, 
-	0x80005bd8, 0x80005be7, 0x80005bf3, 0x80021b18, 
-	0x80005bff, 0x80005c06, 0x80005f53, 0x80005c22, 
-	0x80003781, 0x80005c60, 0x80005c6e, 0x80005cc0, 
-	0x80005c8d, 0x80021de4, 0x80005d43, 0x80021de6, 
-	0x80005d6e, 0x80005d6b, 0x80005d7c, 0x80005de1, 
-	0x80005de2, 0x8000382f, 0x80005dfd, 0x80005e28, 
-	0x80005e3d, 0x80005e69, 0x80003862, 0x80022183, 
-	0x8000387c, 0x80005eb0, 0x80005eb3, 0x80005eb6, 
-	0x80005eca, 0x8002a392, 0x80005efe, 0x80022331, 
-	0x80022331, 0x80008201, 0x80005f22, 0x80005f22, 
-	0x800038c7, 0x800232b8, 0x800261da, 0x80005f62, 
-	0x80005f6b, 0x800038e3, 0x80005f9a, 0x80005fcd, 
-	0x80005fd7, 0x80005ff9, 0x80006081, 0x8000393a, 
-	0x8000391c, 0x80006094, 0x800226d4, 0x800060c7, 
-	0x80006148, 0x8000614c, 0x8000614e, 0x8000614c, 
-	0x8000617a, 0x8000618e, 0x800061b2, 0x800061a4, 
-	0x800061af, 0x800061de, 0x800061f2, 0x800061f6, 
-	0x80006210, 0x8000621b, 0x8000625d, 0x800062b1, 
-	0x800062d4, 0x80006350, 0x80022b0c, 0x8000633d, 
-	0x800062fc, 0x80006368, 0x80006383, 0x800063e4, 
-	0x80022bf1, 0x80006422, 0x800063c5, 0x800063a9, 
-	0x80003a2e, 0x80006469, 0x8000647e, 0x8000649d, 
-	0x80006477, 0x80003a6c, 0x8000654f, 0x8000656c, 
-	0x8002300a, 0x800065e3, 0x800066f8, 0x80006649, 
-	0x80003b19, 0x80006691, 0x80003b08, 0x80003ae4, 
-	0x80005192, 0x80005195, 0x80006700, 0x8000669c, 
-	0x800080ad, 0x800043d9, 0x80006717, 0x8000671b, 
-	0x80006721, 0x8000675e, 0x80006753, 0x800233c3, 
-	0x80003b49, 0x800067fa, 0x80006785, 0x80006852, 
-	0x80006885, 0x8002346d, 0x8000688e, 0x8000681f, 
-	0x80006914, 0x80003b9d, 0x80006942, 0x800069a3, 
-	0x800069ea, 0x80006aa8, 0x800236a3, 0x80006adb, 
-	0x80003c18, 0x80006b21, 0x800238a7, 0x80006b54, 
-	0x80003c4e, 0x80006b72, 0x80006b9f, 0x80006bba, 
-	0x80006bbb, 0x80023a8d, 0x80021d0b, 0x80023afa, 
-	0x80006c4e, 0x80023cbc, 0x80006cbf, 0x80006ccd, 
-	0x80006c67, 0x80006d16, 0x80006d3e, 0x80006d77, 
-	0x80006d41, 0x80006d69, 0x80006d78, 0x80006d85, 
-	0x80023d1e, 0x80006d34, 0x80006e2f, 0x80006e6e, 
-	0x80003d33, 0x80006ecb, 0x80006ec7, 0x80023ed1, 
-	0x80006df9, 0x80006f6e, 0x80023f5e, 0x80023f8e, 
-	0x80006fc6, 0x80007039, 0x8000701e, 0x8000701b, 
-	0x80003d96, 0x8000704a, 0x8000707d, 0x80007077, 
-	0x800070ad, 0x80020525, 0x80007145, 0x80024263, 
-	0x8000719c, 0x800243ab, 0x80007228, 0x80007235, 
-	0x80007250, 0x80024608, 0x80007280, 0x80007295, 
-	0x80024735, 0x80024814, 0x8000737a, 0x8000738b, 
-	0x80003eac, 0x800073a5, 0x80003eb8, 0x80003eb8, 
-	0x80007447, 0x8000745c, 0x80007471, 0x80007485, 
-	0x800074ca, 0x80003f1b, 0x80007524, 0x80024c36, 
-	0x8000753e, 0x80024c92, 0x80007570, 0x8002219f, 
-	0x80007610, 0x80024fa1, 0x80024fb8, 0x80025044, 
-	0x80003ffc, 0x80004008, 0x800076f4, 0x800250f3, 
-	0x800250f2, 0x80025119, 0x80025133, 0x8000771e, 
-	0x8000771f, 0x8000771f, 0x8000774a, 0x80004039, 
-	0x8000778b, 0x80004046, 0x80004096, 0x8002541d, 
-	0x8000784e, 0x8000788c, 0x800078cc, 0x800040e3, 
-	0x80025626, 0x80007956, 0x8002569a, 0x800256c5, 
-	0x8000798f, 0x800079eb, 0x8000412f, 0x80007a40, 
-	0x80007a4a, 0x80007a4f, 0x8002597c, 0x80025aa7, 
-	0x80025aa7, 0x80007aee, 0x80004202, 0x80025bab, 
-	0x80007bc6, 0x80007bc9, 0x80004227, 0x80025c80, 
-	0x80007cd2, 0x800042a0, 0x80007ce8, 0x80007ce3, 
-	0x80007d00, 0x80025f86, 0x80007d63, 0x80004301, 
-	0x80007dc7, 0x80007e02, 0x80007e45, 0x80004334, 
-	0x80026228, 0x80026247, 0x80004359, 0x800262d9, 
-	0x80007f7a, 0x8002633e, 0x80007f95, 0x80007ffa, 
-	0x80008005, 0x800264da, 0x80026523, 0x80008060, 
-	0x800265a8, 0x80008070, 0x8002335f, 0x800043d5, 
-	0x800080b2, 0x80008103, 0x8000440b, 0x8000813e, 
-	0x80005ab5, 0x800267a7, 0x800267b5, 0x80023393, 
-	0x8002339c, 0x80008201, 0x80008204, 0x80008f9e, 
-	0x8000446b, 0x80008291, 0x8000828b, 0x8000829d, 
-	0x800052b3, 0x800082b1, 0x800082b3, 0x800082bd, 
-	0x800082e6, 0x80026b3c, 0x800082e5, 0x8000831d, 
-	0x80008363, 0x800083ad, 0x80008323, 0x800083bd, 
-	0x800083e7, 0x80008457, 0x80008353, 0x800083ca, 
-	0x800083cc, 0x800083dc, 0x80026c36, 0x80026d6b, 
-	0x80026cd5, 0x8000452b, 0x800084f1, 0x800084f3, 
-	0x80008516, 0x800273ca, 0x80008564, 0x80026f2c, 
-	0x8000455d, 0x80004561, 0x80026fb1, 0x800270d2, 
-	0x8000456b, 0x80008650, 0x8000865c, 0x80008667, 
-	0x80008669, 0x800086a9, 0x80008688, 0x8000870e, 
-	0x800086e2, 0x80008779, 0x80008728, 0x8000876b, 
-	0x80008786, 0x800045d7, 0x800087e1, 0x80008801, 
-	0x800045f9, 0x80008860, 0x80008863, 0x80027667, 
-	0x800088d7, 0x800088de, 0x80004635, 0x800088fa, 
-	0x800034bb, 0x800278ae, 0x80027966, 0x800046be, 
-	0x800046c7, 0x80008aa0, 0x80008aed, 0x80008b8a, 
-	0x80008c55, 0x80027ca8, 0x80008cab, 0x80008cc1, 
-	0x80008d1b, 0x80008d77, 0x80027f2f, 0x80020804, 
-	0x80008dcb, 0x80008dbc, 0x80008df0, 0x800208de, 
-	0x80008ed4, 0x80008f38, 0x800285d2, 0x800285ed, 
-	0x80009094, 0x800090f1, 0x80009111, 0x8002872e, 
-	0x8000911b, 0x80009238, 0x800092d7, 0x800092d8, 
-	0x8000927c, 0x800093f9, 0x80009415, 0x80028bfa, 
-	0x8000958b, 0x80004995, 0x800095b7, 0x80028d77, 
-	0x800049e6, 0x800096c3, 0x80005db2, 0x80009723, 
-	0x80029145, 0x8002921a, 0x80004a6e, 0x80004a76, 
-	0x800097e0, 0x8002940a, 0x80004ab2, 0x80029496, 
-	0x8000980b, 0x8000980b, 0x80009829, 0x800295b6, 
-	0x800098e2, 0x80004b33, 0x80009929, 0x800099a7, 
-	0x800099c2, 0x800099fe, 0x80004bce, 0x80029b30, 
-	0x80009b12, 0x80009c40, 0x80009cfd, 0x80004cce, 
-	0x80004ced, 0x80009d67, 0x8002a0ce, 0x80004cf8, 
-	0x8002a105, 0x8002a20e, 0x8002a291, 0x80009ebb, 
-	0x80004d56, 0x80009ef9, 0x80009efe, 0x80009f05, 
-	0x80009f0f, 0x80009f16, 0x80009f3b, 0x8002a600, 
+	0x00000000, 0x80000020, 0x00000020, 0x80000308,
+	0x80000061, 0x00000020, 0x80000304, 0x80000032,
+	0x80000033, 0x00000020, 0x80000301, 0x800003bc,
+	0x00000020, 0x80000327, 0x80000031, 0x8000006f,
+	0x00000031, 0x00002044, 0x80000034, 0x00000031,
+	0x00002044, 0x80000032, 0x00000033, 0x00002044,
+	0x80000034, 0x00000041, 0x80000300, 0x00000041,
+	0x80000301, 0x00000041, 0x80000302, 0x00000041,
+	0x80000303, 0x00000041, 0x80000308, 0x00000041,
+	0x8000030a, 0x00000043, 0x80000327, 0x00000045,
+	0x80000300, 0x00000045, 0x80000301, 0x00000045,
+	0x80000302, 0x00000045, 0x80000308, 0x00000049,
+	0x80000300, 0x00000049, 0x80000301, 0x00000049,
+	0x80000302, 0x00000049, 0x80000308, 0x0000004e,
+	0x80000303, 0x0000004f, 0x80000300, 0x0000004f,
+	0x80000301, 0x0000004f, 0x80000302, 0x0000004f,
+	0x80000303, 0x0000004f, 0x80000308, 0x00000055,
+	0x80000300, 0x00000055, 0x80000301, 0x00000055,
+	0x80000302, 0x00000055, 0x80000308, 0x00000059,
+	0x80000301, 0x00000061, 0x80000300, 0x00000061,
+	0x80000301, 0x00000061, 0x80000302, 0x00000061,
+	0x80000303, 0x00000061, 0x80000308, 0x00000061,
+	0x8000030a, 0x00000063, 0x80000327, 0x00000065,
+	0x80000300, 0x00000065, 0x80000301, 0x00000065,
+	0x80000302, 0x00000065, 0x80000308, 0x00000069,
+	0x80000300, 0x00000069, 0x80000301, 0x00000069,
+	0x80000302, 0x00000069, 0x80000308, 0x0000006e,
+	0x80000303, 0x0000006f, 0x80000300, 0x0000006f,
+	0x80000301, 0x0000006f, 0x80000302, 0x0000006f,
+	0x80000303, 0x0000006f, 0x80000308, 0x00000075,
+	0x80000300, 0x00000075, 0x80000301, 0x00000075,
+	0x80000302, 0x00000075, 0x80000308, 0x00000079,
+	0x80000301, 0x00000079, 0x80000308, 0x00000041,
+	0x80000304, 0x00000061, 0x80000304, 0x00000041,
+	0x80000306, 0x00000061, 0x80000306, 0x00000041,
+	0x80000328, 0x00000061, 0x80000328, 0x00000043,
+	0x80000301, 0x00000063, 0x80000301, 0x00000043,
+	0x80000302, 0x00000063, 0x80000302, 0x00000043,
+	0x80000307, 0x00000063, 0x80000307, 0x00000043,
+	0x8000030c, 0x00000063, 0x8000030c, 0x00000044,
+	0x8000030c, 0x00000064, 0x8000030c, 0x00000045,
+	0x80000304, 0x00000065, 0x80000304, 0x00000045,
+	0x80000306, 0x00000065, 0x80000306, 0x00000045,
+	0x80000307, 0x00000065, 0x80000307, 0x00000045,
+	0x80000328, 0x00000065, 0x80000328, 0x00000045,
+	0x8000030c, 0x00000065, 0x8000030c, 0x00000047,
+	0x80000302, 0x00000067, 0x80000302, 0x00000047,
+	0x80000306, 0x00000067, 0x80000306, 0x00000047,
+	0x80000307, 0x00000067, 0x80000307, 0x00000047,
+	0x80000327, 0x00000067, 0x80000327, 0x00000048,
+	0x80000302, 0x00000068, 0x80000302, 0x00000049,
+	0x80000303, 0x00000069, 0x80000303, 0x00000049,
+	0x80000304, 0x00000069, 0x80000304, 0x00000049,
+	0x80000306, 0x00000069, 0x80000306, 0x00000049,
+	0x80000328, 0x00000069, 0x80000328, 0x00000049,
+	0x80000307, 0x00000049, 0x8000004a, 0x00000069,
+	0x8000006a, 0x0000004a, 0x80000302, 0x0000006a,
+	0x80000302, 0x0000004b, 0x80000327, 0x0000006b,
+	0x80000327, 0x0000004c, 0x80000301, 0x0000006c,
+	0x80000301, 0x0000004c, 0x80000327, 0x0000006c,
+	0x80000327, 0x0000004c, 0x8000030c, 0x0000006c,
+	0x8000030c, 0x0000004c, 0x800000b7, 0x0000006c,
+	0x800000b7, 0x0000004e, 0x80000301, 0x0000006e,
+	0x80000301, 0x0000004e, 0x80000327, 0x0000006e,
+	0x80000327, 0x0000004e, 0x8000030c, 0x0000006e,
+	0x8000030c, 0x000002bc, 0x8000006e, 0x0000004f,
+	0x80000304, 0x0000006f, 0x80000304, 0x0000004f,
+	0x80000306, 0x0000006f, 0x80000306, 0x0000004f,
+	0x8000030b, 0x0000006f, 0x8000030b, 0x00000052,
+	0x80000301, 0x00000072, 0x80000301, 0x00000052,
+	0x80000327, 0x00000072, 0x80000327, 0x00000052,
+	0x8000030c, 0x00000072, 0x8000030c, 0x00000053,
+	0x80000301, 0x00000073, 0x80000301, 0x00000053,
+	0x80000302, 0x00000073, 0x80000302, 0x00000053,
+	0x80000327, 0x00000073, 0x80000327, 0x00000053,
+	0x8000030c, 0x00000073, 0x8000030c, 0x00000054,
+	0x80000327, 0x00000074, 0x80000327, 0x00000054,
+	0x8000030c, 0x00000074, 0x8000030c, 0x00000055,
+	0x80000303, 0x00000075, 0x80000303, 0x00000055,
+	0x80000304, 0x00000075, 0x80000304, 0x00000055,
+	0x80000306, 0x00000075, 0x80000306, 0x00000055,
+	0x8000030a, 0x00000075, 0x8000030a, 0x00000055,
+	0x8000030b, 0x00000075, 0x8000030b, 0x00000055,
+	0x80000328, 0x00000075, 0x80000328, 0x00000057,
+	0x80000302, 0x00000077, 0x80000302, 0x00000059,
+	0x80000302, 0x00000079, 0x80000302, 0x00000059,
+	0x80000308, 0x0000005a, 0x80000301, 0x0000007a,
+	0x80000301, 0x0000005a, 0x80000307, 0x0000007a,
+	0x80000307, 0x0000005a, 0x8000030c, 0x0000007a,
+	0x8000030c, 0x80000073, 0x0000004f, 0x8000031b,
+	0x0000006f, 0x8000031b, 0x00000055, 0x8000031b,
+	0x00000075, 0x8000031b, 0x00000044, 0x8000017d,
+	0x00000044, 0x8000017e, 0x00000064, 0x8000017e,
+	0x0000004c, 0x8000004a, 0x0000004c, 0x8000006a,
+	0x0000006c, 0x8000006a, 0x0000004e, 0x8000004a,
+	0x0000004e, 0x8000006a, 0x0000006e, 0x8000006a,
+	0x00000041, 0x8000030c, 0x00000061, 0x8000030c,
+	0x00000049, 0x8000030c, 0x00000069, 0x8000030c,
+	0x0000004f, 0x8000030c, 0x0000006f, 0x8000030c,
+	0x00000055, 0x8000030c, 0x00000075, 0x8000030c,
+	0x000000dc, 0x80000304, 0x000000fc, 0x80000304,
+	0x000000dc, 0x80000301, 0x000000fc, 0x80000301,
+	0x000000dc, 0x8000030c, 0x000000fc, 0x8000030c,
+	0x000000dc, 0x80000300, 0x000000fc, 0x80000300,
+	0x000000c4, 0x80000304, 0x000000e4, 0x80000304,
+	0x00000226, 0x80000304, 0x00000227, 0x80000304,
+	0x000000c6, 0x80000304, 0x000000e6, 0x80000304,
+	0x00000047, 0x8000030c, 0x00000067, 0x8000030c,
+	0x0000004b, 0x8000030c, 0x0000006b, 0x8000030c,
+	0x0000004f, 0x80000328, 0x0000006f, 0x80000328,
+	0x000001ea, 0x80000304, 0x000001eb, 0x80000304,
+	0x000001b7, 0x8000030c, 0x00000292, 0x8000030c,
+	0x0000006a, 0x8000030c, 0x00000044, 0x8000005a,
+	0x00000044, 0x8000007a, 0x00000064, 0x8000007a,
+	0x00000047, 0x80000301, 0x00000067, 0x80000301,
+	0x0000004e, 0x80000300, 0x0000006e, 0x80000300,
+	0x000000c5, 0x80000301, 0x000000e5, 0x80000301,
+	0x000000c6, 0x80000301, 0x000000e6, 0x80000301,
+	0x000000d8, 0x80000301, 0x000000f8, 0x80000301,
+	0x00000041, 0x8000030f, 0x00000061, 0x8000030f,
+	0x00000041, 0x80000311, 0x00000061, 0x80000311,
+	0x00000045, 0x8000030f, 0x00000065, 0x8000030f,
+	0x00000045, 0x80000311, 0x00000065, 0x80000311,
+	0x00000049, 0x8000030f, 0x00000069, 0x8000030f,
+	0x00000049, 0x80000311, 0x00000069, 0x80000311,
+	0x0000004f, 0x8000030f, 0x0000006f, 0x8000030f,
+	0x0000004f, 0x80000311, 0x0000006f, 0x80000311,
+	0x00000052, 0x8000030f, 0x00000072, 0x8000030f,
+	0x00000052, 0x80000311, 0x00000072, 0x80000311,
+	0x00000055, 0x8000030f, 0x00000075, 0x8000030f,
+	0x00000055, 0x80000311, 0x00000075, 0x80000311,
+	0x00000053, 0x80000326, 0x00000073, 0x80000326,
+	0x00000054, 0x80000326, 0x00000074, 0x80000326,
+	0x00000048, 0x8000030c, 0x00000068, 0x8000030c,
+	0x00000041, 0x80000307, 0x00000061, 0x80000307,
+	0x00000045, 0x80000327, 0x00000065, 0x80000327,
+	0x000000d6, 0x80000304, 0x000000f6, 0x80000304,
+	0x000000d5, 0x80000304, 0x000000f5, 0x80000304,
+	0x0000004f, 0x80000307, 0x0000006f, 0x80000307,
+	0x0000022e, 0x80000304, 0x0000022f, 0x80000304,
+	0x00000059, 0x80000304, 0x00000079, 0x80000304,
+	0x80000068, 0x80000266, 0x8000006a, 0x80000072,
+	0x80000279, 0x8000027b, 0x80000281, 0x80000077,
+	0x80000079, 0x00000020, 0x80000306, 0x00000020,
+	0x80000307, 0x00000020, 0x8000030a, 0x00000020,
+	0x80000328, 0x00000020, 0x80000303, 0x00000020,
+	0x8000030b, 0x80000263, 0x8000006c, 0x80000073,
+	0x80000078, 0x80000295, 0x80000300, 0x80000301,
+	0x80000313, 0x00000308, 0x80000301, 0x800002b9,
+	0x00000020, 0x80000345, 0x8000003b, 0x00000020,
+	0x80000301, 0x000000a8, 0x80000301, 0x00000391,
+	0x80000301, 0x800000b7, 0x00000395, 0x80000301,
+	0x00000397, 0x80000301, 0x00000399, 0x80000301,
+	0x0000039f, 0x80000301, 0x000003a5, 0x80000301,
+	0x000003a9, 0x80000301, 0x000003ca, 0x80000301,
+	0x00000399, 0x80000308, 0x000003a5, 0x80000308,
+	0x000003b1, 0x80000301, 0x000003b5, 0x80000301,
+	0x000003b7, 0x80000301, 0x000003b9, 0x80000301,
+	0x000003cb, 0x80000301, 0x000003b9, 0x80000308,
+	0x000003c5, 0x80000308, 0x000003bf, 0x80000301,
+	0x000003c5, 0x80000301, 0x000003c9, 0x80000301,
+	0x800003b2, 0x800003b8, 0x800003a5, 0x000003d2,
+	0x80000301, 0x000003d2, 0x80000308, 0x800003c6,
+	0x800003c0, 0x800003ba, 0x800003c1, 0x800003c2,
+	0x80000398, 0x800003b5, 0x800003a3, 0x00000415,
+	0x80000300, 0x00000415, 0x80000308, 0x00000413,
+	0x80000301, 0x00000406, 0x80000308, 0x0000041a,
+	0x80000301, 0x00000418, 0x80000300, 0x00000423,
+	0x80000306, 0x00000418, 0x80000306, 0x00000438,
+	0x80000306, 0x00000435, 0x80000300, 0x00000435,
+	0x80000308, 0x00000433, 0x80000301, 0x00000456,
+	0x80000308, 0x0000043a, 0x80000301, 0x00000438,
+	0x80000300, 0x00000443, 0x80000306, 0x00000474,
+	0x8000030f, 0x00000475, 0x8000030f, 0x00000416,
+	0x80000306, 0x00000436, 0x80000306, 0x00000410,
+	0x80000306, 0x00000430, 0x80000306, 0x00000410,
+	0x80000308, 0x00000430, 0x80000308, 0x00000415,
+	0x80000306, 0x00000435, 0x80000306, 0x000004d8,
+	0x80000308, 0x000004d9, 0x80000308, 0x00000416,
+	0x80000308, 0x00000436, 0x80000308, 0x00000417,
+	0x80000308, 0x00000437, 0x80000308, 0x00000418,
+	0x80000304, 0x00000438, 0x80000304, 0x00000418,
+	0x80000308, 0x00000438, 0x80000308, 0x0000041e,
+	0x80000308, 0x0000043e, 0x80000308, 0x000004e8,
+	0x80000308, 0x000004e9, 0x80000308, 0x0000042d,
+	0x80000308, 0x0000044d, 0x80000308, 0x00000423,
+	0x80000304, 0x00000443, 0x80000304, 0x00000423,
+	0x80000308, 0x00000443, 0x80000308, 0x00000423,
+	0x8000030b, 0x00000443, 0x8000030b, 0x00000427,
+	0x80000308, 0x00000447, 0x80000308, 0x0000042b,
+	0x80000308, 0x0000044b, 0x80000308, 0x00000565,
+	0x80000582, 0x00000627, 0x80000653, 0x00000627,
+	0x80000654, 0x00000648, 0x80000654, 0x00000627,
+	0x80000655, 0x0000064a, 0x80000654, 0x00000627,
+	0x80000674, 0x00000648, 0x80000674, 0x000006c7,
+	0x80000674, 0x0000064a, 0x80000674, 0x000006d5,
+	0x80000654, 0x000006c1, 0x80000654, 0x000006d2,
+	0x80000654, 0x00000928, 0x8000093c, 0x00000930,
+	0x8000093c, 0x00000933, 0x8000093c, 0x00000915,
+	0x8000093c, 0x00000916, 0x8000093c, 0x00000917,
+	0x8000093c, 0x0000091c, 0x8000093c, 0x00000921,
+	0x8000093c, 0x00000922, 0x8000093c, 0x0000092b,
+	0x8000093c, 0x0000092f, 0x8000093c, 0x000009c7,
+	0x800009be, 0x000009c7, 0x800009d7, 0x000009a1,
+	0x800009bc, 0x000009a2, 0x800009bc, 0x000009af,
+	0x800009bc, 0x00000a32, 0x80000a3c, 0x00000a38,
+	0x80000a3c, 0x00000a16, 0x80000a3c, 0x00000a17,
+	0x80000a3c, 0x00000a1c, 0x80000a3c, 0x00000a2b,
+	0x80000a3c, 0x00000b47, 0x80000b56, 0x00000b47,
+	0x80000b3e, 0x00000b47, 0x80000b57, 0x00000b21,
+	0x80000b3c, 0x00000b22, 0x80000b3c, 0x00000b92,
+	0x80000bd7, 0x00000bc6, 0x80000bbe, 0x00000bc7,
+	0x80000bbe, 0x00000bc6, 0x80000bd7, 0x00000c46,
+	0x80000c56, 0x00000cbf, 0x80000cd5, 0x00000cc6,
+	0x80000cd5, 0x00000cc6, 0x80000cd6, 0x00000cc6,
+	0x80000cc2, 0x00000cca, 0x80000cd5, 0x00000d46,
+	0x80000d3e, 0x00000d47, 0x80000d3e, 0x00000d46,
+	0x80000d57, 0x00000dd9, 0x80000dca, 0x00000dd9,
+	0x80000dcf, 0x00000ddc, 0x80000dca, 0x00000dd9,
+	0x80000ddf, 0x00000e4d, 0x80000e32, 0x00000ecd,
+	0x80000eb2, 0x00000eab, 0x80000e99, 0x00000eab,
+	0x80000ea1, 0x80000f0b, 0x00000f42, 0x80000fb7,
+	0x00000f4c, 0x80000fb7, 0x00000f51, 0x80000fb7,
+	0x00000f56, 0x80000fb7, 0x00000f5b, 0x80000fb7,
+	0x00000f40, 0x80000fb5, 0x00000f71, 0x80000f72,
+	0x00000f71, 0x80000f74, 0x00000fb2, 0x80000f80,
+	0x00000fb2, 0x80000f81, 0x00000fb3, 0x80000f80,
+	0x00000fb3, 0x80000f81, 0x00000f71, 0x80000f80,
+	0x00000f92, 0x80000fb7, 0x00000f9c, 0x80000fb7,
+	0x00000fa1, 0x80000fb7, 0x00000fa6, 0x80000fb7,
+	0x00000fab, 0x80000fb7, 0x00000f90, 0x80000fb5,
+	0x00001025, 0x8000102e, 0x800010dc, 0x80000041,
+	0x800000c6, 0x80000042, 0x80000044, 0x80000045,
+	0x8000018e, 0x80000047, 0x80000048, 0x80000049,
+	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
+	0x8000004e, 0x8000004f, 0x80000222, 0x80000050,
+	0x80000052, 0x80000054, 0x80000055, 0x80000057,
+	0x80000061, 0x80000250, 0x80000251, 0x80001d02,
+	0x80000062, 0x80000064, 0x80000065, 0x80000259,
+	0x8000025b, 0x8000025c, 0x80000067, 0x8000006b,
+	0x8000006d, 0x8000014b, 0x8000006f, 0x80000254,
+	0x80001d16, 0x80001d17, 0x80000070, 0x80000074,
+	0x80000075, 0x80001d1d, 0x8000026f, 0x80000076,
+	0x80001d25, 0x800003b2, 0x800003b3, 0x800003b4,
+	0x800003c6, 0x800003c7, 0x80000069, 0x80000072,
+	0x80000075, 0x80000076, 0x800003b2, 0x800003b3,
+	0x800003c1, 0x800003c6, 0x800003c7, 0x8000043d,
+	0x80000252, 0x80000063, 0x80000255, 0x800000f0,
+	0x8000025c, 0x80000066, 0x8000025f, 0x80000261,
+	0x80000265, 0x80000268, 0x80000269, 0x8000026a,
+	0x80001d7b, 0x8000029d, 0x8000026d, 0x80001d85,
+	0x8000029f, 0x80000271, 0x80000270, 0x80000272,
+	0x80000273, 0x80000274, 0x80000275, 0x80000278,
+	0x80000282, 0x80000283, 0x800001ab, 0x80000289,
+	0x8000028a, 0x80001d1c, 0x8000028b, 0x8000028c,
+	0x8000007a, 0x80000290, 0x80000291, 0x80000292,
+	0x800003b8, 0x00000041, 0x80000325, 0x00000061,
+	0x80000325, 0x00000042, 0x80000307, 0x00000062,
+	0x80000307, 0x00000042, 0x80000323, 0x00000062,
+	0x80000323, 0x00000042, 0x80000331, 0x00000062,
+	0x80000331, 0x000000c7, 0x80000301, 0x000000e7,
+	0x80000301, 0x00000044, 0x80000307, 0x00000064,
+	0x80000307, 0x00000044, 0x80000323, 0x00000064,
+	0x80000323, 0x00000044, 0x80000331, 0x00000064,
+	0x80000331, 0x00000044, 0x80000327, 0x00000064,
+	0x80000327, 0x00000044, 0x8000032d, 0x00000064,
+	0x8000032d, 0x00000112, 0x80000300, 0x00000113,
+	0x80000300, 0x00000112, 0x80000301, 0x00000113,
+	0x80000301, 0x00000045, 0x8000032d, 0x00000065,
+	0x8000032d, 0x00000045, 0x80000330, 0x00000065,
+	0x80000330, 0x00000228, 0x80000306, 0x00000229,
+	0x80000306, 0x00000046, 0x80000307, 0x00000066,
+	0x80000307, 0x00000047, 0x80000304, 0x00000067,
+	0x80000304, 0x00000048, 0x80000307, 0x00000068,
+	0x80000307, 0x00000048, 0x80000323, 0x00000068,
+	0x80000323, 0x00000048, 0x80000308, 0x00000068,
+	0x80000308, 0x00000048, 0x80000327, 0x00000068,
+	0x80000327, 0x00000048, 0x8000032e, 0x00000068,
+	0x8000032e, 0x00000049, 0x80000330, 0x00000069,
+	0x80000330, 0x000000cf, 0x80000301, 0x000000ef,
+	0x80000301, 0x0000004b, 0x80000301, 0x0000006b,
+	0x80000301, 0x0000004b, 0x80000323, 0x0000006b,
+	0x80000323, 0x0000004b, 0x80000331, 0x0000006b,
+	0x80000331, 0x0000004c, 0x80000323, 0x0000006c,
+	0x80000323, 0x00001e36, 0x80000304, 0x00001e37,
+	0x80000304, 0x0000004c, 0x80000331, 0x0000006c,
+	0x80000331, 0x0000004c, 0x8000032d, 0x0000006c,
+	0x8000032d, 0x0000004d, 0x80000301, 0x0000006d,
+	0x80000301, 0x0000004d, 0x80000307, 0x0000006d,
+	0x80000307, 0x0000004d, 0x80000323, 0x0000006d,
+	0x80000323, 0x0000004e, 0x80000307, 0x0000006e,
+	0x80000307, 0x0000004e, 0x80000323, 0x0000006e,
+	0x80000323, 0x0000004e, 0x80000331, 0x0000006e,
+	0x80000331, 0x0000004e, 0x8000032d, 0x0000006e,
+	0x8000032d, 0x000000d5, 0x80000301, 0x000000f5,
+	0x80000301, 0x000000d5, 0x80000308, 0x000000f5,
+	0x80000308, 0x0000014c, 0x80000300, 0x0000014d,
+	0x80000300, 0x0000014c, 0x80000301, 0x0000014d,
+	0x80000301, 0x00000050, 0x80000301, 0x00000070,
+	0x80000301, 0x00000050, 0x80000307, 0x00000070,
+	0x80000307, 0x00000052, 0x80000307, 0x00000072,
+	0x80000307, 0x00000052, 0x80000323, 0x00000072,
+	0x80000323, 0x00001e5a, 0x80000304, 0x00001e5b,
+	0x80000304, 0x00000052, 0x80000331, 0x00000072,
+	0x80000331, 0x00000053, 0x80000307, 0x00000073,
+	0x80000307, 0x00000053, 0x80000323, 0x00000073,
+	0x80000323, 0x0000015a, 0x80000307, 0x0000015b,
+	0x80000307, 0x00000160, 0x80000307, 0x00000161,
+	0x80000307, 0x00001e62, 0x80000307, 0x00001e63,
+	0x80000307, 0x00000054, 0x80000307, 0x00000074,
+	0x80000307, 0x00000054, 0x80000323, 0x00000074,
+	0x80000323, 0x00000054, 0x80000331, 0x00000074,
+	0x80000331, 0x00000054, 0x8000032d, 0x00000074,
+	0x8000032d, 0x00000055, 0x80000324, 0x00000075,
+	0x80000324, 0x00000055, 0x80000330, 0x00000075,
+	0x80000330, 0x00000055, 0x8000032d, 0x00000075,
+	0x8000032d, 0x00000168, 0x80000301, 0x00000169,
+	0x80000301, 0x0000016a, 0x80000308, 0x0000016b,
+	0x80000308, 0x00000056, 0x80000303, 0x00000076,
+	0x80000303, 0x00000056, 0x80000323, 0x00000076,
+	0x80000323, 0x00000057, 0x80000300, 0x00000077,
+	0x80000300, 0x00000057, 0x80000301, 0x00000077,
+	0x80000301, 0x00000057, 0x80000308, 0x00000077,
+	0x80000308, 0x00000057, 0x80000307, 0x00000077,
+	0x80000307, 0x00000057, 0x80000323, 0x00000077,
+	0x80000323, 0x00000058, 0x80000307, 0x00000078,
+	0x80000307, 0x00000058, 0x80000308, 0x00000078,
+	0x80000308, 0x00000059, 0x80000307, 0x00000079,
+	0x80000307, 0x0000005a, 0x80000302, 0x0000007a,
+	0x80000302, 0x0000005a, 0x80000323, 0x0000007a,
+	0x80000323, 0x0000005a, 0x80000331, 0x0000007a,
+	0x80000331, 0x00000068, 0x80000331, 0x00000074,
+	0x80000308, 0x00000077, 0x8000030a, 0x00000079,
+	0x8000030a, 0x00000061, 0x800002be, 0x0000017f,
+	0x80000307, 0x00000041, 0x80000323, 0x00000061,
+	0x80000323, 0x00000041, 0x80000309, 0x00000061,
+	0x80000309, 0x000000c2, 0x80000301, 0x000000e2,
+	0x80000301, 0x000000c2, 0x80000300, 0x000000e2,
+	0x80000300, 0x000000c2, 0x80000309, 0x000000e2,
+	0x80000309, 0x000000c2, 0x80000303, 0x000000e2,
+	0x80000303, 0x00001ea0, 0x80000302, 0x00001ea1,
+	0x80000302, 0x00000102, 0x80000301, 0x00000103,
+	0x80000301, 0x00000102, 0x80000300, 0x00000103,
+	0x80000300, 0x00000102, 0x80000309, 0x00000103,
+	0x80000309, 0x00000102, 0x80000303, 0x00000103,
+	0x80000303, 0x00001ea0, 0x80000306, 0x00001ea1,
+	0x80000306, 0x00000045, 0x80000323, 0x00000065,
+	0x80000323, 0x00000045, 0x80000309, 0x00000065,
+	0x80000309, 0x00000045, 0x80000303, 0x00000065,
+	0x80000303, 0x000000ca, 0x80000301, 0x000000ea,
+	0x80000301, 0x000000ca, 0x80000300, 0x000000ea,
+	0x80000300, 0x000000ca, 0x80000309, 0x000000ea,
+	0x80000309, 0x000000ca, 0x80000303, 0x000000ea,
+	0x80000303, 0x00001eb8, 0x80000302, 0x00001eb9,
+	0x80000302, 0x00000049, 0x80000309, 0x00000069,
+	0x80000309, 0x00000049, 0x80000323, 0x00000069,
+	0x80000323, 0x0000004f, 0x80000323, 0x0000006f,
+	0x80000323, 0x0000004f, 0x80000309, 0x0000006f,
+	0x80000309, 0x000000d4, 0x80000301, 0x000000f4,
+	0x80000301, 0x000000d4, 0x80000300, 0x000000f4,
+	0x80000300, 0x000000d4, 0x80000309, 0x000000f4,
+	0x80000309, 0x000000d4, 0x80000303, 0x000000f4,
+	0x80000303, 0x00001ecc, 0x80000302, 0x00001ecd,
+	0x80000302, 0x000001a0, 0x80000301, 0x000001a1,
+	0x80000301, 0x000001a0, 0x80000300, 0x000001a1,
+	0x80000300, 0x000001a0, 0x80000309, 0x000001a1,
+	0x80000309, 0x000001a0, 0x80000303, 0x000001a1,
+	0x80000303, 0x000001a0, 0x80000323, 0x000001a1,
+	0x80000323, 0x00000055, 0x80000323, 0x00000075,
+	0x80000323, 0x00000055, 0x80000309, 0x00000075,
+	0x80000309, 0x000001af, 0x80000301, 0x000001b0,
+	0x80000301, 0x000001af, 0x80000300, 0x000001b0,
+	0x80000300, 0x000001af, 0x80000309, 0x000001b0,
+	0x80000309, 0x000001af, 0x80000303, 0x000001b0,
+	0x80000303, 0x000001af, 0x80000323, 0x000001b0,
+	0x80000323, 0x00000059, 0x80000300, 0x00000079,
+	0x80000300, 0x00000059, 0x80000323, 0x00000079,
+	0x80000323, 0x00000059, 0x80000309, 0x00000079,
+	0x80000309, 0x00000059, 0x80000303, 0x00000079,
+	0x80000303, 0x000003b1, 0x80000313, 0x000003b1,
+	0x80000314, 0x00001f00, 0x80000300, 0x00001f01,
+	0x80000300, 0x00001f00, 0x80000301, 0x00001f01,
+	0x80000301, 0x00001f00, 0x80000342, 0x00001f01,
+	0x80000342, 0x00000391, 0x80000313, 0x00000391,
+	0x80000314, 0x00001f08, 0x80000300, 0x00001f09,
+	0x80000300, 0x00001f08, 0x80000301, 0x00001f09,
+	0x80000301, 0x00001f08, 0x80000342, 0x00001f09,
+	0x80000342, 0x000003b5, 0x80000313, 0x000003b5,
+	0x80000314, 0x00001f10, 0x80000300, 0x00001f11,
+	0x80000300, 0x00001f10, 0x80000301, 0x00001f11,
+	0x80000301, 0x00000395, 0x80000313, 0x00000395,
+	0x80000314, 0x00001f18, 0x80000300, 0x00001f19,
+	0x80000300, 0x00001f18, 0x80000301, 0x00001f19,
+	0x80000301, 0x000003b7, 0x80000313, 0x000003b7,
+	0x80000314, 0x00001f20, 0x80000300, 0x00001f21,
+	0x80000300, 0x00001f20, 0x80000301, 0x00001f21,
+	0x80000301, 0x00001f20, 0x80000342, 0x00001f21,
+	0x80000342, 0x00000397, 0x80000313, 0x00000397,
+	0x80000314, 0x00001f28, 0x80000300, 0x00001f29,
+	0x80000300, 0x00001f28, 0x80000301, 0x00001f29,
+	0x80000301, 0x00001f28, 0x80000342, 0x00001f29,
+	0x80000342, 0x000003b9, 0x80000313, 0x000003b9,
+	0x80000314, 0x00001f30, 0x80000300, 0x00001f31,
+	0x80000300, 0x00001f30, 0x80000301, 0x00001f31,
+	0x80000301, 0x00001f30, 0x80000342, 0x00001f31,
+	0x80000342, 0x00000399, 0x80000313, 0x00000399,
+	0x80000314, 0x00001f38, 0x80000300, 0x00001f39,
+	0x80000300, 0x00001f38, 0x80000301, 0x00001f39,
+	0x80000301, 0x00001f38, 0x80000342, 0x00001f39,
+	0x80000342, 0x000003bf, 0x80000313, 0x000003bf,
+	0x80000314, 0x00001f40, 0x80000300, 0x00001f41,
+	0x80000300, 0x00001f40, 0x80000301, 0x00001f41,
+	0x80000301, 0x0000039f, 0x80000313, 0x0000039f,
+	0x80000314, 0x00001f48, 0x80000300, 0x00001f49,
+	0x80000300, 0x00001f48, 0x80000301, 0x00001f49,
+	0x80000301, 0x000003c5, 0x80000313, 0x000003c5,
+	0x80000314, 0x00001f50, 0x80000300, 0x00001f51,
+	0x80000300, 0x00001f50, 0x80000301, 0x00001f51,
+	0x80000301, 0x00001f50, 0x80000342, 0x00001f51,
+	0x80000342, 0x000003a5, 0x80000314, 0x00001f59,
+	0x80000300, 0x00001f59, 0x80000301, 0x00001f59,
+	0x80000342, 0x000003c9, 0x80000313, 0x000003c9,
+	0x80000314, 0x00001f60, 0x80000300, 0x00001f61,
+	0x80000300, 0x00001f60, 0x80000301, 0x00001f61,
+	0x80000301, 0x00001f60, 0x80000342, 0x00001f61,
+	0x80000342, 0x000003a9, 0x80000313, 0x000003a9,
+	0x80000314, 0x00001f68, 0x80000300, 0x00001f69,
+	0x80000300, 0x00001f68, 0x80000301, 0x00001f69,
+	0x80000301, 0x00001f68, 0x80000342, 0x00001f69,
+	0x80000342, 0x000003b1, 0x80000300, 0x800003ac,
+	0x000003b5, 0x80000300, 0x800003ad, 0x000003b7,
+	0x80000300, 0x800003ae, 0x000003b9, 0x80000300,
+	0x800003af, 0x000003bf, 0x80000300, 0x800003cc,
+	0x000003c5, 0x80000300, 0x800003cd, 0x000003c9,
+	0x80000300, 0x800003ce, 0x00001f00, 0x80000345,
+	0x00001f01, 0x80000345, 0x00001f02, 0x80000345,
+	0x00001f03, 0x80000345, 0x00001f04, 0x80000345,
+	0x00001f05, 0x80000345, 0x00001f06, 0x80000345,
+	0x00001f07, 0x80000345, 0x00001f08, 0x80000345,
+	0x00001f09, 0x80000345, 0x00001f0a, 0x80000345,
+	0x00001f0b, 0x80000345, 0x00001f0c, 0x80000345,
+	0x00001f0d, 0x80000345, 0x00001f0e, 0x80000345,
+	0x00001f0f, 0x80000345, 0x00001f20, 0x80000345,
+	0x00001f21, 0x80000345, 0x00001f22, 0x80000345,
+	0x00001f23, 0x80000345, 0x00001f24, 0x80000345,
+	0x00001f25, 0x80000345, 0x00001f26, 0x80000345,
+	0x00001f27, 0x80000345, 0x00001f28, 0x80000345,
+	0x00001f29, 0x80000345, 0x00001f2a, 0x80000345,
+	0x00001f2b, 0x80000345, 0x00001f2c, 0x80000345,
+	0x00001f2d, 0x80000345, 0x00001f2e, 0x80000345,
+	0x00001f2f, 0x80000345, 0x00001f60, 0x80000345,
+	0x00001f61, 0x80000345, 0x00001f62, 0x80000345,
+	0x00001f63, 0x80000345, 0x00001f64, 0x80000345,
+	0x00001f65, 0x80000345, 0x00001f66, 0x80000345,
+	0x00001f67, 0x80000345, 0x00001f68, 0x80000345,
+	0x00001f69, 0x80000345, 0x00001f6a, 0x80000345,
+	0x00001f6b, 0x80000345, 0x00001f6c, 0x80000345,
+	0x00001f6d, 0x80000345, 0x00001f6e, 0x80000345,
+	0x00001f6f, 0x80000345, 0x000003b1, 0x80000306,
+	0x000003b1, 0x80000304, 0x00001f70, 0x80000345,
+	0x000003b1, 0x80000345, 0x000003ac, 0x80000345,
+	0x000003b1, 0x80000342, 0x00001fb6, 0x80000345,
+	0x00000391, 0x80000306, 0x00000391, 0x80000304,
+	0x00000391, 0x80000300, 0x80000386, 0x00000391,
+	0x80000345, 0x00000020, 0x80000313, 0x800003b9,
+	0x00000020, 0x80000313, 0x00000020, 0x80000342,
+	0x000000a8, 0x80000342, 0x00001f74, 0x80000345,
+	0x000003b7, 0x80000345, 0x000003ae, 0x80000345,
+	0x000003b7, 0x80000342, 0x00001fc6, 0x80000345,
+	0x00000395, 0x80000300, 0x80000388, 0x00000397,
+	0x80000300, 0x80000389, 0x00000397, 0x80000345,
+	0x00001fbf, 0x80000300, 0x00001fbf, 0x80000301,
+	0x00001fbf, 0x80000342, 0x000003b9, 0x80000306,
+	0x000003b9, 0x80000304, 0x000003ca, 0x80000300,
+	0x80000390, 0x000003b9, 0x80000342, 0x000003ca,
+	0x80000342, 0x00000399, 0x80000306, 0x00000399,
+	0x80000304, 0x00000399, 0x80000300, 0x8000038a,
+	0x00001ffe, 0x80000300, 0x00001ffe, 0x80000301,
+	0x00001ffe, 0x80000342, 0x000003c5, 0x80000306,
+	0x000003c5, 0x80000304, 0x000003cb, 0x80000300,
+	0x800003b0, 0x000003c1, 0x80000313, 0x000003c1,
+	0x80000314, 0x000003c5, 0x80000342, 0x000003cb,
+	0x80000342, 0x000003a5, 0x80000306, 0x000003a5,
+	0x80000304, 0x000003a5, 0x80000300, 0x8000038e,
+	0x000003a1, 0x80000314, 0x000000a8, 0x80000300,
+	0x80000385, 0x80000060, 0x00001f7c, 0x80000345,
+	0x000003c9, 0x80000345, 0x000003ce, 0x80000345,
+	0x000003c9, 0x80000342, 0x00001ff6, 0x80000345,
+	0x0000039f, 0x80000300, 0x8000038c, 0x000003a9,
+	0x80000300, 0x8000038f, 0x000003a9, 0x80000345,
+	0x800000b4, 0x00000020, 0x80000314, 0x80002002,
+	0x80002003, 0x80000020, 0x80000020, 0x80000020,
+	0x80000020, 0x80000020, 0x80000020, 0x80000020,
+	0x80000020, 0x80000020, 0x80002010, 0x00000020,
+	0x80000333, 0x8000002e, 0x0000002e, 0x8000002e,
+	0x0000002e, 0x0000002e, 0x8000002e, 0x80000020,
+	0x00002032, 0x80002032, 0x00002032, 0x00002032,
+	0x80002032, 0x00002035, 0x80002035, 0x00002035,
+	0x00002035, 0x80002035, 0x00000021, 0x80000021,
+	0x00000020, 0x80000305, 0x0000003f, 0x8000003f,
+	0x0000003f, 0x80000021, 0x00000021, 0x8000003f,
+	0x00002032, 0x00002032, 0x00002032, 0x80002032,
+	0x80000020, 0x80000030, 0x80000069, 0x80000034,
+	0x80000035, 0x80000036, 0x80000037, 0x80000038,
+	0x80000039, 0x8000002b, 0x80002212, 0x8000003d,
+	0x80000028, 0x80000029, 0x8000006e, 0x80000030,
+	0x80000031, 0x80000032, 0x80000033, 0x80000034,
+	0x80000035, 0x80000036, 0x80000037, 0x80000038,
+	0x80000039, 0x8000002b, 0x80002212, 0x8000003d,
+	0x80000028, 0x80000029, 0x80000061, 0x80000065,
+	0x8000006f, 0x80000078, 0x80000259, 0x00000052,
+	0x80000073, 0x00000061, 0x0000002f, 0x80000063,
+	0x00000061, 0x0000002f, 0x80000073, 0x80000043,
+	0x000000b0, 0x80000043, 0x00000063, 0x0000002f,
+	0x8000006f, 0x00000063, 0x0000002f, 0x80000075,
+	0x80000190, 0x000000b0, 0x80000046, 0x80000067,
+	0x80000048, 0x80000048, 0x80000048, 0x80000068,
+	0x80000127, 0x80000049, 0x80000049, 0x8000004c,
+	0x8000006c, 0x8000004e, 0x0000004e, 0x8000006f,
+	0x80000050, 0x80000051, 0x80000052, 0x80000052,
+	0x80000052, 0x00000053, 0x8000004d, 0x00000054,
+	0x00000045, 0x8000004c, 0x00000054, 0x8000004d,
+	0x8000005a, 0x800003a9, 0x8000005a, 0x8000004b,
+	0x800000c5, 0x80000042, 0x80000043, 0x80000065,
+	0x80000045, 0x80000046, 0x8000004d, 0x8000006f,
+	0x800005d0, 0x800005d1, 0x800005d2, 0x800005d3,
+	0x80000069, 0x00000046, 0x00000041, 0x80000058,
+	0x800003c0, 0x800003b3, 0x80000393, 0x800003a0,
+	0x80002211, 0x80000044, 0x80000064, 0x80000065,
+	0x80000069, 0x8000006a, 0x00000031, 0x00002044,
+	0x80000033, 0x00000032, 0x00002044, 0x80000033,
+	0x00000031, 0x00002044, 0x80000035, 0x00000032,
+	0x00002044, 0x80000035, 0x00000033, 0x00002044,
+	0x80000035, 0x00000034, 0x00002044, 0x80000035,
+	0x00000031, 0x00002044, 0x80000036, 0x00000035,
+	0x00002044, 0x80000036, 0x00000031, 0x00002044,
+	0x80000038, 0x00000033, 0x00002044, 0x80000038,
+	0x00000035, 0x00002044, 0x80000038, 0x00000037,
+	0x00002044, 0x80000038, 0x00000031, 0x80002044,
+	0x80000049, 0x00000049, 0x80000049, 0x00000049,
+	0x00000049, 0x80000049, 0x00000049, 0x80000056,
+	0x80000056, 0x00000056, 0x80000049, 0x00000056,
+	0x00000049, 0x80000049, 0x00000056, 0x00000049,
+	0x00000049, 0x80000049, 0x00000049, 0x80000058,
+	0x80000058, 0x00000058, 0x80000049, 0x00000058,
+	0x00000049, 0x80000049, 0x8000004c, 0x80000043,
+	0x80000044, 0x8000004d, 0x80000069, 0x00000069,
+	0x80000069, 0x00000069, 0x00000069, 0x80000069,
+	0x00000069, 0x80000076, 0x80000076, 0x00000076,
+	0x80000069, 0x00000076, 0x00000069, 0x80000069,
+	0x00000076, 0x00000069, 0x00000069, 0x80000069,
+	0x00000069, 0x80000078, 0x80000078, 0x00000078,
+	0x80000069, 0x00000078, 0x00000069, 0x80000069,
+	0x8000006c, 0x80000063, 0x80000064, 0x8000006d,
+	0x00002190, 0x80000338, 0x00002192, 0x80000338,
+	0x00002194, 0x80000338, 0x000021d0, 0x80000338,
+	0x000021d4, 0x80000338, 0x000021d2, 0x80000338,
+	0x00002203, 0x80000338, 0x00002208, 0x80000338,
+	0x0000220b, 0x80000338, 0x00002223, 0x80000338,
+	0x00002225, 0x80000338, 0x0000222b, 0x8000222b,
+	0x0000222b, 0x0000222b, 0x8000222b, 0x0000222e,
+	0x8000222e, 0x0000222e, 0x0000222e, 0x8000222e,
+	0x0000223c, 0x80000338, 0x00002243, 0x80000338,
+	0x00002245, 0x80000338, 0x00002248, 0x80000338,
+	0x0000003d, 0x80000338, 0x00002261, 0x80000338,
+	0x0000224d, 0x80000338, 0x0000003c, 0x80000338,
+	0x0000003e, 0x80000338, 0x00002264, 0x80000338,
+	0x00002265, 0x80000338, 0x00002272, 0x80000338,
+	0x00002273, 0x80000338, 0x00002276, 0x80000338,
+	0x00002277, 0x80000338, 0x0000227a, 0x80000338,
+	0x0000227b, 0x80000338, 0x00002282, 0x80000338,
+	0x00002283, 0x80000338, 0x00002286, 0x80000338,
+	0x00002287, 0x80000338, 0x000022a2, 0x80000338,
+	0x000022a8, 0x80000338, 0x000022a9, 0x80000338,
+	0x000022ab, 0x80000338, 0x0000227c, 0x80000338,
+	0x0000227d, 0x80000338, 0x00002291, 0x80000338,
+	0x00002292, 0x80000338, 0x000022b2, 0x80000338,
+	0x000022b3, 0x80000338, 0x000022b4, 0x80000338,
+	0x000022b5, 0x80000338, 0x80003008, 0x80003009,
+	0x80000031, 0x80000032, 0x80000033, 0x80000034,
+	0x80000035, 0x80000036, 0x80000037, 0x80000038,
+	0x80000039, 0x00000031, 0x80000030, 0x00000031,
+	0x80000031, 0x00000031, 0x80000032, 0x00000031,
+	0x80000033, 0x00000031, 0x80000034, 0x00000031,
+	0x80000035, 0x00000031, 0x80000036, 0x00000031,
+	0x80000037, 0x00000031, 0x80000038, 0x00000031,
+	0x80000039, 0x00000032, 0x80000030, 0x00000028,
+	0x00000031, 0x80000029, 0x00000028, 0x00000032,
+	0x80000029, 0x00000028, 0x00000033, 0x80000029,
+	0x00000028, 0x00000034, 0x80000029, 0x00000028,
+	0x00000035, 0x80000029, 0x00000028, 0x00000036,
+	0x80000029, 0x00000028, 0x00000037, 0x80000029,
+	0x00000028, 0x00000038, 0x80000029, 0x00000028,
+	0x00000039, 0x80000029, 0x00000028, 0x00000031,
+	0x00000030, 0x80000029, 0x00000028, 0x00000031,
+	0x00000031, 0x80000029, 0x00000028, 0x00000031,
+	0x00000032, 0x80000029, 0x00000028, 0x00000031,
+	0x00000033, 0x80000029, 0x00000028, 0x00000031,
+	0x00000034, 0x80000029, 0x00000028, 0x00000031,
+	0x00000035, 0x80000029, 0x00000028, 0x00000031,
+	0x00000036, 0x80000029, 0x00000028, 0x00000031,
+	0x00000037, 0x80000029, 0x00000028, 0x00000031,
+	0x00000038, 0x80000029, 0x00000028, 0x00000031,
+	0x00000039, 0x80000029, 0x00000028, 0x00000032,
+	0x00000030, 0x80000029, 0x00000031, 0x8000002e,
+	0x00000032, 0x8000002e, 0x00000033, 0x8000002e,
+	0x00000034, 0x8000002e, 0x00000035, 0x8000002e,
+	0x00000036, 0x8000002e, 0x00000037, 0x8000002e,
+	0x00000038, 0x8000002e, 0x00000039, 0x8000002e,
+	0x00000031, 0x00000030, 0x8000002e, 0x00000031,
+	0x00000031, 0x8000002e, 0x00000031, 0x00000032,
+	0x8000002e, 0x00000031, 0x00000033, 0x8000002e,
+	0x00000031, 0x00000034, 0x8000002e, 0x00000031,
+	0x00000035, 0x8000002e, 0x00000031, 0x00000036,
+	0x8000002e, 0x00000031, 0x00000037, 0x8000002e,
+	0x00000031, 0x00000038, 0x8000002e, 0x00000031,
+	0x00000039, 0x8000002e, 0x00000032, 0x00000030,
+	0x8000002e, 0x00000028, 0x00000061, 0x80000029,
+	0x00000028, 0x00000062, 0x80000029, 0x00000028,
+	0x00000063, 0x80000029, 0x00000028, 0x00000064,
+	0x80000029, 0x00000028, 0x00000065, 0x80000029,
+	0x00000028, 0x00000066, 0x80000029, 0x00000028,
+	0x00000067, 0x80000029, 0x00000028, 0x00000068,
+	0x80000029, 0x00000028, 0x00000069, 0x80000029,
+	0x00000028, 0x0000006a, 0x80000029, 0x00000028,
+	0x0000006b, 0x80000029, 0x00000028, 0x0000006c,
+	0x80000029, 0x00000028, 0x0000006d, 0x80000029,
+	0x00000028, 0x0000006e, 0x80000029, 0x00000028,
+	0x0000006f, 0x80000029, 0x00000028, 0x00000070,
+	0x80000029, 0x00000028, 0x00000071, 0x80000029,
+	0x00000028, 0x00000072, 0x80000029, 0x00000028,
+	0x00000073, 0x80000029, 0x00000028, 0x00000074,
+	0x80000029, 0x00000028, 0x00000075, 0x80000029,
+	0x00000028, 0x00000076, 0x80000029, 0x00000028,
+	0x00000077, 0x80000029, 0x00000028, 0x00000078,
+	0x80000029, 0x00000028, 0x00000079, 0x80000029,
+	0x00000028, 0x0000007a, 0x80000029, 0x80000041,
+	0x80000042, 0x80000043, 0x80000044, 0x80000045,
+	0x80000046, 0x80000047, 0x80000048, 0x80000049,
+	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
+	0x8000004e, 0x8000004f, 0x80000050, 0x80000051,
+	0x80000052, 0x80000053, 0x80000054, 0x80000055,
+	0x80000056, 0x80000057, 0x80000058, 0x80000059,
+	0x8000005a, 0x80000061, 0x80000062, 0x80000063,
+	0x80000064, 0x80000065, 0x80000066, 0x80000067,
+	0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
+	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
+	0x80000070, 0x80000071, 0x80000072, 0x80000073,
+	0x80000074, 0x80000075, 0x80000076, 0x80000077,
+	0x80000078, 0x80000079, 0x8000007a, 0x80000030,
+	0x0000222b, 0x0000222b, 0x0000222b, 0x8000222b,
+	0x0000003a, 0x0000003a, 0x8000003d, 0x0000003d,
+	0x8000003d, 0x0000003d, 0x0000003d, 0x8000003d,
+	0x00002add, 0x80000338, 0x80002d61, 0x80006bcd,
+	0x80009f9f, 0x80004e00, 0x80004e28, 0x80004e36,
+	0x80004e3f, 0x80004e59, 0x80004e85, 0x80004e8c,
+	0x80004ea0, 0x80004eba, 0x8000513f, 0x80005165,
+	0x8000516b, 0x80005182, 0x80005196, 0x800051ab,
+	0x800051e0, 0x800051f5, 0x80005200, 0x8000529b,
+	0x800052f9, 0x80005315, 0x8000531a, 0x80005338,
+	0x80005341, 0x8000535c, 0x80005369, 0x80005382,
+	0x800053b6, 0x800053c8, 0x800053e3, 0x800056d7,
+	0x8000571f, 0x800058eb, 0x80005902, 0x8000590a,
+	0x80005915, 0x80005927, 0x80005973, 0x80005b50,
+	0x80005b80, 0x80005bf8, 0x80005c0f, 0x80005c22,
+	0x80005c38, 0x80005c6e, 0x80005c71, 0x80005ddb,
+	0x80005de5, 0x80005df1, 0x80005dfe, 0x80005e72,
+	0x80005e7a, 0x80005e7f, 0x80005ef4, 0x80005efe,
+	0x80005f0b, 0x80005f13, 0x80005f50, 0x80005f61,
+	0x80005f73, 0x80005fc3, 0x80006208, 0x80006236,
+	0x8000624b, 0x8000652f, 0x80006534, 0x80006587,
+	0x80006597, 0x800065a4, 0x800065b9, 0x800065e0,
+	0x800065e5, 0x800066f0, 0x80006708, 0x80006728,
+	0x80006b20, 0x80006b62, 0x80006b79, 0x80006bb3,
+	0x80006bcb, 0x80006bd4, 0x80006bdb, 0x80006c0f,
+	0x80006c14, 0x80006c34, 0x8000706b, 0x8000722a,
+	0x80007236, 0x8000723b, 0x8000723f, 0x80007247,
+	0x80007259, 0x8000725b, 0x800072ac, 0x80007384,
+	0x80007389, 0x800074dc, 0x800074e6, 0x80007518,
+	0x8000751f, 0x80007528, 0x80007530, 0x8000758b,
+	0x80007592, 0x80007676, 0x8000767d, 0x800076ae,
+	0x800076bf, 0x800076ee, 0x800077db, 0x800077e2,
+	0x800077f3, 0x8000793a, 0x800079b8, 0x800079be,
+	0x80007a74, 0x80007acb, 0x80007af9, 0x80007c73,
+	0x80007cf8, 0x80007f36, 0x80007f51, 0x80007f8a,
+	0x80007fbd, 0x80008001, 0x8000800c, 0x80008012,
+	0x80008033, 0x8000807f, 0x80008089, 0x800081e3,
+	0x800081ea, 0x800081f3, 0x800081fc, 0x8000820c,
+	0x8000821b, 0x8000821f, 0x8000826e, 0x80008272,
+	0x80008278, 0x8000864d, 0x8000866b, 0x80008840,
+	0x8000884c, 0x80008863, 0x8000897e, 0x8000898b,
+	0x800089d2, 0x80008a00, 0x80008c37, 0x80008c46,
+	0x80008c55, 0x80008c78, 0x80008c9d, 0x80008d64,
+	0x80008d70, 0x80008db3, 0x80008eab, 0x80008eca,
+	0x80008f9b, 0x80008fb0, 0x80008fb5, 0x80009091,
+	0x80009149, 0x800091c6, 0x800091cc, 0x800091d1,
+	0x80009577, 0x80009580, 0x8000961c, 0x800096b6,
+	0x800096b9, 0x800096e8, 0x80009751, 0x8000975e,
+	0x80009762, 0x80009769, 0x800097cb, 0x800097ed,
+	0x800097f3, 0x80009801, 0x800098a8, 0x800098db,
+	0x800098df, 0x80009996, 0x80009999, 0x800099ac,
+	0x80009aa8, 0x80009ad8, 0x80009adf, 0x80009b25,
+	0x80009b2f, 0x80009b32, 0x80009b3c, 0x80009b5a,
+	0x80009ce5, 0x80009e75, 0x80009e7f, 0x80009ea5,
+	0x80009ebb, 0x80009ec3, 0x80009ecd, 0x80009ed1,
+	0x80009ef9, 0x80009efd, 0x80009f0e, 0x80009f13,
+	0x80009f20, 0x80009f3b, 0x80009f4a, 0x80009f52,
+	0x80009f8d, 0x80009f9c, 0x80009fa0, 0x80000020,
+	0x80003012, 0x80005341, 0x80005344, 0x80005345,
+	0x0000304b, 0x80003099, 0x0000304d, 0x80003099,
+	0x0000304f, 0x80003099, 0x00003051, 0x80003099,
+	0x00003053, 0x80003099, 0x00003055, 0x80003099,
+	0x00003057, 0x80003099, 0x00003059, 0x80003099,
+	0x0000305b, 0x80003099, 0x0000305d, 0x80003099,
+	0x0000305f, 0x80003099, 0x00003061, 0x80003099,
+	0x00003064, 0x80003099, 0x00003066, 0x80003099,
+	0x00003068, 0x80003099, 0x0000306f, 0x80003099,
+	0x0000306f, 0x8000309a, 0x00003072, 0x80003099,
+	0x00003072, 0x8000309a, 0x00003075, 0x80003099,
+	0x00003075, 0x8000309a, 0x00003078, 0x80003099,
+	0x00003078, 0x8000309a, 0x0000307b, 0x80003099,
+	0x0000307b, 0x8000309a, 0x00003046, 0x80003099,
+	0x00000020, 0x80003099, 0x00000020, 0x8000309a,
+	0x0000309d, 0x80003099, 0x00003088, 0x8000308a,
+	0x000030ab, 0x80003099, 0x000030ad, 0x80003099,
+	0x000030af, 0x80003099, 0x000030b1, 0x80003099,
+	0x000030b3, 0x80003099, 0x000030b5, 0x80003099,
+	0x000030b7, 0x80003099, 0x000030b9, 0x80003099,
+	0x000030bb, 0x80003099, 0x000030bd, 0x80003099,
+	0x000030bf, 0x80003099, 0x000030c1, 0x80003099,
+	0x000030c4, 0x80003099, 0x000030c6, 0x80003099,
+	0x000030c8, 0x80003099, 0x000030cf, 0x80003099,
+	0x000030cf, 0x8000309a, 0x000030d2, 0x80003099,
+	0x000030d2, 0x8000309a, 0x000030d5, 0x80003099,
+	0x000030d5, 0x8000309a, 0x000030d8, 0x80003099,
+	0x000030d8, 0x8000309a, 0x000030db, 0x80003099,
+	0x000030db, 0x8000309a, 0x000030a6, 0x80003099,
+	0x000030ef, 0x80003099, 0x000030f0, 0x80003099,
+	0x000030f1, 0x80003099, 0x000030f2, 0x80003099,
+	0x000030fd, 0x80003099, 0x000030b3, 0x800030c8,
+	0x80001100, 0x80001101, 0x800011aa, 0x80001102,
+	0x800011ac, 0x800011ad, 0x80001103, 0x80001104,
+	0x80001105, 0x800011b0, 0x800011b1, 0x800011b2,
+	0x800011b3, 0x800011b4, 0x800011b5, 0x8000111a,
+	0x80001106, 0x80001107, 0x80001108, 0x80001121,
+	0x80001109, 0x8000110a, 0x8000110b, 0x8000110c,
+	0x8000110d, 0x8000110e, 0x8000110f, 0x80001110,
+	0x80001111, 0x80001112, 0x80001161, 0x80001162,
+	0x80001163, 0x80001164, 0x80001165, 0x80001166,
+	0x80001167, 0x80001168, 0x80001169, 0x8000116a,
+	0x8000116b, 0x8000116c, 0x8000116d, 0x8000116e,
+	0x8000116f, 0x80001170, 0x80001171, 0x80001172,
+	0x80001173, 0x80001174, 0x80001175, 0x80001160,
+	0x80001114, 0x80001115, 0x800011c7, 0x800011c8,
+	0x800011cc, 0x800011ce, 0x800011d3, 0x800011d7,
+	0x800011d9, 0x8000111c, 0x800011dd, 0x800011df,
+	0x8000111d, 0x8000111e, 0x80001120, 0x80001122,
+	0x80001123, 0x80001127, 0x80001129, 0x8000112b,
+	0x8000112c, 0x8000112d, 0x8000112e, 0x8000112f,
+	0x80001132, 0x80001136, 0x80001140, 0x80001147,
+	0x8000114c, 0x800011f1, 0x800011f2, 0x80001157,
+	0x80001158, 0x80001159, 0x80001184, 0x80001185,
+	0x80001188, 0x80001191, 0x80001192, 0x80001194,
+	0x8000119e, 0x800011a1, 0x80004e00, 0x80004e8c,
+	0x80004e09, 0x800056db, 0x80004e0a, 0x80004e2d,
+	0x80004e0b, 0x80007532, 0x80004e59, 0x80004e19,
+	0x80004e01, 0x80005929, 0x80005730, 0x80004eba,
+	0x00000028, 0x00001100, 0x80000029, 0x00000028,
+	0x00001102, 0x80000029, 0x00000028, 0x00001103,
+	0x80000029, 0x00000028, 0x00001105, 0x80000029,
+	0x00000028, 0x00001106, 0x80000029, 0x00000028,
+	0x00001107, 0x80000029, 0x00000028, 0x00001109,
+	0x80000029, 0x00000028, 0x0000110b, 0x80000029,
+	0x00000028, 0x0000110c, 0x80000029, 0x00000028,
+	0x0000110e, 0x80000029, 0x00000028, 0x0000110f,
+	0x80000029, 0x00000028, 0x00001110, 0x80000029,
+	0x00000028, 0x00001111, 0x80000029, 0x00000028,
+	0x00001112, 0x80000029, 0x00000028, 0x00001100,
+	0x00001161, 0x80000029, 0x00000028, 0x00001102,
+	0x00001161, 0x80000029, 0x00000028, 0x00001103,
+	0x00001161, 0x80000029, 0x00000028, 0x00001105,
+	0x00001161, 0x80000029, 0x00000028, 0x00001106,
+	0x00001161, 0x80000029, 0x00000028, 0x00001107,
+	0x00001161, 0x80000029, 0x00000028, 0x00001109,
+	0x00001161, 0x80000029, 0x00000028, 0x0000110b,
+	0x00001161, 0x80000029, 0x00000028, 0x0000110c,
+	0x00001161, 0x80000029, 0x00000028, 0x0000110e,
+	0x00001161, 0x80000029, 0x00000028, 0x0000110f,
+	0x00001161, 0x80000029, 0x00000028, 0x00001110,
+	0x00001161, 0x80000029, 0x00000028, 0x00001111,
+	0x00001161, 0x80000029, 0x00000028, 0x00001112,
+	0x00001161, 0x80000029, 0x00000028, 0x0000110c,
+	0x0000116e, 0x80000029, 0x00000028, 0x0000110b,
+	0x00001169, 0x0000110c, 0x00001165, 0x000011ab,
+	0x80000029, 0x00000028, 0x0000110b, 0x00001169,
+	0x00001112, 0x0000116e, 0x80000029, 0x00000028,
+	0x00004e00, 0x80000029, 0x00000028, 0x00004e8c,
+	0x80000029, 0x00000028, 0x00004e09, 0x80000029,
+	0x00000028, 0x000056db, 0x80000029, 0x00000028,
+	0x00004e94, 0x80000029, 0x00000028, 0x0000516d,
+	0x80000029, 0x00000028, 0x00004e03, 0x80000029,
+	0x00000028, 0x0000516b, 0x80000029, 0x00000028,
+	0x00004e5d, 0x80000029, 0x00000028, 0x00005341,
+	0x80000029, 0x00000028, 0x00006708, 0x80000029,
+	0x00000028, 0x0000706b, 0x80000029, 0x00000028,
+	0x00006c34, 0x80000029, 0x00000028, 0x00006728,
+	0x80000029, 0x00000028, 0x000091d1, 0x80000029,
+	0x00000028, 0x0000571f, 0x80000029, 0x00000028,
+	0x000065e5, 0x80000029, 0x00000028, 0x0000682a,
+	0x80000029, 0x00000028, 0x00006709, 0x80000029,
+	0x00000028, 0x0000793e, 0x80000029, 0x00000028,
+	0x0000540d, 0x80000029, 0x00000028, 0x00007279,
+	0x80000029, 0x00000028, 0x00008ca1, 0x80000029,
+	0x00000028, 0x0000795d, 0x80000029, 0x00000028,
+	0x000052b4, 0x80000029, 0x00000028, 0x00004ee3,
+	0x80000029, 0x00000028, 0x0000547c, 0x80000029,
+	0x00000028, 0x00005b66, 0x80000029, 0x00000028,
+	0x000076e3, 0x80000029, 0x00000028, 0x00004f01,
+	0x80000029, 0x00000028, 0x00008cc7, 0x80000029,
+	0x00000028, 0x00005354, 0x80000029, 0x00000028,
+	0x0000796d, 0x80000029, 0x00000028, 0x00004f11,
+	0x80000029, 0x00000028, 0x000081ea, 0x80000029,
+	0x00000028, 0x000081f3, 0x80000029, 0x00000050,
+	0x00000054, 0x80000045, 0x00000032, 0x80000031,
+	0x00000032, 0x80000032, 0x00000032, 0x80000033,
+	0x00000032, 0x80000034, 0x00000032, 0x80000035,
+	0x00000032, 0x80000036, 0x00000032, 0x80000037,
+	0x00000032, 0x80000038, 0x00000032, 0x80000039,
+	0x00000033, 0x80000030, 0x00000033, 0x80000031,
+	0x00000033, 0x80000032, 0x00000033, 0x80000033,
+	0x00000033, 0x80000034, 0x00000033, 0x80000035,
+	0x80001100, 0x80001102, 0x80001103, 0x80001105,
+	0x80001106, 0x80001107, 0x80001109, 0x8000110b,
+	0x8000110c, 0x8000110e, 0x8000110f, 0x80001110,
+	0x80001111, 0x80001112, 0x00001100, 0x80001161,
+	0x00001102, 0x80001161, 0x00001103, 0x80001161,
+	0x00001105, 0x80001161, 0x00001106, 0x80001161,
+	0x00001107, 0x80001161, 0x00001109, 0x80001161,
+	0x0000110b, 0x80001161, 0x0000110c, 0x80001161,
+	0x0000110e, 0x80001161, 0x0000110f, 0x80001161,
+	0x00001110, 0x80001161, 0x00001111, 0x80001161,
+	0x00001112, 0x80001161, 0x0000110e, 0x00001161,
+	0x000011b7, 0x00001100, 0x80001169, 0x0000110c,
+	0x0000116e, 0x0000110b, 0x80001174, 0x0000110b,
+	0x8000116e, 0x80004e00, 0x80004e8c, 0x80004e09,
+	0x800056db, 0x80004e94, 0x8000516d, 0x80004e03,
+	0x8000516b, 0x80004e5d, 0x80005341, 0x80006708,
+	0x8000706b, 0x80006c34, 0x80006728, 0x800091d1,
+	0x8000571f, 0x800065e5, 0x8000682a, 0x80006709,
+	0x8000793e, 0x8000540d, 0x80007279, 0x80008ca1,
+	0x8000795d, 0x800052b4, 0x800079d8, 0x80007537,
+	0x80005973, 0x80009069, 0x8000512a, 0x80005370,
+	0x80006ce8, 0x80009805, 0x80004f11, 0x80005199,
+	0x80006b63, 0x80004e0a, 0x80004e2d, 0x80004e0b,
+	0x80005de6, 0x800053f3, 0x8000533b, 0x80005b97,
+	0x80005b66, 0x800076e3, 0x80004f01, 0x80008cc7,
+	0x80005354, 0x8000591c, 0x00000033, 0x80000036,
+	0x00000033, 0x80000037, 0x00000033, 0x80000038,
+	0x00000033, 0x80000039, 0x00000034, 0x80000030,
+	0x00000034, 0x80000031, 0x00000034, 0x80000032,
+	0x00000034, 0x80000033, 0x00000034, 0x80000034,
+	0x00000034, 0x80000035, 0x00000034, 0x80000036,
+	0x00000034, 0x80000037, 0x00000034, 0x80000038,
+	0x00000034, 0x80000039, 0x00000035, 0x80000030,
+	0x00000031, 0x80006708, 0x00000032, 0x80006708,
+	0x00000033, 0x80006708, 0x00000034, 0x80006708,
+	0x00000035, 0x80006708, 0x00000036, 0x80006708,
+	0x00000037, 0x80006708, 0x00000038, 0x80006708,
+	0x00000039, 0x80006708, 0x00000031, 0x00000030,
+	0x80006708, 0x00000031, 0x00000031, 0x80006708,
+	0x00000031, 0x00000032, 0x80006708, 0x00000048,
+	0x80000067, 0x00000065, 0x00000072, 0x80000067,
+	0x00000065, 0x80000056, 0x0000004c, 0x00000054,
+	0x80000044, 0x800030a2, 0x800030a4, 0x800030a6,
+	0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad,
+	0x800030af, 0x800030b1, 0x800030b3, 0x800030b5,
+	0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd,
+	0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6,
+	0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc,
+	0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2,
+	0x800030d5, 0x800030d8, 0x800030db, 0x800030de,
+	0x800030df, 0x800030e0, 0x800030e1, 0x800030e2,
+	0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9,
+	0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed,
+	0x800030ef, 0x800030f0, 0x800030f1, 0x800030f2,
+	0x000030a2, 0x000030d1, 0x000030fc, 0x800030c8,
+	0x000030a2, 0x000030eb, 0x000030d5, 0x800030a1,
+	0x000030a2, 0x000030f3, 0x000030da, 0x800030a2,
+	0x000030a2, 0x000030fc, 0x800030eb, 0x000030a4,
+	0x000030cb, 0x000030f3, 0x800030b0, 0x000030a4,
+	0x000030f3, 0x800030c1, 0x000030a6, 0x000030a9,
+	0x800030f3, 0x000030a8, 0x000030b9, 0x000030af,
+	0x000030fc, 0x800030c9, 0x000030a8, 0x000030fc,
+	0x000030ab, 0x800030fc, 0x000030aa, 0x000030f3,
+	0x800030b9, 0x000030aa, 0x000030fc, 0x800030e0,
+	0x000030ab, 0x000030a4, 0x800030ea, 0x000030ab,
+	0x000030e9, 0x000030c3, 0x800030c8, 0x000030ab,
+	0x000030ed, 0x000030ea, 0x800030fc, 0x000030ac,
+	0x000030ed, 0x800030f3, 0x000030ac, 0x000030f3,
+	0x800030de, 0x000030ae, 0x800030ac, 0x000030ae,
+	0x000030cb, 0x800030fc, 0x000030ad, 0x000030e5,
+	0x000030ea, 0x800030fc, 0x000030ae, 0x000030eb,
+	0x000030c0, 0x800030fc, 0x000030ad, 0x800030ed,
+	0x000030ad, 0x000030ed, 0x000030b0, 0x000030e9,
+	0x800030e0, 0x000030ad, 0x000030ed, 0x000030e1,
+	0x000030fc, 0x000030c8, 0x800030eb, 0x000030ad,
+	0x000030ed, 0x000030ef, 0x000030c3, 0x800030c8,
+	0x000030b0, 0x000030e9, 0x800030e0, 0x000030b0,
+	0x000030e9, 0x000030e0, 0x000030c8, 0x800030f3,
+	0x000030af, 0x000030eb, 0x000030bc, 0x000030a4,
+	0x800030ed, 0x000030af, 0x000030ed, 0x000030fc,
+	0x800030cd, 0x000030b1, 0x000030fc, 0x800030b9,
+	0x000030b3, 0x000030eb, 0x800030ca, 0x000030b3,
+	0x000030fc, 0x800030dd, 0x000030b5, 0x000030a4,
+	0x000030af, 0x800030eb, 0x000030b5, 0x000030f3,
+	0x000030c1, 0x000030fc, 0x800030e0, 0x000030b7,
+	0x000030ea, 0x000030f3, 0x800030b0, 0x000030bb,
+	0x000030f3, 0x800030c1, 0x000030bb, 0x000030f3,
+	0x800030c8, 0x000030c0, 0x000030fc, 0x800030b9,
+	0x000030c7, 0x800030b7, 0x000030c9, 0x800030eb,
+	0x000030c8, 0x800030f3, 0x000030ca, 0x800030ce,
+	0x000030ce, 0x000030c3, 0x800030c8, 0x000030cf,
+	0x000030a4, 0x800030c4, 0x000030d1, 0x000030fc,
+	0x000030bb, 0x000030f3, 0x800030c8, 0x000030d1,
+	0x000030fc, 0x800030c4, 0x000030d0, 0x000030fc,
+	0x000030ec, 0x800030eb, 0x000030d4, 0x000030a2,
+	0x000030b9, 0x000030c8, 0x800030eb, 0x000030d4,
+	0x000030af, 0x800030eb, 0x000030d4, 0x800030b3,
+	0x000030d3, 0x800030eb, 0x000030d5, 0x000030a1,
+	0x000030e9, 0x000030c3, 0x800030c9, 0x000030d5,
+	0x000030a3, 0x000030fc, 0x800030c8, 0x000030d6,
+	0x000030c3, 0x000030b7, 0x000030a7, 0x800030eb,
+	0x000030d5, 0x000030e9, 0x800030f3, 0x000030d8,
+	0x000030af, 0x000030bf, 0x000030fc, 0x800030eb,
+	0x000030da, 0x800030bd, 0x000030da, 0x000030cb,
+	0x800030d2, 0x000030d8, 0x000030eb, 0x800030c4,
+	0x000030da, 0x000030f3, 0x800030b9, 0x000030da,
+	0x000030fc, 0x800030b8, 0x000030d9, 0x000030fc,
+	0x800030bf, 0x000030dd, 0x000030a4, 0x000030f3,
+	0x800030c8, 0x000030dc, 0x000030eb, 0x800030c8,
+	0x000030db, 0x800030f3, 0x000030dd, 0x000030f3,
+	0x800030c9, 0x000030db, 0x000030fc, 0x800030eb,
+	0x000030db, 0x000030fc, 0x800030f3, 0x000030de,
+	0x000030a4, 0x000030af, 0x800030ed, 0x000030de,
+	0x000030a4, 0x800030eb, 0x000030de, 0x000030c3,
+	0x800030cf, 0x000030de, 0x000030eb, 0x800030af,
+	0x000030de, 0x000030f3, 0x000030b7, 0x000030e7,
+	0x800030f3, 0x000030df, 0x000030af, 0x000030ed,
+	0x800030f3, 0x000030df, 0x800030ea, 0x000030df,
+	0x000030ea, 0x000030d0, 0x000030fc, 0x800030eb,
+	0x000030e1, 0x800030ac, 0x000030e1, 0x000030ac,
+	0x000030c8, 0x800030f3, 0x000030e1, 0x000030fc,
+	0x000030c8, 0x800030eb, 0x000030e4, 0x000030fc,
+	0x800030c9, 0x000030e4, 0x000030fc, 0x800030eb,
+	0x000030e6, 0x000030a2, 0x800030f3, 0x000030ea,
+	0x000030c3, 0x000030c8, 0x800030eb, 0x000030ea,
+	0x800030e9, 0x000030eb, 0x000030d4, 0x800030fc,
+	0x000030eb, 0x000030fc, 0x000030d6, 0x800030eb,
+	0x000030ec, 0x800030e0, 0x000030ec, 0x000030f3,
+	0x000030c8, 0x000030b2, 0x800030f3, 0x000030ef,
+	0x000030c3, 0x800030c8, 0x00000030, 0x800070b9,
+	0x00000031, 0x800070b9, 0x00000032, 0x800070b9,
+	0x00000033, 0x800070b9, 0x00000034, 0x800070b9,
+	0x00000035, 0x800070b9, 0x00000036, 0x800070b9,
+	0x00000037, 0x800070b9, 0x00000038, 0x800070b9,
+	0x00000039, 0x800070b9, 0x00000031, 0x00000030,
+	0x800070b9, 0x00000031, 0x00000031, 0x800070b9,
+	0x00000031, 0x00000032, 0x800070b9, 0x00000031,
+	0x00000033, 0x800070b9, 0x00000031, 0x00000034,
+	0x800070b9, 0x00000031, 0x00000035, 0x800070b9,
+	0x00000031, 0x00000036, 0x800070b9, 0x00000031,
+	0x00000037, 0x800070b9, 0x00000031, 0x00000038,
+	0x800070b9, 0x00000031, 0x00000039, 0x800070b9,
+	0x00000032, 0x00000030, 0x800070b9, 0x00000032,
+	0x00000031, 0x800070b9, 0x00000032, 0x00000032,
+	0x800070b9, 0x00000032, 0x00000033, 0x800070b9,
+	0x00000032, 0x00000034, 0x800070b9, 0x00000068,
+	0x00000050, 0x80000061, 0x00000064, 0x80000061,
+	0x00000041, 0x80000055, 0x00000062, 0x00000061,
+	0x80000072, 0x0000006f, 0x80000056, 0x00000070,
+	0x80000063, 0x00000064, 0x8000006d, 0x00000064,
+	0x0000006d, 0x800000b2, 0x00000064, 0x0000006d,
+	0x800000b3, 0x00000049, 0x80000055, 0x00005e73,
+	0x80006210, 0x0000662d, 0x8000548c, 0x00005927,
+	0x80006b63, 0x0000660e, 0x80006cbb, 0x0000682a,
+	0x00005f0f, 0x00004f1a, 0x8000793e, 0x00000070,
+	0x80000041, 0x0000006e, 0x80000041, 0x000003bc,
+	0x80000041, 0x0000006d, 0x80000041, 0x0000006b,
+	0x80000041, 0x0000004b, 0x80000042, 0x0000004d,
+	0x80000042, 0x00000047, 0x80000042, 0x00000063,
+	0x00000061, 0x8000006c, 0x0000006b, 0x00000063,
+	0x00000061, 0x8000006c, 0x00000070, 0x80000046,
+	0x0000006e, 0x80000046, 0x000003bc, 0x80000046,
+	0x000003bc, 0x80000067, 0x0000006d, 0x80000067,
+	0x0000006b, 0x80000067, 0x00000048, 0x8000007a,
+	0x0000006b, 0x00000048, 0x8000007a, 0x0000004d,
+	0x00000048, 0x8000007a, 0x00000047, 0x00000048,
+	0x8000007a, 0x00000054, 0x00000048, 0x8000007a,
+	0x000003bc, 0x80002113, 0x0000006d, 0x80002113,
+	0x00000064, 0x80002113, 0x0000006b, 0x80002113,
+	0x00000066, 0x8000006d, 0x0000006e, 0x8000006d,
+	0x000003bc, 0x8000006d, 0x0000006d, 0x8000006d,
+	0x00000063, 0x8000006d, 0x0000006b, 0x8000006d,
+	0x0000006d, 0x0000006d, 0x800000b2, 0x00000063,
+	0x0000006d, 0x800000b2, 0x0000006d, 0x800000b2,
+	0x0000006b, 0x0000006d, 0x800000b2, 0x0000006d,
+	0x0000006d, 0x800000b3, 0x00000063, 0x0000006d,
+	0x800000b3, 0x0000006d, 0x800000b3, 0x0000006b,
+	0x0000006d, 0x800000b3, 0x0000006d, 0x00002215,
+	0x80000073, 0x0000006d, 0x00002215, 0x00000073,
+	0x800000b2, 0x00000050, 0x80000061, 0x0000006b,
+	0x00000050, 0x80000061, 0x0000004d, 0x00000050,
+	0x80000061, 0x00000047, 0x00000050, 0x80000061,
+	0x00000072, 0x00000061, 0x80000064, 0x00000072,
+	0x00000061, 0x00000064, 0x00002215, 0x80000073,
+	0x00000072, 0x00000061, 0x00000064, 0x00002215,
+	0x00000073, 0x800000b2, 0x00000070, 0x80000073,
+	0x0000006e, 0x80000073, 0x000003bc, 0x80000073,
+	0x0000006d, 0x80000073, 0x00000070, 0x80000056,
+	0x0000006e, 0x80000056, 0x000003bc, 0x80000056,
+	0x0000006d, 0x80000056, 0x0000006b, 0x80000056,
+	0x0000004d, 0x80000056, 0x00000070, 0x80000057,
+	0x0000006e, 0x80000057, 0x000003bc, 0x80000057,
+	0x0000006d, 0x80000057, 0x0000006b, 0x80000057,
+	0x0000004d, 0x80000057, 0x0000006b, 0x800003a9,
+	0x0000004d, 0x800003a9, 0x00000061, 0x0000002e,
+	0x0000006d, 0x8000002e, 0x00000042, 0x80000071,
+	0x00000063, 0x80000063, 0x00000063, 0x80000064,
+	0x00000043, 0x00002215, 0x0000006b, 0x80000067,
+	0x00000043, 0x0000006f, 0x8000002e, 0x00000064,
+	0x80000042, 0x00000047, 0x80000079, 0x00000068,
+	0x80000061, 0x00000048, 0x80000050, 0x00000069,
+	0x8000006e, 0x0000004b, 0x8000004b, 0x0000004b,
+	0x8000004d, 0x0000006b, 0x80000074, 0x0000006c,
+	0x8000006d, 0x0000006c, 0x8000006e, 0x0000006c,
+	0x0000006f, 0x80000067, 0x0000006c, 0x80000078,
+	0x0000006d, 0x80000062, 0x0000006d, 0x00000069,
+	0x8000006c, 0x0000006d, 0x0000006f, 0x8000006c,
+	0x00000050, 0x80000048, 0x00000070, 0x0000002e,
+	0x0000006d, 0x8000002e, 0x00000050, 0x00000050,
+	0x8000004d, 0x00000050, 0x80000052, 0x00000073,
+	0x80000072, 0x00000053, 0x80000076, 0x00000057,
+	0x80000062, 0x00000056, 0x00002215, 0x8000006d,
+	0x00000041, 0x00002215, 0x8000006d, 0x00000031,
+	0x800065e5, 0x00000032, 0x800065e5, 0x00000033,
+	0x800065e5, 0x00000034, 0x800065e5, 0x00000035,
+	0x800065e5, 0x00000036, 0x800065e5, 0x00000037,
+	0x800065e5, 0x00000038, 0x800065e5, 0x00000039,
+	0x800065e5, 0x00000031, 0x00000030, 0x800065e5,
+	0x00000031, 0x00000031, 0x800065e5, 0x00000031,
+	0x00000032, 0x800065e5, 0x00000031, 0x00000033,
+	0x800065e5, 0x00000031, 0x00000034, 0x800065e5,
+	0x00000031, 0x00000035, 0x800065e5, 0x00000031,
+	0x00000036, 0x800065e5, 0x00000031, 0x00000037,
+	0x800065e5, 0x00000031, 0x00000038, 0x800065e5,
+	0x00000031, 0x00000039, 0x800065e5, 0x00000032,
+	0x00000030, 0x800065e5, 0x00000032, 0x00000031,
+	0x800065e5, 0x00000032, 0x00000032, 0x800065e5,
+	0x00000032, 0x00000033, 0x800065e5, 0x00000032,
+	0x00000034, 0x800065e5, 0x00000032, 0x00000035,
+	0x800065e5, 0x00000032, 0x00000036, 0x800065e5,
+	0x00000032, 0x00000037, 0x800065e5, 0x00000032,
+	0x00000038, 0x800065e5, 0x00000032, 0x00000039,
+	0x800065e5, 0x00000033, 0x00000030, 0x800065e5,
+	0x00000033, 0x00000031, 0x800065e5, 0x00000067,
+	0x00000061, 0x8000006c, 0x80008c48, 0x800066f4,
+	0x80008eca, 0x80008cc8, 0x80006ed1, 0x80004e32,
+	0x800053e5, 0x80009f9c, 0x80009f9c, 0x80005951,
+	0x800091d1, 0x80005587, 0x80005948, 0x800061f6,
+	0x80007669, 0x80007f85, 0x8000863f, 0x800087ba,
+	0x800088f8, 0x8000908f, 0x80006a02, 0x80006d1b,
+	0x800070d9, 0x800073de, 0x8000843d, 0x8000916a,
+	0x800099f1, 0x80004e82, 0x80005375, 0x80006b04,
+	0x8000721b, 0x8000862d, 0x80009e1e, 0x80005d50,
+	0x80006feb, 0x800085cd, 0x80008964, 0x800062c9,
+	0x800081d8, 0x8000881f, 0x80005eca, 0x80006717,
+	0x80006d6a, 0x800072fc, 0x800090ce, 0x80004f86,
+	0x800051b7, 0x800052de, 0x800064c4, 0x80006ad3,
+	0x80007210, 0x800076e7, 0x80008001, 0x80008606,
+	0x8000865c, 0x80008def, 0x80009732, 0x80009b6f,
+	0x80009dfa, 0x8000788c, 0x8000797f, 0x80007da0,
+	0x800083c9, 0x80009304, 0x80009e7f, 0x80008ad6,
+	0x800058df, 0x80005f04, 0x80007c60, 0x8000807e,
+	0x80007262, 0x800078ca, 0x80008cc2, 0x800096f7,
+	0x800058d8, 0x80005c62, 0x80006a13, 0x80006dda,
+	0x80006f0f, 0x80007d2f, 0x80007e37, 0x8000964b,
+	0x800052d2, 0x8000808b, 0x800051dc, 0x800051cc,
+	0x80007a1c, 0x80007dbe, 0x800083f1, 0x80009675,
+	0x80008b80, 0x800062cf, 0x80006a02, 0x80008afe,
+	0x80004e39, 0x80005be7, 0x80006012, 0x80007387,
+	0x80007570, 0x80005317, 0x800078fb, 0x80004fbf,
+	0x80005fa9, 0x80004e0d, 0x80006ccc, 0x80006578,
+	0x80007d22, 0x800053c3, 0x8000585e, 0x80007701,
+	0x80008449, 0x80008aaa, 0x80006bba, 0x80008fb0,
+	0x80006c88, 0x800062fe, 0x800082e5, 0x800063a0,
+	0x80007565, 0x80004eae, 0x80005169, 0x800051c9,
+	0x80006881, 0x80007ce7, 0x8000826f, 0x80008ad2,
+	0x800091cf, 0x800052f5, 0x80005442, 0x80005973,
+	0x80005eec, 0x800065c5, 0x80006ffe, 0x8000792a,
+	0x800095ad, 0x80009a6a, 0x80009e97, 0x80009ece,
+	0x8000529b, 0x800066c6, 0x80006b77, 0x80008f62,
+	0x80005e74, 0x80006190, 0x80006200, 0x8000649a,
+	0x80006f23, 0x80007149, 0x80007489, 0x800079ca,
+	0x80007df4, 0x8000806f, 0x80008f26, 0x800084ee,
+	0x80009023, 0x8000934a, 0x80005217, 0x800052a3,
+	0x800054bd, 0x800070c8, 0x800088c2, 0x80008aaa,
+	0x80005ec9, 0x80005ff5, 0x8000637b, 0x80006bae,
+	0x80007c3e, 0x80007375, 0x80004ee4, 0x800056f9,
+	0x80005be7, 0x80005dba, 0x8000601c, 0x800073b2,
+	0x80007469, 0x80007f9a, 0x80008046, 0x80009234,
+	0x800096f6, 0x80009748, 0x80009818, 0x80004f8b,
+	0x800079ae, 0x800091b4, 0x800096b8, 0x800060e1,
+	0x80004e86, 0x800050da, 0x80005bee, 0x80005c3f,
+	0x80006599, 0x80006a02, 0x800071ce, 0x80007642,
+	0x800084fc, 0x8000907c, 0x80009f8d, 0x80006688,
+	0x8000962e, 0x80005289, 0x8000677b, 0x800067f3,
+	0x80006d41, 0x80006e9c, 0x80007409, 0x80007559,
+	0x8000786b, 0x80007d10, 0x8000985e, 0x8000516d,
+	0x8000622e, 0x80009678, 0x8000502b, 0x80005d19,
+	0x80006dea, 0x80008f2a, 0x80005f8b, 0x80006144,
+	0x80006817, 0x80007387, 0x80009686, 0x80005229,
+	0x8000540f, 0x80005c65, 0x80006613, 0x8000674e,
+	0x800068a8, 0x80006ce5, 0x80007406, 0x800075e2,
+	0x80007f79, 0x800088cf, 0x800088e1, 0x800091cc,
+	0x800096e2, 0x8000533f, 0x80006eba, 0x8000541d,
+	0x800071d0, 0x80007498, 0x800085fa, 0x800096a3,
+	0x80009c57, 0x80009e9f, 0x80006797, 0x80006dcb,
+	0x800081e8, 0x80007acb, 0x80007b20, 0x80007c92,
+	0x800072c0, 0x80007099, 0x80008b58, 0x80004ec0,
+	0x80008336, 0x8000523a, 0x80005207, 0x80005ea6,
+	0x800062d3, 0x80007cd6, 0x80005b85, 0x80006d1e,
+	0x800066b4, 0x80008f3b, 0x8000884c, 0x8000964d,
+	0x8000898b, 0x80005ed3, 0x80005140, 0x800055c0,
+	0x8000585a, 0x80006674, 0x800051de, 0x8000732a,
+	0x800076ca, 0x8000793c, 0x8000795e, 0x80007965,
+	0x8000798f, 0x80009756, 0x80007cbe, 0x80007fbd,
+	0x80008612, 0x80008af8, 0x80009038, 0x800090fd,
+	0x800098ef, 0x800098fc, 0x80009928, 0x80009db4,
+	0x80004fae, 0x800050e7, 0x8000514d, 0x800052c9,
+	0x800052e4, 0x80005351, 0x8000559d, 0x80005606,
+	0x80005668, 0x80005840, 0x800058a8, 0x80005c64,
+	0x80005c6e, 0x80006094, 0x80006168, 0x8000618e,
+	0x800061f2, 0x8000654f, 0x800065e2, 0x80006691,
+	0x80006885, 0x80006d77, 0x80006e1a, 0x80006f22,
+	0x8000716e, 0x8000722b, 0x80007422, 0x80007891,
+	0x8000793e, 0x80007949, 0x80007948, 0x80007950,
+	0x80007956, 0x8000795d, 0x8000798d, 0x8000798e,
+	0x80007a40, 0x80007a81, 0x80007bc0, 0x80007df4,
+	0x80007e09, 0x80007e41, 0x80007f72, 0x80008005,
+	0x800081ed, 0x80008279, 0x80008279, 0x80008457,
+	0x80008910, 0x80008996, 0x80008b01, 0x80008b39,
+	0x80008cd3, 0x80008d08, 0x80008fb6, 0x80009038,
+	0x800096e3, 0x800097ff, 0x8000983b, 0x80004e26,
+	0x800051b5, 0x80005168, 0x80004f80, 0x80005145,
+	0x80005180, 0x800052c7, 0x800052fa, 0x8000559d,
+	0x80005555, 0x80005599, 0x800055e2, 0x8000585a,
+	0x800058b3, 0x80005944, 0x80005954, 0x80005a62,
+	0x80005b28, 0x80005ed2, 0x80005ed9, 0x80005f69,
+	0x80005fad, 0x800060d8, 0x8000614e, 0x80006108,
+	0x8000618e, 0x80006160, 0x800061f2, 0x80006234,
+	0x800063c4, 0x8000641c, 0x80006452, 0x80006556,
+	0x80006674, 0x80006717, 0x8000671b, 0x80006756,
+	0x80006b79, 0x80006bba, 0x80006d41, 0x80006edb,
+	0x80006ecb, 0x80006f22, 0x8000701e, 0x8000716e,
+	0x800077a7, 0x80007235, 0x800072af, 0x8000732a,
+	0x80007471, 0x80007506, 0x8000753b, 0x8000761d,
+	0x8000761f, 0x800076ca, 0x800076db, 0x800076f4,
+	0x8000774a, 0x80007740, 0x800078cc, 0x80007ab1,
+	0x80007bc0, 0x80007c7b, 0x80007d5b, 0x80007df4,
+	0x80007f3e, 0x80008005, 0x80008352, 0x800083ef,
+	0x80008779, 0x80008941, 0x80008986, 0x80008996,
+	0x80008abf, 0x80008af8, 0x80008acb, 0x80008b01,
+	0x80008afe, 0x80008aed, 0x80008b39, 0x80008b8a,
+	0x80008d08, 0x80008f38, 0x80009072, 0x80009199,
+	0x80009276, 0x8000967c, 0x800096e3, 0x80009756,
+	0x800097db, 0x800097ff, 0x8000980b, 0x8000983b,
+	0x80009b12, 0x80009f9c, 0x8002284a, 0x80022844,
+	0x800233d5, 0x80003b9d, 0x80004018, 0x80004039,
+	0x80025249, 0x80025cd0, 0x80027ed3, 0x80009f43,
+	0x80009f8e, 0x00000066, 0x80000066, 0x00000066,
+	0x80000069, 0x00000066, 0x8000006c, 0x00000066,
+	0x00000066, 0x80000069, 0x00000066, 0x00000066,
+	0x8000006c, 0x0000017f, 0x80000074, 0x00000073,
+	0x80000074, 0x00000574, 0x80000576, 0x00000574,
+	0x80000565, 0x00000574, 0x8000056b, 0x0000057e,
+	0x80000576, 0x00000574, 0x8000056d, 0x000005d9,
+	0x800005b4, 0x000005f2, 0x800005b7, 0x800005e2,
+	0x800005d0, 0x800005d3, 0x800005d4, 0x800005db,
+	0x800005dc, 0x800005dd, 0x800005e8, 0x800005ea,
+	0x8000002b, 0x000005e9, 0x800005c1, 0x000005e9,
+	0x800005c2, 0x0000fb49, 0x800005c1, 0x0000fb49,
+	0x800005c2, 0x000005d0, 0x800005b7, 0x000005d0,
+	0x800005b8, 0x000005d0, 0x800005bc, 0x000005d1,
+	0x800005bc, 0x000005d2, 0x800005bc, 0x000005d3,
+	0x800005bc, 0x000005d4, 0x800005bc, 0x000005d5,
+	0x800005bc, 0x000005d6, 0x800005bc, 0x000005d8,
+	0x800005bc, 0x000005d9, 0x800005bc, 0x000005da,
+	0x800005bc, 0x000005db, 0x800005bc, 0x000005dc,
+	0x800005bc, 0x000005de, 0x800005bc, 0x000005e0,
+	0x800005bc, 0x000005e1, 0x800005bc, 0x000005e3,
+	0x800005bc, 0x000005e4, 0x800005bc, 0x000005e6,
+	0x800005bc, 0x000005e7, 0x800005bc, 0x000005e8,
+	0x800005bc, 0x000005e9, 0x800005bc, 0x000005ea,
+	0x800005bc, 0x000005d5, 0x800005b9, 0x000005d1,
+	0x800005bf, 0x000005db, 0x800005bf, 0x000005e4,
+	0x800005bf, 0x000005d0, 0x800005dc, 0x80000671,
+	0x80000671, 0x8000067b, 0x8000067b, 0x8000067b,
+	0x8000067b, 0x8000067e, 0x8000067e, 0x8000067e,
+	0x8000067e, 0x80000680, 0x80000680, 0x80000680,
+	0x80000680, 0x8000067a, 0x8000067a, 0x8000067a,
+	0x8000067a, 0x8000067f, 0x8000067f, 0x8000067f,
+	0x8000067f, 0x80000679, 0x80000679, 0x80000679,
+	0x80000679, 0x800006a4, 0x800006a4, 0x800006a4,
+	0x800006a4, 0x800006a6, 0x800006a6, 0x800006a6,
+	0x800006a6, 0x80000684, 0x80000684, 0x80000684,
+	0x80000684, 0x80000683, 0x80000683, 0x80000683,
+	0x80000683, 0x80000686, 0x80000686, 0x80000686,
+	0x80000686, 0x80000687, 0x80000687, 0x80000687,
+	0x80000687, 0x8000068d, 0x8000068d, 0x8000068c,
+	0x8000068c, 0x8000068e, 0x8000068e, 0x80000688,
+	0x80000688, 0x80000698, 0x80000698, 0x80000691,
+	0x80000691, 0x800006a9, 0x800006a9, 0x800006a9,
+	0x800006a9, 0x800006af, 0x800006af, 0x800006af,
+	0x800006af, 0x800006b3, 0x800006b3, 0x800006b3,
+	0x800006b3, 0x800006b1, 0x800006b1, 0x800006b1,
+	0x800006b1, 0x800006ba, 0x800006ba, 0x800006bb,
+	0x800006bb, 0x800006bb, 0x800006bb, 0x800006c0,
+	0x800006c0, 0x800006c1, 0x800006c1, 0x800006c1,
+	0x800006c1, 0x800006be, 0x800006be, 0x800006be,
+	0x800006be, 0x800006d2, 0x800006d2, 0x800006d3,
+	0x800006d3, 0x800006ad, 0x800006ad, 0x800006ad,
+	0x800006ad, 0x800006c7, 0x800006c7, 0x800006c6,
+	0x800006c6, 0x800006c8, 0x800006c8, 0x80000677,
+	0x800006cb, 0x800006cb, 0x800006c5, 0x800006c5,
+	0x800006c9, 0x800006c9, 0x800006d0, 0x800006d0,
+	0x800006d0, 0x800006d0, 0x80000649, 0x80000649,
+	0x00000626, 0x80000627, 0x00000626, 0x80000627,
+	0x00000626, 0x800006d5, 0x00000626, 0x800006d5,
+	0x00000626, 0x80000648, 0x00000626, 0x80000648,
+	0x00000626, 0x800006c7, 0x00000626, 0x800006c7,
+	0x00000626, 0x800006c6, 0x00000626, 0x800006c6,
+	0x00000626, 0x800006c8, 0x00000626, 0x800006c8,
+	0x00000626, 0x800006d0, 0x00000626, 0x800006d0,
+	0x00000626, 0x800006d0, 0x00000626, 0x80000649,
+	0x00000626, 0x80000649, 0x00000626, 0x80000649,
+	0x800006cc, 0x800006cc, 0x800006cc, 0x800006cc,
+	0x00000626, 0x8000062c, 0x00000626, 0x8000062d,
+	0x00000626, 0x80000645, 0x00000626, 0x80000649,
+	0x00000626, 0x8000064a, 0x00000628, 0x8000062c,
+	0x00000628, 0x8000062d, 0x00000628, 0x8000062e,
+	0x00000628, 0x80000645, 0x00000628, 0x80000649,
+	0x00000628, 0x8000064a, 0x0000062a, 0x8000062c,
+	0x0000062a, 0x8000062d, 0x0000062a, 0x8000062e,
+	0x0000062a, 0x80000645, 0x0000062a, 0x80000649,
+	0x0000062a, 0x8000064a, 0x0000062b, 0x8000062c,
+	0x0000062b, 0x80000645, 0x0000062b, 0x80000649,
+	0x0000062b, 0x8000064a, 0x0000062c, 0x8000062d,
+	0x0000062c, 0x80000645, 0x0000062d, 0x8000062c,
+	0x0000062d, 0x80000645, 0x0000062e, 0x8000062c,
+	0x0000062e, 0x8000062d, 0x0000062e, 0x80000645,
+	0x00000633, 0x8000062c, 0x00000633, 0x8000062d,
+	0x00000633, 0x8000062e, 0x00000633, 0x80000645,
+	0x00000635, 0x8000062d, 0x00000635, 0x80000645,
+	0x00000636, 0x8000062c, 0x00000636, 0x8000062d,
+	0x00000636, 0x8000062e, 0x00000636, 0x80000645,
+	0x00000637, 0x8000062d, 0x00000637, 0x80000645,
+	0x00000638, 0x80000645, 0x00000639, 0x8000062c,
+	0x00000639, 0x80000645, 0x0000063a, 0x8000062c,
+	0x0000063a, 0x80000645, 0x00000641, 0x8000062c,
+	0x00000641, 0x8000062d, 0x00000641, 0x8000062e,
+	0x00000641, 0x80000645, 0x00000641, 0x80000649,
+	0x00000641, 0x8000064a, 0x00000642, 0x8000062d,
+	0x00000642, 0x80000645, 0x00000642, 0x80000649,
+	0x00000642, 0x8000064a, 0x00000643, 0x80000627,
+	0x00000643, 0x8000062c, 0x00000643, 0x8000062d,
+	0x00000643, 0x8000062e, 0x00000643, 0x80000644,
+	0x00000643, 0x80000645, 0x00000643, 0x80000649,
+	0x00000643, 0x8000064a, 0x00000644, 0x8000062c,
+	0x00000644, 0x8000062d, 0x00000644, 0x8000062e,
+	0x00000644, 0x80000645, 0x00000644, 0x80000649,
+	0x00000644, 0x8000064a, 0x00000645, 0x8000062c,
+	0x00000645, 0x8000062d, 0x00000645, 0x8000062e,
+	0x00000645, 0x80000645, 0x00000645, 0x80000649,
+	0x00000645, 0x8000064a, 0x00000646, 0x8000062c,
+	0x00000646, 0x8000062d, 0x00000646, 0x8000062e,
+	0x00000646, 0x80000645, 0x00000646, 0x80000649,
+	0x00000646, 0x8000064a, 0x00000647, 0x8000062c,
+	0x00000647, 0x80000645, 0x00000647, 0x80000649,
+	0x00000647, 0x8000064a, 0x0000064a, 0x8000062c,
+	0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e,
+	0x0000064a, 0x80000645, 0x0000064a, 0x80000649,
+	0x0000064a, 0x8000064a, 0x00000630, 0x80000670,
+	0x00000631, 0x80000670, 0x00000649, 0x80000670,
+	0x00000020, 0x0000064c, 0x80000651, 0x00000020,
+	0x0000064d, 0x80000651, 0x00000020, 0x0000064e,
+	0x80000651, 0x00000020, 0x0000064f, 0x80000651,
+	0x00000020, 0x00000650, 0x80000651, 0x00000020,
+	0x00000651, 0x80000670, 0x00000626, 0x80000631,
+	0x00000626, 0x80000632, 0x00000626, 0x80000645,
+	0x00000626, 0x80000646, 0x00000626, 0x80000649,
+	0x00000626, 0x8000064a, 0x00000628, 0x80000631,
+	0x00000628, 0x80000632, 0x00000628, 0x80000645,
+	0x00000628, 0x80000646, 0x00000628, 0x80000649,
+	0x00000628, 0x8000064a, 0x0000062a, 0x80000631,
+	0x0000062a, 0x80000632, 0x0000062a, 0x80000645,
+	0x0000062a, 0x80000646, 0x0000062a, 0x80000649,
+	0x0000062a, 0x8000064a, 0x0000062b, 0x80000631,
+	0x0000062b, 0x80000632, 0x0000062b, 0x80000645,
+	0x0000062b, 0x80000646, 0x0000062b, 0x80000649,
+	0x0000062b, 0x8000064a, 0x00000641, 0x80000649,
+	0x00000641, 0x8000064a, 0x00000642, 0x80000649,
+	0x00000642, 0x8000064a, 0x00000643, 0x80000627,
+	0x00000643, 0x80000644, 0x00000643, 0x80000645,
+	0x00000643, 0x80000649, 0x00000643, 0x8000064a,
+	0x00000644, 0x80000645, 0x00000644, 0x80000649,
+	0x00000644, 0x8000064a, 0x00000645, 0x80000627,
+	0x00000645, 0x80000645, 0x00000646, 0x80000631,
+	0x00000646, 0x80000632, 0x00000646, 0x80000645,
+	0x00000646, 0x80000646, 0x00000646, 0x80000649,
+	0x00000646, 0x8000064a, 0x00000649, 0x80000670,
+	0x0000064a, 0x80000631, 0x0000064a, 0x80000632,
+	0x0000064a, 0x80000645, 0x0000064a, 0x80000646,
+	0x0000064a, 0x80000649, 0x0000064a, 0x8000064a,
+	0x00000626, 0x8000062c, 0x00000626, 0x8000062d,
+	0x00000626, 0x8000062e, 0x00000626, 0x80000645,
+	0x00000626, 0x80000647, 0x00000628, 0x8000062c,
+	0x00000628, 0x8000062d, 0x00000628, 0x8000062e,
+	0x00000628, 0x80000645, 0x00000628, 0x80000647,
+	0x0000062a, 0x8000062c, 0x0000062a, 0x8000062d,
+	0x0000062a, 0x8000062e, 0x0000062a, 0x80000645,
+	0x0000062a, 0x80000647, 0x0000062b, 0x80000645,
+	0x0000062c, 0x8000062d, 0x0000062c, 0x80000645,
+	0x0000062d, 0x8000062c, 0x0000062d, 0x80000645,
+	0x0000062e, 0x8000062c, 0x0000062e, 0x80000645,
+	0x00000633, 0x8000062c, 0x00000633, 0x8000062d,
+	0x00000633, 0x8000062e, 0x00000633, 0x80000645,
+	0x00000635, 0x8000062d, 0x00000635, 0x8000062e,
+	0x00000635, 0x80000645, 0x00000636, 0x8000062c,
+	0x00000636, 0x8000062d, 0x00000636, 0x8000062e,
+	0x00000636, 0x80000645, 0x00000637, 0x8000062d,
+	0x00000638, 0x80000645, 0x00000639, 0x8000062c,
+	0x00000639, 0x80000645, 0x0000063a, 0x8000062c,
+	0x0000063a, 0x80000645, 0x00000641, 0x8000062c,
+	0x00000641, 0x8000062d, 0x00000641, 0x8000062e,
+	0x00000641, 0x80000645, 0x00000642, 0x8000062d,
+	0x00000642, 0x80000645, 0x00000643, 0x8000062c,
+	0x00000643, 0x8000062d, 0x00000643, 0x8000062e,
+	0x00000643, 0x80000644, 0x00000643, 0x80000645,
+	0x00000644, 0x8000062c, 0x00000644, 0x8000062d,
+	0x00000644, 0x8000062e, 0x00000644, 0x80000645,
+	0x00000644, 0x80000647, 0x00000645, 0x8000062c,
+	0x00000645, 0x8000062d, 0x00000645, 0x8000062e,
+	0x00000645, 0x80000645, 0x00000646, 0x8000062c,
+	0x00000646, 0x8000062d, 0x00000646, 0x8000062e,
+	0x00000646, 0x80000645, 0x00000646, 0x80000647,
+	0x00000647, 0x8000062c, 0x00000647, 0x80000645,
+	0x00000647, 0x80000670, 0x0000064a, 0x8000062c,
+	0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e,
+	0x0000064a, 0x80000645, 0x0000064a, 0x80000647,
+	0x00000626, 0x80000645, 0x00000626, 0x80000647,
+	0x00000628, 0x80000645, 0x00000628, 0x80000647,
+	0x0000062a, 0x80000645, 0x0000062a, 0x80000647,
+	0x0000062b, 0x80000645, 0x0000062b, 0x80000647,
+	0x00000633, 0x80000645, 0x00000633, 0x80000647,
+	0x00000634, 0x80000645, 0x00000634, 0x80000647,
+	0x00000643, 0x80000644, 0x00000643, 0x80000645,
+	0x00000644, 0x80000645, 0x00000646, 0x80000645,
+	0x00000646, 0x80000647, 0x0000064a, 0x80000645,
+	0x0000064a, 0x80000647, 0x00000640, 0x0000064e,
+	0x80000651, 0x00000640, 0x0000064f, 0x80000651,
+	0x00000640, 0x00000650, 0x80000651, 0x00000637,
+	0x80000649, 0x00000637, 0x8000064a, 0x00000639,
+	0x80000649, 0x00000639, 0x8000064a, 0x0000063a,
+	0x80000649, 0x0000063a, 0x8000064a, 0x00000633,
+	0x80000649, 0x00000633, 0x8000064a, 0x00000634,
+	0x80000649, 0x00000634, 0x8000064a, 0x0000062d,
+	0x80000649, 0x0000062d, 0x8000064a, 0x0000062c,
+	0x80000649, 0x0000062c, 0x8000064a, 0x0000062e,
+	0x80000649, 0x0000062e, 0x8000064a, 0x00000635,
+	0x80000649, 0x00000635, 0x8000064a, 0x00000636,
+	0x80000649, 0x00000636, 0x8000064a, 0x00000634,
+	0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
+	0x8000062e, 0x00000634, 0x80000645, 0x00000634,
+	0x80000631, 0x00000633, 0x80000631, 0x00000635,
+	0x80000631, 0x00000636, 0x80000631, 0x00000637,
+	0x80000649, 0x00000637, 0x8000064a, 0x00000639,
+	0x80000649, 0x00000639, 0x8000064a, 0x0000063a,
+	0x80000649, 0x0000063a, 0x8000064a, 0x00000633,
+	0x80000649, 0x00000633, 0x8000064a, 0x00000634,
+	0x80000649, 0x00000634, 0x8000064a, 0x0000062d,
+	0x80000649, 0x0000062d, 0x8000064a, 0x0000062c,
+	0x80000649, 0x0000062c, 0x8000064a, 0x0000062e,
+	0x80000649, 0x0000062e, 0x8000064a, 0x00000635,
+	0x80000649, 0x00000635, 0x8000064a, 0x00000636,
+	0x80000649, 0x00000636, 0x8000064a, 0x00000634,
+	0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
+	0x8000062e, 0x00000634, 0x80000645, 0x00000634,
+	0x80000631, 0x00000633, 0x80000631, 0x00000635,
+	0x80000631, 0x00000636, 0x80000631, 0x00000634,
+	0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
+	0x8000062e, 0x00000634, 0x80000645, 0x00000633,
+	0x80000647, 0x00000634, 0x80000647, 0x00000637,
+	0x80000645, 0x00000633, 0x8000062c, 0x00000633,
+	0x8000062d, 0x00000633, 0x8000062e, 0x00000634,
+	0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
+	0x8000062e, 0x00000637, 0x80000645, 0x00000638,
+	0x80000645, 0x00000627, 0x8000064b, 0x00000627,
+	0x8000064b, 0x0000062a, 0x0000062c, 0x80000645,
+	0x0000062a, 0x0000062d, 0x8000062c, 0x0000062a,
+	0x0000062d, 0x8000062c, 0x0000062a, 0x0000062d,
+	0x80000645, 0x0000062a, 0x0000062e, 0x80000645,
+	0x0000062a, 0x00000645, 0x8000062c, 0x0000062a,
+	0x00000645, 0x8000062d, 0x0000062a, 0x00000645,
+	0x8000062e, 0x0000062c, 0x00000645, 0x8000062d,
+	0x0000062c, 0x00000645, 0x8000062d, 0x0000062d,
+	0x00000645, 0x8000064a, 0x0000062d, 0x00000645,
+	0x80000649, 0x00000633, 0x0000062d, 0x8000062c,
+	0x00000633, 0x0000062c, 0x8000062d, 0x00000633,
+	0x0000062c, 0x80000649, 0x00000633, 0x00000645,
+	0x8000062d, 0x00000633, 0x00000645, 0x8000062d,
+	0x00000633, 0x00000645, 0x8000062c, 0x00000633,
+	0x00000645, 0x80000645, 0x00000633, 0x00000645,
+	0x80000645, 0x00000635, 0x0000062d, 0x8000062d,
+	0x00000635, 0x0000062d, 0x8000062d, 0x00000635,
+	0x00000645, 0x80000645, 0x00000634, 0x0000062d,
+	0x80000645, 0x00000634, 0x0000062d, 0x80000645,
+	0x00000634, 0x0000062c, 0x8000064a, 0x00000634,
+	0x00000645, 0x8000062e, 0x00000634, 0x00000645,
+	0x8000062e, 0x00000634, 0x00000645, 0x80000645,
+	0x00000634, 0x00000645, 0x80000645, 0x00000636,
+	0x0000062d, 0x80000649, 0x00000636, 0x0000062e,
+	0x80000645, 0x00000636, 0x0000062e, 0x80000645,
+	0x00000637, 0x00000645, 0x8000062d, 0x00000637,
+	0x00000645, 0x8000062d, 0x00000637, 0x00000645,
+	0x80000645, 0x00000637, 0x00000645, 0x8000064a,
+	0x00000639, 0x0000062c, 0x80000645, 0x00000639,
+	0x00000645, 0x80000645, 0x00000639, 0x00000645,
+	0x80000645, 0x00000639, 0x00000645, 0x80000649,
+	0x0000063a, 0x00000645, 0x80000645, 0x0000063a,
+	0x00000645, 0x8000064a, 0x0000063a, 0x00000645,
+	0x80000649, 0x00000641, 0x0000062e, 0x80000645,
+	0x00000641, 0x0000062e, 0x80000645, 0x00000642,
+	0x00000645, 0x8000062d, 0x00000642, 0x00000645,
+	0x80000645, 0x00000644, 0x0000062d, 0x80000645,
+	0x00000644, 0x0000062d, 0x8000064a, 0x00000644,
+	0x0000062d, 0x80000649, 0x00000644, 0x0000062c,
+	0x8000062c, 0x00000644, 0x0000062c, 0x8000062c,
+	0x00000644, 0x0000062e, 0x80000645, 0x00000644,
+	0x0000062e, 0x80000645, 0x00000644, 0x00000645,
+	0x8000062d, 0x00000644, 0x00000645, 0x8000062d,
+	0x00000645, 0x0000062d, 0x8000062c, 0x00000645,
+	0x0000062d, 0x80000645, 0x00000645, 0x0000062d,
+	0x8000064a, 0x00000645, 0x0000062c, 0x8000062d,
+	0x00000645, 0x0000062c, 0x80000645, 0x00000645,
+	0x0000062e, 0x8000062c, 0x00000645, 0x0000062e,
+	0x80000645, 0x00000645, 0x0000062c, 0x8000062e,
+	0x00000647, 0x00000645, 0x8000062c, 0x00000647,
+	0x00000645, 0x80000645, 0x00000646, 0x0000062d,
+	0x80000645, 0x00000646, 0x0000062d, 0x80000649,
+	0x00000646, 0x0000062c, 0x80000645, 0x00000646,
+	0x0000062c, 0x80000645, 0x00000646, 0x0000062c,
+	0x80000649, 0x00000646, 0x00000645, 0x8000064a,
+	0x00000646, 0x00000645, 0x80000649, 0x0000064a,
+	0x00000645, 0x80000645, 0x0000064a, 0x00000645,
+	0x80000645, 0x00000628, 0x0000062e, 0x8000064a,
+	0x0000062a, 0x0000062c, 0x8000064a, 0x0000062a,
+	0x0000062c, 0x80000649, 0x0000062a, 0x0000062e,
+	0x8000064a, 0x0000062a, 0x0000062e, 0x80000649,
+	0x0000062a, 0x00000645, 0x8000064a, 0x0000062a,
+	0x00000645, 0x80000649, 0x0000062c, 0x00000645,
+	0x8000064a, 0x0000062c, 0x0000062d, 0x80000649,
+	0x0000062c, 0x00000645, 0x80000649, 0x00000633,
+	0x0000062e, 0x80000649, 0x00000635, 0x0000062d,
+	0x8000064a, 0x00000634, 0x0000062d, 0x8000064a,
+	0x00000636, 0x0000062d, 0x8000064a, 0x00000644,
+	0x0000062c, 0x8000064a, 0x00000644, 0x00000645,
+	0x8000064a, 0x0000064a, 0x0000062d, 0x8000064a,
+	0x0000064a, 0x0000062c, 0x8000064a, 0x0000064a,
+	0x00000645, 0x8000064a, 0x00000645, 0x00000645,
+	0x8000064a, 0x00000642, 0x00000645, 0x8000064a,
+	0x00000646, 0x0000062d, 0x8000064a, 0x00000642,
+	0x00000645, 0x8000062d, 0x00000644, 0x0000062d,
+	0x80000645, 0x00000639, 0x00000645, 0x8000064a,
+	0x00000643, 0x00000645, 0x8000064a, 0x00000646,
+	0x0000062c, 0x8000062d, 0x00000645, 0x0000062e,
+	0x8000064a, 0x00000644, 0x0000062c, 0x80000645,
+	0x00000643, 0x00000645, 0x80000645, 0x00000644,
+	0x0000062c, 0x80000645, 0x00000646, 0x0000062c,
+	0x8000062d, 0x0000062c, 0x0000062d, 0x8000064a,
+	0x0000062d, 0x0000062c, 0x8000064a, 0x00000645,
+	0x0000062c, 0x8000064a, 0x00000641, 0x00000645,
+	0x8000064a, 0x00000628, 0x0000062d, 0x8000064a,
+	0x00000643, 0x00000645, 0x80000645, 0x00000639,
+	0x0000062c, 0x80000645, 0x00000635, 0x00000645,
+	0x80000645, 0x00000633, 0x0000062e, 0x8000064a,
+	0x00000646, 0x0000062c, 0x8000064a, 0x00000635,
+	0x00000644, 0x800006d2, 0x00000642, 0x00000644,
+	0x800006d2, 0x00000627, 0x00000644, 0x00000644,
+	0x80000647, 0x00000627, 0x00000643, 0x00000628,
+	0x80000631, 0x00000645, 0x0000062d, 0x00000645,
+	0x8000062f, 0x00000635, 0x00000644, 0x00000639,
+	0x80000645, 0x00000631, 0x00000633, 0x00000648,
+	0x80000644, 0x00000639, 0x00000644, 0x0000064a,
+	0x80000647, 0x00000648, 0x00000633, 0x00000644,
+	0x80000645, 0x00000635, 0x00000644, 0x80000649,
+	0x00000635, 0x00000644, 0x00000649, 0x00000020,
+	0x00000627, 0x00000644, 0x00000644, 0x00000647,
+	0x00000020, 0x00000639, 0x00000644, 0x0000064a,
+	0x00000647, 0x00000020, 0x00000648, 0x00000633,
+	0x00000644, 0x80000645, 0x0000062c, 0x00000644,
+	0x00000020, 0x0000062c, 0x00000644, 0x00000627,
+	0x00000644, 0x80000647, 0x00000631, 0x000006cc,
+	0x00000627, 0x80000644, 0x8000002c, 0x80003001,
+	0x80003002, 0x8000003a, 0x8000003b, 0x80000021,
+	0x8000003f, 0x80003016, 0x80003017, 0x80002026,
+	0x80002025, 0x80002014, 0x80002013, 0x8000005f,
+	0x8000005f, 0x80000028, 0x80000029, 0x8000007b,
+	0x8000007d, 0x80003014, 0x80003015, 0x80003010,
+	0x80003011, 0x8000300a, 0x8000300b, 0x80003008,
+	0x80003009, 0x8000300c, 0x8000300d, 0x8000300e,
+	0x8000300f, 0x8000005b, 0x8000005d, 0x8000203e,
+	0x8000203e, 0x8000203e, 0x8000203e, 0x8000005f,
+	0x8000005f, 0x8000005f, 0x8000002c, 0x80003001,
+	0x8000002e, 0x8000003b, 0x8000003a, 0x8000003f,
+	0x80000021, 0x80002014, 0x80000028, 0x80000029,
+	0x8000007b, 0x8000007d, 0x80003014, 0x80003015,
+	0x80000023, 0x80000026, 0x8000002a, 0x8000002b,
+	0x8000002d, 0x8000003c, 0x8000003e, 0x8000003d,
+	0x8000005c, 0x80000024, 0x80000025, 0x80000040,
+	0x00000020, 0x8000064b, 0x00000640, 0x8000064b,
+	0x00000020, 0x8000064c, 0x00000020, 0x8000064d,
+	0x00000020, 0x8000064e, 0x00000640, 0x8000064e,
+	0x00000020, 0x8000064f, 0x00000640, 0x8000064f,
+	0x00000020, 0x80000650, 0x00000640, 0x80000650,
+	0x00000020, 0x80000651, 0x00000640, 0x80000651,
+	0x00000020, 0x80000652, 0x00000640, 0x80000652,
+	0x80000621, 0x80000622, 0x80000622, 0x80000623,
+	0x80000623, 0x80000624, 0x80000624, 0x80000625,
+	0x80000625, 0x80000626, 0x80000626, 0x80000626,
+	0x80000626, 0x80000627, 0x80000627, 0x80000628,
+	0x80000628, 0x80000628, 0x80000628, 0x80000629,
+	0x80000629, 0x8000062a, 0x8000062a, 0x8000062a,
+	0x8000062a, 0x8000062b, 0x8000062b, 0x8000062b,
+	0x8000062b, 0x8000062c, 0x8000062c, 0x8000062c,
+	0x8000062c, 0x8000062d, 0x8000062d, 0x8000062d,
+	0x8000062d, 0x8000062e, 0x8000062e, 0x8000062e,
+	0x8000062e, 0x8000062f, 0x8000062f, 0x80000630,
+	0x80000630, 0x80000631, 0x80000631, 0x80000632,
+	0x80000632, 0x80000633, 0x80000633, 0x80000633,
+	0x80000633, 0x80000634, 0x80000634, 0x80000634,
+	0x80000634, 0x80000635, 0x80000635, 0x80000635,
+	0x80000635, 0x80000636, 0x80000636, 0x80000636,
+	0x80000636, 0x80000637, 0x80000637, 0x80000637,
+	0x80000637, 0x80000638, 0x80000638, 0x80000638,
+	0x80000638, 0x80000639, 0x80000639, 0x80000639,
+	0x80000639, 0x8000063a, 0x8000063a, 0x8000063a,
+	0x8000063a, 0x80000641, 0x80000641, 0x80000641,
+	0x80000641, 0x80000642, 0x80000642, 0x80000642,
+	0x80000642, 0x80000643, 0x80000643, 0x80000643,
+	0x80000643, 0x80000644, 0x80000644, 0x80000644,
+	0x80000644, 0x80000645, 0x80000645, 0x80000645,
+	0x80000645, 0x80000646, 0x80000646, 0x80000646,
+	0x80000646, 0x80000647, 0x80000647, 0x80000647,
+	0x80000647, 0x80000648, 0x80000648, 0x80000649,
+	0x80000649, 0x8000064a, 0x8000064a, 0x8000064a,
+	0x8000064a, 0x00000644, 0x80000622, 0x00000644,
+	0x80000622, 0x00000644, 0x80000623, 0x00000644,
+	0x80000623, 0x00000644, 0x80000625, 0x00000644,
+	0x80000625, 0x00000644, 0x80000627, 0x00000644,
+	0x80000627, 0x80000021, 0x80000022, 0x80000023,
+	0x80000024, 0x80000025, 0x80000026, 0x80000027,
+	0x80000028, 0x80000029, 0x8000002a, 0x8000002b,
+	0x8000002c, 0x8000002d, 0x8000002e, 0x8000002f,
+	0x80000030, 0x80000031, 0x80000032, 0x80000033,
+	0x80000034, 0x80000035, 0x80000036, 0x80000037,
+	0x80000038, 0x80000039, 0x8000003a, 0x8000003b,
+	0x8000003c, 0x8000003d, 0x8000003e, 0x8000003f,
+	0x80000040, 0x80000041, 0x80000042, 0x80000043,
+	0x80000044, 0x80000045, 0x80000046, 0x80000047,
+	0x80000048, 0x80000049, 0x8000004a, 0x8000004b,
+	0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f,
+	0x80000050, 0x80000051, 0x80000052, 0x80000053,
+	0x80000054, 0x80000055, 0x80000056, 0x80000057,
+	0x80000058, 0x80000059, 0x8000005a, 0x8000005b,
+	0x8000005c, 0x8000005d, 0x8000005e, 0x8000005f,
+	0x80000060, 0x80000061, 0x80000062, 0x80000063,
+	0x80000064, 0x80000065, 0x80000066, 0x80000067,
+	0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
+	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
+	0x80000070, 0x80000071, 0x80000072, 0x80000073,
+	0x80000074, 0x80000075, 0x80000076, 0x80000077,
+	0x80000078, 0x80000079, 0x8000007a, 0x8000007b,
+	0x8000007c, 0x8000007d, 0x8000007e, 0x80002985,
+	0x80002986, 0x80003002, 0x8000300c, 0x8000300d,
+	0x80003001, 0x800030fb, 0x800030f2, 0x800030a1,
+	0x800030a3, 0x800030a5, 0x800030a7, 0x800030a9,
+	0x800030e3, 0x800030e5, 0x800030e7, 0x800030c3,
+	0x800030fc, 0x800030a2, 0x800030a4, 0x800030a6,
+	0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad,
+	0x800030af, 0x800030b1, 0x800030b3, 0x800030b5,
+	0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd,
+	0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6,
+	0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc,
+	0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2,
+	0x800030d5, 0x800030d8, 0x800030db, 0x800030de,
+	0x800030df, 0x800030e0, 0x800030e1, 0x800030e2,
+	0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9,
+	0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed,
+	0x800030ef, 0x800030f3, 0x80003099, 0x8000309a,
+	0x80003164, 0x80003131, 0x80003132, 0x80003133,
+	0x80003134, 0x80003135, 0x80003136, 0x80003137,
+	0x80003138, 0x80003139, 0x8000313a, 0x8000313b,
+	0x8000313c, 0x8000313d, 0x8000313e, 0x8000313f,
+	0x80003140, 0x80003141, 0x80003142, 0x80003143,
+	0x80003144, 0x80003145, 0x80003146, 0x80003147,
+	0x80003148, 0x80003149, 0x8000314a, 0x8000314b,
+	0x8000314c, 0x8000314d, 0x8000314e, 0x8000314f,
+	0x80003150, 0x80003151, 0x80003152, 0x80003153,
+	0x80003154, 0x80003155, 0x80003156, 0x80003157,
+	0x80003158, 0x80003159, 0x8000315a, 0x8000315b,
+	0x8000315c, 0x8000315d, 0x8000315e, 0x8000315f,
+	0x80003160, 0x80003161, 0x80003162, 0x80003163,
+	0x800000a2, 0x800000a3, 0x800000ac, 0x800000af,
+	0x800000a6, 0x800000a5, 0x800020a9, 0x80002502,
+	0x80002190, 0x80002191, 0x80002192, 0x80002193,
+	0x800025a0, 0x800025cb, 0x0001d157, 0x8001d165,
+	0x0001d158, 0x8001d165, 0x0001d15f, 0x8001d16e,
+	0x0001d15f, 0x8001d16f, 0x0001d15f, 0x8001d170,
+	0x0001d15f, 0x8001d171, 0x0001d15f, 0x8001d172,
+	0x0001d1b9, 0x8001d165, 0x0001d1ba, 0x8001d165,
+	0x0001d1bb, 0x8001d16e, 0x0001d1bc, 0x8001d16e,
+	0x0001d1bb, 0x8001d16f, 0x0001d1bc, 0x8001d16f,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000069, 0x8000006a, 0x8000006b,
+	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
+	0x80000070, 0x80000071, 0x80000072, 0x80000073,
+	0x80000074, 0x80000075, 0x80000076, 0x80000077,
+	0x80000078, 0x80000079, 0x8000007a, 0x80000041,
+	0x80000042, 0x80000043, 0x80000044, 0x80000045,
+	0x80000046, 0x80000047, 0x80000048, 0x80000049,
+	0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
+	0x8000004e, 0x8000004f, 0x80000050, 0x80000051,
+	0x80000052, 0x80000053, 0x80000054, 0x80000055,
+	0x80000056, 0x80000057, 0x80000058, 0x80000059,
+	0x8000005a, 0x80000061, 0x80000062, 0x80000063,
+	0x80000064, 0x80000065, 0x80000066, 0x80000067,
+	0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
+	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
+	0x80000070, 0x80000071, 0x80000072, 0x80000073,
+	0x80000074, 0x80000075, 0x80000076, 0x80000077,
+	0x80000078, 0x80000079, 0x8000007a, 0x80000041,
+	0x80000043, 0x80000044, 0x80000047, 0x8000004a,
+	0x8000004b, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000053, 0x80000054, 0x80000055,
+	0x80000056, 0x80000057, 0x80000058, 0x80000059,
+	0x8000005a, 0x80000061, 0x80000062, 0x80000063,
+	0x80000064, 0x80000066, 0x80000068, 0x80000069,
+	0x8000006a, 0x8000006b, 0x8000006c, 0x8000006d,
+	0x8000006e, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000044, 0x80000045,
+	0x80000046, 0x80000047, 0x8000004a, 0x8000004b,
+	0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f,
+	0x80000050, 0x80000051, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x80000061, 0x80000062, 0x80000063,
+	0x80000064, 0x80000065, 0x80000066, 0x80000067,
+	0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
+	0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
+	0x80000070, 0x80000071, 0x80000072, 0x80000073,
+	0x80000074, 0x80000075, 0x80000076, 0x80000077,
+	0x80000078, 0x80000079, 0x8000007a, 0x80000041,
+	0x80000042, 0x80000044, 0x80000045, 0x80000046,
+	0x80000047, 0x80000049, 0x8000004a, 0x8000004b,
+	0x8000004c, 0x8000004d, 0x8000004f, 0x80000053,
+	0x80000054, 0x80000055, 0x80000056, 0x80000057,
+	0x80000058, 0x80000059, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000041, 0x80000042, 0x80000043, 0x80000044,
+	0x80000045, 0x80000046, 0x80000047, 0x80000048,
+	0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
+	0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
+	0x80000051, 0x80000052, 0x80000053, 0x80000054,
+	0x80000055, 0x80000056, 0x80000057, 0x80000058,
+	0x80000059, 0x8000005a, 0x80000061, 0x80000062,
+	0x80000063, 0x80000064, 0x80000065, 0x80000066,
+	0x80000067, 0x80000068, 0x80000069, 0x8000006a,
+	0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
+	0x8000006f, 0x80000070, 0x80000071, 0x80000072,
+	0x80000073, 0x80000074, 0x80000075, 0x80000076,
+	0x80000077, 0x80000078, 0x80000079, 0x8000007a,
+	0x80000131, 0x80000237, 0x80000391, 0x80000392,
+	0x80000393, 0x80000394, 0x80000395, 0x80000396,
+	0x80000397, 0x80000398, 0x80000399, 0x8000039a,
+	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
+	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
+	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
+	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
+	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
+	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
+	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
+	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
+	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
+	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
+	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
+	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
+	0x80000391, 0x80000392, 0x80000393, 0x80000394,
+	0x80000395, 0x80000396, 0x80000397, 0x80000398,
+	0x80000399, 0x8000039a, 0x8000039b, 0x8000039c,
+	0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0,
+	0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4,
+	0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8,
+	0x800003a9, 0x80002207, 0x800003b1, 0x800003b2,
+	0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6,
+	0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba,
+	0x800003bb, 0x800003bc, 0x800003bd, 0x800003be,
+	0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2,
+	0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6,
+	0x800003c7, 0x800003c8, 0x800003c9, 0x80002202,
+	0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5,
+	0x800003f1, 0x800003d6, 0x80000391, 0x80000392,
+	0x80000393, 0x80000394, 0x80000395, 0x80000396,
+	0x80000397, 0x80000398, 0x80000399, 0x8000039a,
+	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
+	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
+	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
+	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
+	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
+	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
+	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
+	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
+	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
+	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
+	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
+	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
+	0x80000391, 0x80000392, 0x80000393, 0x80000394,
+	0x80000395, 0x80000396, 0x80000397, 0x80000398,
+	0x80000399, 0x8000039a, 0x8000039b, 0x8000039c,
+	0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0,
+	0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4,
+	0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8,
+	0x800003a9, 0x80002207, 0x800003b1, 0x800003b2,
+	0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6,
+	0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba,
+	0x800003bb, 0x800003bc, 0x800003bd, 0x800003be,
+	0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2,
+	0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6,
+	0x800003c7, 0x800003c8, 0x800003c9, 0x80002202,
+	0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5,
+	0x800003f1, 0x800003d6, 0x80000391, 0x80000392,
+	0x80000393, 0x80000394, 0x80000395, 0x80000396,
+	0x80000397, 0x80000398, 0x80000399, 0x8000039a,
+	0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
+	0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
+	0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
+	0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
+	0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
+	0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
+	0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
+	0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
+	0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
+	0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
+	0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
+	0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
+	0x80000030, 0x80000031, 0x80000032, 0x80000033,
+	0x80000034, 0x80000035, 0x80000036, 0x80000037,
+	0x80000038, 0x80000039, 0x80000030, 0x80000031,
+	0x80000032, 0x80000033, 0x80000034, 0x80000035,
+	0x80000036, 0x80000037, 0x80000038, 0x80000039,
+	0x80000030, 0x80000031, 0x80000032, 0x80000033,
+	0x80000034, 0x80000035, 0x80000036, 0x80000037,
+	0x80000038, 0x80000039, 0x80000030, 0x80000031,
+	0x80000032, 0x80000033, 0x80000034, 0x80000035,
+	0x80000036, 0x80000037, 0x80000038, 0x80000039,
+	0x80000030, 0x80000031, 0x80000032, 0x80000033,
+	0x80000034, 0x80000035, 0x80000036, 0x80000037,
+	0x80000038, 0x80000039, 0x80004e3d, 0x80004e38,
+	0x80004e41, 0x80020122, 0x80004f60, 0x80004fae,
+	0x80004fbb, 0x80005002, 0x8000507a, 0x80005099,
+	0x800050e7, 0x800050cf, 0x8000349e, 0x8002063a,
+	0x8000514d, 0x80005154, 0x80005164, 0x80005177,
+	0x8002051c, 0x800034b9, 0x80005167, 0x8000518d,
+	0x8002054b, 0x80005197, 0x800051a4, 0x80004ecc,
+	0x800051ac, 0x800051b5, 0x800291df, 0x800051f5,
+	0x80005203, 0x800034df, 0x8000523b, 0x80005246,
+	0x80005272, 0x80005277, 0x80003515, 0x800052c7,
+	0x800052c9, 0x800052e4, 0x800052fa, 0x80005305,
+	0x80005306, 0x80005317, 0x80005349, 0x80005351,
+	0x8000535a, 0x80005373, 0x8000537d, 0x8000537f,
+	0x8000537f, 0x8000537f, 0x80020a2c, 0x80007070,
+	0x800053ca, 0x800053df, 0x80020b63, 0x800053eb,
+	0x800053f1, 0x80005406, 0x8000549e, 0x80005438,
+	0x80005448, 0x80005468, 0x800054a2, 0x800054f6,
+	0x80005510, 0x80005553, 0x80005563, 0x80005584,
+	0x80005584, 0x80005599, 0x800055ab, 0x800055b3,
+	0x800055c2, 0x80005716, 0x80005606, 0x80005717,
+	0x80005651, 0x80005674, 0x80005207, 0x800058ee,
+	0x800057ce, 0x800057f4, 0x8000580d, 0x8000578b,
+	0x80005832, 0x80005831, 0x800058ac, 0x800214e4,
+	0x800058f2, 0x800058f7, 0x80005906, 0x8000591a,
+	0x80005922, 0x80005962, 0x800216a8, 0x800216ea,
+	0x800059ec, 0x80005a1b, 0x80005a27, 0x800059d8,
+	0x80005a66, 0x800036ee, 0x800036fc, 0x80005b08,
+	0x80005b3e, 0x80005b3e, 0x800219c8, 0x80005bc3,
+	0x80005bd8, 0x80005be7, 0x80005bf3, 0x80021b18,
+	0x80005bff, 0x80005c06, 0x80005f53, 0x80005c22,
+	0x80003781, 0x80005c60, 0x80005c6e, 0x80005cc0,
+	0x80005c8d, 0x80021de4, 0x80005d43, 0x80021de6,
+	0x80005d6e, 0x80005d6b, 0x80005d7c, 0x80005de1,
+	0x80005de2, 0x8000382f, 0x80005dfd, 0x80005e28,
+	0x80005e3d, 0x80005e69, 0x80003862, 0x80022183,
+	0x8000387c, 0x80005eb0, 0x80005eb3, 0x80005eb6,
+	0x80005eca, 0x8002a392, 0x80005efe, 0x80022331,
+	0x80022331, 0x80008201, 0x80005f22, 0x80005f22,
+	0x800038c7, 0x800232b8, 0x800261da, 0x80005f62,
+	0x80005f6b, 0x800038e3, 0x80005f9a, 0x80005fcd,
+	0x80005fd7, 0x80005ff9, 0x80006081, 0x8000393a,
+	0x8000391c, 0x80006094, 0x800226d4, 0x800060c7,
+	0x80006148, 0x8000614c, 0x8000614e, 0x8000614c,
+	0x8000617a, 0x8000618e, 0x800061b2, 0x800061a4,
+	0x800061af, 0x800061de, 0x800061f2, 0x800061f6,
+	0x80006210, 0x8000621b, 0x8000625d, 0x800062b1,
+	0x800062d4, 0x80006350, 0x80022b0c, 0x8000633d,
+	0x800062fc, 0x80006368, 0x80006383, 0x800063e4,
+	0x80022bf1, 0x80006422, 0x800063c5, 0x800063a9,
+	0x80003a2e, 0x80006469, 0x8000647e, 0x8000649d,
+	0x80006477, 0x80003a6c, 0x8000654f, 0x8000656c,
+	0x8002300a, 0x800065e3, 0x800066f8, 0x80006649,
+	0x80003b19, 0x80006691, 0x80003b08, 0x80003ae4,
+	0x80005192, 0x80005195, 0x80006700, 0x8000669c,
+	0x800080ad, 0x800043d9, 0x80006717, 0x8000671b,
+	0x80006721, 0x8000675e, 0x80006753, 0x800233c3,
+	0x80003b49, 0x800067fa, 0x80006785, 0x80006852,
+	0x80006885, 0x8002346d, 0x8000688e, 0x8000681f,
+	0x80006914, 0x80003b9d, 0x80006942, 0x800069a3,
+	0x800069ea, 0x80006aa8, 0x800236a3, 0x80006adb,
+	0x80003c18, 0x80006b21, 0x800238a7, 0x80006b54,
+	0x80003c4e, 0x80006b72, 0x80006b9f, 0x80006bba,
+	0x80006bbb, 0x80023a8d, 0x80021d0b, 0x80023afa,
+	0x80006c4e, 0x80023cbc, 0x80006cbf, 0x80006ccd,
+	0x80006c67, 0x80006d16, 0x80006d3e, 0x80006d77,
+	0x80006d41, 0x80006d69, 0x80006d78, 0x80006d85,
+	0x80023d1e, 0x80006d34, 0x80006e2f, 0x80006e6e,
+	0x80003d33, 0x80006ecb, 0x80006ec7, 0x80023ed1,
+	0x80006df9, 0x80006f6e, 0x80023f5e, 0x80023f8e,
+	0x80006fc6, 0x80007039, 0x8000701e, 0x8000701b,
+	0x80003d96, 0x8000704a, 0x8000707d, 0x80007077,
+	0x800070ad, 0x80020525, 0x80007145, 0x80024263,
+	0x8000719c, 0x800243ab, 0x80007228, 0x80007235,
+	0x80007250, 0x80024608, 0x80007280, 0x80007295,
+	0x80024735, 0x80024814, 0x8000737a, 0x8000738b,
+	0x80003eac, 0x800073a5, 0x80003eb8, 0x80003eb8,
+	0x80007447, 0x8000745c, 0x80007471, 0x80007485,
+	0x800074ca, 0x80003f1b, 0x80007524, 0x80024c36,
+	0x8000753e, 0x80024c92, 0x80007570, 0x8002219f,
+	0x80007610, 0x80024fa1, 0x80024fb8, 0x80025044,
+	0x80003ffc, 0x80004008, 0x800076f4, 0x800250f3,
+	0x800250f2, 0x80025119, 0x80025133, 0x8000771e,
+	0x8000771f, 0x8000771f, 0x8000774a, 0x80004039,
+	0x8000778b, 0x80004046, 0x80004096, 0x8002541d,
+	0x8000784e, 0x8000788c, 0x800078cc, 0x800040e3,
+	0x80025626, 0x80007956, 0x8002569a, 0x800256c5,
+	0x8000798f, 0x800079eb, 0x8000412f, 0x80007a40,
+	0x80007a4a, 0x80007a4f, 0x8002597c, 0x80025aa7,
+	0x80025aa7, 0x80007aee, 0x80004202, 0x80025bab,
+	0x80007bc6, 0x80007bc9, 0x80004227, 0x80025c80,
+	0x80007cd2, 0x800042a0, 0x80007ce8, 0x80007ce3,
+	0x80007d00, 0x80025f86, 0x80007d63, 0x80004301,
+	0x80007dc7, 0x80007e02, 0x80007e45, 0x80004334,
+	0x80026228, 0x80026247, 0x80004359, 0x800262d9,
+	0x80007f7a, 0x8002633e, 0x80007f95, 0x80007ffa,
+	0x80008005, 0x800264da, 0x80026523, 0x80008060,
+	0x800265a8, 0x80008070, 0x8002335f, 0x800043d5,
+	0x800080b2, 0x80008103, 0x8000440b, 0x8000813e,
+	0x80005ab5, 0x800267a7, 0x800267b5, 0x80023393,
+	0x8002339c, 0x80008201, 0x80008204, 0x80008f9e,
+	0x8000446b, 0x80008291, 0x8000828b, 0x8000829d,
+	0x800052b3, 0x800082b1, 0x800082b3, 0x800082bd,
+	0x800082e6, 0x80026b3c, 0x800082e5, 0x8000831d,
+	0x80008363, 0x800083ad, 0x80008323, 0x800083bd,
+	0x800083e7, 0x80008457, 0x80008353, 0x800083ca,
+	0x800083cc, 0x800083dc, 0x80026c36, 0x80026d6b,
+	0x80026cd5, 0x8000452b, 0x800084f1, 0x800084f3,
+	0x80008516, 0x800273ca, 0x80008564, 0x80026f2c,
+	0x8000455d, 0x80004561, 0x80026fb1, 0x800270d2,
+	0x8000456b, 0x80008650, 0x8000865c, 0x80008667,
+	0x80008669, 0x800086a9, 0x80008688, 0x8000870e,
+	0x800086e2, 0x80008779, 0x80008728, 0x8000876b,
+	0x80008786, 0x800045d7, 0x800087e1, 0x80008801,
+	0x800045f9, 0x80008860, 0x80008863, 0x80027667,
+	0x800088d7, 0x800088de, 0x80004635, 0x800088fa,
+	0x800034bb, 0x800278ae, 0x80027966, 0x800046be,
+	0x800046c7, 0x80008aa0, 0x80008aed, 0x80008b8a,
+	0x80008c55, 0x80027ca8, 0x80008cab, 0x80008cc1,
+	0x80008d1b, 0x80008d77, 0x80027f2f, 0x80020804,
+	0x80008dcb, 0x80008dbc, 0x80008df0, 0x800208de,
+	0x80008ed4, 0x80008f38, 0x800285d2, 0x800285ed,
+	0x80009094, 0x800090f1, 0x80009111, 0x8002872e,
+	0x8000911b, 0x80009238, 0x800092d7, 0x800092d8,
+	0x8000927c, 0x800093f9, 0x80009415, 0x80028bfa,
+	0x8000958b, 0x80004995, 0x800095b7, 0x80028d77,
+	0x800049e6, 0x800096c3, 0x80005db2, 0x80009723,
+	0x80029145, 0x8002921a, 0x80004a6e, 0x80004a76,
+	0x800097e0, 0x8002940a, 0x80004ab2, 0x80029496,
+	0x8000980b, 0x8000980b, 0x80009829, 0x800295b6,
+	0x800098e2, 0x80004b33, 0x80009929, 0x800099a7,
+	0x800099c2, 0x800099fe, 0x80004bce, 0x80029b30,
+	0x80009b12, 0x80009c40, 0x80009cfd, 0x80004cce,
+	0x80004ced, 0x80009d67, 0x8002a0ce, 0x80004cf8,
+	0x8002a105, 0x8002a20e, 0x8002a291, 0x80009ebb,
+	0x80004d56, 0x80009ef9, 0x80009efe, 0x80009f05,
+	0x80009f0f, 0x80009f16, 0x80009f3b, 0x8002a600,
 };
 
--- a/intl/unicharutil/nsSaveAsCharset.cpp
+++ b/intl/unicharutil/nsSaveAsCharset.cpp
@@ -44,17 +44,17 @@ nsSaveAsCharset::Convert(const nsAString
   const Encoding* ignored;
   Tie(rv, ignored) = mEncoding->Encode(aIn, aOut);
   if (NS_FAILED(rv)) {
     return rv;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSaveAsCharset::GetCharset(nsACString& aCharset)
 {
   if (!mEncoding) {
     aCharset.Truncate();
   } else {
     mEncoding->Name(aCharset);
   }
   return NS_OK;
--- a/intl/unicharutil/nsUnicodeNormalizer.cpp
+++ b/intl/unicharutil/nsUnicodeNormalizer.cpp
@@ -1,48 +1,48 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 
-/* This file is modified from JPNIC's mDNKit, it is under both MPL and 
+/* This file is modified from JPNIC's mDNKit, it is under both MPL and
  * JPNIC's license.
  */
 
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * Copyright (c) 2000,2002 Japan Network Information Center.
  * All rights reserved.
- *  
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
- * 
+ *
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@@ -71,17 +71,17 @@ nsUnicodeNormalizer::~nsUnicodeNormalize
 
 
 
 #define END_BIT		0x80000000
 
 
 /*
  * Some constants for Hangul decomposition/composition.
- * These things were taken from unicode book. 
+ * These things were taken from unicode book.
  */
 #define SBase		0xac00
 #define LBase		0x1100
 #define VBase		0x1161
 #define TBase		0x11a7
 #define LCount		19
 #define VCount		21
 #define TCount		28
@@ -179,17 +179,17 @@ mdn__unicode_decompose(int32_t compat, u
 	/*
 	 * Look up decomposition table.  If no decomposition is defined
 	 * or if it is a compatibility decomosition when canonical
 	 * decomposition requested, return 'NS_SUCCESS_UNORM_NOTFOUND'.
 	 */
 	seqidx = decompose_char(c, &seq);
 	if (seqidx == 0 || (compat == 0 && (seqidx & DECOMP_COMPAT) != 0))
 		return (NS_SUCCESS_UNORM_NOTFOUND);
-	
+
 	/*
 	 * Copy the decomposed sequence.  The end of the sequence are
 	 * marked with END_BIT.
 	 */
 	do {
 		uint32_t c;
 		int32_t dlen;
 		nsresult r;
@@ -206,17 +206,17 @@ mdn__unicode_decompose(int32_t compat, u
 				return (NS_ERROR_UNORM_MOREOUTPUT);
 			*v++ = c;
 			vlen--;
 		} else {
 			return (r);
 		}
 
 	} while ((*seq++ & END_BIT) == 0);
-	
+
 	*decomp_lenp = v - vorg;
 
 	return (NS_OK);
 }
 
 static int32_t
 mdn__unicode_iscompositecandidate(uint32_t c)
 {
@@ -335,18 +335,18 @@ mdn_normalize(bool do_composition, bool 
 	workbuf_t wb;
 	nsresult r = NS_OK;
 	/*
 	 * Initialize working buffer.
 	 */
 	workbuf_init(&wb);
 
 	nsAString::const_iterator start, end;
-	aSrcStr.BeginReading(start); 
-	aSrcStr.EndReading(end); 
+	aSrcStr.BeginReading(start);
+	aSrcStr.EndReading(end);
 
 	while (start != end) {
 		uint32_t c;
 		char16_t curChar;
 
 		//assert(wb.cur == wb.last);
 
 		/*
@@ -462,17 +462,17 @@ again:
 		}
 		goto again;
 	default:
 		return (r);
 	}
 	/* NOTREACHED */
 }
 
-static void		
+static void
 get_class(workbuf_t *wb) {
 	int32_t i;
 
 	for (i = wb->cur; i < wb->last; i++)
 		wb->cclass[i] = canonclass(wb->ucs[i]);
 }
 
 static void
@@ -541,17 +541,17 @@ compose(workbuf_t *wb) {
 	}
 
 	/* Purge void characters, if any. */
 	if (nvoids > 0)
 		workbuf_removevoid(wb);
 }
 
 static nsresult
-flush_before_cur(workbuf_t *wb, nsAString& aToStr) 
+flush_before_cur(workbuf_t *wb, nsAString& aToStr)
 {
 	int32_t i;
 
 	for (i = 0; i < wb->cur; i++) {
 		if (!IS_IN_BMP(wb->ucs[i])) {
 			aToStr.Append((char16_t)H_SURROGATE(wb->ucs[i]));
 			aToStr.Append((char16_t)L_SURROGATE(wb->ucs[i]));
 		} else {
@@ -646,35 +646,35 @@ workbuf_removevoid(workbuf_t *wb) {
 			}
 			j++;
 		}
 	}
 	wb->cur -= last - j;
 	wb->last = j;
 }
 
-nsresult  
+nsresult
 nsUnicodeNormalizer::NormalizeUnicodeNFD( const nsAString& aSrc, nsAString& aDest)
 {
   return mdn_normalize(false, false, aSrc, aDest);
 }
 
-nsresult  
+nsresult
 nsUnicodeNormalizer::NormalizeUnicodeNFC( const nsAString& aSrc, nsAString& aDest)
 {
   return mdn_normalize(true, false, aSrc, aDest);
 }
 
-nsresult  
+nsresult
 nsUnicodeNormalizer::NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest)
 {
   return mdn_normalize(false, true, aSrc, aDest);
 }
 
-nsresult  
+nsresult
 nsUnicodeNormalizer::NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest)
 {
   return mdn_normalize(true, true, aSrc, aDest);
 }
 
 bool
 nsUnicodeNormalizer::Compose(uint32_t a, uint32_t b, uint32_t *ab)
 {
--- a/intl/unicharutil/nsUnicodeNormalizer.h
+++ b/intl/unicharutil/nsUnicodeNormalizer.h
@@ -13,17 +13,17 @@
 
 nsresult NS_NewUnicodeNormalizer(nsISupports** oResult);
 
 
 class nsUnicodeNormalizer : public nsIUnicodeNormalizer {
 public:
    nsUnicodeNormalizer();
 
-   NS_DECL_ISUPPORTS 
+   NS_DECL_ISUPPORTS
 
    NS_IMETHOD NormalizeUnicodeNFD( const nsAString& aSrc, nsAString& aDest) override;
    NS_IMETHOD NormalizeUnicodeNFC( const nsAString& aSrc, nsAString& aDest) override;
    NS_IMETHOD NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest) override;
    NS_IMETHOD NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest) override;
 
 #if !ENABLE_INTL_API
    // Low-level access to the composition data needed for HarfBuzz callbacks;
--- a/intl/unicharutil/tests/NormalizationTest.cpp
+++ b/intl/unicharutil/tests/NormalizationTest.cpp
@@ -57,25 +57,25 @@ bool TestInvariants(testcaseLine* testLi
 {
   nsAutoString c1, c2, c3, c4, c5, normalized;
   c1 = nsDependentString((char16_t*)testLine->c1);
   c2 = nsDependentString((char16_t*)testLine->c2);
   c3 = nsDependentString((char16_t*)testLine->c3);
   c4 = nsDependentString((char16_t*)testLine->c4);
   c5 = nsDependentString((char16_t*)testLine->c5);
   bool rv = true;
- 
+
   /*
     1. The following invariants must be true for all conformant implementations
 
     NFC
       c2 ==  NFC(c1) ==  NFC(c2) ==  NFC(c3)
   */
   DEBUG_TESTCASE(c2);
-  NORMALIZE_AND_COMPARE(c2, c1, NFC, testLine->description);  
+  NORMALIZE_AND_COMPARE(c2, c1, NFC, testLine->description);
   NORMALIZE_AND_COMPARE(c2, c2, NFC, testLine->description);
   NORMALIZE_AND_COMPARE(c2, c3, NFC, testLine->description);
 
   /*
       c4 ==  NFC(c4) ==  NFC(c5)
   */
   DEBUG_TESTCASE(c4);
   NORMALIZE_AND_COMPARE(c4, c4, NFC, testLine->description);
@@ -258,25 +258,25 @@ TEST(NormalizationTest, Main) {
   }
   if (strlen(versionText) == 0) {
     printf("No testcases: to run the tests generate the header file using\n");
     printf(" perl genNormalizationData.pl\n");
     printf("in intl/unichar/tools and rebuild\n");
     return;
   }
 
-  printf("NormalizationTest: test nsIUnicodeNormalizer. UCD version: %s\n", 
-         versionText); 
+  printf("NormalizationTest: test nsIUnicodeNormalizer. UCD version: %s\n",
+         versionText);
 
   normalizer = nullptr;
   nsresult res;
   res = CallGetService(kUnicodeNormalizerCID, &normalizer);
-  
+
   ASSERT_FALSE(NS_FAILED(res)) << "GetService failed";
   ASSERT_NE(nullptr, normalizer);
 
   TestPart0();
   TestPart1();
   TestPart2();
   TestPart3();
-  
+
   NS_RELEASE(normalizer);
 }
--- a/intl/unicharutil/tools/ucgendat.c
+++ b/intl/unicharutil/tools/ucgendat.c
@@ -902,17 +902,17 @@ FILE *in;
         /*
          * Locate the first character property field.
          */
         for (i = 0; *s != 0 && i < 2; s++) {
             if (*s == ';')
               i++;
         }
         for (e = s; *e && *e != ';'; e++) ;
-    
+
         ordered_range_insert(code, s, e - s);
 
         /*
          * Locate the combining class code.
          */
         for (s = e; *s != 0 && i < 3; s++) {
             if (*s == ';')
               i++;
@@ -1179,17 +1179,17 @@ char *opath;
     /*
      * Calculate the byte count needed and pad the property counts array to a
      * 4-byte boundary.
      */
     if ((bytes = sizeof(unsigned short) * (NUMPROPS + 1)) & 3)
       bytes += 4 - (bytes & 3);
     nprops = bytes / sizeof(unsigned short);
     bytes += sizeof(unsigned long) * idx;
-        
+
     /*
      * Write the header.
      */
     fwrite((char *) hdr, sizeof(unsigned short), 2, out);
 
     /*
      * Write the byte count.
      */
--- a/intl/unicharutil/ucdata.c
+++ b/intl/unicharutil/ucdata.c
@@ -575,17 +575,17 @@ int reload;
     fread((char *) _ucdcmp_nodes, sizeof(unsigned long), size, in);
 
     /*
      * Do an endian swap if necessary.
      */
     if (hdr.bom == 0xfffe) {
         for (i = 0; i < size; i++)
           _ucdcmp_nodes[i] = endian_long(_ucdcmp_nodes[i]);
-    }        
+    }
 }
 
 static void
 #ifdef __STDC__
 _ucdcmp_unload(void)
 #else
 _ucdcmp_unload()
 #endif
@@ -709,17 +709,17 @@ int reload;
     fread((char *) _uccmcl_nodes, sizeof(unsigned long), _uccmcl_size, in);
 
     /*
      * Do an endian swap if necessary.
      */
     if (hdr.bom == 0xfffe) {
         for (i = 0; i < _uccmcl_size; i++)
           _uccmcl_nodes[i] = endian_long(_uccmcl_nodes[i]);
-    }        
+    }
 }
 
 static void
 #ifdef __STDC__
 _uccmcl_unload(void)
 #else
 _uccmcl_unload()
 #endif
@@ -824,17 +824,17 @@ int reload;
          * Determine the number of values that have to be adjusted.
          */
         size = (hdr.size.bytes -
                 (_ucnum_size * (sizeof(unsigned long) << 1))) /
             sizeof(short);
 
         for (i = 0; i < size; i++)
           _ucnum_vals[i] = endian_short(_ucnum_vals[i]);
-    }        
+    }
 }
 
 static void
 #ifdef __STDC__
 _ucnumb_unload(void)
 #else
 _ucnumb_unload()
 #endif
--- a/intl/unicharutil/util/nsBidiUtils.h
+++ b/intl/unicharutil/util/nsBidiUtils.h
@@ -13,28 +13,28 @@
     *  section BIDIRECTIONAL PROPERTIES
     *  for the detailed definition of the following categories
     *
     *  The values here must match the equivalents in %bidicategorycode in
     *  mozilla/intl/unicharutil/tools/genUnicodePropertyData.pl,
     *  and must also match the values used by ICU's UCharDirection.
     */
 
-enum nsCharType   { 
-  eCharType_LeftToRight              = 0, 
-  eCharType_RightToLeft              = 1, 
+enum nsCharType   {
+  eCharType_LeftToRight              = 0,
+  eCharType_RightToLeft              = 1,
   eCharType_EuropeanNumber           = 2,
   eCharType_EuropeanNumberSeparator  = 3,
   eCharType_EuropeanNumberTerminator = 4,
   eCharType_ArabicNumber             = 5,
   eCharType_CommonNumberSeparator    = 6,
   eCharType_BlockSeparator           = 7,
   eCharType_SegmentSeparator         = 8,
-  eCharType_WhiteSpaceNeutral        = 9, 
-  eCharType_OtherNeutral             = 10, 
+  eCharType_WhiteSpaceNeutral        = 9,
+  eCharType_OtherNeutral             = 10,
   eCharType_LeftToRightEmbedding     = 11,
   eCharType_LeftToRightOverride      = 12,
   eCharType_RightToLeftArabic        = 13,
   eCharType_RightToLeftEmbedding     = 14,
   eCharType_RightToLeftOverride      = 15,
   eCharType_PopDirectionalFormat     = 16,
   eCharType_DirNonSpacingMark        = 17,
   eCharType_BoundaryNeutral          = 18,
--- a/ipc/glue/MessageLink.cpp
+++ b/ipc/glue/MessageLink.cpp
@@ -64,17 +64,17 @@ ProcessLink::~ProcessLink()
 {
 #ifdef DEBUG
     mTransport = nullptr;
     mIOLoop = nullptr;
     mExistingListener = nullptr;
 #endif
 }
 
-void 
+void
 ProcessLink::Open(mozilla::ipc::Transport* aTransport, MessageLoop *aIOLoop, Side aSide)
 {
     NS_PRECONDITION(aTransport, "need transport layer");
 
     // FIXME need to check for valid channel
 
     mTransport = aTransport;
 
--- a/ipc/glue/MessageLink.h
+++ b/ipc/glue/MessageLink.h
@@ -82,17 +82,17 @@ class ProcessLink
     // The ProcessLink will register itself as the IPC::Channel::Listener on the
     // transport passed here. If the transport already has a listener registered
     // then a listener chain will be established (the ProcessLink listener
     // methods will be called first and may call some methods on the original
     // listener as well). Once the channel is closed (either via normal shutdown
     // or a pipe error) the chain will be destroyed and the original listener
     // will again be registered.
     void Open(Transport* aTransport, MessageLoop *aIOLoop, Side aSide);
-    
+
     // Run on the I/O thread, only when using inter-process link.
     // These methods acquire the monitor and forward to the
     // similarly named methods in AsyncChannel below
     // (OnMessageReceivedFromLink(), etc)
     virtual void OnMessageReceived(Message&& msg) override;
     virtual void OnChannelConnected(int32_t peer_pid) override;
     virtual void OnChannelError() override;
 
--- a/ipc/glue/WindowsMessageLoop.cpp
+++ b/ipc/glue/WindowsMessageLoop.cpp
@@ -52,18 +52,18 @@ using namespace mozilla::ipc::windows;
  * WS_EX_NOPARENTNOTIFY style on the child window) but the general problem is
  * persists. Once two HWNDs are parented we must not block their owning
  * threads when manipulating either HWND.
  *
  * Windows requires any application that hosts native HWNDs to always process
  * messages or risk deadlock. Given our architecture the only way to meet
  * Windows' requirement and allow for synchronous IPC messages is to pump a
  * miniature message loop during a sync IPC call. We avoid processing any
- * queued messages during the loop (with one exception, see below), but 
- * "nonqueued" messages (see 
+ * queued messages during the loop (with one exception, see below), but
+ * "nonqueued" messages (see
  * http://msdn.microsoft.com/en-us/library/ms644927(VS.85).aspx under the
  * section "Nonqueued messages") cannot be avoided. Those messages are trapped
  * in a special window procedure where we can either ignore the message or
  * process it in some fashion.
  *
  * Queued and "non-queued" messages will be processed during Interrupt calls if
  * modal UI related api calls block an Interrupt in-call in the child. To prevent
  * windows from freezing, and to allow concurrent processing of critical
@@ -376,18 +376,18 @@ ProcessOrDeferMessage(HWND hwnd,
     case WM_NCHITTEST:
     case WM_STYLECHANGING:  // Intentional fall-through.
     case WM_WINDOWPOSCHANGING:
     case WM_GETTEXTLENGTH: {
       return DefWindowProc(hwnd, uMsg, wParam, lParam);
     }
 
     // Just return, prevents DefWindowProc from messaging the window
-    // syncronously with other events, which may be deferred. Prevents 
-    // random shutdown of aero composition on the window. 
+    // syncronously with other events, which may be deferred. Prevents
+    // random shutdown of aero composition on the window.
     case WM_SYNCPAINT:
       return 0;
 
     // This message causes QuickTime to make re-entrant calls.
     // Simply discarding it doesn't seem to hurt anything.
     case WM_APP-1:
       return 0;
 
@@ -784,31 +784,31 @@ MessageChannel::ProcessNativeEventsInInt
 
   mTopFrame->mSpinNestedEvents = true;
 }
 
 // Spin loop is called in place of WaitFor*Notify when modal ui is being shown
 // in a child. There are some intricacies in using it however. Spin loop is
 // enabled for a particular Interrupt frame by the client calling
 // MessageChannel::ProcessNativeEventsInInterrupt().
-// This call can be nested for multiple Interrupt frames in a single plugin or 
+// This call can be nested for multiple Interrupt frames in a single plugin or
 // multiple unrelated plugins.
 void
 MessageChannel::SpinInternalEventLoop()
 {
   if (mozilla::PaintTracker::IsPainting()) {
     MOZ_CRASH("Don't spin an event loop while painting.");
   }
 
   NS_ASSERTION(mTopFrame && mTopFrame->mSpinNestedEvents,
                "Spinning incorrectly");
 
   // Nested windows event loop we trigger when the child enters into modal
   // event loops.
-  
+
   // Note, when we return, we always reset the notify worker event. So there's
   // no need to reset it on return here.
 
   do {
     MSG msg = { 0 };
 
     // Don't get wrapped up in here if the child connection dies.
     {
@@ -1165,17 +1165,17 @@ MessageChannel::WaitForSyncNotify(bool a
 bool
 MessageChannel::WaitForInterruptNotify()
 {
   mMonitor->AssertCurrentThreadOwns();
 
   MOZ_ASSERT(gUIThreadId, "InitUIThread was not called!");
 
   // Re-use sync notification wait code if this channel does not require
-  // Windows message deferral behavior. 
+  // Windows message deferral behavior.
   if (!(mFlags & REQUIRE_DEFERRED_MESSAGE_PROTECTION)) {
     return WaitForSyncNotify(true);
   }
 
   if (!InterruptStackDepth() && !AwaitingIncomingMessage()) {
     // There is currently no way to recover from this condition.
     MOZ_CRASH("StackDepth() is 0 in call to MessageChannel::WaitForNotify!");
   }
@@ -1444,17 +1444,17 @@ DeferredWindowPosMessage::Run()
 
   if (!IsWindow(windowPos.hwndInsertAfter)) {
     NS_WARNING("ZOrder change cannot be honored");
     windowPos.hwndInsertAfter = 0;
     windowPos.flags |= SWP_NOZORDER;
   }
 
 #ifdef DEBUG
-  BOOL ret = 
+  BOOL ret =
 #endif
   SetWindowPos(windowPos.hwnd, windowPos.hwndInsertAfter, windowPos.x,
                windowPos.y, windowPos.cx, windowPos.cy, windowPos.flags);
   NS_ASSERTION(ret, "SetWindowPos failed!");
 }
 
 DeferredCopyDataMessage::DeferredCopyDataMessage(HWND aHWnd,
                                                  UINT aMessage,
--- a/ipc/ipdl/test/cxx/IPDLUnitTests.template.cpp
+++ b/ipc/ipdl/test/cxx/IPDLUnitTests.template.cpp
@@ -29,17 +29,17 @@ namespace mozilla {
 namespace _ipdltest {
 
 void* gParentActor;
 IPDLUnitTestSubprocess* gSubprocess;
 
 void* gChildActor;
 
 // Note: in threaded mode, this will be non-null (for both parent and
-// child, since they share one set of globals).  
+// child, since they share one set of globals).
 Thread* gChildThread;
 MessageLoop *gParentMessageLoop;
 bool gParentDone;
 bool gChildDone;
 
 void
 DeleteChildActor();
 
@@ -73,17 +73,17 @@ IPDLUnitTestName()
 namespace {
 
 enum IPDLUnitTestType {
     NoneTest = 0,
 
 //-----------------------------------------------------------------------------
 //===== TEMPLATED =====
 ${ENUM_VALUES}
-    
+
     LastTest = ${LAST_ENUM}
 //-----------------------------------------------------------------------------
 };
 
 
 IPDLUnitTestType
 IPDLUnitTestFromString(const char* const aString)
 {
@@ -265,34 +265,34 @@ DeleteSubprocess(MessageLoop* uiLoop)
 void
 DeferredParentShutdown()
 {
     // ping to DeleteSubprocess
     XRE_GetIOMessageLoop()->PostTask(
         NewRunnableFunction(DeleteSubprocess, MessageLoop::current()));
 }
 
-void 
+void
 TryThreadedShutdown()
 {
-    // Stop if either: 
-    // - the child has not finished, 
+    // Stop if either:
+    // - the child has not finished,
     // - the parent has not finished,
     // - or this code has already executed.
     // Remember: this TryThreadedShutdown() task is enqueued
     // by both parent and child (though always on parent's msg loop).
     if (!gChildDone || !gParentDone || !gChildThread)
         return;
 
     delete gChildThread;
     gChildThread = 0;
     DeferredParentShutdown();
 }
 
-void 
+void
 ChildCompleted()
 {
     // Executes on the parent message loop once child has completed.
     gChildDone = true;
     TryThreadedShutdown();
 }
 
 void
--- a/ipc/ipdl/test/cxx/TestCrashCleanup.h
+++ b/ipc/ipdl/test/cxx/TestCrashCleanup.h
@@ -17,17 +17,17 @@ public:
     TestCrashCleanupParent();
     virtual ~TestCrashCleanupParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return false; }
 
     void Main();
 
-protected:    
+protected:
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (AbnormalShutdown != why)
             fail("unexpected destruction!");
         mCleanedUp = true;
     }
 
     bool mCleanedUp;
--- a/ipc/ipdl/test/cxx/TestDataStructures.cpp
+++ b/ipc/ipdl/test/cxx/TestDataStructures.cpp
@@ -88,17 +88,17 @@ mozilla::ipc::IPCResult TestDataStructur
     return IPC_OK();
 }
 
 mozilla::ipc::IPCResult TestDataStructuresParent::RecvTest3(
         const IntDouble& i1,
         const IntDouble& i2,
         IntDouble* o1,
         IntDouble* o2)
-{   
+{
     test_assert(42 == i1.get_int(), "wrong value");
     test_assert(4.0 == i2.get_double(), "wrong value");
 
     *o1 = i1;
     *o2 = i2;
 
     return IPC_OK();
 }
@@ -106,17 +106,17 @@ mozilla::ipc::IPCResult TestDataStructur
 mozilla::ipc::IPCResult TestDataStructuresParent::RecvTest4(
         InfallibleTArray<IntDouble>&& i1,
         InfallibleTArray<IntDouble>* o1)
 {
     test_assert(4 == i1.Length(), "wrong length");
     test_assert(1 == i1[0].get_int(), "wrong value");
     test_assert(2.0 == i1[1].get_double(), "wrong value");
     test_assert(3 == i1[2].get_int(), "wrong value");
-    test_assert(4.0 == i1[3].get_double(), "wrong value");    
+    test_assert(4.0 == i1[3].get_double(), "wrong value");
 
     *o1 = i1;
 
     return IPC_OK();
 }
 
 mozilla::ipc::IPCResult TestDataStructuresParent::RecvTest5(
         const IntDoubleArrays& i1,
@@ -252,17 +252,17 @@ mozilla::ipc::IPCResult TestDataStructur
     const InfallibleTArray<int>& i2a = i2.get_ArrayOfint();
     test_assert(3 == i2a.Length(), "wrong length");
     test_assert(1 == i2a[0], "wrong value");
     test_assert(2 == i2a[1], "wrong value");
     test_assert(3 == i2a[2], "wrong value");
 
     assert_arrays_equal(mKids, i3.get_ArrayOfPTestDataStructuresSubParent());
 
-    const InfallibleTArray<PTestDataStructuresSubParent*>& i4a = 
+    const InfallibleTArray<PTestDataStructuresSubParent*>& i4a =
         i4.get_ArrayOfActors()[0].get_ArrayOfPTestDataStructuresSubParent();
     assert_arrays_equal(mKids, i4a);
 
     *o1 = i1;
     *o2 = i2;
     *o3 = i3;
     *o4 = i4;
 
@@ -278,17 +278,17 @@ mozilla::ipc::IPCResult TestDataStructur
     const InfallibleTArray<int>& i2a = i1[1].get_ArrayOfint();
     test_assert(3 == i2a.Length(), "wrong length");
     test_assert(1 == i2a[0], "wrong value");
     test_assert(2 == i2a[1], "wrong value");
     test_assert(3 == i2a[2], "wrong value");
 
     assert_arrays_equal(mKids, i1[2].get_ArrayOfPTestDataStructuresSubParent());
 
-    const InfallibleTArray<PTestDataStructuresSubParent*>& i4a = 
+    const InfallibleTArray<PTestDataStructuresSubParent*>& i4a =
         i1[3].get_ArrayOfActors()[0].get_ArrayOfPTestDataStructuresSubParent();
     assert_arrays_equal(mKids, i4a);
 
     *o1 = i1;
 
     return IPC_OK();
 }
 
@@ -384,17 +384,17 @@ mozilla::ipc::IPCResult TestDataStructur
     const SActors& ia = i4.get_ArrayOfSActors()[0];
     test_assert(42 == ia.i(), "wrong value");
     assert_arrays_equal(ai, ia.ai());
     assert_arrays_equal(mKids, ia.apParent());
 
     const Structs& is = i5.get_ArrayOfStructs()[0];
     test_assert(42 == is.i(), "wrong value");
     assert_arrays_equal(ai, is.ai());
-    assert_arrays_equal(mKids, is.apParent());   
+    assert_arrays_equal(mKids, is.apParent());
 
     const SActors& isa = is.aa()[0];
     test_assert(42 == isa.i(), "wrong value");
     assert_arrays_equal(ai, isa.ai());
     assert_arrays_equal(mKids, isa.apParent());
 
     *o1 = i1;
     *o2 = i2;
@@ -874,17 +874,17 @@ TestDataStructuresChild::Test15()
     const SActors& oa = o4.get_ArrayOfSActors()[0];
     test_assert(42 == oa.i(), "wrong value");
     assert_arrays_equal(ai, oa.ai());
     assert_arrays_equal(mKids, oa.apChild());
 
     const Structs& os = o5.get_ArrayOfStructs()[0];
     test_assert(42 == os.i(), "wrong value");
     assert_arrays_equal(ai, os.ai());
-    assert_arrays_equal(mKids, os.apChild());   
+    assert_arrays_equal(mKids, os.apChild());
 
     const SActors& osa = os.aa()[0];
     test_assert(42 == osa.i(), "wrong value");
     assert_arrays_equal(ai, osa.ai());
     assert_arrays_equal(mKids, osa.apChild());
 
     printf("  passed %s\n", __FUNCTION__);
 }
--- a/ipc/ipdl/test/cxx/TestDataStructures.h
+++ b/ipc/ipdl/test/cxx/TestDataStructures.h
@@ -157,17 +157,17 @@ protected:
     {
         *rsu = su;
         return IPC_OK();
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
 private:
     InfallibleTArray<PTestDataStructuresSubParent*> mKids;
 };
 
--- a/ipc/ipdl/test/cxx/TestFailedCtor.h
+++ b/ipc/ipdl/test/cxx/TestFailedCtor.h
@@ -36,17 +36,17 @@ public:
 
 protected:
     virtual PTestFailedCtorSubParent* AllocPTestFailedCtorSubParent() override;
     virtual bool DeallocPTestFailedCtorSubParent(PTestFailedCtorSubParent* actor) override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (AbnormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestFailedCtorChild :
     public PTestFailedCtorChild
--- a/ipc/ipdl/test/cxx/TestInterruptErrorCleanup.h
+++ b/ipc/ipdl/test/cxx/TestInterruptErrorCleanup.h
@@ -18,21 +18,21 @@ public:
     virtual ~TestInterruptErrorCleanupParent();
 
     static bool RunTestInProcesses() { return true; }
     // FIXME/bug 703323 Could work if modified
     static bool RunTestInThreads() { return false; }
 
     void Main();
 
-protected:    
+protected:
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (AbnormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
     }
 
     virtual void ProcessingError(Result aCode, const char* aReason) override;
 
     bool mGotProcessingError;
 };
 
 
--- a/ipc/ipdl/test/cxx/TestInterruptShutdownRace.h
+++ b/ipc/ipdl/test/cxx/TestInterruptShutdownRace.h
@@ -28,17 +28,17 @@ public:
     virtual mozilla::ipc::IPCResult RecvOrphan() override;
 
 protected:
     void StartShuttingDown();
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (AbnormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
     }
 };
 
 
 class TestInterruptShutdownRaceChild :
     public PTestInterruptShutdownRaceChild
 {
 public:
--- a/ipc/ipdl/test/cxx/TestJSON.h
+++ b/ipc/ipdl/test/cxx/TestJSON.h
@@ -49,17 +49,17 @@ protected:
     {
         delete actor;
         return true;
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
     PTestHandleParent* mKid;
 };
 
 
--- a/ipc/ipdl/test/cxx/TestMultiMgrs.h
+++ b/ipc/ipdl/test/cxx/TestMultiMgrs.h
@@ -119,17 +119,17 @@ protected:
     {
         delete actor;
         return true;
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 //-----------------------------------------------------------------------------
 // Child side
 //
@@ -231,17 +231,17 @@ protected:
     {
         delete actor;
         return true;
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitChild();
     }
 };
 
 
 } // namespace _ipdltest
 } // namespace mozilla
--- a/ipc/ipdl/test/cxx/TestNestedLoops.h
+++ b/ipc/ipdl/test/cxx/TestNestedLoops.h
@@ -17,25 +17,25 @@ public:
     TestNestedLoopsParent();
     virtual ~TestNestedLoopsParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual mozilla::ipc::IPCResult RecvNonce() override;
 
     void BreakNestedLoop();
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
     bool mBreakNestedLoop;
 };
 
 
--- a/ipc/ipdl/test/cxx/TestOffMainThreadPainting.cpp
+++ b/ipc/ipdl/test/cxx/TestOffMainThreadPainting.cpp
@@ -128,17 +128,17 @@ TestOffMainThreadPaintingChild::TestOffM
  : mNextTxnId(1)
 {
 }
 
 TestOffMainThreadPaintingChild::~TestOffMainThreadPaintingChild()
 {
 }
 
-ipc::IPCResult 
+ipc::IPCResult
 TestOffMainThreadPaintingChild::RecvStartTest(ipc::Endpoint<PTestPaintThreadChild>&& aEndpoint)
 {
   mPaintThread = MakeUnique<base::Thread>("PaintThread");
   if (!mPaintThread->Start()) {
     return IPC_FAIL_NO_REASON(this);
   }
 
   mPaintActor = new TestPaintThreadChild(GetIPCChannel());
@@ -223,17 +223,17 @@ TestPaintThreadParent::ActorDestroy(Acto
 }
 
 void
 TestPaintThreadParent::DeallocPTestPaintThreadParent()
 {
   Release();
 }
 
-/************************* 
+/*************************
  * PTestPaintThreadChild *
  *************************/
 
 TestPaintThreadChild::TestPaintThreadChild(MessageChannel* aMainChannel)
  : mCanSend(false),
    mMainChannel(aMainChannel)
 {
 }
--- a/ipc/ipdl/test/cxx/TestRPC.h
+++ b/ipc/ipdl/test/cxx/TestRPC.h
@@ -25,17 +25,17 @@ public:
     mozilla::ipc::IPCResult RecvTest1_Start(uint32_t* aResult) override;
     mozilla::ipc::IPCResult RecvTest1_InnerEvent(uint32_t* aResult) override;
     mozilla::ipc::IPCResult RecvTest2_Start() override;
     mozilla::ipc::IPCResult RecvTest2_OutOfOrder() override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         if (!reentered_)
             fail("never processed raced RPC call!");
         if (!resolved_first_cpow_)
             fail("never resolved first CPOW!");
         passed("ok");
         QuitParent();
     }
 
--- a/ipc/ipdl/test/cxx/TestRaceDeferral.h
+++ b/ipc/ipdl/test/cxx/TestRaceDeferral.h
@@ -28,17 +28,17 @@ protected:
 
     virtual mozilla::ipc::RacyInterruptPolicy
     MediateInterruptRace(const MessageInfo& parent,
                          const MessageInfo& child) override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
     bool mProcessedLose;
 };
 
 
--- a/ipc/ipdl/test/cxx/TestRacyInterruptReplies.h
+++ b/ipc/ipdl/test/cxx/TestRacyInterruptReplies.h
@@ -17,25 +17,25 @@ public:
     TestRacyInterruptRepliesParent();
     virtual ~TestRacyInterruptRepliesParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual mozilla::ipc::IPCResult RecvA_() override;
 
     virtual mozilla::ipc::IPCResult Answer_R(int* replyNum) override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
 private:
     int mReplyNum;
 };
 
--- a/ipc/ipdl/test/cxx/TestRacyReentry.h
+++ b/ipc/ipdl/test/cxx/TestRacyReentry.h
@@ -23,17 +23,17 @@ public:
     void Main();
 
 protected:
     virtual mozilla::ipc::IPCResult AnswerE() override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 
     bool mRecvdE;
 };
 
 
--- a/ipc/ipdl/test/cxx/TestRacyUndefer.h
+++ b/ipc/ipdl/test/cxx/TestRacyUndefer.h
@@ -17,27 +17,27 @@ public:
     TestRacyUndeferParent();
     virtual ~TestRacyUndeferParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual mozilla::ipc::IPCResult AnswerSpam() override;
 
     virtual mozilla::ipc::IPCResult AnswerRaceWinTwice() override;
 
     virtual mozilla::ipc::IPCResult RecvDone() override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestRacyUndeferChild :
     public PTestRacyUndeferChild
--- a/ipc/ipdl/test/cxx/TestSanity.h
+++ b/ipc/ipdl/test/cxx/TestSanity.h
@@ -17,24 +17,24 @@ public:
     TestSanityParent();
     virtual ~TestSanityParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual mozilla::ipc::IPCResult RecvPong(const int& one, const float& zeroPtTwoFive,
                           const uint8_t& dummy) override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestSanityChild :
     public PTestSanityChild
--- a/ipc/ipdl/test/cxx/TestSelfManageRoot.h
+++ b/ipc/ipdl/test/cxx/TestSelfManageRoot.h
@@ -23,17 +23,17 @@ public:
         MOZ_COUNT_CTOR(TestSelfManageParent);
     }
     virtual ~TestSelfManageParent() {
         MOZ_COUNT_DTOR(TestSelfManageParent);
     }
 
     ActorDestroyReason mWhy;
 
-protected:    
+protected:
     virtual PTestSelfManageParent* AllocPTestSelfManageParent() override {
         return new TestSelfManageParent();
     }
 
     virtual bool DeallocPTestSelfManageParent(PTestSelfManageParent* a) override {
         return true;
     }
 
@@ -53,29 +53,29 @@ public:
         MOZ_COUNT_DTOR(TestSelfManageRootParent);
     }
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual PTestSelfManageParent* AllocPTestSelfManageParent() override {
         return new TestSelfManageParent();
     }
 
     virtual bool DeallocPTestSelfManageParent(PTestSelfManageParent* a) override {
         return true;
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 //-----------------------------------------------------------------------------
 // Child side
 
@@ -85,17 +85,17 @@ class TestSelfManageChild :
 public:
     TestSelfManageChild() {
         MOZ_COUNT_CTOR(TestSelfManageChild);
     }
     virtual ~TestSelfManageChild() {
         MOZ_COUNT_DTOR(TestSelfManageChild);
     }
 
-protected:    
+protected:
     virtual PTestSelfManageChild* AllocPTestSelfManageChild() override {
         return new TestSelfManageChild();
     }
 
     virtual bool DeallocPTestSelfManageChild(PTestSelfManageChild* a) override {
         delete a;
         return true;
     }
@@ -111,30 +111,30 @@ public:
         MOZ_COUNT_CTOR(TestSelfManageRootChild);
     }
     virtual ~TestSelfManageRootChild() {
         MOZ_COUNT_DTOR(TestSelfManageRootChild);
     }
 
     void Main();
 
-protected:    
+protected:
     virtual PTestSelfManageChild* AllocPTestSelfManageChild() override {
         return new TestSelfManageChild();
     }
 
     virtual bool DeallocPTestSelfManageChild(PTestSelfManageChild* a) override {
         delete a;
         return true;
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         QuitChild();
     }
 };
 
 } // namespace _ipdltest
 } // namespace mozilla
 
 
--- a/ipc/ipdl/test/cxx/TestShmem.h
+++ b/ipc/ipdl/test/cxx/TestShmem.h
@@ -26,17 +26,17 @@ protected:
     virtual mozilla::ipc::IPCResult RecvTake(
             Shmem&& mem,
             Shmem&& unsafe,
             const size_t& expectedSize) override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestShmemChild :
     public PTestShmemChild
--- a/ipc/ipdl/test/cxx/TestSyncError.h
+++ b/ipc/ipdl/test/cxx/TestSyncError.h
@@ -17,28 +17,28 @@ public:
     TestSyncErrorParent();
     virtual ~TestSyncErrorParent();
 
     static bool RunTestInProcesses() { return true; }
     static bool RunTestInThreads() { return true; }
 
     void Main();
 
-protected:    
+protected:
     virtual mozilla::ipc::IPCResult RecvError() override;
 
     virtual void ProcessingError(Result aCode, const char* aReason) override
     {
         // Ignore errors
     }
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestSyncErrorChild :
     public PTestSyncErrorChild
--- a/ipc/ipdl/test/cxx/TestSyncWakeup.h
+++ b/ipc/ipdl/test/cxx/TestSyncWakeup.h
@@ -27,17 +27,17 @@ protected:
 
     virtual mozilla::ipc::IPCResult RecvSync1() override;
 
     virtual mozilla::ipc::IPCResult RecvSync2() override;
 
     virtual void ActorDestroy(ActorDestroyReason why) override
     {
         if (NormalShutdown != why)
-            fail("unexpected destruction!");  
+            fail("unexpected destruction!");
         passed("ok");
         QuitParent();
     }
 };
 
 
 class TestSyncWakeupChild :
     public PTestSyncWakeupChild
--- a/ipc/ipdl/test/cxx/TestUrgency.cpp
+++ b/ipc/ipdl/test/cxx/TestUrgency.cpp
@@ -85,30 +85,30 @@ enum {
   kSecondTestBegin,
   kSecondTestGotReply,
 };
 
 mozilla::ipc::IPCResult
 TestUrgencyChild::RecvStart()
 {
   uint32_t result;
-  
+
   // Send a synchronous message, expect to get an urgent message while
   // blocked.
   test_ = kFirstTestBegin;
   if (!SendTest1(&result))
     fail("calling SendTest1");
   if (result != 99)
     fail("bad result in RecvStart");
   if (test_ != kFirstTestGotReply)
     fail("never received urgent message");
 
   // Initiate the next test by sending an asynchronous message, then becoming
   // blocked. This tests that the urgent message is still delivered properly,
-  // and that the parent does not try to service the sync 
+  // and that the parent does not try to service the sync
   test_ = kSecondTestBegin;
   if (!SendTest2())
     fail("calling SendTest2");
   if (!SendTest3(&result))
     fail("calling SendTest3");
   if (test_ != kSecondTestGotReply)
     fail("never received urgent message #2");
   if (result != 1000)
--- a/layout/base/FrameProperties.h
+++ b/layout/base/FrameProperties.h
@@ -129,17 +129,17 @@ struct FramePropertyTypeHelper<SmallValu
 };
 
 }
 
 /**
  * The FrameProperties class is optimized for storing 0 or 1 properties on
  * a given frame. Storing very large numbers of properties on a single
  * frame will not be efficient.
- * 
+ *
  * Property values are passed as void* but do not actually have to be
  * valid pointers. You can use NS_INT32_TO_PTR/NS_PTR_TO_INT32 to
  * store int32_t values. Null/zero values can be stored and retrieved.
  * Of course, the destructor function (if any) must handle such values
  * correctly.
  */
 class FrameProperties
 {
--- a/layout/base/nsBidiPresUtils.cpp
+++ b/layout/base/nsBidiPresUtils.cpp
@@ -169,17 +169,17 @@ struct MOZ_STACK_CLASS BidiParagraphData
        * written with the assumption that even if the browser had no support
        * for right-to-left text rendering, it would use native widgets with
        * bidi support to display form controls.
        *
        * We also use logical order in XUL elements, since we expect that if a
        * XUL element appears in a visual page, it will be generated by an XBL
        * binding and contain localized text which will be in logical order.
        */
-      for (nsIContent* content = aBlockFrame->GetContent() ; content; 
+      for (nsIContent* content = aBlockFrame->GetContent() ; content;
            content = content->GetParent()) {
         if (content->IsNodeOfType(nsINode::eHTML_FORM_CONTROL) ||
             content->IsXULElement()) {
           mIsVisual = false;
           break;
         }
       }
     }
@@ -213,17 +213,17 @@ struct MOZ_STACK_CLASS BidiParagraphData
     return dir;
   }
 
   nsresult CountRuns(int32_t *runCount)
   {
     return mPresContext->GetBidiEngine().CountRuns(runCount);
   }
 
-  nsresult GetLogicalRun(int32_t aLogicalStart, 
+  nsresult GetLogicalRun(int32_t aLogicalStart,
                          int32_t* aLogicalLimit,
                          nsBidiLevel* aLevel)
   {
     nsresult rv =
       mPresContext->GetBidiEngine().GetLogicalRun(aLogicalStart,
                                                    aLogicalLimit, aLevel);
     if (mIsVisual || NS_FAILED(rv))
       *aLevel = GetParaLevel();
@@ -536,51 +536,51 @@ SplitInlineAncestors(nsContainerFrame* a
   nsIPresShell* presShell = presContext->PresShell();
   nsIFrame* frame = aFrame;
   nsContainerFrame* parent = aParent;
   nsContainerFrame* newParent;
 
   while (IsBidiSplittable(parent)) {
     nsContainerFrame* grandparent = parent->GetParent();
     NS_ASSERTION(grandparent, "Couldn't get parent's parent in nsBidiPresUtils::SplitInlineAncestors");
-    
+
     // Split the child list after |frame|, unless it is the last child.
     if (!frame || frame->GetNextSibling()) {
-    
+
       newParent = static_cast<nsContainerFrame*>(presShell->FrameConstructor()->
         CreateContinuingFrame(presContext, parent, grandparent, false));
 
       nsFrameList tail = parent->StealFramesAfter(frame);
 
       // Reparent views as necessary
       nsresult rv;
       rv = nsContainerFrame::ReparentFrameViewList(tail, parent, newParent);
       if (NS_FAILED(rv)) {
         return rv;
       }
 
       // The parent's continuation adopts the siblings after the split.
       newParent->InsertFrames(nsIFrame::kNoReflowPrincipalList, nullptr, tail);
-    
+
       // The list name kNoReflowPrincipalList would indicate we don't want reflow
       nsFrameList temp(newParent, newParent);
       grandparent->InsertFrames(nsIFrame::kNoReflowPrincipalList, parent, temp);
     }
-    
+
     frame = parent;
     parent = grandparent;
   }
-  
+
   return NS_OK;
 }
 
 static void
 MakeContinuationFluid(nsIFrame* aFrame, nsIFrame* aNext)
 {
-  NS_ASSERTION (!aFrame->GetNextInFlow() || aFrame->GetNextInFlow() == aNext, 
+  NS_ASSERTION (!aFrame->GetNextInFlow() || aFrame->GetNextInFlow() == aNext,
                 "next-in-flow is not next continuation!");
   aFrame->SetNextInFlow(aNext);
 
   NS_ASSERTION (!aNext->GetPrevInFlow() || aNext->GetPrevInFlow() == aFrame,
                 "prev-in-flow is not prev continuation!");
   aNext->SetPrevInFlow(aFrame);
 }
 
@@ -633,17 +633,17 @@ CreateContinuation(nsIFrame*  aFrame,
   nsPresContext *presContext = aFrame->PresContext();
   nsIPresShell *presShell = presContext->PresShell();
   NS_ASSERTION(presShell, "PresShell must be set on PresContext before calling nsBidiPresUtils::CreateContinuation");
 
   nsContainerFrame* parent = aFrame->GetParent();
   NS_ASSERTION(parent, "Couldn't get frame parent in nsBidiPresUtils::CreateContinuation");
 
   nsresult rv = NS_OK;
-  
+
   // Have to special case floating first letter frames because the continuation
   // doesn't go in the first letter frame. The continuation goes with the rest
   // of the text that the first letter frame was made out of.
   if (parent->IsLetterFrame() && parent->IsFloating()) {
     nsFirstLetterFrame* letterFrame = do_QueryFrame(parent);
     rv = letterFrame->CreateContinuationForFloatingParent(presContext, aFrame,
                                                           aNewFrame, aIsFluid);
     return rv;
@@ -652,17 +652,17 @@ CreateContinuation(nsIFrame*  aFrame,
   *aNewFrame = presShell->FrameConstructor()->
     CreateContinuingFrame(presContext, aFrame, parent, aIsFluid);
 
   // The list name kNoReflowPrincipalList would indicate we don't want reflow
   // XXXbz this needs higher-level framelist love
   nsFrameList temp(*aNewFrame, *aNewFrame);
   parent->InsertFrames(nsIFrame::kNoReflowPrincipalList, aFrame, temp);
 
-  if (!aIsFluid) {  
+  if (!aIsFluid) {
     // Split inline ancestor frames
     rv = SplitInlineAncestors(parent, aFrame);
     if (NS_FAILED(rv)) {
       return rv;
     }
   }
 
   return NS_OK;
@@ -791,17 +791,17 @@ nsBidiPresUtils::ResolveParagraph(BidiPa
   int32_t     frameCount     = aBpd->FrameCount();
   int32_t     contentOffset  = 0;   // offset of current frame in its content node
   bool        isTextFrame    = false;
   nsIFrame*   frame = nullptr;
   nsIContent* content = nullptr;
   int32_t     contentTextLength = 0;
 
   nsLineBox* currentLine = nullptr;
-  
+
 #ifdef DEBUG
 #ifdef NOISY_BIDI
   printf("Before Resolve(), mCurrentBlock=%p, mBuffer='%s', frameCount=%d, runCount=%d\n",
          (void*)aBpd->mCurrentBlock, NS_ConvertUTF16toUTF8(aBpd->mBuffer).get(), frameCount, runCount);
 #ifdef REALLY_NOISY_BIDI
   printf(" block frame tree=:\n");
   aBpd->mCurrentBlock->List(stdout, 0);
 #endif
@@ -930,17 +930,17 @@ nsBidiPresUtils::ResolveParagraph(BidiPa
           }
           nextBidi->AdjustOffsetsForBidi(runEnd,
                                          contentOffset + fragmentLength);
           frame = nextBidi;
           contentOffset = runEnd;
         } // if (runLength < fragmentLength)
         else {
           if (contentOffset + fragmentLength == contentTextLength) {
-            /* 
+            /*
              * We have finished all the text in this content node. Convert any
              * further non-fluid continuations to fluid continuations and advance
              * frameIndex to the last frame in the content node
              */
             int32_t newIndex = aBpd->GetLastFrameForContent(content);
             if (newIndex > frameIndex) {
               currentLine->MarkDirty();
               RemoveBidiContinuation(aBpd, frame, frameIndex, newIndex);
@@ -1130,17 +1130,17 @@ nsBidiPresUtils::TraverseFrames(nsBlockI
         if (content != aBpd->mPrevContent) {
           aBpd->mPrevContent = content;
           if (!frame->StyleText()->NewlineIsSignificant(
                 static_cast<nsTextFrame*>(frame))) {
             content->AppendTextTo(aBpd->mBuffer);
           } else {
             /*
              * For preformatted text we have to do bidi resolution on each line
-             * separately. 
+             * separately.
              */
             nsAutoString text;
             content->AppendTextTo(text);
             nsIFrame* next;
             do {
               next = nullptr;
 
               int32_t start, end;
@@ -1166,17 +1166,17 @@ nsBidiPresUtils::TraverseFrames(nsBlockI
               ++endLine;
 
               /*
                * If the frame ends before the new line, save the text and move
                * into the next continuation
                */
               aBpd->AppendString(Substring(text, start,
                                            std::min(end, endLine) - start));
-              while (end < endLine && nextSibling) { 
+              while (end < endLine && nextSibling) {
                 aBpd->AdvanceAndAppendFrame(&frame, aLineIter, &nextSibling);
                 NS_ASSERTION(frame, "Premature end of continuation chain");
                 frame->GetOffsets(start, end);
                 aBpd->AppendString(Substring(text, start,
                                              std::min(end, endLine) - start));
               }
 
               if (end < endLine) {
@@ -1191,17 +1191,17 @@ nsBidiPresUtils::TraverseFrames(nsBlockI
                  * continuation, we need to make the continuation fluid *before*
                  * resetting the length of the current frame. Otherwise
                  * nsTextFrame::SetLength won't set the continuation frame's
                  * text offsets correctly.
                  *
                  * On the other hand, if the frame doesn't have a continuation,
                  * we need to create one *after* resetting the length, or
                  * CreateContinuingFrame will complain that there is no more
-                 * content for the continuation.               
+                 * content for the continuation.
                  */
                 next = frame->GetNextInFlow();
                 if (!next) {
                   // If the frame already has a bidi continuation, make it fluid
                   next = frame->GetNextContinuation();
                   if (next) {
                     MakeContinuationFluid(frame, next);
                     JoinInlineAncestors(frame);
@@ -1240,17 +1240,17 @@ nsBidiPresUtils::TraverseFrames(nsBlockI
 
             } while (next);
           }
         }
       } else if (LayoutFrameType::Br == frameType) {
         // break frame -- append line separator
         aBpd->AppendUnichar(kLineSeparator);
         ResolveParagraphWithinBlock(aBpd);
-      } else { 
+      } else {
         // other frame type -- see the Unicode Bidi Algorithm:
         // "...inline objects (such as graphics) are treated as if they are ...
         // U+FFFC"
         // <wbr>, however, is treated as U+200B ZERO WIDTH SPACE. See
         // http://dev.w3.org/html5/spec/Overview.html#phrasing-content-1
         aBpd->AppendUnichar(content->IsHTMLElement(nsGkAtoms::wbr) ?
                             kZWSP : kObjectSubstitute);
         if (!frame->IsInlineOutside()) {
@@ -1797,66 +1797,66 @@ nsBidiPresUtils::RepositionInlineFrames(
 bool
 nsBidiPresUtils::CheckLineOrder(nsIFrame*  aFirstFrameOnLine,
                                 int32_t    aNumFramesOnLine,
                                 nsIFrame** aFirstVisual,
                                 nsIFrame** aLastVisual)
 {
   BidiLineData bld(aFirstFrameOnLine, aNumFramesOnLine);
   int32_t count = bld.FrameCount();
-  
+
   if (aFirstVisual) {
     *aFirstVisual = bld.VisualFrameAt(0);
   }
   if (aLastVisual) {
     *aLastVisual = bld.VisualFrameAt(count-1);
   }
-  
+
   return bld.mIsReordered;
 }
 
 nsIFrame*
 nsBidiPresUtils::GetFrameToRightOf(const nsIFrame*  aFrame,
                                    nsIFrame*        aFirstFrameOnLine,
                                    int32_t          aNumFramesOnLine)
 {
   BidiLineData bld(aFirstFrameOnLine, aNumFramesOnLine);
 
   int32_t count = bld.mVisualFrames.Length();
 
   if (aFrame == nullptr && count)
     return bld.VisualFrameAt(0);
-  
+
   for (int32_t i = 0; i < count - 1; i++) {
     if (bld.VisualFrameAt(i) == aFrame) {
       return bld.VisualFrameAt(i+1);
     }
   }
-  
+
   return nullptr;
 }
 
 nsIFrame*
 nsBidiPresUtils::GetFrameToLeftOf(const nsIFrame*  aFrame,
                                   nsIFrame*        aFirstFrameOnLine,
                                   int32_t          aNumFramesOnLine)
 {
   BidiLineData bld(aFirstFrameOnLine, aNumFramesOnLine);
 
   int32_t count = bld.mVisualFrames.Length();
-  
+
   if (aFrame == nullptr && count)
     return bld.VisualFrameAt(count-1);
-  
+
   for (int32_t i = 1; i < count; i++) {
     if (bld.VisualFrameAt(i) == aFrame) {
       return bld.VisualFrameAt(i-1);
     }
   }
-  
+
   return nullptr;
 }
 
 inline nsresult
 nsBidiPresUtils::EnsureBidiContinuation(nsIFrame*       aFrame,
                                         nsIFrame**      aNewFrame,
                                         int32_t         aStart,
                                         int32_t         aEnd)
@@ -1904,18 +1904,18 @@ nsBidiPresUtils::RemoveBidiContinuation(
 
 nsresult
 nsBidiPresUtils::FormatUnicodeText(nsPresContext*  aPresContext,
                                    char16_t*       aText,
                                    int32_t&        aTextLength,
                                    nsCharType      aCharType)
 {
   nsresult rv = NS_OK;
-  // ahmed 
-  //adjusted for correct numeral shaping  
+  // ahmed
+  //adjusted for correct numeral shaping
   uint32_t bidiOptions = aPresContext->GetBidi();
   switch (GET_BIDI_OPTION_NUMERAL(bidiOptions)) {
 
     case IBMBIDI_NUMERAL_HINDI:
       HandleNumbers(aText,aTextLength,IBMBIDI_NUMERAL_HINDI);
       break;
 
     case IBMBIDI_NUMERAL_ARABIC:
@@ -1983,17 +1983,17 @@ nsBidiPresUtils::StripBidiControlCharact
       ++stripLen;
     }
     else {
       aText[i - stripLen] = aText[i];
     }
   }
   aTextLength -= stripLen;
 }
- 
+
 #if 0 // XXX: for the future use ???
 void
 RemoveDiacritics(char16_t* aText,
                  int32_t&   aTextLength)
 {
   if (aText && (aTextLength > 0) ) {
     int32_t offset = 0;
 
@@ -2188,17 +2188,17 @@ nsresult nsBidiPresUtils::ProcessText(co
       for(int nPosResolve=0; nPosResolve<aPosResolveCount; ++nPosResolve)
       {
         nsBidiPositionResolve* posResolve = &aPosResolve[nPosResolve];
         /*
          * Did we already resolve this position's visual metric? If so, skip.
          */
         if (posResolve->visualLeftTwips != kNotFound)
            continue;
-           
+
         /*
          * First find out if the logical position is within this run.
          */
         if (start <= posResolve->logicalIndex &&
             start + subRunLength > posResolve->logicalIndex) {
           /*
            * If this run is only one character long, we have an easy case:
            * the visual position is the x-coord of the start of the run
--- a/layout/base/nsBidiPresUtils.h
+++ b/layout/base/nsBidiPresUtils.h
@@ -95,17 +95,17 @@ struct nsBidiPositionResolve
 };
 
 class nsBidiPresUtils {
 public:
   typedef mozilla::gfx::DrawTarget DrawTarget;
 
   nsBidiPresUtils();
   ~nsBidiPresUtils();
-  
+
   /**
    * Interface for the processor used by ProcessText. Used by process text to
    * collect information about the width of subruns and to notify where each
    * subrun should be rendered.
    */
   class BidiProcessor {
   public:
     virtual ~BidiProcessor() { }
@@ -133,17 +133,17 @@ public:
      * Will be invoked before DrawText.
      */
     virtual nscoord GetWidth() = 0;
 
     /**
      * Draws the text given in SetText to a rendering context. If SetText was
      * not called with valid parameters, the result of this call is undefined.
      * This call is guaranteed to only be called once between SetText calls.
-     * 
+     *
      * @param aXOffset The offset of the left side of the substring to be drawn
      *  from the beginning of the overall string passed to ProcessText.
      * @param aWidth The width returned by GetWidth.
      */
     virtual void DrawText(nscoord   aXOffset,
                           nscoord   aWidth) = 0;
   };
 
@@ -159,31 +159,31 @@ public:
   static nsresult ResolveParagraph(BidiParagraphData* aBpd);
   static void ResolveParagraphWithinBlock(BidiParagraphData* aBpd);
 
   /**
    * Reorder this line using Bidi engine.
    * Update frame array, following the new visual sequence.
    *
    * @return total inline size
-   * 
+   *
    * @lina 05/02/2000
    */
   static nscoord ReorderFrames(nsIFrame* aFirstFrameOnLine,
                                int32_t aNumFramesOnLine,
                                mozilla::WritingMode aLineWM,
                                const nsSize& aContainerSize,
                                nscoord aStart);
 
   /**
    * Format Unicode text, taking into account bidi capabilities
    * of the platform. The formatting includes: reordering, Arabic shaping,
    * symmetric and numeric swapping, removing control characters.
    *
-   * @lina 06/18/2000 
+   * @lina 06/18/2000
    */
   static nsresult FormatUnicodeText(nsPresContext*  aPresContext,
                                     char16_t*       aText,
                                     int32_t&        aTextLength,
                                     nsCharType      aCharType);
 
   /**
    * Reorder plain text using the Unicode Bidi algorithm and send it to
@@ -221,17 +221,17 @@ public:
                              nsBidiPositionResolve* aPosResolve = nullptr,
                              int32_t                aPosResolveCount = 0)
   {
     return ProcessTextForRenderingContext(aText, aLength, aBaseLevel, aPresContext, aRenderingContext,
                                           aTextRunConstructionDrawTarget,
                                           aFontMetrics,
                                           MODE_DRAW, aX, aY, aPosResolve, aPosResolveCount, nullptr);
   }
-  
+
   static nscoord MeasureTextWidth(const char16_t*     aText,
                                   int32_t              aLength,
                                   nsBidiLevel          aBaseLevel,
                                   nsPresContext*       aPresContext,
                                   gfxContext&          aRenderingContext,
                                   nsFontMetrics&       aFontMetrics)
   {
     nscoord length;
@@ -261,30 +261,30 @@ public:
    * @param aFrame : We're looking for the frame to the right of this frame.
    *                 If null, return the leftmost frame on the line.
    * @param aFirstFrameOnLine : first frame of the line to be tested
    * @param aNumFramesOnLine : number of frames on this line
    */
   static nsIFrame* GetFrameToRightOf(const nsIFrame*  aFrame,
                                      nsIFrame*        aFirstFrameOnLine,
                                      int32_t          aNumFramesOnLine);
-    
+
   /**
    * Get the frame to the left of the given frame, on the same line.
    * @param aFrame : We're looking for the frame to the left of this frame.
    *                 If null, return the rightmost frame on the line.
    * @param aFirstFrameOnLine : first frame of the line to be tested
    * @param aNumFramesOnLine : number of frames on this line
    */
   static nsIFrame* GetFrameToLeftOf(const nsIFrame*  aFrame,
                                     nsIFrame*        aFirstFrameOnLine,
                                     int32_t          aNumFramesOnLine);
 
   static nsIFrame* GetFirstLeaf(nsIFrame* aFrame);
-    
+
   /**
    * Get the bidi data of the given (inline) frame.
    */
   static mozilla::FrameBidiData GetFrameBidiData(nsIFrame* aFrame);
 
   /**
    * Get the bidi embedding level of the given (inline) frame.
    */
@@ -507,25 +507,25 @@ private:
    *  @return total inline size
    *
    *  @lina 04/11/2000
    */
   static nscoord RepositionInlineFrames(BidiLineData* aBld,
                                         mozilla::WritingMode aLineWM,
                                         const nsSize& aContainerSize,
                                         nscoord aStart);
-  
+
   /**
    * Helper method for Resolve()
    * Truncate a text frame to the end of a single-directional run and possibly
    * create a continuation frame for the remainder of its content.
    *
    * @param aFrame       the original frame
    * @param aNewFrame    [OUT] the new frame that was created
-   * @param aStart       [IN] the start of the content mapped by aFrame (and 
+   * @param aStart       [IN] the start of the content mapped by aFrame (and
    *                          any fluid continuations)
    * @param aEnd         [IN] the offset of the end of the single-directional
    *                          text run.
    * @see Resolve()
    * @see RemoveBidiContinuation()
    */
   static inline
   nsresult EnsureBidiContinuation(nsIFrame*       aFrame,
@@ -552,14 +552,14 @@ private:
                                 const char16_t* aText,
                                 int32_t&         aOffset,
                                 int32_t          aCharTypeLimit,
                                 int32_t&         aRunLimit,
                                 int32_t&         aRunLength,
                                 int32_t&         aRunCount,
                                 uint8_t&         aCharType,
                                 uint8_t&         aPrevCharType);
-  
+
   static void StripBidiControlCharacters(char16_t* aText,
                                          int32_t&   aTextLength);
 };
 
 #endif /* nsBidiPresUtils_h___ */
--- a/layout/base/nsCSSColorUtils.cpp
+++ b/layout/base/nsCSSColorUtils.cpp
@@ -44,24 +44,24 @@ void NS_GetSpecial3DColors(nscolor aResu
 
   uint8_t rb = NS_GET_R(aBorderColor);
   uint8_t gb = NS_GET_G(aBorderColor);
   uint8_t bb = NS_GET_B(aBorderColor);
 
   uint8_t a = NS_GET_A(aBorderColor);
 
   // This needs to be optimized.
-  // Calculating background brightness again and again is 
+  // Calculating background brightness again and again is
   // a waste of time!!!. Just calculate it only once.
   // .....somehow!!!
 
   uint8_t red = NS_GET_R(aBackgroundColor);
   uint8_t green = NS_GET_G(aBackgroundColor);
   uint8_t blue = NS_GET_B(aBackgroundColor);
-  
+
   uint8_t elementBrightness = NS_GetBrightness(rb,gb,bb);
   uint8_t backgroundBrightness = NS_GetBrightness(red, green, blue);
 
 
   if (backgroundBrightness < COLOR_DARK_THRESHOLD) {
     f0 = COLOR_DARK_BS_FACTOR;
     f1 = COLOR_DARK_TS_FACTOR;
 	if(elementBrightness == MAX_DARKNESS)
@@ -82,18 +82,18 @@ void NS_GetSpecial3DColors(nscolor aResu
   }else {
     f0 = COLOR_DARK_BS_FACTOR +
       (backgroundBrightness *
        (COLOR_LITE_BS_FACTOR - COLOR_DARK_BS_FACTOR) / MAX_COLOR);
     f1 = COLOR_DARK_TS_FACTOR +
       (backgroundBrightness *
        (COLOR_LITE_TS_FACTOR - COLOR_DARK_TS_FACTOR) / MAX_COLOR);
   }
-  
-  
+
+
   r = rb - (f0 * rb / 100);
   g = gb - (f0 * gb / 100);
   b = bb - (f0 * bb / 100);
   aResult[0] = NS_RGBA(r, g, b, a);
 
   r = rb + (f1 * (MAX_COLOR - rb) / 100);
   g = gb + (f1 * (MAX_COLOR - gb) / 100);
   b = bb + (f1 * (MAX_COLOR - bb) / 100);
@@ -101,29 +101,29 @@ void NS_GetSpecial3DColors(nscolor aResu
 }
 
 int NS_GetBrightness(uint8_t aRed, uint8_t aGreen, uint8_t aBlue)
 {
 
   uint8_t intensity = (aRed + aGreen + aBlue) / 3;
 
   uint8_t luminosity = NS_GetLuminosity(NS_RGB(aRed, aGreen, aBlue)) / 1000;
- 
+
   return ((intensity * INTENSITY_FACTOR) +
           (luminosity * LUMINOSITY_FACTOR)) / 100;
 }
 
 int32_t NS_GetLuminosity(nscolor aColor)
 {
   // When aColor is not opaque, the perceived luminosity will depend
   // on what color(s) aColor is ultimately drawn on top of, which we
   // do not know.
   NS_ASSERTION(NS_GET_A(aColor) == 255,
                "impossible to compute luminosity of a non-opaque color");
-  
+
   return (NS_GET_R(aColor) * RED_LUMINOSITY +
           NS_GET_G(aColor) * GREEN_LUMINOSITY +
           NS_GET_B(aColor) * BLUE_LUMINOSITY);
 }
 
 // Function to convert RGB color space into the HSV colorspace
 // Hue is the primary color defined from 0 to 359 degrees
 // Saturation is defined from 0 to 255.  The higher the number.. the deeper
@@ -150,31 +150,31 @@ void NS_RGB2HSV(nscolor aColor, uint16_t
   if (b>max) {
     max = b;
   }
   if (b<min) {
     min = b;
   }
 
   // value or brightness will always be the max of all the colors(RGB)
-  aValue = max;   
+  aValue = max;
   delta = max-min;
   aSat = (max!=0)?((delta*255)/max):0;
   r1 = r;
   b1 = b;
   g1 = g;
 
   if (aSat==0) {
     hue = 1000;
   } else {
     if(r==max){
       hue=(float)(g1-b1)/(float)delta;
     } else if (g1==max) {
       hue= 2.0f+(float)(b1-r1)/(float)delta;
-    } else { 
+    } else {
       hue = 4.0f+(float)(r1-g1)/(float)delta;
     }
   }
 
   if(hue<999) {
     hue*=60;
     if(hue<0){
       hue+=360;
@@ -201,17 +201,17 @@ void NS_HSV2RGB(nscolor &aColor, uint16_
 
   if ( aSat == 0 ){
     // achromatic color, no hue is defined
     r = aValue;
     g = aValue;
     b = aValue;
   } else {
     // hue in in degrees around the color wheel defined from
-    // 0 to 360 degrees.  
+    // 0 to 360 degrees.
     if (aHue >= 360) {
       aHue = 0;
     }
 
     // we break the color wheel into 6 areas.. these
     // areas define how the saturation and value define the color.
     // reds behave differently than the blues
     h = (double)aHue / 60.0;
--- a/layout/base/nsCSSColorUtils.h
+++ b/layout/base/nsCSSColorUtils.h
@@ -25,17 +25,17 @@ void NS_GetSpecial3DColors(nscolor aResu
 
 // Determins brightness for a specific color
 int NS_GetBrightness(uint8_t aRed, uint8_t aGreen, uint8_t aBlue);
 
 // Get Luminosity of a specific color. That is same as Y of YIQ color space.
 // The range of return value is 0 to 255000.
 int32_t NS_GetLuminosity(nscolor aColor);
 
-// function to convert from RGBA color space to HSVA color space 
+// function to convert from RGBA color space to HSVA color space
 void NS_RGB2HSV(nscolor aColor, uint16_t &aHue, uint16_t &aSat,
                 uint16_t &aValue, uint8_t &aAlpha);
 
-// function to convert from HSVA color space to RGBA color space 
+// function to convert from HSVA color space to RGBA color space
 void NS_HSV2RGB(nscolor &aColor, uint16_t aHue, uint16_t aSat, uint16_t aValue,
                 uint8_t aAlpha);
 
 #endif
--- a/layout/base/nsCSSFrameConstructor.h
+++ b/layout/base/nsCSSFrameConstructor.h
@@ -579,17 +579,17 @@ private:
    */
   nsIFrame* ConstructTableCell(nsFrameConstructorState& aState,
                                FrameConstructionItem&   aItem,
                                nsContainerFrame*        aParentFrame,
                                const nsStyleDisplay*    aStyleDisplay,
                                nsFrameItems&            aFrameItems);
 
 private:
-  /* An enum of possible parent types for anonymous table or ruby object 
+  /* An enum of possible parent types for anonymous table or ruby object
      construction */
   enum ParentType {
     eTypeBlock = 0, /* This includes all non-table-related frames */
     eTypeRow,
     eTypeRowGroup,
     eTypeColGroup,
     eTypeTable,
     eTypeRuby,
--- a/layout/base/nsCaret.cpp
+++ b/layout/base/nsCaret.cpp
@@ -37,17 +37,17 @@
 #include "nsIBidiKeyboard.h"
 #include "nsContentUtils.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::gfx;
 
 // The bidi indicator hangs off the caret to one side, to show which
-// direction the typing is in. It needs to be at least 2x2 to avoid looking like 
+// direction the typing is in. It needs to be at least 2x2 to avoid looking like
 // an insignificant dot
 static const int32_t kMinBidiIndicatorPixels = 2;
 
 // The default caret blinking rate (in ms of blinking interval)
 static const uint32_t kDefaultCaretBlinkRate = 500;
 
 /**
  * Find the first frame in an in-order traversal of the frame subtree rooted
@@ -163,17 +163,17 @@ nsresult nsCaret::Init(nsIPresShell *inP
     return rv;
   if (!domSelection)
     return NS_ERROR_FAILURE;
 
   nsCOMPtr<nsISelectionPrivate> privateSelection = do_QueryInterface(domSelection);
   if (privateSelection)
     privateSelection->AddSelectionListener(this);
   mDomSelectionWeak = do_GetWeakReference(domSelection);
-  
+
   return NS_OK;
 }
 
 static bool
 DrawCJKCaret(nsIFrame* aFrame, int32_t aOffset)
 {
   nsIContent* content = aFrame->GetContent();
   const nsTextFragment* frag = content->GetText();
@@ -208,17 +208,17 @@ nsCaret::ComputeMetrics(nsIFrame* aFrame
   result.mBidiIndicatorSize = NS_ROUND_BORDER_TO_PIXELS(bidiIndicatorSize, tpp);
   return result;
 }
 
 void nsCaret::Terminate()
 {
   // this doesn't erase the caret if it's drawn. Should it? We might not have
   // a good drawing environment during teardown.
-  
+
   StopBlinking();
   mBlinkTimer = nullptr;
 
   // unregiser ourselves as a selection listener
   nsCOMPtr<nsISelection> domSelection = do_QueryReferent(mDomSelectionWeak);
   nsCOMPtr<nsISelectionPrivate> privateSelection(do_QueryInterface(domSelection));
   if (privateSelection)
     privateSelection->RemoveSelectionListener(this);
@@ -482,17 +482,17 @@ void nsCaret::SchedulePaint()
   if (!f) {
     return;
   }
   // This may not be the correct continuation frame, but that's OK since we're
   // just scheduling a paint of the window (or popup).
   f->SchedulePaint();
 }
 
-void nsCaret::SetVisibilityDuringSelection(bool aVisibility) 
+void nsCaret::SetVisibilityDuringSelection(bool aVisibility)
 {
   mShowDuringSelection = aVisibility;
   SchedulePaint();
 }
 
 void
 nsCaret::SetCaretPosition(nsIDOMNode* aNode, int32_t aOffset)
 {
@@ -702,17 +702,17 @@ nsCaret::GetCaretFrameForNodeOffset(nsFr
   if (!theFrame)
     return NS_ERROR_FAILURE;
 
   // if theFrame is after a text frame that's logically at the end of the line
   // (e.g. if theFrame is a <br> frame), then put the caret at the end of
   // that text frame instead. This way, the caret will be positioned as if
   // trailing whitespace was not trimmed.
   AdjustCaretFrameForLineEnd(&theFrame, &theFrameOffset);
-  
+
   // Mamdouh : modification of the caret to work at rtl and ltr with Bidi
   //
   // Direction Style from visibility->mDirection
   // ------------------
   // NS_STYLE_DIRECTION_LTR : LTR or Default
   // NS_STYLE_DIRECTION_RTL
   if (theFrame->PresContext()->BidiEnabled())
   {
@@ -728,17 +728,17 @@ nsCaret::GetCaretFrameForNodeOffset(nsFr
     nsBidiLevel levelBefore; // Bidi level of the character before the caret
     nsBidiLevel levelAfter;  // Bidi level of the character after the caret
 
     theFrame->GetOffsets(start, end);
     if (start == 0 || end == 0 || start == theFrameOffset || end == theFrameOffset)
     {
       nsPrevNextBidiLevels levels = aFrameSelection->
         GetPrevNextBidiLevels(aContentNode, aOffset, false);
-    
+
       /* Boundary condition, we need to know the Bidi levels of the characters before and after the caret */
       if (levels.mFrameBefore || levels.mFrameAfter)
       {
         frameBefore = levels.mFrameBefore;
         frameAfter = levels.mFrameAfter;
         levelBefore = levels.mLevelBefore;
         levelAfter = levels.mLevelAfter;
 
@@ -755,17 +755,17 @@ nsCaret::GetCaretFrameForNodeOffset(nsFr
             if (theFrame != frameBefore)
             {
               if (frameBefore) // if there is a frameBefore, move into it
               {
                 theFrame = frameBefore;
                 theFrame->GetOffsets(start, end);
                 theFrameOffset = end;
               }
-              else 
+              else
               {
                 // if there is no frameBefore, we must be at the beginning of the line
                 // so we stay with the current frame.
                 // Exception: when the first frame on the line has a different Bidi level from the paragraph level, there is no
                 // real frame for the caret to be in. We have to find the visually first frame on the line.
                 nsBidiLevel baseLevel = frameAfter->GetBaseLevel();
                 if (baseLevel != levelAfter)
                 {
@@ -790,17 +790,17 @@ nsCaret::GetCaretFrameForNodeOffset(nsFr
             {
               if (frameAfter)
               {
                 // if there is a frameAfter, move into it
                 theFrame = frameAfter;
                 theFrame->GetOffsets(start, end);
                 theFrameOffset = start;
               }
-              else 
+              else
               {
                 // if there is no frameAfter, we must be at the end of the line
                 // so we stay with the current frame.
                 // Exception: when the last frame on the line has a different Bidi level from the paragraph level, there is no
                 // real frame for the caret to be in. We have to find the visually last frame on the line.
                 nsBidiLevel baseLevel = frameBefore->GetBaseLevel();
                 if (baseLevel != levelBefore)
                 {
@@ -878,17 +878,17 @@ bool nsCaret::IsMenuPopupHidingCaret()
   // Check if there are open popups.
   nsXULPopupManager *popMgr = nsXULPopupManager::GetInstance();
   nsTArray<nsIFrame*> popups;
   popMgr->GetVisiblePopups(popups);
 
   if (popups.Length() == 0)
     return false; // No popups, so caret can't be hidden by them.
 
-  // Get the selection focus content, that's where the caret would 
+  // Get the selection focus content, that's where the caret would
   // go if it was drawn.
   nsCOMPtr<nsIDOMNode> node;
   nsCOMPtr<nsISelection> domSelection = do_QueryReferent(mDomSelectionWeak);
   if (!domSelection)
     return true; // No selection/caret to draw.
   domSelection->GetFocusNode(getter_AddRefs(node));
   if (!node)
     return true; // No selection/caret to draw.
--- a/layout/base/nsChangeHint.h
+++ b/layout/base/nsChangeHint.h
@@ -84,17 +84,17 @@ enum nsChangeHint : uint32_t {
   /**
    * The frame's overflow area has changed. Does not update any descendant
    * frames.
    */
   nsChangeHint_UpdateOverflow = 1 << 11,
 
   /**
    * The overflow area of the frame and all of its descendants has changed. This
-   * can happen through a text-decoration change.   
+   * can happen through a text-decoration change.
    */
   nsChangeHint_UpdateSubtreeOverflow = 1 << 12,
 
   /**
    * The frame's overflow area has changed, through a change in its transform.
    * In other words, the frame's pre-transform overflow is unchanged, but
    * its post-transform overflow has changed, and thus its effect on its
    * parent's overflow has changed.  If the pre-transform overflow has
--- a/layout/base/nsCounterManager.h
+++ b/layout/base/nsCounterManager.h
@@ -115,17 +115,17 @@ struct nsCounterChangeNode : public nsCo
     nsCounterChangeNode(nsIFrame* aPseudoFrame,
                         nsCounterNode::Type aChangeType,
                         int32_t aChangeValue,
                         int32_t aPropIndex)
         : nsCounterNode(// Fake a content index for resets and increments
                         // that comes before all the real content, with
                         // the resets first, in order, and then the increments.
                         aPropIndex + (aChangeType == RESET
-                                        ? (INT32_MIN) 
+                                        ? (INT32_MIN)
                                         : (INT32_MIN / 2)),
                         aChangeType)
         , mChangeValue(aChangeValue)
     {
         NS_ASSERTION(aPropIndex >= 0, "out of range");
         NS_ASSERTION(aChangeType == INCREMENT || aChangeType == RESET,
                      "bad type");
         mPseudoFrame = aPseudoFrame;
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -303,18 +303,18 @@ private:
   mozilla::dom::Selection* GetDocumentSelection();
 
   void DestroyPresShell();
   void DestroyPresContext();
 
 #ifdef NS_PRINTING
   // Called when the DocViewer is notified that the state
   // of Printing or PP has changed
-  void SetIsPrintingInDocShellTree(nsIDocShellTreeItem* aParentNode, 
-                                   bool                 aIsPrintingOrPP, 
+  void SetIsPrintingInDocShellTree(nsIDocShellTreeItem* aParentNode,
+                                   bool                 aIsPrintingOrPP,
                                    bool                 aStartAtTop);
 #endif // NS_PRINTING
 
   // Whether we should attach to the top level widget. This is true if we
   // are sharing/recycling a single base widget and not creating multiple
   // child widgets.
   bool ShouldAttachToTopLevel();
 
@@ -903,17 +903,17 @@ nsDocumentViewer::InitInternal(nsIWidget
       if (mIsPageMode) {
         //Presentation context already created in SetPageMode which is calling this method
       } else {
         mPresContext = CreatePresContext(mDocument,
             nsPresContext::eContext_Galley, containerView);
       }
       NS_ENSURE_TRUE(mPresContext, NS_ERROR_OUT_OF_MEMORY);
 
-      nsresult rv = mPresContext->Init(mDeviceContext); 
+      nsresult rv = mPresContext->Init(mDeviceContext);
       if (NS_FAILED(rv)) {
         mPresContext = nullptr;
         return rv;
       }
 
 #if defined(NS_PRINTING) && defined(NS_PRINT_PREVIEW)
       makeCX = !GetIsPrintPreview() && aNeedMakeCX; // needs to be true except when we are already in PP or we are enabling/disabling paginated mode.
 #else
@@ -1521,17 +1521,17 @@ nsDocumentViewer::Open(nsISupports *aSta
     nsCOMPtr<nsIDocShellTreeItem> item;
     int32_t itemIndex = 0;
     while (NS_SUCCEEDED(aSHEntry->ChildShellAt(itemIndex++,
                                                getter_AddRefs(item))) && item) {
       nsCOMPtr<nsIDocShell> shell = do_QueryInterface(item);
       AttachContainerRecurse(shell);
     }
   }
-  
+
   SyncParentSubDocMap();
 
   if (mFocusListener && mDocument) {
     mDocument->AddEventListener(NS_LITERAL_STRING("focus"), mFocusListener,
                                 false, false);
     mDocument->AddEventListener(NS_LITERAL_STRING("blur"), mFocusListener,
                                 false, false);
   }
@@ -1658,17 +1658,17 @@ DetachContainerRecurse(nsIDocShell *aShe
 }
 
 NS_IMETHODIMP
 nsDocumentViewer::Destroy()
 {
   NS_ASSERTION(mDocument, "No document in Destroy()!");
 
 #ifdef NS_PRINTING
-  // Here is where we check to see if the document was still being prepared 
+  // Here is where we check to see if the document was still being prepared
   // for printing when it was asked to be destroy from someone externally
   // This usually happens if the document is unloaded while the user is in the
   // Print Dialog
   //
   // So we flip the bool to remember that the document is going away
   // and we can clean up and abort later after returning from the Print Dialog
   if (mPrintEngine) {
     if (mPrintEngine->CheckBeforeDestroy()) {
@@ -2345,17 +2345,17 @@ nsDocumentViewer::CreateStyleSet(nsIDocu
   StyleSetHandle styleSet;
   if (backendType == StyleBackendType::Gecko) {
     styleSet = new nsStyleSet();
   } else {
     styleSet = new ServoStyleSet();
   }
 
   styleSet->BeginUpdate();
-  
+
   // The document will fill in the document sheets when we create the presshell
 
   if (aDocument->IsBeingUsedAsImage()) {
     MOZ_ASSERT(aDocument->IsSVGDocument(),
                "Do we want to skip most sheets for this new image type?");
 
     // SVG-as-an-image must be kept as light and small as possible. We
     // deliberately skip loading everything and leave svg.css (and html.css and
@@ -2665,31 +2665,31 @@ nsDocumentViewer::FindContainerView()
 }
 
 nsresult
 nsDocumentViewer::CreateDeviceContext(nsView* aContainerView)
 {
   NS_PRECONDITION(!mPresShell && !mWindow,
                   "This will screw up our existing presentation");
   NS_PRECONDITION(mDocument, "Gotta have a document here");
-  
+
   nsIDocument* doc = mDocument->GetDisplayDocument();
   if (doc) {
     NS_ASSERTION(!aContainerView, "External resource document embedded somewhere?");
     // We want to use our display document's device context if possible
     nsIPresShell* shell = doc->GetShell();
     if (shell) {
       nsPresContext* ctx = shell->GetPresContext();
       if (ctx) {
         mDeviceContext = ctx->DeviceContext();
         return NS_OK;
       }
     }
   }
-  
+
   // Create a device context even if we already have one, since our widget
   // might have changed.
   nsIWidget* widget = nullptr;
   if (aContainerView) {
     widget = aContainerView->GetNearestWidget(nullptr);
   }
   if (!widget) {
     widget = mParentWidget;
@@ -2826,17 +2826,17 @@ NS_IMETHODIMP nsDocumentViewer::GetConte
   NS_ENSURE_TRUE(mPresShell, NS_ERROR_NOT_INITIALIZED);
   NS_ENSURE_TRUE(mDocument, NS_ERROR_NOT_INITIALIZED);
 
   // Now we have the selection.  Make sure it's nonzero:
   nsCOMPtr<nsISelection> sel;
   if (selectionOnly) {
     nsCopySupport::GetSelectionForCopy(mDocument, getter_AddRefs(sel));
     NS_ENSURE_TRUE(sel, NS_ERROR_FAILURE);
-  
+
     bool isCollapsed;
     sel->GetIsCollapsed(&isCollapsed);
     if (isCollapsed)
       return NS_OK;
   }
 
   // call the copy code
   return nsCopySupport::GetContents(nsDependentCString(mimeType), 0, sel,
@@ -3953,17 +3953,17 @@ nsDocumentViewer::Print(nsIPrintSettings
   nsCOMPtr<nsIDocShell> docShell(mContainer);
   NS_ENSURE_STATE(docShell);
 
   // Check to see if this document is still busy
   // If it is busy and we aren't already "queued" up to print then
   // Indicate there is a print pending and cache the args for later
   uint32_t busyFlags = nsIDocShell::BUSY_FLAGS_NONE;
   if ((NS_FAILED(docShell->GetBusyFlags(&busyFlags)) ||
-       (busyFlags != nsIDocShell::BUSY_FLAGS_NONE && busyFlags & nsIDocShell::BUSY_FLAGS_PAGE_LOADING)) && 
+       (busyFlags != nsIDocShell::BUSY_FLAGS_NONE && busyFlags & nsIDocShell::BUSY_FLAGS_PAGE_LOADING)) &&
       !mPrintDocIsFullyLoaded) {
     if (!mPrintIsPending) {
       mCachedPrintSettings           = aPrintSettings;
       mCachedPrintWebProgressListner = aWebProgressListener;
       mPrintIsPending                = true;
     }
     PR_PL(("Printing Stopped - document is still busy!"));
     return NS_ERROR_GFX_PRINTER_DOC_IS_BUSY;
@@ -4002,17 +4002,17 @@ nsDocumentViewer::Print(nsIPrintSettings
   nsCOMPtr<nsIPluginDocument> pDoc(do_QueryInterface(mDocument));
   if (pDoc)
     return pDoc->Print();
 
   if (!mPrintEngine) {
     NS_ENSURE_STATE(mDeviceContext);
     mPrintEngine = new nsPrintEngine();
 
-    rv = mPrintEngine->Initialize(this, mContainer, mDocument, 
+    rv = mPrintEngine->Initialize(this, mContainer, mDocument,
                                   float(mDeviceContext->AppUnitsPerCSSInch()) /
                                   float(mDeviceContext->AppUnitsPerDevPixel()) /
                                   mPageZoom,
 #ifdef DEBUG
                                   mDebugFile
 #else
                                   nullptr
 #endif
@@ -4035,18 +4035,18 @@ nsDocumentViewer::Print(nsIPrintSettings
   rv = mPrintEngine->Print(aPrintSettings, aWebProgressListener);
   if (NS_FAILED(rv)) {
     OnDonePrinting();
   }
   return rv;
 }
 
 NS_IMETHODIMP
-nsDocumentViewer::PrintPreview(nsIPrintSettings* aPrintSettings, 
-                               mozIDOMWindowProxy* aChildDOMWin, 
+nsDocumentViewer::PrintPreview(nsIPrintSettings* aPrintSettings,
+                               mozIDOMWindowProxy* aChildDOMWin,
                                nsIWebProgressListener* aWebProgressListener)
 {
   SetPrintRelated();
 
 #if defined(NS_PRINTING) && defined(NS_PRINT_PREVIEW)
   NS_WARNING_ASSERTION(
     IsInitializedForPrintPreview(),
     "Using docshell.printPreview is the preferred way for print previewing!");
@@ -4230,22 +4230,22 @@ nsDocumentViewer::GetGlobalPrintSettings
   return nsPrintEngine::GetGlobalPrintSettings(aGlobalPrintSettings);
 }
 
 // XXX This always returns false for subdocuments
 NS_IMETHODIMP
 nsDocumentViewer::GetDoingPrint(bool *aDoingPrint)
 {
   NS_ENSURE_ARG_POINTER(aDoingPrint);
-  
+
   *aDoingPrint = false;
   if (mPrintEngine) {
     // XXX shouldn't this be GetDoingPrint() ?
     return mPrintEngine->GetDoingPrintPreview(aDoingPrint);
-  } 
+  }
   return NS_OK;
 }
 
 // XXX This always returns false for subdocuments
 NS_IMETHODIMP
 nsDocumentViewer::GetDoingPrintPreview(bool *aDoingPrintPreview)
 {
   NS_ENSURE_ARG_POINTER(aDoingPrintPreview);
@@ -4264,17 +4264,17 @@ nsDocumentViewer::GetCurrentPrintSetting
 
   *aCurrentPrintSettings = nullptr;
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->GetCurrentPrintSettings(aCurrentPrintSettings);
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDocumentViewer::GetCurrentChildDOMWindow(mozIDOMWindowProxy** aCurrentChildDOMWindow)
 {
   NS_ENSURE_ARG_POINTER(aCurrentChildDOMWindow);
   *aCurrentChildDOMWindow = nullptr;
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP
@@ -4309,17 +4309,17 @@ nsDocumentViewer::EnumerateDocumentNames
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->EnumerateDocumentNames(aCount, aResult);
 #else
   return NS_ERROR_FAILURE;
 #endif
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDocumentViewer::GetIsFramesetFrameSelected(bool *aIsFramesetFrameSelected)
 {
 #ifdef NS_PRINTING
   *aIsFramesetFrameSelected = false;
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->GetIsFramesetFrameSelected(aIsFramesetFrameSelected);
 #else
@@ -4348,30 +4348,30 @@ nsDocumentViewer::GetIsFramesetDocument(
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->GetIsFramesetDocument(aIsFramesetDocument);
 #else
   return NS_ERROR_FAILURE;
 #endif
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDocumentViewer::GetIsIFrameSelected(bool *aIsIFrameSelected)
 {
 #ifdef NS_PRINTING
   *aIsIFrameSelected = false;
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->GetIsIFrameSelected(aIsIFrameSelected);
 #else
   return NS_ERROR_FAILURE;
 #endif
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDocumentViewer::GetIsRangeSelection(bool *aIsRangeSelection)
 {
 #ifdef NS_PRINTING
   *aIsRangeSelection = false;
   NS_ENSURE_TRUE(mPrintEngine, NS_ERROR_FAILURE);
 
   return mPrintEngine->GetIsRangeSelection(aIsRangeSelection);
 #else
@@ -4380,19 +4380,19 @@ nsDocumentViewer::GetIsRangeSelection(bo
 }
 
 //----------------------------------------------------------------------------------
 // Printing/Print Preview Helpers
 //----------------------------------------------------------------------------------
 
 //----------------------------------------------------------------------------------
 // Walks the document tree and tells each DocShell whether Printing/PP is happening
-void 
-nsDocumentViewer::SetIsPrintingInDocShellTree(nsIDocShellTreeItem* aParentNode, 
-                                                bool                 aIsPrintingOrPP, 
+void
+nsDocumentViewer::SetIsPrintingInDocShellTree(nsIDocShellTreeItem* aParentNode,
+                                                bool                 aIsPrintingOrPP,
                                                 bool                 aStartAtTop)
 {
   nsCOMPtr<nsIDocShellTreeItem> parentItem(do_QueryInterface(aParentNode));
 
   // find top of "same parent" tree
   if (aStartAtTop) {
     if (aIsPrintingOrPP) {
       while (parentItem) {
@@ -4468,17 +4468,17 @@ nsDocumentViewer::ShouldAttachToTopLevel
 bool
 nsDocumentViewer::GetIsPrinting()
 {
 #ifdef NS_PRINTING
   if (mPrintEngine) {
     return mPrintEngine->GetIsPrinting();
   }
 #endif
-  return false; 
+  return false;
 }
 
 //------------------------------------------------------------
 // Notification from the PrintEngine of the current Printing status
 void
 nsDocumentViewer::SetIsPrinting(bool aIsPrinting)
 {
 #ifdef NS_PRINTING
@@ -4508,17 +4508,17 @@ nsDocumentViewer::SetIsPrinting(bool aIs
 bool
 nsDocumentViewer::GetIsPrintPreview()
 {
 #ifdef NS_PRINTING
   if (mPrintEngine) {
     return mPrintEngine->GetIsPrintPreview();
   }
 #endif
-  return false; 
+  return false;
 }
 
 //------------------------------------------------------------
 // Notification from the PrintEngine of the current PP status
 void
 nsDocumentViewer::SetIsPrintPreview(bool aIsPrintPreview)
 {
 #ifdef NS_PRINTING
@@ -4574,17 +4574,17 @@ ResetFocusState(nsIDocShell* aDocShell)
   nsIFocusManager* fm = nsFocusManager::GetFocusManager();
   if (!fm)
     return;
 
   nsCOMPtr<nsISimpleEnumerator> docShellEnumerator;
   aDocShell->GetDocShellEnumerator(nsIDocShellTreeItem::typeContent,
                                    nsIDocShell::ENUMERATE_FORWARDS,
                                    getter_AddRefs(docShellEnumerator));
-  
+
   nsCOMPtr<nsISupports> currentContainer;
   bool hasMoreDocShells;
   while (NS_SUCCEEDED(docShellEnumerator->HasMoreElements(&hasMoreDocShells))
          && hasMoreDocShells) {
     docShellEnumerator->GetNext(getter_AddRefs(currentContainer));
     nsCOMPtr<nsPIDOMWindowOuter> win = do_GetInterface(currentContainer);
     if (win)
       fm->ClearFocus(win);
@@ -4620,39 +4620,39 @@ nsDocumentViewer::ReturnToGalleyPresenta
 
 #endif // NS_PRINTING && NS_PRINT_PREVIEW
 }
 
 //------------------------------------------------------------
 // This called ONLY when printing has completed and the DV
 // is being notified that it should get rid of the PrintEngine.
 //
-// BUT, if we are in Print Preview then we want to ignore the 
+// BUT, if we are in Print Preview then we want to ignore the
 // notification (we do not get rid of the PrintEngine)
-// 
-// One small caveat: 
+//
+// One small caveat:
 //   This IS called from two places in this module for cleaning
-//   up when an error occurred during the start up printing 
+//   up when an error occurred during the start up printing
 //   and print preview
 //
 void
-nsDocumentViewer::OnDonePrinting() 
+nsDocumentViewer::OnDonePrinting()
 {
 #if defined(NS_PRINTING) && defined(NS_PRINT_PREVIEW)
   SetPrintRelated();
   if (mPrintEngine) {
     RefPtr<nsPrintEngine> pe = mPrintEngine;
     if (GetIsPrintPreview()) {
       pe->DestroyPrintingData();
     } else {
       mPrintEngine = nullptr;
       pe->Destroy();
     }
 
-    // We are done printing, now cleanup 
+    // We are done printing, now cleanup
     if (mDeferredWindowClose) {
       mDeferredWindowClose = false;
       if (mContainer) {
         if (nsCOMPtr<nsPIDOMWindowOuter> win = do_QueryInterface(mContainer->GetWindow())) {
           win->Close();
         }
       }
     } else if (mClosingWhilePrinting) {
@@ -4689,17 +4689,17 @@ NS_IMETHODIMP nsDocumentViewer::SetPageM
     DestroyPresContext();
   }
 
   mViewManager  = nullptr;
   mWindow       = nullptr;
 
   NS_ENSURE_STATE(mDocument);
   if (aPageMode)
-  {    
+  {
     mPresContext = CreatePresContext(mDocument,
         nsPresContext::eContext_PageLayout, FindContainerView());
     NS_ENSURE_TRUE(mPresContext, NS_ERROR_OUT_OF_MEMORY);
     mPresContext->SetPaginatedScrolling(true);
     mPresContext->SetPrintSettings(aPrintSettings);
     nsresult rv = mPresContext->Init(mDeviceContext);
     NS_ENSURE_SUCCESS(rv, rv);
   }
--- a/layout/base/nsFrameManager.cpp
+++ b/layout/base/nsFrameManager.cpp
@@ -1,16 +1,16 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  * vim:cindent:ts=2:et:sw=2:
  *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  *
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM 
+ * This Original Code has been modified by IBM Corporation. Modifications made by IBM
  * described herein are Copyright (c) International Business Machines Corporation, 2000.
  * Modifications to Mozilla code or documentation identified per MPL Section 3.3
  *
  * Date             Modified by     Description of modification
  * 04/20/2000       IBM Corp.      OS/2 VisualAge build.
  */
 
 /* storage of the frame tree and information about it */
@@ -555,17 +555,17 @@ nsFrameManager::RestoreFrameStateFor(nsI
   aState->RemoveState(stateKey);
 }
 
 void
 nsFrameManager::RestoreFrameState(nsIFrame* aFrame,
                                   nsILayoutHistoryState* aState)
 {
   NS_PRECONDITION(nullptr != aFrame && nullptr != aState, "null parameters passed in");
-  
+
   RestoreFrameStateFor(aFrame, aState);
 
   // Now restore state recursively for the frame hierarchy rooted at aFrame
   nsIFrame::ChildListIterator lists(aFrame);
   for (; !lists.IsDone(); lists.Next()) {
     nsFrameList::Enumerator childFrames(lists.CurrentList());
     for (; !childFrames.AtEnd(); childFrames.Next()) {
       RestoreFrameState(childFrames.get(), aState);
--- a/layout/base/nsFrameTraversal.cpp
+++ b/layout/base/nsFrameTraversal.cpp
@@ -40,49 +40,49 @@ protected:
   void      setLast(nsIFrame *aFrame){mLast = aFrame;}
   int8_t    getOffEdge(){return mOffEdge;}
   void      setOffEdge(int8_t aOffEdge){mOffEdge = aOffEdge;}
 
   /*
    Our own versions of the standard frame tree navigation
    methods, which, if the iterator is following out-of-flows,
    apply the following rules for placeholder frames:
-   
+
    - If a frame HAS a placeholder frame, getting its parent
    gets the placeholder's parent.
-   
+
    - If a frame's first child or next/prev sibling IS a
    placeholder frame, then we instead return the real frame.
-   
+
    - If a frame HAS a placeholder frame, getting its next/prev
    sibling gets the placeholder frame's next/prev sibling.
-   
+
    These are all applied recursively to support multiple levels of
    placeholders.
-   */  
-  
+   */
+
   nsIFrame* GetParentFrame(nsIFrame* aFrame);
   // like GetParentFrame but returns null once a popup frame is reached
   nsIFrame* GetParentFrameNotPopup(nsIFrame* aFrame);
 
   nsIFrame* GetFirstChild(nsIFrame* aFrame);
   nsIFrame* GetLastChild(nsIFrame* aFrame);
 
   nsIFrame* GetNextSibling(nsIFrame* aFrame);
   nsIFrame* GetPrevSibling(nsIFrame* aFrame);
 
   /*
    These methods are overridden by the bidi visual iterator to have the
    semantics of "get first child in visual order", "get last child in visual
    order", "get next sibling in visual order" and "get previous sibling in visual
    order".
   */
-  
+
   virtual nsIFrame* GetFirstChildInner(nsIFrame* aFrame);
-  virtual nsIFrame* GetLastChildInner(nsIFrame* aFrame);  
+  virtual nsIFrame* GetLastChildInner(nsIFrame* aFrame);
 
   virtual nsIFrame* GetNextSiblingInner(nsIFrame* aFrame);
   virtual nsIFrame* GetPrevSiblingInner(nsIFrame* aFrame);
 
   /**
    * Return the placeholder frame for aFrame if it has one, otherwise return
    * aFrame itself.
    */
@@ -110,20 +110,20 @@ class nsVisualIterator: public nsFrameIt
 public:
   nsVisualIterator(nsPresContext* aPresContext, nsIFrame *aStart,
                    nsIteratorType aType, bool aLockScroll,
                    bool aFollowOOFs, bool aSkipPopupChecks) :
   nsFrameIterator(aPresContext, aStart, aType, aLockScroll, aFollowOOFs, aSkipPopupChecks) {}
 
 protected:
   nsIFrame* GetFirstChildInner(nsIFrame* aFrame) override;
-  nsIFrame* GetLastChildInner(nsIFrame* aFrame) override;  
-  
+  nsIFrame* GetLastChildInner(nsIFrame* aFrame) override;
+
   nsIFrame* GetNextSiblingInner(nsIFrame* aFrame) override;
-  nsIFrame* GetPrevSiblingInner(nsIFrame* aFrame) override;  
+  nsIFrame* GetPrevSiblingInner(nsIFrame* aFrame) override;
 };
 
 /************IMPLEMENTATIONS**************/
 
 nsresult
 NS_CreateFrameTraversal(nsIFrameTraversal** aResult)
 {
   NS_ENSURE_ARG_POINTER(aResult);
@@ -169,29 +169,29 @@ nsFrameTraversal::nsFrameTraversal()
 }
 
 nsFrameTraversal::~nsFrameTraversal()
 {
 }
 
 NS_IMPL_ISUPPORTS(nsFrameTraversal,nsIFrameTraversal)
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
  nsFrameTraversal::NewFrameTraversal(nsIFrameEnumerator **aEnumerator,
                                      nsPresContext* aPresContext,
                                      nsIFrame *aStart,
                                      int32_t aType,
                                      bool aVisual,
                                      bool aLockInScrollView,
                                      bool aFollowOOFs,
                                      bool aSkipPopupChecks)
 {
   return NS_NewFrameTraversal(aEnumerator, aPresContext, aStart,
                               static_cast<nsIteratorType>(aType),
-                              aVisual, aLockInScrollView, aFollowOOFs, aSkipPopupChecks);  
+                              aVisual, aLockInScrollView, aFollowOOFs, aSkipPopupChecks);
 }
 
 // nsFrameIterator implementation
 
 NS_IMPL_ISUPPORTS(nsFrameIterator, nsIFrameEnumerator)
 
 nsFrameIterator::nsFrameIterator(nsPresContext* aPresContext, nsIFrame *aStart,
                                  nsIteratorType aType, bool aLockInScrollView,
@@ -332,17 +332,17 @@ nsFrameIterator::Prev()
     while ((result = GetLastChild(parent))) {
       parent = result;
     }
   } else if (mType == ePostOrder) {
     result = GetLastChild(parent);
     if (result)
       parent = result;
   }
-  
+
   if (parent != getCurrent()) {
     result = parent;
   } else {
     while (parent) {
       result = GetPrevSibling(parent);
       if (result) {
         if (mType != ePostOrder) {
           parent = result;
@@ -375,58 +375,58 @@ nsFrameIterator::Prev()
 
 nsIFrame*
 nsFrameIterator::GetParentFrame(nsIFrame* aFrame)
 {
   if (mFollowOOFs)
     aFrame = GetPlaceholderFrame(aFrame);
   if (aFrame)
     return aFrame->GetParent();
-  
+
   return nullptr;
 }
 
 nsIFrame*
 nsFrameIterator::GetParentFrameNotPopup(nsIFrame* aFrame)
 {
   if (mFollowOOFs)
     aFrame = GetPlaceholderFrame(aFrame);
   if (aFrame) {
     nsIFrame* parent = aFrame->GetParent();
     if (!IsPopupFrame(parent))
       return parent;
   }
-    
+
   return nullptr;
 }
 
 nsIFrame*
 nsFrameIterator::GetFirstChild(nsIFrame* aFrame)
 {
   nsIFrame* result = GetFirstChildInner(aFrame);
   if (mLockScroll && result && result->IsScrollFrame())
     return nullptr;
   if (result && mFollowOOFs) {
     result = nsPlaceholderFrame::GetRealFrameFor(result);
-    
+
     if (IsPopupFrame(result))
       result = GetNextSibling(result);
   }
   return result;
 }
 
 nsIFrame*
 nsFrameIterator::GetLastChild(nsIFrame* aFrame)
 {
   nsIFrame* result = GetLastChildInner(aFrame);
   if (mLockScroll && result && result->IsScrollFrame())
     return nullptr;
   if (result && mFollowOOFs) {
     result = nsPlaceholderFrame::GetRealFrameFor(result);
-    
+
     if (IsPopupFrame(result))
       result = GetPrevSibling(result);
   }
   return result;
 }
 
 nsIFrame*
 nsFrameIterator::GetNextSibling(nsIFrame* aFrame)
--- a/layout/base/nsIPercentBSizeObserver.h
+++ b/layout/base/nsIPercentBSizeObserver.h
@@ -25,9 +25,9 @@ public:
   // Notify the observer that aReflowInput has no computed bsize,
   // but it has a percent bsize
   virtual void NotifyPercentBSize(const mozilla::ReflowInput& aReflowInput) = 0;
 
   // Ask the observer if it should observe aReflowInput.frame
   virtual bool NeedsToObserve(const mozilla::ReflowInput& aReflowInput) = 0;
 };
 
-#endif // nsIPercentBSizeObserver_h___ 
+#endif // nsIPercentBSizeObserver_h___
--- a/layout/build/nsContentDLF.cpp
+++ b/layout/build/nsContentDLF.cpp
@@ -52,17 +52,17 @@ already_AddRefed<nsIContentViewer> NS_Ne
 
 static const char* const gHTMLTypes[] = {
   TEXT_HTML,
   VIEWSOURCE_CONTENT_TYPE,
   APPLICATION_XHTML_XML,
   APPLICATION_WAPXHTML_XML,
   0
 };
-  
+
 static const char* const gXMLTypes[] = {
   TEXT_XML,
   APPLICATION_XML,
   APPLICATION_MATHML_XML,
   APPLICATION_RDF_XML,
   TEXT_RDF,
   0
 };
@@ -326,17 +326,17 @@ nsContentDLF::CreateBlankDocument(nsILoa
       }
     }
   }
 
   // add a nice bow
   if (NS_SUCCEEDED(rv)) {
     blankDoc->SetDocumentCharacterSetSource(kCharsetFromDocTypeDefault);
     blankDoc->SetDocumentCharacterSet(UTF_8_ENCODING);
-    
+
     blankDoc.forget(aDocument);
   }
   return rv;
 }
 
 
 nsresult
 nsContentDLF::CreateDocument(const char* aCommand,
@@ -397,17 +397,17 @@ nsContentDLF::CreateXULDocument(const ch
   if (NS_FAILED(rv)) return rv;
 
   nsCOMPtr<nsIContentViewer> contentViewer = NS_NewContentViewer();
 
   nsCOMPtr<nsIURI> aURL;
   rv = aChannel->GetURI(getter_AddRefs(aURL));
   if (NS_FAILED(rv)) return rv;
 
-  /* 
+  /*
    * Initialize the document to begin loading the data...
    *
    * An nsIStreamListener connected to the parser is returned in
    * aDocListener.
    */
 
   doc->SetContainer(static_cast<nsDocShell*>(aContainer));
 
--- a/layout/forms/nsButtonFrameRenderer.cpp
+++ b/layout/forms/nsButtonFrameRenderer.cpp
@@ -63,35 +63,35 @@ nsButtonFrameRenderer::SetDisabled(bool 
   if (aDisabled)
     mFrame->GetContent()->SetAttr(kNameSpaceID_None, nsGkAtoms::disabled, EmptyString(),
                                   notify);
   else
     mFrame->GetContent()->UnsetAttr(kNameSpaceID_None, nsGkAtoms::disabled, notify);
 }
 
 bool
-nsButtonFrameRenderer::isDisabled() 
+nsButtonFrameRenderer::isDisabled()
 {
   return mFrame->GetContent()->AsElement()->
     State().HasState(NS_EVENT_STATE_DISABLED);
 }
 
 class nsDisplayButtonBoxShadowOuter : public nsDisplayItem {
 public:
   nsDisplayButtonBoxShadowOuter(nsDisplayListBuilder* aBuilder,
                                 nsButtonFrameRenderer* aRenderer)
     : nsDisplayItem(aBuilder, aRenderer->GetFrame()) {
     MOZ_COUNT_CTOR(nsDisplayButtonBoxShadowOuter);
   }
 #ifdef NS_BUILD_REFCNT_LOGGING
   virtual ~nsDisplayButtonBoxShadowOuter() {
     MOZ_COUNT_DTOR(nsDisplayButtonBoxShadowOuter);
   }
-#endif  
-  
+#endif
+
   virtual void Paint(nsDisplayListBuilder* aBuilder,
                      gfxContext* aCtx) override;
   virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder,
                            bool* aSnap) override;
   NS_DISPLAY_DECL_NAME("ButtonBoxShadowOuter", TYPE_BUTTON_BOX_SHADOW_OUTER)
 };
 
 nsRect
@@ -283,17 +283,17 @@ public:
                             nsButtonFrameRenderer* aRenderer)
     : nsDisplayItem(aBuilder, aRenderer->GetFrame()), mBFR(aRenderer) {
     MOZ_COUNT_CTOR(nsDisplayButtonForeground);
   }
 #ifdef NS_BUILD_REFCNT_LOGGING
   virtual ~nsDisplayButtonForeground() {
     MOZ_COUNT_DTOR(nsDisplayButtonForeground);
   }
-#endif  
+#endif
 
   nsDisplayItemGeometry* AllocateGeometry(nsDisplayListBuilder* aBuilder) override;
   void ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
                                  const nsDisplayItemGeometry* aGeometry,
                                  nsRegion *aInvalidRegion) override;
   virtual void Paint(nsDisplayListBuilder* aBuilder,
                      gfxContext* aCtx) override;
   virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder,
@@ -460,17 +460,17 @@ nsButtonFrameRenderer::PaintInnerFocusBo
   nsRect rect;
 
   PaintBorderFlags flags = aBuilder->ShouldSyncDecodeImages()
                          ? PaintBorderFlags::SYNC_DECODE_IMAGES
                          : PaintBorderFlags();
 
   DrawResult result = DrawResult::SUCCESS;
 
-  if (mInnerFocusStyle) { 
+  if (mInnerFocusStyle) {
     GetButtonInnerFocusRect(aRect, rect);
 
     result &=
       nsCSSRendering::PaintBorder(aPresContext, aRenderingContext, mFrame,
                                   aDirtyRect, rect, mInnerFocusStyle, flags);
   }
 
   return result;
@@ -561,17 +561,17 @@ nsButtonFrameRenderer::GetStyleContext(i
   switch (aIndex) {
   case NS_BUTTON_RENDERER_FOCUS_INNER_CONTEXT_INDEX:
     return mInnerFocusStyle;
   default:
     return nullptr;
   }
 }
 
-void 
+void
 nsButtonFrameRenderer::SetStyleContext(int32_t aIndex, nsStyleContext* aStyleContext)
 {
   switch (aIndex) {
   case NS_BUTTON_RENDERER_FOCUS_INNER_CONTEXT_INDEX:
 #ifdef DEBUG
     if (mInnerFocusStyle) {
       mInnerFocusStyle->FrameRelease();
     }
--- a/layout/forms/nsButtonFrameRenderer.h
+++ b/layout/forms/nsButtonFrameRenderer.h
@@ -52,17 +52,17 @@ public:
 
   DrawResult PaintBorder(nsDisplayListBuilder* aBuilder,
                          nsPresContext* aPresContext,
                          gfxContext& aRenderingContext,
                          const nsRect& aDirtyRect,
                          const nsRect& aRect);
 
   void SetFrame(nsFrame* aFrame, nsPresContext* aPresContext);
- 
+
   void SetDisabled(bool aDisabled, bool notify);
 
   bool isActive();
   bool isDisabled();
 
   void GetButtonInnerFocusRect(const nsRect& aRect, nsRect& aResult);
 
   nsStyleContext* GetStyleContext(int32_t aIndex) const;
--- a/layout/forms/nsComboboxControlFrame.h
+++ b/layout/forms/nsComboboxControlFrame.h
@@ -228,17 +228,17 @@ public:
   static bool ToolkitHasNativePopup();
 
 protected:
   friend class RedisplayTextEvent;
   friend class nsAsyncResize;
   friend class nsResizeDropdownAtFinalPosition;
 
   // Utilities
-  void ReflowDropdown(nsPresContext*          aPresContext, 
+  void ReflowDropdown(nsPresContext*          aPresContext,
                       const ReflowInput& aReflowInput);
 
   enum DropDownPositionState {
     // can't show the dropdown at its current position
     eDropDownPositionSuppressed,
     // a resize reflow is pending, don't show it yet
     eDropDownPositionPendingResize,
     // the dropdown has its final size and position and can be displayed here
@@ -257,17 +257,17 @@ protected:
       : mozilla::Runnable("nsComboboxControlFrame::RedisplayTextEvent")
       , mControlFrame(c)
     {
     }
     void Revoke() { mControlFrame = nullptr; }
   private:
     nsComboboxControlFrame *mControlFrame;
   };
-  
+
   /**
    * Show or hide the dropdown list.
    * @note This method might destroy |this|.
    */
   void ShowPopup(bool aShowPopup);
 
   /**
    * Show or hide the dropdown list.
@@ -294,17 +294,17 @@ protected:
   nsContainerFrame*        mDisplayFrame;            // frame to display selection
   nsIFrame*                mButtonFrame;             // button frame
   nsIFrame*                mDropdownFrame;           // dropdown list frame
   nsIListControlFrame *    mListControlFrame;        // ListControl Interface for the dropdown frame
 
   // The inline size of our display area.  Used by that frame's reflow
   // to size to the full inline size except the drop-marker.
   nscoord mDisplayISize;
-  
+
   nsRevocableEventPtr<RedisplayTextEvent> mRedisplayTextEvent;
 
   int32_t               mRecentSelectedIndex;
   int32_t               mDisplayedIndex;
   nsString              mDisplayedOptionTextOrPreview;
   nsString              mPreviewText;
 
   // make someone to listen to the button. If its programmatically pressed by someone like Accessibility
--- a/layout/forms/nsFieldSetFrame.cpp
+++ b/layout/forms/nsFieldSetFrame.cpp
@@ -163,17 +163,17 @@ nsFieldSetFrame::BuildDisplayList(nsDisp
 
     nsDisplayBackgroundImage::AppendBackgroundItemsToTop(
       aBuilder, this, VisualBorderRectRelativeToSelf(),
       aLists.BorderBackground(),
       /* aAllowWillPaintBorderOptimization = */ false);
 
     aLists.BorderBackground()->AppendNewToTop(new (aBuilder)
       nsDisplayFieldSetBorder(aBuilder, this));
-  
+
     DisplayOutlineUnconditional(aBuilder, aLists);
 
     DO_GLOBAL_REFLOW_COUNT_DSP("nsFieldSetFrame");
   }
 
   if (GetPrevInFlow()) {
     DisplayOverflowContainers(aBuilder, aDirtyRect, aLists);
   }
--- a/layout/forms/nsFieldSetFrame.h
+++ b/layout/forms/nsFieldSetFrame.h
@@ -71,17 +71,17 @@ public:
   virtual nsIScrollableFrame* GetScrollTargetFrame() override
   {
     return do_QueryFrame(GetInner());
   }
 
   // Return the block wrapper around our kids.
   void AppendDirectlyOwnedAnonBoxes(nsTArray<OwnedAnonBox>& aResult) override;
 
-#ifdef ACCESSIBILITY  
+#ifdef ACCESSIBILITY
   virtual mozilla::a11y::AccType AccessibleType() override;
 #endif
 
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override {
     return MakeFrameName(NS_LITERAL_STRING("FieldSet"), aResult);
   }
 #endif
--- a/layout/forms/nsFileControlFrame.cpp
+++ b/layout/forms/nsFileControlFrame.cpp
@@ -186,17 +186,17 @@ nsFileControlFrame::AppendAnonymousConte
   }
 }
 
 NS_QUERYFRAME_HEAD(nsFileControlFrame)
   NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
   NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
-void 
+void
 nsFileControlFrame::SetFocus(bool aOn, bool aRepaint)
 {
 }
 
 static void
 AppendBlobImplAsDirectory(nsTArray<OwningFileOrDirectory>& aArray,
                           BlobImpl* aBlobImpl,
                           nsIContent* aContent)
--- a/layout/forms/nsFormControlFrame.cpp
+++ b/layout/forms/nsFormControlFrame.cpp
@@ -154,19 +154,19 @@ nsFormControlFrame::Reflow(nsPresContext
   aDesiredSize.SetOverflowAreasToDesiredBounds();
   FinishAndStoreOverflow(&aDesiredSize);
 }
 
 nsresult
 nsFormControlFrame::RegUnRegAccessKey(nsIFrame * aFrame, bool aDoReg)
 {
   NS_ENSURE_ARG_POINTER(aFrame);
-  
+
   nsPresContext* presContext = aFrame->PresContext();
-  
+
   NS_ASSERTION(presContext, "aPresContext is NULL in RegUnRegAccessKey!");
 
   nsAutoString accessKey;
 
   nsIContent* content = aFrame->GetContent();
   content->GetAttr(kNameSpaceID_None, nsGkAtoms::accesskey, accessKey);
   if (!accessKey.IsEmpty()) {
     EventStateManager* stateManager = presContext->EventStateManager();
@@ -175,23 +175,23 @@ nsFormControlFrame::RegUnRegAccessKey(ns
     } else {
       stateManager->UnregisterAccessKey(content, (uint32_t)accessKey.First());
     }
     return NS_OK;
   }
   return NS_ERROR_FAILURE;
 }
 
-void 
+void
 nsFormControlFrame::SetFocus(bool aOn, bool aRepaint)
 {
 }
 
 nsresult
-nsFormControlFrame::HandleEvent(nsPresContext* aPresContext, 
+nsFormControlFrame::HandleEvent(nsPresContext* aPresContext,
                                 WidgetGUIEvent* aEvent,
                                 nsEventStatus* aEventStatus)
 {
   // Check for user-input:none style
   const nsStyleUserInterface* uiStyle = StyleUserInterface();
   if (uiStyle->mUserInput == StyleUserInput::None ||
       uiStyle->mUserInput == StyleUserInput::Disabled) {
     return nsFrame::HandleEvent(aPresContext, aEvent, aEventStatus);
--- a/layout/forms/nsGfxButtonControlFrame.cpp
+++ b/layout/forms/nsGfxButtonControlFrame.cpp
@@ -158,17 +158,17 @@ nsGfxButtonControlFrame::AttributeChange
   nsresult rv = NS_OK;
 
   // If the value attribute is set, update the text of the label
   if (nsGkAtoms::value == aAttribute) {
     if (mTextContent && mContent) {
       nsXPIDLString label;
       rv = GetLabel(label);
       NS_ENSURE_SUCCESS(rv, rv);
-    
+
       mTextContent->SetText(label, true);
     } else {
       rv = NS_ERROR_UNEXPECTED;
     }
 
   // defer to HTMLButtonControlFrame
   } else {
     rv = nsHTMLButtonControlFrame::AttributeChanged(aNameSpaceID, aAttribute, aModType);
@@ -178,17 +178,17 @@ nsGfxButtonControlFrame::AttributeChange
 
 nsContainerFrame*
 nsGfxButtonControlFrame::GetContentInsertionFrame()
 {
   return this;
 }
 
 nsresult
-nsGfxButtonControlFrame::HandleEvent(nsPresContext* aPresContext, 
+nsGfxButtonControlFrame::HandleEvent(nsPresContext* aPresContext,
                                      WidgetGUIEvent* aEvent,
                                      nsEventStatus* aEventStatus)
 {
   // Override the HandleEvent to prevent the nsFrame::HandleEvent
   // from being called. The nsFrame::HandleEvent causes the button label
   // to be selected (Drawn with an XOR rectangle over the label)
 
   // do we have user-input style?
--- a/layout/forms/nsGfxCheckboxControlFrame.cpp
+++ b/layout/forms/nsGfxCheckboxControlFrame.cpp
@@ -112,21 +112,21 @@ nsGfxCheckboxControlFrame::AccessibleTyp
 #ifdef MOZ_WIDGET_ANDROID
 
 void
 nsGfxCheckboxControlFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                             const nsRect&           aDirtyRect,
                                             const nsDisplayListSet& aLists)
 {
   nsFormControlFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-  
+
   // Get current checked state through content model.
   if ((!IsChecked() && !IsIndeterminate()) || !IsVisibleForPainting(aBuilder))
     return;   // we're not checked or not visible, nothing to paint.
-    
+
   if (IsThemed())
     return; // No need to paint the checkmark. The theme will do it.
 
   aLists.Content()->AppendNewToTop(new (aBuilder)
     nsDisplayGeneric(aBuilder, this,
                      IsIndeterminate()
                      ? PaintIndeterminateMark : PaintCheckMark,
                      "CheckedCheckbox",
--- a/layout/forms/nsGfxRadioControlFrame.cpp
+++ b/layout/forms/nsGfxRadioControlFrame.cpp
@@ -74,24 +74,24 @@ void
 nsGfxRadioControlFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                          const nsRect&           aDirtyRect,
                                          const nsDisplayListSet& aLists)
 {
   nsFormControlFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
 
   if (!IsVisibleForPainting(aBuilder))
     return;
-  
+
   if (IsThemed())
     return; // The theme will paint the check, if any.
 
   bool checked = true;
   GetCurrentCheckState(&checked); // Get check state from the content model
   if (!checked)
     return;
-    
+
   aLists.Content()->AppendNewToTop(new (aBuilder)
     nsDisplayGeneric(aBuilder, this, PaintCheckedRadioButton,
                      "CheckedRadioButton",
                      nsDisplayItem::TYPE_CHECKED_RADIOBUTTON));
 }
 
 #endif
--- a/layout/forms/nsHTMLButtonControlFrame.cpp
+++ b/layout/forms/nsHTMLButtonControlFrame.cpp
@@ -59,23 +59,23 @@ NS_QUERYFRAME_TAIL_INHERITING(nsContaine
 #ifdef ACCESSIBILITY
 a11y::AccType
 nsHTMLButtonControlFrame::AccessibleType()
 {
   return a11y::eHTMLButtonType;
 }
 #endif
 
-void 
+void
 nsHTMLButtonControlFrame::SetFocus(bool aOn, bool aRepaint)
 {
 }
 
 nsresult
-nsHTMLButtonControlFrame::HandleEvent(nsPresContext* aPresContext, 
+nsHTMLButtonControlFrame::HandleEvent(nsPresContext* aPresContext,
                                       WidgetGUIEvent* aEvent,
                                       nsEventStatus* aEventStatus)
 {
   // if disabled do nothing
   if (mRenderer.isDisabled()) {
     return NS_OK;
   }
 
@@ -125,21 +125,21 @@ nsHTMLButtonControlFrame::BuildDisplayLi
       bool hasRadii = GetPaddingBoxBorderRadii(radii);
       clipState.ClipContainingBlockDescendants(rect, hasRadii ? radii : nullptr);
     }
 
     BuildDisplayListForChild(aBuilder, mFrames.FirstChild(), aDirtyRect, set,
                              DISPLAY_CHILD_FORCE_PSEUDO_STACKING_CONTEXT);
     // That should put the display items in set.Content()
   }
-  
+
   // Put the foreground outline and focus rects on top of the children
   set.Content()->AppendToTop(&onTop);
   set.MoveTo(aLists);
-  
+
   DisplayOutline(aBuilder, aLists);
 
   // to draw border when selected in editor
   DisplaySelectionOverlay(aBuilder, aLists.Content());
 }
 
 nscoord
 nsHTMLButtonControlFrame::GetMinISize(gfxContext* aRenderingContext)
@@ -155,17 +155,17 @@ nsHTMLButtonControlFrame::GetMinISize(gf
   return result;
 }
 
 nscoord
 nsHTMLButtonControlFrame::GetPrefISize(gfxContext* aRenderingContext)
 {
   nscoord result;
   DISPLAY_PREF_WIDTH(this, result);
-  
+
   nsIFrame* kid = mFrames.FirstChild();
   result = nsLayoutUtils::IntrinsicForContainer(aRenderingContext,
                                                 kid,
                                                 nsLayoutUtils::PREF_ISIZE);
 
   return result;
 }
 
@@ -384,17 +384,17 @@ nsresult nsHTMLButtonControlFrame::SetFo
 
 nsStyleContext*
 nsHTMLButtonControlFrame::GetAdditionalStyleContext(int32_t aIndex) const
 {
   return mRenderer.GetStyleContext(aIndex);
 }
 
 void
-nsHTMLButtonControlFrame::SetAdditionalStyleContext(int32_t aIndex, 
+nsHTMLButtonControlFrame::SetAdditionalStyleContext(int32_t aIndex,
                                                     nsStyleContext* aStyleContext)
 {
   mRenderer.SetStyleContext(aIndex, aStyleContext);
 }
 
 void
 nsHTMLButtonControlFrame::AppendDirectlyOwnedAnonBoxes(nsTArray<OwnedAnonBox>& aResult)
 {
--- a/layout/forms/nsHTMLButtonControlFrame.h
+++ b/layout/forms/nsHTMLButtonControlFrame.h
@@ -44,28 +44,28 @@ public:
 
   bool GetVerticalAlignBaseline(mozilla::WritingMode aWM,
                                 nscoord* aBaseline) const override;
 
   bool GetNaturalBaselineBOffset(mozilla::WritingMode aWM,
                                  BaselineSharingGroup aBaselineGroup,
                                  nscoord* aBaseline) const override;
 
-  virtual nsresult HandleEvent(nsPresContext* aPresContext, 
+  virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
 
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
 
   virtual nsStyleContext* GetAdditionalStyleContext(int32_t aIndex) const override;
-  virtual void SetAdditionalStyleContext(int32_t aIndex, 
+  virtual void SetAdditionalStyleContext(int32_t aIndex,
                                          nsStyleContext* aStyleContext) override;
- 
+
 #ifdef DEBUG
   virtual void AppendFrames(ChildListID     aListID,
                             nsFrameList&    aFrameList) override;
   virtual void InsertFrames(ChildListID     aListID,
                             nsIFrame*       aPrevFrame,
                             nsFrameList&    aFrameList) override;
   virtual void RemoveFrame(ChildListID     aListID,
                            nsIFrame*       aOldFrame) override;
--- a/layout/forms/nsIComboboxControlFrame.h
+++ b/layout/forms/nsIComboboxControlFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsIComboboxControlFrame_h___
 #define nsIComboboxControlFrame_h___
 
 #include "nsQueryFrame.h"
 
-/** 
+/**
   * nsIComboboxControlFrame is the interface for comboboxes.
   */
 class nsIComboboxControlFrame : public nsQueryFrame
 {
 public:
   NS_DECL_QUERYFRAME_TARGET(nsIComboboxControlFrame)
 
   /**
@@ -67,30 +67,30 @@ public:
    * Method for the listbox to set and get the recent index
    */
   virtual int32_t UpdateRecentIndex(int32_t aIndex) = 0;
 
   /**
    * Notification that the content has been reset
    */
   virtual void OnContentReset() = 0;
-  
+
   /**
    * This returns the index of the item that is currently being displayed
    * in the display area. It may differ from what the currently Selected index
    * is in in the dropdown.
    *
-   * Detailed explanation: 
-   * When the dropdown is dropped down via a mouse click and the user moves the mouse 
-   * up and down without clicking, the currently selected item is being tracking inside 
+   * Detailed explanation:
+   * When the dropdown is dropped down via a mouse click and the user moves the mouse
+   * up and down without clicking, the currently selected item is being tracking inside
    * the dropdown, but the combobox is not being updated. When the user selects items
    * with the arrow keys, the combobox is being updated. So when the user clicks outside
-   * the dropdown and it needs to roll up it has to decide whether to keep the current 
+   * the dropdown and it needs to roll up it has to decide whether to keep the current
    * selection or not. This method is used to get the current index in the combobox to
    * compare it to the current index in the dropdown to see if the combox has been updated
-   * and that way it knows whether to "cancel" the current selection residing in the 
+   * and that way it knows whether to "cancel" the current selection residing in the
    * dropdown. Or whether to leave the selection alone.
    */
   virtual int32_t GetIndexOfDisplayArea() = 0;
 };
 
 #endif
 
--- a/layout/forms/nsIFormControlFrame.h
+++ b/layout/forms/nsIFormControlFrame.h
@@ -6,28 +6,28 @@
 #ifndef nsIFormControlFrame_h___
 #define nsIFormControlFrame_h___
 
 #include "nsQueryFrame.h"
 
 class nsAString;
 class nsIAtom;
 
-/** 
+/**
   * nsIFormControlFrame is the common interface for frames of form controls. It
   * provides a uniform way of creating widgets, resizing, and painting.
   * @see nsLeafFrame and its base classes for more info
   */
 class nsIFormControlFrame : public nsQueryFrame
 {
 public:
   NS_DECL_QUERYFRAME_TARGET(nsIFormControlFrame)
 
   /**
-   * 
+   *
    * @param aOn
    * @param aRepaint
    */
   virtual void SetFocus(bool aOn = true, bool aRepaint = false) = 0;
 
   /**
    * Set a property on the form control frame.
    *
--- a/layout/forms/nsISelectControlFrame.h
+++ b/layout/forms/nsISelectControlFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsISelectControlFrame_h___
 #define nsISelectControlFrame_h___
 
 #include "nsQueryFrame.h"
 
-/** 
+/**
   * nsISelectControlFrame is the interface for combo boxes and listboxes
   */
 class nsISelectControlFrame : public nsQueryFrame
 {
 public:
   NS_DECL_QUERYFRAME_TARGET(nsISelectControlFrame)
 
   /**
@@ -21,17 +21,17 @@ public:
    */
 
   NS_IMETHOD AddOption(int32_t index) = 0;
 
   /**
    * Removes the option at index.  The caller must have a live script
    * blocker while calling this method.
    */
-  NS_IMETHOD RemoveOption(int32_t index) = 0; 
+  NS_IMETHOD RemoveOption(int32_t index) = 0;
 
   /**
    * Sets whether the parser is done adding children
    * @param aIsDone whether the parser is done adding children
    */
   NS_IMETHOD DoneAddingChildren(bool aIsDone) = 0;
 
   /**
--- a/layout/forms/nsITextControlFrame.h
+++ b/layout/forms/nsITextControlFrame.h
@@ -1,16 +1,16 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsITextControlFrame_h___
 #define nsITextControlFrame_h___
- 
+
 #include "nsIFormControlFrame.h"
 
 class nsISelectionController;
 class nsFrameSelection;
 
 namespace mozilla {
 class TextEditor;
 } // namespace mozilla
--- a/layout/forms/nsListControlFrame.h
+++ b/layout/forms/nsListControlFrame.h
@@ -244,17 +244,17 @@ public:
    * (Some 3rd party products need to track our focus)
    */
   void FireMenuItemActiveEvent(); // Inform assistive tech what got focused
 #endif
 
 protected:
   /**
    * Return the first non-disabled option starting at aFromIndex (inclusive).
-   * @param aFoundIndex if non-null, set to the index of the returned option 
+   * @param aFoundIndex if non-null, set to the index of the returned option
    */
   HTMLOptionElement* GetNonDisabledOptionFrom(int32_t aFromIndex,
                                               int32_t* aFoundIndex = nullptr);
 
   /**
    * Updates the selected text in a combobox and then calls FireOnChange().
    * @note This method might destroy the frame, pres shell and other objects.
    * Returns false if calling it destroyed |this|.
--- a/layout/forms/nsRangeFrame.cpp
+++ b/layout/forms/nsRangeFrame.cpp
@@ -492,24 +492,24 @@ nsRangeFrame::GetValueAsFractionOfRange(
   MOZ_ASSERT(input->ControlType() == NS_FORM_INPUT_RANGE);
 
   Decimal value = input->GetValueAsDecimal();
   Decimal minimum = input->GetMinimum();
   Decimal maximum = input->GetMaximum();
 
   MOZ_ASSERT(value.isFinite() && minimum.isFinite() && maximum.isFinite(),
              "type=range should have a default maximum/minimum");
-  
+
   if (maximum <= minimum) {
     MOZ_ASSERT(value == minimum, "Unsanitized value");
     return 0.0;
   }
-  
+
   MOZ_ASSERT(value >= minimum && value <= maximum, "Unsanitized value");
-  
+
   return ((value - minimum) / (maximum - minimum)).toDouble();
 }
 
 Decimal
 nsRangeFrame::GetValueAtEventPoint(WidgetGUIEvent* aEvent)
 {
   MOZ_ASSERT(aEvent->mClass == eMouseEventClass ||
              aEvent->mClass == eTouchEventClass,
--- a/layout/forms/nsRangeFrame.h
+++ b/layout/forms/nsRangeFrame.h
@@ -114,22 +114,22 @@ public:
     mozilla::WritingMode wm = GetWritingMode();
     return wm.IsVertical() ? wm.IsVerticalRL() : !wm.IsBidiLTR();
   }
 
   double GetMin() const;
   double GetMax() const;
   double GetValue() const;
 
-  /** 
+  /**
    * Returns the input element's value as a fraction of the difference between
    * the input's minimum and its maximum (i.e. returns 0.0 when the value is
-   * the same as the minimum, and returns 1.0 when the value is the same as the 
+   * the same as the minimum, and returns 1.0 when the value is the same as the
    * maximum).
-   */  
+   */
   double GetValueAsFractionOfRange();
 
   /**
    * Returns whether the frame and its child should use the native style.
    */
   bool ShouldUseNativeStyle() const;
 
   mozilla::Decimal GetValueAtEventPoint(mozilla::WidgetGUIEvent* aEvent);
--- a/layout/forms/nsSelectsAreaFrame.cpp
+++ b/layout/forms/nsSelectsAreaFrame.cpp
@@ -131,17 +131,17 @@ nsSelectsAreaFrame::BuildDisplayList(nsD
 {
   if (!aBuilder->IsForEventDelivery()) {
     BuildDisplayListInternal(aBuilder, aDirtyRect, aLists);
     return;
   }
 
   nsDisplayListCollection set;
   BuildDisplayListInternal(aBuilder, aDirtyRect, set);
-  
+
   nsOptionEventGrabberWrapper wrapper;
   wrapper.WrapLists(aBuilder, this, set, aLists);
 }
 
 void
 nsSelectsAreaFrame::BuildDisplayListInternal(nsDisplayListBuilder*   aBuilder,
                                              const nsRect&           aDirtyRect,
                                              const nsDisplayListSet& aLists)
@@ -154,19 +154,19 @@ nsSelectsAreaFrame::BuildDisplayListInte
     // because then the list's scrollframe won't clip it (the scrollframe
     // only clips contained descendants).
     aLists.Outlines()->AppendNewToTop(new (aBuilder)
       nsDisplayListFocus(aBuilder, this));
   }
 }
 
 void
-nsSelectsAreaFrame::Reflow(nsPresContext*           aPresContext, 
+nsSelectsAreaFrame::Reflow(nsPresContext*           aPresContext,
                            ReflowOutput&     aDesiredSize,
-                           const ReflowInput& aReflowInput, 
+                           const ReflowInput& aReflowInput,
                            nsReflowStatus&          aStatus)
 {
   nsListControlFrame* list = GetEnclosingListFrame(this);
   NS_ASSERTION(list,
                "Must have an nsListControlFrame!  Frame constructor is "
                "broken");
 
   bool isInDropdownMode = list->IsInDropDownMode();
--- a/layout/forms/nsSelectsAreaFrame.h
+++ b/layout/forms/nsSelectsAreaFrame.h
@@ -26,17 +26,17 @@ public:
                                 const nsDisplayListSet& aLists);
 
   virtual void Reflow(nsPresContext*           aCX,
                       ReflowOutput&     aDesiredSize,
                       const ReflowInput& aReflowInput,
                       nsReflowStatus&          aStatus) override;
 
   nscoord BSizeOfARow() const { return mBSizeOfARow; }
-  
+
 protected:
   explicit nsSelectsAreaFrame(nsStyleContext* aContext) :
     nsBlockFrame(aContext, kClassID),
     mBSizeOfARow(0)
   {}
 
   // We cache the block size of a single row so that changes to the
   // "size" attribute, padding, etc. can all be handled with only one
--- a/layout/forms/nsTextControlFrame.cpp
+++ b/layout/forms/nsTextControlFrame.cpp
@@ -138,17 +138,17 @@ nsTextControlFrame::DestroyFrom(nsIFrame
 }
 
 LogicalSize
 nsTextControlFrame::CalcIntrinsicSize(gfxContext* aRenderingContext,
                                       WritingMode aWM,
                                       float aFontSizeInflation) const
 {
   LogicalSize intrinsicSize(aWM);
-  // Get leading and the Average/MaxAdvance char width 
+  // Get leading and the Average/MaxAdvance char width
   nscoord lineHeight  = 0;
   nscoord charWidth   = 0;
   nscoord charMaxAdvance  = 0;
 
   RefPtr<nsFontMetrics> fontMet =
     nsLayoutUtils::GetFontMetricsForFrame(this, aFontSizeInflation);
 
   lineHeight =
@@ -162,19 +162,19 @@ nsTextControlFrame::CalcIntrinsicSize(gf
   intrinsicSize.ISize(aWM) = cols * charWidth;
 
   // To better match IE, take the maximum character width(in twips) and remove
   // 4 pixels add this on as additional padding(internalPadding). But only do
   // this if we think we have a fixed-width font.
   if (mozilla::Abs(charWidth - charMaxAdvance) > (unsigned)nsPresContext::CSSPixelsToAppUnits(1)) {
     nscoord internalPadding =
       std::max(0, charMaxAdvance - nsPresContext::CSSPixelsToAppUnits(4));
-    nscoord t = nsPresContext::CSSPixelsToAppUnits(1); 
+    nscoord t = nsPresContext::CSSPixelsToAppUnits(1);
    // Round to a multiple of t
-    nscoord rest = internalPadding % t; 
+    nscoord rest = internalPadding % t;
     if (rest < t - rest) {
       internalPadding -= rest;
     } else {
       internalPadding += t - rest;
     }
     // Now add the extra padding on (so that small input sizes work well)
     intrinsicSize.ISize(aWM) += internalPadding;
   } else {
@@ -558,17 +558,17 @@ nsTextControlFrame::ReflowTextControlChi
                                            nsReflowStatus&          aStatus,
                                            ReflowOutput& aParentDesiredSize)
 {
   // compute available size and frame offsets for child
   WritingMode wm = aKid->GetWritingMode();
   LogicalSize availSize = aReflowInput.ComputedSizeWithPadding(wm);
   availSize.BSize(wm) = NS_UNCONSTRAINEDSIZE;
 
-  ReflowInput kidReflowInput(aPresContext, aReflowInput, 
+  ReflowInput kidReflowInput(aPresContext, aReflowInput,
                                    aKid, availSize, nullptr,
                                    ReflowInput::CALLER_WILL_INIT);
   // Override padding with our computed padding in case we got it from theming or percentage
   kidReflowInput.Init(aPresContext, nullptr, nullptr, &aReflowInput.ComputedPhysicalPadding());
 
   // Set computed width and computed height for the child
   kidReflowInput.SetComputedWidth(aReflowInput.ComputedWidth());
   kidReflowInput.SetComputedHeight(aReflowInput.ComputedHeight());
@@ -576,17 +576,17 @@ nsTextControlFrame::ReflowTextControlChi
   // Offset the frame by the size of the parent's border
   nscoord xOffset = aReflowInput.ComputedPhysicalBorderPadding().left -
                     aReflowInput.ComputedPhysicalPadding().left;
   nscoord yOffset = aReflowInput.ComputedPhysicalBorderPadding().top -
                     aReflowInput.ComputedPhysicalPadding().top;
 
   // reflow the child
   ReflowOutput desiredSize(aReflowInput);
-  ReflowChild(aKid, aPresContext, desiredSize, kidReflowInput, 
+  ReflowChild(aKid, aPresContext, desiredSize, kidReflowInput,
               xOffset, yOffset, 0, aStatus);
 
   // place the child
   FinishReflowChild(aKid, aPresContext, desiredSize,
                     &kidReflowInput, xOffset, yOffset, 0);
 
   // consider the overflow
   aParentDesiredSize.mOverflowAreas.UnionWith(desiredSize.mOverflowAreas);
@@ -642,17 +642,17 @@ void nsTextControlFrame::SetFocus(bool a
     return;
   }
 
   nsISelectionController* selCon = txtCtrl->GetSelectionController();
   if (!selCon)
     return;
 
   nsCOMPtr<nsISelection> ourSel;
-  selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, 
+  selCon->GetSelection(nsISelectionController::SELECTION_NORMAL,
     getter_AddRefs(ourSel));
   if (!ourSel) return;
 
   nsIPresShell* presShell = PresContext()->GetPresShell();
   RefPtr<nsCaret> caret = presShell->GetCaret();
   if (!caret) return;
 
   // Scroll the current selection into view
@@ -763,17 +763,17 @@ nsTextControlFrame::SetSelectionInternal
 
   // Get the selection, clear it and add the new range to it!
   nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent());
   NS_ASSERTION(txtCtrl, "Content not a text control element");
   nsISelectionController* selCon = txtCtrl->GetSelectionController();
   NS_ENSURE_TRUE(selCon, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsISelection> selection;
-  selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));  
+  selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
   NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsISelectionPrivate> selPriv = do_QueryInterface(selection, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsDirection direction;
   if (aDirection == eNone) {
     // Preserve the direction
--- a/layout/forms/nsTextControlFrame.h
+++ b/layout/forms/nsTextControlFrame.h
@@ -82,17 +82,17 @@ public:
     } else {
       *aBaseline = BSize(aWM) - mFirstBaseline;
     }
     return true;
   }
 
   virtual nsSize GetXULMinSize(nsBoxLayoutState& aBoxLayoutState) override;
   virtual bool IsXULCollapsed() override;
-  
+
 #ifdef ACCESSIBILITY
   virtual mozilla::a11y::AccType AccessibleType() override;
 #endif
 
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override
   {
     aResult.AssignLiteral("nsTextControlFrame");
@@ -182,17 +182,17 @@ protected:
   void ReflowTextControlChild(nsIFrame*                aFrame,
                               nsPresContext*           aPresContext,
                               const ReflowInput& aReflowInput,
                               nsReflowStatus&          aStatus,
                               ReflowOutput& aParentDesiredSize);
 
 public: //for methods who access nsTextControlFrame directly
   void SetValueChanged(bool aValueChanged);
-  
+
   // called by the focus listener
   nsresult MaybeBeginSecureKeyboardInput();
   void MaybeEndSecureKeyboardInput();
 
 #define DEFINE_TEXTCTRL_FORWARDER(type, name)                                  \
   type name() {                                                                \
     nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent()); \
     NS_ASSERTION(txtCtrl, "Content not a text control element");               \
@@ -335,17 +335,17 @@ private:
     DeleteProperty(TextControlInitializer());
   }
 
 private:
   // Our first baseline, or NS_INTRINSIC_WIDTH_UNKNOWN if we have a pending
   // Reflow.
   nscoord mFirstBaseline;
 
-  // these packed bools could instead use the high order bits on mState, saving 4 bytes 
+  // these packed bools could instead use the high order bits on mState, saving 4 bytes
   bool mEditorHasBeenInitialized;
   bool mIsProcessing;
   // Keep track if we have asked a placeholder node creation.
   bool mUsePlaceholder;
   // Similarly for preview node creation.
   bool mUsePreview;
 
 #ifdef DEBUG
--- a/layout/generic/BlockReflowInput.cpp
+++ b/layout/generic/BlockReflowInput.cpp
@@ -246,17 +246,17 @@ BlockReflowInput::ComputeBlockAvailSpace
   // things to become extremely narrow when they'd fit quite well a
   // little bit lower).  Should the else be a quirk or something that
   // applies to a specific set of frame classes and no new ones?
   // If we did that, then for those frames where the condition below is
   // true but nsBlockFrame::BlockCanIntersectFloats is false,
   // nsBlockFrame::ISizeToClearPastFloats would need to use the
   // shrink-wrap formula, max(MIN_ISIZE, min(avail width, PREF_ISIZE))
   // rather than just using MIN_ISIZE.
-  NS_ASSERTION(nsBlockFrame::BlockCanIntersectFloats(aFrame) == 
+  NS_ASSERTION(nsBlockFrame::BlockCanIntersectFloats(aFrame) ==
                  !aBlockAvoidsFloats,
                "unexpected replaced width");
   if (!aBlockAvoidsFloats) {
     if (aFloatAvailableSpace.mHasFloats) {
       // Use the float-edge property to determine how the child block
       // will interact with the float.
       const nsStyleBorder* borderStyle = aFrame->StyleBorder();
       switch (borderStyle->mFloatEdge) {
@@ -839,30 +839,30 @@ BlockReflowInput::FlowAndPlaceFloat(nsIF
       if(prevFrame) {
         //get the frame type
         if (prevFrame->IsTableWrapperFrame()) {
           //see if it has "align="
           // IE makes a difference between align and he float property
           nsIContent* content = prevFrame->GetContent();
           if (content) {
             // we're interested only if previous frame is align=left
-            // IE messes things up when "right" (overlapping frames) 
+            // IE messes things up when "right" (overlapping frames)
             if (content->AttrValueIs(kNameSpaceID_None, nsGkAtoms::align,
                                      NS_LITERAL_STRING("left"), eIgnoreCase)) {
               keepFloatOnSameLine = true;
               // don't advance to next line (IE quirkie behaviour)
               // it breaks rule CSS2/9.5.1/1, but what the hell
               // since we cannot evangelize the world
               break;
             }
           }
         }
       }
 
-      // the table does not fit anymore in this line so advance to next band 
+      // the table does not fit anymore in this line so advance to next band
       mBCoord += floatAvailableSpace.mRect.BSize(wm);
       // To match nsBlockFrame::AdjustFloatAvailableSpace, we have to
       // get a new width for the new band.
       floatAvailableSpace = GetFloatAvailableSpaceForPlacingFloat(mBCoord);
       adjustedAvailableSpace = mBlock->AdjustFloatAvailableSpace(*this,
                                  floatAvailableSpace.mRect, aFloat);
       floatMarginISize = FloatMarginISize(mReflowInput,
                                           adjustedAvailableSpace.ISize(wm),
--- a/layout/generic/ReflowInput.cpp
+++ b/layout/generic/ReflowInput.cpp
@@ -39,17 +39,17 @@
 
 using namespace mozilla;
 using namespace mozilla::css;
 using namespace mozilla::dom;
 using namespace mozilla::layout;
 
 enum eNormalLineHeightControl {
   eUninitialized = -1,
-  eNoExternalLeading = 0,   // does not include external leading 
+  eNoExternalLeading = 0,   // does not include external leading
   eIncludeExternalLeading,  // use whatever value font vendor provides
   eCompensateLeading        // compensate leading if leading provided by font vendor is not enough
 };
 
 static eNormalLineHeightControl sNormalLineHeightControl = eUninitialized;
 
 // Initialize a <b>root</b> reflow state with a rendering context to
 // use for measuring things.
@@ -509,21 +509,21 @@ void ReflowInput::InitCBReflowInput()
       mCBReflowInput = mParentReflowInput;
     }
   } else {
     mCBReflowInput = mParentReflowInput->mCBReflowInput;
   }
 }
 
 /* Check whether CalcQuirkContainingBlockHeight would stop on the
- * given reflow state, using its block as a height.  (essentially 
- * returns false for any case in which CalcQuirkContainingBlockHeight 
+ * given reflow state, using its block as a height.  (essentially
+ * returns false for any case in which CalcQuirkContainingBlockHeight
  * has a "continue" in its main loop.)
  *
- * XXX Maybe refactor CalcQuirkContainingBlockHeight so it uses 
+ * XXX Maybe refactor CalcQuirkContainingBlockHeight so it uses
  * this function as well
  */
 static bool
 IsQuirkContainingBlockHeight(const ReflowInput* rs, LayoutFrameType aFrameType)
 {
   if (LayoutFrameType::Block == aFrameType ||
 #ifdef MOZ_XUL
       LayoutFrameType::XULLabel == aFrameType ||
@@ -768,21 +768,21 @@ ReflowInput::InitResizeFlags(nsPresConte
   if (dependsOnCBBSize && mCBReflowInput) {
     const ReflowInput *rs = this;
     bool hitCBReflowInput = false;
     do {
       rs = rs->mParentReflowInput;
       if (!rs) {
         break;
       }
-        
+
       if (rs->mFrame->GetStateBits() & NS_FRAME_CONTAINS_RELATIVE_BSIZE)
         break; // no need to go further
       rs->mFrame->AddStateBits(NS_FRAME_CONTAINS_RELATIVE_BSIZE);
-      
+
       // Keep track of whether we've hit the containing block, because
       // we need to go at least that far.
       if (rs == mCBReflowInput) {
         hitCBReflowInput = true;
       }
 
       // XXX What about orthogonal flows? It doesn't make sense to
       // keep propagating this bit across an orthogonal boundary,
@@ -790,17 +790,17 @@ ReflowInput::InitResizeFlags(nsPresConte
     } while (!hitCBReflowInput ||
              (eCompatibility_NavQuirks == aPresContext->CompatibilityMode() &&
               !IsQuirkContainingBlockHeight(rs, rs->mFrame->Type())));
     // Note: We actually don't need to set the
     // NS_FRAME_CONTAINS_RELATIVE_BSIZE bit for the cases
     // where we hit the early break statements in
     // CalcQuirkContainingBlockHeight. But it doesn't hurt
     // us to set the bit in these cases.
-    
+
   }
   if (mFrame->GetStateBits() & NS_FRAME_IS_DIRTY) {
     // If we're reflowing everything, then we'll find out if we need
     // to re-set this.
     mFrame->RemoveStateBits(NS_FRAME_CONTAINS_RELATIVE_BSIZE);
   }
 }
 
@@ -1953,47 +1953,47 @@ ReflowInput::InitAbsoluteConstraints(nsP
 nscoord
 GetBlockMarginBorderPadding(const ReflowInput* aReflowInput)
 {
   nscoord result = 0;
   if (!aReflowInput) return result;
 
   // zero auto margins
   nsMargin margin = aReflowInput->ComputedPhysicalMargin();
-  if (NS_AUTOMARGIN == margin.top) 
+  if (NS_AUTOMARGIN == margin.top)
     margin.top = 0;
-  if (NS_AUTOMARGIN == margin.bottom) 
+  if (NS_AUTOMARGIN == margin.bottom)
     margin.bottom = 0;
 
   result += margin.top + margin.bottom;
-  result += aReflowInput->ComputedPhysicalBorderPadding().top + 
+  result += aReflowInput->ComputedPhysicalBorderPadding().top +
             aReflowInput->ComputedPhysicalBorderPadding().bottom;
 
   return result;
 }
 
-/* Get the height based on the viewport of the containing block specified 
+/* Get the height based on the viewport of the containing block specified
  * in aReflowInput when the containing block has mComputedHeight == NS_AUTOHEIGHT
  * This will walk up the chain of containing blocks looking for a computed height
  * until it finds the canvas frame, or it encounters a frame that is not a block,
  * area, or scroll frame. This handles compatibility with IE (see bug 85016 and bug 219693)
  *
  * When we encounter scrolledContent block frames, we skip over them,
  * since they are guaranteed to not be useful for computing the containing block.
  *
  * See also IsQuirkContainingBlockHeight.
  */
 static nscoord
 CalcQuirkContainingBlockHeight(const ReflowInput* aCBReflowInput)
 {
   const ReflowInput* firstAncestorRI = nullptr; // a candidate for html frame
   const ReflowInput* secondAncestorRI = nullptr; // a candidate for body frame
-  
+
   // initialize the default to NS_AUTOHEIGHT as this is the containings block
-  // computed height when this function is called. It is possible that we 
+  // computed height when this function is called. It is possible that we
   // don't alter this height especially if we are restricted to one level
   nscoord result = NS_AUTOHEIGHT;
 
   const ReflowInput* rs = aCBReflowInput;
   for (; rs; rs = rs->mParentReflowInput) {
     LayoutFrameType frameType = rs->mFrame->Type();
     // if the ancestor is auto height then skip it and continue up if it
     // is the first block frame and possibly the body/html
@@ -2017,31 +2017,31 @@ CalcQuirkContainingBlockHeight(const Ref
           continue;
         }
       }
     } else if (LayoutFrameType::Canvas == frameType) {
       // Always continue on to the height calculation
     } else if (LayoutFrameType::PageContent == frameType) {
       nsIFrame* prevInFlow = rs->mFrame->GetPrevInFlow();
       // only use the page content frame for a height basis if it is the first in flow
-      if (prevInFlow) 
+      if (prevInFlow)
         break;
     }
     else {
       break;
     }
 
-    // if the ancestor is the page content frame then the percent base is 
+    // if the ancestor is the page content frame then the percent base is
     // the avail height, otherwise it is the computed height
     result = (LayoutFrameType::PageContent == frameType) ? rs->AvailableHeight()
                                                          : rs->ComputedHeight();
     // if unconstrained - don't sutract borders - would result in huge height
     if (NS_AUTOHEIGHT == result) return result;
 
-    // if we got to the canvas or page content frame, then subtract out 
+    // if we got to the canvas or page content frame, then subtract out
     // margin/border/padding for the BODY and HTML elements
     if ((LayoutFrameType::Canvas == frameType) ||
         (LayoutFrameType::PageContent == frameType)) {
 
       result -= GetBlockMarginBorderPadding(firstAncestorRI);
       result -= GetBlockMarginBorderPadding(secondAncestorRI);
 
 #ifdef DEBUG
@@ -2668,17 +2668,17 @@ SizeComputationInput::InitOffsets(Writin
   ::UpdateProp(mFrame, nsIFrame::UsedPaddingProperty(), needPaddingProp,
                ComputedPhysicalPadding());
 }
 
 // This code enforces section 10.3.3 of the CSS2 spec for this formula:
 //
 // 'margin-left' + 'border-left-width' + 'padding-left' + 'width' +
 //   'padding-right' + 'border-right-width' + 'margin-right'
-//   = width of containing block 
+//   = width of containing block
 //
 // Note: the width unit is not auto when this is called
 void
 ReflowInput::CalculateBlockSideMargins(LayoutFrameType aFrameType)
 {
   // Calculations here are done in the containing block's writing mode,
   // which is where margins will eventually be applied: we're calculating
   // margins that will be used by the container in its inline direction,
@@ -2784,24 +2784,24 @@ ReflowInput::CalculateBlockSideMargins(L
       margin.IStart(cbWM) += availMarginSpace;
     }
   } else if (isAutoEndMargin) {
     margin.IEnd(cbWM) += availMarginSpace;
   }
   SetComputedLogicalMargin(margin.ConvertTo(mWritingMode, cbWM));
 }
 
-#define NORMAL_LINE_HEIGHT_FACTOR 1.2f    // in term of emHeight 
+#define NORMAL_LINE_HEIGHT_FACTOR 1.2f    // in term of emHeight
 // For "normal" we use the font's normal line height (em height + leading).
 // If both internal leading and  external leading specified by font itself
-// are zeros, we should compensate this by creating extra (external) leading 
-// in eCompensateLeading mode. This is necessary because without this 
-// compensation, normal line height might looks too tight. 
+// are zeros, we should compensate this by creating extra (external) leading
+// in eCompensateLeading mode. This is necessary because without this
+// compensation, normal line height might looks too tight.
 
-// For risk management, we use preference to control the behavior, and 
+// For risk management, we use preference to control the behavior, and
 // eNoExternalLeading is the old behavior.
 static nscoord
 GetNormalLineHeight(nsFontMetrics* aFontMetrics)
 {
   NS_PRECONDITION(nullptr != aFontMetrics, "no font metrics");
 
   nscoord normalLineHeight;
 
@@ -2836,26 +2836,26 @@ ComputeLineHeight(nsStyleContext* aStyle
     nscoord result = lhCoord.GetCoordValue();
     if (aFontSizeInflation != 1.0f) {
       result = NSToCoordRound(result * aFontSizeInflation);
     }
     return result;
   }
 
   if (lhCoord.GetUnit() == eStyleUnit_Factor)
-    // For factor units the computed value of the line-height property 
+    // For factor units the computed value of the line-height property
     // is found by multiplying the factor by the font's computed size
     // (adjusted for min-size prefs and text zoom).
     return NSToCoordRound(lhCoord.GetFactorValue() * aFontSizeInflation *
                           aStyleContext->StyleFont()->mFont.size);
 
   NS_ASSERTION(lhCoord.GetUnit() == eStyleUnit_Normal ||
                lhCoord.GetUnit() == eStyleUnit_Enumerated,
                "bad line-height unit");
-  
+
   if (lhCoord.GetUnit() == eStyleUnit_Enumerated) {
     NS_ASSERTION(lhCoord.GetIntValue() == NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT,
                  "bad line-height value");
     if (aBlockBSize != NS_AUTOHEIGHT) {
       return aBlockBSize;
     }
   }
 
--- a/layout/generic/ReflowInput.h
+++ b/layout/generic/ReflowInput.h
@@ -269,17 +269,17 @@ private:
    *    The block size is usually the containing block inline-size, per
    *    CSS21 sec 8.3 (read in conjunction with CSS Writing Modes sec
    *    7.2), but may be the containing block block-size, e.g. in CSS3
    *    Flexbox and Grid.
    * @return true if the margin is dependent on the containing block size.
    */
   bool ComputeMargin(mozilla::WritingMode aWM,
                      const mozilla::LogicalSize& aPercentBasis);
-  
+
   /**
    * Computes padding values from the specified padding style information, and
    * fills in the mComputedPadding member.
    *
    * @param aWM Writing mode of the containing block
    * @param aPercentBasis
    *    Logical size in the writing mode of the containing block to use
    *    for resolving percentage padding values in the inline and block
@@ -555,17 +555,17 @@ private:
   // not apply to inline non-replaced elements
   //
   // For replaced inline frames, a value of NS_INTRINSICSIZE means you should
   // use your intrinsic width as the computed width
   //
   // For block-level frames, the computed width is based on the width of the
   // containing block, the margin/border/padding areas, and the min/max width.
   MOZ_INIT_OUTSIDE_CTOR
-  nscoord          mComputedWidth; 
+  nscoord          mComputedWidth;
 
   // The computed height specifies the frame's content height, and it does
   // not apply to inline non-replaced elements
   //
   // For replaced inline frames, a value of NS_INTRINSICSIZE means you should
   // use your intrinsic height as the computed height
   //
   // For non-replaced block-level frames in the flow and floated, a value of
@@ -606,17 +606,17 @@ public:
   const nsStylePadding*    mStylePadding;
   MOZ_INIT_OUTSIDE_CTOR
   const nsStyleText*       mStyleText;
 
   bool IsFloating() const;
 
   mozilla::StyleDisplay GetDisplay() const;
 
-  // a frame (e.g. nsTableCellFrame) which may need to generate a special 
+  // a frame (e.g. nsTableCellFrame) which may need to generate a special
   // reflow for percent bsize calculations
   nsIPercentBSizeObserver* mPercentBSizeObserver;
 
   // CSS margin collapsing sometimes requires us to reflow
   // optimistically assuming that margins collapse to see if clearance
   // is required. When we discover that clearance is required, we
   // store the frame in which clearance was discovered to the location
   // requested here.
@@ -859,17 +859,17 @@ public:
     // Note that we could make a stronger optimization for IsBResize if
     // we use it in a ShouldReflowChild test that replaces the current
     // checks of NS_FRAME_IS_DIRTY | NS_FRAME_HAS_DIRTY_CHILDREN, if it
     // were tested there along with NS_FRAME_CONTAINS_RELATIVE_BSIZE.
     // This would need to be combined with a slight change in which
     // frames NS_FRAME_CONTAINS_RELATIVE_BSIZE is marked on.
     return (mFrame->GetStateBits() & NS_FRAME_IS_DIRTY) ||
            IsIResize() ||
-           (IsBResize() && 
+           (IsBResize() &&
             (mFrame->GetStateBits() & NS_FRAME_CONTAINS_RELATIVE_BSIZE));
   }
 
   // This method doesn't apply min/max computed widths to the value passed in.
   void SetComputedWidth(nscoord aComputedWidth);
 
   // This method doesn't apply min/max computed heights to the value passed in.
   void SetComputedHeight(nscoord aComputedHeight);
--- a/layout/generic/ReflowOutput.h
+++ b/layout/generic/ReflowOutput.h
@@ -289,17 +289,17 @@ public:
   void SetBlockStartAscent(nscoord aAscent)
   {
     mBlockStartAscent = aAscent;
   }
 
   enum { ASK_FOR_BASELINE = nscoord_MAX };
 
   // Metrics that _exactly_ enclose the text to allow precise MathML placements.
-  // If the NS_REFLOW_CALC_BOUNDING_METRICS flag is set, then the caller is 
+  // If the NS_REFLOW_CALC_BOUNDING_METRICS flag is set, then the caller is
   // requesting that you also compute additional details about your inner
   // bounding box and italic correction. For example, the bounding box of
   // msup is the smallest rectangle that _exactly_ encloses both the text
   // of the base and the text of the superscript.
   nsBoundingMetrics mBoundingMetrics;  // [OUT]
 
   // Carried out block-end margin values. This is the collapsed
   // (generational) block-end margin value.
--- a/layout/generic/StickyScrollContainer.cpp
+++ b/layout/generic/StickyScrollContainer.cpp
@@ -155,17 +155,17 @@ StickyScrollContainer::ComputeStickyLimi
                                            nsRect* aContain) const
 {
   NS_ASSERTION(nsLayoutUtils::IsFirstContinuationOrIBSplitSibling(aFrame),
                "Can't sticky position individual continuations");
 
   aStick->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
   aContain->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
 
-  const nsMargin* computedOffsets = 
+  const nsMargin* computedOffsets =
     aFrame->GetProperty(nsIFrame::ComputedOffsetProperty());
   if (!computedOffsets) {
     // We haven't reflowed the scroll frame yet, so offsets haven't been
     // computed. Bail.
     return;
   }
 
   nsIFrame* scrolledFrame = mScrollFrame->GetScrolledFrame();
--- a/layout/generic/TextOverflow.cpp
+++ b/layout/generic/TextOverflow.cpp
@@ -196,18 +196,18 @@ public:
     }
     bool snap;
     return GetBounds(aBuilder, &snap);
   }
 
   virtual void Paint(nsDisplayListBuilder* aBuilder,
                      gfxContext* aCtx) override;
 
-  virtual uint32_t GetPerFrameKey() override { 
-    return (mIndex << nsDisplayItem::TYPE_BITS) | nsDisplayItem::GetPerFrameKey(); 
+  virtual uint32_t GetPerFrameKey() override {
+    return (mIndex << nsDisplayItem::TYPE_BITS) | nsDisplayItem::GetPerFrameKey();
   }
   void PaintTextToContext(gfxContext* aCtx,
                           nsPoint aOffsetFromRect);
   NS_DISPLAY_DECL_NAME("TextOverflow", TYPE_TEXT_OVERFLOW)
 private:
   nsRect          mRect;   // in reference frame coordinates
   const nsStyleTextOverflowSide* mStyle;
   nscoord         mAscent; // baseline for the marker text in mRect
@@ -557,17 +557,17 @@ TextOverflow::ExamineLineFrames(nsLineBo
   do {
     // Setup marker strings as needed.
     if (guessIStart) {
       mIStart.SetupString(mBlock);
     }
     if (guessIEnd) {
       mIEnd.SetupString(mBlock);
     }
-    
+
     // If there is insufficient space for both markers then keep the one on the
     // end side per the block's 'direction'.
     nscoord istartMarkerISize = mIStart.mActive ? mIStart.mISize : 0;
     nscoord iendMarkerISize = mIEnd.mActive ? mIEnd.mISize : 0;
     if (istartMarkerISize && iendMarkerISize &&
         istartMarkerISize + iendMarkerISize > contentArea.ISize(mBlockWM)) {
       istartMarkerISize = 0;
     }
@@ -724,17 +724,17 @@ TextOverflow::PruneDisplayListContents(n
 
     nsDisplayList* wrapper = item->GetSameCoordinateSystemChildren();
     if (wrapper) {
       if (!itemFrame || GetSelfOrNearestBlock(itemFrame) == mBlock) {
         PruneDisplayListContents(wrapper, aFramesToHide, aInsideMarkersArea);
       }
     }
 
-    nsCharClipDisplayItem* charClip = itemFrame ? 
+    nsCharClipDisplayItem* charClip = itemFrame ?
       nsCharClipDisplayItem::CheckCast(item) : nullptr;
     if (charClip && GetSelfOrNearestBlock(itemFrame) == mBlock) {
       LogicalRect rect =
         GetLogicalScrollableOverflowRectRelativeToBlock(itemFrame);
       if (mIStart.IsNeeded()) {
         nscoord istart =
           aInsideMarkersArea.IStart(mBlockWM) - rect.IStart(mBlockWM);
         if (istart > 0) {
--- a/layout/generic/WritingModes.h
+++ b/layout/generic/WritingModes.h
@@ -295,17 +295,17 @@ public:
     // orientation and bit 0 of a LogicalAxis value indicating the inline axis,
     // so that it can correctly form mozilla::PhysicalAxis values using bit
     // manipulation.
     static_assert(NS_STYLE_WRITING_MODE_HORIZONTAL_TB == 0 &&
                   NS_STYLE_WRITING_MODE_VERTICAL_RL == 1 &&
                   NS_STYLE_WRITING_MODE_VERTICAL_LR == 3 &&
                   eLogicalAxisBlock == 0 &&
                   eLogicalAxisInline == 1 &&
-                  eAxisVertical == 0 && 
+                  eAxisVertical == 0 &&
                   eAxisHorizontal == 1,
                   "unexpected writing-mode, logical axis or physical axis "
                   "constant values");
     return mozilla::PhysicalAxis((aWritingModeValue ^ aAxis) & 0x1);
   }
 
   mozilla::PhysicalAxis PhysicalAxis(LogicalAxis aAxis) const
   {
@@ -1499,17 +1499,17 @@ public:
       mWritingMode(aWritingMode),
 #endif
       mRect(aIStart, aBStart, aISize, aBSize)
   { }
 
   LogicalRect(WritingMode aWritingMode,
               const LogicalPoint& aOrigin,
               const LogicalSize& aSize)
-    : 
+    :
 #ifdef DEBUG
       mWritingMode(aWritingMode),
 #endif
       mRect(aOrigin.mPoint, aSize.mSize)
   {
     CHECK_WRITING_MODE(aOrigin.GetWritingMode());
     CHECK_WRITING_MODE(aSize.GetWritingMode());
   }
--- a/layout/generic/nsAbsoluteContainingBlock.cpp
+++ b/layout/generic/nsAbsoluteContainingBlock.cpp
@@ -297,17 +297,17 @@ nsAbsoluteContainingBlock::FrameDependsO
            pos->mOffset.GetBEndUnit(wm) == eStyleUnit_Auto &&
            pos->mOffset.GetBStartUnit(wm) != eStyleUnit_Auto)) ||
         pos->MinBSizeDependsOnContainer(wm) ||
         pos->MaxBSizeDependsOnContainer(wm) ||
         !IsFixedPaddingSize(padding->mPadding.GetBStart(wm)) ||
         !IsFixedPaddingSize(padding->mPadding.GetBEnd(wm))) {
       return true;
     }
-      
+
     // See if f's position might have changed.
     if (!IsFixedMarginSize(margin->mMargin.GetBStart(wm)) ||
         !IsFixedMarginSize(margin->mMargin.GetBEnd(wm))) {
       return true;
     }
   }
 
   // Since we store coordinates relative to top and left, the position
@@ -611,17 +611,17 @@ nsAbsoluteContainingBlock::ResolveSizeDe
     aKidReflowInput.SetComputedLogicalOffsets(aOffsets->ConvertTo(wm, outerWM));
   }
 }
 
 // XXX Optimize the case where it's a resize reflow and the absolutely
 // positioned child has the exact same size and position and skip the
 // reflow...
 
-// When bug 154892 is checked in, make sure that when 
+// When bug 154892 is checked in, make sure that when
 // mChildListID == kFixedList, the height is unconstrained.
 // since we don't allow replicated frames to split.
 
 void
 nsAbsoluteContainingBlock::ReflowAbsoluteFrame(nsIFrame*                aDelegatingFrame,
                                                nsPresContext*           aPresContext,
                                                const ReflowInput& aReflowInput,
                                                const nsRect&            aContainingBlock,
--- a/layout/generic/nsBlockReflowContext.cpp
+++ b/layout/generic/nsBlockReflowContext.cpp
@@ -206,17 +206,17 @@ nsBlockReflowContext::ComputeCollapsedBS
       }
     }
   }
   done:
 
   if (!setBlockIsEmpty && aBlockIsEmpty) {
     *aBlockIsEmpty = aRI.mFrame->IsEmpty();
   }
-  
+
 #ifdef NOISY_BLOCKDIR_MARGINS
   nsFrame::ListTag(stdout, aRI.mFrame);
   printf(": => %d\n", aMargin->get());
 #endif
 
   return dirtiedLine;
 }
 
--- a/layout/generic/nsCanvasFrame.cpp
+++ b/layout/generic/nsCanvasFrame.cpp
@@ -369,17 +369,17 @@ nsDisplayCanvasBackgroundImage::Paint(ns
   gfxRect destRect;
   if (IsSingleFixedPositionImage(aBuilder, bgClipRect, &destRect) &&
       aBuilder->IsPaintingToWindow() && !aBuilder->IsCompositingCheap() &&
       !dest->CurrentMatrix().HasNonIntegerTranslation()) {
     // Snap image rectangle to nearest pixel boundaries. This is the right way
     // to snap for this context, because we checked HasNonIntegerTranslation
     // above.
     destRect.Round();
-    RefPtr<DrawTarget> dt = 
+    RefPtr<DrawTarget> dt =
       Frame()->GetProperty(nsIFrame::CachedBackgroundImageDT());
     DrawTarget* destDT = dest->GetDrawTarget();
     if (dt) {
       BlitSurface(destDT, destRect, dt);
       return;
     }
 
     dt = destDT->CreateSimilarDrawTarget(IntSize::Ceil(destRect.width,
@@ -502,17 +502,17 @@ nsCanvasFrame::BuildDisplayList(nsDispla
     nsStyleContext* bgSC;
     const nsStyleBackground* bg = nullptr;
     bool isThemed = IsThemed();
     if (!isThemed && nsCSSRendering::FindBackground(this, &bgSC)) {
       bg = bgSC->StyleBackground();
     }
     aLists.BorderBackground()->AppendNewToTop(
         new (aBuilder) nsDisplayCanvasBackgroundColor(aBuilder, this));
-  
+
     if (isThemed) {
       aLists.BorderBackground()->AppendNewToTop(
         new (aBuilder) nsDisplayCanvasThemedBackground(aBuilder, this));
       return;
     }
 
     if (!bg) {
       return;
@@ -605,30 +605,30 @@ nsCanvasFrame::BuildDisplayList(nsDispla
     GetFocusedContent(getter_AddRefs(focusContent));
 
   bool hasFocus = false;
   nsCOMPtr<nsISupports> container;
   aPresContext->GetContainer(getter_AddRefs(container));
   nsCOMPtr<nsIDocShell> docShell(do_QueryInterface(container));
   if (docShell) {
     docShell->GetHasFocus(&hasFocus);
-    printf("%p - nsCanvasFrame::Paint R:%d,%d,%d,%d  DR: %d,%d,%d,%d\n", this, 
+    printf("%p - nsCanvasFrame::Paint R:%d,%d,%d,%d  DR: %d,%d,%d,%d\n", this,
             mRect.x, mRect.y, mRect.width, mRect.height,
             aDirtyRect.x, aDirtyRect.y, aDirtyRect.width, aDirtyRect.height);
   }
-  printf("%p - Focus: %s   c: %p  DoPaint:%s\n", docShell.get(), hasFocus?"Y":"N", 
+  printf("%p - Focus: %s   c: %p  DoPaint:%s\n", docShell.get(), hasFocus?"Y":"N",
          focusContent.get(), mDoPaintFocus?"Y":"N");
 #endif
 
   if (!mDoPaintFocus)
     return;
   // Only paint the focus if we're visible
   if (!StyleVisibility()->IsVisible())
     return;
-  
+
   aLists.Outlines()->AppendNewToTop(new (aBuilder)
     nsDisplayCanvasFocus(aBuilder, this));
 }
 
 void
 nsCanvasFrame::PaintFocus(DrawTarget* aDrawTarget, nsPoint aPt)
 {
   nsRect focusRect(aPt, GetSize());
@@ -706,17 +706,17 @@ nsCanvasFrame::Reflow(nsPresContext*    
       // reflowed but must not be lost until the canvas frame is destroyed.
       mFrames.InsertFrames(this, nullptr, *overflow);
     }
   }
 
   // Set our size up front, since some parts of reflow depend on it
   // being already set.  Note that the computed height may be
   // unconstrained; that's ok.  Consumers should watch out for that.
-  SetSize(nsSize(aReflowInput.ComputedWidth(), aReflowInput.ComputedHeight())); 
+  SetSize(nsSize(aReflowInput.ComputedWidth(), aReflowInput.ComputedHeight()));
 
   // Reflow our one and only normal child frame. It's either the root
   // element's frame or a placeholder for that frame, if the root element
   // is abs-pos or fixed-pos. We may have additional children which
   // are placeholders for continuations of fixed-pos content, but those
   // don't need to be reflowed. The normal child is always comes before
   // the fixed-pos placeholders, because we insert it at the start
   // of the child list, above.
@@ -783,17 +783,17 @@ nsCanvasFrame::Reflow(nsPresContext*    
       // scroll frame ensures that we are always the size of the viewport.
       // Also note: GetPosition() on a CanvasFrame is always going to return
       // (0, 0). We only want to invalidate GetRect() since Get*OverflowRect()
       // could also include overflow to our top and left (out of the viewport)
       // which doesn't need to be painted.
       nsIFrame* viewport = PresContext()->GetPresShell()->GetRootFrame();
       viewport->InvalidateFrame();
     }
-    
+
     // Return our desired size. Normally it's what we're told, but
     // sometimes we can be given an unconstrained height (when a window
     // is sizing-to-content), and we should compute our desired height.
     LogicalSize finalSize(wm);
     finalSize.ISize(wm) = aReflowInput.ComputedISize();
     if (aReflowInput.ComputedBSize() == NS_UNCONSTRAINEDSIZE) {
       finalSize.BSize(wm) = kidFrame->GetLogicalSize(wm).BSize(wm) +
         kidReflowInput.ComputedLogicalMargin().BStartEnd(wm);
--- a/layout/generic/nsCanvasFrame.h
+++ b/layout/generic/nsCanvasFrame.h
@@ -195,26 +195,26 @@ public:
   }
 
   virtual void Paint(nsDisplayListBuilder* aBuilder, gfxContext* aCtx) override;
 
   virtual void NotifyRenderingChanged() override
   {
     mFrame->DeleteProperty(nsIFrame::CachedBackgroundImageDT());
   }
- 
-  // We still need to paint a background color as well as an image for this item, 
+
+  // We still need to paint a background color as well as an image for this item,
   // so we can't support this yet.
   virtual bool SupportsOptimizingToImage() override { return false; }
 
   bool IsSingleFixedPositionImage(nsDisplayListBuilder* aBuilder,
                                   const nsRect& aClipRect,
                                   gfxRect* aDestRect);
-  
-  
+
+
   NS_DISPLAY_DECL_NAME("CanvasBackgroundImage", TYPE_CANVAS_BACKGROUND_IMAGE)
 };
 
 class nsDisplayCanvasThemedBackground : public nsDisplayThemedBackground {
 public:
   nsDisplayCanvasThemedBackground(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame)
     : nsDisplayThemedBackground(aBuilder, aFrame,
                                 aFrame->GetRectRelativeToSelf() + aBuilder->ToReferenceFrame(aFrame))
--- a/layout/generic/nsColumnSetFrame.cpp
+++ b/layout/generic/nsColumnSetFrame.cpp
@@ -990,17 +990,17 @@ nsColumnSetFrame::DrainOverflowColumns()
   if (prev) {
     AutoFrameListPtr overflows(presContext, prev->StealOverflowFrames());
     if (overflows) {
       nsContainerFrame::ReparentFrameViewList(*overflows, prev, this);
 
       mFrames.InsertFrames(this, nullptr, *overflows);
     }
   }
-  
+
   // Now pull back our own overflows and append them to our children.
   // We don't need to reparent them since we're already their parent.
   AutoFrameListPtr overflows(presContext, StealOverflowFrames());
   if (overflows) {
     // We're already the parent for these frames, so no need to set
     // their parent again.
     mFrames.AppendFrames(nullptr, *overflows);
   }
--- a/layout/generic/nsContainerFrame.cpp
+++ b/layout/generic/nsContainerFrame.cpp
@@ -459,17 +459,17 @@ nsContainerFrame::ReparentFrameView(nsIF
     // stopping when we either find a common parent or views for one
     // or both of the frames.
     //
     // This works well in the common case where we push/pull and the old parent
     // frame and the new parent frame are part of the same flow. They will
     // typically be the same distance (height wise) from the
     aOldParentFrame = aOldParentFrame->GetParent();
     aNewParentFrame = aNewParentFrame->GetParent();
-    
+
     // We should never walk all the way to the root frame without finding
     // a view
     NS_ASSERTION(aOldParentFrame && aNewParentFrame, "didn't find view");
 
     // See if we reached a common ancestor
     if (aOldParentFrame == aNewParentFrame) {
       break;
     }
@@ -483,17 +483,17 @@ nsContainerFrame::ReparentFrameView(nsIF
     // then any child views don't need reparenting
     return NS_OK;
   }
 
   // We found views for one or both of the ancestor frames before we
   // found a common ancestor.
   nsView* oldParentView = aOldParentFrame->GetClosestView();
   nsView* newParentView = aNewParentFrame->GetClosestView();
-  
+
   // See if the old parent frame and the new parent frame are in the
   // same view sub-hierarchy. If they are then we don't have to do
   // anything
   if (oldParentView != newParentView) {
     // They're not so we need to reparent any child views
     aChildFrame->ReparentFrameViewTo(oldParentView->GetViewManager(),
                                      newParentView,
                                      oldParentView);
@@ -518,17 +518,17 @@ nsContainerFrame::ReparentFrameViewList(
     // stopping when we either find a common parent or views for one
     // or both of the frames.
     //
     // This works well in the common case where we push/pull and the old parent
     // frame and the new parent frame are part of the same flow. They will
     // typically be the same distance (height wise) from the
     aOldParentFrame = aOldParentFrame->GetParent();
     aNewParentFrame = aNewParentFrame->GetParent();
-    
+
     // We should never walk all the way to the root frame without finding
     // a view
     NS_ASSERTION(aOldParentFrame && aNewParentFrame, "didn't find view");
 
     // See if we reached a common ancestor
     if (aOldParentFrame == aNewParentFrame) {
       break;
     }
@@ -543,17 +543,17 @@ nsContainerFrame::ReparentFrameViewList(
     // then any child views don't need reparenting
     return NS_OK;
   }
 
   // We found views for one or both of the ancestor frames before we
   // found a common ancestor.
   nsView* oldParentView = aOldParentFrame->GetClosestView();
   nsView* newParentView = aNewParentFrame->GetClosestView();
-  
+
   // See if the old parent frame and the new parent frame are in the
   // same view sub-hierarchy. If they are then we don't have to do
   // anything
   if (oldParentView != newParentView) {
     nsViewManager* viewManager = oldParentView->GetViewManager();
 
     // They're not so we need to reparent any child views
     for (nsFrameList::Enumerator e(aChildFrameList); !e.AtEnd(); e.Next()) {
--- a/layout/generic/nsContainerFrame.h
+++ b/layout/generic/nsContainerFrame.h
@@ -69,17 +69,17 @@ public:
                         PeekOffsetCharacterOptions()) override;
 
   virtual nsresult AttributeChanged(int32_t         aNameSpaceID,
                                     nsIAtom*        aAttribute,
                                     int32_t         aModType) override;
 
 #ifdef DEBUG_FRAME_DUMP
   void List(FILE* out = stderr, const char* aPrefix = "", uint32_t aFlags = 0) const override;
-#endif  
+#endif
 
   // nsContainerFrame methods
 
   /**
    * Called to set the initial list of frames. This happens after the frame
    * has been initialized.
    *
    * This is only called once for a given child list, and won't be called
@@ -379,17 +379,17 @@ public:
                                          DefaultChildFrameMerge);
 
   /**
    * Move any frames on our overflow list to the end of our principal list.
    * @return true if there were any overflow frames
    */
   virtual bool DrainSelfOverflowList() override;
 
-  
+
   /**
    * Move all frames on our prev-in-flow's and our own ExcessOverflowContainers
    * lists to our OverflowContainers list.  If there are frames on multiple
    * lists they are merged using aMergeFunc.
    * @return a pointer to our OverflowContainers list, if any
    */
   nsFrameList* DrainExcessOverflowContainersList(ChildFrameMerger aMergeFunc =
                                                    DefaultChildFrameMerge);
@@ -611,17 +611,17 @@ protected:
    * As GetOverflowFrames, but removes the overflow frames property.  The
    * caller is responsible for deleting nsFrameList and either passing
    * ownership of the frames to someone else or destroying the frames.
    * A non-null return value indicates that the list is nonempty.  The
    * recommended way to use this function it to assign its return value
    * into an AutoFrameListPtr.
    */
   inline nsFrameList* StealOverflowFrames();
-  
+
   /**
    * Set the overflow list.  aOverflowFrames must not be an empty list.
    */
   void SetOverflowFrames(const nsFrameList& aOverflowFrames);
 
   /**
    * Destroy the overflow list, which must be empty.
    */
@@ -818,17 +818,17 @@ public:
    */
   class MOZ_RAII AutoFinish {
   public:
     AutoFinish(nsOverflowContinuationTracker* aTracker, nsIFrame* aChild)
       : mTracker(aTracker), mChild(aChild)
     {
       if (mTracker) mTracker->BeginFinish(mChild);
     }
-    ~AutoFinish() 
+    ~AutoFinish()
     {
       if (mTracker) mTracker->EndFinish(mChild);
     }
   private:
     nsOverflowContinuationTracker* mTracker;
     nsIFrame* mChild;
   };
 
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -362,17 +362,17 @@ nsIFrame::MarkAsNotAbsoluteContainingBlo
   DeleteProperty(AbsoluteContainingBlockProperty());
 }
 
 bool
 nsIFrame::CheckAndClearPaintedState()
 {
   bool result = (GetStateBits() & NS_FRAME_PAINTED_THEBES);
   RemoveStateBits(NS_FRAME_PAINTED_THEBES);
-  
+
   nsIFrame::ChildListIterator lists(this);
   for (; !lists.IsDone(); lists.Next()) {
     nsFrameList::Enumerator childFrames(lists.CurrentList());
     for (; !childFrames.AtEnd(); childFrames.Next()) {
       nsIFrame* child = childFrames.get();
       if (child->CheckAndClearPaintedState()) {
         result = true;
       }
@@ -388,17 +388,17 @@ nsIFrame::IsVisibleConsideringAncestors(
     return false;
   }
 
   const nsIFrame* frame = this;
   while (frame) {
     nsView* view = frame->GetView();
     if (view && view->GetVisibility() == nsViewVisibility_kHide)
       return false;
-    
+
     nsIFrame* parent = frame->GetParent();
     nsDeckFrame* deck = do_QueryFrame(parent);
     if (deck) {
       if (deck->GetSelectedBox() != frame)
         return false;
     }
 
     if (parent) {
@@ -1009,17 +1009,17 @@ nsIFrame::ReparentFrameViewTo(nsViewMana
     }
 #endif
     nsView* view = GetView();
     // Verify that the current parent view is what we think it is
     //nsView*  parentView;
     //NS_ASSERTION(parentView == aOldParentView, "unexpected parent view");
 
     aViewManager->RemoveChild(view);
-    
+
     // The view will remember the Z-order and other attributes that have been set on it.
     nsView* insertBefore = nsLayoutUtils::FindSiblingViewFor(aNewParentView, this);
     aViewManager->InsertChild(aNewParentView, view, insertBefore, insertBefore != nullptr);
   } else if (GetStateBits() & NS_FRAME_HAS_CHILD_WITH_VIEW) {
     nsIFrame::ChildListIterator lists(this);
     for (; !lists.IsDone(); lists.Next()) {
       // Iterate the child frames, and check each child frame to see if it has
       // a view
@@ -1667,17 +1667,17 @@ nsIFrame::GetShapeBoxBorderRadii(nscoord
 nsStyleContext*
 nsFrame::GetAdditionalStyleContext(int32_t aIndex) const
 {
   NS_PRECONDITION(aIndex >= 0, "invalid index number");
   return nullptr;
 }
 
 void
-nsFrame::SetAdditionalStyleContext(int32_t aIndex, 
+nsFrame::SetAdditionalStyleContext(int32_t aIndex,
                                    nsStyleContext* aStyleContext)
 {
   NS_PRECONDITION(aIndex >= 0, "invalid index number");
 }
 
 nscoord
 nsFrame::GetLogicalBaseline(WritingMode aWritingMode) const
 {
@@ -1998,17 +1998,17 @@ void nsDisplaySelectionOverlay::Paint(ns
 
 void
 nsFrame::DisplaySelectionOverlay(nsDisplayListBuilder*   aBuilder,
                                  nsDisplayList*          aList,
                                  uint16_t                aContentType)
 {
   if (!IsSelected() || !IsVisibleForPainting(aBuilder))
     return;
-    
+
   nsPresContext* presContext = PresContext();
   nsIPresShell *shell = presContext->PresShell();
   if (!shell)
     return;
 
   int16_t displaySelection = shell->GetSelectionFlags();
   if (!(displaySelection & aContentType))
     return;
@@ -2424,17 +2424,17 @@ nsIFrame::BuildDisplayListForStackingCon
   bool inTransform = aBuilder->IsInTransform();
   bool isTransformed = IsTransformed(disp, effectSet);
   bool hasPerspective = HasPerspective(effectSet);
   // reset blend mode so we can keep track if this stacking context needs have
   // a nsDisplayBlendContainer. Set the blend mode back when the routine exits
   // so we keep track if the parent stacking context needs a container too.
   AutoSaveRestoreContainsBlendMode autoRestoreBlendMode(*aBuilder);
   aBuilder->SetContainsBlendMode(false);
- 
+
   nsRect dirtyRectOutsideTransform = dirtyRect;
   bool allowAsyncAnimation = false;
   if (isTransformed) {
     const nsRect overflow = GetVisualOverflowRectRelativeToSelf();
     nsDisplayTransform::PrerenderDecision decision =
         nsDisplayTransform::ShouldPrerenderTransformedContent(aBuilder, this, &dirtyRect);
     switch (decision) {
     case nsDisplayTransform::FullPrerender:
@@ -3079,17 +3079,17 @@ nsIFrame::BuildDisplayListForChild(nsDis
       (child->GetStateBits() & NS_FRAME_OUT_OF_FLOW)) {
     dirty = child->GetVisualOverflowRect();
     awayFromCommonPath = true;
   } else if (!DescendIntoChild(aBuilder, child, dirty)) {
     return;
   }
 
   // XXX need to have inline-block and inline-table set pseudoStackingContext
-  
+
   const nsStyleDisplay* ourDisp = StyleDisplay();
   // REVIEW: Taken from nsBoxFrame::Paint
   // Don't paint our children if the theme object is a leaf.
   if (IsThemed(ourDisp) &&
       !PresContext()->GetTheme()->WidgetIsContainer(ourDisp->mAppearance))
     return;
 
   // Since we're now sure that we're adding this frame to the display list
@@ -3268,17 +3268,17 @@ nsIFrame::BuildDisplayListForChild(nsDis
     list.AppendToTop(pseudoStack.Outlines());
     extraPositionedDescendants.AppendToTop(pseudoStack.PositionedDescendants());
 #ifdef DEBUG
     DisplayDebugBorders(aBuilder, child, aLists);
 #endif
   }
 
   buildingForChild.RestoreBuildingInvisibleItemsValue();
- 
+
   // Clear clip rect for the construction of the items below. Since we're
   // clipping all their contents, they themselves don't need to be clipped.
   clipState.ClearUpToASR(wrapListASR);
 
   if (isPositioned || isVisuallyAtomic ||
       (aFlags & DISPLAY_CHILD_FORCE_STACKING_CONTEXT)) {
     // Genuine stacking contexts, and positioned pseudo-stacking-contexts,
     // go in this level.
@@ -3309,17 +3309,17 @@ void
 nsIFrame::MarkAbsoluteFramesForDisplayList(nsDisplayListBuilder* aBuilder,
                                            const nsRect& aDirtyRect)
 {
   if (IsAbsoluteContainer()) {
     aBuilder->MarkFramesForDisplayList(this, GetAbsoluteContainingBlock()->GetChildList(), aDirtyRect);
   }
 }
 
-nsresult  
+nsresult
 nsFrame::GetContentForEvent(WidgetEvent* aEvent,
                             nsIContent** aContent)
 {
   nsIFrame* f = nsLayoutUtils::GetNonGeneratedAncestor(this);
   *aContent = f->GetContent();
   NS_IF_ADDREF(*aContent);
   return NS_OK;
 }
@@ -3333,17 +3333,17 @@ nsFrame::FireDOMEvent(const nsAString& a
     RefPtr<AsyncEventDispatcher> asyncDispatcher =
       new AsyncEventDispatcher(target, aDOMEventName, true, false);
     DebugOnly<nsresult> rv = asyncDispatcher->PostDOMEvent();
     NS_ASSERTION(NS_SUCCEEDED(rv), "AsyncEventDispatcher failed to dispatch");
   }
 }
 
 nsresult
-nsFrame::HandleEvent(nsPresContext* aPresContext, 
+nsFrame::HandleEvent(nsPresContext* aPresContext,
                      WidgetGUIEvent* aEvent,
                      nsEventStatus* aEventStatus)
 {
 
   if (aEvent->mMessage == eMouseMove) {
     // XXX If the second argument of HandleDrag() is WidgetMouseEvent,
     //     the implementation becomes simpler.
     return HandleDrag(aPresContext, aEvent, aEventStatus);
@@ -3359,55 +3359,55 @@ nsFrame::HandleEvent(nsPresContext* aPre
     }
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFrame::GetDataForTableSelection(const nsFrameSelection* aFrameSelection,
                                   nsIPresShell* aPresShell,
-                                  WidgetMouseEvent* aMouseEvent, 
+                                  WidgetMouseEvent* aMouseEvent,
                                   nsIContent** aParentContent,
                                   int32_t* aContentOffset,
                                   int32_t* aTarget)
 {
   if (!aFrameSelection || !aPresShell || !aMouseEvent || !aParentContent || !aContentOffset || !aTarget)
     return NS_ERROR_NULL_POINTER;
 
   *aParentContent = nullptr;
   *aContentOffset = 0;
   *aTarget = 0;
 
   int16_t displaySelection = aPresShell->GetSelectionFlags();
 
   bool selectingTableCells = aFrameSelection->GetTableCellSelection();
 
   // DISPLAY_ALL means we're in an editor.
-  // If already in cell selection mode, 
+  // If already in cell selection mode,
   //  continue selecting with mouse drag or end on mouse up,
   //  or when using shift key to extend block of cells
   //  (Mouse down does normal selection unless Ctrl/Cmd is pressed)
   bool doTableSelection =
      displaySelection == nsISelectionDisplay::DISPLAY_ALL && selectingTableCells &&
      (aMouseEvent->mMessage == eMouseMove ||
       (aMouseEvent->mMessage == eMouseUp &&
        aMouseEvent->button == WidgetMouseEvent::eLeftButton) ||
       aMouseEvent->IsShift());
 
   if (!doTableSelection)
-  {  
+  {
     // In Browser, special 'table selection' key must be pressed for table selection
     // or when just Shift is pressed and we're already in table/cell selection mode
 #ifdef XP_MACOSX
     doTableSelection = aMouseEvent->IsMeta() || (aMouseEvent->IsShift() && selectingTableCells);
 #else
     doTableSelection = aMouseEvent->IsControl() || (aMouseEvent->IsShift() && selectingTableCells);
 #endif
   }
-  if (!doTableSelection) 
+  if (!doTableSelection)
     return NS_OK;
 
   // Get the cell frame or table frame (or parent) of the current content node
   nsIFrame *frame = this;
   bool foundCell = false;
   bool foundTable = false;
 
   // Get the limiting node to stop parent frame search
@@ -3417,17 +3417,17 @@ nsFrame::GetDataForTableSelection(const 
   // we should stop the search right now.
   if (limiter && nsContentUtils::ContentIsDescendantOf(limiter, GetContent()))
     return NS_OK;
 
   //We don't initiate row/col selection from here now,
   //  but we may in future
   //bool selectColumn = false;
   //bool selectRow = false;
-  
+
   while (frame)
   {
     // Check for a table cell by querying to a known CellFrame interface
     nsITableCellLayout *cellElement = do_QueryFrame(frame);
     if (cellElement)
     {
       foundCell = true;
       //TODO: If we want to use proximity to top or left border
@@ -3472,17 +3472,17 @@ nsFrame::GetDataForTableSelection(const 
 
   *aContentOffset = offset;
 
 #if 0
   if (selectRow)
     *aTarget = nsISelectionPrivate::TABLESELECTION_ROW;
   else if (selectColumn)
     *aTarget = nsISelectionPrivate::TABLESELECTION_COLUMN;
-  else 
+  else
 #endif
   if (foundCell)
     *aTarget = nsISelectionPrivate::TABLESELECTION_CELL;
   else if (foundTable)
     *aTarget = nsISelectionPrivate::TABLESELECTION_TABLE;
 
   return NS_OK;
 }
@@ -3566,34 +3566,34 @@ nsIFrame::IsSelectable(StyleUserSelect* 
          allowSelection &&
          selectStyle != StyleUserSelect::None;
 }
 
 /**
   * Handles the Mouse Press Event for the frame
  */
 NS_IMETHODIMP
-nsFrame::HandlePress(nsPresContext* aPresContext, 
+nsFrame::HandlePress(nsPresContext* aPresContext,
                      WidgetGUIEvent* aEvent,
                      nsEventStatus* aEventStatus)
 {
   NS_ENSURE_ARG_POINTER(aEventStatus);
   if (nsEventStatus_eConsumeNoDefault == *aEventStatus) {
     return NS_OK;
   }
 
   NS_ENSURE_ARG_POINTER(aEvent);
   if (aEvent->mClass == eTouchEventClass) {
     return NS_OK;
   }
 
   //We often get out of sync state issues with mousedown events that
   //get interrupted by alerts/dialogs.
   //Check with the ESM to see if we should process this one
-  if (!aPresContext->EventStateManager()->EventStatusOK(aEvent)) 
+  if (!aPresContext->EventStateManager()->EventStatusOK(aEvent))
     return NS_OK;
 
   nsIPresShell *shell = aPresContext->GetPresShell();
   if (!shell)
     return NS_ERROR_FAILURE;
 
   // if we are in Navigator and the click is in a draggable node, we don't want
   // to start selection because we don't want to interfere with a potential
@@ -3614,17 +3614,17 @@ nsFrame::HandlePress(nsPresContext* aPre
               nsLayoutUtils::GetEventCoordinatesRelativeTo(mouseEvent, this))) {
           return NS_OK;
         }
       }
     }
   }
 
   // check whether style allows selection
-  // if not, don't tell selection the mouse event even occurred.  
+  // if not, don't tell selection the mouse event even occurred.
   StyleUserSelect selectStyle;
   // check for select: none
   if (!IsSelectable(&selectStyle)) {
     return NS_OK;
   }
 
   // When implementing StyleUserSelect::Element, StyleUserSelect::Elements and
   // StyleUserSelect::Toggle, need to change this logic
@@ -3959,17 +3959,17 @@ nsFrame::PeekBackwardAndForward(nsSelect
                                    CARET_ASSOCIATE_BEFORE);
   if (NS_FAILED(rv))
     return rv;
 
   // maintain selection
   return frameSelection->MaintainSelection(aAmountBack);
 }
 
-NS_IMETHODIMP nsFrame::HandleDrag(nsPresContext* aPresContext, 
+NS_IMETHODIMP nsFrame::HandleDrag(nsPresContext* aPresContext,
                                   WidgetGUIEvent* aEvent,
                                   nsEventStatus* aEventStatus)
 {
   MOZ_ASSERT(aEvent->mClass == eMouseEventClass,
              "HandleDrag can only handle mouse event");
 
   RefPtr<nsFrameSelection> frameselection = GetFrameSelection();
   bool mouseDown = frameselection->GetDragState();
@@ -3995,17 +3995,17 @@ NS_IMETHODIMP nsFrame::HandleDrag(nsPres
   nsCOMPtr<nsIContent> parentContent;
   int32_t contentOffset;
   int32_t target;
   WidgetMouseEvent* mouseEvent = aEvent->AsMouseEvent();
   nsCOMPtr<nsIPresShell> presShell = aPresContext->PresShell();
   nsresult result;
   result = GetDataForTableSelection(frameselection, presShell, mouseEvent,
                                     getter_AddRefs(parentContent),
-                                    &contentOffset, &target);      
+                                    &contentOffset, &target);
 
   AutoWeakFrame weakThis = this;
   if (NS_SUCCEEDED(result) && parentContent) {
     frameselection->HandleTableSelection(parentContent, contentOffset, target,
                                          mouseEvent);
   } else {
     nsPoint pt = nsLayoutUtils::GetEventCoordinatesRelativeTo(mouseEvent, this);
     frameselection->HandleDrag(this, pt);
@@ -4529,17 +4529,17 @@ nsIFrame::ContentOffsets OffsetsForSingl
   }
 
   // Figure out whether the offsets should be over, after, or before the frame
   nsRect rect(nsPoint(0, 0), aFrame->GetSize());
 
   bool isBlock = aFrame->GetDisplay() != StyleDisplay::Inline;
   bool isRtl = (aFrame->StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL);
   if ((isBlock && rect.y < aPoint.y) ||
-      (!isBlock && ((isRtl  && rect.x + rect.width / 2 > aPoint.x) || 
+      (!isBlock && ((isRtl  && rect.x + rect.width / 2 > aPoint.x) ||
                     (!isRtl && rect.x + rect.width / 2 < aPoint.x)))) {
     offsets.offset = range.end;
     if (rect.Contains(aPoint))
       offsets.secondaryOffset = range.start;
     else
       offsets.secondaryOffset = range.end;
   } else {
     offsets.offset = range.start;
@@ -6482,26 +6482,26 @@ static void InvalidateFrameInternal(nsIF
     aFrame->DeleteProperty(nsIFrame::InvalidationRect());
     aFrame->RemoveStateBits(NS_FRAME_HAS_INVALID_RECT);
   }
 }
 
 void
 nsIFrame::InvalidateFrameSubtree(uint32_t aDisplayItemKey)
 {
-  bool hasDisplayItem = 
+  bool hasDisplayItem =
     !aDisplayItemKey || FrameLayerBuilder::HasRetainedDataFor(this, aDisplayItemKey);
   InvalidateFrame(aDisplayItemKey);
 
   if (HasAnyStateBits(NS_FRAME_ALL_DESCENDANTS_NEED_PAINT) || !hasDisplayItem) {
     return;
   }
 
   AddStateBits(NS_FRAME_ALL_DESCENDANTS_NEED_PAINT);
-  
+
   AutoTArray<nsIFrame::ChildList,4> childListArray;
   GetCrossDocChildLists(&childListArray);
 
   nsIFrame::ChildListArrayIterator lists(childListArray);
   for (; !lists.IsDone(); lists.Next()) {
     nsFrameList::Enumerator childFrames(lists.CurrentList());
     for (; !childFrames.AtEnd(); childFrames.Next()) {
       childFrames.get()->InvalidateFrameSubtree();
@@ -6520,40 +6520,40 @@ nsIFrame::ClearInvalidationStateBits()
     for (; !lists.IsDone(); lists.Next()) {
       nsFrameList::Enumerator childFrames(lists.CurrentList());
       for (; !childFrames.AtEnd(); childFrames.Next()) {
         childFrames.get()->ClearInvalidationStateBits();
       }
     }
   }
 
-  RemoveStateBits(NS_FRAME_NEEDS_PAINT | 
-                  NS_FRAME_DESCENDANT_NEEDS_PAINT | 
+  RemoveStateBits(NS_FRAME_NEEDS_PAINT |
+                  NS_FRAME_DESCENDANT_NEEDS_PAINT |
                   NS_FRAME_ALL_DESCENDANTS_NEED_PAINT);
 }
 
 void
 nsIFrame::InvalidateFrame(uint32_t aDisplayItemKey)
 {
-  bool hasDisplayItem = 
+  bool hasDisplayItem =
     !aDisplayItemKey || FrameLayerBuilder::HasRetainedDataFor(this, aDisplayItemKey);
   InvalidateFrameInternal(this, hasDisplayItem);
 }
 
 void
 nsIFrame::InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey)
 {
-  bool hasDisplayItem = 
+  bool hasDisplayItem =
     !aDisplayItemKey || FrameLayerBuilder::HasRetainedDataFor(this, aDisplayItemKey);
   bool alreadyInvalid = false;
   if (!HasAnyStateBits(NS_FRAME_NEEDS_PAINT)) {
     InvalidateFrameInternal(this, hasDisplayItem);
   } else {
     alreadyInvalid = true;
-  } 
+  }
 
   if (!hasDisplayItem) {
     return;
   }
 
   nsRect* rect;
   if (HasAnyStateBits(NS_FRAME_HAS_INVALID_RECT)) {
     rect = GetProperty(InvalidationRect());
@@ -6651,23 +6651,23 @@ nsIFrame::TryUpdateTransformOnly(Layer**
       !gfx::FuzzyEqual(transform._12, previousTransform._12, kError)) {
     return false;
   }
   layer->SetBaseTransformForNextTransaction(transform3d);
   *aLayerResult = layer;
   return true;
 }
 
-bool 
+bool
 nsIFrame::IsInvalid(nsRect& aRect)
 {
   if (!HasAnyStateBits(NS_FRAME_NEEDS_PAINT)) {
     return false;
   }
-  
+
   if (HasAnyStateBits(NS_FRAME_HAS_INVALID_RECT)) {
     nsRect* rect = GetProperty(InvalidationRect());
     NS_ASSERTION(rect, "Must have an invalid rect if NS_FRAME_HAS_INVALID_RECT is set!");
     aRect = *rect;
   } else {
     aRect.SetEmpty();
   }
   return true;
@@ -6974,17 +6974,17 @@ nsFrame::UnionChildOverflow(nsOverflowAr
   if (!DoesClipChildren() &&
       !(IsXULCollapsed() && (IsXULBoxFrame() || ::IsXULBoxWrapped(this)))) {
     nsLayoutUtils::UnionChildOverflow(this, aOverflowAreas);
   }
 }
 
 
 // Define the MAX_FRAME_DEPTH to be the ContentSink's MAX_REFLOW_DEPTH plus
-// 4 for the frames above the document's frames: 
+// 4 for the frames above the document's frames:
 //  the Viewport, GFXScroll, ScrollPort, and Canvas
 #define MAX_FRAME_DEPTH (MAX_REFLOW_DEPTH+4)
 
 bool
 nsFrame::IsFrameTreeTooDeep(const ReflowInput& aReflowInput,
                             ReflowOutput& aMetrics,
                             nsReflowStatus& aStatus)
 {
@@ -7373,17 +7373,17 @@ nsIFrame::IsVisibleOrCollapsedForPaintin
 }
 
 bool
 nsIFrame::IsVisibleInSelection(nsISelection* aSelection)
 {
   if (!GetContent() || !GetContent()->IsSelectionDescendant()) {
     return false;
   }
-  
+
   nsCOMPtr<nsIDOMNode> node(do_QueryInterface(mContent));
   bool vis;
   nsresult rv = aSelection->ContainsNode(node, true, &vis);
   return NS_FAILED(rv) || vis;
 }
 
 /* virtual */ bool
 nsFrame::IsEmpty()
@@ -7564,17 +7564,17 @@ nsFrame::GetCharacterRectsInRange(int32_
 }
 
 nsresult
 nsFrame::GetChildFrameContainingOffset(int32_t inContentOffset, bool inHint, int32_t* outFrameContentOffset, nsIFrame **outChildFrame)
 {
   NS_PRECONDITION(outChildFrame && outFrameContentOffset, "Null parameter");
   *outFrameContentOffset = (int32_t)inHint;
   //the best frame to reflect any given offset would be a visible frame if possible
-  //i.e. we are looking for a valid frame to place the blinking caret 
+  //i.e. we are looking for a valid frame to place the blinking caret
   nsRect rect = GetRect();
   if (!rect.width || !rect.height)
   {
     //if we have a 0 width or height then lets look for another frame that possibly has
     //the same content.  If we have no frames in flow then just let us return 'this' frame
     nsIFrame* nextFlow = GetNextInFlow();
     if (nextFlow)
       return nextFlow->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
@@ -7589,18 +7589,18 @@ nsFrame::GetChildFrameContainingOffset(i
 // and a line number, drill down and get the first/last selectable
 // frame on that line, depending on aPos->mDirection.
 // aOutSideLimit != 0 means ignore aLineStart, instead work from
 // the end (if > 0) or beginning (if < 0).
 //
 nsresult
 nsFrame::GetNextPrevLineFromeBlockFrame(nsPresContext* aPresContext,
                                         nsPeekOffsetStruct *aPos,
-                                        nsIFrame *aBlockFrame, 
-                                        int32_t aLineStart, 
+                                        nsIFrame *aBlockFrame,
+                                        int32_t aLineStart,
                                         int8_t aOutSideLimit
                                         )
 {
   //magic numbers aLineStart will be -1 for end of block 0 will be start of block
   if (!aBlockFrame || !aPos)
     return NS_ERROR_NULL_POINTER;
 
   aPos->mResultFrame = nullptr;
@@ -7611,19 +7611,19 @@ nsFrame::GetNextPrevLineFromeBlockFrame(
   nsAutoLineIterator it = aBlockFrame->GetLineIterator();
   if (!it)
     return NS_ERROR_FAILURE;
   int32_t searchingLine = aLineStart;
   int32_t countLines = it->GetNumLines();
   if (aOutSideLimit > 0) //start at end
     searchingLine = countLines;
   else if (aOutSideLimit <0)//start at beginning
-    searchingLine = -1;//"next" will be 0  
-  else 
-    if ((aPos->mDirection == eDirPrevious && searchingLine == 0) || 
+    searchingLine = -1;//"next" will be 0
+  else
+    if ((aPos->mDirection == eDirPrevious && searchingLine == 0) ||
        (aPos->mDirection == eDirNext && searchingLine >= (countLines -1) )){
       //we need to jump to new block frame.
            return NS_ERROR_FAILURE;
     }
   int32_t lineFrameCount;
   nsIFrame *resultFrame = nullptr;
   nsIFrame *farStoppingFrame = nullptr; //we keep searching until we find a "this" frame then we go to next line
   nsIFrame *nearStoppingFrame = nullptr; //if we are backing up from edge, stop here
@@ -7635,25 +7635,25 @@ nsFrame::GetNextPrevLineFromeBlockFrame(
 
   nsresult result = NS_OK;
   while (!found)
   {
     if (aPos->mDirection == eDirPrevious)
       searchingLine --;
     else
       searchingLine ++;
-    if ((aPos->mDirection == eDirPrevious && searchingLine < 0) || 
+    if ((aPos->mDirection == eDirPrevious && searchingLine < 0) ||
        (aPos->mDirection == eDirNext && searchingLine >= countLines ))
     {
       //we need to jump to new block frame.
       return NS_ERROR_FAILURE;
     }
     result = it->GetLine(searchingLine, &firstFrame, &lineFrameCount,
                          rect);
-    if (!lineFrameCount) 
+    if (!lineFrameCount)
       continue;
     if (NS_SUCCEEDED(result)){
       lastFrame = firstFrame;
       for (;lineFrameCount > 1;lineFrameCount --){
         //result = lastFrame->GetNextSibling(&lastFrame, searchingLine);
         result = it->GetNextSiblingOnLine(lastFrame, searchingLine);
         if (NS_FAILED(result) || !lastFrame){
           NS_ERROR("GetLine promised more frames than could be found");
@@ -7872,33 +7872,33 @@ FindBlockFrameOrBR(nsIFrame* aFrame, nsD
   if (aFrame->IsGeneratedContentFrame())
     return result;
 
   // Treat form controls as inline leaves
   // XXX we really need a way to determine whether a frame is inline-level
   nsIFormControlFrame* fcf = do_QueryFrame(aFrame);
   if (fcf)
     return result;
-  
+
   // Check the frame itself
   // Fall through block-in-inline split frames because their mContent is
   // the content of the inline frames they were created from. The
   // first/last child of such frames is the real block frame we're
   // looking for.
   if ((nsLayoutUtils::GetAsBlock(aFrame) &&
        !(aFrame->GetStateBits() & NS_FRAME_PART_OF_IBSPLIT)) ||
       aFrame->IsBrFrame()) {
     nsIContent* content = aFrame->GetContent();
     result.mContent = content->GetParent();
     // In some cases (bug 310589, bug 370174) we end up here with a null content.
     // This probably shouldn't ever happen, but since it sometimes does, we want
     // to avoid crashing here.
     NS_ASSERTION(result.mContent, "Unexpected orphan content");
     if (result.mContent)
-      result.mOffset = result.mContent->IndexOf(content) + 
+      result.mOffset = result.mContent->IndexOf(content) +
         (aDirection == eDirPrevious ? 1 : 0);
     return result;
   }
 
   // If this is a preformatted text frame, see if it ends with a newline
   if (aFrame->HasSignificantTerminalNewline()) {
     int32_t startOffset, endOffset;
     aFrame->GetOffsets(startOffset, endOffset);
@@ -7931,17 +7931,17 @@ nsIFrame::PeekOffsetParagraph(nsPeekOffs
   nsContentAndOffset blockFrameOrBR;
   blockFrameOrBR.mContent = nullptr;
   bool reachedBlockAncestor = false;
 
   // Go through containing frames until reaching a block frame.
   // In each step, search the previous (or next) siblings for the closest
   // "stop frame" (a block frame or a BRFrame).
   // If found, set it to be the selection boundray and abort.
-  
+
   if (aPos->mDirection == eDirPrevious) {
     while (!reachedBlockAncestor) {
       nsIFrame* parent = frame->GetParent();
       // Treat a frame associated with the root content as if it were a block frame.
       if (!frame->mContent || !frame->mContent->GetParent()) {
         reachedBlockAncestor = true;
         break;
       }
@@ -8008,32 +8008,32 @@ nsIFrame::PeekOffset(nsPeekOffsetStruct*
 
   if (mState & NS_FRAME_IS_DIRTY)
     return NS_ERROR_UNEXPECTED;
 
   // Translate content offset to be relative to frame
   FrameContentRange range = GetRangeForFrame(this);
   int32_t offset = aPos->mStartOffset - range.start;
   nsIFrame* current = this;
-  
+
   switch (aPos->mAmount) {
     case eSelectCharacter:
     case eSelectCluster:
     {
       bool eatingNonRenderableWS = false;
       nsIFrame::FrameSearchResult peekSearchState = CONTINUE;
       bool jumpedLine = false;
       bool movedOverNonSelectableText = false;
-      
+
       while (peekSearchState != FOUND) {
         bool movingInFrameDirection =
           IsMovingInFrameDirection(current, aPos->mDirection, aPos->mVisual);
 
         if (eatingNonRenderableWS) {
-          peekSearchState = current->PeekOffsetNoAmount(movingInFrameDirection, &offset); 
+          peekSearchState = current->PeekOffsetNoAmount(movingInFrameDirection, &offset);
         } else {
           PeekOffsetCharacterOptions options;
           options.mRespectClusters = aPos->mAmount == eSelectCluster;
           peekSearchState = current->PeekOffsetCharacter(movingInFrameDirection,
                                                          &offset, options);
         }
 
         movedOverNonSelectableText |= (peekSearchState == CONTINUE_UNSELECTABLE);
@@ -8080,17 +8080,17 @@ nsIFrame::PeekOffset(nsPeekOffsetStruct*
       // If we're dealing with a text frame and moving backward positions us at
       // the end of that line, decrease the offset by one to make sure that
       // we're placed before the linefeed character on the previous line.
       if (offset < 0 && jumpedLine &&
           aPos->mDirection == eDirPrevious &&
           current->HasSignificantTerminalNewline()) {
         --aPos->mContentOffset;
       }
-      
+
       break;
     }
     case eSelectWordNoSpace:
       // eSelectWordNoSpace means that we should not be eating any whitespace when
       // moving to the adjacent word.  This means that we should set aPos->
       // mWordMovementType to eEndWord if we're moving forwards, and to eStartWord
       // if we're moving backwards.
       if (aPos->mDirection == eDirPrevious) {
@@ -8115,35 +8115,35 @@ nsIFrame::PeekOffset(nsPeekOffsetStruct*
       }
       else {
         // Use the hidden preference which is based on operating system behavior.
         // This pref only affects whether moving forward by word should go to the end of this word or start of the next word.
         // When going backwards, the start of the word is always used, on every operating system.
         wordSelectEatSpace = aPos->mDirection == eDirNext &&
           Preferences::GetBool("layout.word_select.eat_space_to_next_word");
       }
-      
+
       // mSawBeforeType means "we already saw characters of the type
       // before the boundary we're looking for". Examples:
       // 1. If we're moving forward, looking for a word beginning (i.e. a boundary
       //    between whitespace and non-whitespace), then eatingWS==true means
       //    "we already saw some whitespace".
       // 2. If we're moving backward, looking for a word beginning (i.e. a boundary
       //    between non-whitespace and whitespace), then eatingWS==true means
       //    "we already saw some non-whitespace".
       PeekWordState state;
       int32_t offsetAdjustment = 0;
       bool done = false;
       while (!done) {
         bool movingInFrameDirection =
           IsMovingInFrameDirection(current, aPos->mDirection, aPos->mVisual);
-        
+
         done = current->PeekOffsetWord(movingInFrameDirection, wordSelectEatSpace,
                                        aPos->mIsKeyboardSelect, &offset, &state) == FOUND;
-        
+
         if (!done) {
           nsIFrame* nextFrame;
           int32_t nextFrameOffset;
           bool jumpedLine, movedOverNonSelectableText;
           result =
             current->GetFrameFromDirection(aPos->mDirection, aPos->mVisual,
                                            aPos->mJumpLines, aPos->mScrollViewStop,
                                            &nextFrame, &nextFrameOffset, &jumpedLine,
@@ -8166,49 +8166,49 @@ nsIFrame::PeekOffset(nsPeekOffsetStruct*
             current = nextFrame;
             offset = nextFrameOffset;
             // Jumping a line is equivalent to encountering whitespace
             if (wordSelectEatSpace && jumpedLine)
               state.SetSawBeforeType();
           }
         }
       }
-      
+
       // Set outputs
       range = GetRangeForFrame(current);
       aPos->mResultFrame = current;
       aPos->mResultContent = range.content;
       // Output offset is relative to content, not frame
       aPos->mContentOffset = (offset < 0 ? range.end : range.start + offset) + offsetAdjustment;
       break;
     }
     case eSelectLine :
     {
       nsAutoLineIterator iter;
       nsIFrame *blockFrame = this;
 
       while (NS_FAILED(result)){
         int32_t thisLine = nsFrame::GetLineNumber(blockFrame, aPos->mScrollViewStop, &blockFrame);
-        if (thisLine < 0) 
+        if (thisLine < 0)
           return  NS_ERROR_FAILURE;
         iter = blockFrame->GetLineIterator();
         NS_ASSERTION(iter, "GetLineNumber() succeeded but no block frame?");
         result = NS_OK;
 
         int edgeCase = 0; // no edge case. this should look at thisLine
-        
+
         bool doneLooping = false; // tells us when no more block frames hit.
         // this part will find a frame or a block frame. if it's a block frame
         // it will "drill down" to find a viable frame or it will return an error.
         nsIFrame *lastFrame = this;
         do {
           result = nsFrame::GetNextPrevLineFromeBlockFrame(PresContext(),
-                                                           aPos, 
-                                                           blockFrame, 
-                                                           thisLine, 
+                                                           aPos,
+                                                           blockFrame,
+                                                           thisLine,
                                                            edgeCase); // start from thisLine
 
           // we came back to same spot! keep going
           if (NS_SUCCEEDED(result) &&
               (!aPos->mResultFrame || aPos->mResultFrame == lastFrame)) {
             aPos->mResultFrame = nullptr;
             if (aPos->mDirection == eDirPrevious)
               thisLine--;
@@ -8344,17 +8344,17 @@ nsIFrame::PeekOffset(nsPeekOffsetStruct*
       aPos->mResultFrame = targetFrame.frame;
       aPos->mAttach = aPos->mContentOffset == range.start ?
           CARET_ASSOCIATE_AFTER : CARET_ASSOCIATE_BEFORE;
       if (!range.content)
         return NS_ERROR_FAILURE;
       return NS_OK;
     }
 
-    default: 
+    default:
     {
       NS_ASSERTION(false, "Invalid amount");
       return NS_ERROR_FAILURE;
     }
   }
   return NS_OK;
 }
 
@@ -8467,26 +8467,26 @@ nsFrame::GetLineNumber(nsIFrame *aFrame,
   nsIFrame* blockFrame = aFrame;
   nsIFrame* thisBlock;
   nsAutoLineIterator it;
   nsresult result = NS_ERROR_FAILURE;
   while (NS_FAILED(result) && blockFrame)
   {
     thisBlock = blockFrame;
     if (thisBlock->GetStateBits() & NS_FRAME_OUT_OF_FLOW) {
-      //if we are searching for a frame that is not in flow we will not find it. 
+      //if we are searching for a frame that is not in flow we will not find it.
       //we must instead look for its placeholder
       if (thisBlock->GetStateBits() & NS_FRAME_IS_OVERFLOW_CONTAINER) {
         // abspos continuations don't have placeholders, get the fif
         thisBlock = thisBlock->FirstInFlow();
       }
       thisBlock = thisBlock->GetPlaceholderFrame();
       if (!thisBlock)
         return -1;
-    }  
+    }
     blockFrame = thisBlock->GetParent();
     result = NS_OK;
     if (blockFrame) {
       if (aLockScroll && blockFrame->IsScrollFrame())
         return -1;
       it = blockFrame->GetLineIterator();
       if (!it)
         result = NS_ERROR_FAILURE;
@@ -8505,29 +8505,29 @@ nsIFrame::GetFrameFromDirection(nsDirect
                                 bool aJumpLines, bool aScrollViewStop,
                                 nsIFrame** aOutFrame, int32_t* aOutOffset,
                                 bool* aOutJumpedLine, bool* aOutMovedOverNonSelectableText)
 {
   nsresult result;
 
   if (!aOutFrame || !aOutOffset || !aOutJumpedLine)
     return NS_ERROR_NULL_POINTER;
-  
+
   nsPresContext* presContext = PresContext();
   *aOutFrame = nullptr;
   *aOutOffset = 0;
   *aOutJumpedLine = false;
   *aOutMovedOverNonSelectableText = false;
 
   // Find the prev/next selectable frame
   bool selectable = false;
   nsIFrame *traversedFrame = this;
   while (!selectable) {
     nsIFrame *blockFrame;
-    
+
     int32_t thisLine = nsFrame::GetLineNumber(traversedFrame, aScrollViewStop, &blockFrame);
     if (thisLine < 0)
       return NS_ERROR_FAILURE;
 
     nsAutoLineIterator it = blockFrame->GetLineIterator();
     NS_ASSERTION(it, "GetLineNumber() succeeded but no block frame?");
 
     bool atLineEdge;
@@ -8992,17 +8992,17 @@ nsIFrame::FinishAndStoreOverflow(nsOverf
     SetProperty(nsIFrame::DebugInitialOverflowPropertyApplied(), true);
 #endif
   } else {
 #ifdef DEBUG
     DeleteProperty(nsIFrame::DebugInitialOverflowPropertyApplied());
 #endif
   }
 
-  // This is now called FinishAndStoreOverflow() instead of 
+  // This is now called FinishAndStoreOverflow() instead of
   // StoreOverflow() because frame-generic ways of adding overflow
   // can happen here, e.g. CSS2 outline and native theme.
   // If the overflow area width or height is nscoord_MAX, then a
   // saturating union may have encounted an overflow, so the overflow may not
   // contain the frame border-box. Don't warn in that case.
   // Don't warn for SVG either, since SVG doesn't need the overflow area
   // to contain the frame bounds.
   NS_FOR_FRAME_OVERFLOW_TYPES(otype) {
@@ -9017,17 +9017,17 @@ nsIFrame::FinishAndStoreOverflow(nsOverf
   // If we clip our children, clear accumulated overflow area. The
   // children are actually clipped to the padding-box, but since the
   // overflow area should include the entire border-box, just set it to
   // the border-box here.
   NS_ASSERTION((disp->mOverflowY == NS_STYLE_OVERFLOW_CLIP) ==
                (disp->mOverflowX == NS_STYLE_OVERFLOW_CLIP),
                "If one overflow is clip, the other should be too");
   if (nsFrame::ShouldApplyOverflowClipping(this, disp)) {
-    // The contents are actually clipped to the padding area 
+    // The contents are actually clipped to the padding area
     aOverflowAreas.SetAllTo(bounds);
   }
 
   // Overflow area must always include the frame's top-left and bottom-right,
   // even if the frame rect is empty (so we can scroll to those positions).
   // Pending a real fix for bug 426879, don't do this for inline frames
   // with zero width.
   // Do not do this for SVG either, since it will usually massively increase
@@ -9139,17 +9139,17 @@ nsIFrame::RecomputePerspectiveChildrenOv
   for (; !lists.IsDone(); lists.Next()) {
     nsFrameList::Enumerator childFrames(lists.CurrentList());
     for (; !childFrames.AtEnd(); childFrames.Next()) {
       nsIFrame* child = childFrames.get();
       if (!child->FrameMaintainsOverflow()) {
         continue; // frame does not maintain overflow rects
       }
       if (child->HasPerspective(aEffectSet)) {
-        nsOverflowAreas* overflow = 
+        nsOverflowAreas* overflow =
           child->GetProperty(nsIFrame::InitialOverflowProperty());
         nsRect bounds(nsPoint(0, 0), child->GetSize());
         if (overflow) {
           nsOverflowAreas overflowCopy = *overflow;
           child->FinishAndStoreOverflow(overflowCopy, bounds.Size());
         } else {
           nsOverflowAreas boundsOverflow;
           boundsOverflow.SetAllTo(bounds);
@@ -9521,17 +9521,17 @@ nsIFrame::IsFocusable(int32_t *aTabIndex
         mContent->IsHTMLElement() &&
         !mContent->IsRootOfNativeAnonymousSubtree() && mContent->GetParent() &&
         !mContent->HasAttr(kNameSpaceID_None, nsGkAtoms::tabindex)) {
       // Elements with scrollable view are focusable with script & tabbable
       // Otherwise you couldn't scroll them with keyboard, which is
       // an accessibility issue (e.g. Section 508 rules)
       // However, we don't make them to be focusable with the mouse,
       // because the extra focus outlines are considered unnecessarily ugly.
-      // When clicked on, the selection position within the element 
+      // When clicked on, the selection position within the element
       // will be enough to make them keyboard scrollable.
       nsIScrollableFrame *scrollFrame = do_QueryFrame(this);
       if (scrollFrame &&
           !scrollFrame->GetScrollbarStyles().IsHiddenInBothDirections() &&
           !scrollFrame->GetScrollRange().IsEqualEdges(nsRect(0, 0, 0, 0))) {
         // Scroll bars will be used for overflow
         isFocusable = true;
         tabIndex = 0;
@@ -9639,23 +9639,23 @@ void nsFrame::FillCursorInformationFromS
   }
 }
 
 NS_IMETHODIMP
 nsFrame::RefreshSizeCache(nsBoxLayoutState& aState)
 {
   // XXXbz this comment needs some rewriting to make sense in the
   // post-reflow-branch world.
-  
+
   // Ok we need to compute our minimum, preferred, and maximum sizes.
   // 1) Maximum size. This is easy. Its infinite unless it is overloaded by CSS.
-  // 2) Preferred size. This is a little harder. This is the size the block would be 
+  // 2) Preferred size. This is a little harder. This is the size the block would be
   //      if it were laid out on an infinite canvas. So we can get this by reflowing
   //      the block with and INTRINSIC width and height. We can also do a nice optimization
-  //      for incremental reflow. If the reflow is incremental then we can pass a flag to 
+  //      for incremental reflow. If the reflow is incremental then we can pass a flag to
   //      have the block compute the preferred width for us! Preferred height can just be
   //      the minimum height;
   // 3) Minimum size. This is a toughy. We can pass the block a flag asking for the max element
   //    size. That would give us the width. Unfortunately you can only ask for a maxElementSize
   //    during an incremental reflow. So on other reflows we will just have to use 0.
   //    The min height on the other hand is fairly easy we need to get the largest
   //    line height. This can be done with the line iterator.
 
@@ -9694,17 +9694,17 @@ nsFrame::RefreshSizeCache(nsBoxLayoutSta
     BoxReflow(aState, presContext, desiredSize, rendContext,
               rect.x, rect.y,
               metrics->mBlockPrefSize.width, NS_UNCONSTRAINEDSIZE);
 
     metrics->mBlockMinSize.height = 0;
     // ok we need the max ascent of the items on the line. So to do this
     // ask the block for its line iterator. Get the max ascent.
     nsAutoLineIterator lines = GetLineIterator();
-    if (lines) 
+    if (lines)
     {
       metrics->mBlockMinSize.height = 0;
       int count = 0;
       nsIFrame* firstFrame = nullptr;
       int32_t framesOnLine;
       nsRect lineBounds;
 
       do {
@@ -9910,17 +9910,17 @@ nsFrame::DoXULLayout(nsBoxLayoutState& a
         }
 
         if (desiredSize.BSize(outerWM) > ourSize.BSize(outerWM)) {
           ourSize.BSize(outerWM) = desiredSize.BSize(outerWM);
         }
       }
 
       // ensure our size is what we think is should be. Someone could have
-      // reset the frame to be smaller or something dumb like that. 
+      // reset the frame to be smaller or something dumb like that.
       SetSize(ourSize.ConvertTo(ourWM, outerWM));
     }
   }
 
   // Should we do this if IsXULCollapsed() is true?
   LogicalSize size(GetLogicalSize(outerWM));
   desiredSize.ISize(outerWM) = size.ISize(outerWM);
   desiredSize.BSize(outerWM) = size.BSize(outerWM);
@@ -9974,39 +9974,39 @@ nsFrame::BoxReflow(nsBoxLayoutState&    
 #endif
 
   nsBoxLayoutMetrics *metrics = BoxMetrics();
   nsReflowStatus status;
   WritingMode wm = aDesiredSize.GetWritingMode();
 
   bool needsReflow = NS_SUBTREE_DIRTY(this);
 
-  // if we don't need a reflow then 
+  // if we don't need a reflow then
   // lets see if we are already that size. Yes? then don't even reflow. We are done.
   if (!needsReflow) {
-      
+
       if (aWidth != NS_INTRINSICSIZE && aHeight != NS_INTRINSICSIZE) {
-      
+
           // if the new calculated size has a 0 width or a 0 height
           if ((metrics->mLastSize.width == 0 || metrics->mLastSize.height == 0) && (aWidth == 0 || aHeight == 0)) {
                needsReflow = false;
-               aDesiredSize.Width() = aWidth; 
-               aDesiredSize.Height() = aHeight; 
+               aDesiredSize.Width() = aWidth;
+               aDesiredSize.Height() = aHeight;
                SetSize(aDesiredSize.Size(wm).ConvertTo(GetWritingMode(), wm));
           } else {
             aDesiredSize.Width() = metrics->mLastSize.width;
             aDesiredSize.Height() = metrics->mLastSize.height;
 
             // remove the margin. The rect of our child does not include it but our calculated size does.
             // don't reflow if we are already the right size
             if (metrics->mLastSize.width == aWidth && metrics->mLastSize.height == aHeight)
                   needsReflow = false;
             else
                   needsReflow = true;
-   
+
           }
       } else {
           // if the width or height are intrinsic alway reflow because
           // we don't know what it should be.
          needsReflow = true;
       }
   }
 
@@ -10168,23 +10168,23 @@ nsFrame::BoxReflow(nsBoxLayoutState&    
     aDesiredSize.SetBlockStartAscent(metrics->mBlockAscent);
   }
 
 #ifdef DEBUG_REFLOW
   if (aHeight != NS_INTRINSICSIZE && aDesiredSize.Height() != aHeight)
   {
           nsAdaptorAddIndents();
           printf("*****got taller!*****\n");
-         
+
   }
   if (aWidth != NS_INTRINSICSIZE && aDesiredSize.Width() != aWidth)
   {
           nsAdaptorAddIndents();
           printf("*****got wider!******\n");
-         
+
   }
 #endif
 
   if (aWidth == NS_INTRINSICSIZE)
      aWidth = aDesiredSize.Width();
 
   if (aHeight == NS_INTRINSICSIZE)
      aHeight = aDesiredSize.Height();
@@ -10401,33 +10401,33 @@ nsIFrame::SetParent(nsContainerFrame* aP
     }
   }
 
   if (aParent->HasAnyStateBits(NS_FRAME_IN_POPUP)) {
     AddInPopupStateBitToDescendants(this);
   } else {
     RemoveInPopupStateBitFromDescendants(this);
   }
-  
+
   // If our new parent only has invalid children, then we just invalidate
   // ourselves too. This is probably faster than clearing the flag all
   // the way up the frame tree.
   if (aParent->HasAnyStateBits(NS_FRAME_ALL_DESCENDANTS_NEED_PAINT)) {
     InvalidateFrame();
   }
 }
 
 void
-nsIFrame::CreateOwnLayerIfNeeded(nsDisplayListBuilder* aBuilder, 
+nsIFrame::CreateOwnLayerIfNeeded(nsDisplayListBuilder* aBuilder,
                                  nsDisplayList* aList)
 {
   if (GetContent() &&
       GetContent()->IsXULElement() &&
       GetContent()->HasAttr(kNameSpaceID_None, nsGkAtoms::layer)) {
-    aList->AppendNewToTop(new (aBuilder) 
+    aList->AppendNewToTop(new (aBuilder)
         nsDisplayOwnLayer(aBuilder, this, aList, aBuilder->CurrentActiveScrolledRoot()));
   }
 }
 
 bool
 nsIFrame::IsSelected() const
 {
   return (GetContent() && GetContent()->IsSelectionDescendant()) ?
@@ -10711,44 +10711,44 @@ nsAdaptorAddIndents()
     }
 }
 
 void
 nsAdaptorPrintReason(ReflowInput& aReflowInput)
 {
     char* reflowReasonString;
 
-    switch(aReflowInput.reason) 
+    switch(aReflowInput.reason)
     {
         case eReflowReason_Initial:
           reflowReasonString = "initial";
           break;
 
         case eReflowReason_Resize:
           reflowReasonString = "resize";
           break;
         case eReflowReason_Dirty:
           reflowReasonString = "dirty";
           break;
         case eReflowReason_StyleChange:
           reflowReasonString = "stylechange";
           break;
-        case eReflowReason_Incremental: 
+        case eReflowReason_Incremental:
         {
             switch (aReflowInput.reflowCommand->Type()) {
               case eReflowType_StyleChanged:
                  reflowReasonString = "incremental (StyleChanged)";
               break;
               case eReflowType_ReflowDirty:
                  reflowReasonString = "incremental (ReflowDirty)";
               break;
               default:
                  reflowReasonString = "incremental (Unknown)";
             }
-        }                             
+        }
         break;
         default:
           reflowReasonString = "unknown";
           break;
     }
 
     printf("%s",reflowReasonString);
 }
@@ -10824,17 +10824,17 @@ nsFrame::VerifyDirtyBitSet(const nsFrame
                  "dirty bit not set");
   }
 }
 
 // Start Display Reflow
 #ifdef DEBUG
 
 DR_cookie::DR_cookie(nsPresContext*          aPresContext,
-                     nsIFrame*                aFrame, 
+                     nsIFrame*                aFrame,
                      const ReflowInput& aReflowInput,
                      ReflowOutput&     aMetrics,
                      nsReflowStatus&          aStatus)
   :mPresContext(aPresContext), mFrame(aFrame), mReflowInput(aReflowInput), mMetrics(aMetrics), mStatus(aStatus)
 {
   MOZ_COUNT_CTOR(DR_cookie);
   mValue = nsFrame::DisplayReflowEnter(aPresContext, mFrame, mReflowInput);
 }
@@ -10854,17 +10854,17 @@ DR_layout_cookie::DR_layout_cookie(nsIFr
 
 DR_layout_cookie::~DR_layout_cookie()
 {
   MOZ_COUNT_DTOR(DR_layout_cookie);
   nsFrame::DisplayLayoutExit(mFrame, mValue);
 }
 
 DR_intrinsic_width_cookie::DR_intrinsic_width_cookie(
-                     nsIFrame*                aFrame, 
+                     nsIFrame*                aFrame,
                      const char*              aType,
                      nscoord&                 aResult)
   : mFrame(aFrame)
   , mType(aType)
   , mResult(aResult)
 {
   MOZ_COUNT_CTOR(DR_intrinsic_width_cookie);
   mValue = nsFrame::DisplayIntrinsicISizeEnter(mFrame, mType);
@@ -10872,17 +10872,17 @@ DR_intrinsic_width_cookie::DR_intrinsic_
 
 DR_intrinsic_width_cookie::~DR_intrinsic_width_cookie()
 {
   MOZ_COUNT_DTOR(DR_intrinsic_width_cookie);
   nsFrame::DisplayIntrinsicISizeExit(mFrame, mType, mResult, mValue);
 }
 
 DR_intrinsic_size_cookie::DR_intrinsic_size_cookie(
-                     nsIFrame*                aFrame, 
+                     nsIFrame*                aFrame,
                      const char*              aType,
                      nsSize&                  aResult)
   : mFrame(aFrame)
   , mType(aType)
   , mResult(aResult)
 {
   MOZ_COUNT_CTOR(DR_intrinsic_size_cookie);
   mValue = nsFrame::DisplayIntrinsicSizeEnter(mFrame, mType);
@@ -10976,17 +10976,17 @@ struct DR_State
   bool GetToken(FILE* aFile,
                   char* aBuf,
                   size_t aBufSize);
   DR_Rule* ParseRule(FILE* aFile);
   void ParseRulesFile();
   void AddRule(nsTArray<DR_Rule*>& aRules,
                DR_Rule&            aRule);
   bool IsWhiteSpace(int c);
-  bool GetNumber(char*    aBuf, 
+  bool GetNumber(char*    aBuf,
                  int32_t&  aNumber);
   void PrettyUC(nscoord aSize,
                 char*   aBuf,
                 int     aBufSize);
   void PrintMargin(const char* tag, const nsMargin* aMargin);
   void DisplayFrameTypeInfo(nsIFrame* aFrame,
                             int32_t   aIndent);
   void DeleteTreeNode(DR_FrameTreeNode& aNode);
@@ -11097,55 +11097,55 @@ struct DR_FrameTreeNode
   nsIFrame*         mFrame;
   DR_FrameTreeNode* mParent;
   bool              mDisplay;
   uint32_t          mIndent;
 };
 
 // DR_State implementation
 
-DR_State::DR_State() 
-: mInited(false), mActive(false), mCount(0), mAssert(-1), mIndent(0), 
+DR_State::DR_State()
+: mInited(false), mActive(false), mCount(0), mAssert(-1), mIndent(0),
   mIndentUndisplayedFrames(false), mDisplayPixelErrors(false)
 {
   MOZ_COUNT_CTOR(DR_State);
 }
 
-void DR_State::Init() 
+void DR_State::Init()
 {
   char* env = PR_GetEnv("GECKO_DISPLAY_REFLOW_ASSERT");
   int32_t num;
   if (env) {
-    if (GetNumber(env, num)) 
+    if (GetNumber(env, num))
       mAssert = num;
-    else 
+    else
       printf("GECKO_DISPLAY_REFLOW_ASSERT - invalid value = %s", env);
   }
 
   env = PR_GetEnv("GECKO_DISPLAY_REFLOW_INDENT_START");
   if (env) {
-    if (GetNumber(env, num)) 
+    if (GetNumber(env, num))
       mIndent = num;
-    else 
+    else
       printf("GECKO_DISPLAY_REFLOW_INDENT_START - invalid value = %s", env);
   }
 
   env = PR_GetEnv("GECKO_DISPLAY_REFLOW_INDENT_UNDISPLAYED_FRAMES");
   if (env) {
-    if (GetNumber(env, num)) 
+    if (GetNumber(env, num))
       mIndentUndisplayedFrames = num;
-    else 
+    else
       printf("GECKO_DISPLAY_REFLOW_INDENT_UNDISPLAYED_FRAMES - invalid value = %s", env);
   }
 
   env = PR_GetEnv("GECKO_DISPLAY_REFLOW_FLAG_PIXEL_ERRORS");
   if (env) {
-    if (GetNumber(env, num)) 
+    if (GetNumber(env, num))
       mDisplayPixelErrors = num;
-    else 
+    else
       printf("GECKO_DISPLAY_REFLOW_FLAG_PIXEL_ERRORS - invalid value = %s", env);
   }
 
   InitFrameTypeTable();
   ParseRulesFile();
   mInited = true;
 }
 
@@ -11158,22 +11158,22 @@ DR_State::~DR_State()
     delete mWildRules.ElementAt(i);
   }
   numElements = mFrameTreeLeaves.Length();
   for (i = numElements - 1; i >= 0; i--) {
     delete mFrameTreeLeaves.ElementAt(i);
   }
 }
 
-bool DR_State::GetNumber(char*     aBuf, 
+bool DR_State::GetNumber(char*     aBuf,
                            int32_t&  aNumber)
 {
-  if (sscanf(aBuf, "%d", &aNumber) > 0) 
+  if (sscanf(aBuf, "%d", &aNumber) > 0)
     return true;
-  else 
+  else
     return false;
 }
 
 bool DR_State::IsWhiteSpace(int c) {
   return (c == ' ') || (c == '\t') || (c == '\n') || (c == '\r');
 }
 
 bool DR_State::GetToken(FILE* aFile,
@@ -11190,17 +11190,17 @@ bool DR_State::GetToken(FILE* aFile,
   if (c > 0) {
     haveToken = true;
     aBuf[0] = c;
     // get everything up to the next whitespace char
     size_t cX;
     for (cX = 1; cX + 1 < aBufSize ; cX++) {
       c = getc(aFile);
       if (c < 0) { // EOF
-        ungetc(' ', aFile); 
+        ungetc(' ', aFile);
         break;
       }
       else {
         if (IsWhiteSpace(c)) {
           break;
         }
         else {
           aBuf[cX] = c;
@@ -11437,32 +11437,32 @@ void DR_State::FindMatchingRule(DR_Frame
       DR_Rule* rule = mWildRules.ElementAt(ruleX);
       if (rule && RuleMatches(*rule, aNode)) {
         aNode.mDisplay = rule->mDisplay;
         break;
       }
     }
   }
 }
-    
+
 DR_FrameTreeNode* DR_State::CreateTreeNode(nsIFrame*                aFrame,
                                            const ReflowInput* aReflowInput)
 {
   // find the frame of the parent reflow state (usually just the parent of aFrame)
   nsIFrame* parentFrame;
   if (aReflowInput) {
     const ReflowInput* parentRI = aReflowInput->mParentReflowInput;
     parentFrame = (parentRI) ? parentRI->mFrame : nullptr;
   } else {
     parentFrame = aFrame->GetParent();
   }
 
   // find the parent tree node leaf
   DR_FrameTreeNode* parentNode = nullptr;
-  
+
   DR_FrameTreeNode* lastLeaf = nullptr;
   if(mFrameTreeLeaves.Length())
     lastLeaf = mFrameTreeLeaves.ElementAt(mFrameTreeLeaves.Length() - 1);
   if (lastLeaf) {
     for (parentNode = lastLeaf; parentNode && (parentNode->mFrame != parentFrame); parentNode = parentNode->mParent) {
     }
   }
   DR_FrameTreeNode* newNode = new DR_FrameTreeNode(aFrame, parentNode);
@@ -11521,17 +11521,17 @@ void DR_State::DeleteTreeNode(DR_FrameTr
   int32_t numLeaves = mFrameTreeLeaves.Length();
   if ((0 == numLeaves) || (aNode.mParent != mFrameTreeLeaves.ElementAt(numLeaves - 1))) {
     mFrameTreeLeaves.AppendElement(aNode.mParent);
   }
 
   if (aNode.mDisplay || mIndentUndisplayedFrames) {
     --mIndent;
   }
-  // delete the tree node 
+  // delete the tree node
   delete &aNode;
 }
 
 static void
 CheckPixelError(nscoord aSize,
                 int32_t aPixelToTwips)
 {
   if (NS_UNCONSTRAINEDSIZE != aSize) {
@@ -11579,19 +11579,19 @@ static void DisplayReflowEnterPrint(nsPr
     nsIFrame* inFlow = aFrame->GetPrevInFlow();
     if (inFlow) {
       printf("pif=%p ", (void*)inFlow);
     }
     inFlow = aFrame->GetNextInFlow();
     if (inFlow) {
       printf("nif=%p ", (void*)inFlow);
     }
-    if (aChanged) 
+    if (aChanged)
       printf("CHANGED \n");
-    else 
+    else
       printf("cnt=%d \n", DR_state->mCount);
     if (DR_state->mDisplayPixelErrors) {
       int32_t p2t = aPresContext->AppUnitsPerDevPixel();
       CheckPixelError(aReflowInput.AvailableWidth(), p2t);
       CheckPixelError(aReflowInput.AvailableHeight(), p2t);
       CheckPixelError(aReflowInput.ComputedWidth(), p2t);
       CheckPixelError(aReflowInput.ComputedHeight(), p2t);
     }
--- a/layout/generic/nsFrame.h
+++ b/layout/generic/nsFrame.h
@@ -182,19 +182,19 @@ public:
                                     nsTArray<nsRect>& aOutRect) override;
 
   nsresult GetChildFrameContainingOffset(int32_t    inContentOffset,
                                          bool       inHint,
                                          int32_t*   outFrameContentOffset,
                                          nsIFrame** outChildFrame) override;
 
   static nsresult GetNextPrevLineFromeBlockFrame(nsPresContext* aPresContext,
-                                                 nsPeekOffsetStruct *aPos, 
-                                                 nsIFrame *aBlockFrame, 
-                                                 int32_t aLineStart, 
+                                                 nsPeekOffsetStruct *aPos,
+                                                 nsIFrame *aBlockFrame,
+                                                 int32_t aLineStart,
                                                  int8_t aOutSideLimit);
 
   nsresult CharacterDataChanged(CharacterDataChangeInfo* aInfo) override;
   nsresult AttributeChanged(int32_t  aNameSpaceID,
                             nsIAtom* aAttribute,
                             int32_t aModType) override;
   nsSplittableType GetSplittableType() const override;
   nsIFrame* GetPrevContinuation() const override;
@@ -301,17 +301,17 @@ public:
               const mozilla::LogicalSize&   aMargin,
               const mozilla::LogicalSize&   aBorder,
               const mozilla::LogicalSize&   aPadding,
               ComputeSizeFlags              aFlags);
 
   // Compute tight bounds assuming this frame honours its border, background
   // and outline, its children's tight bounds, and nothing else.
   nsRect ComputeSimpleTightBounds(mozilla::gfx::DrawTarget* aDrawTarget) const;
-  
+
   /**
    * A helper, used by |nsFrame::ComputeSize| (for frames that need to
    * override only this part of ComputeSize), that computes the size
    * that should be returned when 'width', 'height', and
    * min/max-width/height are all 'auto' or equivalent.
    *
    * In general, frames that can accept any computed width/height should
    * override only ComputeAutoSize, and frames that cannot do so need to
@@ -501,18 +501,18 @@ public:
    * out the interior data, not the "frame" XML container. And it
    * should call the base classes same named method before doing
    * anything specific in a derived class. This means that derived
    * classes need not override DumpRegressionData unless they need
    * some custom behavior that requires changing how the outer "frame"
    * XML container is dumped.
    */
   virtual void DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, int32_t aIndent);
-  
-  // Display Reflow Debugging 
+
+  // Display Reflow Debugging
   static void* DisplayReflowEnter(nsPresContext*          aPresContext,
                                   nsIFrame*                aFrame,
                                   const ReflowInput& aReflowInput);
   static void* DisplayLayoutEnter(nsIFrame* aFrame);
   static void* DisplayIntrinsicISizeEnter(nsIFrame* aFrame,
                                           const char* aType);
   static void* DisplayIntrinsicSizeEnter(nsIFrame* aFrame,
                                          const char* aType);
@@ -596,17 +596,17 @@ protected:
    * a translucent overlay if this frame's content is selected.
    * @param aContentType an nsISelectionDisplay DISPLAY_ constant identifying
    * which kind of content this is for
    */
   void DisplaySelectionOverlay(nsDisplayListBuilder* aBuilder,
       nsDisplayList* aList, uint16_t aContentType = nsISelectionDisplay::DISPLAY_FRAMES);
 
   int16_t DisplaySelection(nsPresContext* aPresContext, bool isOkToTurnOn = false);
-  
+
   // Style post processing hook
   void DidSetStyleContext(nsStyleContext* aOldStyleContext) override;
 
 public:
   /**
    * Helper method to create a view for a frame.  Only used by a few sub-classes
    * that need a view.
    */
@@ -671,20 +671,20 @@ public:
            aFrame->PresContext()->IsPaginated() && aFrame->IsBlockFrame();
   }
 
   nsILineIterator* GetLineIterator() override;
 
 protected:
 
   // Test if we are selecting a table object:
-  //  Most table/cell selection requires that Ctrl (Cmd on Mac) key is down 
+  //  Most table/cell selection requires that Ctrl (Cmd on Mac) key is down
   //   during a mouse click or drag. Exception is using Shift+click when
   //   already in "table/cell selection mode" to extend a block selection
-  //  Get the parent content node and offset of the frame 
+  //  Get the parent content node and offset of the frame
   //   of the enclosing cell or table (if not inside a cell)
   //  aTarget tells us what table element to select (currently only cell and table supported)
   //  (enums for this are defined in nsIFrame.h)
   NS_IMETHOD GetDataForTableSelection(const nsFrameSelection* aFrameSelection,
                                       nsIPresShell* aPresShell,
                                       mozilla::WidgetMouseEvent* aMouseEvent,
                                       nsIContent** aParentContent,
                                       int32_t* aContentOffset,
@@ -800,50 +800,50 @@ public:
 
 };
 
 // Start Display Reflow Debugging
 #ifdef DEBUG
 
   struct DR_cookie {
     DR_cookie(nsPresContext*          aPresContext,
-              nsIFrame*                aFrame, 
+              nsIFrame*                aFrame,
               const mozilla::ReflowInput& aReflowInput,
               mozilla::ReflowOutput&     aMetrics,
-              nsReflowStatus&          aStatus);     
+              nsReflowStatus&          aStatus);
     ~DR_cookie();
     void Change() const;
 
     nsPresContext*          mPresContext;
     nsIFrame*                mFrame;
     const mozilla::ReflowInput& mReflowInput;
     mozilla::ReflowOutput&     mMetrics;
-    nsReflowStatus&          mStatus;    
+    nsReflowStatus&          mStatus;
     void*                    mValue;
   };
 
   struct DR_layout_cookie {
     explicit DR_layout_cookie(nsIFrame* aFrame);
     ~DR_layout_cookie();
 
     nsIFrame* mFrame;
     void* mValue;
   };
-  
+
   struct DR_intrinsic_width_cookie {
     DR_intrinsic_width_cookie(nsIFrame* aFrame, const char* aType,
                               nscoord& aResult);
     ~DR_intrinsic_width_cookie();
 
     nsIFrame* mFrame;
     const char* mType;
     nscoord& mResult;
     void* mValue;
   };
-  
+
   struct DR_intrinsic_size_cookie {
     DR_intrinsic_size_cookie(nsIFrame* aFrame, const char* aType,
                              nsSize& aResult);
     ~DR_intrinsic_size_cookie();
 
     nsIFrame* mFrame;
     const char* mType;
     nsSize& mResult;
@@ -879,21 +879,21 @@ public:
     ~DR_init_type_cookie();
 
     nsIFrame* mFrame;
     mozilla::ReflowInput* mState;
     void* mValue;
   };
 
 #define DISPLAY_REFLOW(dr_pres_context, dr_frame, dr_rf_state, dr_rf_metrics, dr_rf_status) \
-  DR_cookie dr_cookie(dr_pres_context, dr_frame, dr_rf_state, dr_rf_metrics, dr_rf_status); 
+  DR_cookie dr_cookie(dr_pres_context, dr_frame, dr_rf_state, dr_rf_metrics, dr_rf_status);
 #define DISPLAY_REFLOW_CHANGE() \
   dr_cookie.Change();
 #define DISPLAY_LAYOUT(dr_frame) \
-  DR_layout_cookie dr_cookie(dr_frame); 
+  DR_layout_cookie dr_cookie(dr_frame);
 #define DISPLAY_MIN_WIDTH(dr_frame, dr_result) \
   DR_intrinsic_width_cookie dr_cookie(dr_frame, "Min", dr_result)
 #define DISPLAY_PREF_WIDTH(dr_frame, dr_result) \
   DR_intrinsic_width_cookie dr_cookie(dr_frame, "Pref", dr_result)
 #define DISPLAY_PREF_SIZE(dr_frame, dr_result) \
   DR_intrinsic_size_cookie dr_cookie(dr_frame, "Pref", dr_result)
 #define DISPLAY_MIN_SIZE(dr_frame, dr_result) \
   DR_intrinsic_size_cookie dr_cookie(dr_frame, "Min", dr_result)
@@ -905,18 +905,18 @@ public:
                                        dr_bdr, dr_pad)
 #define DISPLAY_INIT_OFFSETS(dr_frame, dr_state, dr_pb, dr_bdr, dr_pad)  \
   DR_init_offsets_cookie dr_cookie(dr_frame, dr_state, dr_pb, dr_bdr, dr_pad)
 #define DISPLAY_INIT_TYPE(dr_frame, dr_result) \
   DR_init_type_cookie dr_cookie(dr_frame, dr_result)
 
 #else
 
-#define DISPLAY_REFLOW(dr_pres_context, dr_frame, dr_rf_state, dr_rf_metrics, dr_rf_status) 
-#define DISPLAY_REFLOW_CHANGE() 
+#define DISPLAY_REFLOW(dr_pres_context, dr_frame, dr_rf_state, dr_rf_metrics, dr_rf_status)
+#define DISPLAY_REFLOW_CHANGE()
 #define DISPLAY_LAYOUT(dr_frame) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_MIN_WIDTH(dr_frame, dr_result) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_PREF_WIDTH(dr_frame, dr_result) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_PREF_SIZE(dr_frame, dr_result) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_MIN_SIZE(dr_frame, dr_result) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_MAX_SIZE(dr_frame, dr_result) PR_BEGIN_MACRO PR_END_MACRO
 #define DISPLAY_INIT_CONSTRAINTS(dr_frame, dr_state, dr_cbw, dr_cbh,       \
                                  dr_bdr, dr_pad)                           \
--- a/layout/generic/nsFrameList.cpp
+++ b/layout/generic/nsFrameList.cpp
@@ -372,17 +372,17 @@ nsFrameList::GetPrevVisualFor(nsIFrame* 
       if (nsBidiPresUtils::IsFrameInParagraphDirection(mFirstChild)) {
         return aFrame ? aFrame->GetPrevSibling() : LastChild();
       } else {
         return aFrame ? aFrame->GetNextSibling() : mFirstChild;
       }
     }
   }
 
-  // Parent is a block frame, so use the LineIterator to find the previous visual 
+  // Parent is a block frame, so use the LineIterator to find the previous visual
   // sibling on this line, or the last one on the previous line.
 
   int32_t thisLine;
   if (aFrame) {
     thisLine = iter->FindLineContaining(aFrame);
     if (thisLine < 0)
       return nullptr;
   } else {
@@ -417,25 +417,25 @@ nsFrameList::GetPrevVisualFor(nsIFrame* 
   return frame;
 }
 
 nsIFrame*
 nsFrameList::GetNextVisualFor(nsIFrame* aFrame) const
 {
   if (!mFirstChild)
     return nullptr;
-  
+
   nsIFrame* parent = mFirstChild->GetParent();
   if (!parent)
     return aFrame ? aFrame->GetPrevSibling() : mFirstChild;
 
   nsBidiDirection paraDir = nsBidiPresUtils::ParagraphDirection(mFirstChild);
 
   nsAutoLineIterator iter = parent->GetLineIterator();
-  if (!iter) { 
+  if (!iter) {
     // Parent is not a block Frame
     if (parent->IsLineFrame()) {
       // Line frames are not bidi-splittable, so need to consider bidi reordering
       if (paraDir == NSBIDI_LTR) {
         return nsBidiPresUtils::GetFrameToRightOf(aFrame, mFirstChild, -1);
       } else { // RTL
         return nsBidiPresUtils::GetFrameToLeftOf(aFrame, mFirstChild, -1);
       }
@@ -444,19 +444,19 @@ nsFrameList::GetNextVisualFor(nsIFrame* 
       if (nsBidiPresUtils::IsFrameInParagraphDirection(mFirstChild)) {
         return aFrame ? aFrame->GetNextSibling() : mFirstChild;
       } else {
         return aFrame ? aFrame->GetPrevSibling() : LastChild();
       }
     }
   }
 
-  // Parent is a block frame, so use the LineIterator to find the next visual 
+  // Parent is a block frame, so use the LineIterator to find the next visual
   // sibling on this line, or the first one on the next line.
-  
+
   int32_t thisLine;
   if (aFrame) {
     thisLine = iter->FindLineContaining(aFrame);
     if (thisLine < 0)
       return nullptr;
   } else {
     thisLine = -1;
   }
@@ -514,17 +514,17 @@ nsFrameList::VerifyList() const
     NS_ASSERTION(second->GetPrevSibling()->GetNextSibling() == second,
                  "bad prev sibling pointer");
     second = second->GetNextSibling();
     if (first == second) {
       // Loop detected!  Since second advances faster, they can't both be null;
       // we would have broken out of the loop long ago.
       NS_ERROR("loop in frame list.  This will probably hang soon.");
       return;
-    }                           
+    }
     if (!second) {
       break;
     }
     NS_ASSERTION(second->GetPrevSibling()->GetNextSibling() == second,
                  "bad prev sibling pointer");
   }
 
   NS_ASSERTION(mLastChild == nsLayoutUtils::GetLastSibling(mFirstChild),
--- a/layout/generic/nsFrameSelection.cpp
+++ b/layout/generic/nsFrameSelection.cpp
@@ -98,17 +98,17 @@ static nsIAtom *GetTag(nsINode *aNode);
 // returns the parent
 static nsINode* ParentOffset(nsINode *aNode, int32_t *aChildOffset);
 static nsINode* GetCellParent(nsINode *aDomNode);
 
 #ifdef PRINT_RANGE
 static void printRange(nsRange *aDomRange);
 #define DEBUG_OUT_RANGE(x)  printRange(x)
 #else
-#define DEBUG_OUT_RANGE(x)  
+#define DEBUG_OUT_RANGE(x)
 #endif // PRINT_RANGE
 
 
 /******************************************************************************
  * nsPeekOffsetStruct
  ******************************************************************************/
 
 //#define DEBUG_SELECTION // uncomment for printf describing every collapse and extend.
@@ -194,27 +194,27 @@ GetSelectionTypeFromIndex(int8_t aIndex)
     return SelectionType::eNormal;
   }
   return kSelectionTypes[aIndex];
 }
 
 /*
 The limiter is used specifically for the text areas and textfields
 In that case it is the DIV tag that is anonymously created for the text
-areas/fields.  Text nodes and BR nodes fall beneath it.  In the case of a 
+areas/fields.  Text nodes and BR nodes fall beneath it.  In the case of a
 BR node the limiter will be the parent and the offset will point before or
-after the BR node.  In the case of the text node the parent content is 
+after the BR node.  In the case of the text node the parent content is
 the text node itself and the offset will be the exact character position.
-The offset is not important to check for validity.  Simply look at the 
+The offset is not important to check for validity.  Simply look at the
 passed in content.  If it equals the limiter then the selection point is valid.
-If its parent it the limiter then the point is also valid.  In the case of 
+If its parent it the limiter then the point is also valid.  In the case of
 NO limiter all points are valid since you are in a topmost iframe. (browser
 or composer)
 */
-bool         
+bool
 IsValidSelectionPoint(nsFrameSelection *aFrameSel, nsINode *aNode)
 {
   if (!aFrameSel || !aNode)
     return false;
 
   nsIContent *limiter = aFrameSel->GetLimiter();
   if (limiter && limiter != aNode && limiter != aNode->GetParent()) {
     //if newfocus == the limiter. that's ok. but if not there and not parent bad
@@ -328,19 +328,19 @@ nsFrameSelection::nsFrameSelection()
 {
   for (size_t i = 0; i < kPresentSelectionTypeCount; i++){
     mDomSelections[i] = new Selection(this);
     mDomSelections[i]->SetType(GetSelectionTypeFromIndex(i));
   }
   mBatching = 0;
   mChangesDuringBatching = false;
   mNotifyFrames = true;
-  
+
   mMouseDoubleDownState = false;
-  
+
   mHint = CARET_ASSOCIATE_BEFORE;
   mCaretBidiLevel = BIDI_LEVEL_UNDEFINED;
   mKbdBidiLevel = NSBIDI_LTR;
 
   mDragSelectingCells = false;
   mSelectingTableCellMode = 0;
   mSelectedCellIndex = 0;
 
@@ -520,17 +520,17 @@ nsFrameSelection::ConstrainFrameAndPoint
 
   if (NS_FAILED(result))
     return result;
 
   nsCOMPtr<nsIContent> anchorContent = do_QueryInterface(anchorNode);
 
   if (!anchorContent)
     return NS_ERROR_FAILURE;
-  
+
   //
   // Now find the root of the subtree containing the anchor's content.
   //
 
   NS_ENSURE_STATE(mShell);
   nsIContent* anchorRoot = anchorContent->GetSelectionRootContent(mShell);
   NS_ENSURE_TRUE(anchorRoot, NS_ERROR_UNEXPECTED);
 
@@ -639,35 +639,35 @@ void printRange(nsRange *aDomRange)
   if (!aDomRange)
   {
     printf("NULL nsIDOMRange\n");
   }
   nsINode* startNode = aDomRange->GetStartParent();
   nsINode* endNode = aDomRange->GetEndParent();
   int32_t startOffset = aDomRange->StartOffset();
   int32_t endOffset = aDomRange->EndOffset();
-  
+
   printf("range: 0x%lx\t start: 0x%lx %ld, \t end: 0x%lx,%ld\n",
          (unsigned long)aDomRange,
          (unsigned long)startNode, (long)startOffset,
          (unsigned long)endNode, (long)endOffset);
-         
+
 }
 #endif /* PRINT_RANGE */
 
 static
 nsIAtom *GetTag(nsINode *aNode)
 {
   nsCOMPtr<nsIContent> content = do_QueryInterface(aNode);
-  if (!content) 
+  if (!content)
   {
     NS_NOTREACHED("bad node passed to GetTag()");
     return nullptr;
   }
-  
+
   return content->NodeInfo()->NameAtom();
 }
 
 // Returns the parent
 nsINode*
 ParentOffset(nsINode *aNode, int32_t *aChildOffset)
 {
   if (!aNode || !aChildOffset)
@@ -990,17 +990,17 @@ nsFrameSelection::GetPrevNextBidiLevels(
                                         CaretAssociateHint aHint,
                                         bool               aJumpLines) const
 {
   // Get the level of the frames on each side
   nsIFrame    *currentFrame;
   int32_t     currentOffset;
   int32_t     frameStart, frameEnd;
   nsDirection direction;
-  
+
   nsPrevNextBidiLevels levels;
   levels.SetData(nullptr, nullptr, 0, 0);
 
   currentFrame = GetFrameForNodeOffset(aNode, aContentOffset,
                                        aHint, &currentOffset);
   if (!currentFrame)
     return levels;
 
@@ -1028,30 +1028,30 @@ nsFrameSelection::GetPrevNextBidiLevels(
                                                     &movedOverNonSelectableText);
   if (NS_FAILED(rv))
     newFrame = nullptr;
 
   FrameBidiData currentBidi = currentFrame->GetBidiData();
   nsBidiLevel currentLevel = currentBidi.embeddingLevel;
   nsBidiLevel newLevel = newFrame ? newFrame->GetEmbeddingLevel()
                                   : currentBidi.baseLevel;
-  
+
   // If not jumping lines, disregard br frames, since they might be positioned incorrectly.
   // XXX This could be removed once bug 339786 is fixed.
   if (!aJumpLines) {
     if (currentFrame->IsBrFrame()) {
       currentFrame = nullptr;
       currentLevel = currentBidi.baseLevel;
     }
     if (newFrame && newFrame->IsBrFrame()) {
       newFrame = nullptr;
       newLevel = currentBidi.baseLevel;
     }
   }
-  
+
   if (direction == eDirNext)
     levels.SetData(currentFrame, newFrame, currentLevel, newLevel);
   else
     levels.SetData(newFrame, currentFrame, newLevel, currentLevel);
 
   return levels;
 }
 
@@ -1158,17 +1158,17 @@ void nsFrameSelection::BidiLevelFromMove
       nsPrevNextBidiLevels levels = GetPrevNextBidiLevels(aNode, aContentOffset,
                                                           aHint, false);
 
       SetCaretBidiLevel(aHint == CARET_ASSOCIATE_BEFORE ?
           levels.mLevelBefore : levels.mLevelAfter);
       break;
     }
       /*
-    // Up and Down: the new cursor Bidi level is the smaller of the two surrounding characters      
+    // Up and Down: the new cursor Bidi level is the smaller of the two surrounding characters
     case eSelectLine:
     case eSelectParagraph:
       GetPrevNextBidiLevels(aContext, aNode, aContentOffset, &firstFrame, &secondFrame, &firstLevel, &secondLevel);
       aPresShell->SetCaretBidiLevel(std::min(firstLevel, secondLevel));
       break;
       */
 
     default:
@@ -1225,23 +1225,23 @@ nsFrameSelection::AdjustForMaintainedSel
 
   // If aContent/aOffset is inside the maintained selection, or if it is on the
   // "anchor" side of the maintained selection, we need to do something.
   if ((relToStart < 0 && relToEnd > 0) ||
       (relToStart > 0 &&
        mDomSelections[index]->GetDirection() == eDirNext) ||
       (relToEnd < 0 &&
        mDomSelections[index]->GetDirection() == eDirPrevious)) {
-    // Set the current range to the maintained range. 
+    // Set the current range to the maintained range.
     mDomSelections[index]->ReplaceAnchorFocusRange(mMaintainRange);
     if (relToStart < 0 && relToEnd > 0) {
       // We're inside the maintained selection, just keep it selected.
       return true;
     }
-    // Reverse the direction of the selection so that the anchor will be on the 
+    // Reverse the direction of the selection so that the anchor will be on the
     // far side of the maintained selection, relative to aContent/aOffset.
     mDomSelections[index]->SetDirection(relToStart > 0 ? eDirPrevious : eDirNext);
   }
   return false;
 }
 
 
 nsresult
@@ -1273,17 +1273,17 @@ nsFrameSelection::HandleClick(nsIContent
         AdjustForMaintainedSelection(aNewFocus, aContentOffset))
       return NS_OK; //shift clicked to maintained selection. rejected.
 
     int8_t index = GetIndexFromSelectionType(SelectionType::eNormal);
     AutoPrepareFocusRange prep(mDomSelections[index], aContinueSelection, aMultipleSelection);
     return TakeFocus(aNewFocus, aContentOffset, aContentEndOffset, aHint,
                      aContinueSelection, aMultipleSelection);
   }
-  
+
   return NS_OK;
 }
 
 void
 nsFrameSelection::HandleDrag(nsIFrame *aFrame, nsPoint aPoint)
 {
   if (!aFrame || !mShell)
     return;
@@ -1303,19 +1303,19 @@ nsFrameSelection::HandleDrag(nsIFrame *a
   if (!offsets.content)
     return;
 
   if (newFrame->IsSelected() &&
       AdjustForMaintainedSelection(offsets.content, offsets.offset))
     return;
 
   // Adjust offsets according to maintained amount
-  if (mMaintainRange && 
-      mMaintainedAmount != eSelectNoAmount) {    
-    
+  if (mMaintainRange &&
+      mMaintainedAmount != eSelectNoAmount) {
+
     nsINode* rangenode = mMaintainRange->GetStartParent();
     int32_t rangeOffset = mMaintainRange->StartOffset();
     int32_t relativePosition =
       nsContentUtils::ComparePoints(rangenode, rangeOffset,
                                     offsets.content, offsets.offset);
 
     nsDirection direction = relativePosition > 0 ? eDirPrevious : eDirNext;
     nsSelectionAmount amount = mMaintainedAmount;
@@ -1341,17 +1341,17 @@ nsFrameSelection::HandleDrag(nsIFrame *a
     nsPeekOffsetStruct pos(amount, direction, offset, nsPoint(0, 0),
                            false, mLimiter != nullptr, false, false, false);
 
     if (frame && NS_SUCCEEDED(frame->PeekOffset(&pos)) && pos.mResultContent) {
       offsets.content = pos.mResultContent;
       offsets.offset = pos.mContentOffset;
     }
   }
-  
+
   HandleClick(offsets.content, offsets.offset, offsets.offset,
               true, false, offsets.associate);
 }
 
 nsresult
 nsFrameSelection::StartAutoScrollTimer(nsIFrame *aFrame,
                                        nsPoint   aPoint,
                                        uint32_t  aDelay)
@@ -1396,34 +1396,34 @@ nsFrameSelection::TakeFocus(nsIContent* 
 
   // Clear all table selection data
   mSelectingTableCellMode = 0;
   mDragSelectingCells = false;
   mStartSelectedCell = nullptr;
   mEndSelectedCell = nullptr;
   mAppendStartSelectedCell = nullptr;
   mHint = aHint;
-  
+
   int8_t index = GetIndexFromSelectionType(SelectionType::eNormal);
   if (!mDomSelections[index])
     return NS_ERROR_NULL_POINTER;
 
   Maybe<Selection::AutoUserInitiated> userSelect;
   if (IsUserSelectionReason()) {
     userSelect.emplace(mDomSelections[index]);
   }
 
   //traverse through document and unselect crap here
   if (!aContinueSelection) {//single click? setting cursor down
     uint32_t batching = mBatching;//hack to use the collapse code.
     bool changes = mChangesDuringBatching;
     mBatching = 1;
 
     if (aMultipleSelection) {
-      // Remove existing collapsed ranges as there's no point in having 
+      // Remove existing collapsed ranges as there's no point in having
       // non-anchor/focus collapsed ranges.
       mDomSelections[index]->RemoveCollapsedRanges();
 
       RefPtr<nsRange> newRange = new nsRange(aNewFocus);
 
       newRange->CollapseTo(aNewFocus, aContentOffset);
       mDomSelections[index]->AddRange(newRange);
       mBatching = batching;
@@ -1435,29 +1435,29 @@ nsFrameSelection::TakeFocus(nsIContent* 
       mBatching = batching;
       mChangesDuringBatching = changes;
     }
     if (aContentEndOffset != aContentOffset) {
       mDomSelections[index]->Extend(aNewFocus, aContentEndOffset);
     }
 
     //find out if we are inside a table. if so, find out which one and which cell
-    //once we do that, the next time we get a takefocus, check the parent tree. 
+    //once we do that, the next time we get a takefocus, check the parent tree.
     //if we are no longer inside same table ,cell then switch to table selection mode.
     // BUT only do this in an editor
 
     NS_ENSURE_STATE(mShell);
     bool editableCell = false;
     RefPtr<nsPresContext> context = mShell->GetPresContext();
     if (context) {
       nsCOMPtr<nsIHTMLEditor> editor = do_QueryInterface(nsContentUtils::GetHTMLEditor(context));
       if (editor) {
         nsINode* cellparent = GetCellParent(aNewFocus);
         nsCOMPtr<nsINode> editorHostNode = editor->GetActiveEditingHost();
-        editableCell = cellparent && editorHostNode && 
+        editableCell = cellparent && editorHostNode &&
                    nsContentUtils::ContentIsDescendantOf(cellparent, editorHostNode);
         if (editableCell) {
           mCellParent = cellparent;
 #ifdef DEBUG_TABLE_SELECTION
           printf(" * TakeFocus - Collapsing into new cell\n");
 #endif
         }
       }
@@ -1496,19 +1496,19 @@ printf(" * TakeFocus - moving into new c
           HandleTableSelection(parent, offset,
                                nsISelectionPrivate::TABLESELECTION_CELL, &event);
         }
       }
       else
       {
         // XXXX Problem: Shift+click in browser is appending text selection to selected table!!!
         //   is this the place to erase seleced cells ?????
-        if (mDomSelections[index]->GetDirection() == eDirNext && aContentEndOffset > aContentOffset) //didn't go far enough 
+        if (mDomSelections[index]->GetDirection() == eDirNext && aContentEndOffset > aContentOffset) //didn't go far enough
         {
-          mDomSelections[index]->Extend(aNewFocus, aContentEndOffset);//this will only redraw the diff 
+          mDomSelections[index]->Extend(aNewFocus, aContentEndOffset);//this will only redraw the diff
         }
         else
           mDomSelections[index]->Extend(aNewFocus, aContentOffset);
       }
     }
   }
 
   // Don't notify selection listeners if batching is on:
@@ -1545,17 +1545,17 @@ nsFrameSelection::LookUpSelection(nsICon
 
 void
 nsFrameSelection::SetDragState(bool aState)
 {
   if (mDragState == aState)
     return;
 
   mDragState = aState;
-    
+
   if (!mDragState)
   {
     mDragSelectingCells = false;
     // Notify that reason is mouse up.
     PostReason(nsISelectionListener::MOUSEUP_REASON);
     // Be aware, the Selection instance may be destroyed after this call.
     NotifySelectionListeners(SelectionType::eNormal);
   }
@@ -1673,17 +1673,17 @@ nsFrameSelection::GetFrameForNodeOffset(
             childIndex = numChildren - 1;
           } else {
             childIndex = 0;
           }
         } else {
           childIndex = aOffset;
         }
       }
-      
+
       if (childIndex > 0 || numChildren > 0) {
         nsCOMPtr<nsIContent> childNode = theNode->GetChildAt(childIndex);
 
         if (!childNode) {
           break;
         }
 
         theNode = childNode;
@@ -1810,29 +1810,29 @@ nsFrameSelection::CommonPageMove(bool aF
   // we should know mDesiredPos value of nsFrameSelection, but I havent seen that behavior in other windows applications yet.
   nsISelection* domSel = GetSelection(SelectionType::eNormal);
   if (!domSel) {
     return;
   }
 
   nsRect caretPos;
   nsIFrame* caretFrame = nsCaret::GetGeometry(domSel, &caretPos);
-  if (!caretFrame) 
+  if (!caretFrame)
     return;
-  
+
   //need to adjust caret jump by percentage scroll
   nsSize scrollDelta = aScrollableFrame->GetPageScrollAmount();
 
   if (aForward)
     caretPos.y += scrollDelta.height;
   else
     caretPos.y -= scrollDelta.height;
 
   caretPos += caretFrame->GetOffsetTo(scrolledFrame);
-    
+
   // get a content at desired location
   nsPoint desiredPoint;
   desiredPoint.x = caretPos.x;
   desiredPoint.y = caretPos.y + caretPos.height/2;
   nsIFrame::ContentOffsets offsets =
       scrolledFrame->GetContentOffsetsFromPoint(desiredPoint);
 
   if (!offsets.content)
@@ -2073,17 +2073,17 @@ nsFrameSelection::NotifySelectionListene
 
 // Start of Table Selection methods
 
 static bool IsCell(nsIContent *aContent)
 {
   return aContent->IsAnyOfHTMLElements(nsGkAtoms::td, nsGkAtoms::th);
 }
 
-nsITableCellLayout* 
+nsITableCellLayout*
 nsFrameSelection::GetCellLayout(nsIContent *aCellContent) const
 {
   NS_ENSURE_TRUE(mShell, nullptr);
   nsITableCellLayout *cellLayoutObject =
     do_QueryFrame(aCellContent->GetPrimaryFrame());
   return cellLayoutObject;
 }
 
@@ -2137,17 +2137,17 @@ nsFrameSelection::HandleTableSelection(n
   // we can be sure that anchorNode's offset always points to the
   // selected cell
   int8_t index = GetIndexFromSelectionType(SelectionType::eNormal);
   if (!mDomSelections[index])
     return NS_ERROR_NULL_POINTER;
 
   mDomSelections[index]->SetDirection(eDirNext);
 
-  // Stack-class to wrap all table selection changes in 
+  // Stack-class to wrap all table selection changes in
   //  BeginBatchChanges() / EndBatchChanges()
   SelectionBatcher selectionBatcher(mDomSelections[index]);
 
   int32_t startRowIndex, startColIndex, curRowIndex, curColIndex;
   if (mDragState && mDragSelectingCells)
   {
     // We are drag-selecting
     if (aTarget != nsISelectionPrivate::TABLESELECTION_TABLE)
@@ -2156,37 +2156,37 @@ nsFrameSelection::HandleTableSelection(n
       if (mEndSelectedCell == childContent)
         return NS_OK;
 
 #ifdef DEBUG_TABLE_SELECTION
       printf(" mStartSelectedCell = %p, mEndSelectedCell = %p, childContent = %p \n",
              mStartSelectedCell.get(), mEndSelectedCell.get(), childContent);
 #endif
       // aTarget can be any "cell mode",
-      //  so we can easily drag-select rows and columns 
+      //  so we can easily drag-select rows and columns
       // Once we are in row or column mode,
       //  we can drift into any cell to stay in that mode
       //  even if aTarget = TABLESELECTION_CELL
 
       if (mSelectingTableCellMode == nsISelectionPrivate::TABLESELECTION_ROW ||
           mSelectingTableCellMode == nsISelectionPrivate::TABLESELECTION_COLUMN)
       {
         if (mEndSelectedCell)
         {
           // Also check if cell is in same row/col
           result = GetCellIndexes(mEndSelectedCell, startRowIndex, startColIndex);
           if (NS_FAILED(result)) return result;
           result = GetCellIndexes(childContent, curRowIndex, curColIndex);
           if (NS_FAILED(result)) return result;
-        
+
 #ifdef DEBUG_TABLE_SELECTION
 printf(" curRowIndex = %d, startRowIndex = %d, curColIndex = %d, startColIndex = %d\n", curRowIndex, startRowIndex, curColIndex, startColIndex);
 #endif
           if ((mSelectingTableCellMode == nsISelectionPrivate::TABLESELECTION_ROW && startRowIndex == curRowIndex) ||
-              (mSelectingTableCellMode == nsISelectionPrivate::TABLESELECTION_COLUMN && startColIndex == curColIndex)) 
+              (mSelectingTableCellMode == nsISelectionPrivate::TABLESELECTION_COLUMN && startColIndex == curColIndex))
             return NS_OK;
         }
 #ifdef DEBUG_TABLE_SELECTION
 printf(" Dragged into a new column or row\n");
 #endif
         // Continue dragging row or column selection
         return SelectRowOrColumn(childContent, mSelectingTableCellMode);
       }
@@ -2200,51 +2200,51 @@ printf("HandleTableSelection: Dragged in
         // If next cell dragged into is in same row, select entire row,
         //   if next cell is in same column, select entire column
         if (mStartSelectedCell && aMouseEvent->IsShift())
         {
           result = GetCellIndexes(mStartSelectedCell, startRowIndex, startColIndex);
           if (NS_FAILED(result)) return result;
           result = GetCellIndexes(childContent, curRowIndex, curColIndex);
           if (NS_FAILED(result)) return result;
-          
-          if (startRowIndex == curRowIndex || 
+
+          if (startRowIndex == curRowIndex ||
               startColIndex == curColIndex)
           {
             // Force new selection block
             mStartSelectedCell = nullptr;
             mDomSelections[index]->RemoveAllRanges();
 
             if (startRowIndex == curRowIndex)
               mSelectingTableCellMode = nsISelectionPrivate::TABLESELECTION_ROW;
             else
               mSelectingTableCellMode = nsISelectionPrivate::TABLESELECTION_COLUMN;
 
             return SelectRowOrColumn(childContent, mSelectingTableCellMode);
           }
         }
-        
+
         // Reselect block of cells to new end location
         return SelectBlockOfCells(mStartSelectedCell, childContent);
       }
     }
     // Do nothing if dragging in table, but outside a cell
     return NS_OK;
   }
-  else 
+  else
   {
     // Not dragging  -- mouse event is down or up
     if (mDragState)
     {
 #ifdef DEBUG_TABLE_SELECTION
 printf("HandleTableSelection: Mouse down event\n");
 #endif
       // Clear cell we stored in mouse-down
       mUnselectCellOnMouseUp = nullptr;
-      
+
       if (aTarget == nsISelectionPrivate::TABLESELECTION_CELL)
       {
         bool isSelected = false;
 
         // Check if we have other selected cells
         nsIContent* previousCellNode =
           GetFirstSelectedContent(GetFirstCellRange());
         if (previousCellNode)
@@ -2262,17 +2262,17 @@ printf("HandleTableSelection: Mouse down
           mDomSelections[index]->RemoveAllRanges();
         }
         mDragSelectingCells = true;    // Signal to start drag-cell-selection
         mSelectingTableCellMode = aTarget;
         // Set start for new drag-selection block (not appended)
         mStartSelectedCell = childContent;
         // The initial block end is same as the start
         mEndSelectedCell = childContent;
-        
+
         if (isSelected)
         {
           // Remember this cell to (possibly) unselect it on mouseup
           mUnselectCellOnMouseUp = childContent;
 #ifdef DEBUG_TABLE_SELECTION
 printf("HandleTableSelection: Saving mUnselectCellOnMouseUp\n");
 #endif
         }
@@ -2311,17 +2311,17 @@ printf("HandleTableSelection: Saving mUn
 #ifdef DEBUG_TABLE_SELECTION
 printf("aTarget == %d\n", aTarget);
 #endif
 
         // Start drag-selecting mode so multiple rows/cols can be selected
         // Note: Currently, nsFrame::GetDataForTableSelection
         //       will never call us for row or column selection on mouse down
         mDragSelectingCells = true;
-      
+
         // Force new selection block
         mStartSelectedCell = nullptr;
         mDomSelections[index]->RemoveAllRanges();
         // Always do this AFTER RemoveAllRanges
         mSelectingTableCellMode = aTarget;
         return SelectRowOrColumn(childContent, aTarget);
       }
     }
@@ -2329,30 +2329,30 @@ printf("aTarget == %d\n", aTarget);
     {
 #ifdef DEBUG_TABLE_SELECTION
       printf("HandleTableSelection: Mouse UP event. mDragSelectingCells=%d, mStartSelectedCell=%p\n",
              mDragSelectingCells, mStartSelectedCell.get());
 #endif
       // First check if we are extending a block selection
       int32_t rangeCount;
       result = mDomSelections[index]->GetRangeCount(&rangeCount);
-      if (NS_FAILED(result)) 
+      if (NS_FAILED(result))
         return result;
 
-      if (rangeCount > 0 && aMouseEvent->IsShift() && 
+      if (rangeCount > 0 && aMouseEvent->IsShift() &&
           mAppendStartSelectedCell && mAppendStartSelectedCell != childContent)
       {
         // Shift key is down: append a block selection
         mDragSelectingCells = false;
         return SelectBlockOfCells(mAppendStartSelectedCell, childContent);
       }
 
       if (mDragSelectingCells)
         mAppendStartSelectedCell = mStartSelectedCell;
-        
+
       mDragSelectingCells = false;
       mStartSelectedCell = nullptr;
       mEndSelectedCell = nullptr;
 
       // Any other mouseup actions require that Ctrl or Cmd key is pressed
       //  else stop table selection mode
       bool doMouseUpAction = false;
 #ifdef XP_MACOSX
@@ -2392,17 +2392,17 @@ printf("HandleTableSelection: Unselectin
           int32_t offset = range->StartOffset();
           // Be sure previous selection is a table cell
           nsIContent* child = parent->GetChildAt(offset);
           if (child && IsCell(child))
             previousCellParent = parent;
 
           // We're done if we didn't find parent of a previously-selected cell
           if (!previousCellParent) break;
-        
+
           if (previousCellParent == aParentContent && offset == aContentOffset)
           {
             // Cell is already selected
             if (rangeCount == 1)
             {
 #ifdef DEBUG_TABLE_SELECTION
 printf("HandleTableSelection: Unselecting single selected cell\n");
 #endif
@@ -2414,17 +2414,17 @@ printf("HandleTableSelection: Unselectin
               //TODO: We need a "Collapse to just before deepest child" routine
               // Even better, should we collapse to just after the LAST deepest child
               //  (i.e., at the end of the cell's contents)?
               return mDomSelections[index]->Collapse(childContent, 0);
             }
 #ifdef DEBUG_TABLE_SELECTION
 printf("HandleTableSelection: Removing cell from multi-cell selection\n");
 #endif
-            // Unselecting the start of previous block 
+            // Unselecting the start of previous block
             // XXX What do we use now!
             if (childContent == mAppendStartSelectedCell)
                mAppendStartSelectedCell = nullptr;
 
             // Deselect cell by removing its range from selection
             return mDomSelections[index]->RemoveRange(range);
           }
         }
@@ -2505,17 +2505,17 @@ nsFrameSelection::UnselectCells(nsIConte
 
 #ifdef DEBUG_TABLE_SELECTION
     if (!range)
       printf("RemoveCellsToSelection -- range is null\n");
 #endif
 
     if (range) {
       if (aRemoveOutsideOfCellRange) {
-        if (curRowIndex < minRowIndex || curRowIndex > maxRowIndex || 
+        if (curRowIndex < minRowIndex || curRowIndex > maxRowIndex ||
             curColIndex < minColIndex || curColIndex > maxColIndex) {
 
           mDomSelections[index]->RemoveRange(range);
           // Since we've removed the range, decrement pointer to next range
           mSelectedCellIndex--;
         }
 
       } else {
@@ -2683,17 +2683,17 @@ nsFrameSelection::SelectRowOrColumn(nsIC
       // We are starting a new block, so select the first cell
       result = SelectCellElement(firstCell);
       if (NS_FAILED(result)) return result;
       mStartSelectedCell = firstCell;
     }
     nsCOMPtr<nsIContent> lastCellContent = do_QueryInterface(lastCell);
     result = SelectBlockOfCells(mStartSelectedCell, lastCellContent);
 
-    // This gets set to the cell at end of row/col, 
+    // This gets set to the cell at end of row/col,
     //   but we need it to be the cell under cursor
     mEndSelectedCell = aCellContent;
     return result;
   }
 
 #if 0
 // This is a more efficient strategy that appends row to current selection,
 //  but doesn't allow dragging OFF of an existing selection to unselect!
@@ -2708,17 +2708,17 @@ nsFrameSelection::SelectRowOrColumn(nsIC
     if (NS_FAILED(result)) return result;
     // We're done when cell is not found
     if (!cellElement) break;
 
 
     // Check spans else we infinitely loop
     NS_ASSERTION(actualColSpan, "actualColSpan is 0!");
     NS_ASSERTION(actualRowSpan, "actualRowSpan is 0!");
-    
+
     // Skip cells that are already selected or span from outside our region
     if (!isSelected && rowIndex == curRowIndex && colIndex == curColIndex)
     {
       result = SelectCellElement(cellElement);
       if (NS_FAILED(result)) return result;
     }
     // Move to next row or column in cellmap, skipping spanned locations
     if (aTarget == nsISelectionPrivate::TABLESELECTION_ROW)
@@ -2806,17 +2806,17 @@ nsFrameSelection::GetCellIndexes(nsICont
   return cellLayoutObject->GetCellIndexes(aRowIndex, aColIndex);
 }
 
 nsIContent*
 nsFrameSelection::IsInSameTable(nsIContent  *aContent1,
                                 nsIContent  *aContent2) const
 {
   if (!aContent1 || !aContent2) return nullptr;
-  
+
   nsIContent* tableNode1 = GetParentTable(aContent1);
   nsIContent* tableNode2 = GetParentTable(aContent2);
 
   // Must be in the same table.  Note that we want to return false for
   // the test if both tables are null.
   return (tableNode1 == tableNode2) ? tableNode1 : nullptr;
 }
 
@@ -3003,34 +3003,34 @@ nsAutoCopyListener* nsAutoCopyListener::
 NS_IMPL_ISUPPORTS(nsAutoCopyListener, nsISelectionListener)
 
 /*
  * What we do now:
  * On every selection change, we copy to the clipboard anew, creating a
  * HTML buffer, a transferable, an nsISupportsString and
  * a huge mess every time.  This is basically what nsPresShell::DoCopy does
  * to move the selection into the clipboard for Edit->Copy.
- * 
+ *
  * What we should do, to make our end of the deal faster:
  * Create a singleton transferable with our own magic converter.  When selection
  * changes (use a quick cache to detect ``real'' changes), we put the new
  * nsISelection in the transferable.  Our magic converter will take care of
  * transferable->whatever-other-format when the time comes to actually
  * hand over the clipboard contents.
  *
  * Other issues:
  * - which X clipboard should we populate?
  * - should we use a different one than Edit->Copy, so that inadvertant
  *   selections (or simple clicks, which currently cause a selection
  *   notification, regardless of if they're in the document which currently has
  *   selection!) don't lose the contents of the ``application''?  Or should we
  *   just put some intelligence in the ``is this a real selection?'' code to
  *   protect our selection against clicks in other documents that don't create
  *   selections?
- * - maybe we should just never clear the X clipboard?  That would make this 
+ * - maybe we should just never clear the X clipboard?  That would make this
  *   problem just go away, which is very tempting.
  *
  * On macOS,
  * nsIClipboard::kSelectionCache is the flag for current selection cache.
  * Set the current selection cache on the parent process in
  * widget cocoa nsClipboard whenever selection changes.
  */
 
@@ -3042,17 +3042,17 @@ nsAutoCopyListener::NotifySelectionChang
     nsFocusManager* fm = nsFocusManager::GetFocusManager();
     // If no active window, do nothing because a current selection changed
     // cannot occur unless it is in the active window.
     if (!fm->GetActiveWindow()) {
       return NS_OK;
     }
   }
 
-  if (!(aReason & nsISelectionListener::MOUSEUP_REASON   || 
+  if (!(aReason & nsISelectionListener::MOUSEUP_REASON   ||
         aReason & nsISelectionListener::SELECTALL_REASON ||
         aReason & nsISelectionListener::KEYPRESS_REASON))
     return NS_OK; //dont care if we are still dragging
 
   bool collapsed;
   if (!aDoc || !aSel ||
       NS_FAILED(aSel->GetIsCollapsed(&collapsed)) || collapsed) {
 #ifdef DEBUG_CLIPBOARD
--- a/layout/generic/nsFrameSelection.h
+++ b/layout/generic/nsFrameSelection.h
@@ -89,37 +89,37 @@ struct MOZ_STACK_CLASS nsPeekOffsetStruc
   /*** Input arguments ***/
   // Note: The value of some of the input arguments may be changed upon exit.
 
   // mAmount: The type of movement requested (by character, word, line, etc.)
   nsSelectionAmount mAmount;
 
   // mDirection: eDirPrevious or eDirNext.
   //             * Note for visual bidi movement:
-  //             eDirPrevious means 'left-then-up' if the containing block is LTR, 
+  //             eDirPrevious means 'left-then-up' if the containing block is LTR,
   //             'right-then-up' if it is RTL.
-  //             eDirNext means 'right-then-down' if the containing block is LTR, 
+  //             eDirNext means 'right-then-down' if the containing block is LTR,
   //             'left-then-down' if it is RTL.
-  //             Between paragraphs, eDirPrevious means "go to the visual end of the 
+  //             Between paragraphs, eDirPrevious means "go to the visual end of the
   //             previous paragraph", and eDirNext means "go to the visual beginning
   //             of the next paragraph".
   //             Used with: eSelectCharacter, eSelectWord, eSelectLine, eSelectParagraph.
   nsDirection mDirection;
 
   // mStartOffset: Offset into the content of the current frame where the peek starts.
   //               Used with: eSelectCharacter, eSelectWord
   int32_t mStartOffset;
-  
+
   // mDesiredPos: The desired inline coordinate for the caret
   //              (one of .x or .y will be used, depending on line's writing mode)
   //              Used with: eSelectLine.
   nsPoint mDesiredPos;
 
   // mWordMovementType: An enum that determines whether to prefer the start or end of a word
-  //                    or to use the default beahvior, which is a combination of 
+  //                    or to use the default beahvior, which is a combination of
   //                    direction and the platform-based pref
   //                    "layout.word_select.eat_space_to_next_word"
   mozilla::EWordMovementType mWordMovementType;
 
   // mJumpLines: Whether to allow jumping across line boundaries.
   //             Used with: eSelectCharacter, eSelectWord.
   bool mJumpLines;
 
@@ -147,17 +147,17 @@ struct MOZ_STACK_CLASS nsPeekOffsetStruc
   //               Used with: eSelectCharacter, eSelectWord.
   nsIFrame *mResultFrame;
 
   // mContentOffset: Offset into content reached as a result of the peek.
   int32_t mContentOffset;
 
   // mAttachForward: When the result position is between two frames,
   //                 indicates which of the two frames the caret should be painted in.
-  //                 false means "the end of the frame logically before the caret", 
+  //                 false means "the end of the frame logically before the caret",
   //                 true means "the beginning of the frame logically after the caret".
   //                 Used with: eSelectLine, eSelectBeginLine, eSelectEndLine.
   mozilla::CaretAssociationHint mAttach;
 };
 
 struct nsPrevNextBidiLevels
 {
   void SetData(nsIFrame* aFrameBefore,
@@ -190,38 +190,38 @@ class nsIScrollableFrame;
  * or they may cause other objects to be deleted.
  */
 class nsFrameSelection final
 {
 public:
   typedef mozilla::CaretAssociationHint CaretAssociateHint;
 
   /*interfaces for addref and release and queryinterface*/
-  
+
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(nsFrameSelection)
   NS_DECL_CYCLE_COLLECTION_NATIVE_CLASS(nsFrameSelection)
 
-  /** Init will initialize the frame selector with the necessary pres shell to 
+  /** Init will initialize the frame selector with the necessary pres shell to
    *  be used by most of the methods
    *  @param aShell is the parameter to be used for most of the other calls for callbacks etc
    *  @param aLimiter limits the selection to nodes with aLimiter parents
    */
   void Init(nsIPresShell *aShell, nsIContent *aLimiter);
 
-  /** HandleClick will take the focus to the new frame at the new offset and 
+  /** HandleClick will take the focus to the new frame at the new offset and
    *  will either extend the selection from the old anchor, or replace the old anchor.
    *  the old anchor and focus position may also be used to deselect things
    *  @param aNewfocus is the content that wants the focus
    *  @param aContentOffset is the content offset of the parent aNewFocus
    *  @param aContentOffsetEnd is the content offset of the parent aNewFocus and is specified different
    *                           when you need to select to and include both start and end points
    *  @param aContinueSelection is the flag that tells the selection to keep the old anchor point or not.
-   *  @param aMultipleSelection will tell the frame selector to replace /or not the old selection. 
+   *  @param aMultipleSelection will tell the frame selector to replace /or not the old selection.
    *         cannot coexist with aContinueSelection
-   *  @param aHint will tell the selection which direction geometrically to actually show the caret on. 
+   *  @param aHint will tell the selection which direction geometrically to actually show the caret on.
    *         1 = end of this line 0 = beginning of this line
    */
   /*unsafe*/
   nsresult HandleClick(nsIContent *aNewFocus,
                        uint32_t aContentOffset,
                        uint32_t aContentEndOffset,
                        bool aContinueSelection,
                        bool aMultipleSelection,
@@ -383,31 +383,31 @@ public:
 
   /** RepaintSelection repaints the selected frames that are inside the selection
    *  specified by aSelectionType.
    * @param aSelectionType The selection type what you want to repaint.
    */
   nsresult RepaintSelection(mozilla::SelectionType aSelectionType);
 
   /** GetFrameForNodeOffset given a node and its child offset, return the nsIFrame and
-   *  the offset into that frame. 
+   *  the offset into that frame.
    * @param aNode input parameter for the node to look at
    * @param aOffset offset into above node.
    * @param aReturnOffset will contain offset into frame.
    */
   nsIFrame* GetFrameForNodeOffset(nsIContent*        aNode,
                                   int32_t            aOffset,
                                   CaretAssociateHint aHint,
                                   int32_t*           aReturnOffset) const;
 
   /**
-   * Scrolling then moving caret placement code in common to text areas and 
+   * Scrolling then moving caret placement code in common to text areas and
    * content areas should be located in the implementer
-   * This method will accept the following parameters and perform the scroll 
-   * and caret movement.  It remains for the caller to call the final 
+   * This method will accept the following parameters and perform the scroll
+   * and caret movement.  It remains for the caller to call the final
    * ScrollCaretIntoView if that called wants to be sure the caret is always
    * visible.
    *
    * @param aForward if true, scroll forward if not scroll backward
    * @param aExtend  if true, extend selection to the new point
    * @param aScrollableFrame the frame to scroll
    */
   /*unsafe*/
@@ -473,32 +473,32 @@ public:
   nsresult WordMove(bool aForward, bool aExtend);
 
   /** WordExtendForDelete extends the selection backward or forward (logically) to the
    *  next word boundary, so that the selected word can be deleted.
    * @param aForward select forward in document.
    */
   /*unsafe*/
   nsresult WordExtendForDelete(bool aForward);
-  
+
   /** LineMove will generally be called from the nsiselectioncontroller implementations.
    *  the effect being the selection will move one line up or down.
    * @param aForward move forward in document.
    * @param aExtend continue selection
    */
   /*unsafe*/
   nsresult LineMove(bool aForward, bool aExtend);
 
   /** IntraLineMove will generally be called from the nsiselectioncontroller implementations.
    *  the effect being the selection will move to beginning or end of line
    * @param aForward move forward in document.
    * @param aExtend continue selection
    */
   /*unsafe*/
-  nsresult IntraLineMove(bool aForward, bool aExtend); 
+  nsresult IntraLineMove(bool aForward, bool aExtend);
 
   /** Select All will generally be called from the nsiselectioncontroller implementations.
    *  it will select the whole doc
    */
   /*unsafe*/
   nsresult SelectAll();
 
   /** Sets/Gets The display selection enum.
@@ -536,49 +536,49 @@ public:
   {
     return !GetDragState() &&
            HasDelayedCaretData() &&
            GetClickCountInDelayedCaretData() < 2;
   }
 
   /** Get the content node that limits the selection
    *  When searching up a nodes for parents, as in a text edit field
-   *    in an browser page, we must stop at this node else we reach into the 
+   *    in an browser page, we must stop at this node else we reach into the
    *    parent page, which is very bad!
    */
   nsIContent* GetLimiter() const { return mLimiter; }
 
   nsIContent* GetAncestorLimiter() const { return mAncestorLimiter; }
   /*unsafe*/
   void SetAncestorLimiter(nsIContent *aLimiter);
 
-  /** This will tell the frame selection that a double click has been pressed 
+  /** This will tell the frame selection that a double click has been pressed
    *  so it can track abort future drags if inside the same selection
    *  @aDoubleDown has the double click down happened
    */
   void SetMouseDoubleDown(bool aDoubleDown) { mMouseDoubleDownState = aDoubleDown; }
-  
+
   /** This will return whether the double down flag was set.
    *  @return whether the double down flag was set
    */
   bool GetMouseDoubleDown() const { return mMouseDoubleDownState; }
 
   /**
    * GetPrevNextBidiLevels will return the frames and associated Bidi levels of the characters
    *   logically before and after a (collapsed) selection.
    *  @param aNode is the node containing the selection
    *  @param aContentOffset is the offset of the selection in the node
    *  @param aJumpLines If true, look across line boundaries.
-   *                    If false, behave as if there were base-level frames at line edges.  
+   *                    If false, behave as if there were base-level frames at line edges.
    *
    *  @return A struct holding the before/after frame and the before/after level.
    *
    *  At the beginning and end of each line there is assumed to be a frame with
    *   Bidi level equal to the paragraph embedding level.
-   *  In these cases the before frame and after frame respectively will be 
+   *  In these cases the before frame and after frame respectively will be
    *   nullptr.
    */
   nsPrevNextBidiLevels GetPrevNextBidiLevels(nsIContent* aNode,
                                              uint32_t aContentOffset,
                                              bool aJumpLines) const;
 
   /** GetFrameFromLevel will scan in a given direction
    *   until it finds a frame with a Bidi level less than or equal to a given level.
@@ -739,17 +739,17 @@ private:
   int32_t  mSelectedCellIndex;
 
   // maintain selection
   RefPtr<nsRange> mMaintainRange;
   nsSelectionAmount mMaintainedAmount;
 
   //batching
   int32_t mBatching;
-    
+
   // Limit selection navigation to a child of this node.
   nsCOMPtr<nsIContent> mLimiter;
   // Limit selection navigation to a descendant of this node.
   nsCOMPtr<nsIContent> mAncestorLimiter;
 
   nsIPresShell *mShell;
 
   int16_t mSelectionChangeReason; // reason for notifications of selection changing
--- a/layout/generic/nsFrameSetFrame.h
+++ b/layout/generic/nsFrameSetFrame.h
@@ -21,17 +21,17 @@ class  nsIAtom;
 class  nsHTMLFramesetBorderFrame;
 class  nsHTMLFramesetFrame;
 
 #define NO_COLOR 0xFFFFFFFA
 
 // defined at HTMLFrameSetElement.h
 struct nsFramesetSpec;
 
-struct nsBorderColor 
+struct nsBorderColor
 {
   nscolor mLeft;
   nscolor mRight;
   nscolor mTop;
   nscolor mBottom;
 
   nsBorderColor() { Set(NO_COLOR); }
   ~nsBorderColor() {}
@@ -46,20 +46,20 @@ enum nsFrameborder {
 
 struct nsFramesetDrag {
   nsHTMLFramesetFrame* mSource;    // frameset whose border was dragged to cause the resize
   int32_t              mIndex;     // index of left col or top row of effected area
   int32_t              mChange;    // pos for left to right or top to bottom, neg otherwise
   bool                 mVertical;  // vertical if true, otherwise horizontal
 
   nsFramesetDrag();
-  void Reset(bool                 aVertical, 
-             int32_t              aIndex, 
-             int32_t              aChange, 
-             nsHTMLFramesetFrame* aSource); 
+  void Reset(bool                 aVertical,
+             int32_t              aIndex,
+             int32_t              aChange,
+             nsHTMLFramesetFrame* aSource);
   void UnSet();
 };
 
 /*******************************************************************************
  * nsHTMLFramesetFrame
  ******************************************************************************/
 class nsHTMLFramesetFrame : public nsContainerFrame
 {
@@ -83,17 +83,17 @@ public:
   void GetSizeOfChild(nsIFrame* aChild, mozilla::WritingMode aWM,
                       mozilla::LogicalSize& aSize);
 
   void GetSizeOfChildAt(int32_t  aIndexInParent,
                         mozilla::WritingMode aWM,
                         mozilla::LogicalSize&  aSize,
                         nsIntPoint& aCellIndex);
 
-  virtual nsresult HandleEvent(nsPresContext* aPresContext, 
+  virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
 
   virtual nsresult GetCursor(const nsPoint&    aPoint,
                              nsIFrame::Cursor& aCursor) override;
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
@@ -107,40 +107,40 @@ public:
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override;
 #endif
 
   void StartMouseDrag(nsPresContext* aPresContext,
                       nsHTMLFramesetBorderFrame* aBorder,
                       mozilla::WidgetGUIEvent* aEvent);
 
-  void MouseDrag(nsPresContext* aPresContext, 
+  void MouseDrag(nsPresContext* aPresContext,
                  mozilla::WidgetGUIEvent* aEvent);
 
   void EndMouseDrag(nsPresContext* aPresContext);
 
   nsFrameborder GetParentFrameborder() { return mParentFrameborder; }
 
   void SetParentFrameborder(nsFrameborder aValue) { mParentFrameborder = aValue; }
 
   nsFramesetDrag& GetDrag() { return mDrag; }
 
   void RecalculateBorderResize();
 
 protected:
-  void Scale(nscoord  aDesired, 
-             int32_t  aNumIndicies, 
-             int32_t* aIndicies, 
+  void Scale(nscoord  aDesired,
+             int32_t  aNumIndicies,
+             int32_t* aIndicies,
              int32_t  aNumItems,
              int32_t* aItems);
 
-  void CalculateRowCol(nsPresContext*       aPresContext, 
-                       nscoord               aSize, 
-                       int32_t               aNumSpecs, 
-                       const nsFramesetSpec* aSpecs, 
+  void CalculateRowCol(nsPresContext*       aPresContext,
+                       nscoord               aSize,
+                       int32_t               aNumSpecs,
+                       const nsFramesetSpec* aSpecs,
                        nscoord*              aValues);
 
   void GenerateRowCol(nsPresContext*       aPresContext,
                       nscoord               aSize,
                       int32_t               aNumSpecs,
                       const nsFramesetSpec* aSpecs,
                       nscoord*              aValues,
                       nsString&             aNewAttr);
@@ -163,29 +163,29 @@ protected:
   nsFrameborder GetFrameBorder();
 
   nsFrameborder GetFrameBorder(nsIContent* aContent);
 
   nscolor GetBorderColor();
 
   nscolor GetBorderColor(nsIContent* aFrameContent);
 
-  bool GetNoResize(nsIFrame* aChildFrame); 
-  
+  bool GetNoResize(nsIFrame* aChildFrame);
+
   void ReflowPlaceChild(nsIFrame*                aChild,
                         nsPresContext*          aPresContext,
                         const ReflowInput& aReflowInput,
                         nsPoint&                 aOffset,
                         nsSize&                  aSize,
                         nsIntPoint*              aCellIndex = 0);
-  
-  bool CanResize(bool aVertical, bool aLeft); 
+
+  bool CanResize(bool aVertical, bool aLeft);
 
   bool CanChildResize(bool aVertical, bool aLeft, int32_t aChildX);
-  
+
   void SetBorderResize(nsHTMLFramesetBorderFrame* aBorderFrame);
 
   template<typename T, class D = mozilla::DefaultDelete<T>>
   using UniquePtr = mozilla::UniquePtr<T, D>;
 
   nsFramesetDrag   mDrag;
   nsBorderColor    mEdgeColors;
   nsHTMLFramesetBorderFrame* mDragger;
@@ -194,18 +194,18 @@ protected:
   UniquePtr<nsHTMLFramesetBorderFrame*[]> mHorBorders;  // horizontal borders
   UniquePtr<nsFrameborder[]> mChildFrameborder; // the frameborder attr of children
   UniquePtr<nsBorderColor[]> mChildBorderColors;
   UniquePtr<nscoord[]> mRowSizes;  // currently computed row sizes
   UniquePtr<nscoord[]> mColSizes;  // currently computed col sizes
   mozilla::LayoutDeviceIntPoint mFirstDragPoint;
   int32_t          mNumRows;
   int32_t          mNumCols;
-  int32_t          mNonBorderChildCount; 
-  int32_t          mNonBlankChildCount; 
+  int32_t          mNonBorderChildCount;
+  int32_t          mNonBlankChildCount;
   int32_t          mEdgeVisibility;
   nsFrameborder    mParentFrameborder;
   nscolor          mParentBorderColor;
   int32_t          mParentBorderWidth;
   int32_t          mPrevNeighborOrigSize; // used during resize
   int32_t          mNextNeighborOrigSize;
   int32_t          mMinDrag;
   int32_t          mChildCount;
--- a/layout/generic/nsFrameState.h
+++ b/layout/generic/nsFrameState.h
@@ -71,9 +71,9 @@ inline nsFrameState& operator^=(nsFrameS
 
 namespace mozilla {
 #ifdef DEBUG
 nsCString GetFrameState(nsIFrame* aFrame);
 void PrintFrameState(nsIFrame* aFrame);
 #endif
 } // namespace mozilla
 
-#endif /* nsFrameState_h_ */ 
+#endif /* nsFrameState_h_ */
--- a/layout/generic/nsFrameUtil.cpp
+++ b/layout/generic/nsFrameUtil.cpp
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* utilities for regression tests based on frame tree comparison */
- 
+
 #include "nsIFrameUtil.h"
 #include "nsFrame.h"
 #include "nsString.h"
 #include "nsRect.h"
 #include <stdlib.h>
 #include "plstr.h"
 
 
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -1385,17 +1385,17 @@ ScrollFrameHelper::ScrollByLine(nsScroll
     if (GetLineScrollAmount().height * delta.y > GetPageScrollAmount().height) {
       // The scroll frame is so small that the delta would be more
       // than an entire page.  Scroll by one page instead to maintain
       // context.
       ScrollByPage(aScrollbar, aDirection);
       return;
     }
   }
-  
+
   nsIntPoint overflow;
   ScrollBy(delta, nsIScrollableFrame::LINES, nsIScrollableFrame::SMOOTH,
            &overflow, nsGkAtoms::other, nsIScrollableFrame::NOT_MOMENTUM,
            aSnap);
 }
 
 void
 ScrollFrameHelper::RepeatButtonScroll(nsScrollbarFrame* aScrollbar)
@@ -2646,17 +2646,17 @@ ClampAndAlignWithPixels(nscoord aDesired
       Abs(desired - aligned))
     return aBoundUpper;
 
   if (aBoundLower == destLower &&
       static_cast<decltype(Abs(desired))>(desired - aBoundLower) <
       Abs(aligned - desired))
     return aBoundLower;
 
-  // Accept the nearest pixel-aligned value if it is within the allowed range. 
+  // Accept the nearest pixel-aligned value if it is within the allowed range.
   if (aligned >= destLower && aligned <= destUpper)
     return aligned;
 
   // Check if opposite pixel boundary fits into allowed range.
   double oppositeLayerVal =
     nearestLayerVal + ((nearestLayerVal < desiredLayerVal) ? 1.0 : -1.0);
   nscoord opposite =
     NSToCoordRoundWithClamp(oppositeLayerVal*aAppUnitsPerPixel/aRes);
--- a/layout/generic/nsGfxScrollFrame.h
+++ b/layout/generic/nsGfxScrollFrame.h
@@ -305,33 +305,33 @@ public:
 
   static void SetScrollbarVisibility(nsIFrame* aScrollbar, bool aVisible);
 
   /**
    * GetScrolledRect is designed to encapsulate deciding which
    * directions of overflow should be reachable by scrolling and which
    * should not.  Callers should NOT depend on it having any particular
    * behavior (although nsXULScrollFrame currently does).
-   * 
+   *
    * This should only be called when the scrolled frame has been
    * reflowed with the scroll port size given in mScrollPort.
    *
    * Currently it allows scrolling down and to the right for
    * nsHTMLScrollFrames with LTR directionality and for all
    * nsXULScrollFrames, and allows scrolling down and to the left for
    * nsHTMLScrollFrames with RTL directionality.
    */
   nsRect GetScrolledRect() const;
 
   /**
    * GetUnsnappedScrolledRectInternal is designed to encapsulate deciding which
    * directions of overflow should be reachable by scrolling and which
    * should not.  Callers should NOT depend on it having any particular
    * behavior (although nsXULScrollFrame currently does).
-   * 
+   *
    * Currently it allows scrolling down and to the right for
    * nsHTMLScrollFrames with LTR directionality and for all
    * nsXULScrollFrames, and allows scrolling down and to the left for
    * nsHTMLScrollFrames with RTL directionality.
    */
   nsRect GetUnsnappedScrolledRectInternal(const nsRect& aScrolledOverflowArea,
                                           const nsSize& aScrollPortSize) const;
 
@@ -718,17 +718,17 @@ public:
                               Sides aSkipSides, nscoord aRadii[8]) const override {
     return mHelper.GetBorderRadii(aFrameSize, aBorderArea, aSkipSides, aRadii);
   }
 
   virtual nscoord GetMinISize(gfxContext *aRenderingContext) override;
   virtual nscoord GetPrefISize(gfxContext *aRenderingContext) override;
   virtual nsresult GetXULPadding(nsMargin& aPadding) override;
   virtual bool IsXULCollapsed() override;
-  
+
   virtual void Reflow(nsPresContext*           aPresContext,
                       ReflowOutput&     aDesiredSize,
                       const ReflowInput& aReflowInput,
                       nsReflowStatus&          aStatus) override;
 
   virtual bool ComputeCustomOverflow(nsOverflowAreas& aOverflowAreas) override {
     return mHelper.ComputeCustomOverflow(aOverflowAreas);
   }
@@ -1028,17 +1028,17 @@ public:
     return mHelper.IsTransformingByAPZ();
   }
   void SetScrollableByAPZ(bool aScrollable) override {
     mHelper.SetScrollableByAPZ(aScrollable);
   }
   void SetZoomableByAPZ(bool aZoomable) override {
     mHelper.SetZoomableByAPZ(aZoomable);
   }
-  
+
   ScrollSnapInfo GetScrollSnapInfo() const override {
     return mHelper.GetScrollSnapInfo();
   }
 
   virtual bool DragScroll(mozilla::WidgetEvent* aEvent) override {
     return mHelper.DragScroll(aEvent);
   }
 
@@ -1079,17 +1079,17 @@ protected:
 
   bool IsScrollbarUpdateSuppressed() const {
     return mHelper.mSupppressScrollbarUpdate;
   }
 
   // Return whether we're in an "initial" reflow.  Some reflows with
   // NS_FRAME_FIRST_REFLOW set are NOT "initial" as far as we're concerned.
   bool InInitialReflow() const;
-  
+
   /**
    * Override this to return false if computed bsize/min-bsize/max-bsize
    * should NOT be propagated to child content.
    * nsListControlFrame uses this.
    */
   virtual bool ShouldPropagateComputedBSizeToScrolledContent() const { return true; }
 
 private:
@@ -1193,28 +1193,28 @@ public:
   virtual bool GetBorderRadii(const nsSize& aFrameSize, const nsSize& aBorderArea,
                               Sides aSkipSides, nscoord aRadii[8]) const override {
     return mHelper.GetBorderRadii(aFrameSize, aBorderArea, aSkipSides, aRadii);
   }
 
   nsresult XULLayout(nsBoxLayoutState& aState);
   void LayoutScrollArea(nsBoxLayoutState& aState, const nsPoint& aScrollPosition);
 
-  static bool AddRemoveScrollbar(bool& aHasScrollbar, 
-                                   nscoord& aXY, 
-                                   nscoord& aSize, 
-                                   nscoord aSbSize, 
-                                   bool aOnRightOrBottom, 
+  static bool AddRemoveScrollbar(bool& aHasScrollbar,
+                                   nscoord& aXY,
+                                   nscoord& aSize,
+                                   nscoord aSbSize,
+                                   bool aOnRightOrBottom,
                                    bool aAdd);
-  
-  bool AddRemoveScrollbar(nsBoxLayoutState& aState, 
-                            bool aOnRightOrBottom, 
-                            bool aHorizontal, 
+
+  bool AddRemoveScrollbar(nsBoxLayoutState& aState,
+                            bool aOnRightOrBottom,
+                            bool aHorizontal,
                             bool aAdd);
-  
+
   bool AddHorizontalScrollbar (nsBoxLayoutState& aState, bool aOnBottom);
   bool AddVerticalScrollbar   (nsBoxLayoutState& aState, bool aOnRight);
   void RemoveHorizontalScrollbar(nsBoxLayoutState& aState, bool aOnBottom);
   void RemoveVerticalScrollbar  (nsBoxLayoutState& aState, bool aOnRight);
 
   static void AdjustReflowInputForPrintPreview(nsBoxLayoutState& aState, bool& aSetBack);
   static void AdjustReflowInputBack(nsBoxLayoutState& aState, bool aSetBack);
 
@@ -1500,21 +1500,21 @@ public:
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override;
 #endif
 
 protected:
   nsXULScrollFrame(nsStyleContext* aContext, bool aIsRoot,
                    bool aClipAllDescendants);
 
-  void ClampAndSetBounds(nsBoxLayoutState& aState, 
+  void ClampAndSetBounds(nsBoxLayoutState& aState,
                          nsRect& aRect,
                          nsPoint aScrollPosition,
                          bool aRemoveOverflowAreas = false) {
-    /* 
+    /*
      * For RTL frames, restore the original scrolled position of the right
      * edge, then subtract the current width to find the physical position.
      */
     if (!mHelper.IsPhysicalLTR()) {
       aRect.x = mHelper.mScrollPort.XMost() - aScrollPosition.x - aRect.width;
     }
     mHelper.mScrolledFrame->SetXULBounds(aState, aRect, aRemoveOverflowAreas);
   }
--- a/layout/generic/nsHTMLCanvasFrame.cpp
+++ b/layout/generic/nsHTMLCanvasFrame.cpp
@@ -300,17 +300,17 @@ nsHTMLCanvasFrame::Reflow(nsPresContext*
                    aMetrics.ISize(wm), aMetrics.BSize(wm)));
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowInput, aMetrics);
 }
 
 // FIXME taken from nsImageFrame, but then had splittable frame stuff
 // removed.  That needs to be fixed.
 // XXXdholbert As in nsImageFrame, this function's clients should probably
 // just be calling GetContentRectRelativeToSelf().
-nsRect 
+nsRect
 nsHTMLCanvasFrame::GetInnerArea() const
 {
   nsMargin bp = mBorderPadding.GetPhysicalMargin(GetWritingMode());
   nsRect r;
   r.x = bp.left;
   r.y = bp.top;
   r.width = mRect.width - bp.left - bp.right;
   r.height = mRect.height - bp.top - bp.bottom;
--- a/layout/generic/nsHTMLParts.h
+++ b/layout/generic/nsHTMLParts.h
@@ -49,40 +49,40 @@ class ViewportFrame;
 // Factory methods for creating html layout objects
 
 // Create a frame that supports "display: block" layout behavior
 class nsBlockFrame;
 nsBlockFrame*
 NS_NewBlockFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
 // Special Generated Content Node. It contains text taken from an
-// attribute of its *grandparent* content node. 
+// attribute of its *grandparent* content node.
 nsresult
 NS_NewAttributeContent(nsNodeInfoManager *aNodeInfoManager,
                        int32_t aNameSpaceID, nsIAtom* aAttrName,
                        nsIContent** aResult);
 
 // Create a basic area frame but the GetFrameForPoint is overridden to always
-// return the option frame 
+// return the option frame
 // By default, area frames will extend
 // their height to cover any children that "stick out".
 nsContainerFrame*
 NS_NewSelectsAreaFrame(nsIPresShell* aPresShell, nsStyleContext* aContext, nsFrameState aFlags);
 
 // Create a block formatting context blockframe
 nsBlockFrame*
 NS_NewBlockFormattingContext(nsIPresShell* aPresShell, nsStyleContext* aStyleContext);
 
 nsIFrame*
 NS_NewBRFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
 nsIFrame*
 NS_NewCommentFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
-// <frame> and <iframe> 
+// <frame> and <iframe>
 nsIFrame*
 NS_NewSubDocumentFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 // <frameset>
 nsIFrame*
 NS_NewHTMLFramesetFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
 mozilla::ViewportFrame*
 NS_NewViewportFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
--- a/layout/generic/nsIFrameUtil.h
+++ b/layout/generic/nsIFrameUtil.h
@@ -21,17 +21,17 @@
 class nsIFrameUtil : public nsISupports {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IFRAME_UTIL_IID)
   /**
    * Compare two regression data dumps. The return status will be NS_OK
    * if the trees compare favoribly, otherwise the return will indicate
    * NS_ERROR_FAILURE. Other return status's will indicate some other
    * type of failure. The files, aFile1 and aFile2 are closed before
-   * returning. 
+   * returning.
    * aRegressionOutput will vary output, 0 is full output, 1 is brief
    */
   NS_IMETHOD CompareRegressionData(FILE* aFile1, FILE* aFile2,int32_t aRegressionOutput) = 0;
 
   /**
    * Display the regression dump data stored in aInputFile1 to
    * aOutputFile . The file is closed before returning. If the
    * regression data is in error somehow then NS_ERROR_FAILURE will be
--- a/layout/generic/nsIScrollableFrame.h
+++ b/layout/generic/nsIScrollableFrame.h
@@ -128,17 +128,17 @@ public:
   virtual nsRect GetScrollPortRect() const = 0;
   /**
    * Get the offset of the scrollport origin relative to the scrolled
    * frame origin. Typically the position will be non-negative.
    * This will always be a multiple of device pixels.
    */
   virtual nsPoint GetScrollPosition() const = 0;
   /**
-   * As GetScrollPosition(), but uses the top-right as origin for RTL frames. 
+   * As GetScrollPosition(), but uses the top-right as origin for RTL frames.
    */
   virtual nsPoint GetLogicalScrollPosition() const = 0;
   /**
    * Get the area that must contain the scroll position. Typically
    * (but not always, e.g. for RTL content) x and y will be 0, and
    * width or height will be nonzero if the content can be scrolled in
    * that direction. Since scroll positions must be a multiple of
    * device pixels, the range extrema will also be a multiple of
@@ -161,17 +161,17 @@ public:
    */
   virtual nsSize GetPageScrollAmount() const = 0;
 
   /**
    * When a scroll operation is requested, we ask for instant, smooth,
    * smooth msd, or normal scrolling.
    *
    * SMOOTH scrolls have a symmetrical acceleration and deceleration curve
-   * modeled with a set of splines that guarantee that the destination will be 
+   * modeled with a set of splines that guarantee that the destination will be
    * reached over a fixed time interval.  SMOOTH will only be smooth if smooth
    * scrolling is actually enabled.  This behavior is utilized by keyboard and
    * mouse wheel scrolling events.
    *
    * SMOOTH_MSD implements a physically based model that approximates the
    * behavior of a mass-spring-damper system.  SMOOTH_MSD scrolls have a
    * non-symmetrical acceleration and deceleration curve, can potentially
    * overshoot the destination on intermediate frames, and complete over a
--- a/layout/generic/nsIStatefulFrame.h
+++ b/layout/generic/nsIStatefulFrame.h
@@ -12,17 +12,17 @@
 
 #include "nsContentUtils.h"
 #include "nsQueryFrame.h"
 
 class nsPresState;
 
 class nsIStatefulFrame
 {
- public: 
+ public:
   NS_DECL_QUERYFRAME_TARGET(nsIStatefulFrame)
 
   // Save the state for this frame.  If this method succeeds, the caller is
   // responsible for deleting the resulting state when done with it.
   NS_IMETHOD SaveState(nsPresState** aState) = 0;
 
   // Restore the state for this frame from aState
   NS_IMETHOD RestoreState(nsPresState* aState) = 0;
--- a/layout/generic/nsImageFrame.cpp
+++ b/layout/generic/nsImageFrame.cpp
@@ -209,20 +209,20 @@ nsImageFrame::DestroyFrom(nsIFrame* aDes
     nsCOMPtr<nsIImageLoadingContent> imageLoader = do_QueryInterface(mContent);
     if (imageLoader) {
       // Notify our image loading content that we are going away so it can
       // deregister with our refresh driver.
       imageLoader->FrameDestroyed(this);
 
       imageLoader->RemoveObserver(mListener);
     }
-    
+
     reinterpret_cast<nsImageListener*>(mListener.get())->SetFrame(nullptr);
   }
-  
+
   mListener = nullptr;
 
   // If we were displaying an icon, take ourselves off the list
   if (mDisplayingIcon)
     gIconLoad->RemoveIconObserver(this);
 
   nsAtomicContainerFrame::DestroyFrom(aDestructRoot);
 }
@@ -267,17 +267,17 @@ nsImageFrame::Init(nsIContent*       aCo
   nsCOMPtr<nsIImageLoadingContent> imageLoader = do_QueryInterface(aContent);
   if (!imageLoader) {
     MOZ_CRASH("Why do we have an nsImageFrame here at all?");
   }
 
   imageLoader->AddObserver(mListener);
 
   nsPresContext *aPresContext = PresContext();
-  
+
   if (!gIconLoad)
     LoadIcons(aPresContext);
 
   // We have a PresContext now, so we need to notify the image content node
   // that it can register images.
   imageLoader->FrameCreated(this);
 
   // Give image loads associated with an image frame a small priority boost!
@@ -469,17 +469,17 @@ nsImageFrame::ShouldCreateImageFrameFor(
   //  - else if our "do not show placeholders" pref is set, skip the icon
   //  - else:
   //  - if there is a src attribute, there is no alt attribute,
   //    and this is not an <object> (which could not possibly have
   //    such an attribute), show an icon.
   //  - if QuirksMode, and the IMG has a size show an icon.
   //  - otherwise, skip the icon
   bool useSizedBox;
-  
+
   if (aStyleContext->StyleUIReset()->mForceBrokenImageIcon) {
     useSizedBox = true;
   }
   else if (gIconLoad && gIconLoad->mPrefForceInlineAltText) {
     useSizedBox = false;
   }
   else if (aElement->HasAttr(kNameSpaceID_None, nsGkAtoms::src) &&
            !aElement->HasAttr(kNameSpaceID_None, nsGkAtoms::alt) &&
@@ -536,17 +536,17 @@ static bool
 SizeIsAvailable(imgIRequest* aRequest)
 {
   if (!aRequest)
     return false;
 
   uint32_t imageStatus = 0;
   nsresult rv = aRequest->GetImageStatus(&imageStatus);
 
-  return NS_SUCCEEDED(rv) && (imageStatus & imgIRequest::STATUS_SIZE_AVAILABLE); 
+  return NS_SUCCEEDED(rv) && (imageStatus & imgIRequest::STATUS_SIZE_AVAILABLE);
 }
 
 nsresult
 nsImageFrame::OnSizeAvailable(imgIRequest* aRequest, imgIContainer* aImage)
 {
   if (!aImage) return NS_ERROR_INVALID_ARG;
 
   /* Get requested animation policy from the pres context:
@@ -579,20 +579,20 @@ nsImageFrame::OnSizeAvailable(imgIReques
     mIntrinsicSize.height.SetCoordValue(0);
     mIntrinsicRatio.SizeTo(0, 0);
     intrinsicSizeChanged = true;
   }
 
   if (intrinsicSizeChanged && (mState & IMAGE_GOTINITIALREFLOW)) {
     // Now we need to reflow if we have an unconstrained size and have
     // already gotten the initial reflow
-    if (!(mState & IMAGE_SIZECONSTRAINED)) { 
+    if (!(mState & IMAGE_SIZECONSTRAINED)) {
       nsIPresShell *presShell = presContext->GetPresShell();
       NS_ASSERTION(presShell, "No PresShell.");
-      if (presShell) { 
+      if (presShell) {
         presShell->FrameNeedsReflow(this, nsIPresShell::eStyleChange,
                                     NS_FRAME_IS_DIRTY);
       }
     } else {
       // We've already gotten the initial reflow, and our size hasn't changed,
       // so we're ready to request a decode.
       MaybeDecodeForPredictedSize();
     }
@@ -607,17 +607,17 @@ nsresult
 nsImageFrame::OnFrameUpdate(imgIRequest* aRequest, const nsIntRect* aRect)
 {
   NS_ENSURE_ARG_POINTER(aRect);
 
   if (!(mState & IMAGE_GOTINITIALREFLOW)) {
     // Don't bother to do anything; we have a reflow coming up!
     return NS_OK;
   }
-  
+
   if (mFirstFrameComplete && !StyleVisibility()->IsVisible()) {
     return NS_OK;
   }
 
   if (IsPendingLoad(aRequest)) {
     // We don't care
     return NS_OK;
   }
@@ -890,34 +890,34 @@ nsImageFrame::ComputeSize(gfxContext *aR
   return ComputeSizeWithIntrinsicDimensions(aRenderingContext, aWM,
                                             intrinsicSize, mIntrinsicRatio,
                                             aCBSize, aMargin, aBorder, aPadding,
                                             aFlags);
 }
 
 // XXXdholbert This function's clients should probably just be calling
 // GetContentRectRelativeToSelf() directly.
-nsRect 
+nsRect
 nsImageFrame::GetInnerArea() const
 {
   return GetContentRectRelativeToSelf();
 }
 
 Element*
 nsImageFrame::GetMapElement() const
 {
   nsAutoString usemap;
   if (mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::usemap, usemap)) {
     return mContent->OwnerDoc()->FindImageMap(usemap);
   }
   return nullptr;
 }
 
 // get the offset into the content area of the image where aImg starts if it is a continuation.
-nscoord 
+nscoord
 nsImageFrame::GetContinuationOffset() const
 {
   nscoord offset = 0;
   for (nsIFrame *f = GetPrevInFlow(); f; f = f->GetPrevInFlow()) {
     offset += f->GetContentRect().height;
   }
   NS_ASSERTION(offset >= 0, "bogus GetContentRect");
   return offset;
@@ -985,26 +985,26 @@ nsImageFrame::Reflow(nsPresContext*     
   }
 
   // XXXldb These two bits are almost exact opposites (except in the
   // middle of the initial reflow); remove IMAGE_GOTINITIALREFLOW.
   if (GetStateBits() & NS_FRAME_FIRST_REFLOW) {
     mState |= IMAGE_GOTINITIALREFLOW;
   }
 
-  mComputedSize = 
+  mComputedSize =
     nsSize(aReflowInput.ComputedWidth(), aReflowInput.ComputedHeight());
 
   aMetrics.Width() = mComputedSize.width;
   aMetrics.Height() = mComputedSize.height;
 
   // add borders and padding
   aMetrics.Width()  += aReflowInput.ComputedPhysicalBorderPadding().LeftRight();
   aMetrics.Height() += aReflowInput.ComputedPhysicalBorderPadding().TopBottom();
-  
+
   if (GetPrevInFlow()) {
     aMetrics.Width() = GetPrevInFlow()->GetSize().width;
     nscoord y = GetContinuationOffset();
     aMetrics.Height() -= y + aReflowInput.ComputedPhysicalBorderPadding().top;
     aMetrics.Height() = std::max(0, aMetrics.Height());
   }
 
 
@@ -1018,18 +1018,18 @@ nsImageFrame::Reflow(nsPresContext*     
     imageLoader->GetRequest(nsIImageLoadingContent::CURRENT_REQUEST,
                             getter_AddRefs(currentRequest));
     if (currentRequest) {
       currentRequest->GetImageStatus(&loadStatus);
     }
   }
   if (aPresContext->IsPaginated() &&
       ((loadStatus & imgIRequest::STATUS_SIZE_AVAILABLE) || (mState & IMAGE_SIZECONSTRAINED)) &&
-      NS_UNCONSTRAINEDSIZE != aReflowInput.AvailableHeight() && 
-      aMetrics.Height() > aReflowInput.AvailableHeight()) { 
+      NS_UNCONSTRAINEDSIZE != aReflowInput.AvailableHeight() &&
+      aMetrics.Height() > aReflowInput.AvailableHeight()) {
     // our desired height was greater than 0, so to avoid infinite
     // splitting, use 1 pixel as the min
     aMetrics.Height() = std::max(nsPresContext::CSSPixelsToAppUnits(1), aReflowInput.AvailableHeight());
     aStatus.Reset();
     aStatus.SetIncomplete();
   }
 
   aMetrics.SetOverflowAreasToDesiredBounds();
@@ -1120,17 +1120,17 @@ nsImageFrame::MeasureString(const char16
     bool      trailingSpace = false;
     for (int32_t i = 0; i < aLength; i++) {
       if (dom::IsSpaceCharacter(aString[i]) && (i > 0)) {
         len = i;  // don't include the space when measuring
         trailingSpace = true;
         break;
       }
     }
-  
+
     // Measure this chunk of text, and see if it fits
     nscoord width =
       nsLayoutUtils::AppUnitWidthOfStringBidi(aString, len, this, aFontMetrics,
                                               aContext);
     bool    fits = (totalWidth + width) <= aMaxWidth;
 
     // If it fits on the line, or it's the first word we've processed then
     // include it
@@ -1384,17 +1384,17 @@ nsImageFrame::DisplayAltFeedback(gfxCont
       nsCSSRendering::PaintBorderWithStyleBorder(PresContext(), aRenderingContext,
                                                  this, inner, inner,
                                                  recessedBorder, mStyleContext,
                                                  PaintBorderFlags::SYNC_DECODE_IMAGES);
   }
 
   // Adjust the inner rect to account for the one pixel recessed border,
   // and a six pixel padding on each edge
-  inner.Deflate(nsPresContext::CSSPixelsToAppUnits(ICON_PADDING+ALT_BORDER_WIDTH), 
+  inner.Deflate(nsPresContext::CSSPixelsToAppUnits(ICON_PADDING+ALT_BORDER_WIDTH),
                 nsPresContext::CSSPixelsToAppUnits(ICON_PADDING+ALT_BORDER_WIDTH));
   if (inner.IsEmpty()) {
     return DrawResult::SUCCESS;
   }
 
   DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();
 
   // Clip so we don't render outside the inner rect
@@ -1871,17 +1871,17 @@ nsImageFrame::ShouldDisplaySelection()
   nsPresContext* presContext = PresContext();
   int16_t displaySelection = presContext->PresShell()->GetSelectionFlags();
   if (!(displaySelection & nsISelectionDisplay::DISPLAY_IMAGES))
     return false;//no need to check the blue border, we cannot be drawn selected
 //insert hook here for image selection drawing
 #if IMAGE_EDITOR_CHECK
   //check to see if this frame is in an editor context
   //isEditor check. this needs to be changed to have better way to check
-  if (displaySelection == nsISelectionDisplay::DISPLAY_ALL) 
+  if (displaySelection == nsISelectionDisplay::DISPLAY_ALL)
   {
     nsCOMPtr<nsISelectionController> selCon;
     result = GetSelectionController(presContext, getter_AddRefs(selCon));
     if (NS_SUCCEEDED(result) && selCon)
     {
       nsCOMPtr<nsISelection> selection;
       result = selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
       if (NS_SUCCEEDED(result) && selection)
@@ -1987,17 +1987,17 @@ nsImageFrame::GetAnchorHREFTargetAndNode
       }
       NS_ADDREF(*aNode = content);
       break;
     }
   }
   return status;
 }
 
-nsresult  
+nsresult
 nsImageFrame::GetContentForEvent(WidgetEvent* aEvent,
                                  nsIContent** aContent)
 {
   NS_ENSURE_ARG_POINTER(aContent);
 
   nsIFrame* f = nsLayoutUtils::GetNonGeneratedAncestor(this);
   if (f != this) {
     return f->GetContentForEvent(aEvent, aContent);
@@ -2108,17 +2108,17 @@ nsImageFrame::GetCursor(const nsPoint& a
     TranslateEventCoords(aPoint, p);
     nsCOMPtr<nsIContent> area = map->GetArea(p.x, p.y);
     if (area) {
       // Use the cursor from the style of the *area* element.
       // XXX Using the image as the parent style context isn't
       // technically correct, but it's probably the right thing to do
       // here, since it means that areas on which the cursor isn't
       // specified will inherit the style from the image.
-      RefPtr<nsStyleContext> areaStyle = 
+      RefPtr<nsStyleContext> areaStyle =
         PresContext()->PresShell()->StyleSet()->
           ResolveStyleFor(area->AsElement(), StyleContext(),
                           LazyComputeBehavior::Allow);
       FillCursorInformationFromStyle(areaStyle->StyleUserInterface(),
                                      aCursor);
       if (NS_STYLE_CURSOR_AUTO == aCursor.mCursor) {
         aCursor.mCursor = NS_STYLE_CURSOR_DEFAULT;
       }
@@ -2289,18 +2289,18 @@ nsImageFrame::SpecToURI(const nsAString&
                          nsIURI **aURI)
 {
   nsCOMPtr<nsIURI> baseURI;
   if (mContent) {
     baseURI = mContent->GetBaseURI();
   }
   nsAutoCString charset;
   GetDocumentCharacterSet(charset);
-  NS_NewURI(aURI, aSpec, 
-            charset.IsEmpty() ? nullptr : charset.get(), 
+  NS_NewURI(aURI, aSpec,
+            charset.IsEmpty() ? nullptr : charset.get(),
             baseURI, aIOService);
 }
 
 void
 nsImageFrame::GetLoadGroup(nsPresContext *aPresContext, nsILoadGroup **aLoadGroup)
 {
   if (!aPresContext)
     return;
--- a/layout/generic/nsImageFrame.h
+++ b/layout/generic/nsImageFrame.h
@@ -84,17 +84,17 @@ public:
   virtual nscoord GetMinISize(gfxContext *aRenderingContext) override;
   virtual nscoord GetPrefISize(gfxContext *aRenderingContext) override;
   virtual mozilla::IntrinsicSize GetIntrinsicSize() override;
   virtual nsSize GetIntrinsicRatio() override;
   virtual void Reflow(nsPresContext*           aPresContext,
                       ReflowOutput&     aDesiredSize,
                       const ReflowInput& aReflowInput,
                       nsReflowStatus&          aStatus) override;
-  
+
   virtual nsresult  GetContentForEvent(mozilla::WidgetEvent* aEvent,
                                        nsIContent** aContent) override;
   virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
   virtual nsresult GetCursor(const nsPoint& aPoint,
                              nsIFrame::Cursor& aCursor) override;
   virtual nsresult AttributeChanged(int32_t aNameSpaceID,
@@ -111,17 +111,17 @@ public:
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
     return nsAtomicContainerFrame::IsFrameOfType(aFlags &
       ~(nsIFrame::eReplaced | nsIFrame::eReplacedSizing));
   }
 
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override;
-  void List(FILE* out = stderr, const char* aPrefix = "", 
+  void List(FILE* out = stderr, const char* aPrefix = "",
             uint32_t aFlags = 0) const override;
 #endif
 
   nsSplittableType GetSplittableType() const override
   {
     return NS_FRAME_SPLITTABLE;
   }
 
@@ -141,17 +141,17 @@ public:
 
   /**
    * Function to test whether aContent, which has aStyleContext as its style,
    * should get an image frame.  Note that this method is only used by the
    * frame constructor; it's only here because it uses gIconLoad for now.
    */
   static bool ShouldCreateImageFrameFor(mozilla::dom::Element* aElement,
                                           nsStyleContext* aStyleContext);
-  
+
   DrawResult DisplayAltFeedback(gfxContext& aRenderingContext,
                                 const nsRect& aDirtyRect,
                                 nsPoint aPt,
                                 uint32_t aFlags);
 
   nsRect GetInnerArea() const;
 
   /**
@@ -336,17 +336,17 @@ private:
   nsSize mIntrinsicRatio;
 
   bool mDisplayingIcon;
   bool mFirstFrameComplete;
   bool mReflowCallbackPosted;
   bool mForceSyncDecoding;
 
   static nsIIOService* sIOService;
-  
+
   /* loading / broken image icon support */
 
   // XXXbz this should be handled by the prescontext, I think; that
   // way we would have a single iconload per mozilla session instead
   // of one per document...
 
   // LoadIcons: initiate the loading of the static icons used to show
   // loading / broken images
@@ -388,20 +388,20 @@ private:
 
   public:
     RefPtr<imgRequestProxy> mLoadingImage;
     RefPtr<imgRequestProxy> mBrokenImage;
     bool             mPrefForceInlineAltText;
     bool             mPrefShowPlaceholders;
     bool             mPrefShowLoadingPlaceholder;
   };
-  
+
 public:
   static IconLoad* gIconLoad; // singleton pattern: one LoadIcons instance is used
-  
+
   friend class nsDisplayImage;
 };
 
 /**
  * Note that nsDisplayImage does not receive events. However, an image element
  * is replaced content so its background will be z-adjacent to the
  * image itself, and hence receive events just as if the image itself
  * received events.
--- a/layout/generic/nsImageMap.h
+++ b/layout/generic/nsImageMap.h
@@ -47,32 +47,32 @@ public:
   /**
    * Return area element at the given index.
    */
   nsIContent* GetAreaAt(uint32_t aIndex) const;
 
   void Draw(nsIFrame* aFrame, DrawTarget& aDrawTarget,
             const ColorPattern& aColor,
             const StrokeOptions& aStrokeOptions = StrokeOptions());
-  
-  /** 
-   * Called just before the nsImageFrame releases us. 
+
+  /**
+   * Called just before the nsImageFrame releases us.
    * Used to break the cycle caused by the DOM listener.
    */
   void Destroy();
-  
+
   // nsISupports
   NS_DECL_ISUPPORTS
 
   // nsIMutationObserver
   NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTAPPENDED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED
   NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED
-  NS_DECL_NSIMUTATIONOBSERVER_PARENTCHAINCHANGED  
+  NS_DECL_NSIMUTATIONOBSERVER_PARENTCHAINCHANGED
 
   //nsIDOMEventListener
   NS_DECL_NSIDOMEVENTLISTENER
 
   nsresult GetBoundsForAreaContent(nsIContent *aContent,
                                    nsRect& aBounds);
 
 protected:
@@ -80,17 +80,17 @@ protected:
 
   void FreeAreas();
 
   nsresult UpdateAreas();
   nsresult SearchForAreas(nsIContent* aParent, bool& aFoundArea,
                           bool& aFoundAnchor);
 
   nsresult AddArea(nsIContent* aArea);
- 
+
   void MaybeUpdateAreas(nsIContent *aContent);
 
   nsImageFrame* mImageFrame;  // the frame that owns us
   nsCOMPtr<nsIContent> mMap;
   AutoTArray<Area*, 8> mAreas; // almost always has some entries
   bool mContainsBlockContents;
 };
 
--- a/layout/generic/nsInlineFrame.cpp
+++ b/layout/generic/nsInlineFrame.cpp
@@ -462,17 +462,17 @@ nsInlineFrame::Reflow(nsPresContext*    
   ReflowAbsoluteFrames(aPresContext, aMetrics, aReflowInput, aStatus);
 
   // Note: the line layout code will properly compute our
   // overflow-rect state for us.
 
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowInput, aMetrics);
 }
 
-nsresult 
+nsresult
 nsInlineFrame::AttributeChanged(int32_t aNameSpaceID,
                                 nsIAtom* aAttribute,
                                 int32_t aModType)
 {
   nsresult rv =
     nsContainerFrame::AttributeChanged(aNameSpaceID, aAttribute, aModType);
 
   if (NS_FAILED(rv)) {
@@ -655,17 +655,17 @@ nsInlineFrame::ReflowFrames(nsPresContex
             if (mFrames.ContainsFrame(nextInFlow)) {
               nextInFlow->SetParent(this);
               if (inFirstLine) {
                 restyleManager->ReparentStyleContext(nextInFlow);
                 nsLayoutUtils::MarkDescendantsDirty(nextInFlow);
               }
             }
             else {
-#ifdef DEBUG              
+#ifdef DEBUG
               // Once we find a next-in-flow that isn't ours none of the
               // remaining next-in-flows should be either.
               for ( ; nextInFlow; nextInFlow = nextInFlow->GetNextInFlow()) {
                 NS_ASSERTION(!mFrames.ContainsFrame(nextInFlow),
                              "unexpected letter frame flow");
               }
 #endif
               break;
@@ -914,17 +914,17 @@ nsInlineFrame::PushFrames(nsPresContext*
                           nsIFrame* aPrevSibling,
                           InlineReflowInput& aState)
 {
   NS_PRECONDITION(aFromChild, "null pointer");
   NS_PRECONDITION(aPrevSibling, "pushing first child");
   NS_PRECONDITION(aPrevSibling->GetNextSibling() == aFromChild, "bad prev sibling");
 
 #ifdef NOISY_PUSHING
-  printf("%p pushing aFromChild %p, disconnecting from prev sib %p\n", 
+  printf("%p pushing aFromChild %p, disconnecting from prev sib %p\n",
          this, aFromChild, aPrevSibling);
 #endif
 
   // Add the frames to our overflow list (let our next in flow drain
   // our overflow list when it is ready)
   SetOverflowFrames(mFrames.RemoveFramesAfter(aPrevSibling));
   if (aState.mLineLayout) {
     aState.mLineLayout->SetDirtyNextLine();
--- a/layout/generic/nsInlineFrame.h
+++ b/layout/generic/nsInlineFrame.h
@@ -55,17 +55,17 @@ public:
 
   virtual bool IsEmpty() override;
   virtual bool IsSelfEmpty() override;
 
   virtual FrameSearchResult
   PeekOffsetCharacter(bool aForward, int32_t* aOffset,
                       PeekOffsetCharacterOptions aOptions =
                         PeekOffsetCharacterOptions()) override;
-  
+
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
   virtual nsresult StealFrame(nsIFrame* aChild) override;
 
   // nsIHTMLReflow overrides
   virtual void AddInlineMinISize(gfxContext *aRenderingContext,
                                  InlineMinISizeData *aData) override;
   virtual void AddInlinePrefISize(gfxContext *aRenderingContext,
                                   InlinePrefISizeData *aData) override;
--- a/layout/generic/nsLeafFrame.h
+++ b/layout/generic/nsLeafFrame.h
@@ -55,17 +55,17 @@ public:
    * the desired width, and use the return value of GetIntrinsicBSize plus
    * borderpadding for the desired height.  Ascent will be set to the height,
    * and descent will be set to 0.
    */
   virtual void Reflow(nsPresContext*      aPresContext,
                       ReflowOutput& aDesiredSize,
                       const ReflowInput& aReflowInput,
                       nsReflowStatus&      aStatus) override;
-  
+
   /**
    * This method does most of the work that Reflow() above need done.
    */
   virtual void DoReflow(nsPresContext*      aPresContext,
                         ReflowOutput& aDesiredSize,
                         const ReflowInput& aReflowInput,
                         nsReflowStatus&      aStatus);
 
--- a/layout/generic/nsLineBox.cpp
+++ b/layout/generic/nsLineBox.cpp
@@ -68,17 +68,17 @@ nsLineBox::nsLineBox(nsIFrame* aFrame, i
   mFlags.mBlock = aIsBlock;
 }
 
 nsLineBox::~nsLineBox()
 {
   MOZ_COUNT_DTOR(nsLineBox);
   if (MOZ_UNLIKELY(mFlags.mHasHashedFrames)) {
     delete mFrames;
-  }  
+  }
   Cleanup();
 }
 
 nsLineBox*
 NS_NewLineBox(nsIPresShell* aPresShell, nsIFrame* aFrame, bool aIsBlock)
 {
   return new (aPresShell) nsLineBox(aFrame, 1, aIsBlock);
 }
@@ -343,17 +343,17 @@ nsLineBox::IsEmpty() const
 }
 
 bool
 nsLineBox::CachedIsEmpty()
 {
   if (mFlags.mDirty) {
     return IsEmpty();
   }
-  
+
   if (mFlags.mEmptyCacheValid) {
     return mFlags.mEmptyCacheState;
   }
 
   bool result;
   if (IsBlock()) {
     result = mFirstChild->CachedIsEmpty();
   } else {
@@ -509,17 +509,17 @@ nsLineBox::FreeFloats(nsFloatCacheFreeLi
       aFreeList.Append(mInlineData->mFloats);
     }
     MaybeFreeData();
   }
 }
 
 void
 nsLineBox::AppendFloats(nsFloatCacheFreeList& aFreeList)
-{ 
+{
   MOZ_ASSERT(IsInline(), "block line can't have floats");
   if (IsInline()) {
     if (aFreeList.NotEmpty()) {
       if (!mInlineData) {
         mInlineData = new ExtraInlineData(GetPhysicalBounds());
       }
       mInlineData->mFloats.Append(aFreeList);
     }
@@ -772,17 +772,17 @@ nsLineIterator::FindFrameAt(int32_t aLin
     LogicalRect rect = frame->GetLogicalRect(wm, containerSize);
     if (rect.ISize(wm) > 0) {
       // If pos.I() is inside this frame - this is it
       if (rect.IStart(wm) <= pos.I(wm) && rect.IEnd(wm) > pos.I(wm)) {
         closestFromStart = closestFromEnd = frame;
         break;
       }
       if (rect.IStart(wm) < pos.I(wm)) {
-        if (!closestFromStart || 
+        if (!closestFromStart ||
             rect.IEnd(wm) > closestFromStart->
                               GetLogicalRect(wm, containerSize).IEnd(wm))
           closestFromStart = frame;
       }
       else {
         if (!closestFromEnd ||
             rect.IStart(wm) < closestFromEnd->
                                 GetLogicalRect(wm, containerSize).IStart(wm))
@@ -867,17 +867,17 @@ nsFloatCacheList::Tail() const
   }
   return fc;
 }
 
 void
 nsFloatCacheList::Append(nsFloatCacheFreeList& aList)
 {
   NS_PRECONDITION(aList.NotEmpty(), "Appending empty list will fail");
-  
+
   nsFloatCache* tail = Tail();
   if (tail) {
     NS_ASSERTION(!tail->mNext, "Bogus!");
     tail->mNext = aList.mHead;
   }
   else {
     NS_ASSERTION(!mHead, "Bogus!");
     mHead = aList.mHead;
@@ -928,22 +928,22 @@ nsFloatCacheFreeList::nsFloatCacheFreeLi
   MOZ_COUNT_CTOR(nsFloatCacheFreeList);
 }
 
 nsFloatCacheFreeList::~nsFloatCacheFreeList()
 {
   MOZ_COUNT_DTOR(nsFloatCacheFreeList);
 }
 #endif
-  
+
 void
 nsFloatCacheFreeList::Append(nsFloatCacheList& aList)
 {
   NS_PRECONDITION(aList.NotEmpty(), "Appending empty list will fail");
-  
+
   if (mTail) {
     NS_ASSERTION(!mTail->mNext, "Bogus");
     mTail->mNext = aList.mHead;
   }
   else {
     NS_ASSERTION(!mHead, "Bogus");
     mHead = aList.mHead;
   }
--- a/layout/generic/nsLineLayout.cpp
+++ b/layout/generic/nsLineLayout.cpp
@@ -759,17 +759,17 @@ IsPercentageAware(const nsIFrame* aFrame
     }
 
     // Per CSS 2.1, section 10.3.2:
     //   If 'height' and 'width' both have computed values of 'auto' and
     //   the element has an intrinsic ratio but no intrinsic height or
     //   width and the containing block's width does not itself depend
     //   on the replaced element's width, then the used value of 'width'
     //   is calculated from the constraint equation used for
-    //   block-level, non-replaced elements in normal flow. 
+    //   block-level, non-replaced elements in normal flow.
     nsIFrame *f = const_cast<nsIFrame*>(aFrame);
     if (f->GetIntrinsicRatio() != nsSize(0, 0) &&
         // Some percents are treated like 'auto', so check != coord
         pos->mHeight.GetUnit() != eStyleUnit_Coord) {
       const IntrinsicSize &intrinsicSize = f->GetIntrinsicSize();
       if (intrinsicSize.width.GetUnit() == eStyleUnit_None &&
           intrinsicSize.height.GetUnit() == eStyleUnit_None) {
         return true;
@@ -1062,17 +1062,17 @@ nsLineLayout::ReflowFrame(nsIFrame* aFra
         kidNextInFlow->GetParent()->
           DeleteNextInFlowChild(kidNextInFlow, true);
       }
     }
 
     // Check whether this frame breaks up text runs. All frames break up text
     // runs (hence return false here) except for text frames and inline containers.
     bool continuingTextRun = aFrame->CanContinueTextRun();
-    
+
     // Clear any residual mTrimmableISize if this isn't a text frame
     if (!continuingTextRun && !pfd->mSkipWhenTrimmingWhitespace) {
       mTrimmableISize = 0;
     }
 
     // See if we can place the frame. If we can't fit it, then we
     // return now.
     bool optionalBreakAfterFits;
@@ -1102,17 +1102,17 @@ nsLineLayout::ReflowFrame(nsIFrame* aFra
       PlaceFrame(pfd, reflowOutput);
       PerSpanData* span = pfd->mSpan;
       if (span) {
         // The frame we just finished reflowing is an inline
         // container.  It needs its child frames aligned in the block direction,
         // so do most of it now.
         VerticalAlignFrames(span);
       }
-      
+
       if (!continuingTextRun) {
         if (!psd->mNoWrap && (!LineIsEmpty() || placedFloat)) {
           // record soft break opportunity after this content that can't be
           // part of a text run. This is not a text frame so we know
           // that offset INT32_MAX means "after the content".
           if (NotifyOptionalBreakPosition(aFrame, INT32_MAX,
                                           optionalBreakAfterFits,
                                           gfxBreakPriority::eNormalBreak)) {
@@ -1131,17 +1131,17 @@ nsLineLayout::ReflowFrame(nsIFrame* aFra
                                 savedOptionalBreakOffset,
                                 savedOptionalBreakPriority);
     }
   }
   else {
     PushFrame(aFrame);
     aPushedFrame = true;
   }
-  
+
 #ifdef REALLY_NOISY_REFLOW
   nsFrame::IndentBy(stdout, mSpanDepth);
   printf("End ReflowFrame ");
   nsFrame::ListTag(stdout, aFrame);
   printf(" status=%x\n", aReflowStatus);
 #endif
 }
 
@@ -1348,17 +1348,17 @@ nsLineLayout::CanPlaceFrame(PerFrameData
     while (nullptr != psd) {
       printf("<psd=%p x=%d left=%d> ", psd, psd->mICoord, psd->mIStart);
       psd = psd->mParent;
     }
     printf("\n");
 #endif
     return true;
   }
- 
+
   // Special check for span frames
   if (pfd->mSpan && pfd->mSpan->mContainsFloat) {
     // If the span either directly or indirectly contains a float then
     // it fits. Why? It's kind of complicated, but here goes:
     //
     // 1. CanPlaceFrame is used for all frame placements on a line,
     // and in a span. This includes recursively placement of frames
     // inside of spans, and the span itself. Because the logic always
@@ -2874,17 +2874,17 @@ nsLineLayout::ApplyLineJustificationToAn
                                     aDeltaICoord + aDeltaISize, 0);
       sibling = sibling->mNext;
     }
 
     pfd = pfd->mNextAnnotation;
   }
 }
 
-nscoord 
+nscoord
 nsLineLayout::ApplyFrameJustification(PerSpanData* aPSD,
                                       JustificationApplicationState& aState)
 {
   NS_ASSERTION(aPSD, "null arg");
 
   nscoord deltaICoord = 0;
   for (PerFrameData* pfd = aPSD->mFirstFrame; pfd != nullptr; pfd = pfd->mNext) {
     // Don't reposition bullets (and other frames that occur out of X-order?)
--- a/layout/generic/nsLineLayout.h
+++ b/layout/generic/nsLineLayout.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  * vim:cindent:ts=2:et:sw=2:
  *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- * This Original Code has been modified by IBM Corporation. Modifications made by IBM 
+ * This Original Code has been modified by IBM Corporation. Modifications made by IBM
  * described herein are Copyright (c) International Business Machines Corporation, 2000.
  * Modifications to Mozilla code or documentation identified per MPL Section 3.3
  *
  * Date             Modified by     Description of modification
  * 04/20/2000       IBM Corp.      OS/2 VisualAge build.
  */
 
 /* state and methods used while laying out a single line of a block frame */
@@ -26,17 +26,17 @@
 
 class nsFloatManager;
 struct nsStyleText;
 
 class nsLineLayout {
   using BlockReflowInput = mozilla::BlockReflowInput;
   using ReflowInput = mozilla::ReflowInput;
   using ReflowOutput = mozilla::ReflowOutput;
-  
+
 public:
   /**
    * @param aBaseLineLayout the nsLineLayout for ruby base,
    * nullptr if no separate base nsLineLayout is needed.
    */
   nsLineLayout(nsPresContext* aPresContext,
                nsFloatManager* aFloatManager,
                const ReflowInput* aOuterReflowInput,
@@ -160,23 +160,23 @@ public:
    */
   bool LineAtStart() const
   {
     return mLineAtStart;
   }
 
   bool LineIsBreakable() const;
 
-  bool GetLineEndsInBR() const 
-  { 
+  bool GetLineEndsInBR() const
+  {
     return mLineEndsInBR;
   }
 
-  void SetLineEndsInBR(bool aOn) 
-  { 
+  void SetLineEndsInBR(bool aOn)
+  {
     mLineEndsInBR = aOn;
   }
 
   //----------------------------------------
   // Inform the line-layout about the presence of a floating frame
   // XXX get rid of this: use get-frame-type?
   bool AddFloat(nsIFrame* aFloat, nscoord aAvailableISize)
   {
@@ -235,28 +235,28 @@ public:
 
   /**
    * Record where an optional break could have been placed. During line reflow,
    * frames containing optional break points (e.g., whitespace in text frames)
    * can call SetLastOptionalBreakPosition to record where a break could
    * have been made, but wasn't because we decided to place more content on
    * the line. For non-text frames, offset 0 means before the frame, offset
    * INT32_MAX means after the frame.
-   * 
+   *
    * Currently this is used to handle cases where a single word comprises
    * multiple frames, and the first frame fits on the line but the whole word
    * doesn't. We look back to the last optional break position and
    * reflow the whole line again, forcing a break at that position. The last
    * optional break position could be in a text frame or else after a frame
    * that cannot be part of a text run, so those are the positions we record.
    *
    * @param aFrame the frame which contains the optional break position.
-   * 
+   *
    * @param aFits set to true if the break position is within the available width.
-   * 
+   *
    * @param aPriority the priority of the break opportunity. If we are
    * prioritizing break opportunities, we will not set a break if we have
    * already set a break with a higher priority. @see gfxBreakPriority.
    *
    * @return true if we are actually reflowing with forced break position and we
    * should break here
    */
   bool NotifyOptionalBreakPosition(nsIFrame* aFrame, int32_t aOffset,
@@ -307,23 +307,23 @@ public:
   {
     return mLastOptionalBreakFrame != nullptr;
   }
   // Get the priority of the last optional break position recorded.
   gfxBreakPriority LastOptionalBreakPriority() const
   {
     return mLastOptionalBreakPriority;
   }
-  
+
   /**
    * Check whether frames overflowed the available width and CanPlaceFrame
    * requested backing up to a saved break position.
-   */  
+   */
   bool NeedsBackup() { return mNeedBackup; }
-  
+
   // Line layout may place too much content on a line, overflowing its available
   // width. When that happens, if SetLastOptionalBreakPosition has been
   // used to record an optional break that wasn't taken, we can reflow the line
   // again and force the break to happen at that point (i.e., backtracking
   // to the last choice point).
 
   // Record that we want to break at the given content+offset (which
   // should have been previously returned by GetLastOptionalBreakPosition
@@ -345,17 +345,17 @@ public:
   nsIFrame* LineContainerFrame() const { return mBlockReflowInput->mFrame; }
   const ReflowInput* LineContainerRI() const { return mBlockReflowInput; }
   const nsLineList::iterator* GetLine() const {
     return mGotLineBox ? &mLineBox : nullptr;
   }
   nsLineList::iterator* GetLine() {
     return mGotLineBox ? &mLineBox : nullptr;
   }
-  
+
   /**
    * Returns the accumulated advance width of frames before the current frame
    * on the line, plus the line container's left border+padding.
    * This is always positive, the advance width is measured from
    * the right edge for RTL blocks and from the left edge for LTR blocks.
    * In other words, the current frame's distance from the line container's
    * start content edge is:
    * <code>GetCurrentFrameInlineDistanceFromBlock() - lineContainer->GetUsedBorderAndPadding().left</code>
@@ -403,17 +403,17 @@ protected:
     while (lineLayout->mBaseLineLayout) {
       lineLayout = lineLayout->mBaseLineLayout;
     }
     return lineLayout;
   }
 
   nsIFrame* mLastOptionalBreakFrame;
   nsIFrame* mForceBreakFrame;
-  
+
   // XXX remove this when landing bug 154892 (splitting absolute positioned frames)
   friend class nsInlineFrame;
 
   // XXX Take care that nsRubyBaseContainer would give nullptr to this
   //     member. It should not be a problem currently, since the only
   //     code use it is handling float, which does not affect ruby.
   //     See comment in nsLineLayout::AddFloat
   BlockReflowInput* mBlockRI;/* XXX hack! */
@@ -463,17 +463,17 @@ protected:
     mozilla::LogicalMargin mOffsets;       // in *frame* writing mode
 
     // state for text justification
     // Note that, although all frames would have correct inner
     // opportunities computed after ComputeFrameJustification, start
     // and end justifiable info are not reliable for non-text frames.
     mozilla::JustificationInfo mJustificationInfo;
     mozilla::JustificationAssignment mJustificationAssignment;
-    
+
     // PerFrameData flags
     bool mRelativePos : 1;
     bool mIsTextFrame : 1;
     bool mIsNonEmptyTextFrame : 1;
     bool mIsNonWhitespaceTextFrame : 1;
     bool mIsLetterFrame : 1;
     bool mRecomputeOverflow : 1;
     bool mIsBullet : 1;
@@ -579,17 +579,17 @@ protected:
         GetPhysicalSize(mRootSpan->mWritingMode);
   }
 
   gfxBreakPriority mLastOptionalBreakPriority;
   int32_t     mLastOptionalBreakFrameOffset;
   int32_t     mForceBreakFrameOffset;
 
   nscoord mMinLineBSize;
-  
+
   // The amount of text indent that we applied to this line, needed for
   // max-element-size calculation.
   nscoord mTextIndent;
 
   // This state varies during the reflow of a line but is line
   // "global" state not span "local" state.
   int32_t mLineNumber;
   mozilla::JustificationInfo mJustificationInfo;
@@ -600,17 +600,17 @@ protected:
   nscoord mMaxStartBoxBSize;
   nscoord mMaxEndBoxBSize;
 
   nscoord mInflationMinFontSize;
 
   // Final computed line-bSize value after VerticalAlignFrames for
   // the block has been called.
   nscoord mFinalLineBSize;
-  
+
   // Amount of trimmable whitespace inline size for the trailing text
   // frame, if any
   nscoord mTrimmableISize;
 
   // Physical size. Use only for physical <-> logical coordinate conversion.
   nsSize mContainerSize;
   const nsSize& ContainerSize() const { return mContainerSize; }
 
--- a/layout/generic/nsPageContentFrame.cpp
+++ b/layout/generic/nsPageContentFrame.cpp
@@ -39,17 +39,17 @@ nsPageContentFrame::Reflow(nsPresContext
   }
 
   // Set our size up front, since some parts of reflow depend on it
   // being already set.  Note that the computed height may be
   // unconstrained; that's ok.  Consumers should watch out for that.
   nsSize  maxSize(aReflowInput.ComputedWidth(),
                   aReflowInput.ComputedHeight());
   SetSize(maxSize);
- 
+
   // A PageContentFrame must always have one child: the canvas frame.
   // Resize our frame allowing it only to be as big as we are
   // XXX Pay attention to the page's border and padding...
   if (mFrames.NotEmpty()) {
     nsIFrame* frame = mFrames.FirstChild();
     WritingMode wm = frame->GetWritingMode();
     LogicalSize logicalSize(wm, maxSize);
     ReflowInput kidReflowInput(aPresContext, aReflowInput,
--- a/layout/generic/nsPageFrame.cpp
+++ b/layout/generic/nsPageFrame.cpp
@@ -172,23 +172,23 @@ nsPageFrame::Reflow(nsPresContext*      
 #ifdef DEBUG_FRAME_DUMP
 nsresult
 nsPageFrame::GetFrameName(nsAString& aResult) const
 {
   return MakeFrameName(NS_LITERAL_STRING("Page"), aResult);
 }
 #endif
 
-void 
+void
 nsPageFrame::ProcessSpecialCodes(const nsString& aStr, nsString& aNewStr)
 {
 
   aNewStr = aStr;
 
-  // Search to see if the &D code is in the string 
+  // Search to see if the &D code is in the string
   // then subst in the current date/time
   NS_NAMED_LITERAL_STRING(kDate, "&D");
   if (aStr.Find(kDate) != kNotFound) {
     aNewStr.ReplaceSubstring(kDate, mPD->mDateTimeStr);
   }
 
   // NOTE: Must search for &PT before searching for &P
   //
@@ -228,17 +228,17 @@ nsPageFrame::ProcessSpecialCodes(const n
     free(uStr);
   }
 }
 
 
 //------------------------------------------------------------------------------
 nscoord nsPageFrame::GetXPosition(gfxContext&          aRenderingContext,
                                   nsFontMetrics&       aFontMetrics,
-                                  const nsRect&        aRect, 
+                                  const nsRect&        aRect,
                                   int32_t              aJust,
                                   const nsString&      aStr)
 {
   nscoord width = nsLayoutUtils::AppUnitWidthOfStringBidi(aStr, this,
                                                           aFontMetrics,
                                                           aRenderingContext);
   nscoord x = aRect.x;
   switch (aJust) {
@@ -357,20 +357,20 @@ nsPageFrame::DrawHeaderFooter(gfxContext
           // these font metrics!
           str.Truncate(indx-3);
           str.AppendLiteral("...");
         } else {
           // We can only fit 3 or fewer chars.  Just show nothing
           str.Truncate();
         }
       }
-    } else { 
+    } else {
       return; // bail if couldn't find the correct length
     }
-    
+
     if (HasRTLChars(str)) {
       PresContext()->SetBidiEnabled();
     }
 
     // cacl the x and y positions of the text
     nscoord x = GetXPosition(aRenderingContext, aFontMetrics, aRect, aJust, str);
     nscoord y;
     if (aHeaderFooter == eHeader) {
@@ -593,19 +593,19 @@ nsPageFrame::BuildDisplayList(nsDisplayL
         nsDisplayHeaderFooter(aBuilder, this));
   }
 
   set.MoveTo(aLists);
 }
 
 //------------------------------------------------------------------------------
 void
-nsPageFrame::SetPageNumInfo(int32_t aPageNumber, int32_t aTotalPages) 
-{ 
-  mPageNum     = aPageNumber; 
+nsPageFrame::SetPageNumInfo(int32_t aPageNumber, int32_t aTotalPages)
+{
+  mPageNum     = aPageNumber;
   mTotNumPages = aTotalPages;
 }
 
 
 void
 nsPageFrame::PaintHeaderFooter(gfxContext& aRenderingContext,
                                nsPoint aPt, bool aDisableSubpixelAA)
 {
@@ -652,18 +652,18 @@ nsPageFrame::PaintHeaderFooter(gfxContex
   mPD->mPrintSettings->GetFooterStrCenter(getter_Copies(footerCenter));
   mPD->mPrintSettings->GetFooterStrRight(getter_Copies(footerRight));
   DrawHeaderFooter(aRenderingContext, *fontMet, eFooter,
                    footerLeft, footerCenter, footerRight,
                    rect, ascent, visibleHeight);
 }
 
 void
-nsPageFrame::SetSharedPageData(nsSharedPageData* aPD) 
-{ 
+nsPageFrame::SetSharedPageData(nsSharedPageData* aPD)
+{
   mPD = aPD;
   // Set the shared data into the page frame before reflow
   nsPageContentFrame * pcf = static_cast<nsPageContentFrame*>(mFrames.FirstChild());
   if (pcf) {
     pcf->SetSharedPageData(mPD);
   }
 
 }
@@ -729,17 +729,17 @@ nsPageBreakFrame::Reflow(nsPresContext* 
   // round the height down to the nearest pixel
   finalSize.BSize(wm) -=
     finalSize.BSize(wm) % nsPresContext::CSSPixelsToAppUnits(1);
   aDesiredSize.SetSize(wm, finalSize);
 
   // Note: not using NS_FRAME_FIRST_REFLOW here, since it's not clear whether
   // DidReflow will always get called before the next Reflow() call.
   mHaveReflowed = true;
-  aStatus.Reset(); 
+  aStatus.Reset();
 }
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult
 nsPageBreakFrame::GetFrameName(nsAString& aResult) const
 {
   return MakeFrameName(NS_LITERAL_STRING("PageBreak"), aResult);
 }
--- a/layout/generic/nsPageFrame.h
+++ b/layout/generic/nsPageFrame.h
@@ -62,17 +62,17 @@ protected:
 
   typedef enum {
     eHeader,
     eFooter
   } nsHeaderFooterEnum;
 
   nscoord GetXPosition(gfxContext&          aRenderingContext,
                        nsFontMetrics&       aFontMetrics,
-                       const nsRect&        aRect, 
+                       const nsRect&        aRect,
                        int32_t              aJust,
                        const nsString&      aStr);
 
   void DrawHeaderFooter(gfxContext&          aRenderingContext,
                         nsFontMetrics&       aFontMetrics,
                         nsHeaderFooterEnum   aHeaderFooter,
                         int32_t              aJust,
                         const nsString&      sStr,
--- a/layout/generic/nsPlaceholderFrame.cpp
+++ b/layout/generic/nsPlaceholderFrame.cpp
@@ -252,17 +252,17 @@ PaintDebugPlaceholder(nsIFrame* aFrame, 
 #if defined(DEBUG) || (defined(MOZ_REFLOW_PERF_DSP) && defined(MOZ_REFLOW_PERF))
 
 void
 nsPlaceholderFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                      const nsRect&           aDirtyRect,
                                      const nsDisplayListSet& aLists)
 {
   DO_GLOBAL_REFLOW_COUNT_DSP("nsPlaceholderFrame");
-  
+
 #ifdef DEBUG
   if (GetShowFrameBorders()) {
     aLists.Outlines()->AppendNewToTop(
       new (aBuilder) nsDisplayGeneric(aBuilder, this, PaintDebugPlaceholder,
                                       "DebugPlaceholder",
                                       nsDisplayItem::TYPE_DEBUG_PLACEHOLDER));
   }
 #endif
--- a/layout/generic/nsPlaceholderFrame.h
+++ b/layout/generic/nsPlaceholderFrame.h
@@ -105,17 +105,17 @@ public:
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
 #if defined(DEBUG) || (defined(MOZ_REFLOW_PERF_DSP) && defined(MOZ_REFLOW_PERF))
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
 #endif // DEBUG || (MOZ_REFLOW_PERF_DSP && MOZ_REFLOW_PERF)
-  
+
 #ifdef DEBUG_FRAME_DUMP
   void List(FILE* out = stderr, const char* aPrefix = "", uint32_t aFlags = 0) const override;
   virtual nsresult GetFrameName(nsAString& aResult) const override;
 #endif // DEBUG
 
   virtual bool IsEmpty() override { return true; }
   virtual bool IsSelfEmpty() override { return true; }
 
--- a/layout/generic/nsPluginFrame.cpp
+++ b/layout/generic/nsPluginFrame.cpp
@@ -226,17 +226,17 @@ nsPluginFrame::DestroyFrom(nsIFrame* aDe
 
 /* virtual */ void
 nsPluginFrame::DidSetStyleContext(nsStyleContext* aOldStyleContext)
 {
   if (HasView()) {
     nsView* view = GetView();
     nsViewManager* vm = view->GetViewManager();
     if (vm) {
-      nsViewVisibility visibility = 
+      nsViewVisibility visibility =
         IsHidden() ? nsViewVisibility_kHide : nsViewVisibility_kShow;
       vm->SetViewVisibility(view, visibility);
     }
   }
 
   nsFrame::DidSetStyleContext(aOldStyleContext);
 }
 
@@ -249,30 +249,30 @@ nsPluginFrame::GetFrameName(nsAString& a
 #endif
 
 nsresult
 nsPluginFrame::PrepForDrawing(nsIWidget *aWidget)
 {
   mWidget = aWidget;
 
   nsView* view = GetView();
-  NS_ASSERTION(view, "Object frames must have views");  
+  NS_ASSERTION(view, "Object frames must have views");
   if (!view) {
     return NS_ERROR_FAILURE;
   }
 
   nsViewManager* viewMan = view->GetViewManager();
   // mark the view as hidden since we don't know the (x,y) until Paint
   // XXX is the above comment correct?
   viewMan->SetViewVisibility(view, nsViewVisibility_kHide);
 
   //this is ugly. it was ripped off from didreflow(). MMP
   // Position and size view relative to its parent, not relative to our
   // parent frame (our parent frame may not have a view).
-  
+
   nsView* parentWithView;
   nsPoint origin;
   nsRect r(0, 0, mRect.width, mRect.height);
 
   GetOffsetFromView(origin, &parentWithView);
   viewMan->ResizeView(view, r);
   viewMan->MoveViewTo(view, origin.x, origin.y);
 
@@ -333,17 +333,17 @@ nsPluginFrame::PrepForDrawing(nsIWidget 
     // the PaintedLayer containing the plugin is updated.
     if (parentWidget == GetNearestWidget()) {
       InvalidateFrame();
     }
 #endif
 
     RegisterPluginForGeometryUpdates();
 
-    // Here we set the background color for this widget because some plugins will use 
+    // Here we set the background color for this widget because some plugins will use
     // the child window background color when painting. If it's not set, it may default to gray
     // Sometimes, a frame doesn't have a background color or is transparent. In this
     // case, walk up the frame tree until we do find a frame with a background color
     for (nsIFrame* frame = this; frame; frame = frame->GetParent()) {
       nscolor bgcolor = frame->
         GetVisitedDependentColor(&nsStyleBackground::mBackgroundColor);
       if (NS_GET_A(bgcolor) > 0) {  // make sure we got an actual color
         mWidget->SetBackgroundColor(bgcolor);
@@ -598,23 +598,23 @@ nsPluginFrame::FixupWindow(const nsSize&
 
   NotifyPluginReflowObservers();
 }
 
 nsresult
 nsPluginFrame::CallSetWindow(bool aCheckIsHidden)
 {
   NPWindow *win = nullptr;
- 
+
   nsresult rv = NS_ERROR_FAILURE;
   RefPtr<nsNPAPIPluginInstance> pi;
   if (!mInstanceOwner ||
       NS_FAILED(rv = mInstanceOwner->GetInstance(getter_AddRefs(pi))) ||
       !pi ||
-      NS_FAILED(rv = mInstanceOwner->GetWindow(win)) || 
+      NS_FAILED(rv = mInstanceOwner->GetWindow(win)) ||
       !win)
     return rv;
 
   nsPluginNativeWindow *window = (nsPluginNativeWindow *)win;
 
   if (aCheckIsHidden && IsHidden())
     return NS_ERROR_FAILURE;
 
@@ -762,17 +762,17 @@ nsPluginFrame::IsFocusable(int32_t *aTab
   return nsFrame::IsFocusable(aTabIndex, aWithMouse);
 }
 
 bool
 nsPluginFrame::IsHidden(bool aCheckVisibilityStyle) const
 {
   if (aCheckVisibilityStyle) {
     if (!StyleVisibility()->IsVisibleOrCollapsed())
-      return true;    
+      return true;
   }
 
   // only <embed> tags support the HIDDEN attribute
   if (mContent->IsHTMLElement(nsGkAtoms::embed)) {
     // Yes, these are really the kooky ways that you could tell 4.x
     // not to hide the <embed> once you'd put the 'hidden' attribute
     // on the tag...
 
--- a/layout/generic/nsPluginFrame.h
+++ b/layout/generic/nsPluginFrame.h
@@ -100,17 +100,17 @@ public:
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
   virtual void DidSetStyleContext(nsStyleContext* aOldStyleContext) override;
 
   NS_IMETHOD GetPluginInstance(nsNPAPIPluginInstance** aPluginInstance) override;
 
   virtual void SetIsDocumentActive(bool aIsActive) override;
 
-  virtual nsresult GetCursor(const nsPoint& aPoint, 
+  virtual nsresult GetCursor(const nsPoint& aPoint,
                              nsIFrame::Cursor& aCursor) override;
 
   // APIs used by nsRootPresContext to set up the widget position/size/clip
   // region.
   /**
    * Set the next widget configuration for the plugin to the desired
    * position of the plugin's widget, on the assumption that it is not visible
    * (clipped out or covered by opaque content).
@@ -227,28 +227,28 @@ protected:
   virtual ~nsPluginFrame();
 
   // NOTE:  This frame class does not inherit from |nsLeafFrame|, so
   // this is not a virtual method implementation.
   void GetDesiredSize(nsPresContext* aPresContext,
                       const ReflowInput& aReflowInput,
                       ReflowOutput& aDesiredSize);
 
-  bool IsFocusable(int32_t *aTabIndex = nullptr, 
+  bool IsFocusable(int32_t *aTabIndex = nullptr,
                    bool aWithMouse = false) override;
 
   // check attributes and optionally CSS to see if we should display anything
   bool IsHidden(bool aCheckVisibilityStyle = true) const;
 
   bool IsOpaque() const;
   bool IsTransparentMode() const;
   bool IsPaintedByGecko() const;
 
   nsIntPoint GetWindowOriginInPixels(bool aWindowless);
-  
+
   /*
    * If this frame is in a remote tab, return the tab offset to
    * the origin of the chrome window. In non-e10s, this return 0,0.
    * This api sends a sync ipc request so be careful about use.
    */
   LayoutDeviceIntPoint GetRemoteTabChromeOffset();
 
   static void PaintPrintPlugin(nsIFrame* aFrame,
@@ -361,17 +361,17 @@ public:
 
   NS_DISPLAY_DECL_NAME("Plugin", TYPE_PLUGIN)
 
   virtual already_AddRefed<Layer> BuildLayer(nsDisplayListBuilder* aBuilder,
                                              LayerManager* aManager,
                                              const ContainerLayerParameters& aContainerParameters) override
   {
     return static_cast<nsPluginFrame*>(mFrame)->BuildLayer(aBuilder,
-                                                           aManager, 
+                                                           aManager,
                                                            this,
                                                            aContainerParameters);
   }
 
   virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder,
                                    LayerManager* aManager,
                                    const ContainerLayerParameters& aParameters) override
   {
--- a/layout/generic/nsRubyBaseContainerFrame.cpp
+++ b/layout/generic/nsRubyBaseContainerFrame.cpp
@@ -242,18 +242,18 @@ nsRubyBaseContainerFrame::AddInlinePrefI
       frame->AddInlinePrefISize(aRenderingContext, &data);
       MOZ_ASSERT(data.mPrevLines == 0, "Shouldn't have prev lines");
       sum = std::max(sum, data.mCurrentLine);
     }
   }
   aData->mCurrentLine += sum;
 }
 
-/* virtual */ bool 
-nsRubyBaseContainerFrame::IsFrameOfType(uint32_t aFlags) const 
+/* virtual */ bool
+nsRubyBaseContainerFrame::IsFrameOfType(uint32_t aFlags) const
 {
   if (aFlags & eSupportsCSSTransforms) {
     return false;
   }
   return nsContainerFrame::IsFrameOfType(aFlags &
          ~(nsIFrame::eLineParticipant));
 }
 
--- a/layout/generic/nsRubyFrame.cpp
+++ b/layout/generic/nsRubyFrame.cpp
@@ -101,17 +101,17 @@ FindRubyBaseContainerAncestor(nsIFrame* 
 nsRubyFrame::Reflow(nsPresContext* aPresContext,
                     ReflowOutput& aDesiredSize,
                     const ReflowInput& aReflowInput,
                     nsReflowStatus& aStatus)
 {
   MarkInReflow();
   DO_GLOBAL_REFLOW_COUNT("nsRubyFrame");
   DISPLAY_REFLOW(aPresContext, this, aReflowInput, aDesiredSize, aStatus);
-  
+
   if (!aReflowInput.mLineLayout) {
     NS_ASSERTION(aReflowInput.mLineLayout,
                  "No line layout provided to RubyFrame reflow method.");
     aStatus.Reset();
     return;
   }
 
   // Grab overflow frames from prev-in-flow and its own.
--- a/layout/generic/nsSimplePageSequenceFrame.cpp
+++ b/layout/generic/nsSimplePageSequenceFrame.cpp
@@ -323,17 +323,17 @@ nsSimplePageSequenceFrame::Reflow(nsPres
   // Return our desired size
   // Adjust the reflow size by PrintPreviewScale so the scrollbars end up the
   // correct size
   SetDesiredSize(aDesiredSize, aReflowInput, maxXMost, y);
 
   aDesiredSize.SetOverflowAreasToDesiredBounds();
   FinishAndStoreOverflow(&aDesiredSize);
 
-  // cache the size so we can set the desired size 
+  // cache the size so we can set the desired size
   // for the other reflows that happen
   mSize.width  = maxXMost;
   mSize.height = y;
 
   NS_FRAME_TRACE_REFLOW_OUT("nsSimplePageSequeceFrame::Reflow", aStatus);
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowInput, aDesiredSize);
 }
 
@@ -384,17 +384,17 @@ nsSimplePageSequenceFrame::GetPrintRange
   NS_ENSURE_ARG_POINTER(aToPage);
 
   *aFromPage = mFromPageNum;
   *aToPage   = mToPageNum;
   return NS_OK;
 }
 
 // Helper Function
-void 
+void
 nsSimplePageSequenceFrame::SetPageNumberFormat(const char* aPropName, const char* aDefPropVal, bool aPageNumOnly)
 {
   // Doing this here so we only have to go get these formats once
   nsXPIDLString pageNumberFormat;
   // Now go get the Localized Page Formating String
   nsresult rv =
     nsContentUtils::GetLocalizedString(nsContentUtils::ePRINTING_PROPERTIES,
                                        aPropName, pageNumberFormat);
@@ -541,23 +541,23 @@ nsSimplePageSequenceFrame::DetermineWhet
     if (mPageNum < mFromPageNum) {
       mPrintThisPage = false;
     } else if (mPageNum > mToPageNum) {
       mPageNum++;
       mPrintThisPage = false;
       return;
     } else {
       int32_t length = mPageRanges.Length();
-    
+
       // Page ranges are pairs (start, end)
       if (length && (length % 2 == 0)) {
         mPrintThisPage = false;
-      
+
         int32_t i;
-        for (i = 0; i < length; i += 2) {          
+        for (i = 0; i < length; i += 2) {
           if (mPageRanges[i] <= mPageNum && mPageNum <= mPageRanges[i+1]) {
             mPrintThisPage = true;
             break;
           }
         }
       }
     }
   }
@@ -567,17 +567,17 @@ nsSimplePageSequenceFrame::DetermineWhet
     if (!printOddPages) {
       mPrintThisPage = false;  // don't print odd numbered page
     }
   } else {
     if (!printEvenPages) {
       mPrintThisPage = false;  // don't print even numbered page
     }
   }
-  
+
   if (nsIPrintSettings::kRangeSelection == mPrintRangeType) {
     mPrintThisPage = true;
   }
 }
 
 nsIFrame*
 nsSimplePageSequenceFrame::GetCurrentPageFrame()
 {
@@ -595,17 +595,17 @@ nsSimplePageSequenceFrame::GetCurrentPag
 NS_IMETHODIMP
 nsSimplePageSequenceFrame::PrePrintNextPage(nsITimerCallback* aCallback, bool* aDone)
 {
   nsIFrame* currentPage = GetCurrentPageFrame();
   if (!currentPage) {
     *aDone = true;
     return NS_ERROR_FAILURE;
   }
-  
+
   DetermineWhetherToPrintPage();
   // Nothing to do if the current page doesn't get printed OR rendering to
   // preview. For preview, the `CallPrintCallback` is called from within the
   // HTMLCanvasElement::HandlePrintCallback.
   if (!mPrintThisPage || !PresContext()->IsRootPaginatedDocument()) {
     *aDone = true;
     return NS_OK;
   }
@@ -622,17 +622,17 @@ nsSimplePageSequenceFrame::PrePrintNextP
       // Begin printing of the document
       nsDeviceContext *dc = PresContext()->DeviceContext();
       PR_PL(("\n"));
       PR_PL(("***************** BeginPage *****************\n"));
       rv = dc->BeginPage();
       NS_ENSURE_SUCCESS(rv, rv);
 
       mCalledBeginPage = true;
-      
+
       RefPtr<gfxContext> renderingContext = dc->CreateRenderingContext();
       NS_ENSURE_TRUE(renderingContext, NS_ERROR_OUT_OF_MEMORY);
 
       DrawTarget* drawTarget = renderingContext->GetDrawTarget();
       if (NS_WARN_IF(!drawTarget)) {
         return NS_ERROR_FAILURE;
       }
 
@@ -679,19 +679,19 @@ NS_IMETHODIMP
 nsSimplePageSequenceFrame::ResetPrintCanvasList()
 {
   for (int32_t i = mCurrentCanvasList.Length() - 1; i >= 0 ; i--) {
     HTMLCanvasElement* canvas = mCurrentCanvasList[i];
     canvas->ResetPrintCallback();
   }
 
   mCurrentCanvasList.Clear();
-  mCurrentCanvasListSetup = false; 
+  mCurrentCanvasListSetup = false;
   return NS_OK;
-} 
+}
 
 NS_IMETHODIMP
 nsSimplePageSequenceFrame::PrintNextPage()
 {
   // This method would be very straightforward except that the
   // "Print Selection Only" functionality (which is a broken mess) is
   // integrated here.  The thing to understand is that if we're printing a
   // selection (which may contain multiple ranges) then we only enter this
@@ -699,17 +699,17 @@ nsSimplePageSequenceFrame::PrintNextPage
   // long nsPageFrame instead of multiple nsPageFrames that are sized to fit
   // the printer paper size(!).  Each of the "pages" between the start and end
   // of the selection are printed by offsetting the nsPageContentFrame by the
   // index of the page being printed and then drawing the nsPageContentFrame.
   // This does not work for IFrames.
   //
   // Note: When print al the pages or a page range the printed page shows the
   // actual page number, when printing selection it prints the page number starting
-  // with the first page of the selection. For example if the user has a 
+  // with the first page of the selection. For example if the user has a
   // selection that starts on page 2 and ends on page 3, the page numbers when
   // print are 1 and then two (which is different than printing a page range, where
   // the page numbers would have been 2 and then 3)
 
   nsIFrame* currentPageFrame = GetCurrentPageFrame();
   if (!currentPageFrame) {
     return NS_ERROR_FAILURE;
   }
@@ -809,17 +809,17 @@ nsSimplePageSequenceFrame::DoPageEnd()
     PR_PL(("***************** End Page (DoPageEnd) *****************\n"));
     rv = PresContext()->DeviceContext()->EndPage();
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   ResetPrintCanvasList();
 
   mPageNum++;
-  
+
   return rv;
 }
 
 inline gfx::Matrix4x4
 ComputePageSequenceTransform(nsIFrame* aFrame, float aAppUnitsPerPixel)
 {
   float scale = aFrame->PresContext()->GetPrintPreviewScale();
   return gfx::Matrix4x4::Scaling(scale, scale, 1);
@@ -859,39 +859,39 @@ nsSimplePageSequenceFrame::BuildDisplayL
                          ::ComputePageSequenceTransform));
 
   aLists.Content()->AppendToTop(&content);
 }
 
 //------------------------------------------------------------------------------
 void
 nsSimplePageSequenceFrame::SetPageNumberFormat(const nsAString& aFormatStr, bool aForPageNumOnly)
-{ 
+{
   NS_ASSERTION(mPageData != nullptr, "mPageData string cannot be null!");
 
   if (aForPageNumOnly) {
     mPageData->mPageNumFormat = aFormatStr;
   } else {
     mPageData->mPageNumAndTotalsFormat = aFormatStr;
   }
 }
 
 //------------------------------------------------------------------------------
 void
 nsSimplePageSequenceFrame::SetDateTimeStr(const nsAString& aDateTimeStr)
-{ 
+{
   NS_ASSERTION(mPageData != nullptr, "mPageData string cannot be null!");
 
   mPageData->mDateTimeStr = aDateTimeStr;
 }
 
 //------------------------------------------------------------------------------
 // For Shrink To Fit
 //
-// Return the percentage that the page needs to shrink to 
+// Return the percentage that the page needs to shrink to
 //
 NS_IMETHODIMP
 nsSimplePageSequenceFrame::GetSTFPercent(float& aSTFPercent)
 {
   NS_ENSURE_TRUE(mPageData, NS_ERROR_UNEXPECTED);
   aSTFPercent = mPageData->mShrinkToFitRatio;
   return NS_OK;
 }
--- a/layout/generic/nsSimplePageSequenceFrame.h
+++ b/layout/generic/nsSimplePageSequenceFrame.h
@@ -14,17 +14,17 @@ namespace mozilla {
 namespace dom {
 
 class HTMLCanvasElement;
 
 } // namespace dom
 } // namespace mozilla
 
 //-----------------------------------------------
-// This class maintains all the data that 
+// This class maintains all the data that
 // is used by all the page frame
 // It lives while the nsSimplePageSequenceFrame lives
 class nsSharedPageData {
 public:
   // This object a shared by all the nsPageFrames
   // parented to a SimplePageSequenceFrame
   nsSharedPageData() : mShrinkToFitRatio(1.0f) {}
 
@@ -32,17 +32,17 @@ public:
   nsString    mPageNumFormat;
   nsString    mPageNumAndTotalsFormat;
   nsString    mDocTitle;
   nsString    mDocURL;
   nsFont      mHeadFootFont;
 
   nsSize      mReflowSize;
   nsMargin    mReflowMargin;
-  // Margin for headers and footers; it defaults to 4/100 of an inch on UNIX 
+  // Margin for headers and footers; it defaults to 4/100 of an inch on UNIX
   // and 0 elsewhere; I think it has to do with some inconsistency in page size
   // computations
   nsMargin    mEdgePaperMargin;
 
   nsCOMPtr<nsIPrintSettings> mPrintSettings;
 
   // The scaling ratio we need to apply to make all pages fit horizontally.  It's
   // the minimum "ComputedWidth / OverflowWidth" ratio of all page content frames
@@ -71,17 +71,17 @@ public:
   void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                         const nsRect&           aDirtyRect,
                         const nsDisplayListSet& aLists) override;
 
   // nsIPageSequenceFrame
   NS_IMETHOD SetPageNo(int32_t aPageNo) { return NS_OK;}
   NS_IMETHOD SetSelectionHeight(nscoord aYOffset, nscoord aHeight) override { mYSelOffset = aYOffset; mSelectionHeight = aHeight; return NS_OK; }
   NS_IMETHOD SetTotalNumPages(int32_t aTotal) override { mTotalPages = aTotal; return NS_OK; }
-  
+
   // For Shrink To Fit
   NS_IMETHOD GetSTFPercent(float& aSTFPercent) override;
 
   // Async Printing
   NS_IMETHOD StartPrint(nsPresContext*    aPresContext,
                         nsIPrintSettings* aPrintSettings,
                         const nsAString&  aDocTitle,
                         const nsAString&  aDocURL) override;
--- a/layout/generic/nsSplittableFrame.cpp
+++ b/layout/generic/nsSplittableFrame.cpp
@@ -141,17 +141,17 @@ nsSplittableFrame::SetPrevInFlow(nsIFram
   NS_ASSERTION(!IsInPrevContinuationChain(aFrame, this),
                "creating a loop in continuation chain!");
   mPrevContinuation = aFrame;
   AddStateBits(NS_FRAME_IS_FLUID_CONTINUATION);
 }
 
 nsIFrame* nsSplittableFrame::GetNextInFlow() const
 {
-  return mNextContinuation && (mNextContinuation->GetStateBits() & NS_FRAME_IS_FLUID_CONTINUATION) ? 
+  return mNextContinuation && (mNextContinuation->GetStateBits() & NS_FRAME_IS_FLUID_CONTINUATION) ?
     mNextContinuation : nullptr;
 }
 
 void
 nsSplittableFrame::SetNextInFlow(nsIFrame* aFrame)
 {
   NS_ASSERTION(!aFrame || Type() == aFrame->Type(),
                "setting a next in flow with incorrect type!");
--- a/layout/generic/nsSplittableFrame.h
+++ b/layout/generic/nsSplittableFrame.h
@@ -18,29 +18,29 @@
 class nsSplittableFrame : public nsFrame
 {
 public:
   NS_DECL_ABSTRACT_FRAME(nsSplittableFrame)
 
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
-  
+
   virtual nsSplittableType GetSplittableType() const override;
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
   /*
    * Frame continuations can be either fluid or not:
-   * Fluid continuations ("in-flows") are the result of line breaking, 
+   * Fluid continuations ("in-flows") are the result of line breaking,
    * column breaking, or page breaking.
    * Other (non-fluid) continuations can be the result of BiDi frame splitting.
    * A "flow" is a chain of fluid continuations.
    */
-  
+
   // Get the previous/next continuation, regardless of its type (fluid or non-fluid).
   virtual nsIFrame* GetPrevContinuation() const override;
   virtual nsIFrame* GetNextContinuation() const override;
 
   // Set a previous/next non-fluid continuation.
   virtual void SetPrevContinuation(nsIFrame*) override;
   virtual void SetNextContinuation(nsIFrame*) override;
 
@@ -48,24 +48,24 @@ public:
   virtual nsIFrame* FirstContinuation() const override;
   virtual nsIFrame* LastContinuation() const override;
 
 #ifdef DEBUG
   // Can aFrame2 be reached from aFrame1 by following prev/next continuations?
   static bool IsInPrevContinuationChain(nsIFrame* aFrame1, nsIFrame* aFrame2);
   static bool IsInNextContinuationChain(nsIFrame* aFrame1, nsIFrame* aFrame2);
 #endif
-  
+
   // Get the previous/next continuation, only if it is fluid (an "in-flow").
   nsIFrame* GetPrevInFlow() const;
   nsIFrame* GetNextInFlow() const;
 
   virtual nsIFrame* GetPrevInFlowVirtual() const override { return GetPrevInFlow(); }
   virtual nsIFrame* GetNextInFlowVirtual() const override { return GetNextInFlow(); }
-  
+
   // Set a previous/next fluid continuation.
   virtual void SetPrevInFlow(nsIFrame*) override;
   virtual void SetNextInFlow(nsIFrame*) override;
 
   // Get the first/last frame in the current flow.
   virtual nsIFrame* FirstInFlow() const override;
   virtual nsIFrame* LastInFlow() const override;
 
--- a/layout/generic/nsSubDocumentFrame.cpp
+++ b/layout/generic/nsSubDocumentFrame.cpp
@@ -853,17 +853,17 @@ nsSubDocumentFrame::ReflowCallbackCancel
 nsresult
 nsSubDocumentFrame::AttributeChanged(int32_t aNameSpaceID,
                                      nsIAtom* aAttribute,
                                      int32_t aModType)
 {
   if (aNameSpaceID != kNameSpaceID_None) {
     return NS_OK;
   }
-  
+
   // If the noResize attribute changes, dis/allow frame to be resized
   if (aAttribute == nsGkAtoms::noresize) {
     // Note that we're not doing content type checks, but that's ok -- if
     // they'd fail we will just end up with a null framesetFrame.
     if (mContent->GetParent()->IsHTMLElement(nsGkAtoms::frameset)) {
       nsIFrame* parentFrame = GetParent();
 
       if (parentFrame) {
--- a/layout/generic/nsTextRunTransformations.cpp
+++ b/layout/generic/nsTextRunTransformations.cpp
@@ -208,17 +208,17 @@ MergeCharactersInTextRun(gfxTextRun* aDe
       glyphs.Clear();
       anyMissing = false;
       mergeRunStart = k + 1;
       if (mergeRunStart < stringEnd) {
         mergedGlyph = srcGlyphs[mergeRunStart];
       }
     }
     NS_ASSERTION(glyphs.Length() == 0,
-                 "Leftover glyphs, don't request merging of the last character with its next!");  
+                 "Leftover glyphs, don't request merging of the last character with its next!");
   }
   NS_ASSERTION(offset == aDest->GetLength(), "Bad offset calculations");
 }
 
 gfxTextRunFactory::Parameters
 GetParametersForInner(nsTransformedTextRun* aTextRun,
                       gfx::ShapedTextFlags* aFlags,
                       DrawTarget* aRefDrawTarget)
--- a/layout/generic/nsTextRunTransformations.h
+++ b/layout/generic/nsTextRunTransformations.h
@@ -75,17 +75,17 @@ public:
  */
 class nsCaseTransformTextRunFactory : public nsTransformingTextRunFactory {
 public:
   // We could add an optimization here so that when there is no inner
   // factory, no title-case conversion, and no upper-casing of SZLIG, we override
   // MakeTextRun (after making it virtual in the superclass) and have it
   // just convert the string to uppercase or lowercase and create the textrun
   // via the fontgroup.
-  
+
   // Takes ownership of aInnerTransformTextRunFactory
   explicit nsCaseTransformTextRunFactory(mozilla::UniquePtr<nsTransformingTextRunFactory> aInnerTransformingTextRunFactory,
                                          bool aAllUppercase = false)
     : mInnerTransformingTextRunFactory(Move(aInnerTransformingTextRunFactory)),
       mAllUppercase(aAllUppercase) {}
 
   virtual void RebuildTextRun(nsTransformedTextRun* aTextRun,
                               mozilla::gfx::DrawTarget* aRefDrawTarget,
@@ -134,17 +134,17 @@ public:
          nsTArray<RefPtr<nsTransformedCharStyle>>&& aStyles,
          bool aOwnsFactory);
 
   ~nsTransformedTextRun() {
     if (mOwnsFactory) {
       delete mFactory;
     }
   }
-  
+
   void SetCapitalization(uint32_t aStart, uint32_t aLength,
                          bool* aCapitalization);
   virtual bool SetPotentialLineBreaks(Range aRange,
                                       const uint8_t* aBreakBefore);
   /**
    * Called after SetCapitalization and SetPotentialLineBreaks
    * are done and before we request any data from the textrun. Also always
    * called after a Create.
--- a/layout/generic/nsVideoFrame.h
+++ b/layout/generic/nsVideoFrame.h
@@ -79,17 +79,17 @@ public:
   mozilla::a11y::AccType AccessibleType() override;
 #endif
 
   bool IsFrameOfType(uint32_t aFlags) const override
   {
     return nsSplittableFrame::IsFrameOfType(aFlags &
       ~(nsIFrame::eReplaced | nsIFrame::eReplacedSizing));
   }
-  
+
   nsresult CreateAnonymousContent(nsTArray<ContentInfo>& aElements) override;
   void AppendAnonymousContentTo(nsTArray<nsIContent*>& aElements,
                                 uint32_t aFilters) override;
 
   nsIContent* GetPosterImage() { return mPosterImage; }
 
   // Returns true if we should display the poster. Note that once we show
   // a video frame, the poster will never be displayed again.
--- a/layout/inspector/inCSSValueSearch.cpp
+++ b/layout/inspector/inCSSValueSearch.cpp
@@ -47,45 +47,45 @@ inCSSValueSearch::~inCSSValueSearch()
   nsCSSProps::ReleaseTable();
 }
 
 NS_IMPL_ISUPPORTS(inCSSValueSearch, inISearchProcess, inICSSValueSearch)
 
 ///////////////////////////////////////////////////////////////////////////////
 // inISearchProcess
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetIsActive(bool *aIsActive)
 {
   *aIsActive = mIsActive;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetResultCount(int32_t *aResultCount)
 {
   *aResultCount = mResultCount;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetHoldResults(bool *aHoldResults)
 {
   *aHoldResults = mHoldResults;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SetHoldResults(bool aHoldResults)
 {
   mHoldResults = aHoldResults;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SearchSync()
 {
   InitSearch();
 
   if (!mDocument) {
     return NS_OK;
   }
 
@@ -103,17 +103,17 @@ inCSSValueSearch::SearchSync()
     SearchStyleSheet(sheet, baseURI);
   }
 
   // XXX would be nice to search inline style as well.
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SearchAsync(inISearchObserver *aObserver)
 {
   InitSearch();
   mObserver = aObserver;
 
   return NS_OK;
 }
 
@@ -128,139 +128,139 @@ inCSSValueSearch::SearchStop()
 NS_IMETHODIMP
 inCSSValueSearch::SearchStep(bool* _retval)
 {
 
   return NS_OK;
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetStringResultAt(int32_t aIndex, nsAString& _retval)
 {
   if (mHoldResults) {
     nsAutoString* result = mResults->ElementAt(aIndex);
     _retval = *result;
   } else if (aIndex == mResultCount-1) {
     _retval = mLastResult;
   } else {
     return NS_ERROR_FAILURE;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetIntResultAt(int32_t aIndex, int32_t *_retval)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetUIntResultAt(int32_t aIndex, uint32_t *_retval)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
 // inICSSValueSearch
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetDocument(nsIDOMDocument** aDocument)
 {
   *aDocument = mDocument;
   NS_IF_ADDREF(*aDocument);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SetDocument(nsIDOMDocument* aDocument)
 {
   mDocument = aDocument;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetBaseURL(char16_t** aBaseURL)
 {
   if (!(*aBaseURL = ToNewUnicode(mBaseURL)))
     return NS_ERROR_OUT_OF_MEMORY;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SetBaseURL(const char16_t* aBaseURL)
 {
   mBaseURL.Assign(aBaseURL);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetReturnRelativeURLs(bool* aReturnRelativeURLs)
 {
   *aReturnRelativeURLs = mReturnRelativeURLs;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SetReturnRelativeURLs(bool aReturnRelativeURLs)
 {
   mReturnRelativeURLs = aReturnRelativeURLs;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetNormalizeChromeURLs(bool *aNormalizeChromeURLs)
 {
   *aNormalizeChromeURLs = mNormalizeChromeURLs;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 inCSSValueSearch::SetNormalizeChromeURLs(bool aNormalizeChromeURLs)
 {
   mNormalizeChromeURLs = aNormalizeChromeURLs;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::AddPropertyCriteria(const char16_t *aPropName)
 {
   nsCSSPropertyID prop =
     nsCSSProps::LookupProperty(nsDependentString(aPropName),
                                CSSEnabledState::eIgnoreEnabledState);
   mProperties[mPropertyCount] = prop;
   mPropertyCount++;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::GetTextCriteria(char16_t** aTextCriteria)
 {
   if (!(*aTextCriteria = ToNewUnicode(mTextCriteria)))
     return NS_ERROR_OUT_OF_MEMORY;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inCSSValueSearch::SetTextCriteria(const char16_t* aTextCriteria)
 {
   mTextCriteria.Assign(aTextCriteria);
   return NS_OK;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
 // inCSSValueSearch
 
 nsresult
 inCSSValueSearch::InitSearch()
 {
   if (mHoldResults) {
     mResults = new nsTArray<nsAutoString *>();
   }
-  
+
   mResultCount = 0;
 
   return NS_OK;
 }
 
 nsresult
 inCSSValueSearch::KillSearch(int16_t aResult)
 {
@@ -331,17 +331,17 @@ inCSSValueSearch::SearchRuleList(nsIDOMC
 }
 
 nsresult
 inCSSValueSearch::SearchStyleRule(nsIDOMCSSStyleRule* aStyleRule, nsIURI* aBaseURL)
 {
   nsCOMPtr<nsIDOMCSSStyleDeclaration> decl;
   nsresult rv = aStyleRule->GetStyle(getter_AddRefs(decl));
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   uint32_t length;
   decl->GetLength(&length);
   nsAutoString property, value;
   for (uint32_t i = 0; i < length; ++i) {
     decl->Item(i, property);
     // XXX This probably ought to use GetPropertyCSSValue if it were
     // implemented.
     decl->GetPropertyValue(property, value);
@@ -382,17 +382,17 @@ inCSSValueSearch::EqualizeURL(nsAutoStri
       char16_t* result = new char16_t[len-8];
       const char16_t* src = aURL->get();
       uint32_t i = 9;
       uint32_t milestone = 0;
       uint32_t s = 0;
       while (i < len) {
         if (src[i] == '/') {
           milestone += 1;
-        } 
+        }
         if (milestone != 1) {
           result[i-9-s] = src[i];
         } else {
           s++;
         }
         i++;
       }
       result[i-9-s] = 0;
--- a/layout/inspector/inDOMView.cpp
+++ b/layout/inspector/inDOMView.cpp
@@ -451,28 +451,28 @@ inDOMView::GetLevel(int32_t index, int32
 
 NS_IMETHODIMP
 inDOMView::GetParentIndex(int32_t rowIndex, int32_t *_retval)
 {
   inDOMViewNode* node = nullptr;
   RowToNode(rowIndex, &node);
   if (!node) return NS_ERROR_FAILURE;
 
-  // GetParentIndex returns -1 if there is no parent  
+  // GetParentIndex returns -1 if there is no parent
   *_retval = -1;
-  
+
   inDOMViewNode* checkNode = nullptr;
   int32_t i = rowIndex - 1;
   do {
     nsresult rv = RowToNode(i, &checkNode);
     if (NS_FAILED(rv)) {
       // No parent. Just break out.
       break;
     }
-    
+
     if (checkNode == node->parent) {
       *_retval = i;
       return NS_OK;
     }
     --i;
   } while (checkNode);
 
   return NS_OK;
@@ -638,17 +638,17 @@ inDOMView::AttributeChanged(nsIDocument*
     return;
   }
 
   if (!(mWhatToShow & nsIDOMNodeFilter::SHOW_ATTRIBUTE)) {
     return;
   }
 
   nsCOMPtr<nsIMutationObserver> kungFuDeathGrip(this);
-  
+
   // get the dom attribute node, if there is any
   nsCOMPtr<nsIDOMElement> el(do_QueryInterface(aElement));
   nsCOMPtr<nsIDOMAttr> domAttr;
   nsDependentAtomString attrStr(aAttribute);
   if (aNameSpaceID) {
     nsNameSpaceManager* nsm = nsNameSpaceManager::GetInstance();
     if (!nsm) {
       // we can't find out which attribute we want :(
@@ -799,17 +799,17 @@ inDOMView::ContentInserted(nsIDocument *
   int32_t parentRow = 0;
   if (NS_FAILED(rv = NodeToRow(parent, &parentRow)))
     return;
   inDOMViewNode* parentNode = nullptr;
   if (NS_FAILED(rv = RowToNode(parentRow, &parentNode)))
     return;
 
   nsCOMPtr<nsIMutationObserver> kungFuDeathGrip(this);
-  
+
   if (!parentNode->isOpen) {
     // Parent is not open, so don't bother creating tree rows for the
     // kids.  But do indicate that it's now a container, if needed.
     if (!parentNode->isContainer) {
       parentNode->isContainer = true;
       mTree->InvalidateRow(parentRow);
     }
     return;
@@ -872,39 +872,39 @@ inDOMView::ContentRemoved(nsIDocument *a
   int32_t row = 0;
   if (NS_FAILED(rv = NodeToRow(oldDOMNode, &row)))
     return;
   inDOMViewNode* oldNode;
   if (NS_FAILED(rv = RowToNode(row, &oldNode)))
     return;
 
   nsCOMPtr<nsIMutationObserver> kungFuDeathGrip(this);
-  
+
   // The parent may no longer be a container.  Note that we don't want
   // to access oldNode after calling RemoveNode, so do this now.
   inDOMViewNode* parentNode = oldNode->parent;
   bool isOnlyChild = oldNode->previous == nullptr && oldNode->next == nullptr;
-  
+
   // Keep track of how many rows we are removing.  It's at least one,
   // but if we're open it's more.
   int32_t oldCount = GetRowCount();
-  
+
   if (oldNode->isOpen)
     CollapseNode(row);
 
   RemoveLink(oldNode);
   RemoveNode(row);
 
   if (isOnlyChild) {
     // Fix up the parent
     parentNode->isContainer = false;
     parentNode->isOpen = false;
     mTree->InvalidateRow(NodeToRow(parentNode));
   }
-    
+
   mTree->RowCountChanged(row, GetRowCount() - oldCount);
 }
 
 ///////////////////////////////////////////////////////////////////////
 // inDOMView
 
 //////// NODE MANAGEMENT
 
--- a/layout/inspector/inDeepTreeWalker.cpp
+++ b/layout/inspector/inDeepTreeWalker.cpp
@@ -107,17 +107,17 @@ inDeepTreeWalker::Init(nsIDOMNode* aRoot
 NS_IMETHODIMP
 inDeepTreeWalker::GetRoot(nsIDOMNode** aRoot)
 {
   *aRoot = mRoot;
   NS_IF_ADDREF(*aRoot);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 inDeepTreeWalker::GetWhatToShow(uint32_t* aWhatToShow)
 {
   *aWhatToShow = mWhatToShow;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 inDeepTreeWalker::GetFilter(nsIDOMNodeFilter** aFilter)
--- a/layout/ipc/RenderFrameParent.h
+++ b/layout/ipc/RenderFrameParent.h
@@ -124,17 +124,17 @@ private:
   // manager, because it may have been disconnected from the DOM.
   // It's still OK to *tell* the frame loader that we've painted after
   // it's destroyed; it'll just ignore us, and we won't be able to
   // find an nsIFrame to invalidate.  See ShadowLayersUpdated().
   //
   // Prefer the extra bit of state to null'ing out mFrameLoader in
   // Destroy() so that less code needs to be special-cased for after
   // Destroy().
-  // 
+  //
   // It's possible for mFrameLoader==null and
   // mFrameLoaderDestroyed==false.
   bool mFrameLoaderDestroyed;
 
   bool mAsyncPanZoomEnabled;
   bool mInitted;
 };
 
--- a/layout/mathml/nsIMathMLFrame.h
+++ b/layout/mathml/nsIMathMLFrame.h
@@ -37,23 +37,23 @@ class nsIMathMLFrame
 public:
   NS_DECL_QUERYFRAME_TARGET(nsIMathMLFrame)
 
   // helper to check whether the frame is "space-like", as defined by the spec.
   virtual bool IsSpaceLike() = 0;
 
  /* SUPPORT FOR PRECISE POSITIONING */
  /*====================================================================*/
- 
+
  /* Metrics that _exactly_ enclose the text of the frame.
   * The frame *must* have *already* being reflowed, before you can call
   * the GetBoundingMetrics() method.
   * Note that for a frame with nested children, the bounding metrics
   * will exactly enclose its children. For example, the bounding metrics
-  * of msub is the smallest rectangle that exactly encloses both the 
+  * of msub is the smallest rectangle that exactly encloses both the
   * base and the subscript.
   */
   NS_IMETHOD
   GetBoundingMetrics(nsBoundingMetrics& aBoundingMetrics) = 0;
 
   NS_IMETHOD
   SetBoundingMetrics(const nsBoundingMetrics& aBoundingMetrics) = 0;
 
@@ -72,29 +72,29 @@ public:
   * An embellished frame is treated in a special way. When it receives a
   * Stretch() command, it passes the command to its embellished child and
   * the stretched size is bubbled up from the inner-most <mo> frame. In other
   * words, the stretch command descend through the embellished hierarchy.
   *
   * @param aStretchDirection [in] the direction where to attempt to
   *        stretch.
   * @param aContainerSize [in] struct that suggests the maximumn size for
-  *        the stretched frame. Only member data of the struct that are 
-  *        relevant to the direction are used (the rest is ignored). 
+  *        the stretched frame. Only member data of the struct that are
+  *        relevant to the direction are used (the rest is ignored).
   * @param aDesiredStretchSize [in/out] On input the current size
   *        of the frame, on output the size after stretching.
   */
-  NS_IMETHOD 
+  NS_IMETHOD
   Stretch(mozilla::gfx::DrawTarget* aDrawTarget,
           nsStretchDirection   aStretchDirection,
           nsBoundingMetrics&   aContainerSize,
           mozilla::ReflowOutput& aDesiredStretchSize) = 0;
 
  /* Get the mEmbellishData member variable. */
- 
+
   NS_IMETHOD
   GetEmbellishData(nsEmbellishData& aEmbellishData) = 0;
 
 
  /* SUPPORT FOR SCRIPTING ELEMENTS */
  /*====================================================================*/
 
  /* Get the mPresentationData member variable. */
@@ -168,17 +168,17 @@ public:
   NS_IMETHOD
   UpdatePresentationData(uint32_t        aFlagsValues,
                          uint32_t        aWhichFlags) = 0;
 
  /* UpdatePresentationDataFromChildAt :
   * Sets compression flag on the whole tree. For child frames
   * at aFirstIndex up to aLastIndex, this method sets their
   * compression flags. The update is propagated down the subtrees of each of
-  * these child frames. 
+  * these child frames.
   *
   * @param aFirstIndex [in]
   *        Index of the first child from where the update is propagated.
   *
   * @param aLastIndex [in]
   *        Index of the last child where to stop the update.
   *        A value of -1 means up to last existing child.
   *
@@ -212,17 +212,17 @@ public:
 };
 
 // struct used by a container frame to keep track of its embellishments.
 // By convention, the data that we keep here is bubbled from the embellished
 // hierarchy, and it remains unchanged unless we have to recover from a change
 // that occurs in the embellished hierarchy. The struct remains in its nil
 // state in those frames that are not part of the embellished hierarchy.
 struct nsEmbellishData {
-  // bits used to mark certain properties of our embellishments 
+  // bits used to mark certain properties of our embellishments
   uint32_t flags;
 
   // pointer on the <mo> frame at the core of the embellished hierarchy
   nsIFrame* coreFrame;
 
   // stretchy direction that the nsMathMLChar owned by the core <mo> supports
   nsStretchDirection direction;
 
@@ -264,29 +264,29 @@ struct nsPresentationData {
     baseFrame = nullptr;
   }
 };
 
 // ==========================================================================
 // Bits used for the presentation flags -- these bits are set
 // in their relevant situation as they become available
 
-// This bit is used to emulate TeX rendering. 
+// This bit is used to emulate TeX rendering.
 // Internal use only, cannot be set by the user with an attribute.
 #define NS_MATHML_COMPRESSED                          0x00000002U
 
 // This bit is set if the frame will fire a vertical stretch
 // command on all its (non-empty) children.
 // Tags like <mrow> (or an inferred mrow), mpadded, etc, will fire a
 // vertical stretch command on all their non-empty children
 #define NS_MATHML_STRETCH_ALL_CHILDREN_VERTICALLY     0x00000004U
 
 // This bit is set if the frame will fire a horizontal stretch
 // command on all its (non-empty) children.
-// Tags like munder, mover, munderover, will fire a 
+// Tags like munder, mover, munderover, will fire a
 // horizontal stretch command on all their non-empty children
 #define NS_MATHML_STRETCH_ALL_CHILDREN_HORIZONTALLY   0x00000008U
 
 // This bit is set if the frame is "space-like", as defined by the spec.
 #define NS_MATHML_SPACE_LIKE                          0x00000040U
 
 // This bit is set if a token frame should be rendered with the dtls font
 // feature setting.
@@ -331,17 +331,17 @@ struct nsPresentationData {
 
 #define NS_MATHML_PAINT_BOUNDING_METRICS(_flags) \
   (NS_MATHML_SHOW_BOUNDING_METRICS == ((_flags) & NS_MATHML_SHOW_BOUNDING_METRICS))
 
 // ==========================================================================
 // Bits used for the embellish flags -- these bits are set
 // in their relevant situation as they become available
 
-// This bit is set if the frame is an embellished operator. 
+// This bit is set if the frame is an embellished operator.
 #define NS_MATHML_EMBELLISH_OPERATOR                0x00000001
 
 // This bit is set if the frame is an <mo> frame or an embellihsed
 // operator for which the core <mo> has movablelimits="true"
 #define NS_MATHML_EMBELLISH_MOVABLELIMITS           0x00000002
 
 // This bit is set if the frame is an <mo> frame or an embellihsed
 // operator for which the core <mo> has accent="true"
--- a/layout/mathml/nsMathMLChar.cpp
+++ b/layout/mathml/nsMathMLChar.cpp
@@ -1451,17 +1451,17 @@ nsMathMLChar::StretchEnumContext::EnumCa
       unquotedFamilyName.AppendToString(familyName);
       glyphTable = gGlyphTableList->GetGlyphTableFor(familyName);
     }
   }
 
   if (!openTypeTable) {
     if (context->mTablesTried.Contains(glyphTable))
       return true; // already tried this one
-    
+
     // Only try this table once.
     context->mTablesTried.AppendElement(glyphTable);
   }
 
   // If the unicode table is being used, then search all font families.  If a
   // special table is being used then the font in this family should have the
   // specified glyphs.
   const FontFamilyList& familyList = glyphTable == &gGlyphTableList->mUnicodeTable ?
@@ -1619,17 +1619,17 @@ nsMathMLChar::StretchInternal(nsPresCont
     isVertical ? initialSize.ascent + initialSize.descent
     : initialSize.rightBearing - initialSize.leftBearing;
 
   bool done = false;
 
   if (!maxWidth && !largeop) {
     // Doing Stretch() not GetMaxWidth(),
     // and not a largeop in display mode; we're done if size fits
-    if ((targetSize <= 0) || 
+    if ((targetSize <= 0) ||
         ((isVertical && charSize >= targetSize) ||
          IsSizeOK(charSize, targetSize, aStretchHint)))
       done = true;
   }
 
   //////////////////////////////////////////////////////////////////////////////
   // 2/3. Search for a glyph or set of part glyphs of appropriate size
   //////////////////////////////////////////////////////////////////////////////
@@ -1671,34 +1671,34 @@ nsMathMLChar::StretchInternal(nsPresCont
     }
   }
 
   if (!maxWidth) {
     // Now, we know how we are going to draw the char. Update the member
     // variables accordingly.
     mUnscaledAscent = aDesiredStretchSize.ascent;
   }
-    
+
   if (glyphFound) {
     return NS_OK;
   }
 
   // We did not find a size variant or a glyph assembly to stretch this
   // operator. Verify whether a font with an OpenType MATH table is available
   // and record missing math script otherwise.
   gfxMissingFontRecorder* MFR = aPresContext->MissingFontRecorder();
   if (MFR && !fm->GetThebesFontGroup()->GetFirstMathFont()) {
     MFR->RecordScript(unicode::Script::MATHEMATICAL_NOTATION);
   }
 
   // If the scale_stretchy_operators option is disabled, we are done.
   if (!Preferences::GetBool("mathml.scale_stretchy_operators.enabled", true)) {
     return NS_OK;
   }
-  
+
   // stretchy character
   if (stretchy) {
     if (isVertical) {
       float scale =
         std::min(kMaxScaleFactor, float(aContainerSize.ascent + aContainerSize.descent) /
         (aDesiredStretchSize.ascent + aDesiredStretchSize.descent));
       if (!largeop || scale > 1.0) {
         // make the character match the desired height.
@@ -1856,17 +1856,17 @@ void nsDisplayMathMLSelectionRect::Paint
   drawTarget->FillRect(rect, ColorPattern(ToDeviceColor(bgColor)));
 }
 
 class nsDisplayMathMLCharForeground : public nsDisplayItem {
 public:
   nsDisplayMathMLCharForeground(nsDisplayListBuilder* aBuilder,
                                 nsIFrame* aFrame, nsMathMLChar* aChar,
 				                uint32_t aIndex, bool aIsSelected)
-    : nsDisplayItem(aBuilder, aFrame), mChar(aChar), 
+    : nsDisplayItem(aBuilder, aFrame), mChar(aChar),
       mIndex(aIndex), mIsSelected(aIsSelected) {
     MOZ_COUNT_CTOR(nsDisplayMathMLCharForeground);
   }
 #ifdef NS_BUILD_REFCNT_LOGGING
   virtual ~nsDisplayMathMLCharForeground() {
     MOZ_COUNT_DTOR(nsDisplayMathMLCharForeground);
   }
 #endif
@@ -1879,32 +1879,32 @@ public:
     nsBoundingMetrics bm;
     mChar->GetBoundingMetrics(bm);
     nsRect temp(offset.x + bm.leftBearing, offset.y,
                 bm.rightBearing - bm.leftBearing, bm.ascent + bm.descent);
     // Bug 748220
     temp.Inflate(mFrame->PresContext()->AppUnitsPerDevPixel());
     return temp;
   }
-  
+
   virtual void Paint(nsDisplayListBuilder* aBuilder,
                      gfxContext* aCtx) override
   {
     mChar->PaintForeground(mFrame->PresContext(), *aCtx,
                            ToReferenceFrame(), mIsSelected);
   }
 
   NS_DISPLAY_DECL_NAME("MathMLCharForeground", TYPE_MATHML_CHAR_FOREGROUND)
 
   virtual nsRect GetComponentAlphaBounds(nsDisplayListBuilder* aBuilder) override
   {
     bool snap;
     return GetBounds(aBuilder, &snap);
   }
-  
+
   virtual uint32_t GetPerFrameKey() override {
     return (mIndex << nsDisplayItem::TYPE_BITS)
       | nsDisplayItem::GetPerFrameKey();
   }
 
 private:
   nsMathMLChar* mChar;
   uint32_t      mIndex;
@@ -2345,17 +2345,17 @@ nsMathMLChar::PaintHorizontally(nsPresCo
     // Do this now so that we can get the other dimensions right.
     // (This may not achieve much with non-rectangular transformations.)
     dx = SnapToDevPixels(aThebesContext, oneDevPixel, nsPoint(dx, dy)).x;
     // abcissa passed to Draw
     offset[i] = dx;
     // _cairo_scaled_font_glyph_device_extents rounds outwards to the nearest
     // pixel, so the bm values can include 1 row of faint pixels on each edge.
     // Don't rely on this pixel as it can look like a gap.
-    if (bm.rightBearing - bm.leftBearing >= 2 * oneDevPixel) { 
+    if (bm.rightBearing - bm.leftBearing >= 2 * oneDevPixel) {
       start[i] = dx + bm.leftBearing + oneDevPixel; // left join
       end[i] = dx + bm.rightBearing - oneDevPixel; // right join
     } else {
       // To avoid overlaps, we don't add one pixel on each side when the part
       // is too small.
       start[i] = dx + bm.leftBearing; // left join
       end[i] = dx + bm.rightBearing; // right join
     }
--- a/layout/mathml/nsMathMLContainerFrame.cpp
+++ b/layout/mathml/nsMathMLContainerFrame.cpp
@@ -344,17 +344,17 @@ nsMathMLContainerFrame::Stretch(DrawTarg
         }
 
         // do the stretching...
         mathMLFrame->Stretch(aDrawTarget,
                              aStretchDirection, containerSize, childSize);
         // store the updated metrics
         SaveReflowAndBoundingMetricsFor(baseFrame, childSize,
                                         childSize.mBoundingMetrics);
-        
+
         // Remember the siblings which were _deferred_.
         // Now that this embellished child may have changed, we need to
         // fire the stretch on its siblings using our updated size
 
         if (NS_MATHML_WILL_STRETCH_ALL_CHILDREN_VERTICALLY(mPresentationData.flags) ||
             NS_MATHML_WILL_STRETCH_ALL_CHILDREN_HORIZONTALLY(mPresentationData.flags)) {
 
           nsStretchDirection stretchDir =
@@ -365,17 +365,17 @@ nsMathMLContainerFrame::Stretch(DrawTarg
                                   stretchDir, containerSize);
 
           nsIFrame* childFrame = mFrames.FirstChild();
           while (childFrame) {
             if (childFrame != mPresentationData.baseFrame) {
               mathMLFrame = do_QueryFrame(childFrame);
               if (mathMLFrame) {
                 // retrieve the metrics that was stored at the previous pass
-                GetReflowAndBoundingMetricsFor(childFrame, 
+                GetReflowAndBoundingMetricsFor(childFrame,
                   childSize, childSize.mBoundingMetrics);
                 // do the stretching...
                 mathMLFrame->Stretch(aDrawTarget, stretchDir,
                                      containerSize, childSize);
                 // store the updated metrics
                 SaveReflowAndBoundingMetricsFor(childFrame, childSize,
                                                 childSize.mBoundingMetrics);
               }
@@ -818,28 +818,28 @@ nsMathMLContainerFrame::ReflowChild(nsIF
                                     nsPresContext*           aPresContext,
                                     ReflowOutput&     aDesiredSize,
                                     const ReflowInput& aReflowInput,
                                     nsReflowStatus&          aStatus)
 {
   // Having foreign/hybrid children, e.g., from html markups, is not defined by
   // the MathML spec. But it can happen in practice, e.g., <html:img> allows us
   // to do some cool demos... or we may have a child that is an nsInlineFrame
-  // from a generated content such as :before { content: open-quote } or 
+  // from a generated content such as :before { content: open-quote } or
   // :after { content: close-quote }. Unfortunately, the other frames out-there
   // may expect their own invariants that are not met when we mix things.
   // Hence we do not claim their support, but we will nevertheless attempt to keep
   // them in the flow, if we can get their desired size. We observed that most
   // frames may be reflowed generically, but nsInlineFrames need extra care.
 
 #ifdef DEBUG
   nsInlineFrame* inlineFrame = do_QueryFrame(aChildFrame);
   NS_ASSERTION(!inlineFrame, "Inline frames should be wrapped in blocks");
 #endif
-  
+
   nsContainerFrame::
          ReflowChild(aChildFrame, aPresContext, aDesiredSize, aReflowInput,
                      0, 0, NS_FRAME_NO_MOVE_FRAME, aStatus);
 
   if (aDesiredSize.BlockStartAscent() == ReflowOutput::ASK_FOR_BASELINE) {
     // This will be suitable for inline frames, which are wrapped in a block.
     nscoord ascent;
     WritingMode wm = aDesiredSize.GetWritingMode();
@@ -907,18 +907,18 @@ nsMathMLContainerFrame::Reflow(nsPresCon
   DrawTarget* drawTarget = aReflowInput.mRenderingContext->GetDrawTarget();
 
   if (!NS_MATHML_IS_EMBELLISH_OPERATOR(mEmbellishData.flags) &&
       (NS_MATHML_WILL_STRETCH_ALL_CHILDREN_VERTICALLY(mPresentationData.flags) ||
        NS_MATHML_WILL_STRETCH_ALL_CHILDREN_HORIZONTALLY(mPresentationData.flags))) {
 
     // get the stretchy direction
     nsStretchDirection stretchDir =
-      NS_MATHML_WILL_STRETCH_ALL_CHILDREN_VERTICALLY(mPresentationData.flags) 
-      ? NS_STRETCH_DIRECTION_VERTICAL 
+      NS_MATHML_WILL_STRETCH_ALL_CHILDREN_VERTICALLY(mPresentationData.flags)
+      ? NS_STRETCH_DIRECTION_VERTICAL
       : NS_STRETCH_DIRECTION_HORIZONTAL;
 
     // what size should we use to stretch our stretchy children
     // We don't use STRETCH_CONSIDER_ACTUAL_SIZE -- because our size is not known yet
     // We don't use STRETCH_CONSIDER_EMBELLISHMENTS -- because we don't want to
     // include them in the caculations of the size of stretchy elements
     nsBoundingMetrics containerSize;
     GetPreferredStretchSize(drawTarget, 0, stretchDir, containerSize);
@@ -1048,17 +1048,17 @@ nsMathMLContainerFrame::GetIntrinsicISiz
 nsMathMLContainerFrame::MeasureForWidth(DrawTarget* aDrawTarget,
                                         ReflowOutput& aDesiredSize)
 {
   return Place(aDrawTarget, false, aDesiredSize);
 }
 
 
 // see spacing table in Chapter 18, TeXBook (p.170)
-// Our table isn't quite identical to TeX because operators have 
+// Our table isn't quite identical to TeX because operators have
 // built-in values for lspace & rspace in the Operator Dictionary.
 static int32_t kInterFrameSpacingTable[eMathMLFrameType_COUNT][eMathMLFrameType_COUNT] =
 {
   // in units of muspace.
   // upper half of the byte is set if the
   // spacing is not to be used for scriptlevel > 0
 
   /*           Ord  OpOrd OpInv OpUsr Inner Italic Upright */
@@ -1078,17 +1078,17 @@ static int32_t kInterFrameSpacingTable[e
     space_ = 0;                                                         \
   else {                                                                \
     space_ = kInterFrameSpacingTable[frametype1_][frametype2_];         \
     space_ = (scriptlevel_ > 0 && (space_ & 0xF0))                      \
       ? 0 /* spacing is disabled */                                     \
       : space_ & 0x0F;                                                  \
   }                                                                     \
 
-// This function computes the inter-space between two frames. However, 
+// This function computes the inter-space between two frames. However,
 // since invisible operators need special treatment, the inter-space may
 // be delayed when an invisible operator is encountered. In this case,
 // the function will carry the inter-space forward until it is determined
 // that it can be applied properly (i.e., until we encounter a visible
 // frame where to decide whether to accept or reject the inter-space).
 // aFromFrameType: remembers the frame when the carry-forward initiated.
 // aCarrySpace: keeps track of the inter-space that is delayed.
 // @returns: current inter-space (which is 0 when the true inter-space is
@@ -1247,17 +1247,17 @@ private:
       // there first.
       if (!mRTL) {
         leftCorrection = 0;
       } else {
         rightCorrection = 0;
       }
     }
     // add left correction -- this fixes the problem of the italic 'f'
-    // e.g., <mo>q</mo> <mi>f</mi> <mo>I</mo> 
+    // e.g., <mo>q</mo> <mi>f</mi> <mo>I</mo>
     mX += leftCorrection;
     mItalicCorrection = rightCorrection;
   }
 };
 
 /* virtual */ nsresult
 nsMathMLContainerFrame::Place(DrawTarget*          aDrawTarget,
                               bool                 aPlaceOrigin,
@@ -1444,17 +1444,17 @@ nsMathMLContainerFrame::TransmitAutomati
   //   * one of the elements mstyle, mphantom, or mpadded, such that an mrow
   //     containing the same arguments would be an embellished operator;
   //   * an mrow whose arguments consist (in any order) of one embellished
   //     operator and zero or more space-like elements.
   //
   nsIFrame *childFrame, *baseFrame;
   bool embellishedOpFound = false;
   nsEmbellishData embellishData;
-  
+
   for (childFrame = PrincipalChildList().FirstChild();
        childFrame;
        childFrame = childFrame->GetNextSibling()) {
     nsIMathMLFrame* mathMLFrame = do_QueryFrame(childFrame);
     if (!mathMLFrame) break;
     if (!mathMLFrame->IsSpaceLike()) {
       if (embellishedOpFound) break;
       baseFrame = childFrame;
@@ -1519,17 +1519,17 @@ nsMathMLContainerFrame::ReportErrorToCon
                                          nsContentUtils::eMATHML_PROPERTIES,
                                          errorMsgId, aParams, aParamCount);
 }
 
 nsresult
 nsMathMLContainerFrame::ReportParseError(const char16_t* aAttribute,
                                          const char16_t* aValue)
 {
-  const char16_t* argv[] = 
+  const char16_t* argv[] =
     { aValue, aAttribute, mContent->NodeInfo()->NameAtom()->GetUTF16String() };
   return ReportErrorToConsole("AttributeParsingError", argv, 3);
 }
 
 nsresult
 nsMathMLContainerFrame::ReportChildCountError()
 {
   const char16_t* arg = mContent->NodeInfo()->NameAtom()->GetUTF16String();
--- a/layout/mathml/nsMathMLContainerFrame.h
+++ b/layout/mathml/nsMathMLContainerFrame.h
@@ -10,25 +10,25 @@
 #include "nsContainerFrame.h"
 #include "nsBlockFrame.h"
 #include "nsInlineFrame.h"
 #include "nsMathMLOperators.h"
 #include "nsMathMLFrame.h"
 #include "mozilla/Likely.h"
 
 /*
- * Base class for MathML container frames. It acts like an inferred 
- * mrow. By default, this frame uses its Reflow() method to lay its 
+ * Base class for MathML container frames. It acts like an inferred
+ * mrow. By default, this frame uses its Reflow() method to lay its
  * children horizontally and ensure that their baselines are aligned.
  * The Reflow() method relies upon Place() to position children.
  * By overloading Place() in derived classes, it is therefore possible
  * to position children in various customized ways.
  */
 
-// Options for the preferred size at which to stretch our stretchy children 
+// Options for the preferred size at which to stretch our stretchy children
 #define STRETCH_CONSIDER_ACTUAL_SIZE    0x00000001 // just use our current size
 #define STRETCH_CONSIDER_EMBELLISHMENTS 0x00000002 // size calculations include embellishments
 
 class nsMathMLContainerFrame : public nsContainerFrame,
                                public nsMathMLFrame
 {
   friend class nsMathMLmfencedFrame;
 public:
@@ -133,32 +133,32 @@ public:
   // 2. If the MathML frame class has cached automatic data that depends on
   //    the attribute:
   //    2a. If the automatic data to update resides only within the descendants,
   //        we just re-layout them using ReLayoutChildren(this);
   //        (e.g., this happens with <ms>).
   //    2b. If the automatic data to update affects us in some way, we ask our parent
   //        to re-layout its children using ReLayoutChildren(mParent);
   //        Therefore, there is an overhead here in that our siblings are re-laid
-  //        too (e.g., this happens with <munder>, <mover>, <munderover>). 
+  //        too (e.g., this happens with <munder>, <mover>, <munderover>).
   virtual nsresult
   AttributeChanged(int32_t         aNameSpaceID,
                    nsIAtom*        aAttribute,
                    int32_t         aModType) override;
 
   // helper function to apply mirroring to a horizontal coordinate, if needed.
   nscoord
   MirrorIfRTL(nscoord aParentWidth, nscoord aChildWidth, nscoord aChildLeading)
   {
     return (StyleVisibility()->mDirection ?
             aParentWidth - aChildWidth - aChildLeading : aChildLeading);
   }
 
   // --------------------------------------------------------------------------
-  // Additional methods 
+  // Additional methods
 
 protected:
   /* Place :
    * This method is used to measure or position child frames and other
    * elements.  It may be called any number of times with aPlaceOrigin
    * false to measure, and the final call of the Reflow process before
    * returning from Reflow() or Stretch() will have aPlaceOrigin true
    * to position the elements.
@@ -222,17 +222,17 @@ protected:
   TransmitAutomaticDataForMrowLikeElement();
 
 public:
   // error handlers to provide a visual feedback to the user when an error
   // (typically invalid markup) was encountered during reflow.
   nsresult
   ReflowError(DrawTarget* aDrawTarget, ReflowOutput& aDesiredSize);
   /*
-   * Helper to call ReportErrorToConsole for parse errors involving 
+   * Helper to call ReportErrorToConsole for parse errors involving
    * attribute/value pairs.
    * @param aAttribute The attribute for which the parse error occured.
    * @param aValue The value for which the parse error occured.
    */
   nsresult
   ReportParseError(const char16_t*           aAttribute,
                    const char16_t*           aValue);
 
--- a/layout/mathml/nsMathMLFrame.cpp
+++ b/layout/mathml/nsMathMLFrame.cpp
@@ -30,21 +30,21 @@ nsMathMLFrame::GetMathMLFrameType()
   if (mEmbellishData.coreFrame)
     return GetMathMLFrameTypeFor(mEmbellishData.coreFrame);
 
   // if it has a prescribed base, fetch the type from there
   if (mPresentationData.baseFrame)
     return GetMathMLFrameTypeFor(mPresentationData.baseFrame);
 
   // everything else is treated as ordinary (mapped to 'Ord' in TeX)
-  return eMathMLFrameType_Ordinary;  
+  return eMathMLFrameType_Ordinary;
 }
 
 NS_IMETHODIMP
-nsMathMLFrame::InheritAutomaticData(nsIFrame* aParent) 
+nsMathMLFrame::InheritAutomaticData(nsIFrame* aParent)
 {
   mEmbellishData.flags = 0;
   mEmbellishData.coreFrame = nullptr;
   mEmbellishData.direction = NS_STRETCH_DIRECTION_UNSUPPORTED;
   mEmbellishData.leadingSpace = 0;
   mEmbellishData.trailingSpace = 0;
 
   mPresentationData.flags = 0;
@@ -85,17 +85,17 @@ nsMathMLFrame::UpdatePresentationData(ui
     } else {
       mPresentationData.flags &= ~NS_MATHML_DTLS;
     }
   }
   return NS_OK;
 }
 
 // Helper to give a style context suitable for doing the stretching of
-// a MathMLChar. Frame classes that use this should ensure that the 
+// a MathMLChar. Frame classes that use this should ensure that the
 // extra leaf style contexts given to the MathMLChars are accessible to
 // the Style System via the Get/Set AdditionalStyleContext() APIs.
 /* static */ void
 nsMathMLFrame::ResolveMathMLCharStyle(nsPresContext*  aPresContext,
                                       nsIContent*      aContent,
                                       nsStyleContext*  aParentStyleContext,
                                       nsMathMLChar*    aMathMLChar)
 {
@@ -150,17 +150,17 @@ nsMathMLFrame::GetPresentationDataFrom(n
     }
     // stop if the caller doesn't want to lookup beyond the frame
     if (!aClimbTree) {
       break;
     }
     // stop if we reach the root <math> tag
     nsIContent* content = frame->GetContent();
     NS_ASSERTION(content || !frame->GetParent(), // no assert for the root
-                 "dangling frame without a content node"); 
+                 "dangling frame without a content node");
     if (!content)
       break;
 
     if (content->IsMathMLElement(nsGkAtoms::math)) {
       break;
     }
     frame = frame->GetParent();
   }
@@ -265,17 +265,17 @@ nsMathMLFrame::ParseNumericValue(const n
 
   if (unit == eCSSUnit_Percent || unit == eCSSUnit_Number) {
     // Relative units. A multiple of the default length value is used.
     *aLengthValue = NSToCoordRound(*aLengthValue * (unit == eCSSUnit_Percent ?
                                                     cssValue.GetPercentValue() :
                                                     cssValue.GetFloatValue()));
     return;
   }
-  
+
   // Absolute units.
   *aLengthValue = CalcLength(aPresContext, aStyleContext, cssValue,
                              aFontSizeInflation);
 }
 
 #if defined(DEBUG) && defined(SHOW_BOUNDING_BOX)
 class nsDisplayMathMLBoundingMetrics : public nsDisplayItem {
 public:
@@ -309,17 +309,17 @@ void nsDisplayMathMLBoundingMetrics::Pai
 
 void
 nsMathMLFrame::DisplayBoundingMetrics(nsDisplayListBuilder* aBuilder,
                                       nsIFrame* aFrame, const nsPoint& aPt,
                                       const nsBoundingMetrics& aMetrics,
                                       const nsDisplayListSet& aLists) {
   if (!NS_MATHML_PAINT_BOUNDING_METRICS(mPresentationData.flags))
     return;
-    
+
   nscoord x = aPt.x + aMetrics.leftBearing;
   nscoord y = aPt.y - aMetrics.ascent;
   nscoord w = aMetrics.rightBearing - aMetrics.leftBearing;
   nscoord h = aMetrics.ascent + aMetrics.descent;
 
   aLists.Content()->AppendNewToTop(new (aBuilder)
       nsDisplayMathMLBoundingMetrics(aBuilder, aFrame, nsRect(x,y,w,h)));
 }
--- a/layout/mathml/nsMathMLFrame.h
+++ b/layout/mathml/nsMathMLFrame.h
@@ -111,17 +111,17 @@ public:
                          nsIContent*      aContent,
                          nsStyleContext*  aParenStyleContext,
                          nsMathMLChar*    aMathMLChar);
 
   // helper to get the mEmbellishData of a frame
   // The MathML REC precisely defines an "embellished operator" as:
   // - an <mo> element;
   // - or one of the elements <msub>, <msup>, <msubsup>, <munder>, <mover>,
-  //   <munderover>, <mmultiscripts>, <mfrac>, or <semantics>, whose first 
+  //   <munderover>, <mmultiscripts>, <mfrac>, or <semantics>, whose first
   //   argument exists and is an embellished operator;
   //- or one of the elements <mstyle>, <mphantom>, or <mpadded>, such that
   //   an <mrow> containing the same arguments would be an embellished
   //   operator;
   // - or an <maction> element whose selected subexpression exists and is an
   //   embellished operator;
   // - or an <mrow> whose arguments consist (in any order) of one embellished
   //   operator and zero or more spacelike elements.
@@ -144,17 +144,17 @@ public:
   // @post aLengthValue is the length value computed from the attribute.
   static void ParseNumericValue(const nsString&   aString,
                                 nscoord*          aLengthValue,
                                 uint32_t          aFlags,
                                 nsPresContext*    aPresContext,
                                 nsStyleContext*   aStyleContext,
                                 float             aFontSizeInflation);
 
-  static nscoord 
+  static nscoord
   CalcLength(nsPresContext*   aPresContext,
              nsStyleContext*   aStyleContext,
              const nsCSSValue& aCSSValue,
              float             aFontSizeInflation);
 
   static eMathMLFrameType
   GetMathMLFrameTypeFor(nsIFrame* aFrame)
   {
@@ -188,61 +188,61 @@ public:
     }
     aLeftItalicCorrection = -aBoundingMetrics.leftBearing;
     if (0 > aLeftItalicCorrection) {
       aLeftItalicCorrection = 0;
     }
   }
 
   // helper methods for getting sup/subdrop's from a child
-  static void 
+  static void
   GetSubDropFromChild(nsIFrame*       aChild,
                       nscoord&        aSubDrop,
-                      float           aFontSizeInflation) 
+                      float           aFontSizeInflation)
   {
     RefPtr<nsFontMetrics> fm =
       nsLayoutUtils::GetFontMetricsForFrame(aChild, aFontSizeInflation);
     GetSubDrop(fm, aSubDrop);
   }
 
-  static void 
+  static void
   GetSupDropFromChild(nsIFrame*       aChild,
                       nscoord&        aSupDrop,
-                      float           aFontSizeInflation) 
+                      float           aFontSizeInflation)
   {
     RefPtr<nsFontMetrics> fm =
       nsLayoutUtils::GetFontMetricsForFrame(aChild, aFontSizeInflation);
     GetSupDrop(fm, aSupDrop);
   }
 
   static void
   GetSkewCorrectionFromChild(nsIFrame*       aChild,
-                             nscoord&        aSkewCorrection) 
+                             nscoord&        aSkewCorrection)
   {
     // default is 0
     // individual classes should over-ride this method if necessary
     aSkewCorrection = 0;
   }
 
   // 2 levels of subscript shifts
   static void
-  GetSubScriptShifts(nsFontMetrics* fm, 
-                     nscoord&        aSubScriptShift1, 
+  GetSubScriptShifts(nsFontMetrics* fm,
+                     nscoord&        aSubScriptShift1,
                      nscoord&        aSubScriptShift2)
   {
     nscoord xHeight = fm->XHeight();
     aSubScriptShift1 = NSToCoordRound(150.000f/430.556f * xHeight);
     aSubScriptShift2 = NSToCoordRound(247.217f/430.556f * xHeight);
   }
 
   // 3 levels of superscript shifts
   static void
-  GetSupScriptShifts(nsFontMetrics* fm, 
-                     nscoord&        aSupScriptShift1, 
-                     nscoord&        aSupScriptShift2, 
+  GetSupScriptShifts(nsFontMetrics* fm,
+                     nscoord&        aSupScriptShift1,
+                     nscoord&        aSupScriptShift2,
                      nscoord&        aSupScriptShift3)
   {
     nscoord xHeight = fm->XHeight();
     aSupScriptShift1 = NSToCoordRound(412.892f/430.556f * xHeight);
     aSupScriptShift2 = NSToCoordRound(362.892f/430.556f * xHeight);
     aSupScriptShift3 = NSToCoordRound(288.889f/430.556f * xHeight);
   }
 
@@ -260,30 +260,30 @@ public:
   GetSupDrop(nsFontMetrics* fm,
              nscoord&        aSupDrop)
   {
     nscoord xHeight = fm->XHeight();
     aSupDrop = NSToCoordRound(386.108f/430.556f * xHeight);
   }
 
   static void
-  GetNumeratorShifts(nsFontMetrics* fm, 
-                     nscoord&        numShift1, 
-                     nscoord&        numShift2, 
+  GetNumeratorShifts(nsFontMetrics* fm,
+                     nscoord&        numShift1,
+                     nscoord&        numShift2,
                      nscoord&        numShift3)
   {
     nscoord xHeight = fm->XHeight();
     numShift1 = NSToCoordRound(676.508f/430.556f * xHeight);
     numShift2 = NSToCoordRound(393.732f/430.556f * xHeight);
     numShift3 = NSToCoordRound(443.731f/430.556f * xHeight);
   }
 
   static void
-  GetDenominatorShifts(nsFontMetrics* fm, 
-                       nscoord&        denShift1, 
+  GetDenominatorShifts(nsFontMetrics* fm,
+                       nscoord&        denShift1,
                        nscoord&        denShift2)
   {
     nscoord xHeight = fm->XHeight();
     denShift1 = NSToCoordRound(685.951f/430.556f * xHeight);
     denShift2 = NSToCoordRound(344.841f/430.556f * xHeight);
   }
 
   static void
@@ -301,17 +301,17 @@ public:
   static void
   GetAxisHeight (nsFontMetrics* fm,
                  nscoord&        axisHeight)
   {
     axisHeight = NSToCoordRound(250.000f/430.556f * fm->XHeight());
   }
 
   static void
-  GetBigOpSpacings(nsFontMetrics* fm, 
+  GetBigOpSpacings(nsFontMetrics* fm,
                    nscoord&        bigOpSpacing1,
                    nscoord&        bigOpSpacing2,
                    nscoord&        bigOpSpacing3,
                    nscoord&        bigOpSpacing4,
                    nscoord&        bigOpSpacing5)
   {
     nscoord xHeight = fm->XHeight();
     bigOpSpacing1 = NSToCoordRound(111.111f/430.556f * xHeight);
@@ -365,17 +365,17 @@ protected:
                   nsIFrame* aFrame, const nsRect& aRect,
                   const nsDisplayListSet& aLists);
 
   // information about the presentation policy of the frame
   nsPresentationData mPresentationData;
 
   // information about a container that is an embellished operator
   nsEmbellishData mEmbellishData;
-  
+
   // Metrics that _exactly_ enclose the text of the frame
   nsBoundingMetrics mBoundingMetrics;
-  
+
   // Reference point of the frame: mReference.y is the baseline
-  nsPoint mReference; 
+  nsPoint mReference;
 };
 
 #endif /* nsMathMLFrame_h___ */
--- a/layout/mathml/nsMathMLOperators.cpp
+++ b/layout/mathml/nsMathMLOperators.cpp
@@ -70,17 +70,17 @@ static void
 SetProperty(OperatorData* aOperatorData,
             nsString      aName,
             nsString      aValue)
 {
   if (aName.IsEmpty() || aValue.IsEmpty())
     return;
 
   // XXX These ones are not kept in the dictionary
-  // Support for these requires nsString member variables 
+  // Support for these requires nsString member variables
   // maxsize (default: infinity)
   // minsize (default: 1)
 
   if (aName.EqualsLiteral("direction")) {
     if (aValue.EqualsLiteral("vertical"))
       aOperatorData->mFlags |= NS_MATHML_OPERATOR_DIRECTION_VERTICAL;
     else if (aValue.EqualsLiteral("horizontal"))
       aOperatorData->mFlags |= NS_MATHML_OPERATOR_DIRECTION_HORIZONTAL;
--- a/layout/mathml/nsMathMLOperators.h
+++ b/layout/mathml/nsMathMLOperators.h
@@ -63,30 +63,30 @@ public:
   static void AddRefTable(void);
   static void ReleaseTable(void);
   static void CleanUp();
 
   // LookupOperator:
   // Given the string value of an operator and its form (last two bits of flags),
   // this method returns true if the operator is found in the Operator Dictionary.
   // Attributes of the operator are returned in the output parameters.
-  // If the operator is not found under the supplied form but is found under a 
+  // If the operator is not found under the supplied form but is found under a
   // different form, the method returns true as well. The caller can test the
   // output parameter aFlags to know exactly under which form the operator was
   // found in the Operator Dictionary.
   static bool
   LookupOperator(const nsString&       aOperator,
                  const nsOperatorFlags aForm,
                  nsOperatorFlags*      aFlags,
                  float*                aLeadingSpace,
                  float*                aTrailingSpace);
 
    // LookupOperators:
    // Helper to return all the forms under which an operator is listed in the
-   // Operator Dictionary. The caller must pass arrays of size 4, and use 
+   // Operator Dictionary. The caller must pass arrays of size 4, and use
    // aFlags[NS_MATHML_OPERATOR_FORM_{INFIX|POSTFIX|PREFIX}],
    // aLeadingSpace[], etc, to access the attributes of the operator under a
    // particular form. If the operator wasn't found under a form, its entry
    // aFlags[form] is set to zero.
    static void
    LookupOperators(const nsString&       aOperator,
                    nsOperatorFlags*      aFlags,
                    float*                aLeadingSpace,
--- a/layout/mathml/nsMathMLSelectedFrame.h
+++ b/layout/mathml/nsMathMLSelectedFrame.h
@@ -48,19 +48,19 @@ public:
   virtual nsQueryFrame::FrameIID GetFrameId() override = 0;
 
 protected:
   nsMathMLSelectedFrame(nsStyleContext* aContext, ClassID aID) :
     nsMathMLContainerFrame(aContext, aID),
     mSelectedFrame(nullptr),
     mInvalidMarkup(false) {}
   virtual ~nsMathMLSelectedFrame();
-  
+
   virtual nsIFrame* GetSelectedFrame() = 0;
   nsIFrame*       mSelectedFrame;
 
   bool            mInvalidMarkup;
-  
+
 private:
   void* operator new(size_t, nsIPresShell*) MOZ_MUST_OVERRIDE = delete;
 };
 
 #endif /* nsMathMLSelectedFrame_h___ */
--- a/layout/mathml/nsMathMLmactionFrame.cpp
+++ b/layout/mathml/nsMathMLmactionFrame.cpp
@@ -38,17 +38,17 @@ enum nsMactionActionTypes {
 // helper function to parse actiontype attribute
 static int32_t
 GetActionType(nsIContent* aContent)
 {
   nsAutoString value;
 
   if (aContent) {
     if (!aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::actiontype_, value))
-      return NS_MATHML_ACTION_TYPE_NONE; 
+      return NS_MATHML_ACTION_TYPE_NONE;
   }
 
   if (value.EqualsLiteral("toggle"))
     return NS_MATHML_ACTION_TYPE_TOGGLE;
   if (value.EqualsLiteral("statusline"))
     return NS_MATHML_ACTION_TYPE_STATUSLINE;
   if (value.EqualsLiteral("tooltip"))
     return NS_MATHML_ACTION_TYPE_TOOLTIP;
@@ -98,68 +98,68 @@ nsMathMLmactionFrame::ChildListChanged(i
   // update cached values
   mChildCount = -1;
   mSelectedFrame = nullptr;
 
   return nsMathMLSelectedFrame::ChildListChanged(aModType);
 }
 
 // return the frame whose number is given by the attribute selection="number"
-nsIFrame* 
+nsIFrame*
 nsMathMLmactionFrame::GetSelectedFrame()
 {
   nsAutoString value;
-  int32_t selection; 
+  int32_t selection;
 
-  if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) == 
+  if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) ==
        NS_MATHML_ACTION_TYPE_CLASS_ERROR) {
     mSelection = -1;
     mInvalidMarkup = true;
     mSelectedFrame = nullptr;
     return mSelectedFrame;
   }
 
   // Selection is not applied to tooltip and statusline.
   // Thereby return the first child.
-  if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) == 
+  if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) ==
        NS_MATHML_ACTION_TYPE_CLASS_IGNORE_SELECTION) {
     // We don't touch mChildCount here. It's incorrect to assign it 1,
     // and it's inefficient to count the children. It's fine to leave
     // it be equal -1 because it's not used with other actiontypes.
     mSelection = 1;
     mInvalidMarkup = false;
     mSelectedFrame = mFrames.FirstChild();
     return mSelectedFrame;
   }
 
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::selection_, value);
   if (!value.IsEmpty()) {
     nsresult errorCode;
     selection = value.ToInteger(&errorCode);
-    if (NS_FAILED(errorCode)) 
+    if (NS_FAILED(errorCode))
       selection = 1;
   }
   else selection = 1; // default is first frame
 
   if (-1 != mChildCount) { // we have been in this function before...
     // cater for invalid user-supplied selection
     if (selection > mChildCount || selection < 1)
       selection = -1;
     // quick return if it is identical with our cache
-    if (selection == mSelection) 
+    if (selection == mSelection)
       return mSelectedFrame;
   }
 
   // get the selected child and cache new values...
   int32_t count = 0;
   nsIFrame* childFrame = mFrames.FirstChild();
   while (childFrame) {
-    if (!mSelectedFrame) 
+    if (!mSelectedFrame)
       mSelectedFrame = childFrame; // default is first child
-    if (++count == selection) 
+    if (++count == selection)
       mSelectedFrame = childFrame;
 
     childFrame = childFrame->GetNextSibling();
   }
   // cater for invalid user-supplied selection
   if (selection > count || selection < 1)
     selection = -1;
 
@@ -206,37 +206,37 @@ nsMathMLmactionFrame::AttributeChanged(i
     mActionType = GetActionType(mContent);
 
     // Initiate a reflow when actiontype classes are different.
     if ((oldActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) !=
           (mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK)) {
       needsReflow = true;
     }
   } else if (aAttribute == nsGkAtoms::selection_) {
-    if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) == 
+    if ((mActionType & NS_MATHML_ACTION_TYPE_CLASS_BITMASK) ==
          NS_MATHML_ACTION_TYPE_CLASS_USE_SELECTION) {
       needsReflow = true;
     }
   } else {
     // let the base class handle other attribute changes
-    return 
-      nsMathMLContainerFrame::AttributeChanged(aNameSpaceID, 
+    return
+      nsMathMLContainerFrame::AttributeChanged(aNameSpaceID,
                                                aAttribute, aModType);
   }
 
   if (needsReflow) {
     PresContext()->PresShell()->
       FrameNeedsReflow(this, nsIPresShell::eTreeChange, NS_FRAME_IS_DIRTY);
   }
 
   return NS_OK;
 }
 
 // ################################################################
-// Event handlers 
+// Event handlers
 // ################################################################
 
 NS_IMPL_ISUPPORTS(nsMathMLmactionFrame::MouseListener,
                   nsIDOMEventListener)
 
 
 // helper to show a msg on the status bar
 // curled from nsPluginFrame.cpp ...
--- a/layout/mathml/nsMathMLmactionFrame.h
+++ b/layout/mathml/nsMathMLmactionFrame.h
@@ -56,21 +56,21 @@ private:
 
     nsMathMLmactionFrame* mOwner;
   };
 
 protected:
   explicit nsMathMLmactionFrame(nsStyleContext* aContext) :
     nsMathMLSelectedFrame(aContext, kClassID) {}
   virtual ~nsMathMLmactionFrame();
-  
+
 private:
   int32_t         mActionType;
   int32_t         mChildCount;
   int32_t         mSelection;
   RefPtr<MouseListener> mListener;
 
   // helper to return the frame for the attribute selection="number"
-  nsIFrame* 
+  nsIFrame*
   GetSelectedFrame() override;
 };
 
 #endif /* nsMathMLmactionFrame_h___ */
--- a/layout/mathml/nsMathMLmencloseFrame.cpp
+++ b/layout/mathml/nsMathMLmencloseFrame.cpp
@@ -185,17 +185,17 @@ nsMathMLmencloseFrame::InheritAutomaticD
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsMathMLmencloseFrame::TransmitAutomaticData()
 {
   if (IsToDraw(NOTATION_RADICAL)) {
-    // The TeXBook (Ch 17. p.141) says that \sqrt is cramped 
+    // The TeXBook (Ch 17. p.141) says that \sqrt is cramped
     UpdatePresentationDataFromChildAt(0, -1,
                                       NS_MATHML_COMPRESSED,
                                       NS_MATHML_COMPRESSED);
   }
 
   return NS_OK;
 }
 
@@ -412,24 +412,24 @@ nsMathMLmencloseFrame::PlaceInternal(Dra
       IsToDraw(NOTATION_PHASORANGLE)) {
       // set a minimal value for the base height
       bmBase.ascent = std::max(bmOne.ascent, bmBase.ascent);
       bmBase.descent = std::max(0, bmBase.descent);
   }
 
   mBoundingMetrics.ascent = bmBase.ascent;
   mBoundingMetrics.descent = bmBase.descent;
-    
+
   if (IsToDraw(NOTATION_ROUNDEDBOX) ||
       IsToDraw(NOTATION_TOP) ||
       IsToDraw(NOTATION_LEFT) ||
       IsToDraw(NOTATION_RIGHT) ||
       IsToDraw(NOTATION_CIRCLE))
     mBoundingMetrics.ascent += padding;
-  
+
   if (IsToDraw(NOTATION_ROUNDEDBOX) ||
       IsToDraw(NOTATION_LEFT) ||
       IsToDraw(NOTATION_RIGHT) ||
       IsToDraw(NOTATION_BOTTOM) ||
       IsToDraw(NOTATION_CIRCLE))
     mBoundingMetrics.descent += padding;
 
    ///////////////
@@ -517,21 +517,21 @@ nsMathMLmencloseFrame::PlaceInternal(Dra
                                         longdivDescent);
     }
   }
 
   ///////////////
   // radical notation:
   if (IsToDraw(NOTATION_RADICAL)) {
     nscoord *dx_leading = StyleVisibility()->mDirection ? &dx_right : &dx_left;
-    
+
     if (aWidthOnly) {
       nscoord radical_width = mMathMLChar[mRadicalCharIndex].
         GetMaxWidth(PresContext(), aDrawTarget, fontSizeInflation);
-      
+
       // Update horizontal parameters
       *dx_leading = std::max(*dx_leading, radical_width);
     } else {
       // Stretch the radical symbol to the appropriate height if it is not
       // big enough.
       nsBoundingMetrics contSize = bmBase;
       contSize.ascent = mRadicalRuleThickness;
       contSize.descent = bmBase.ascent + bmBase.descent + psi;
@@ -572,48 +572,48 @@ nsMathMLmencloseFrame::PlaceInternal(Dra
 
   ///////////////
   // The maximum size is now computed: set the remaining parameters
   mBoundingMetrics.width = dx_left + bmBase.width + dx_right;
 
   mBoundingMetrics.leftBearing = std::min(0, dx_left + bmBase.leftBearing);
   mBoundingMetrics.rightBearing =
     std::max(mBoundingMetrics.width, dx_left + bmBase.rightBearing);
-  
+
   aDesiredSize.Width() = mBoundingMetrics.width;
 
   aDesiredSize.SetBlockStartAscent(std::max(mBoundingMetrics.ascent,
                                             baseSize.BlockStartAscent()));
   aDesiredSize.Height() = aDesiredSize.BlockStartAscent() +
     std::max(mBoundingMetrics.descent,
              baseSize.Height() - baseSize.BlockStartAscent());
 
   if (IsToDraw(NOTATION_LONGDIV) || IsToDraw(NOTATION_RADICAL)) {
     nscoord desiredSizeAscent = aDesiredSize.BlockStartAscent();
     nscoord desiredSizeDescent = aDesiredSize.Height() -
                                  aDesiredSize.BlockStartAscent();
-    
+
     if (IsToDraw(NOTATION_LONGDIV)) {
       desiredSizeAscent = std::max(desiredSizeAscent,
                                  longdivAscent + leading);
       desiredSizeDescent = std::max(desiredSizeDescent,
                                   longdivDescent + mRuleThickness);
     }
-    
+
     if (IsToDraw(NOTATION_RADICAL)) {
       desiredSizeAscent = std::max(desiredSizeAscent,
                                  radicalAscent + leading);
       desiredSizeDescent = std::max(desiredSizeDescent,
                                     radicalDescent + mRadicalRuleThickness);
     }
 
     aDesiredSize.SetBlockStartAscent(desiredSizeAscent);
     aDesiredSize.Height() = desiredSizeAscent + desiredSizeDescent;
   }
-    
+
   if (IsToDraw(NOTATION_CIRCLE) ||
       IsToDraw(NOTATION_ROUNDEDBOX) ||
       (IsToDraw(NOTATION_TOP) && IsToDraw(NOTATION_BOTTOM))) {
     // center the menclose around the content (vertically)
     nscoord dy = std::max(aDesiredSize.BlockStartAscent() - bmBase.ascent,
                           aDesiredSize.Height() -
                           aDesiredSize.BlockStartAscent() - bmBase.descent);
 
@@ -627,35 +627,35 @@ nsMathMLmencloseFrame::PlaceInternal(Dra
       IsToDraw(NOTATION_LEFT) ||
       IsToDraw(NOTATION_UPDIAGONALSTRIKE) ||
       IsToDraw(NOTATION_UPDIAGONALARROW) ||
       IsToDraw(NOTATION_DOWNDIAGONALSTRIKE) ||
       IsToDraw(NOTATION_VERTICALSTRIKE) ||
       IsToDraw(NOTATION_CIRCLE) ||
       IsToDraw(NOTATION_ROUNDEDBOX))
     mBoundingMetrics.ascent = aDesiredSize.BlockStartAscent();
-  
+
   if (IsToDraw(NOTATION_BOTTOM) ||
       IsToDraw(NOTATION_RIGHT) ||
       IsToDraw(NOTATION_LEFT) ||
       IsToDraw(NOTATION_UPDIAGONALSTRIKE) ||
       IsToDraw(NOTATION_UPDIAGONALARROW) ||
       IsToDraw(NOTATION_DOWNDIAGONALSTRIKE) ||
       IsToDraw(NOTATION_VERTICALSTRIKE) ||
       IsToDraw(NOTATION_CIRCLE) ||
       IsToDraw(NOTATION_ROUNDEDBOX))
     mBoundingMetrics.descent = aDesiredSize.Height() - aDesiredSize.BlockStartAscent();
 
   // phasorangle notation:
   // move up from the bottom by the angled line height
   if (IsToDraw(NOTATION_PHASORANGLE))
     mBoundingMetrics.ascent = std::max(mBoundingMetrics.ascent, 2 * kPhasorangleWidth * mRuleThickness - mBoundingMetrics.descent);
-  
+
   aDesiredSize.mBoundingMetrics = mBoundingMetrics;
-  
+
   mReference.x = 0;
   mReference.y = aDesiredSize.BlockStartAscent();
 
   if (aPlaceOrigin) {
     //////////////////
     // Set position and size of MathMLChars
     if (IsToDraw(NOTATION_LONGDIV))
       mMathMLChar[mLongDivCharIndex].SetRect(nsRect(dx_left -
@@ -728,31 +728,31 @@ nsMathMLmencloseFrame::GetAdditionalStyl
   int32_t len = mMathMLChar.Length();
   if (aIndex >= 0 && aIndex < len)
     return mMathMLChar[aIndex].GetStyleContext();
   else
     return nullptr;
 }
 
 void
-nsMathMLmencloseFrame::SetAdditionalStyleContext(int32_t          aIndex, 
+nsMathMLmencloseFrame::SetAdditionalStyleContext(int32_t          aIndex,
                                                  nsStyleContext*  aStyleContext)
 {
   int32_t len = mMathMLChar.Length();
   if (aIndex >= 0 && aIndex < len)
     mMathMLChar[aIndex].SetStyleContext(aStyleContext);
 }
 
 class nsDisplayNotation : public nsDisplayItem
 {
 public:
   nsDisplayNotation(nsDisplayListBuilder* aBuilder,
                     nsIFrame* aFrame, const nsRect& aRect,
                     nscoord aThickness, nsMencloseNotation aType)
-    : nsDisplayItem(aBuilder, aFrame), mRect(aRect), 
+    : nsDisplayItem(aBuilder, aFrame), mRect(aRect),
       mThickness(aThickness), mType(aType) {
     MOZ_COUNT_CTOR(nsDisplayNotation);
   }
 #ifdef NS_BUILD_REFCNT_LOGGING
   virtual ~nsDisplayNotation() {
     MOZ_COUNT_DTOR(nsDisplayNotation);
   }
 #endif
--- a/layout/mathml/nsMathMLmencloseFrame.h
+++ b/layout/mathml/nsMathMLmencloseFrame.h
@@ -16,17 +16,17 @@
 //
 
 /*
   The MathML REC describes:
 
   The menclose element renders its content inside the enclosing notation
   specified by its notation attribute. menclose accepts any number of arguments;
   if this number is not 1, its contents are treated as a single "inferred mrow"
-  containing its arguments, as described in Section 3.1.3 Required Arguments. 
+  containing its arguments, as described in Section 3.1.3 Required Arguments.
 */
 
 enum nsMencloseNotation
   {
     NOTATION_LONGDIV = 0x1,
     NOTATION_RADICAL = 0x2,
     NOTATION_ROUNDEDBOX = 0x4,
     NOTATION_CIRCLE = 0x8,
@@ -43,33 +43,33 @@ enum nsMencloseNotation
   };
 
 class nsMathMLmencloseFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmencloseFrame)
 
   friend nsIFrame* NS_NewMathMLmencloseFrame(nsIPresShell*   aPresShell,
                                              nsStyleContext* aContext);
-  
+
   virtual nsresult
   Place(DrawTarget*          aDrawTarget,
         bool                 aPlaceOrigin,
         ReflowOutput& aDesiredSize) override;
-  
+
   virtual nsresult
   MeasureForWidth(DrawTarget* aDrawTarget,
                   ReflowOutput& aDesiredSize) override;
-  
+
   virtual nsresult
   AttributeChanged(int32_t         aNameSpaceID,
                    nsIAtom*        aAttribute,
                    int32_t         aModType) override;
-  
+
   virtual void
-  SetAdditionalStyleContext(int32_t          aIndex, 
+  SetAdditionalStyleContext(int32_t          aIndex,
                             nsStyleContext*  aStyleContext) override;
   virtual nsStyleContext*
   GetAdditionalStyleContext(int32_t aIndex) const override;
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
 
--- a/layout/mathml/nsMathMLmfencedFrame.cpp
+++ b/layout/mathml/nsMathMLmfencedFrame.cpp
@@ -47,17 +47,17 @@ nsMathMLmfencedFrame::SetInitialChildLis
 {
   // First, let the base class do its work
   nsMathMLContainerFrame::SetInitialChildList(aListID, aChildList);
 
   // InheritAutomaticData will not get called if our parent is not a mathml
   // frame, so initialize NS_MATHML_STRETCH_ALL_CHILDREN_VERTICALLY for
   // GetPreferredStretchSize() from Reflow().
   mPresentationData.flags |= NS_MATHML_STRETCH_ALL_CHILDREN_VERTICALLY;
-  // No need to track the style contexts given to our MathML chars. 
+  // No need to track the style contexts given to our MathML chars.
   // The Style System will use Get/SetAdditionalStyleContext() to keep them
   // up-to-date if dynamic changes arise.
   CreateFencesAndSeparators(PresContext());
 }
 
 nsresult
 nsMathMLmfencedFrame::AttributeChanged(int32_t         aNameSpaceID,
                                        nsIAtom*        aAttribute,
@@ -92,17 +92,17 @@ nsMathMLmfencedFrame::RemoveFencesAndSep
   mSeparatorsCount = 0;
 }
 
 void
 nsMathMLmfencedFrame::CreateFencesAndSeparators(nsPresContext* aPresContext)
 {
   nsAutoString value;
 
-  //////////////  
+  //////////////
   // see if the opening fence is there ...
   if (!mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::open, value)) {
     value = char16_t('('); // default as per the MathML REC
   } else {
     value.CompressWhitespace();
   }
 
   if (!value.IsEmpty()) {
@@ -161,28 +161,28 @@ nsMathMLmfencedFrame::CreateFencesAndSep
 void
 nsMathMLmfencedFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                        const nsRect&           aDirtyRect,
                                        const nsDisplayListSet& aLists)
 {
   /////////////
   // display the content
   nsMathMLContainerFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-  
+
   ////////////
   // display fences and separators
   uint32_t count = 0;
   if (mOpenChar) {
     mOpenChar->Display(aBuilder, this, aLists, count++);
   }
-  
+
   if (mCloseChar) {
     mCloseChar->Display(aBuilder, this, aLists, count++);
   }
-  
+
   for (int32_t i = 0; i < mSeparatorsCount; i++) {
     mSeparatorsChar[i].Display(aBuilder, this, aLists, count++);
   }
 }
 
 /* @param aMetrics is an IN/OUT.  Provide the current metrics for the mFenced
           frame and it will be enlarged as necessary.
 For simplicity the width of the container is always incremented by the width
@@ -223,17 +223,17 @@ nsMathMLmfencedFrame::Reflow(nsPresConte
   const nsStyleFont* font = StyleFont();
   float fontSizeInflation = nsLayoutUtils::FontSizeInflationFor(this);
   RefPtr<nsFontMetrics> fm =
     nsLayoutUtils::GetFontMetricsForFrame(this, fontSizeInflation);
   nscoord axisHeight, em;
   GetAxisHeight(aReflowInput.mRenderingContext->GetDrawTarget(), fm, axisHeight);
   GetEmHeight(fm, em);
   // leading to be left at the top and the bottom of stretched chars
-  nscoord leading = NSToCoordRound(0.2f * em); 
+  nscoord leading = NSToCoordRound(0.2f * em);
 
   /////////////
   // Reflow children
   // Asking each child to cache its bounding metrics
 
   // Note that we don't use the base method nsMathMLContainerFrame::Reflow()
   // because we want to stretch our fences, separators and stretchy frames using
   // the *same* initial aDesiredSize.mBoundingMetrics. If we were to use the base
@@ -334,26 +334,26 @@ nsMathMLmfencedFrame::Reflow(nsPresConte
                           fontSizeInflation, mCloseChar,
                           containerSize, isRTL);
 
   //////////////////////////////////////////
   // Prepare the opening fence, separators, and closing fence, and
   // adjust the origin of children.
 
   // we need to center around the axis
-  nscoord delta = std::max(containerSize.ascent - axisHeight, 
+  nscoord delta = std::max(containerSize.ascent - axisHeight,
                          containerSize.descent + axisHeight);
   containerSize.ascent = delta + axisHeight;
   containerSize.descent = delta - axisHeight;
 
   /////////////////
   // opening fence ...
   ReflowChar(aPresContext, drawTarget, *fm,
              fontSizeInflation, mOpenChar,
-             NS_MATHML_OPERATOR_FORM_PREFIX, font->mScriptLevel, 
+             NS_MATHML_OPERATOR_FORM_PREFIX, font->mScriptLevel,
              axisHeight, leading, em, containerSize, ascent, descent, isRTL);
   /////////////////
   // separators ...
   for (i = 0; i < mSeparatorsCount; i++) {
     ReflowChar(aPresContext, drawTarget, *fm,
                fontSizeInflation, &mSeparatorsChar[i],
                NS_MATHML_OPERATOR_FORM_INFIX, font->mScriptLevel,
                axisHeight, leading, em, containerSize, ascent, descent, isRTL);
@@ -395,17 +395,17 @@ nsMathMLmfencedFrame::Reflow(nsPresConte
   }
   while (childFrame) {
     ReflowOutput childSize(aReflowInput);
     GetReflowAndBoundingMetricsFor(childFrame, childSize, bm);
     if (firstTime) {
       firstTime = false;
       aDesiredSize.mBoundingMetrics  = bm;
     }
-    else  
+    else
       aDesiredSize.mBoundingMetrics += bm;
 
     FinishReflowChild(childFrame, aPresContext, childSize, nullptr,
                       dx, ascent - childSize.BlockStartAscent(), 0);
     dx += childSize.Width();
 
     if (i < mSeparatorsCount) {
       PlaceChar(&mSeparatorsChar[isRTL ? mSeparatorsCount - 1 - i : i],
@@ -420,17 +420,17 @@ nsMathMLmfencedFrame::Reflow(nsPresConte
       childFrame = childFrame->GetNextSibling();
     }
   }
 
   if (rightChar) {
     PlaceChar(rightChar, ascent, bm, dx);
     if (firstTime)
       aDesiredSize.mBoundingMetrics  = bm;
-    else  
+    else
       aDesiredSize.mBoundingMetrics += bm;
   }
 
   aDesiredSize.Width() = aDesiredSize.mBoundingMetrics.width;
   aDesiredSize.Height() = ascent + descent;
   aDesiredSize.SetBlockStartAscent(ascent);
 
   SetBoundingMetrics(aDesiredSize.mBoundingMetrics);
@@ -525,44 +525,44 @@ nsMathMLmfencedFrame::ReflowChar(nsPresC
         charSize.descent = metrics.descent;
         charSize.width = metrics.width;
         // Set this as the bounding metrics of the MathMLChar to leave
         // the necessary room to paint the char.
         aMathMLChar->SetBoundingMetrics(charSize);
       }
     }
 
-    if (aAscent < charSize.ascent + leading) 
+    if (aAscent < charSize.ascent + leading)
       aAscent = charSize.ascent + leading;
-    if (aDescent < charSize.descent + leading) 
+    if (aDescent < charSize.descent + leading)
       aDescent = charSize.descent + leading;
 
     // account the spacing
     charSize.width += leftSpace + rightSpace;
 
     // x-origin is used to store lspace ...
-    // y-origin is used to stored the ascent ... 
-    aMathMLChar->SetRect(nsRect(leftSpace, 
+    // y-origin is used to stored the ascent ...
+    aMathMLChar->SetRect(nsRect(leftSpace,
                                 charSize.ascent, charSize.width,
                                 charSize.ascent + charSize.descent));
   }
   return NS_OK;
 }
 
 /*static*/ void
 nsMathMLmfencedFrame::PlaceChar(nsMathMLChar*      aMathMLChar,
                                 nscoord            aDesiredAscent,
                                 nsBoundingMetrics& bm,
                                 nscoord&           dx)
 {
   aMathMLChar->GetBoundingMetrics(bm);
 
   // the char's x-origin was used to store lspace ...
-  // the char's y-origin was used to store the ascent ... 
-  // the char's width was used to store the advance with (with spacing) ... 
+  // the char's y-origin was used to store the ascent ...
+  // the char's width was used to store the advance with (with spacing) ...
   nsRect rect;
   aMathMLChar->GetRect(rect);
 
   nscoord dy = aDesiredAscent - rect.y;
   if (aMathMLChar->GetStretchDirection() != NS_STRETCH_DIRECTION_UNSUPPORTED) {
     // the stretchy char will be centered around the axis
     // so we adjust the returned bounding metrics accordingly
     bm.descent = (bm.ascent + bm.descent) - rect.y;
@@ -593,17 +593,17 @@ GetMaxCharWidth(nsPresContext*       aPr
 
   if (0 < aMathMLChar->Length()) {
     nscoord leftSpace;
     nscoord rightSpace;
     GetCharSpacing(aMathMLChar, aForm, aScriptLevel, em, leftSpace, rightSpace);
 
     width += leftSpace + rightSpace;
   }
-  
+
   return width;
 }
 
 /* virtual */ void
 nsMathMLmfencedFrame::GetIntrinsicISizeMetrics(gfxContext* aRenderingContext, ReflowOutput& aDesiredSize)
 {
   nscoord width = 0;
 
@@ -681,21 +681,21 @@ nsMathMLmfencedFrame::FixInterFrameSpaci
 // the Style System will use these to pass the proper style context to our MathMLChar
 nsStyleContext*
 nsMathMLmfencedFrame::GetAdditionalStyleContext(int32_t aIndex) const
 {
   int32_t openIndex = -1;
   int32_t closeIndex = -1;
   int32_t lastIndex = mSeparatorsCount-1;
 
-  if (mOpenChar) { 
-    lastIndex++; 
-    openIndex = lastIndex; 
+  if (mOpenChar) {
+    lastIndex++;
+    openIndex = lastIndex;
   }
-  if (mCloseChar) { 
+  if (mCloseChar) {
     lastIndex++;
     closeIndex = lastIndex;
   }
   if (aIndex < 0 || aIndex > lastIndex) {
     return nullptr;
   }
 
   if (aIndex < mSeparatorsCount) {
@@ -706,17 +706,17 @@ nsMathMLmfencedFrame::GetAdditionalStyle
   }
   else if (aIndex == closeIndex) {
     return mCloseChar->GetStyleContext();
   }
   return nullptr;
 }
 
 void
-nsMathMLmfencedFrame::SetAdditionalStyleContext(int32_t          aIndex, 
+nsMathMLmfencedFrame::SetAdditionalStyleContext(int32_t          aIndex,
                                                 nsStyleContext*  aStyleContext)
 {
   int32_t openIndex = -1;
   int32_t closeIndex = -1;
   int32_t lastIndex = mSeparatorsCount-1;
 
   if (mOpenChar) {
     lastIndex++;
--- a/layout/mathml/nsMathMLmfencedFrame.h
+++ b/layout/mathml/nsMathMLmfencedFrame.h
@@ -17,17 +17,17 @@ class nsFontMetrics;
 
 class nsMathMLmfencedFrame final : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmfencedFrame)
 
   friend nsIFrame* NS_NewMathMLmfencedFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
   virtual void
-  SetAdditionalStyleContext(int32_t          aIndex, 
+  SetAdditionalStyleContext(int32_t          aIndex,
                             nsStyleContext*  aStyleContext) override;
   virtual nsStyleContext*
   GetAdditionalStyleContext(int32_t aIndex) const override;
 
   NS_IMETHOD
   InheritAutomaticData(nsIFrame* aParent) override;
 
   virtual void
@@ -100,17 +100,17 @@ protected:
     : nsMathMLContainerFrame(aContext, kClassID)
     , mOpenChar(nullptr)
     , mCloseChar(nullptr)
     , mSeparatorsChar(nullptr)
     , mSeparatorsCount(0)
   {}
 
   virtual ~nsMathMLmfencedFrame();
-  
+
   nsMathMLChar* mOpenChar;
   nsMathMLChar* mCloseChar;
   nsMathMLChar* mSeparatorsChar;
   int32_t       mSeparatorsCount;
 
   // clean up
   void
   RemoveFencesAndSeparators();
--- a/layout/mathml/nsMathMLmfracFrame.cpp
+++ b/layout/mathml/nsMathMLmfracFrame.cpp
@@ -86,17 +86,17 @@ nsMathMLmfracFrame::TransmitAutomaticDat
     // even when embellished, we need to record that <mfrac> won't fire
     // Stretch() on its embellished child
     mEmbellishData.direction = NS_STRETCH_DIRECTION_UNSUPPORTED;
   }
 
   return NS_OK;
 }
 
-nscoord 
+nscoord
 nsMathMLmfracFrame::CalcLineThickness(nsPresContext*  aPresContext,
                                       nsStyleContext*  aStyleContext,
                                       nsString&        aThicknessAttribute,
                                       nscoord          onePixel,
                                       nscoord          aDefaultRuleThickness,
                                       float            aFontSizeInflation)
 {
   nscoord defaultThickness = aDefaultRuleThickness;
@@ -135,31 +135,31 @@ nsMathMLmfracFrame::CalcLineThickness(ns
       lineThickness = defaultThickness;
       ParseNumericValue(aThicknessAttribute, &lineThickness,
                         nsMathMLElement::PARSE_ALLOW_UNITLESS,
                         aPresContext, aStyleContext, aFontSizeInflation);
     }
   }
 
   // use minimum if the lineThickness is a non-zero value less than minimun
-  if (lineThickness && lineThickness < minimumThickness) 
+  if (lineThickness && lineThickness < minimumThickness)
     lineThickness = minimumThickness;
 
   return lineThickness;
 }
 
 void
 nsMathMLmfracFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                      const nsRect&           aDirtyRect,
                                      const nsDisplayListSet& aLists)
 {
   /////////////
   // paint the numerator and denominator
   nsMathMLContainerFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-  
+
   /////////////
   // paint the fraction line
   if (mIsBevelled) {
     DisplaySlash(aBuilder, this, mLineRect, mLineThickness, aLists);
   } else {
     DisplayBar(aBuilder, this, mLineRect, aLists);
   }
 }
@@ -211,17 +211,17 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
 {
   ////////////////////////////////////
   // Get the children's desired sizes
   nsBoundingMetrics bmNum, bmDen;
   ReflowOutput sizeNum(aDesiredSize.GetWritingMode());
   ReflowOutput sizeDen(aDesiredSize.GetWritingMode());
   nsIFrame* frameDen = nullptr;
   nsIFrame* frameNum = mFrames.FirstChild();
-  if (frameNum) 
+  if (frameNum)
     frameDen = frameNum->GetNextSibling();
   if (!frameNum || !frameDen || frameDen->GetNextSibling()) {
     // report an error, encourage people to get their markups in order
     if (aPlaceOrigin) {
       ReportChildCountError();
     }
     return ReflowError(aDrawTarget, aDesiredSize);
   }
@@ -248,17 +248,17 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
 
   bool outermostEmbellished = false;
   if (mEmbellishData.coreFrame) {
     nsEmbellishData parentData;
     GetEmbellishDataFrom(GetParent(), parentData);
     outermostEmbellished = parentData.coreFrame != mEmbellishData.coreFrame;
   }
 
-  // see if the linethickness attribute is there 
+  // see if the linethickness attribute is there
   nsAutoString value;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::linethickness_, value);
   mLineThickness = CalcLineThickness(presContext, mStyleContext, value,
                                      onePixel, defaultRuleThickness,
                                      fontSizeInflation);
 
   // bevelled attribute
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::bevelled_, value);
@@ -362,17 +362,17 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
     // Rule 15d, App. G, TeXbook
 
     // min clearance between numerator or denominator and middle of bar
 
     // TeX has a different interpretation of the thickness.
     // Try $a \above10pt b$ to see. Here is what TeX does:
     // minClearance = displayStyle ?
     //   3 * actualRuleThickness : actualRuleThickness;
- 
+
     // we slightly depart from TeX here. We use the defaultRuleThickness instead
     // of the value coming from the linethickness attribute, i.e., we recover what
     // TeX does if the user hasn't set linethickness. But when the linethickness
     // is set, we avoid the wide gap problem.
       nscoord minClearanceNum = displayStyle ?
         3 * defaultRuleThickness : defaultRuleThickness + onePixel;
       nscoord minClearanceDen = minClearanceNum;
       if (mathFont) {
@@ -407,24 +407,24 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
 
     // XXX Need revisiting the width. TeX uses the exact width
     // e.g. in $$\huge\frac{\displaystyle\int}{i}$$
     nscoord width = std::max(bmNum.width, bmDen.width);
     nscoord dxNum = leftSpace + (width - sizeNum.Width())/2;
     nscoord dxDen = leftSpace + (width - sizeDen.Width())/2;
     width += leftSpace + rightSpace;
 
-    // see if the numalign attribute is there 
+    // see if the numalign attribute is there
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::numalign_, value);
     if (value.EqualsLiteral("left"))
       dxNum = leftSpace;
     else if (value.EqualsLiteral("right"))
       dxNum = width - rightSpace - sizeNum.Width();
 
-    // see if the denomalign attribute is there 
+    // see if the denomalign attribute is there
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::denomalign_, value);
     if (value.EqualsLiteral("left"))
       dxDen = leftSpace;
     else if (value.EqualsLiteral("right"))
       dxDen = width - rightSpace - sizeDen.Width();
 
     mBoundingMetrics.rightBearing =
       std::max(dxNum + bmNum.rightBearing, dxDen + bmDen.rightBearing);
@@ -479,28 +479,28 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
     nscoord trailingSpace = padding;
     if (outermostEmbellished) {
       nsEmbellishData coreData;
       GetEmbellishDataFrom(mEmbellishData.coreFrame, coreData);
       leadingSpace += coreData.leadingSpace;
       trailingSpace += coreData.trailingSpace;
     }
     nscoord delta;
-    
+
     //           ___________
     //          |           |    /
     //         {|-NUMERATOR-|   /
     //         {|___________|  S
     //         {               L
     // numShift{               A
     // ------------------------------------------------------- baseline
     //                         S   _____________ } denShift
     //                         H  |             |}
     //                        /   |-DENOMINATOR-|}
-    //                       /    |_____________| 
+    //                       /    |_____________|
     //
 
     // first, ensure that the top of the numerator is at least as high as the
     // top of the denominator (and the reverse for the bottoms)
     delta = std::max(bmDen.ascent - bmNum.ascent,
                    bmNum.descent - bmDen.descent) / 2;
     if (delta > 0) {
       numShift += delta;
@@ -512,17 +512,17 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
                      bmNum.ascent + bmNum.descent) / 2;
       numShift += delta;
       denShift += delta;
     } else {
       nscoord xHeight = fm->XHeight();
       numShift += xHeight / 2;
       denShift += xHeight / 4;
     }
-   
+
     // Set the ascent/descent of our BoundingMetrics.
     mBoundingMetrics.ascent = bmNum.ascent + numShift;
     mBoundingMetrics.descent = bmDen.descent + denShift;
 
     // At this point the height of the slash is
     // mBoundingMetrics.ascent + mBoundingMetrics.descent
     // Ensure that it is greater than slashMinHeight
     delta = (slashMinHeight -
@@ -558,17 +558,17 @@ nsMathMLmfracFrame::PlaceInternal(DrawTa
     aDesiredSize.SetBlockStartAscent(mBoundingMetrics.ascent + padding);
     aDesiredSize.Height() =
       mBoundingMetrics.ascent + mBoundingMetrics.descent + 2 * padding;
     aDesiredSize.Width() = mBoundingMetrics.width;
     aDesiredSize.mBoundingMetrics = mBoundingMetrics;
 
     mReference.x = 0;
     mReference.y = aDesiredSize.BlockStartAscent();
-    
+
     if (aPlaceOrigin) {
       nscoord dx, dy;
 
       // place numerator
       dx = MirrorIfRTL(aDesiredSize.Width(), sizeNum.Width(),
                        leadingSpace);
       dy = aDesiredSize.BlockStartAscent() - numShift - sizeNum.BlockStartAscent();
       FinishReflowChild(frameNum, presContext, sizeNum, nullptr, dx, dy, 0);
--- a/layout/mathml/nsMathMLmfracFrame.h
+++ b/layout/mathml/nsMathMLmfracFrame.h
@@ -5,53 +5,53 @@
 
 #ifndef nsMathMLmfracFrame_h___
 #define nsMathMLmfracFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsMathMLContainerFrame.h"
 
 //
-// <mfrac> -- form a fraction from two subexpressions 
+// <mfrac> -- form a fraction from two subexpressions
 //
 
 /*
 The MathML REC describes:
 
-The <mfrac> element is used for fractions. It can also be used to mark up 
-fraction-like objects such as binomial coefficients and Legendre symbols. 
+The <mfrac> element is used for fractions. It can also be used to mark up
+fraction-like objects such as binomial coefficients and Legendre symbols.
 The syntax for <mfrac> is:
   <mfrac> numerator denominator </mfrac>
 
 Attributes of <mfrac>:
-     Name                      values                     default 
-  linethickness  number [ v-unit ] | thin | medium | thick  1 
+     Name                      values                     default
+  linethickness  number [ v-unit ] | thin | medium | thick  1
 
-E.g., 
+E.g.,
 linethickness=2 actually means that linethickness=2*DEFAULT_THICKNESS
 (DEFAULT_THICKNESS is not specified by MathML, see below.)
 
 The linethickness attribute indicates the thickness of the horizontal
 "fraction bar", or "rule", typically used to render fractions. A fraction
 with linethickness="0" renders without the bar, and might be used within
 binomial coefficients. A linethickness greater than one might be used with
-nested fractions. 
+nested fractions.
 
 In general, the value of linethickness can be a number, as a multiplier
 of the default thickness of the fraction bar (the default thickness is
 not specified by MathML), or a number with a unit of vertical length (see
 Section 2.3.3), or one of the keywords medium (same as 1), thin (thinner
 than 1, otherwise up to the renderer), or thick (thicker than 1, otherwise
-up to the renderer). 
+up to the renderer).
 
 The <mfrac> element sets displaystyle to "false", or if it was already
 false increments scriptlevel by 1, within numerator and denominator.
-These attributes are inherited by every element from its rendering 
-environment, but can be set explicitly only on the <mstyle> 
-element. 
+These attributes are inherited by every element from its rendering
+environment, but can be set explicitly only on the <mstyle>
+element.
 */
 
 class nsMathMLmfracFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmfracFrame)
 
   friend nsIFrame* NS_NewMathMLmfracFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
@@ -78,17 +78,17 @@ public:
   NS_IMETHOD
   TransmitAutomaticData() override;
 
   // override the base method so that we can deal with the fraction line
   virtual nscoord
   FixInterFrameSpacing(ReflowOutput& aDesiredSize) override;
 
   // helper to translate the thickness attribute into a usable form
-  static nscoord 
+  static nscoord
   CalcLineThickness(nsPresContext*  aPresContext,
                     nsStyleContext*  aStyleContext,
                     nsString&        aThicknessAttribute,
                     nscoord          onePixel,
                     nscoord          aDefaultRuleThickness,
                     float            aFontSizeInflation);
 
   uint8_t
--- a/layout/mathml/nsMathMLmmultiscriptsFrame.cpp
+++ b/layout/mathml/nsMathMLmmultiscriptsFrame.cpp
@@ -369,17 +369,17 @@ nsMathMLmmultiscriptsFrame::PlaceMultiSc
           //A different error message is triggered later for the other tags
           foundNoneTag = true;
         }
       }
       baseFrame = childFrame;
       GetReflowAndBoundingMetricsFor(baseFrame, baseSize, bmBase);
 
       if (tag != nsGkAtoms::msub_) {
-        // Apply italics correction if there is the potential for a 
+        // Apply italics correction if there is the potential for a
         // postsupscript.
         GetItalicCorrection(bmBase, italicCorrection);
         // If italics correction is applied, we always add "a little to spare"
         // (see TeXbook Ch.11, p.64), as we estimate the italic creation
         // ourselves and it isn't the same as TeX.
         italicCorrection += onePixel;
       }
 
@@ -406,17 +406,17 @@ nsMathMLmmultiscriptsFrame::PlaceMultiSc
         // parameter v, Rule 18a, App. G, TeXbook
         minSubScriptShift = bmBase.descent + subDrop;
         trySubScriptShift = std::max(minSubScriptShift,subScriptShift);
         multiSubSize.SetBlockStartAscent(
            std::max(multiSubSize.BlockStartAscent(),
                     subScriptSize.BlockStartAscent()));
         bmMultiSub.ascent = std::max(bmMultiSub.ascent, bmSubScript.ascent);
         bmMultiSub.descent = std::max(bmMultiSub.descent, bmSubScript.descent);
-        multiSubSize.Height() = 
+        multiSubSize.Height() =
           std::max(multiSubSize.Height(),
                    subScriptSize.Height() - subScriptSize.BlockStartAscent());
         if (bmSubScript.width)
           width = bmSubScript.width + scriptSpace;
         rightBearing = bmSubScript.rightBearing;
 
         if (tag == nsGkAtoms::msub_) {
           boundingMetrics.rightBearing = boundingMetrics.width + rightBearing;
@@ -487,17 +487,17 @@ nsMathMLmmultiscriptsFrame::PlaceMultiSc
               std::min(bmSubScript.leftBearing, bmSupScript.leftBearing);
           }
         }
         width = rightBearing = 0;
 
         // negotiate between the various shifts so that
         // there is enough gap between the sup and subscripts
         // Rule 18e, App. G, TeXbook
-        if (tag == nsGkAtoms::mmultiscripts_ || 
+        if (tag == nsGkAtoms::mmultiscripts_ ||
             tag == nsGkAtoms::msubsup_) {
           nscoord subSuperscriptGapMin;
           if (mathFont) {
             subSuperscriptGapMin = mathFont->MathTable()->
               Constant(gfxMathTable::SubSuperscriptGapMin, oneDevPixel);
           } else {
             nscoord ruleSize;
             GetRuleThickness(aDrawTarget, fm, ruleSize);
@@ -545,17 +545,17 @@ nsMathMLmmultiscriptsFrame::PlaceMultiSc
 
   //NoBase error may also have been reported above
   if ((count != 2 && (tag == nsGkAtoms::msup_ || tag == nsGkAtoms::msub_)) ||
       (count != 3 && tag == nsGkAtoms::msubsup_) || !baseFrame ||
       (foundNoneTag && tag != nsGkAtoms::mmultiscripts_) ||
       (!isSubScript && tag == nsGkAtoms::mmultiscripts_)) {
     // report an error, encourage people to get their markups in order
     if (aPlaceOrigin) {
-      if ((count != 2 && (tag == nsGkAtoms::msup_ || 
+      if ((count != 2 && (tag == nsGkAtoms::msup_ ||
           tag == nsGkAtoms::msub_)) ||
           (count != 3 && tag == nsGkAtoms::msubsup_ )) {
         aFrame->ReportChildCountError();
       } else if (foundNoneTag && tag != nsGkAtoms::mmultiscripts_) {
         aFrame->ReportInvalidChildError(nsGkAtoms::none);
       } else if (!baseFrame) {
         aFrame->ReportErrorToConsole("NoBase");
       } else {
@@ -612,17 +612,17 @@ nsMathMLmmultiscriptsFrame::PlaceMultiSc
 
   // Place prescripts, followed by base, and then postscripts.
   // The list of frames is in the order: {base} {postscripts} {prescripts}
   // We go over the list in a circular manner, starting at <prescripts/>
 
   if (aPlaceOrigin) {
     nscoord dx = 0, dy = 0;
 
-    // With msub and msup there is only one element and 
+    // With msub and msup there is only one element and
     // subscriptFrame/supScriptFrame have already been set above where
     // relevant.  In these cases we skip to the reflow part.
     if (tag == nsGkAtoms::msub_ || tag == nsGkAtoms::msup_)
       count = 1;
     else
       count = 0;
     childFrame = prescriptsFrame;
     bool isPreScript = true;
--- a/layout/mathml/nsMathMLmmultiscriptsFrame.h
+++ b/layout/mathml/nsMathMLmmultiscriptsFrame.h
@@ -5,17 +5,17 @@
 
 #ifndef nsMathMLmmultiscriptsFrame_h___
 #define nsMathMLmmultiscriptsFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsMathMLContainerFrame.h"
 
 //
-// <mmultiscripts> -- attach prescripts and tensor indices to a base 
+// <mmultiscripts> -- attach prescripts and tensor indices to a base
 // <msub> -- attach a subscript to a base
 // <msubsup> -- attach a subscript-superscript pair to a base
 // <msup> -- attach a superscript to a base
 //
 
 class nsMathMLmmultiscriptsFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmmultiscriptsFrame)
@@ -42,13 +42,13 @@ public:
 
   uint8_t
   ScriptIncrement(nsIFrame* aFrame) override;
 
 protected:
   explicit nsMathMLmmultiscriptsFrame(nsStyleContext* aContext)
     : nsMathMLContainerFrame(aContext, kClassID) {}
   virtual ~nsMathMLmmultiscriptsFrame();
-  
+
 
 };
 
 #endif /* nsMathMLmmultiscriptsFrame_h___ */
--- a/layout/mathml/nsMathMLmoFrame.cpp
+++ b/layout/mathml/nsMathMLmoFrame.cpp
@@ -75,29 +75,29 @@ nsMathMLmoFrame::BuildDisplayList(nsDisp
 {
   bool useMathMLChar = UseMathMLChar();
 
   if (!useMathMLChar) {
     // let the base class do everything
     nsMathMLTokenFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
   } else {
     DisplayBorderBackgroundOutline(aBuilder, aLists);
-    
+
     // make our char selected if our inner child text frame is selected
     bool isSelected = false;
     nsRect selectedRect;
     nsIFrame* firstChild = mFrames.FirstChild();
     if (IsFrameInSelection(firstChild)) {
       mMathMLChar.GetRect(selectedRect);
       // add a one pixel border (it renders better for operators like minus)
       selectedRect.Inflate(nsPresContext::CSSPixelsToAppUnits(1));
       isSelected = true;
     }
     mMathMLChar.Display(aBuilder, this, aLists, 0, isSelected ? &selectedRect : nullptr);
-  
+
 #if defined(DEBUG) && defined(SHOW_BOUNDING_BOX)
     // for visual debug
     DisplayBoundingMetrics(aBuilder, this, mReference, mBoundingMetrics, aLists);
 #endif
   }
 }
 
 // get the text that we enclose and setup our nsMathMLChar
@@ -108,17 +108,17 @@ nsMathMLmoFrame::ProcessTextData()
 
   nsAutoString data;
   nsContentUtils::GetNodeTextContent(mContent, false, data);
 
   data.CompressWhitespace();
   int32_t length = data.Length();
   char16_t ch = (length == 0) ? char16_t('\0') : data[0];
 
-  if ((length == 1) && 
+  if ((length == 1) &&
       (ch == kApplyFunction  ||
        ch == kInvisibleSeparator ||
        ch == kInvisiblePlus ||
        ch == kInvisibleTimes)) {
     mFlags |= NS_MATHML_OPERATOR_INVISIBLE;
   }
 
   // don't bother doing anything special if we don't have a single child
@@ -151,17 +151,17 @@ nsMathMLmoFrame::ProcessTextData()
   nsOperatorFlags allFlags =
     flags[NS_MATHML_OPERATOR_FORM_INFIX] |
     flags[NS_MATHML_OPERATOR_FORM_POSTFIX] |
     flags[NS_MATHML_OPERATOR_FORM_PREFIX];
 
   mFlags |= allFlags & NS_MATHML_OPERATOR_ACCENT;
   mFlags |= allFlags & NS_MATHML_OPERATOR_MOVABLELIMITS;
 
-  // see if this is an operator that should be centered to cater for 
+  // see if this is an operator that should be centered to cater for
   // fonts that are not math-aware
   if (1 == length) {
     if ((ch == '+') || (ch == '=') || (ch == '*') ||
         (ch == 0x2212) || // &minus;
         (ch == 0x2264) || // &le;
         (ch == 0x2265) || // &ge;
         (ch == 0x00D7)) { // &times;
       mFlags |= NS_MATHML_OPERATOR_CENTERED;
@@ -180,17 +180,17 @@ nsMathMLmoFrame::ProcessTextData()
     NS_MATHML_OPERATOR_IS_LARGEOP(allFlags) ||
     (mEmbellishData.direction != NS_STRETCH_DIRECTION_UNSUPPORTED);
   if (isMutable)
     mFlags |= NS_MATHML_OPERATOR_MUTABLE;
 
   ResolveMathMLCharStyle(presContext, mContent, mStyleContext, &mMathMLChar);
 }
 
-// get our 'form' and lookup in the Operator Dictionary to fetch 
+// get our 'form' and lookup in the Operator Dictionary to fetch
 // our default data that may come from there. Then complete our setup
 // using attributes that we may have. To stay in sync, this function is
 // called very often. We depend on many things that may change around us.
 // However, we re-use unchanged values.
 void
 nsMathMLmoFrame::ProcessOperatorData()
 {
   // if we have been here before, we will just use our cached form
@@ -201,33 +201,33 @@ nsMathMLmoFrame::ProcessOperatorData()
   // special bits are always kept in mFlags.
   // remember the mutable bit from ProcessTextData().
   // Some chars are listed under different forms in the dictionary,
   // and there could be a form under which the char is mutable.
   // If the char is the core of an embellished container, we will keep
   // it mutable irrespective of the form of the embellished container.
   // Also remember the other special bits that we want to carry forward.
   mFlags &= NS_MATHML_OPERATOR_MUTABLE |
-            NS_MATHML_OPERATOR_ACCENT | 
+            NS_MATHML_OPERATOR_ACCENT |
             NS_MATHML_OPERATOR_MOVABLELIMITS |
             NS_MATHML_OPERATOR_CENTERED |
             NS_MATHML_OPERATOR_INVISIBLE;
 
   if (!mEmbellishData.coreFrame) {
     // i.e., we haven't been here before, the default form is infix
     form = NS_MATHML_OPERATOR_FORM_INFIX;
 
     // reset everything so that we don't keep outdated values around
     // in case of dynamic changes
     mEmbellishData.flags = 0;
     mEmbellishData.coreFrame = nullptr;
     mEmbellishData.leadingSpace = 0;
     mEmbellishData.trailingSpace = 0;
     if (mMathMLChar.Length() != 1)
-      mEmbellishData.direction = NS_STRETCH_DIRECTION_UNSUPPORTED;  
+      mEmbellishData.direction = NS_STRETCH_DIRECTION_UNSUPPORTED;
     // else... retain the native direction obtained in ProcessTextData()
 
     if (!mFrames.FirstChild()) {
       return;
     }
 
     mEmbellishData.flags |= NS_MATHML_EMBELLISH_OPERATOR;
     mEmbellishData.coreFrame = this;
@@ -273,17 +273,17 @@ nsMathMLmoFrame::ProcessOperatorData()
 
   // beware of bug 133814 - there is a two-way dependency in the
   // embellished hierarchy: our embellished ancestors need to set
   // their flags based on some of our state (set above), and here we
   // need to re-sync our 'form' depending on our outermost embellished
   // container. A null form here means that an earlier attempt to stretch
   // our mMathMLChar failed, in which case we don't bother re-stretching again
   if (form) {
-    // get our outermost embellished container and its parent. 
+    // get our outermost embellished container and its parent.
     // (we ensure that we are the core, not just a sibling of the core)
     nsIFrame* embellishAncestor = this;
     nsEmbellishData embellishData;
     nsIFrame* parentAncestor = this;
     do {
       embellishAncestor = parentAncestor;
       parentAncestor = embellishAncestor->GetParent();
       GetEmbellishDataFrom(parentAncestor, embellishData);
@@ -375,17 +375,17 @@ nsMathMLmoFrame::ProcessOperatorData()
   // If we are an accent without explicit lspace="." or rspace=".",
   // we will ignore our default leading/trailing space
 
   // lspace
   //
   // "Specifies the leading space appearing before the operator"
   //
   // values: length
-  // default: set by dictionary (thickmathspace) 
+  // default: set by dictionary (thickmathspace)
   //
   // XXXfredw Support for negative and relative values is not implemented
   // (bug 805926).
   // Relative values will give a multiple of the current leading space,
   // which is not necessarily the default one.
   //
   nscoord leadingSpace = mEmbellishData.leadingSpace;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::lspace_, value);
@@ -402,17 +402,17 @@ nsMathMLmoFrame::ProcessOperatorData()
     }
   }
 
   // rspace
   //
   // "Specifies the trailing space appearing after the operator"
   //
   // values: length
-  // default: set by dictionary (thickmathspace) 
+  // default: set by dictionary (thickmathspace)
   //
   // XXXfredw Support for negative and relative values is not implemented
   // (bug 805926).
   // Relative values will give a multiple of the current leading space,
   // which is not necessarily the default one.
   //
   nscoord trailingSpace = mEmbellishData.trailingSpace;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::rspace_, value);
@@ -695,17 +695,17 @@ nsMathMLmoFrame::Stretch(DrawTarget*    
           container.descent = aContainerSize.descent;
           container.ascent = height - container.descent;
         }
       }
 
       if (mMinSize > 0.0f) {
         // if we are here, there is a user defined minsize ...
         // always allow the char to stretch in its natural direction,
-        // even if it is different from the caller's direction 
+        // even if it is different from the caller's direction
         if (aStretchDirection != NS_STRETCH_DIRECTION_DEFAULT &&
             aStretchDirection != mEmbellishData.direction) {
           aStretchDirection = NS_STRETCH_DIRECTION_DEFAULT;
           // but when we are not honoring the requested direction
           // we should not use the caller's container size either
           container = initialSize;
         }
         if (NS_MATHML_OPERATOR_MINSIZE_IS_ABSOLUTE(mFlags)) {
@@ -758,17 +758,17 @@ nsMathMLmoFrame::Stretch(DrawTarget*    
     // Make sure the child frames get their DidReflow() calls.
     DidReflowChildren(mFrames.FirstChild());
   }
 
   if (useMathMLChar) {
     // update our bounding metrics... it becomes that of our MathML char
     mBoundingMetrics = charSize;
 
-    // if the returned direction is 'unsupported', the char didn't actually change. 
+    // if the returned direction is 'unsupported', the char didn't actually change.
     // So we do the centering only if necessary
     if (mMathMLChar.GetStretchDirection() != NS_STRETCH_DIRECTION_UNSUPPORTED ||
         NS_MATHML_OPERATOR_IS_CENTERED(mFlags)) {
 
       bool largeopOnly =
         (NS_STRETCH_LARGEOP & stretchHint) != 0 &&
         (NS_STRETCH_VARIABLE_MASK & stretchHint) == 0;
 
@@ -1083,17 +1083,17 @@ nsMathMLmoFrame::AttributeChanged(int32_
     return ReLayoutChildren(target);
   }
 
   return nsMathMLTokenFrame::
          AttributeChanged(aNameSpaceID, aAttribute, aModType);
 }
 
 // ----------------------
-// No need to track the style context given to our MathML char. 
+// No need to track the style context given to our MathML char.
 // the Style System will use these to pass the proper style context to our MathMLChar
 nsStyleContext*
 nsMathMLmoFrame::GetAdditionalStyleContext(int32_t aIndex) const
 {
   switch (aIndex) {
   case NS_MATHML_CHAR_STYLE_CONTEXT_INDEX:
     return mMathMLChar.GetStyleContext();
   default:
--- a/layout/mathml/nsMathMLmoFrame.h
+++ b/layout/mathml/nsMathMLmoFrame.h
@@ -18,17 +18,17 @@ class nsMathMLmoFrame : public nsMathMLT
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmoFrame)
 
   friend nsIFrame* NS_NewMathMLmoFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
   virtual eMathMLFrameType GetMathMLFrameType() override;
 
   virtual void
-  SetAdditionalStyleContext(int32_t          aIndex, 
+  SetAdditionalStyleContext(int32_t          aIndex,
                             nsStyleContext*  aStyleContext) override;
   virtual nsStyleContext*
   GetAdditionalStyleContext(int32_t aIndex) const override;
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
 
@@ -59,17 +59,17 @@ public:
   GetIntrinsicISizeMetrics(gfxContext* aRenderingContext,
                            ReflowOutput& aDesiredSize) override;
 
   virtual nsresult
   AttributeChanged(int32_t         aNameSpaceID,
                    nsIAtom*        aAttribute,
                    int32_t         aModType) override;
 
-  // This method is called by the parent frame to ask <mo> 
+  // This method is called by the parent frame to ask <mo>
   // to stretch itself.
   NS_IMETHOD
   Stretch(DrawTarget*          aDrawTarget,
           nsStretchDirection   aStretchDirection,
           nsBoundingMetrics&   aContainerSize,
           ReflowOutput& aDesiredStretchSize) override;
 
   virtual nsresult
@@ -78,28 +78,28 @@ public:
     ProcessTextData();
     return nsMathMLContainerFrame::ChildListChanged(aModType);
   }
 
 protected:
   explicit nsMathMLmoFrame(nsStyleContext* aContext) :
     nsMathMLTokenFrame(aContext, kClassID), mFlags(0), mMinSize(0), mMaxSize(0) {}
   virtual ~nsMathMLmoFrame();
-  
+
   nsMathMLChar     mMathMLChar; // Here is the MathMLChar that will deal with the operator.
   nsOperatorFlags  mFlags;
   float            mMinSize;
   float            mMaxSize;
 
   bool UseMathMLChar();
 
   // overload the base method so that we can setup our nsMathMLChar
   void ProcessTextData();
 
-  // helper to get our 'form' and lookup in the Operator Dictionary to fetch 
+  // helper to get our 'form' and lookup in the Operator Dictionary to fetch
   // our default data that may come from there, and to complete the setup
   // using attributes that we may have
   void
   ProcessOperatorData();
 
   // helper to double check thar our char should be rendered as a selected char
   bool
   IsFrameInSelection(nsIFrame* aFrame);
--- a/layout/mathml/nsMathMLmpaddedFrame.cpp
+++ b/layout/mathml/nsMathMLmpaddedFrame.cpp
@@ -33,17 +33,17 @@ NS_NewMathMLmpaddedFrame(nsIPresShell* a
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmpaddedFrame)
 
 nsMathMLmpaddedFrame::~nsMathMLmpaddedFrame()
 {
 }
 
 NS_IMETHODIMP
-nsMathMLmpaddedFrame::InheritAutomaticData(nsIFrame* aParent) 
+nsMathMLmpaddedFrame::InheritAutomaticData(nsIFrame* aParent)
 {
   // let the base class get the default from our parent
   nsMathMLContainerFrame::InheritAutomaticData(aParent);
 
   mPresentationData.flags |= NS_MATHML_STRETCH_ALL_CHILDREN_VERTICALLY;
 
   return NS_OK;
 }
@@ -62,17 +62,17 @@ nsMathMLmpaddedFrame::ProcessAttributes(
   */
 
   nsAutoString value;
 
   // width
   mWidthSign = NS_MATHML_SIGN_INVALID;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::width, value);
   if (!value.IsEmpty()) {
-    if (!ParseAttribute(value, mWidthSign, mWidth, mWidthPseudoUnit)) {      
+    if (!ParseAttribute(value, mWidthSign, mWidth, mWidthPseudoUnit)) {
       ReportParseError(nsGkAtoms::width->GetUTF16String(), value.get());
     }
   }
 
   // height
   mHeightSign = NS_MATHML_SIGN_INVALID;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::height, value);
   if (!value.IsEmpty()) {
@@ -89,32 +89,32 @@ nsMathMLmpaddedFrame::ProcessAttributes(
       ReportParseError(nsGkAtoms::depth_->GetUTF16String(), value.get());
     }
   }
 
   // lspace
   mLeadingSpaceSign = NS_MATHML_SIGN_INVALID;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::lspace_, value);
   if (!value.IsEmpty()) {
-    if (!ParseAttribute(value, mLeadingSpaceSign, mLeadingSpace, 
+    if (!ParseAttribute(value, mLeadingSpaceSign, mLeadingSpace,
                         mLeadingSpacePseudoUnit)) {
       ReportParseError(nsGkAtoms::lspace_->GetUTF16String(), value.get());
     }
   }
 
   // voffset
   mVerticalOffsetSign = NS_MATHML_SIGN_INVALID;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::voffset_, value);
   if (!value.IsEmpty()) {
     if (!ParseAttribute(value, mVerticalOffsetSign, mVerticalOffset,
                         mVerticalOffsetPseudoUnit)) {
       ReportParseError(nsGkAtoms::voffset_->GetUTF16String(), value.get());
     }
   }
-  
+
 }
 
 // parse an input string in the following format (see bug 148326 for testcases):
 // [+|-] unsigned-number (% [pseudo-unit] | pseudo-unit | css-unit | namedspace)
 bool
 nsMathMLmpaddedFrame::ParseAttribute(nsString&   aString,
                                      int32_t&    aSign,
                                      nsCSSValue& aCSSValue,
@@ -186,17 +186,17 @@ nsMathMLmpaddedFrame::ParseAttribute(nsS
     gotPercent = true;
   }
 
   // the remainder now should be a css-unit, or a pseudo-unit, or a named-space
   aString.Right(unit, stringLength - i);
 
   if (unit.IsEmpty()) {
     if (gotPercent) {
-      // case ["+"|"-"] unsigned-number "%" 
+      // case ["+"|"-"] unsigned-number "%"
       aCSSValue.SetPercentValue(floatValue / 100.0f);
       aPseudoUnit = NS_MATHML_PSEUDO_UNIT_ITSELF;
       return true;
     } else {
       // case ["+"|"-"] unsigned-number
       // XXXfredw: should we allow non-zero unitless values? See bug 757703.
       if (!floatValue) {
         aCSSValue.SetFloatValue(floatValue, eCSSUnit_Number);
@@ -220,17 +220,17 @@ nsMathMLmpaddedFrame::ParseAttribute(nsS
       aPseudoUnit = NS_MATHML_PSEUDO_UNIT_NAMEDSPACE;
       return true;
     }
 
     // see if the input was just a CSS value
     // We are not supposed to have a unitless, percent, negative or namedspace
     // value here.
     number.Append(unit); // leave the sign out if it was there
-    if (nsMathMLElement::ParseNumericValue(number, aCSSValue, 
+    if (nsMathMLElement::ParseNumericValue(number, aCSSValue,
                                            nsMathMLElement::
                                            PARSE_SUPPRESS_WARNINGS, nullptr))
       return true;
   }
 
   // if we enter here, we have a number that will act as a multiplier on a pseudo-unit
   if (aPseudoUnit != NS_MATHML_PSEUDO_UNIT_UNSPECIFIED) {
     if (gotPercent)
@@ -273,17 +273,17 @@ nsMathMLmpaddedFrame::UpdateValue(int32_
              scaler = aDesiredSize.BlockStartAscent();
              break;
 
         case NS_MATHML_PSEUDO_UNIT_DEPTH:
              scaler = aDesiredSize.Height() - aDesiredSize.BlockStartAscent();
              break;
 
         default:
-          // if we ever reach here, it would mean something is wrong 
+          // if we ever reach here, it would mean something is wrong
           // somewhere with the setup and/or the caller
           NS_ERROR("Unexpected Pseudo Unit");
           return;
       }
     }
 
     if (eCSSUnit_Number == unit)
       amount = NSToCoordRound(float(scaler) * aCSSValue.GetFloatValue());
@@ -342,17 +342,17 @@ nsMathMLmpaddedFrame::Place(DrawTarget* 
   //
   // "MathML renderers should ensure that, except for the effects of the
   // attributes, the relative spacing between the contents of the mpadded
   // element and surrounding MathML elements would not be modified by replacing
   // an mpadded element with an mrow element with the same content, even if
   // linebreaking occurs within the mpadded element."
   //
   // (http://www.w3.org/TR/MathML/chapter3.html#presm.mpadded)
-  // 
+  //
   // "In those discussions, the terms leading and trailing are used to specify
   // a side of an object when which side to use depends on the directionality;
   // ie. leading means left in LTR but right in RTL."
   // (http://www.w3.org/TR/MathML/chapter3.html#presm.bidi.math)
   nscoord lspace = 0;
   // In MathML3, "width" will be the bounding box width and "advancewidth" will
   // refer "to the horizontal distance between the positioning point of the
   // mpadded and the positioning point for the following content".  MathML2
@@ -416,17 +416,17 @@ nsMathMLmpaddedFrame::Place(DrawTarget* 
     // there was padding on the right. dismiss the right italic correction now
     // (so that our parent won't correct us)
     mBoundingMetrics.width = width;
     mBoundingMetrics.rightBearing = mBoundingMetrics.width;
   }
 
   nscoord dx = (StyleVisibility()->mDirection ?
                 width - initialWidth - lspace : lspace);
-    
+
   aDesiredSize.SetBlockStartAscent(height);
   aDesiredSize.Width() = mBoundingMetrics.width;
   aDesiredSize.Height() = depth + aDesiredSize.BlockStartAscent();
   mBoundingMetrics.ascent = height;
   mBoundingMetrics.descent = depth;
   aDesiredSize.mBoundingMetrics = mBoundingMetrics;
 
   mReference.x = 0;
--- a/layout/mathml/nsMathMLmpaddedFrame.h
+++ b/layout/mathml/nsMathMLmpaddedFrame.h
@@ -5,17 +5,17 @@
 
 #ifndef nsMathMLmpaddedFrame_h___
 #define nsMathMLmpaddedFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsMathMLContainerFrame.h"
 
 //
-// <mpadded> -- adjust space around content  
+// <mpadded> -- adjust space around content
 //
 
 class nsMathMLmpaddedFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmpaddedFrame)
 
   friend nsIFrame* NS_NewMathMLmpaddedFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
@@ -27,17 +27,17 @@ public:
     return TransmitAutomaticDataForMrowLikeElement();
   }
 
   virtual void
   Reflow(nsPresContext*          aPresContext,
          ReflowOutput&     aDesiredSize,
          const ReflowInput& aReflowInput,
          nsReflowStatus&          aStatus) override;
-  
+
   virtual nsresult
   Place(DrawTarget*          aDrawTarget,
         bool                 aPlaceOrigin,
         ReflowOutput& aDesiredSize) override;
 
   bool
   IsMrowLike() override {
     return mFrames.FirstChild() != mFrames.LastChild() ||
--- a/layout/mathml/nsMathMLmrootFrame.cpp
+++ b/layout/mathml/nsMathMLmrootFrame.cpp
@@ -40,20 +40,20 @@ nsMathMLmrootFrame::~nsMathMLmrootFrame(
 }
 
 void
 nsMathMLmrootFrame::Init(nsIContent*       aContent,
                          nsContainerFrame* aParent,
                          nsIFrame*         aPrevInFlow)
 {
   nsMathMLContainerFrame::Init(aContent, aParent, aPrevInFlow);
-  
+
   nsPresContext *presContext = PresContext();
 
-  // No need to track the style context given to our MathML char. 
+  // No need to track the style context given to our MathML char.
   // The Style System will use Get/SetAdditionalStyleContext() to keep it
   // up-to-date if dynamic changes arise.
   nsAutoString sqrChar; sqrChar.Assign(kSqrChar);
   mSqrChar.SetData(sqrChar);
   ResolveMathMLCharStyle(presContext, mContent, mStyleContext, &mSqrChar);
 }
 
 NS_IMETHODIMP
@@ -78,17 +78,17 @@ nsMathMLmrootFrame::TransmitAutomaticDat
 void
 nsMathMLmrootFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                      const nsRect&           aDirtyRect,
                                      const nsDisplayListSet& aLists)
 {
   /////////////
   // paint the content we are square-rooting
   nsMathMLContainerFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-  
+
   /////////////
   // paint the sqrt symbol
   if (!NS_MATHML_HAS_ERROR(mPresentationData.flags)) {
     mSqrChar.Display(aBuilder, this, aLists, 0);
 
     DisplayBar(aBuilder, this, mBarRect, aLists);
 
 #if defined(DEBUG) && defined(SHOW_BOUNDING_BOX)
@@ -180,30 +180,30 @@ nsMathMLmrootFrame::Reflow(nsPresContext
 
   int32_t count = 0;
   nsIFrame* baseFrame = nullptr;
   nsIFrame* indexFrame = nullptr;
   ReflowOutput baseSize(aReflowInput);
   ReflowOutput indexSize(aReflowInput);
   nsIFrame* childFrame = mFrames.FirstChild();
   while (childFrame) {
-    // ask our children to compute their bounding metrics 
+    // ask our children to compute their bounding metrics
     ReflowOutput childDesiredSize(aReflowInput,
                                          aDesiredSize.mFlags
                                          | NS_REFLOW_CALC_BOUNDING_METRICS);
     WritingMode wm = childFrame->GetWritingMode();
     LogicalSize availSize = aReflowInput.ComputedSize(wm);
     availSize.BSize(wm) = NS_UNCONSTRAINEDSIZE;
     ReflowInput childReflowInput(aPresContext, aReflowInput,
                                        childFrame, availSize);
     ReflowChild(childFrame, aPresContext,
                      childDesiredSize, childReflowInput, childStatus);
     //NS_ASSERTION(childStatus.IsComplete(), "bad status");
     if (0 == count) {
-      // base 
+      // base
       baseFrame = childFrame;
       baseSize = childDesiredSize;
       bmBase = childDesiredSize.mBoundingMetrics;
     }
     else if (1 == count) {
       // index
       indexFrame = childFrame;
       indexSize = childDesiredSize;
@@ -258,73 +258,73 @@ nsMathMLmrootFrame::Reflow(nsPresContext
   nsBoundingMetrics contSize = bmBase;
   contSize.descent = bmBase.ascent + bmBase.descent + psi;
   contSize.ascent = ruleThickness;
 
   // height(radical) should be >= height(base) + psi + ruleThickness
   nsBoundingMetrics radicalSize;
   mSqrChar.Stretch(aPresContext, drawTarget,
                    fontSizeInflation,
-                   NS_STRETCH_DIRECTION_VERTICAL, 
+                   NS_STRETCH_DIRECTION_VERTICAL,
                    contSize, radicalSize,
                    NS_STRETCH_LARGER,
                    StyleVisibility()->mDirection);
   // radicalSize have changed at this point, and should match with
   // the bounding metrics of the char
   mSqrChar.GetBoundingMetrics(bmSqr);
 
   // Update the desired size for the container (like msqrt, index is not yet included)
   // the baseline will be that of the base.
   mBoundingMetrics.ascent = bmBase.ascent + psi + ruleThickness;
-  mBoundingMetrics.descent = 
+  mBoundingMetrics.descent =
     std::max(bmBase.descent,
            (bmSqr.ascent + bmSqr.descent - mBoundingMetrics.ascent));
   mBoundingMetrics.width = bmSqr.width + bmBase.width;
   mBoundingMetrics.leftBearing = bmSqr.leftBearing;
-  mBoundingMetrics.rightBearing = bmSqr.width + 
+  mBoundingMetrics.rightBearing = bmSqr.width +
     std::max(bmBase.width, bmBase.rightBearing); // take also care of the rule
 
   aDesiredSize.SetBlockStartAscent(mBoundingMetrics.ascent + leading);
   aDesiredSize.Height() = aDesiredSize.BlockStartAscent() +
     std::max(baseSize.Height() - baseSize.BlockStartAscent(),
              mBoundingMetrics.descent + ruleThickness);
   aDesiredSize.Width() = mBoundingMetrics.width;
 
   /////////////
   // Re-adjust the desired size to include the index.
-  
+
   // the index is raised by some fraction of the height
   // of the radical, see \mroot macro in App. B, TexBook
   float raiseIndexPercent = 0.6f;
   gfxFont* mathFont = fm->GetThebesFontGroup()->GetFirstMathFont();
   if (mathFont) {
     raiseIndexPercent = mathFont->MathTable()->
       Constant(gfxMathTable::RadicalDegreeBottomRaisePercent);
   }
   nscoord raiseIndexDelta = NSToCoordRound(raiseIndexPercent *
                                            (bmSqr.ascent + bmSqr.descent));
-  nscoord indexRaisedAscent = mBoundingMetrics.ascent // top of radical 
+  nscoord indexRaisedAscent = mBoundingMetrics.ascent // top of radical
     - (bmSqr.ascent + bmSqr.descent) // to bottom of radical
     + raiseIndexDelta + bmIndex.ascent + bmIndex.descent; // to top of raised index
 
   nscoord indexClearance = 0;
   if (mBoundingMetrics.ascent < indexRaisedAscent) {
-    indexClearance = 
-      indexRaisedAscent - mBoundingMetrics.ascent; // excess gap introduced by a tall index 
+    indexClearance =
+      indexRaisedAscent - mBoundingMetrics.ascent; // excess gap introduced by a tall index
     mBoundingMetrics.ascent = indexRaisedAscent;
     nscoord descent = aDesiredSize.Height() - aDesiredSize.BlockStartAscent();
     aDesiredSize.SetBlockStartAscent(mBoundingMetrics.ascent + leading);
     aDesiredSize.Height() = aDesiredSize.BlockStartAscent() + descent;
   }
 
   nscoord dxIndex, dxSqr;
   GetRadicalXOffsets(bmIndex.width, bmSqr.width, fm, &dxIndex, &dxSqr);
 
   mBoundingMetrics.width = dxSqr + bmSqr.width + bmBase.width;
-  mBoundingMetrics.leftBearing = 
+  mBoundingMetrics.leftBearing =
     std::min(dxIndex + bmIndex.leftBearing, dxSqr + bmSqr.leftBearing);
   mBoundingMetrics.rightBearing = dxSqr + bmSqr.width +
     std::max(bmBase.width, bmBase.rightBearing);
 
   aDesiredSize.Width() = mBoundingMetrics.width;
   aDesiredSize.mBoundingMetrics = mBoundingMetrics;
   GatherAndStoreOverflow(&aDesiredSize);
 
@@ -403,17 +403,17 @@ nsMathMLmrootFrame::GetAdditionalStyleCo
   case NS_SQR_CHAR_STYLE_CONTEXT_INDEX:
     return mSqrChar.GetStyleContext();
   default:
     return nullptr;
   }
 }
 
 void
-nsMathMLmrootFrame::SetAdditionalStyleContext(int32_t          aIndex, 
+nsMathMLmrootFrame::SetAdditionalStyleContext(int32_t          aIndex,
                                               nsStyleContext*  aStyleContext)
 {
   switch (aIndex) {
   case NS_SQR_CHAR_STYLE_CONTEXT_INDEX:
     mSqrChar.SetStyleContext(aStyleContext);
     break;
   }
 }
--- a/layout/mathml/nsMathMLmrootFrame.h
+++ b/layout/mathml/nsMathMLmrootFrame.h
@@ -16,17 +16,17 @@
 
 class nsMathMLmrootFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmrootFrame)
 
   friend nsIFrame* NS_NewMathMLmrootFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
   virtual void
-  SetAdditionalStyleContext(int32_t          aIndex, 
+  SetAdditionalStyleContext(int32_t          aIndex,
                             nsStyleContext*  aStyleContext) override;
   virtual nsStyleContext*
   GetAdditionalStyleContext(int32_t aIndex) const override;
 
   virtual void
   Init(nsIContent*       aContent,
        nsContainerFrame* aParent,
        nsIFrame*         aPrevInFlow) override;
@@ -58,14 +58,14 @@ public:
   ScriptIncrement(nsIFrame* aFrame) override
   {
     return (aFrame && aFrame == mFrames.LastChild()) ? 2 : 0;
   }
 
 protected:
   explicit nsMathMLmrootFrame(nsStyleContext* aContext);
   virtual ~nsMathMLmrootFrame();
-  
+
   nsMathMLChar mSqrChar;
   nsRect       mBarRect;
 };
 
 #endif /* nsMathMLmrootFrame_h___ */
--- a/layout/mathml/nsMathMLmrowFrame.h
+++ b/layout/mathml/nsMathMLmrowFrame.h
@@ -5,17 +5,17 @@
 
 #ifndef nsMathMLmrowFrame_h___
 #define nsMathMLmrowFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsMathMLContainerFrame.h"
 
 //
-// <mrow> -- horizontally group any number of subexpressions 
+// <mrow> -- horizontally group any number of subexpressions
 // <mphantom> -- make content invisible but preserve its size
 // <mstyle> -- make style changes that affect the rendering of its contents
 //
 
 class nsMathMLmrowFrame : public nsMathMLContainerFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmrowFrame)
 
@@ -30,17 +30,17 @@ public:
   InheritAutomaticData(nsIFrame* aParent) override;
 
   NS_IMETHOD
   TransmitAutomaticData() override {
     return TransmitAutomaticDataForMrowLikeElement();
   }
 
   virtual eMathMLFrameType
-  GetMathMLFrameType() override; 
+  GetMathMLFrameType() override;
 
   bool
   IsMrowLike() override {
     // <mrow> elements with a single child are treated identically to the case
     // where the child wasn't within an mrow, so we pretend the mrow isn't an
     // mrow in that situation.
     return mFrames.FirstChild() != mFrames.LastChild() ||
            !mFrames.FirstChild();
--- a/layout/mathml/nsMathMLmspaceFrame.cpp
+++ b/layout/mathml/nsMathMLmspaceFrame.cpp
@@ -26,26 +26,26 @@ nsMathMLmspaceFrame::~nsMathMLmspaceFram
 }
 
 void
 nsMathMLmspaceFrame::ProcessAttributes(nsPresContext* aPresContext)
 {
   nsAutoString value;
   float fontSizeInflation = nsLayoutUtils::FontSizeInflationFor(this);
 
-  // width 
+  // width
   //
   // "Specifies the desired width of the space."
   //
   // values: length
   // default: 0em
   //
   // The default value is "0em", so unitless values can be ignored.
   // <mspace/> is listed among MathML elements allowing negative spacing and
-  // the MathML test suite contains "Presentation/TokenElements/mspace/mspace2" 
+  // the MathML test suite contains "Presentation/TokenElements/mspace/mspace2"
   // as an example. Hence we allow negative values.
   //
   mWidth = 0;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::width, value);
   if (!value.IsEmpty()) {
     ParseNumericValue(value, &mWidth,
                       nsMathMLElement::PARSE_ALLOW_NEGATIVE,
                       aPresContext, mStyleContext, fontSizeInflation);
--- a/layout/mathml/nsMathMLmspaceFrame.h
+++ b/layout/mathml/nsMathMLmspaceFrame.h
@@ -27,29 +27,29 @@ public:
     return NS_OK;
   }
 
   virtual void
   Reflow(nsPresContext*          aPresContext,
          ReflowOutput&     aDesiredSize,
          const ReflowInput& aReflowInput,
          nsReflowStatus&          aStatus) override;
-  
+
 protected:
   explicit nsMathMLmspaceFrame(nsStyleContext* aContext) :
     nsMathMLContainerFrame(aContext, kClassID), mWidth(0), mHeight(0), mDepth(0) {}
   virtual ~nsMathMLmspaceFrame();
 
   virtual nsresult
   MeasureForWidth(DrawTarget* aDrawTarget,
                   ReflowOutput& aDesiredSize) override;
 
 private:
   nscoord mWidth;
   nscoord mHeight;
   nscoord mDepth;
 
   // helper method to initialize our member data
-  void 
+  void
   ProcessAttributes(nsPresContext* aPresContext);
 };
 
 #endif /* nsMathMLmspaceFrame_h___ */
--- a/layout/mathml/nsMathMLmsqrtFrame.h
+++ b/layout/mathml/nsMathMLmsqrtFrame.h
@@ -18,23 +18,23 @@ The MathML REC describes:
 
 The <msqrt> element is used to display square roots.
 The syntax for <msqrt> is:
   <msqrt> base </msqrt>
 
 Attributes of <msqrt> and <mroot>:
 
 None (except the attributes allowed for all MathML elements, listed in Section
-2.3.4). 
+2.3.4).
 
 The <mroot> element increments scriptlevel by 2, and sets displaystyle to
 "false", within index, but leaves both attributes unchanged within base. The
 <msqrt> element leaves both attributes unchanged within all its arguments.
 These attributes are inherited by every element from its rendering environment,
-but can be set explicitly only on <mstyle>. (See Section 3.3.4.) 
+but can be set explicitly only on <mstyle>. (See Section 3.3.4.)
 */
 
 class nsMathMLmsqrtFrame : public nsMathMLmencloseFrame {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsMathMLmsqrtFrame)
 
   friend nsIFrame* NS_NewMathMLmsqrtFrame(nsIPresShell*   aPresShell,
                                           nsStyleContext* aContext);
--- a/layout/mathml/nsMathMLmtableFrame.cpp
+++ b/layout/mathml/nsMathMLmtableFrame.cpp
@@ -279,23 +279,23 @@ public:
   }
 
   void ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
                                  const nsDisplayItemGeometry* aGeometry,
                                  nsRegion* aInvalidRegion) override
   {
     auto geometry =
       static_cast<const nsDisplayItemGenericImageGeometry*>(aGeometry);
-  
+
     if (aBuilder->ShouldSyncDecodeImages() &&
         geometry->ShouldInvalidateToSyncDecodeImages()) {
       bool snap;
       aInvalidRegion->Or(*aInvalidRegion, GetBounds(aBuilder, &snap));
     }
-  
+
     nsDisplayItem::ComputeInvalidationRegion(aBuilder, aGeometry, aInvalidRegion);
   }
 
   virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder, bool* aSnap) override
   {
     *aSnap = true;
     nsStyleBorder styleBorder = *mFrame->StyleBorder();
     nsMathMLmtdFrame* frame = static_cast<nsMathMLmtdFrame*>(mFrame);
@@ -607,20 +607,20 @@ MapAllAttributesIntoCSS(nsMathMLmtableFr
   }
 }
 
 // the align attribute of mtable can have a row number which indicates
 // from where to anchor the table, e.g., top 5 means anchor the table at
 // the top of the 5th row, axis -1 means anchor the table on the axis of
 // the last row
 
-// The REC says that the syntax is 
-// '\s*(top|bottom|center|baseline|axis)(\s+-?[0-9]+)?\s*' 
+// The REC says that the syntax is
+// '\s*(top|bottom|center|baseline|axis)(\s+-?[0-9]+)?\s*'
 // the parsing could have been simpler with that syntax
-// but for backward compatibility we make optional 
+// but for backward compatibility we make optional
 // the whitespaces between the alignment name and the row number
 
 enum eAlign {
   eAlign_top,
   eAlign_bottom,
   eAlign_center,
   eAlign_baseline,
   eAlign_axis
@@ -629,17 +629,17 @@ enum eAlign {
 static void
 ParseAlignAttribute(nsString& aValue, eAlign& aAlign, int32_t& aRowIndex)
 {
   // by default, the table is centered about the axis
   aRowIndex = 0;
   aAlign = eAlign_axis;
   int32_t len = 0;
 
-  // we only have to remove the leading spaces because 
+  // we only have to remove the leading spaces because
   // ToInteger ignores the whitespaces around the number
   aValue.CompressWhitespace(true, false);
 
   if (0 == aValue.Find("top")) {
     len = 3; // 3 is the length of 'top'
     aAlign = eAlign_top;
   }
   else if (0 == aValue.Find("bottom")) {
@@ -694,39 +694,39 @@ NS_QUERYFRAME_TAIL_INHERITING(nsTableWra
 
 nsContainerFrame*
 NS_NewMathMLmtableOuterFrame (nsIPresShell* aPresShell, nsStyleContext* aContext)
 {
   return new (aPresShell) nsMathMLmtableWrapperFrame(aContext);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmtableWrapperFrame)
- 
+
 nsMathMLmtableWrapperFrame::~nsMathMLmtableWrapperFrame()
 {
 }
 
 nsresult
 nsMathMLmtableWrapperFrame::AttributeChanged(int32_t  aNameSpaceID,
                                              nsIAtom* aAttribute,
                                              int32_t  aModType)
 {
   // Attributes specific to <mtable>:
   // frame         : in mathml.css
   // framespacing  : here
   // groupalign    : not yet supported
-  // equalrows     : not yet supported 
-  // equalcolumns  : not yet supported 
+  // equalrows     : not yet supported
+  // equalcolumns  : not yet supported
   // displaystyle  : here and in mathml.css
-  // align         : in reflow 
+  // align         : in reflow
   // rowalign      : here
-  // rowlines      : here 
+  // rowlines      : here
   // rowspacing    : here
-  // columnalign   : here 
-  // columnlines   : here 
+  // columnalign   : here
+  // columnlines   : here
   // columnspacing : here
 
   // mtable is simple and only has one (pseudo) row-group inside our inner-table
   nsIFrame* tableFrame = mFrames.FirstChild();
   NS_ASSERTION(tableFrame && tableFrame->IsTableFrame(),
                "should always have an inner table frame");
   nsIFrame* rgFrame = tableFrame->PrincipalChildList().FirstChild();
   if (!rgFrame || !rgFrame->IsTableRowGroupFrame())
@@ -1180,17 +1180,17 @@ nsMathMLmtdFrame::AttributeChanged(int32
 
     // Reparse the attribute.
     ParseFrameAttribute(this, aAttribute, false);
     return NS_OK;
   }
 
   if (aAttribute == nsGkAtoms::rowspan ||
       aAttribute == nsGkAtoms::columnspan_) {
-    // use the naming expected by the base class 
+    // use the naming expected by the base class
     if (aAttribute == nsGkAtoms::columnspan_)
       aAttribute = nsGkAtoms::colspan;
     return nsTableCellFrame::AttributeChanged(aNameSpaceID, aAttribute, aModType);
   }
 
   return NS_OK;
 }
 
--- a/layout/mathml/nsMathMLmunderoverFrame.cpp
+++ b/layout/mathml/nsMathMLmunderoverFrame.cpp
@@ -160,38 +160,38 @@ nsMathMLmunderoverFrame::SetPendingPostR
 
 NS_IMETHODIMP
 nsMathMLmunderoverFrame::TransmitAutomaticData()
 {
   // At this stage, all our children are in sync and we can fully
   // resolve our own mEmbellishData struct
   //---------------------------------------------------------------------
 
-  /* 
+  /*
   The REC says:
 
   As regards munder (respectively mover) :
   The default value of accentunder is false, unless underscript
-  is an <mo> element or an embellished operator.  If underscript is 
+  is an <mo> element or an embellished operator.  If underscript is
   an <mo> element, the value of its accent attribute is used as the
   default value of accentunder. If underscript is an embellished
   operator, the accent attribute of the <mo> element at its
   core is used as the default value. As with all attributes, an
   explicitly given value overrides the default.
 
 XXX The winner is the outermost setting in conflicting settings like these:
 <munder accentunder='true'>
   <mi>...</mi>
   <mo accentunder='false'> ... </mo>
 </munder>
 
   As regards munderover:
   The accent and accentunder attributes have the same effect as
-  the attributes with the same names on <mover>  and <munder>, 
-  respectively. Their default values are also computed in the 
+  the attributes with the same names on <mover>  and <munder>,
+  respectively. Their default values are also computed in the
   same manner as described for those elements, with the default
   value of accent depending on overscript and the default value
   of accentunder depending on underscript.
   */
 
   nsIFrame* overscriptFrame = nullptr;
   nsIFrame* underscriptFrame = nullptr;
   nsIFrame* baseFrame = mFrames.FirstChild();
@@ -272,23 +272,23 @@ XXX The winner is the outermost setting 
   }
 
   // Now transmit any change that we want to our children so that they
   // can update their mPresentationData structs
   //---------------------------------------------------------------------
 
   /* The REC says:
      Within underscript, <munderover> always sets displaystyle to "false",
-     but increments scriptlevel by 1 only when accentunder is "false". 
+     but increments scriptlevel by 1 only when accentunder is "false".
 
-     Within overscript, <munderover> always sets displaystyle to "false", 
+     Within overscript, <munderover> always sets displaystyle to "false",
      but increments scriptlevel by 1 only when accent is "false".
- 
-     Within subscript and superscript it increments scriptlevel by 1, and 
-     sets displaystyle to "false", but leaves both attributes unchanged within 
+
+     Within subscript and superscript it increments scriptlevel by 1, and
+     sets displaystyle to "false", but leaves both attributes unchanged within
      base.
 
      The TeXBook treats 'over' like a superscript, so p.141 or Rule 13a
      say it shouldn't be compressed. However, The TeXBook says
      that math accents and \overline change uncramped styles to their
      cramped counterparts.
   */
   if (mContent->IsAnyOfMathMLElements(nsGkAtoms::mover_,
@@ -302,17 +302,17 @@ XXX The winner is the outermost setting 
         mContent->IsMathMLElement(nsGkAtoms::mover_) ? 1 : 2, mIncrementOver);
     if (mIncrementOver) {
       PropagateFrameFlagFor(overscriptFrame,
                             NS_FRAME_MATHML_SCRIPT_DESCENDANT);
     }
     PropagatePresentationDataFor(overscriptFrame, compress, compress);
   }
   /*
-     The TeXBook treats 'under' like a subscript, so p.141 or Rule 13a 
+     The TeXBook treats 'under' like a subscript, so p.141 or Rule 13a
      say it should be compressed
   */
   if (mContent->IsAnyOfMathMLElements(nsGkAtoms::munder_,
                                       nsGkAtoms::munderover_)) {
     mIncrementUnder =
       !NS_MATHML_EMBELLISH_IS_ACCENTUNDER(mEmbellishData.flags) ||
       subsupDisplay;
     SetIncrementScriptLevel(1, mIncrementUnder);
@@ -349,17 +349,17 @@ XXX The winner is the outermost setting 
   return NS_OK;
 }
 
 /*
 The REC says:
 *  If the base is an operator with movablelimits="true" (or an embellished
    operator whose <mo> element core has movablelimits="true"), and
    displaystyle="false", then underscript and overscript are drawn in
-   a subscript and superscript position, respectively. In this case, 
+   a subscript and superscript position, respectively. In this case,
    the accent and accentunder attributes are ignored. This is often
    used for limits on symbols such as &sum;.
 
 i.e.,:
  if (NS_MATHML_EMBELLISH_IS_MOVABLELIMITS(mEmbellishDataflags) &&
      StyleFont()->mMathDisplay == NS_MATHML_DISPLAYSTYLE_INLINE) {
   // place like subscript-superscript pair
  }
@@ -396,17 +396,17 @@ nsMathMLmunderoverFrame::Place(DrawTarge
                    "mContent->NodeInfo()->NameAtom() not recognized");
       return nsMathMLmmultiscriptsFrame::PlaceMultiScript(PresContext(),
                                                           aDrawTarget,
                                                           aPlaceOrigin,
                                                           aDesiredSize,
                                                           this, 0, 0,
                                                           fontSizeInflation);
     }
-    
+
   }
 
   ////////////////////////////////////
   // Get the children's desired sizes
 
   nsBoundingMetrics bmBase, bmUnder, bmOver;
   ReflowOutput baseSize(aDesiredSize.GetWritingMode());
   ReflowOutput underSize(aDesiredSize.GetWritingMode());
@@ -423,17 +423,17 @@ nsMathMLmunderoverFrame::Place(DrawTarge
       underFrame = baseFrame->GetNextSibling();
     } else if (mContent->IsMathMLElement(nsGkAtoms::mover_)) {
       overFrame = baseFrame->GetNextSibling();
     }
   }
   if (underFrame && mContent->IsMathMLElement(nsGkAtoms::munderover_)) {
     overFrame = underFrame->GetNextSibling();
   }
-  
+
   if (mContent->IsMathMLElement(nsGkAtoms::munder_)) {
     if (!baseFrame || !underFrame || underFrame->GetNextSibling()) {
       // report an error, encourage people to get their markups in order
       haveError = true;
     }
   }
   if (mContent->IsMathMLElement(nsGkAtoms::mover_)) {
     if (!baseFrame || !overFrame || overFrame->GetNextSibling()) {
@@ -474,28 +474,28 @@ nsMathMLmunderoverFrame::Place(DrawTarge
   gfxFont* mathFont = fm->GetThebesFontGroup()->GetFirstMathFont();
 
   nscoord ruleThickness;
   GetRuleThickness (aDrawTarget, fm, ruleThickness);
 
   nscoord correction = 0;
   GetItalicCorrection (bmBase, correction);
 
-  // there are 2 different types of placement depending on 
+  // there are 2 different types of placement depending on
   // whether we want an accented under or not
 
   nscoord underDelta1 = 0; // gap between base and underscript
   nscoord underDelta2 = 0; // extra space beneath underscript
 
   if (!NS_MATHML_EMBELLISH_IS_ACCENTUNDER(mEmbellishData.flags)) {
     // Rule 13a, App. G, TeXbook
-    nscoord bigOpSpacing2, bigOpSpacing4, bigOpSpacing5, dummy; 
-    GetBigOpSpacings (fm, 
-                      dummy, bigOpSpacing2, 
-                      dummy, bigOpSpacing4, 
+    nscoord bigOpSpacing2, bigOpSpacing4, bigOpSpacing5, dummy;
+    GetBigOpSpacings (fm,
+                      dummy, bigOpSpacing2,
+                      dummy, bigOpSpacing4,
                       bigOpSpacing5);
     if (mathFont) {
       // XXXfredw The Open Type MATH table has some StretchStack* parameters
       // that we may use when the base is a stretchy horizontal operator. See
       // bug 963131.
       bigOpSpacing2 =
         mathFont->MathTable()->Constant(gfxMathTable::LowerLimitGapMin,
                                         oneDevPixel);
@@ -504,91 +504,91 @@ nsMathMLmunderoverFrame::Place(DrawTarge
                                         oneDevPixel);
       bigOpSpacing5 = 0;
     }
     underDelta1 = std::max(bigOpSpacing2, (bigOpSpacing4 - bmUnder.ascent));
     underDelta2 = bigOpSpacing5;
   }
   else {
     // No corresponding rule in TeXbook - we are on our own here
-    // XXX tune the gap delta between base and underscript 
+    // XXX tune the gap delta between base and underscript
     // XXX Should we use Rule 10 like \underline does?
     // XXXfredw Perhaps use the Underbar* parameters of the MATH table. See
     // bug 963125.
     underDelta1 = ruleThickness + onePixel/2;
     underDelta2 = ruleThickness;
   }
   // empty under?
   if (!(bmUnder.ascent + bmUnder.descent)) {
     underDelta1 = 0;
     underDelta2 = 0;
   }
 
   nscoord overDelta1 = 0; // gap between base and overscript
   nscoord overDelta2 = 0; // extra space above overscript
 
-  if (!NS_MATHML_EMBELLISH_IS_ACCENTOVER(mEmbellishData.flags)) {    
+  if (!NS_MATHML_EMBELLISH_IS_ACCENTOVER(mEmbellishData.flags)) {
     // Rule 13a, App. G, TeXbook
     // XXXfredw The Open Type MATH table has some StretchStack* parameters
     // that we may use when the base is a stretchy horizontal operator. See
     // bug 963131.
-    nscoord bigOpSpacing1, bigOpSpacing3, bigOpSpacing5, dummy; 
-    GetBigOpSpacings (fm, 
-                      bigOpSpacing1, dummy, 
-                      bigOpSpacing3, dummy, 
+    nscoord bigOpSpacing1, bigOpSpacing3, bigOpSpacing5, dummy;
+    GetBigOpSpacings (fm,
+                      bigOpSpacing1, dummy,
+                      bigOpSpacing3, dummy,
                       bigOpSpacing5);
     if (mathFont) {
       // XXXfredw The Open Type MATH table has some StretchStack* parameters
       // that we may use when the base is a stretchy horizontal operator. See
       // bug 963131.
       bigOpSpacing1 =
         mathFont->MathTable()->Constant(gfxMathTable::UpperLimitGapMin,
                                         oneDevPixel);
       bigOpSpacing3 =
         mathFont->MathTable()->Constant(gfxMathTable::UpperLimitBaselineRiseMin,
                                         oneDevPixel);
       bigOpSpacing5 = 0;
     }
     overDelta1 = std::max(bigOpSpacing1, (bigOpSpacing3 - bmOver.descent));
     overDelta2 = bigOpSpacing5;
 
-    // XXX This is not a TeX rule... 
+    // XXX This is not a TeX rule...
     // delta1 (as computed abvove) can become really big when bmOver.descent is
     // negative,  e.g., if the content is &OverBar. In such case, we use the height
-    if (bmOver.descent < 0)    
+    if (bmOver.descent < 0)
       overDelta1 = std::max(bigOpSpacing1, (bigOpSpacing3 - (bmOver.ascent + bmOver.descent)));
   }
   else {
     // Rule 12, App. G, TeXbook
     // We are going to modify this rule to make it more general.
     // The idea behind Rule 12 in the TeXBook is to keep the accent
     // as close to the base as possible, while ensuring that the
-    // distance between the *baseline* of the accent char and 
-    // the *baseline* of the base is atleast x-height. 
+    // distance between the *baseline* of the accent char and
+    // the *baseline* of the base is atleast x-height.
     // The idea is that for normal use, we would like all the accents
-    // on a line to line up atleast x-height above the baseline 
-    // if possible. 
-    // When the ascent of the base is >= x-height, 
+    // on a line to line up atleast x-height above the baseline
+    // if possible.
+    // When the ascent of the base is >= x-height,
     // the baseline of the accent char is placed just above the base
-    // (specifically, the baseline of the accent char is placed 
+    // (specifically, the baseline of the accent char is placed
     // above the baseline of the base by the ascent of the base).
-    // For ease of implementation, 
-    // this assumes that the font-designer designs accents 
+    // For ease of implementation,
+    // this assumes that the font-designer designs accents
     // in such a way that the bottom of the accent is atleast x-height
     // above its baseline, otherwise there will be collisions
     // with the base. Also there should be proper padding between
     // the bottom of the accent char and its baseline.
     // The above rule may not be obvious from a first
     // reading of rule 12 in the TeXBook !!!
     // The mathml <mover> tag can use accent chars that
-    // do not follow this convention. So we modify TeX's rule 
-    // so that TeX's rule gets subsumed for accents that follow 
+    // do not follow this convention. So we modify TeX's rule
+    // so that TeX's rule gets subsumed for accents that follow
     // TeX's convention,
     // while also allowing accents that do not follow the convention :
-    // we try to keep the *bottom* of the accent char atleast x-height 
+    // we try to keep the *bottom* of the accent char atleast x-height
     // from the baseline of the base char. we also slap on an extra
     // padding between the accent and base chars.
     overDelta1 = ruleThickness + onePixel/2;
     nscoord accentBaseHeight = xHeight;
     if (mathFont) {
       accentBaseHeight =
         mathFont->MathTable()->Constant(gfxMathTable::AccentBaseHeight,
                                         oneDevPixel);
@@ -629,47 +629,47 @@ nsMathMLmunderoverFrame::Place(DrawTarge
   // the overscript ourselves
   nscoord overWidth = bmOver.width;
   if (!overWidth && (bmOver.rightBearing - bmOver.leftBearing > 0)) {
     overWidth = bmOver.rightBearing - bmOver.leftBearing;
     dxOver = -bmOver.leftBearing;
   }
 
   if (NS_MATHML_EMBELLISH_IS_ACCENTOVER(mEmbellishData.flags)) {
-    mBoundingMetrics.width = bmBase.width; 
+    mBoundingMetrics.width = bmBase.width;
     if (alignPosition == center) {
       dxOver += correction;
     }
   }
   else {
     mBoundingMetrics.width = std::max(bmBase.width, overWidth);
     if (alignPosition == center) {
       dxOver += correction/2;
     }
   }
-  
+
   if (alignPosition == center) {
     dxOver += (mBoundingMetrics.width - overWidth)/2;
     dxBase = (mBoundingMetrics.width - bmBase.width)/2;
   } else if (alignPosition == right) {
     dxOver += mBoundingMetrics.width - overWidth;
     dxBase = mBoundingMetrics.width - bmBase.width;
   }
 
-  mBoundingMetrics.ascent = 
+  mBoundingMetrics.ascent =
     bmBase.ascent + overDelta1 + bmOver.ascent + bmOver.descent;
   mBoundingMetrics.descent = bmBase.descent;
-  mBoundingMetrics.leftBearing = 
+  mBoundingMetrics.leftBearing =
     std::min(dxBase + bmBase.leftBearing, dxOver + bmOver.leftBearing);
-  mBoundingMetrics.rightBearing = 
+  mBoundingMetrics.rightBearing =
     std::max(dxBase + bmBase.rightBearing, dxOver + bmOver.rightBearing);
 
   //////////
   // pass 2, do what <munder> does: attach the underscript on the previous
-  // result. We conceptually view the previous result as an "anynomous base" 
+  // result. We conceptually view the previous result as an "anynomous base"
   // from where to attach the underscript. Hence if the underscript is empty,
   // we should end up like <mover>. If the overscript is empty, we should
   // end up like <munder>.
 
   nsBoundingMetrics bmAnonymousBase = mBoundingMetrics;
   nscoord ascentAnonymousBase =
     std::max(mBoundingMetrics.ascent + overDelta2,
              overSize.BlockStartAscent() + bmOver.descent +
@@ -701,22 +701,22 @@ nsMathMLmunderoverFrame::Place(DrawTarge
 
   // adjust the offsets of the real base and overscript since their
   // final offsets should be relative to us...
   dxOver += dxAnonymousBase;
   dxBase += dxAnonymousBase;
 
   mBoundingMetrics.width =
     std::max(dxAnonymousBase + bmAnonymousBase.width, dxUnder + bmUnder.width);
-  // At this point, mBoundingMetrics.ascent = bmAnonymousBase.ascent 
-  mBoundingMetrics.descent = 
+  // At this point, mBoundingMetrics.ascent = bmAnonymousBase.ascent
+  mBoundingMetrics.descent =
     bmAnonymousBase.descent + underDelta1 + bmUnder.ascent + bmUnder.descent;
   mBoundingMetrics.leftBearing =
     std::min(dxAnonymousBase + bmAnonymousBase.leftBearing, dxUnder + bmUnder.leftBearing);
-  mBoundingMetrics.rightBearing = 
+  mBoundingMetrics.rightBearing =
     std::max(dxAnonymousBase + bmAnonymousBase.rightBearing, dxUnder + bmUnder.rightBearing);
 
   aDesiredSize.SetBlockStartAscent(ascentAnonymousBase);
   aDesiredSize.Height() = aDesiredSize.BlockStartAscent() +
     std::max(mBoundingMetrics.descent + underDelta2,
            bmAnonymousBase.descent + underDelta1 + bmUnder.ascent +
              underSize.Height() - underSize.BlockStartAscent());
   aDesiredSize.Height() = std::max(aDesiredSize.Height(),
--- a/layout/mathml/nsMathMLsemanticsFrame.cpp
+++ b/layout/mathml/nsMathMLsemanticsFrame.cpp
@@ -19,21 +19,21 @@ NS_NewMathMLsemanticsFrame(nsIPresShell*
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLsemanticsFrame)
 
 nsMathMLsemanticsFrame::~nsMathMLsemanticsFrame()
 {
 }
 
-nsIFrame* 
+nsIFrame*
 nsMathMLsemanticsFrame::GetSelectedFrame()
 {
   // By default, we will display the first child of the <semantics> element.
-  nsIFrame* childFrame = mFrames.FirstChild(); 
+  nsIFrame* childFrame = mFrames.FirstChild();
   mSelectedFrame = childFrame;
 
   // An empty <semantics> is invalid
   if (!childFrame) {
     mInvalidMarkup = true;
     return mSelectedFrame;
   }
   mInvalidMarkup = false;
--- a/layout/painting/FrameLayerBuilder.cpp
+++ b/layout/painting/FrameLayerBuilder.cpp
@@ -3893,17 +3893,17 @@ ContainerState::SetupMaskLayerForCSSMask
   // We do not repaint mask for mask position change, so update base transform
   // each time is required.
   Matrix4x4 matrix;
   matrix.PreTranslate(itemRect.x, itemRect.y, 0);
   matrix.PreTranslate(mParameters.mOffset.x, mParameters.mOffset.y, 0);
   maskLayer->SetBaseTransform(matrix);
 
   nsPoint maskLayerOffset = aMaskItem->ToReferenceFrame() - bounds.TopLeft();
-    
+
   CSSMaskLayerUserData newUserData(aMaskItem->Frame(), itemRect, maskLayerOffset);
   nsRect dirtyRect;
   if (!aMaskItem->IsInvalid(dirtyRect) && *oldUserData == newUserData) {
     aLayer->SetMaskLayer(maskLayer);
     return;
   }
 
   int32_t maxSize = mManager->GetMaxTextureSize();
--- a/layout/painting/FrameLayerBuilder.h
+++ b/layout/painting/FrameLayerBuilder.h
@@ -284,39 +284,39 @@ struct ContainerLayerParameters {
     // If we're in a transformed subtree, but no ancestor transform is actively
     // changing, we'll use the residual translation when drawing into the
     // PaintedLayer to ensure that snapping exactly matches the ideal transform.
     return mInTransformedSubtree && !mInActiveTransformedSubtree;
   }
 };
 
 /**
- * The FrameLayerBuilder is responsible for converting display lists 
+ * The FrameLayerBuilder is responsible for converting display lists
  * into layer trees. Every LayerManager needs a unique FrameLayerBuilder
  * to build layers.
- * 
+ *
  * The most important API in this class is BuildContainerLayerFor. This
  * method takes a display list as input and constructs a ContainerLayer
  * with child layers that render the contents of the display list. It
  * records the relationship between frames and layers.
- * 
+ *
  * That data enables us to retain layer trees. When constructing a
  * ContainerLayer, we first check to see if there's an existing
  * ContainerLayer for the same frame that can be recycled. If we recycle
  * it, we also try to reuse its existing PaintedLayer children to render
  * the display items without layers of their own. The idea is that by
  * recycling layers deterministically, we can ensure that when nothing
  * changes in a display list, we will reuse the existing layers without
  * changes.
- * 
+ *
  * We expose a GetLeafLayerFor method that can be called by display items
  * that make their own layers (e.g. canvas and video); this method
  * locates the last layer used to render the display item, if any, and
  * return it as a candidate for recycling.
- * 
+ *
  * FrameLayerBuilder sets up PaintedLayers so that 0,0 in the Painted layer
  * corresponds to the (pixel-snapped) top-left of the aAnimatedGeometryRoot.
  * It sets up ContainerLayers so that 0,0 in the container layer
  * corresponds to the snapped top-left of the display item reference frame.
  *
  * When we construct a container layer, we know the transform that will be
  * applied to the layer. If the transform scales the content, we can get
  * better results when intermediate buffers are used by pushing some scale
@@ -495,18 +495,18 @@ public:
                             LayerState aLayerState,
                             const nsPoint& aTopLeft);
 
   /**
    * Calls GetOldLayerForFrame on the underlying frame of the display item,
    * and each subsequent merged frame if no layer is found for the underlying
    * frame.
    */
-  Layer* GetOldLayerFor(nsDisplayItem* aItem, 
-                        nsDisplayItemGeometry** aOldGeometry = nullptr, 
+  Layer* GetOldLayerFor(nsDisplayItem* aItem,
+                        nsDisplayItemGeometry** aOldGeometry = nullptr,
                         DisplayItemClip** aOldClip = nullptr);
 
   void ClearCachedGeometry(nsDisplayItem* aItem);
 
   static Layer* GetDebugOldLayerFor(nsIFrame* aFrame, uint32_t aDisplayItemKey);
 
   /**
    * Return the layer that all display items of aFrame were assigned to in the
@@ -578,21 +578,21 @@ public:
    * being rendered at, as well as any currently-inactive transforms between
    * aFrame and that container layer.
    */
   static gfxSize GetPaintedLayerScaleForFrame(nsIFrame* aFrame);
 
   /**
    * Stores a Layer as the dedicated layer in the DisplayItemData for a given frame/key pair.
    *
-   * Used when we optimize a PaintedLayer into an ImageLayer and want to retroactively update the 
+   * Used when we optimize a PaintedLayer into an ImageLayer and want to retroactively update the
    * DisplayItemData so we can retrieve the layer from within layout.
    */
   void StoreOptimizedLayerForFrame(nsDisplayItem* aItem, Layer* aLayer);
-  
+
   static void RemoveFrameFromLayerManager(const nsIFrame* aFrame,
                                           SmallPointerArray<DisplayItemData>& aArray);
 
 protected:
 
   friend class LayerManagerData;
 
   /**
@@ -625,24 +625,24 @@ protected:
    * poke the LayerManagerData's mFramesWithLayers hashtable.
    */
   DisplayItemData* GetDisplayItemData(nsIFrame *aFrame, uint32_t aKey);
 
   /*
    * Get the DisplayItemData associated with this frame / display item pair,
    * using the LayerManager instead of FrameLayerBuilder.
    */
-  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame, 
-                                                       uint32_t aDisplayItemKey, 
+  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame,
+                                                       uint32_t aDisplayItemKey,
                                                        LayerManager* aManager);
-  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame, 
+  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame,
                                                        uint32_t aDisplayItemKey);
   static DisplayItemData* GetDisplayItemDataForManager(nsDisplayItem* aItem, LayerManager* aManager);
-  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame, 
-                                                       uint32_t aDisplayItemKey, 
+  static DisplayItemData* GetDisplayItemDataForManager(nsIFrame* aFrame,
+                                                       uint32_t aDisplayItemKey,
                                                        LayerManagerData* aData);
 
   /**
    * We store one of these for each display item associated with a
    * PaintedLayer, in a hashtable that maps each PaintedLayer to an array
    * of ClippedDisplayItems. (PaintedLayerItemsEntry is the hash entry
    * for that hashtable.)
    * These are only stored during the paint process, so that the
--- a/layout/painting/nsCSSRendering.h
+++ b/layout/painting/nsCSSRendering.h
@@ -109,22 +109,22 @@ struct nsCSSRendering {
   typedef mozilla::layers::LayerManager LayerManager;
   typedef mozilla::image::DrawResult DrawResult;
   typedef nsIFrame::Sides Sides;
 
   /**
    * Initialize any static variables used by nsCSSRendering.
    */
   static void Init();
-  
+
   /**
    * Clean up any static variables used by nsCSSRendering.
    */
   static void Shutdown();
-  
+
   static bool GetShadowInnerRadii(nsIFrame* aFrame,
                                   const nsRect& aFrameArea,
                                   RectCornerRadii& aOutInnerRadii);
   static nsRect GetBoxShadowInnerPaddingRect(nsIFrame* aFrame,
                                              const nsRect& aFrameArea);
   static bool ShouldPaintBoxShadowInner(nsIFrame* aFrame);
   static void PaintBoxShadowInner(nsPresContext* aPresContext,
                                   gfxContext& aRenderingContext,
@@ -742,17 +742,17 @@ public:
    *                             set the color on this context before
    *                             calling Init().
    *
    * @param aDirtyRect           The absolute dirty rect in app units. Used to
    *                             optimize the temporary surface size and speed up blur.
    *
    * @param aSkipRect            An area in device pixels (NOT app units!) to avoid
    *                             blurring over, to prevent unnecessary work.
-   *                             
+   *
    * @param aFlags               FORCE_MASK to ensure that the content drawn to the
    *                             returned gfxContext is used as a mask, and not
    *                             drawn directly to aDestinationCtx.
    *
    * @return            A blank 8-bit alpha-channel-only graphics context to
    *                    draw on, or null on error. Must not be freed. The
    *                    context has a device offset applied to it given by
    *                    aRect. This means you can use coordinates as if it
--- a/layout/painting/nsDisplayItemTypes.h
+++ b/layout/painting/nsDisplayItemTypes.h
@@ -5,17 +5,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
 /**
  * It's useful to be able to dynamically check the type of certain items.
  * Every subclass of nsDisplayItem must have a new type added here for the purposes
  * of easy comparison and matching of items in different display lists.
- * 
+ *
  * This is #included inside nsDisplayItem.
  */
 
 
 enum Type {
   TYPE_ZERO = 0, /** Spacer so that the first item starts at 1 */
 
 #define DECLARE_DISPLAY_ITEM_TYPE(name) TYPE_##name,
--- a/layout/printing/nsPagePrintTimer.cpp
+++ b/layout/printing/nsPagePrintTimer.cpp
@@ -75,17 +75,17 @@ nsPagePrintTimer::StopWatchDogTimer()
   if (mWatchDogTimer) {
     mWatchDogTimer->Cancel();
     mWatchDogTimer = nullptr;
   }
 }
 
 //nsRunnable
 NS_IMETHODIMP
-nsPagePrintTimer::Run() 
+nsPagePrintTimer::Run()
 {
   bool initNewTimer = true;
   // Check to see if we are done
   // inRange will be true if a page is actually printed
   bool inRange;
   bool donePrinting;
 
   // donePrinting will be true if it completed successfully or
@@ -97,17 +97,17 @@ nsPagePrintTimer::Run()
       initNewTimer = false;
       mDone = true;
     }
   }
 
   // Note that the Stop() destroys this after the print job finishes
   // (The PrintEngine stops holding a reference when DonePrintingPages
   // returns true.)
-  Stop(); 
+  Stop();
   if (initNewTimer) {
     ++mFiringCount;
     nsresult result = StartTimer(inRange);
     if (NS_FAILED(result)) {
       mDone = true;     // had a failure.. we are finished..
       if (mPrintEngine) {
         mPrintEngine->SetIsPrinting(false);
       }
--- a/layout/printing/nsPrintPreviewListener.cpp
+++ b/layout/printing/nsPrintPreviewListener.cpp
@@ -38,17 +38,17 @@ nsPrintPreviewListener::nsPrintPreviewLi
 nsPrintPreviewListener::~nsPrintPreviewListener()
 {
 }
 
 //-------------------------------------------------------
 //
 // AddListeners
 //
-// Subscribe to the events that will allow us to track various events. 
+// Subscribe to the events that will allow us to track various events.
 //
 nsresult
 nsPrintPreviewListener::AddListeners()
 {
   if (mEventTarget) {
     mEventTarget->AddEventListener(NS_LITERAL_STRING("click"), this, true);
     mEventTarget->AddEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
     mEventTarget->AddEventListener(NS_LITERAL_STRING("keydown"), this, true);
@@ -67,19 +67,19 @@ nsPrintPreviewListener::AddListeners()
   return NS_OK;
 }
 
 
 //-------------------------------------------------------
 //
 // RemoveListeners
 //
-// Unsubscribe from all the various events that we were listening to. 
+// Unsubscribe from all the various events that we were listening to.
 //
-nsresult 
+nsresult
 nsPrintPreviewListener::RemoveListeners()
 {
   if (mEventTarget) {
     mEventTarget->RemoveEventListener(NS_LITERAL_STRING("click"), this, true);
     mEventTarget->RemoveEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
     mEventTarget->RemoveEventListener(NS_LITERAL_STRING("keydown"), this, true);
     mEventTarget->RemoveEventListener(NS_LITERAL_STRING("keypress"), this, true);
     mEventTarget->RemoveEventListener(NS_LITERAL_STRING("keyup"), this, true);
@@ -127,18 +127,18 @@ GetActionForEvent(nsIDOMEvent* aEvent)
     // Don't consume keydown event because following keypress event may be
     // handled as access key or shortcut key.
     return (keyEvent->mMessage == eKeyDown) ? eEventAction_StopPropagation :
                                               eEventAction_Suppress;
   }
 
   static const uint32_t kOKKeyCodes[] = {
     NS_VK_PAGE_UP, NS_VK_PAGE_DOWN,
-    NS_VK_UP,      NS_VK_DOWN, 
-    NS_VK_HOME,    NS_VK_END 
+    NS_VK_UP,      NS_VK_DOWN,
+    NS_VK_HOME,    NS_VK_END
   };
 
   if (keyEvent->mKeyCode == NS_VK_TAB) {
     return keyEvent->IsShift() ? eEventAction_ShiftTab : eEventAction_Tab;
   }
 
   if (keyEvent->mCharCode == ' ' || keyEvent->mKeyCode == NS_VK_SPACE) {
     return eEventAction_Propagate;
--- a/layout/style/CSSStyleSheet.cpp
+++ b/layout/style/CSSStyleSheet.cpp
@@ -261,17 +261,17 @@ AddNamespaceRuleToMap(css::Rule* aRule, 
   RefPtr<css::NameSpaceRule> nameSpaceRule = do_QueryObject(aRule);
 
   nsAutoString  urlSpec;
   nameSpaceRule->GetURLSpec(urlSpec);
 
   aMap->AddPrefix(nameSpaceRule->GetPrefix(), urlSpec);
 }
 
-void 
+void
 CSSStyleSheetInner::RebuildNameSpaces()
 {
   // Just nuke our existing namespace map, if any
   if (NS_SUCCEEDED(CreateNamespaceMap())) {
     for (css::Rule* rule : mOrderedRules) {
       switch (rule->GetType()) {
         case css::Rule::NAMESPACE_RULE:
           AddNamespaceRuleToMap(rule, mNameSpaceMap);
--- a/layout/style/ImageLoader.cpp
+++ b/layout/style/ImageLoader.cpp
@@ -317,17 +317,17 @@ ImageLoader::GetPresContext()
   nsIPresShell* shell = mDocument->GetShell();
   if (!shell) {
     return nullptr;
   }
 
   return shell->GetPresContext();
 }
 
-void InvalidateImagesCallback(nsIFrame* aFrame, 
+void InvalidateImagesCallback(nsIFrame* aFrame,
                               DisplayItemData* aItem)
 {
   nsDisplayItem::Type type = nsDisplayItem::GetDisplayItemTypeFromKey(aItem->GetDisplayItemKey());
   uint8_t flags = nsDisplayItem::GetDisplayItemFlagsForType(type);
 
   if (flags & nsDisplayItem::TYPE_RENDERS_NO_IMAGES) {
     return;
   }
@@ -411,17 +411,17 @@ ImageLoader::Notify(imgIRequest* aReques
     }
   }
 
   return NS_OK;
 }
 
 nsresult
 ImageLoader::OnSizeAvailable(imgIRequest* aRequest, imgIContainer* aImage)
-{ 
+{
   nsPresContext* presContext = GetPresContext();
   if (!presContext) {
     return NS_OK;
   }
 
   aImage->SetAnimationMode(presContext->ImageAnimationMode());
 
   return NS_OK;
--- a/layout/style/nsCSSKeywords.cpp
+++ b/layout/style/nsCSSKeywords.cpp
@@ -18,17 +18,17 @@ const char* const kCSSRawKeywords[] = {
 #include "nsCSSKeywordList.h"
 };
 #undef CSS_KEY
 
 static int32_t gKeywordTableRefCount;
 static nsStaticCaseInsensitiveNameTable* gKeywordTable;
 
 void
-nsCSSKeywords::AddRefTable(void) 
+nsCSSKeywords::AddRefTable(void)
 {
   if (0 == gKeywordTableRefCount++) {
     NS_ASSERTION(!gKeywordTable, "pre existing array!");
     gKeywordTable =
       new nsStaticCaseInsensitiveNameTable(kCSSRawKeywords, eCSSKeyword_COUNT);
 #ifdef DEBUG
     // Partially verify the entries.
     int32_t index = 0;
@@ -37,43 +37,43 @@ nsCSSKeywords::AddRefTable(void)
       NS_ASSERTION(-1 == temp.FindChar('_'), "underscore char in table");
     }
     NS_ASSERTION(index == eCSSKeyword_COUNT, "kCSSRawKeywords and eCSSKeyword_COUNT are out of sync");
 #endif
   }
 }
 
 void
-nsCSSKeywords::ReleaseTable(void) 
+nsCSSKeywords::ReleaseTable(void)
 {
   if (0 == --gKeywordTableRefCount) {
     if (gKeywordTable) {
       delete gKeywordTable;
       gKeywordTable = nullptr;
     }
   }
 }
 
-nsCSSKeyword 
+nsCSSKeyword
 nsCSSKeywords::LookupKeyword(const nsACString& aKeyword)
 {
   NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
   if (gKeywordTable) {
     return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
-  }  
+  }
   return eCSSKeyword_UNKNOWN;
 }
 
-nsCSSKeyword 
+nsCSSKeyword
 nsCSSKeywords::LookupKeyword(const nsAString& aKeyword)
 {
   NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
   if (gKeywordTable) {
     return nsCSSKeyword(gKeywordTable->Lookup(aKeyword));
-  }  
+  }
   return eCSSKeyword_UNKNOWN;
 }
 
 const nsCString&
 nsCSSKeywords::GetStringValue(nsCSSKeyword aKeyword)
 {
   NS_ASSERTION(gKeywordTable, "no lookup table, needs addref");
   NS_ASSERTION(0 <= aKeyword && aKeyword < eCSSKeyword_COUNT, "out of range");
--- a/layout/style/nsCSSPropertyID.h
+++ b/layout/style/nsCSSPropertyID.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* enum types for CSS properties and their values */
- 
+
 #ifndef nsCSSPropertyID_h___
 #define nsCSSPropertyID_h___
 
 #include <nsHashKeys.h>
 
 /*
    Declare the enum list using the magic of preprocessing
    enum values are "eCSSProperty_foo" (where foo is the property)
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -2496,17 +2496,17 @@ nsCSSProps::ValueToKeywordEnum(int32_t a
     }
     if (aValue == entry.mValue) {
       return entry.mKeyword;
     }
   }
   return eCSSKeyword_UNKNOWN;
 }
 
-const nsCString& 
+const nsCString&
 nsCSSProps::ValueToKeyword(int32_t aValue, const KTableEntry aTable[])
 {
   nsCSSKeyword keyword = ValueToKeywordEnum(aValue, aTable);
   if (keyword == eCSSKeyword_UNKNOWN) {
     static nsDependentCString sNullStr("");
     return sNullStr;
   } else {
     return nsCSSKeywords::GetStringValue(keyword);
--- a/layout/style/nsCSSProps.h
+++ b/layout/style/nsCSSProps.h
@@ -751,17 +751,17 @@ public:
   // Not const because we modify its entries when the pref
   // "layout.css.float-logical-values.enabled" changes:
   static KTableEntry kClearKTable[];
   static const KTableEntry kColorKTable[];
   static const KTableEntry kContentKTable[];
   static const KTableEntry kControlCharacterVisibilityKTable[];
   static const KTableEntry kCursorKTable[];
   static const KTableEntry kDirectionKTable[];
-  // Not const because we modify its entries when various 
+  // Not const because we modify its entries when various
   // "layout.css.*.enabled" prefs changes:
   static KTableEntry kDisplayKTable[];
   static const KTableEntry kElevationKTable[];
   static const KTableEntry kEmptyCellsKTable[];
   // -- tables for parsing the {align,justify}-{content,items,self} properties --
   static const KTableEntry kAlignAllKeywords[];
   static const KTableEntry kAlignOverflowPosition[]; // <overflow-position>
   static const KTableEntry kAlignSelfPosition[];     // <self-position>
--- a/layout/style/nsCSSRuleProcessor.cpp
+++ b/layout/style/nsCSSRuleProcessor.cpp
@@ -1156,17 +1156,17 @@ nsCSSRuleProcessor::InitSystemMetrics()
   if (NS_SUCCEEDED(rv) && metricResult) {
     sSystemMetrics->AppendElement(nsGkAtoms::windows_classic);
   }
 
   rv = LookAndFeel::GetInt(LookAndFeel::eIntID_TouchEnabled, &metricResult);
   if (NS_SUCCEEDED(rv) && metricResult) {
     sSystemMetrics->AppendElement(nsGkAtoms::touch_enabled);
   }
- 
+
   rv = LookAndFeel::GetInt(LookAndFeel::eIntID_SwipeAnimationEnabled,
                            &metricResult);
   if (NS_SUCCEEDED(rv) && metricResult) {
     sSystemMetrics->AppendElement(nsGkAtoms::swipe_animation_enabled);
   }
 
   rv = LookAndFeel::GetInt(LookAndFeel::eIntID_PhysicalHomeButton,
                            &metricResult);
@@ -1550,17 +1550,17 @@ checkGenericEmptyMatches(Element* aEleme
   int32_t index = -1;
 
   if (aTreeMatchContext.mForStyling)
     aElement->SetFlags(NODE_HAS_EMPTY_SELECTOR);
 
   do {
     child = aElement->GetChildAt(++index);
     // stop at first non-comment (and non-whitespace for
-    // :-moz-only-whitespace) node        
+    // :-moz-only-whitespace) node
   } while (child && !IsSignificantChild(child, true, isWhitespaceSignificant));
   return (child == nullptr);
 }
 
 // Arrays of the states that are relevant for various pseudoclasses.
 static const EventStates sPseudoClassStateDependences[] = {
 #define CSS_PSEUDO_CLASS(_name, _value, _flags, _pref) \
   EventStates(),
@@ -3138,17 +3138,17 @@ nsCSSRuleProcessor::AppendFontFaceRules(
                               nsTArray<nsFontFaceRuleContainer>& aArray)
 {
   RuleCascadeData* cascade = GetRuleCascade(aPresContext);
 
   if (cascade) {
     if (!aArray.AppendElements(cascade->mFontFaceRules))
       return false;
   }
-  
+
   return true;
 }
 
 nsCSSKeyframesRule*
 nsCSSRuleProcessor::KeyframesRuleForName(nsPresContext* aPresContext,
                                          const nsString& aName)
 {
   RuleCascadeData* cascade = GetRuleCascade(aPresContext);
@@ -3182,17 +3182,17 @@ nsCSSRuleProcessor::AppendPageRules(
 {
   RuleCascadeData* cascade = GetRuleCascade(aPresContext);
 
   if (cascade) {
     if (!aArray.AppendElements(cascade->mPageRules)) {
       return false;
     }
   }
-  
+
   return true;
 }
 
 bool
 nsCSSRuleProcessor::AppendFontFeatureValuesRules(
                               nsPresContext *aPresContext,
                               nsTArray<nsCSSFontFeatureValuesRule*>& aArray)
 {
--- a/layout/style/nsCSSRuleProcessor.h
+++ b/layout/style/nsCSSRuleProcessor.h
@@ -250,17 +250,17 @@ public:
     mInRuleProcessorCache = aVal;
   }
   bool IsInRuleProcessorCache() const { return mInRuleProcessorCache; }
   bool IsUsedByMultipleStyleSets() const { return mStyleSetRefCnt > 1; }
 
 #ifdef XP_WIN
   // Cached theme identifier for the moz-windows-theme media query.
   static uint8_t GetWindowsThemeIdentifier();
-  static void SetWindowsThemeIdentifier(uint8_t aId) { 
+  static void SetWindowsThemeIdentifier(uint8_t aId) {
     sWinThemeId = aId;
   }
 #endif
 
   struct StateSelector {
     StateSelector(mozilla::EventStates aStates, nsCSSSelector* aSelector)
       : mStates(aStates),
         mSelector(aSelector)
--- a/layout/style/nsCSSRules.h
+++ b/layout/style/nsCSSRules.h
@@ -79,17 +79,17 @@ public:
 
   // @media rule methods
   nsresult SetMedia(nsMediaList* aMedia);
 
   // WebIDL interface
   void GetCssTextImpl(nsAString& aCssText) const override;
   using CSSMediaRule::SetConditionText;
   dom::MediaList* Media() override;
-  
+
   virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf)
     const override MOZ_MUST_OVERRIDE;
 
 protected:
   void AppendConditionText(nsAString& aOutput) const;
 
   RefPtr<nsMediaList> mMedia;
 };
--- a/layout/style/nsCSSValue.h
+++ b/layout/style/nsCSSValue.h
@@ -630,47 +630,47 @@ public:
     { return eCSSUnit_PhysicalMillimeter <= mUnit && mUnit <= eCSSUnit_Pixel; }
   bool      IsLengthPercentCalcUnit() const
     { return IsLengthUnit() || mUnit == eCSSUnit_Percent || IsCalcUnit(); }
   /**
    * A "fixed" length unit is one that means a specific physical length
    * which we try to match based on the physical characteristics of an
    * output device.
    */
-  bool      IsFixedLengthUnit() const  
+  bool      IsFixedLengthUnit() const
     { return mUnit == eCSSUnit_PhysicalMillimeter; }
   /**
    * What the spec calls relative length units is, for us, split
    * between relative length units and pixel length units.
-   * 
+   *
    * A "relative" length unit is a multiple of some derived metric,
    * such as a font em-size, which itself was controlled by an input CSS
    * length. Relative length units should not be scaled by zooming, since
    * the underlying CSS length would already have been scaled.
    */
-  bool      IsRelativeLengthUnit() const  
+  bool      IsRelativeLengthUnit() const
     { return eCSSUnit_EM <= mUnit && mUnit <= eCSSUnit_RootEM; }
   /**
    * A "pixel" length unit is a some multiple of CSS pixels.
    */
   static bool IsPixelLengthUnit(nsCSSUnit aUnit)
     { return eCSSUnit_Point <= aUnit && aUnit <= eCSSUnit_Pixel; }
   bool      IsPixelLengthUnit() const
     { return IsPixelLengthUnit(mUnit); }
   static bool IsPercentLengthUnit(nsCSSUnit aUnit)
     { return aUnit == eCSSUnit_Percent; }
   bool      IsPercentLengthUnit()
     { return IsPercentLengthUnit(mUnit); }
   static bool IsFloatUnit(nsCSSUnit aUnit)
     { return eCSSUnit_Number <= aUnit; }
-  bool      IsAngularUnit() const  
+  bool      IsAngularUnit() const
     { return eCSSUnit_Degree <= mUnit && mUnit <= eCSSUnit_Turn; }
-  bool      IsFrequencyUnit() const  
+  bool      IsFrequencyUnit() const
     { return eCSSUnit_Hertz <= mUnit && mUnit <= eCSSUnit_Kilohertz; }
-  bool      IsTimeUnit() const  
+  bool      IsTimeUnit() const
     { return eCSSUnit_Seconds <= mUnit && mUnit <= eCSSUnit_Milliseconds; }
   bool      IsCalcUnit() const
     { return eCSSUnit_Calc <= mUnit && mUnit <= eCSSUnit_Calc_Divided; }
 
   bool      UnitHasStringValue() const
     { return eCSSUnit_String <= mUnit && mUnit <= eCSSUnit_Element; }
   bool      UnitHasArrayValue() const
     { return eCSSUnit_Array <= mUnit && mUnit <= eCSSUnit_Calc_Divided; }
@@ -1408,18 +1408,18 @@ struct nsCSSValueTriplet {
     {
         MOZ_COUNT_CTOR(nsCSSValueTriplet);
     }
     explicit nsCSSValueTriplet(nsCSSUnit aUnit)
         : mXValue(aUnit), mYValue(aUnit), mZValue(aUnit)
     {
         MOZ_COUNT_CTOR(nsCSSValueTriplet);
     }
-    nsCSSValueTriplet(const nsCSSValue& aXValue, 
-                      const nsCSSValue& aYValue, 
+    nsCSSValueTriplet(const nsCSSValue& aXValue,
+                      const nsCSSValue& aYValue,
                       const nsCSSValue& aZValue)
         : mXValue(aXValue), mYValue(aYValue), mZValue(aZValue)
     {
         MOZ_COUNT_CTOR(nsCSSValueTriplet);
     }
     nsCSSValueTriplet(const nsCSSValueTriplet& aCopy)
         : mXValue(aCopy.mXValue), mYValue(aCopy.mYValue), mZValue(aCopy.mZValue)
     {
--- a/layout/style/nsDOMCSSRect.cpp
+++ b/layout/style/nsDOMCSSRect.cpp
@@ -29,17 +29,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMCSSRect)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMCSSRect)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsDOMCSSRect, mTop, mBottom, mLeft, mRight)
- 
+
 JSObject*
 nsDOMCSSRect::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
  return dom::RectBinding::Wrap(cx, this, aGivenProto);
 }
 
 NS_IMETHODIMP
 nsDOMCSSRect::GetTop(nsIDOMCSSPrimitiveValue** aTop)
--- a/layout/style/nsFontFaceLoader.h
+++ b/layout/style/nsFontFaceLoader.h
@@ -24,17 +24,17 @@ class nsIPrincipal;
 class nsFontFaceLoader : public nsIStreamLoaderObserver
 {
 public:
   nsFontFaceLoader(gfxUserFontEntry* aFontToLoad, nsIURI* aFontURI,
                    mozilla::dom::FontFaceSet* aFontFaceSet,
                    nsIChannel* aChannel);
 
   NS_DECL_ISUPPORTS
-  NS_DECL_NSISTREAMLOADEROBSERVER 
+  NS_DECL_NSISTREAMLOADEROBSERVER
 
   // initiate the load
   nsresult Init();
   // cancel the load and remove its reference to mFontFaceSet
   void Cancel();
 
   void DropChannel() { mChannel = nullptr; }
 
--- a/layout/style/nsHTMLCSSStyleSheet.h
+++ b/layout/style/nsHTMLCSSStyleSheet.h
@@ -62,17 +62,17 @@ public:
   void PseudoElementRulesMatching(mozilla::dom::Element* aPseudoElement,
                                   mozilla::CSSPseudoElementType aPseudoType,
                                   nsRuleWalker* aRuleWalker);
 
   void CacheStyleAttr(const nsAString& aSerialized, MiscContainer* aValue);
   void EvictStyleAttr(const nsAString& aSerialized, MiscContainer* aValue);
   MiscContainer* LookupStyleAttr(const nsAString& aSerialized);
 
-private: 
+private:
   ~nsHTMLCSSStyleSheet();
 
   nsHTMLCSSStyleSheet(const nsHTMLCSSStyleSheet& aCopy) = delete;
   nsHTMLCSSStyleSheet& operator=(const nsHTMLCSSStyleSheet& aCopy) = delete;
 
 protected:
   nsDataHashtable<nsStringHashKey, MiscContainer*> mCachedStyleAttrs;
 };
--- a/layout/style/nsHTMLStyleSheet.cpp
+++ b/layout/style/nsHTMLStyleSheet.cpp
@@ -75,17 +75,17 @@ nsHTMLStyleSheet::HTMLColorRule::List(FI
   nsAutoCString indentStr;
   for (int32_t index = aIndent; --index >= 0; ) {
     indentStr.AppendLiteral("  ");
   }
   fprintf_stderr(out, "%s[html color rule] {}\n", indentStr.get());
 }
 #endif
 
- 
+
 NS_IMPL_ISUPPORTS(nsHTMLStyleSheet::GenericTableRule, nsIStyleRule)
 
 #ifdef DEBUG
 /* virtual */ void
 nsHTMLStyleSheet::GenericTableRule::List(FILE* out, int32_t aIndent) const
 {
   nsAutoCString indentStr;
   for (int32_t index = aIndent; --index >= 0; ) {
@@ -371,17 +371,17 @@ nsHTMLStyleSheet::HasStateDependentStyle
 {
   if (aData->mElement->IsHTMLElement(nsGkAtoms::a) &&
       nsCSSRuleProcessor::IsLink(aData->mElement) &&
       ((mActiveRule && aData->mStateMask.HasState(NS_EVENT_STATE_ACTIVE)) ||
        (mLinkRule && aData->mStateMask.HasState(NS_EVENT_STATE_VISITED)) ||
        (mVisitedRule && aData->mStateMask.HasState(NS_EVENT_STATE_VISITED)))) {
     return eRestyle_Self;
   }
-  
+
   return nsRestyleHint(0);
 }
 
 /* virtual */ nsRestyleHint
 nsHTMLStyleSheet::HasStateDependentStyle(PseudoElementStateRuleProcessorData* aData)
 {
   return nsRestyleHint(0);
 }
--- a/layout/style/nsIStyleRuleProcessor.h
+++ b/layout/style/nsIStyleRuleProcessor.h
@@ -32,18 +32,18 @@ class nsPresContext;
 // {c1d6001e-4fcb-4c40-bce1-5eba80bfd8f3}
 #define NS_ISTYLE_RULE_PROCESSOR_IID     \
 { 0xc1d6001e, 0x4fcb, 0x4c40, \
   {0xbc, 0xe1, 0x5e, 0xba, 0x80, 0xbf, 0xd8, 0xf3} }
 
 
 /* The style rule processor interface is a mechanism to separate the matching
  * of style rules from style sheet instances.
- * Simple style sheets can and will act as their own processor. 
- * Sheets where rule ordering interlaces between multiple sheets, will need to 
+ * Simple style sheets can and will act as their own processor.
+ * Sheets where rule ordering interlaces between multiple sheets, will need to
  * share a single rule processor between them (CSS sheets do this for cascading order)
  *
  * @see nsIStyleRule (for significantly more detailed comments)
  */
 class nsIStyleRuleProcessor : public nsISupports {
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISTYLE_RULE_PROCESSOR_IID)
 
--- a/layout/style/nsMediaList.h
+++ b/layout/style/nsMediaList.h
@@ -212,17 +212,17 @@ private:
   }
 
 public:
 
   void SetNegated()                     { mNegated = true; }
   void SetHasOnly()                     { mHasOnly = true; }
   void SetTypeOmitted()                 { mTypeOmitted = true; }
   void SetHadUnknownExpression()        { mHadUnknownExpression = true; }
-  void SetType(nsIAtom* aMediaType)     { 
+  void SetType(nsIAtom* aMediaType)     {
                                           NS_ASSERTION(aMediaType,
                                                        "expected non-null");
                                           mMediaType = aMediaType;
                                         }
 
   // Return a new nsMediaExpression in the array for the caller to fill
   // in.  The caller must either fill it in completely, or call
   // SetHadUnknownExpression on this nsMediaQuery.
--- a/layout/style/nsRuleProcessorData.h
+++ b/layout/style/nsRuleProcessorData.h
@@ -57,17 +57,17 @@ class MOZ_STACK_CLASS AncestorFilter {
     return true;
   }
 
   bool HasFilter() const { return mFilter; }
 
 #ifdef DEBUG
   void AssertHasAllAncestors(mozilla::dom::Element *aElement) const;
 #endif
-  
+
  private:
   // Using 2^12 slots makes the Bloom filter a nice round page in
   // size, so let's do that.  We get a false positive rate of 1% or
   // less even with several hundred things in the filter.  Note that
   // we allocate the filter lazily, because not all tree match
   // contexts can use one effectively.
   typedef mozilla::BloomFilter<12, nsIAtom> Filter;
   nsAutoPtr<Filter> mFilter;
@@ -100,17 +100,17 @@ class MOZ_STACK_CLASS AncestorFilter {
  */
 struct MOZ_STACK_CLASS TreeMatchContext {
   // Reset this context for matching for the style-if-:visited.
   void ResetForVisitedMatching() {
     NS_PRECONDITION(mForStyling, "Why is this being called?");
     mHaveRelevantLink = false;
     mVisitedHandling = nsRuleWalker::eRelevantLinkVisited;
   }
-  
+
   void ResetForUnvisitedMatching() {
     NS_PRECONDITION(mForStyling, "Why is this being called?");
     mHaveRelevantLink = false;
     mVisitedHandling = nsRuleWalker::eRelevantLinkUnvisited;
   }
 
   void SetHaveRelevantLink() { mHaveRelevantLink = true; }
   bool HaveRelevantLink() const { return mHaveRelevantLink; }
@@ -159,17 +159,17 @@ struct MOZ_STACK_CLASS TreeMatchContext 
 
   void PopStyleScope(mozilla::dom::Element* aElement)
   {
     NS_PRECONDITION(aElement, "aElement must not be null");
     if (mStyleScopes.SafeLastElement(nullptr) == aElement) {
       mStyleScopes.TruncateLength(mStyleScopes.Length() - 1);
     }
   }
- 
+
   bool PopStyleScopeForSelectorMatching(mozilla::dom::Element* aElement)
   {
     NS_ASSERTION(mForScopedStyle, "only call PopStyleScopeForSelectorMatching "
                                   "when mForScopedStyle is true");
 
     if (!mCurrentStyleScope) {
       return false;
     }
@@ -474,25 +474,25 @@ struct MOZ_STACK_CLASS ElementDependentR
     , mElement(aElement)
     , mTreeMatchContext(aTreeMatchContext)
   {
     NS_ASSERTION(aElement, "null element leaked into SelectorMatches");
     NS_ASSERTION(aElement->OwnerDoc(), "Document-less node here?");
     NS_PRECONDITION(aTreeMatchContext.mForStyling == !!aRuleWalker,
                     "Should be styling if and only if we have a rule walker");
   }
-  
+
   mozilla::dom::Element* const mElement; // weak ref, must not be null
   TreeMatchContext& mTreeMatchContext;
 };
 
 struct MOZ_STACK_CLASS ElementRuleProcessorData :
                           public ElementDependentRuleProcessorData {
   ElementRuleProcessorData(nsPresContext* aPresContext,
-                           mozilla::dom::Element* aElement, 
+                           mozilla::dom::Element* aElement,
                            nsRuleWalker* aRuleWalker,
                            TreeMatchContext& aTreeMatchContext)
     : ElementDependentRuleProcessorData(aPresContext, aElement, aRuleWalker,
                                         aTreeMatchContext)
   {
     NS_PRECONDITION(aTreeMatchContext.mForStyling, "Styling here!");
     NS_PRECONDITION(aRuleWalker, "Must have rule walker");
   }
--- a/layout/svg/SVGGeometryFrame.cpp
+++ b/layout/svg/SVGGeometryFrame.cpp
@@ -405,17 +405,17 @@ SVGGeometryFrame::ReflowSVG()
   // stroke-opacity="0"). GetHitTestFlags() accounts for 'pointer-events'.
   uint16_t hitTestFlags = GetHitTestFlags();
   if ((hitTestFlags & SVG_HIT_TEST_FILL)) {
    flags |= nsSVGUtils::eBBoxIncludeFillGeometry;
   }
   if ((hitTestFlags & SVG_HIT_TEST_STROKE)) {
    flags |= nsSVGUtils::eBBoxIncludeStrokeGeometry;
   }
- 
+
   gfxRect extent = GetBBoxContribution(Matrix(), flags).ToThebesRect();
   mRect = nsLayoutUtils::RoundGfxRectToAppRect(extent,
             PresContext()->AppUnitsPerCSSPixel());
 
   if (mState & NS_FRAME_FIRST_REFLOW) {
     // Make sure we have our filter property (if any) before calling
     // FinishAndStoreOverflow (subsequent filter changes are handled off
     // nsChangeHint_UpdateEffects):
@@ -467,17 +467,17 @@ SVGGeometryFrame::NotifySVGChanged(uint3
       nsSVGUtils::ScheduleReflowSVG(this);
     }
   }
 
   if ((aFlags & TRANSFORM_CHANGED) && StyleSVGReset()->HasNonScalingStroke()) {
     // Stroke currently contributes to our mRect, and our stroke depends on
     // the transform to our outer-<svg> if |vector-effect:non-scaling-stroke|.
     nsSVGUtils::ScheduleReflowSVG(this);
-  } 
+  }
 }
 
 SVGBBox
 SVGGeometryFrame::GetBBoxContribution(const Matrix &aToBBoxUserspace,
                                       uint32_t aFlags)
 {
   SVGBBox bbox;
 
--- a/layout/svg/SVGTextFrame.h
+++ b/layout/svg/SVGTextFrame.h
@@ -255,17 +255,17 @@ public:
                         const nsIntRect* aDirtyRect = nullptr) override;
   virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
   virtual void ReflowSVG() override;
   virtual SVGBBox GetBBoxContribution(const Matrix& aToBBoxUserspace,
                                       uint32_t aFlags) override;
 
   // nsSVGContainerFrame methods:
   virtual gfxMatrix GetCanvasTM() override;
-  
+
   // SVG DOM text methods:
   uint32_t GetNumberOfChars(nsIContent* aContent);
   float GetComputedTextLength(nsIContent* aContent);
   nsresult SelectSubString(nsIContent* aContent, uint32_t charnum, uint32_t nchars);
   nsresult GetSubStringLength(nsIContent* aContent, uint32_t charnum,
                               uint32_t nchars, float* aResult);
   int32_t GetCharNumAtPosition(nsIContent* aContent, mozilla::nsISVGPoint* point);
 
--- a/layout/svg/SVGViewFrame.cpp
+++ b/layout/svg/SVGViewFrame.cpp
@@ -82,17 +82,17 @@ SVGViewFrame::Init(nsIContent*       aCo
 #endif /* DEBUG */
 
 nsresult
 SVGViewFrame::AttributeChanged(int32_t  aNameSpaceID,
                                nsIAtom* aAttribute,
                                int32_t  aModType)
 {
   // Ignore zoomAndPan as it does not cause the <svg> element to re-render
-    
+
   if (aNameSpaceID == kNameSpaceID_None &&
       (aAttribute == nsGkAtoms::preserveAspectRatio ||
        aAttribute == nsGkAtoms::viewBox ||
        aAttribute == nsGkAtoms::viewTarget)) {
 
     nsSVGOuterSVGFrame *outerSVGFrame = nsSVGUtils::GetOuterSVGFrame(this);
     NS_ASSERTION(outerSVGFrame->GetContent()->IsSVGElement(nsGkAtoms::svg),
                  "Expecting an <svg> element");
--- a/layout/svg/nsISVGSVGFrame.h
+++ b/layout/svg/nsISVGSVGFrame.h
@@ -15,12 +15,12 @@ public:
 
   /**
    * Called when non-attribute changes have caused the element's width/height
    * or its for-children transform to change, and to get the element to notify
    * its children appropriately. aFlags must be set to
    * nsSVGDisplayableFrame::COORD_CONTEXT_CHANGED and/or
    * nsSVGDisplayableFrame::TRANSFORM_CHANGED.
    */
-  virtual void NotifyViewportOrTransformChanged(uint32_t aFlags)=0; 
+  virtual void NotifyViewportOrTransformChanged(uint32_t aFlags)=0;
 };
 
 #endif // __NS_ISVGSVGFRAME_H__
--- a/layout/svg/nsSVGAFrame.cpp
+++ b/layout/svg/nsSVGAFrame.cpp
@@ -41,17 +41,17 @@ public:
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override
   {
     return MakeFrameName(NS_LITERAL_STRING("SVGA"), aResult);
   }
 #endif
   // nsSVGDisplayableFrame interface:
   virtual void NotifySVGChanged(uint32_t aFlags) override;
-  
+
   // nsSVGContainerFrame methods:
   virtual gfxMatrix GetCanvasTM() override;
 
 private:
   nsAutoPtr<gfxMatrix> mCanvasTM;
 };
 
 //----------------------------------------------------------------------
--- a/layout/svg/nsSVGContainerFrame.cpp
+++ b/layout/svg/nsSVGContainerFrame.cpp
@@ -43,17 +43,17 @@ NS_NewSVGContainerFrame(nsIPresShell* aP
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSVGContainerFrame)
 
 void
 nsSVGContainerFrame::AppendFrames(ChildListID  aListID,
                                   nsFrameList& aFrameList)
 {
-  InsertFrames(aListID, mFrames.LastChild(), aFrameList);  
+  InsertFrames(aListID, mFrames.LastChild(), aFrameList);
 }
 
 void
 nsSVGContainerFrame::InsertFrames(ChildListID aListID,
                                   nsIFrame* aPrevFrame,
                                   nsFrameList& aFrameList)
 {
   NS_ASSERTION(aListID == kPrincipalList, "unexpected child list");
@@ -161,17 +161,17 @@ nsSVGDisplayContainerFrame::InsertFrames
                                          nsFrameList& aFrameList)
 {
   // memorize first old frame after insertion point
   // XXXbz once again, this would work a lot better if the nsIFrame
   // methods returned framelist iterators....
   nsIFrame* nextFrame = aPrevFrame ?
     aPrevFrame->GetNextSibling() : GetChildList(aListID).FirstChild();
   nsIFrame* firstNewFrame = aFrameList.FirstChild();
-  
+
   // Insert the new frames
   nsSVGContainerFrame::InsertFrames(aListID, aPrevFrame, aFrameList);
 
   // If we are not a non-display SVG frame and we do not have a bounds update
   // pending, then we need to schedule one for our new children:
   if (!(GetStateBits() &
         (NS_FRAME_IS_DIRTY | NS_FRAME_HAS_DIRTY_CHILDREN |
          NS_FRAME_IS_NONDISPLAY))) {
@@ -389,17 +389,17 @@ nsSVGDisplayContainerFrame::ReflowSVG()
   }
 
   FinishAndStoreOverflow(overflowRects, mRect.Size());
 
   // Remove state bits after FinishAndStoreOverflow so that it doesn't
   // invalidate on first reflow:
   mState &= ~(NS_FRAME_FIRST_REFLOW | NS_FRAME_IS_DIRTY |
               NS_FRAME_HAS_DIRTY_CHILDREN);
-}  
+}
 
 void
 nsSVGDisplayContainerFrame::NotifySVGChanged(uint32_t aFlags)
 {
   MOZ_ASSERT(aFlags & (TRANSFORM_CHANGED | COORD_CONTEXT_CHANGED),
              "Invalidation logic may need adjusting");
 
   nsSVGUtils::NotifyChildrenOfSVGChange(this, aFlags);
--- a/layout/svg/nsSVGContainerFrame.h
+++ b/layout/svg/nsSVGContainerFrame.h
@@ -28,17 +28,17 @@ struct nsRect;
  * display their contents directly (such as the frames for <marker> or
  * <pattern>) just inherit this class. Frame sub-classes that do or can
  * display their contents directly (such as the frames for inner-<svg> or
  * <g>) inherit our nsDisplayContainerFrame sub-class.
  *
  *                               *** WARNING ***
  *
  * Do *not* blindly cast to SVG element types in this class's methods (see the
- * warning comment for nsSVGDisplayContainerFrame below). 
+ * warning comment for nsSVGDisplayContainerFrame below).
  */
 class nsSVGContainerFrame : public nsContainerFrame
 {
   friend nsIFrame* NS_NewSVGContainerFrame(nsIPresShell* aPresShell,
                                            nsStyleContext* aContext);
 protected:
   nsSVGContainerFrame(nsStyleContext* aContext, ClassID aID)
     : nsContainerFrame(aContext, aID)
--- a/layout/svg/nsSVGDisplayableFrame.h
+++ b/layout/svg/nsSVGDisplayableFrame.h
@@ -118,17 +118,17 @@ public:
     COORD_CONTEXT_CHANGED = 0x02,
     FULL_ZOOM_CHANGED     = 0x04
   };
   /**
    * This is called on a frame when there has been a change to one of its
    * ancestors that might affect the frame too. SVGChangedFlags are passed
    * to indicate what changed.
    *
-   * Implementations do not need to invalidate, since the caller will 
+   * Implementations do not need to invalidate, since the caller will
    * invalidate the entire area of the ancestor that changed. However, they
    * may need to update their bounds.
    */
   virtual void NotifySVGChanged(uint32_t aFlags)=0;
 
   /**
    * Get this frame's contribution to the rect returned by a GetBBox() call
    * that occurred either on this element, or on one of its ancestors.
--- a/layout/svg/nsSVGForeignObjectFrame.cpp
+++ b/layout/svg/nsSVGForeignObjectFrame.cpp
@@ -515,17 +515,17 @@ nsSVGForeignObjectFrame::DoReflow()
       !(GetStateBits() & NS_FRAME_FIRST_REFLOW))
     return;
 
   nsPresContext *presContext = PresContext();
   nsIFrame* kid = PrincipalChildList().FirstChild();
   if (!kid)
     return;
 
-  // initiate a synchronous reflow here and now:  
+  // initiate a synchronous reflow here and now:
   RefPtr<gfxContext> renderingContext =
     presContext->PresShell()->CreateReferenceRenderingContext();
 
   mInReflow = true;
 
   WritingMode wm = kid->GetWritingMode();
   ReflowInput reflowInput(presContext, kid,
                                 renderingContext,
@@ -545,17 +545,17 @@ nsSVGForeignObjectFrame::DoReflow()
   reflowInput.SetComputedBSize(BSize(wm));
 
   ReflowChild(kid, presContext, desiredSize, reflowInput, 0, 0,
               NS_FRAME_NO_MOVE_FRAME, status);
   NS_ASSERTION(mRect.width == desiredSize.Width() &&
                mRect.height == desiredSize.Height(), "unexpected size");
   FinishReflowChild(kid, presContext, desiredSize, &reflowInput, 0, 0,
                     NS_FRAME_NO_MOVE_FRAME);
-  
+
   mInReflow = false;
 }
 
 nsRect
 nsSVGForeignObjectFrame::GetInvalidRegion()
 {
   MOZ_ASSERT(!NS_SVGDisplayListPaintingEnabled(),
              "Only called by nsDisplayOuterSVG code");
--- a/layout/svg/nsSVGGenericContainerFrame.cpp
+++ b/layout/svg/nsSVGGenericContainerFrame.cpp
@@ -38,11 +38,11 @@ nsSVGGenericContainerFrame::AttributeCha
 
 //----------------------------------------------------------------------
 // nsSVGContainerFrame methods:
 
 gfxMatrix
 nsSVGGenericContainerFrame::GetCanvasTM()
 {
   NS_ASSERTION(GetParent(), "null parent");
-  
+
   return static_cast<nsSVGContainerFrame*>(GetParent())->GetCanvasTM();
 }
--- a/layout/svg/nsSVGImageFrame.cpp
+++ b/layout/svg/nsSVGImageFrame.cpp
@@ -433,17 +433,17 @@ nsSVGImageFrame::ReflowSVG()
 
   float x, y, width, height;
   SVGImageElement *element = static_cast<SVGImageElement*>(mContent);
   element->GetAnimatedLengthValues(&x, &y, &width, &height, nullptr);
 
   Rect extent(x, y, width, height);
 
   if (!extent.IsEmpty()) {
-    mRect = nsLayoutUtils::RoundGfxRectToAppRect(extent, 
+    mRect = nsLayoutUtils::RoundGfxRectToAppRect(extent,
               PresContext()->AppUnitsPerCSSPixel());
   } else {
     mRect.SetEmpty();
   }
 
   if (mState & NS_FRAME_FIRST_REFLOW) {
     // Make sure we have our filter property (if any) before calling
     // FinishAndStoreOverflow (subsequent filter changes are handled off
--- a/layout/svg/nsSVGMarkerFrame.cpp
+++ b/layout/svg/nsSVGMarkerFrame.cpp
@@ -70,17 +70,17 @@ nsSVGMarkerFrame::GetCanvasTM()
   NS_ASSERTION(mMarkedFrame, "null SVGGeometry frame");
 
   if (mInUse2) {
     // We're going to be bailing drawing the marker, so return an identity.
     return gfxMatrix();
   }
 
   SVGMarkerElement *content = static_cast<SVGMarkerElement*>(mContent);
-  
+
   mInUse2 = true;
   gfxMatrix markedTM = mMarkedFrame->GetCanvasTM();
   mInUse2 = false;
 
   Matrix viewBoxTM = content->GetViewBoxTransform();
 
   return ThebesMatrix(viewBoxTM * mMarkerTM) * markedTM;
 }
--- a/layout/svg/nsSVGOuterSVGFrame.h
+++ b/layout/svg/nsSVGOuterSVGFrame.h
@@ -148,17 +148,17 @@ public:
 
   void InvalidateSVG(const nsRegion& aRegion)
   {
     if (!aRegion.IsEmpty()) {
       mInvalidRegion.Or(mInvalidRegion, aRegion);
       InvalidateFrame();
     }
   }
-  
+
   void ClearInvalidRegion() { mInvalidRegion.SetEmpty(); }
 
   const nsRegion& GetInvalidRegion() {
     nsRect rect;
     if (!IsInvalid(rect)) {
       mInvalidRegion.SetEmpty();
     }
     return mInvalidRegion;
@@ -185,17 +185,17 @@ protected:
   // SVG.
   // A hash-set containing our nsSVGForeignObjectFrame descendants. Note we use
   // a hash-set to avoid the O(N^2) behavior we'd get tearing down an SVG frame
   // subtree if we were to use a list (see bug 381285 comment 20).
   nsAutoPtr<nsTHashtable<nsPtrHashKey<nsSVGForeignObjectFrame> > > mForeignObjectHash;
 
   nsAutoPtr<gfxMatrix> mCanvasTM;
 
-  nsRegion mInvalidRegion; 
+  nsRegion mInvalidRegion;
 
   float mFullZoom;
 
   bool mViewportInitialized;
   bool mIsRootContent;
 };
 
 ////////////////////////////////////////////////////////////////////////
--- a/layout/svg/nsSVGSwitchFrame.cpp
+++ b/layout/svg/nsSVGSwitchFrame.cpp
@@ -56,17 +56,17 @@ private:
   nsIFrame *GetActiveChildFrame();
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 nsIFrame*
 NS_NewSVGSwitchFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
-{  
+{
   return new (aPresShell) nsSVGSwitchFrame(aContext);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSVGSwitchFrame)
 
 #ifdef DEBUG
 void
 nsSVGSwitchFrame::Init(nsIContent*       aContent,
--- a/layout/svg/nsSVGUtils.cpp
+++ b/layout/svg/nsSVGUtils.cpp
@@ -1039,17 +1039,17 @@ nsSVGUtils::GetClipRectForFrame(nsIFrame
     if (disp->mOverflowX != NS_STYLE_OVERFLOW_HIDDEN) {
       clipRect.x = aX;
       clipRect.width = aWidth;
     }
     if (disp->mOverflowY != NS_STYLE_OVERFLOW_HIDDEN) {
       clipRect.y = aY;
       clipRect.height = aHeight;
     }
-     
+
     return clipRect;
   }
   return gfxRect(aX, aY, aWidth, aHeight);
 }
 
 void
 nsSVGUtils::SetClipRect(gfxContext *aContext,
                         const gfxMatrix &aCTM,
@@ -1737,17 +1737,17 @@ nsSVGUtils::SetupCairoStrokeGeometry(nsI
   // Apply any stroke-specific transform
   gfxMatrix outerSVGToUser;
   if (GetNonScalingStrokeTransform(aFrame, &outerSVGToUser) &&
       outerSVGToUser.Invert()) {
     aContext->Multiply(outerSVGToUser);
   }
 
   const nsStyleSVG* style = aFrame->StyleSVG();
-  
+
   switch (style->mStrokeLinecap) {
   case NS_STYLE_STROKE_LINECAP_BUTT:
     aContext->SetLineCap(CapStyle::BUTT);
     break;
   case NS_STYLE_STROKE_LINECAP_ROUND:
     aContext->SetLineCap(CapStyle::ROUND);
     break;
   case NS_STYLE_STROKE_LINECAP_SQUARE:
--- a/layout/svg/nsSVGUtils.h
+++ b/layout/svg/nsSVGUtils.h
@@ -78,17 +78,17 @@ bool NS_SVGNewGetBBoxEnabled();
 /**
  * Sometimes we need to distinguish between an empty box and a box
  * that contains an element that has no size e.g. a point at the origin.
  */
 class SVGBBox {
   typedef mozilla::gfx::Rect Rect;
 
 public:
-  SVGBBox() 
+  SVGBBox()
     : mIsEmpty(true) {}
 
   MOZ_IMPLICIT SVGBBox(const Rect& aRect)
     : mBBox(aRect), mIsEmpty(false) {}
 
   MOZ_IMPLICIT SVGBBox(const gfxRect& aRect)
     : mBBox(ToRect(aRect)), mIsEmpty(false) {}
 
--- a/layout/tables/BasicTableLayoutStrategy.cpp
+++ b/layout/tables/BasicTableLayoutStrategy.cpp
@@ -21,17 +21,17 @@
 #include "SpanningCellSorter.h"
 #include "nsIContent.h"
 
 using namespace mozilla;
 using namespace mozilla::layout;
 
 namespace css = mozilla::css;
 
-#undef  DEBUG_TABLE_STRATEGY 
+#undef  DEBUG_TABLE_STRATEGY
 
 BasicTableLayoutStrategy::BasicTableLayoutStrategy(nsTableFrame *aTableFrame)
   : nsITableLayoutStrategy(nsITableLayoutStrategy::Auto)
   , mTableFrame(aTableFrame)
 {
     MarkIntrinsicISizesDirty();
 }
 
@@ -367,19 +367,19 @@ BasicTableLayoutStrategy::ComputeColumnI
 
             CellISizeInfo info =
                 GetCellISizeInfo(aRenderingContext, cellFrame, wm);
 
             if (info.prefPercent > 0.0f) {
                 DistributePctISizeToColumns(info.prefPercent,
                                             col, colSpan);
             }
-            DistributeISizeToColumns(info.minCoord, col, colSpan, 
+            DistributeISizeToColumns(info.minCoord, col, colSpan,
                                      BTLS_MIN_ISIZE, info.hasSpecifiedISize);
-            DistributeISizeToColumns(info.prefCoord, col, colSpan, 
+            DistributeISizeToColumns(info.prefCoord, col, colSpan,
                                      BTLS_PREF_ISIZE, info.hasSpecifiedISize);
         } while ((item = item->next));
 
         // Combine the results of the span analysis into the main results,
         // for each increment of colspan.
 
         for (col = 0, col_end = cellMap->GetColCount(); col < col_end; ++col) {
             nsTableColFrame *colFrame = tableFrame->GetColFrame(col);
@@ -447,25 +447,25 @@ BasicTableLayoutStrategy::ComputeIntrins
         min += colFrame->GetMinCoord();
         pref = NSCoordSaturatingAdd(pref, colFrame->GetPrefCoord());
 
         // Percentages are of the table, so we have to reverse them for
         // intrinsic isizes.
         float p = colFrame->GetPrefPercent();
         if (p > 0.0f) {
             nscoord colPref = colFrame->GetPrefCoord();
-            nscoord new_small_pct_expand = 
+            nscoord new_small_pct_expand =
                 (colPref == nscoord_MAX ?
                  nscoord_MAX : nscoord(float(colPref) / p));
             if (new_small_pct_expand > max_small_pct_pref) {
                 max_small_pct_pref = new_small_pct_expand;
             }
             pct_total += p;
         } else {
-            nonpct_pref_total = NSCoordSaturatingAdd(nonpct_pref_total, 
+            nonpct_pref_total = NSCoordSaturatingAdd(nonpct_pref_total,
                                                      colFrame->GetPrefCoord());
         }
     }
 
     nscoord pref_pct_expand = pref;
 
     // Account for small percentages expanding the preferred isize of
     // *other* columns.
@@ -624,17 +624,17 @@ BasicTableLayoutStrategy::DistributePctI
             aSpanPrefPct -= allocatedPct;
             nonPctTotalPrefISize -= scolFrame->GetPrefCoord();
             if (cellMap->GetNumCellsOriginatingInCol(scol) > 0) {
                 --nonPctColCount;
             }
 
             if (!aSpanPrefPct) {
                 // No more span-percent-isize to distribute --> we're done.
-                NS_ASSERTION(spanHasNonPctPref ? 
+                NS_ASSERTION(spanHasNonPctPref ?
                              nonPctTotalPrefISize == 0 :
                              nonPctColCount == 0,
                              "No more pct inline-size to distribute, "
                              "but there are still cols that need some.");
                 return;
             }
         }
     }
@@ -643,17 +643,17 @@ BasicTableLayoutStrategy::DistributePctI
 void
 BasicTableLayoutStrategy::DistributeISizeToColumns(nscoord aISize,
                                                    int32_t aFirstCol,
                                                    int32_t aColCount,
                                                    BtlsISizeType aISizeType,
                                                    bool aSpanHasSpecifiedISize)
 {
     NS_ASSERTION(aISizeType != BTLS_FINAL_ISIZE ||
-                 (aFirstCol == 0 && 
+                 (aFirstCol == 0 &&
                   aColCount == mTableFrame->GetCellMap()->GetColCount()),
             "Computing final column isizes, but didn't get full column range");
 
     nscoord subtract = 0;
     // aISize initially includes border-spacing for the boundaries in between
     // each of the columns. We start at aFirstCol + 1 because the first
     // in-between boundary would be at the left edge of column aFirstCol + 1
     for (int32_t col = aFirstCol + 1; col < aFirstCol + aColCount; ++col) {
@@ -669,19 +669,19 @@ BasicTableLayoutStrategy::DistributeISiz
         subtract += (mTableFrame->GetColSpacing(-1) +
                      mTableFrame->GetColSpacing(aColCount));
     }
     aISize = NSCoordSaturatingSubtract(aISize, subtract, nscoord_MAX);
 
     /*
      * The goal of this function is to distribute |aISize| between the
      * columns by making an appropriate AddSpanCoords or SetFinalISize
-     * call for each column.  (We call AddSpanCoords if we're 
+     * call for each column.  (We call AddSpanCoords if we're
      * distributing a column-spanning cell's minimum or preferred isize
-     * to its spanned columns.  We call SetFinalISize if we're 
+     * to its spanned columns.  We call SetFinalISize if we're
      * distributing a table's final isize to its columns.)
      *
      * The idea is to either assign one of the following sets of isizes
      * or a weighted average of two adjacent sets of isizes.  It is not
      * possible to assign values smaller than the smallest set of
      * isizes.  However, see below for handling the case of assigning
      * values larger than the largest set of isizes.  From smallest to
      * largest, these are:
@@ -758,20 +758,20 @@ BasicTableLayoutStrategy::DistributeISiz
             if (pref_iSize == nscoord_MAX) {
                 ++numInfiniteISizeCols;
             }
             guess_pref = NSCoordSaturatingAdd(guess_pref, pref_iSize);
             guess_min_pct += min_iSize;
             if (colFrame->GetHasSpecifiedCoord()) {
                 // we'll add on the rest of guess_min_spec outside the
                 // loop
-                nscoord delta = NSCoordSaturatingSubtract(pref_iSize, 
+                nscoord delta = NSCoordSaturatingSubtract(pref_iSize,
                                                           min_iSize, 0);
                 guess_min_spec = NSCoordSaturatingAdd(guess_min_spec, delta);
-                total_fixed_pref = NSCoordSaturatingAdd(total_fixed_pref, 
+                total_fixed_pref = NSCoordSaturatingAdd(total_fixed_pref,
                                                         pref_iSize);
             } else if (pref_iSize == 0) {
                 if (cellMap->GetNumCellsOriginatingInCol(col) > 0) {
                     ++numNonSpecZeroISizeCols;
                 }
             } else {
                 total_flex_pref = NSCoordSaturatingAdd(total_flex_pref,
                                                        pref_iSize);
@@ -908,17 +908,17 @@ BasicTableLayoutStrategy::DistributeISiz
                 }
                 break;
             case FLEX_FLEX_SMALL:
                 if (pct == 0.0f &&
                     !colFrame->GetHasSpecifiedCoord()) {
                     NS_ASSERTION(col_iSize == colFrame->GetPrefCoord(),
                                  "wrong inline-size assigned");
                     nscoord col_min = colFrame->GetMinCoord();
-                    nscoord pref_minus_min = 
+                    nscoord pref_minus_min =
                         NSCoordSaturatingSubtract(col_iSize, col_min, 0);
                     col_iSize = col_iSize_before_adjust = col_min;
                     if (pref_minus_min != 0) {
                         float c = float(space) / float(basis.c);
                         // If we have infinite-isize cols, then the standard
                         // adjustment to col_iSize using 'c' won't work,
                         // because basis.c and pref_minus_min are both
                         // nscoord_MAX and will cancel each other out in the
@@ -929,17 +929,17 @@ BasicTableLayoutStrategy::DistributeISiz
                         if (numInfiniteISizeCols) {
                             if (colFrame->GetPrefCoord() == nscoord_MAX) {
                                 c = c / float(numInfiniteISizeCols);
                                 --numInfiniteISizeCols;
                             } else {
                                 c = 0.0f;
                             }
                         }
-                        basis.c = NSCoordSaturatingSubtract(basis.c, 
+                        basis.c = NSCoordSaturatingSubtract(basis.c,
                                                             pref_minus_min,
                                                             nscoord_MAX);
                         col_iSize += NSToCoordRound(
                             float(pref_minus_min) * c);
                     }
                 }
                 break;
             case FLEX_FLEX_LARGE:
@@ -1012,48 +1012,48 @@ BasicTableLayoutStrategy::DistributeISiz
                  "How is col_iSize nscoord_MAX if space isn't?");
             NS_ASSERTION(col_iSize_before_adjust != nscoord_MAX,
                  "How is col_iSize_before_adjust nscoord_MAX if space isn't?");
             space -= col_iSize - col_iSize_before_adjust;
         }
 
         NS_ASSERTION(col_iSize >= colFrame->GetMinCoord(),
                      "assigned inline-size smaller than min");
-        
+
         // Apply the new isize
         switch (aISizeType) {
             case BTLS_MIN_ISIZE:
                 {
                     // Note: AddSpanCoords requires both a min and pref isize.
                     // For the pref isize, we'll just pass in our computed
                     // min isize, because the real pref isize will be at least
                     // as big
-                    colFrame->AddSpanCoords(col_iSize, col_iSize, 
+                    colFrame->AddSpanCoords(col_iSize, col_iSize,
                                             aSpanHasSpecifiedISize);
                 }
                 break;
             case BTLS_PREF_ISIZE:
                 {
                     // Note: AddSpanCoords requires both a min and pref isize.
                     // For the min isize, we'll just pass in 0, because
                     // the real min isize will be at least 0
-                    colFrame->AddSpanCoords(0, col_iSize, 
+                    colFrame->AddSpanCoords(0, col_iSize,
                                             aSpanHasSpecifiedISize);
                 }
                 break;
             case BTLS_FINAL_ISIZE:
                 {
                     nscoord old_final = colFrame->GetFinalISize();
                     colFrame->SetFinalISize(col_iSize);
-                    
+
                     if (old_final != col_iSize) {
                         mTableFrame->DidResizeColumns();
                     }
                 }
-                break;                
+                break;
         }
     }
     NS_ASSERTION((space == 0 || space == nscoord_MAX) &&
                  ((l2t == FLEX_PCT_LARGE)
                     ? (-0.001f < basis.f && basis.f < 0.001f)
                     : (basis.c == 0 || basis.c == nscoord_MAX)),
                  "didn't subtract all that we added");
 }
--- a/layout/tables/nsITableCellLayout.h
+++ b/layout/tables/nsITableCellLayout.h
@@ -23,17 +23,17 @@ public:
 
   NS_DECL_QUERYFRAME_TARGET(nsITableCellLayout)
 
   /** return the mapped cell's row and column indexes (starting at 0 for each) */
   NS_IMETHOD GetCellIndexes(int32_t &aRowIndex, int32_t &aColIndex)=0;
 
   /** return the mapped cell's row index (starting at 0 for the first row) */
   virtual nsresult GetRowIndex(int32_t &aRowIndex) const = 0;
-  
+
   /** return the mapped cell's column index (starting at 0 for the first column) */
   virtual nsresult GetColIndex(int32_t &aColIndex) const = 0;
 };
 
 #endif
 
 
 
--- a/layout/tables/nsTableCellFrame.h
+++ b/layout/tables/nsTableCellFrame.h
@@ -215,17 +215,17 @@ public:
   void DecorateForSelection(DrawTarget* aDrawTarget, nsPoint aPt);
 
   virtual bool ComputeCustomOverflow(nsOverflowAreas& aOverflowAreas) override;
 
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
     return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
   }
-  
+
   virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) override;
   virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) override;
   virtual void InvalidateFrameForRemoval() override { InvalidateFrameSubtree(); }
 
 protected:
   nsTableCellFrame(nsStyleContext* aContext, nsTableFrame* aTableFrame,
                    ClassID aID);
   ~nsTableCellFrame();
--- a/layout/tables/nsTableColGroupFrame.cpp
+++ b/layout/tables/nsTableColGroupFrame.cpp
@@ -16,23 +16,23 @@
 #include "mozilla/GeckoStyleContext.h"
 
 using namespace mozilla;
 
 #define COL_GROUP_TYPE_BITS          (NS_FRAME_STATE_BIT(30) | \
                                       NS_FRAME_STATE_BIT(31))
 #define COL_GROUP_TYPE_OFFSET        30
 
-nsTableColGroupType 
-nsTableColGroupFrame::GetColType() const 
+nsTableColGroupType
+nsTableColGroupFrame::GetColType() const
 {
   return (nsTableColGroupType)((mState & COL_GROUP_TYPE_BITS) >> COL_GROUP_TYPE_OFFSET);
 }
 
-void nsTableColGroupFrame::SetColType(nsTableColGroupType aType) 
+void nsTableColGroupFrame::SetColType(nsTableColGroupType aType)
 {
   NS_ASSERTION(GetColType() == eColGroupContent,
                "should only call nsTableColGroupFrame::SetColType with aType "
                "!= eColGroupContent once");
   uint32_t type = aType - eColGroupContent;
   RemoveStateBits(COL_GROUP_TYPE_BITS);
   AddStateBits(nsFrameState(type << COL_GROUP_TYPE_OFFSET));
 }
@@ -48,17 +48,17 @@ void nsTableColGroupFrame::ResetColIndic
       // reset the starting col index for the first cg only if we should reset
       // the whole colgroup (aStartColFrame defaults to nullptr) or if
       // aFirstColIndex is smaller than the existing starting col index
       if ((colIndex != aFirstColIndex) ||
           (colIndex < colGroupFrame->GetStartColumnIndex()) ||
           !aStartColFrame) {
         colGroupFrame->SetStartColumnIndex(colIndex);
       }
-      nsIFrame* colFrame = aStartColFrame; 
+      nsIFrame* colFrame = aStartColFrame;
       if (!colFrame || (colIndex != aFirstColIndex)) {
         colFrame = colGroupFrame->PrincipalChildList().FirstChild();
       }
       while (colFrame) {
         if (colFrame->IsTableColFrame()) {
           ((nsTableColFrame*)colFrame)->SetColIndex(colIndex);
           colIndex++;
         }
@@ -118,57 +118,57 @@ nsTableColGroupFrame::GetLastRealColGrou
   nsFrameList::FrameLinkEnumerator link(colGroups);
   for ( ; !link.AtEnd(); link.Next()) {
     nextToLastColGroup = link.PrevFrame();
   }
 
   if (!link.PrevFrame()) {
     return nullptr; // there are no col group frames
   }
- 
+
   nsTableColGroupType lastColGroupType =
     static_cast<nsTableColGroupFrame*>(link.PrevFrame())->GetColType();
   if (eColGroupAnonymousCell == lastColGroupType) {
     return static_cast<nsTableColGroupFrame*>(nextToLastColGroup);
   }
- 
+
   return static_cast<nsTableColGroupFrame*>(link.PrevFrame());
 }
 
 // don't set mColCount here, it is done in AddColsToTable
 void
 nsTableColGroupFrame::SetInitialChildList(ChildListID     aListID,
                                           nsFrameList&    aChildList)
 {
   MOZ_ASSERT(mFrames.IsEmpty(),
              "unexpected second call to SetInitialChildList");
   MOZ_ASSERT(aListID == kPrincipalList, "unexpected child list");
-  if (aChildList.IsEmpty()) { 
+  if (aChildList.IsEmpty()) {
     GetTableFrame()->AppendAnonymousColFrames(this, GetSpan(),
                                               eColAnonymousColGroup, false);
-    return; 
+    return;
   }
 
   mFrames.AppendFrames(this, aChildList);
 }
 
 /* virtual */ void
 nsTableColGroupFrame::DidSetStyleContext(nsStyleContext* aOldStyleContext)
 {
   nsContainerFrame::DidSetStyleContext(aOldStyleContext);
 
   if (!aOldStyleContext) //avoid this on init
     return;
-     
+
   nsTableFrame* tableFrame = GetTableFrame();
   if (tableFrame->IsBorderCollapse() &&
       tableFrame->BCRecalcNeeded(aOldStyleContext, StyleContext())) {
     int32_t colCount = GetColCount();
     if (!colCount)
-      return; // this is a degenerated colgroup 
+      return; // this is a degenerated colgroup
     TableArea damageArea(GetFirstColumn()->GetColIndex(), 0, colCount,
                          tableFrame->GetRowCount());
     tableFrame->AddBCDamageArea(damageArea);
   }
 }
 
 void
 nsTableColGroupFrame::AppendFrames(ChildListID     aListID,
@@ -310,24 +310,24 @@ nsTableColGroupFrame::RemoveFrame(ChildL
           // col's style context.
         }
 #endif
         nextCol = col->GetNextCol();
         RemoveFrame(kPrincipalList, col);
         col = nextCol;
       }
     }
-    
+
     int32_t colIndex = colFrame->GetColIndex();
     // The RemoveChild call handles calling FrameNeedsReflow on us.
     RemoveChild(*colFrame, true);
-    
+
     nsTableFrame* tableFrame = GetTableFrame();
     tableFrame->RemoveCol(this, colIndex, true, true);
-    if (mFrames.IsEmpty() && contentRemoval && 
+    if (mFrames.IsEmpty() && contentRemoval &&
         GetColType() == eColGroupContent) {
       tableFrame->AppendAnonymousColFrames(this, GetSpan(),
                                            eColAnonymousColGroup, true);
     }
   }
   else {
     mFrames.DestroyFrame(aOldFrame);
   }
@@ -356,25 +356,25 @@ nsTableColGroupFrame::Reflow(nsPresConte
                              ReflowOutput&     aDesiredSize,
                              const ReflowInput& aReflowInput,
                              nsReflowStatus&          aStatus)
 {
   MarkInReflow();
   DO_GLOBAL_REFLOW_COUNT("nsTableColGroupFrame");
   DISPLAY_REFLOW(aPresContext, this, aReflowInput, aDesiredSize, aStatus);
   NS_ASSERTION(nullptr!=mContent, "bad state -- null content for frame");
-  
+
   const nsStyleVisibility* groupVis = StyleVisibility();
   bool collapseGroup = (NS_STYLE_VISIBILITY_COLLAPSE == groupVis->mVisible);
   if (collapseGroup) {
     GetTableFrame()->SetNeedToCollapse(true);
   }
   // for every content child that (is a column thingy and does not already have a frame)
   // create a frame and adjust it's style
-  
+
   for (nsIFrame *kidFrame = mFrames.FirstChild(); kidFrame;
        kidFrame = kidFrame->GetNextSibling()) {
     // Give the child frame a chance to reflow, even though we know it'll have 0 size
     ReflowOutput kidSize(aReflowInput);
     ReflowInput kidReflowInput(aPresContext, aReflowInput, kidFrame,
                                      LogicalSize(kidFrame->GetWritingMode()));
 
     nsReflowStatus status;
@@ -502,20 +502,20 @@ void nsTableColGroupFrame::Dump(int32_t 
 
   printf("%s**START COLGROUP DUMP**\n%s startcolIndex=%d  colcount=%d span=%d coltype=",
     indent, indent, GetStartColumnIndex(),  GetColCount(), GetSpan());
   nsTableColGroupType colType = GetColType();
   switch (colType) {
   case eColGroupContent:
     printf(" content ");
     break;
-  case eColGroupAnonymousCol: 
+  case eColGroupAnonymousCol:
     printf(" anonymous-column  ");
     break;
-  case eColGroupAnonymousCell: 
+  case eColGroupAnonymousCell:
     printf(" anonymous-cell ");
     break;
   }
   // verify the colindices
   int32_t j = GetStartColumnIndex();
   nsTableColFrame* col = GetFirstColumn();
   while (col) {
     NS_ASSERTION(j == col->GetColIndex(), "wrong colindex on col frame");
--- a/layout/tables/nsTableColGroupFrame.h
+++ b/layout/tables/nsTableColGroupFrame.h
@@ -63,17 +63,17 @@ public:
     * @return colgroup type
     */
   nsTableColGroupType GetColType() const;
 
   /** Set the colgroup type based on the creation cause
     * @param aType - the reason why this colgroup is needed
     */
   void SetColType(nsTableColGroupType aType);
-  
+
   /** Real in this context are colgroups that come from an element
     * with table-column-group display or wrap around columns that
     * come from an element with table-column display. Colgroups
     * that are the result of wrapping cells in an anonymous
     * column and colgroup are not considered real here.
     * @param aTableFrame - the table parent of the colgroups
     * @return the last real colgroup
     */
@@ -148,17 +148,17 @@ public:
     * in the column group if aChildFrame is null
     */
   nsTableColFrame * GetNextColumn(nsIFrame *aChildFrame);
 
   /** @return - the position of the first column in this colgroup in the table
     * colframe cache.
     */
   int32_t GetStartColumnIndex();
-  
+
   /** set the position of the first column in this colgroup in the table
     * colframe cache.
     */
   void SetStartColumnIndex(int32_t aIndex);
 
   /** helper method to get the span attribute for this colgroup */
   int32_t GetSpan();
 
@@ -192,17 +192,17 @@ public:
    */
   void SetContinuousBCBorderWidth(mozilla::LogicalSide aForSide,
                                   BCPixelSize aPixelValue);
 
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
     return nsContainerFrame::IsFrameOfType(aFlags & ~(nsIFrame::eTablePart));
   }
-  
+
   virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) override;
   virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) override;
   virtual void InvalidateFrameForRemoval() override { InvalidateFrameSubtree(); }
 
 protected:
   explicit nsTableColGroupFrame(nsStyleContext* aContext);
 
   void InsertColsReflow(int32_t                   aColIndex,
--- a/layout/tables/nsTableRowFrame.h
+++ b/layout/tables/nsTableRowFrame.h
@@ -12,21 +12,21 @@
 #include "mozilla/WritingModes.h"
 
 class  nsTableCellFrame;
 namespace mozilla {
 struct TableCellReflowInput;
 } // namespace mozilla
 
 /**
- * nsTableRowFrame is the frame that maps table rows 
+ * nsTableRowFrame is the frame that maps table rows
  * (HTML tag TR). This class cannot be reused
- * outside of an nsTableRowGroupFrame.  It assumes that its parent is an nsTableRowGroupFrame,  
+ * outside of an nsTableRowGroupFrame.  It assumes that its parent is an nsTableRowGroupFrame,
  * and its children are nsTableCellFrames.
- * 
+ *
  * @see nsTableFrame
  * @see nsTableRowGroupFrame
  * @see nsTableCellFrame
  */
 class nsTableRowFrame : public nsContainerFrame
 {
   using TableCellReflowInput = mozilla::TableCellReflowInput;
 
@@ -39,17 +39,17 @@ public:
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
   /** @see nsIFrame::DidSetStyleContext */
   virtual void DidSetStyleContext(nsStyleContext* aOldStyleContext) override;
-  
+
   virtual void AppendFrames(ChildListID     aListID,
                             nsFrameList&    aFrameList) override;
   virtual void InsertFrames(ChildListID     aListID,
                             nsIFrame*       aPrevFrame,
                             nsFrameList&    aFrameList) override;
   virtual void RemoveFrame(ChildListID     aListID,
                            nsIFrame*       aOldFrame) override;
 
@@ -81,20 +81,20 @@ public:
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
 
   nsTableCellFrame* GetFirstCell() ;
 
   /** calls Reflow for all of its child cells.
     * Cells with rowspan=1 are all set to the same height and stacked horizontally.
     * <P> Cells are not split unless absolutely necessary.
-    * <P> Cells are resized in nsTableFrame::BalanceColumnWidths 
+    * <P> Cells are resized in nsTableFrame::BalanceColumnWidths
     * and nsTableFrame::ShrinkWrapChildren
     *
-    * @param aDesiredSize width set to width of the sum of the cells, height set to 
+    * @param aDesiredSize width set to width of the sum of the cells, height set to
     *                     height of cells with rowspan=1.
     *
     * @see nsIFrame::Reflow
     * @see nsTableFrame::BalanceColumnWidths
     * @see nsTableFrame::ShrinkWrapChildren
     */
   virtual void Reflow(nsPresContext*           aPresContext,
                       ReflowOutput&     aDesiredSize,
@@ -110,24 +110,24 @@ public:
   void UpdateBSize(nscoord           aBSize,
                    nscoord           aAscent,
                    nscoord           aDescent,
                    nsTableFrame*     aTableFrame = nullptr,
                    nsTableCellFrame* aCellFrame  = nullptr);
 
   void ResetBSize(nscoord aRowStyleBSize);
 
-  // calculate the bsize, considering content bsize of the 
+  // calculate the bsize, considering content bsize of the
   // cells and the style bsize of the row and cells, excluding pct bsizes
   nscoord CalcBSize(const ReflowInput& aReflowInput);
 
   // Support for cells with 'vertical-align: baseline'.
 
   /**
-   * returns the max-ascent amongst all the cells that have 
+   * returns the max-ascent amongst all the cells that have
    * 'vertical-align: baseline', *including* cells with rowspans.
    * returns 0 if we don't have any cell with 'vertical-align: baseline'
    */
   nscoord GetMaxCellAscent() const;
 
   /* return the row ascent
    */
   nscoord GetRowBaseline(mozilla::WritingMode aWritingMode);
@@ -210,17 +210,17 @@ public:
   nscoord GetUnpaginatedBSize();
   void    SetUnpaginatedBSize(nsPresContext* aPresContext, nscoord aValue);
 
   nscoord GetBStartBCBorderWidth() const { return mBStartBorderWidth; }
   nscoord GetBEndBCBorderWidth() const { return mBEndBorderWidth; }
   void SetBStartBCBorderWidth(BCPixelSize aWidth) { mBStartBorderWidth = aWidth; }
   void SetBEndBCBorderWidth(BCPixelSize aWidth) { mBEndBorderWidth = aWidth; }
   mozilla::LogicalMargin GetBCBorderWidth(mozilla::WritingMode aWM);
-                             
+
   /**
    * Gets inner border widths before collapsing with cell borders
    * Caller must get block-end border from next row or from table
    * GetContinuousBCBorderWidth will not overwrite that border
    * see nsTablePainter about continuous borders
    */
   void GetContinuousBCBorderWidth(mozilla::WritingMode aWM,
                                   mozilla::LogicalMargin& aBorder);
@@ -255,17 +255,17 @@ protected:
     * @see NewFrame
     */
   explicit nsTableRowFrame(nsStyleContext* aContext, ClassID aID = kClassID);
 
   void InitChildReflowInput(nsPresContext&              aPresContext,
                             const mozilla::LogicalSize& aAvailSize,
                             bool                        aBorderCollapse,
                             TableCellReflowInput&     aReflowInput);
-  
+
   virtual LogicalSides GetLogicalSkipSides(const ReflowInput* aReflowInput = nullptr) const override;
 
   // row-specific methods
 
   nscoord ComputeCellXOffset(const ReflowInput& aState,
                              nsIFrame*                aKidFrame,
                              const nsMargin&          aKidMargin) const;
   /**
@@ -278,17 +278,17 @@ protected:
                       nsTableFrame&            aTableFrame,
                       nsReflowStatus&          aStatus);
 
 private:
   struct RowBits {
     unsigned mRowIndex:29;
     unsigned mHasFixedBSize:1; // set if the dominating style bsize on the row or any cell is pixel based
     unsigned mHasPctBSize:1;   // set if the dominating style bsize on the row or any cell is pct based
-    unsigned mFirstInserted:1; // if true, then it was the bstart-most newly inserted row 
+    unsigned mFirstInserted:1; // if true, then it was the bstart-most newly inserted row
   } mBits;
 
   // the desired bsize based on the content of the tallest cell in the row
   nscoord mContentBSize;
   // the bsize based on a style percentage bsize on either the row or any cell
   // if mHasPctBSize is set
   nscoord mStylePctBSize;
   // the bsize based on a style pixel bsize on the row or any
--- a/layout/tables/nsTableWrapperFrame.cpp
+++ b/layout/tables/nsTableWrapperFrame.cpp
@@ -178,17 +178,17 @@ nsTableWrapperFrame::BuildDisplayList(ns
   // the special display list set and then sort it.
   if (mCaptionFrames.IsEmpty()) {
     BuildDisplayListForInnerTable(aBuilder, aDirtyRect, aLists);
     return;
   }
 
   nsDisplayListCollection set;
   BuildDisplayListForInnerTable(aBuilder, aDirtyRect, set);
-  
+
   nsDisplayListSet captionSet(set, set.BlockBorderBackgrounds());
   BuildDisplayListForChild(aBuilder, mCaptionFrames.FirstChild(),
                            aDirtyRect, captionSet);
 
   // Now we have to sort everything by content order, since the caption
   // may be somewhere inside the table
   set.BlockBorderBackgrounds()->SortByContentOrder(GetContent());
   set.Floats()->SortByContentOrder(GetContent());
@@ -224,17 +224,17 @@ nsTableWrapperFrame::GetParentStyleConte
   // rule that causes that pseudo-element (and thus the wrapper table)
   // to inherit *some* style properties from the table frame.  The
   // children of the table inherit directly from the inner table, and
   // the table wrapper's style context is a leaf.
 
   return (*aProviderFrame = InnerTableFrame())->StyleContext();
 }
 
-// INCREMENTAL REFLOW HELPER FUNCTIONS 
+// INCREMENTAL REFLOW HELPER FUNCTIONS
 
 void
 nsTableWrapperFrame::InitChildReflowInput(nsPresContext& aPresContext,
                                           ReflowInput&   aReflowInput)
 {
   nsMargin collapseBorder;
   nsMargin collapsePadding(0,0,0,0);
   nsMargin* pCollapseBorder  = nullptr;
@@ -590,17 +590,17 @@ nsTableWrapperFrame::GetCaptionOrigin(ui
       (NS_UNCONSTRAINEDSIZE == aInnerSize.BSize(aWM)) ||
       (NS_UNCONSTRAINEDSIZE == aCaptionSize.ISize(aWM)) ||
       (NS_UNCONSTRAINEDSIZE == aCaptionSize.BSize(aWM))) {
     return NS_OK;
   }
   if (mCaptionFrames.IsEmpty()) {
     return NS_OK;
   }
-  
+
   NS_ASSERTION(NS_AUTOMARGIN != aCaptionMargin.IStart(aWM) &&
                NS_AUTOMARGIN != aCaptionMargin.BStart(aWM) &&
                NS_AUTOMARGIN != aCaptionMargin.BEnd(aWM),
                "The computed caption margin is auto?");
 
   // inline-dir computation
   switch (aCaptionSide) {
     case NS_STYLE_CAPTION_SIDE_BOTTOM:
@@ -680,17 +680,17 @@ nsTableWrapperFrame::GetInnerOrigin(uint
   NS_ASSERTION(NS_AUTOMARGIN != aCaptionMargin.IStart(aWM) &&
                NS_AUTOMARGIN != aCaptionMargin.IEnd(aWM),
                "The computed caption margin is auto?");
   NS_ASSERTION(NS_AUTOMARGIN != aInnerMargin.IStart(aWM) &&
                NS_AUTOMARGIN != aInnerMargin.IEnd(aWM) &&
                NS_AUTOMARGIN != aInnerMargin.BStart(aWM) &&
                NS_AUTOMARGIN != aInnerMargin.BEnd(aWM),
                "The computed inner margin is auto?");
-  
+
   aOrigin.I(aWM) = aOrigin.B(aWM) = 0;
   if ((NS_UNCONSTRAINEDSIZE == aInnerSize.ISize(aWM)) ||
       (NS_UNCONSTRAINEDSIZE == aInnerSize.BSize(aWM)) ||
       (NS_UNCONSTRAINEDSIZE == aCaptionSize.ISize(aWM)) ||
       (NS_UNCONSTRAINEDSIZE == aCaptionSize.BSize(aWM))) {
     return NS_OK;
   }
 
@@ -716,17 +716,17 @@ nsTableWrapperFrame::GetInnerOrigin(uint
                    aCaptionSide == NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE ||
                    aCaptionSide == NS_STYLE_CAPTION_SIDE_BOTTOM ||
                    aCaptionSide == NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE ||
                    aCaptionSide == NO_SIDE,
                    "unexpected caption side");
       aOrigin.I(aWM) = aInnerMargin.IStart(aWM);
       break;
   }
-  
+
   // block-dir computation
   switch (aCaptionSide) {
     case NS_STYLE_CAPTION_SIDE_BOTTOM:
     case NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE:
       aOrigin.B(aWM) = aInnerMargin.BStart(aWM);
       break;
     case NS_STYLE_CAPTION_SIDE_LEFT:
     case NS_STYLE_CAPTION_SIDE_RIGHT:
@@ -878,17 +878,17 @@ nsTableWrapperFrame::Reflow(nsPresContex
   bool captionFirstReflow = false;
   if (mCaptionFrames.NotEmpty()) {
     origCaptionRect = mCaptionFrames.FirstChild()->GetRect();
     origCaptionVisualOverflow =
       mCaptionFrames.FirstChild()->GetVisualOverflowRect();
     captionFirstReflow =
       mCaptionFrames.FirstChild()->HasAnyStateBits(NS_FRAME_FIRST_REFLOW);
   }
-  
+
   // ComputeAutoSize has to match this logic.
   WritingMode wm = aOuterRI.GetWritingMode();
   uint8_t captionSide = GetCaptionSide();
   WritingMode captionWM = wm; // will be changed below if necessary
 
   if (captionSide == NO_SIDE) {
     // We don't have a caption.
     OuterBeginReflowChild(aPresContext, InnerTableFrame(), aOuterRI,
--- a/layout/tables/nsTableWrapperFrame.h
+++ b/layout/tables/nsTableWrapperFrame.h
@@ -207,46 +207,46 @@ protected:
   // having "physical" names.)
   uint8_t GetCaptionSide();
 
   bool HasSideCaption() {
     uint8_t captionSide = GetCaptionSide();
     return captionSide == NS_STYLE_CAPTION_SIDE_LEFT ||
            captionSide == NS_STYLE_CAPTION_SIDE_RIGHT;
   }
-  
+
   uint8_t GetCaptionVerticalAlign();
 
   void SetDesiredSize(uint8_t                       aCaptionSide,
                       const mozilla::LogicalSize&   aInnerSize,
                       const mozilla::LogicalSize&   aCaptionSize,
                       const mozilla::LogicalMargin& aInnerMargin,
                       const mozilla::LogicalMargin& aCaptionMargin,
                       nscoord&                      aISize,
                       nscoord&                      aBSize,
                       mozilla::WritingMode          aWM);
 
   nsresult   GetCaptionOrigin(uint32_t         aCaptionSide,
                               const mozilla::LogicalSize&    aContainBlockSize,
-                              const mozilla::LogicalSize&    aInnerSize, 
+                              const mozilla::LogicalSize&    aInnerSize,
                               const mozilla::LogicalMargin&  aInnerMargin,
                               const mozilla::LogicalSize&    aCaptionSize,
                               mozilla::LogicalMargin&        aCaptionMargin,
                               mozilla::LogicalPoint&         aOrigin,
                               mozilla::WritingMode           aWM);
 
   nsresult   GetInnerOrigin(uint32_t         aCaptionSide,
                             const mozilla::LogicalSize&    aContainBlockSize,
-                            const mozilla::LogicalSize&    aCaptionSize, 
+                            const mozilla::LogicalSize&    aCaptionSize,
                             const mozilla::LogicalMargin&  aCaptionMargin,
                             const mozilla::LogicalSize&    aInnerSize,
                             mozilla::LogicalMargin&        aInnerMargin,
                             mozilla::LogicalPoint&         aOrigin,
                             mozilla::WritingMode           aWM);
-  
+
   // reflow the child (caption or innertable frame)
   void OuterBeginReflowChild(nsPresContext*                     aPresContext,
                              nsIFrame*                          aChildFrame,
                              const ReflowInput&           aOuterRI,
                              mozilla::Maybe<ReflowInput>& aChildRI,
                              nscoord                            aAvailISize);
 
   void OuterDoReflowChild(nsPresContext*           aPresContext,
--- a/layout/tools/layout-debug/src/nsLayoutDebugCLH.cpp
+++ b/layout/tools/layout-debug/src/nsLayoutDebugCLH.cpp
@@ -51,17 +51,17 @@ nsLayoutDebugCLH::Handle(nsICommandLine*
 
     nsCOMPtr<nsIMutableArray> argsArray = nsArray::Create();
 
     if (!url.IsEmpty())
     {
         nsCOMPtr<nsISupportsString> scriptableURL =
             do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID);
         NS_ENSURE_TRUE(scriptableURL, NS_ERROR_FAILURE);
-  
+
         scriptableURL->SetData(url);
         argsArray->AppendElement(scriptableURL, /*weak =*/ false);
     }
 
     nsCOMPtr<nsIWindowWatcher> wwatch =
         do_GetService(NS_WINDOWWATCHER_CONTRACTID);
     NS_ENSURE_TRUE(wwatch, NS_ERROR_FAILURE);
 
--- a/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp
+++ b/layout/tools/layout-debug/src/nsLayoutDebuggingTools.cpp
@@ -284,17 +284,17 @@ nsLayoutDebuggingTools::GetReflowCounts(
     *aShow = mReflowCounts;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsLayoutDebuggingTools::SetReflowCounts(bool aShow)
 {
     NS_ENSURE_TRUE(mDocShell, NS_ERROR_NOT_INITIALIZED);
-    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell)); 
+    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell));
     if (shell) {
 #ifdef MOZ_REFLOW_PERF
         shell->SetPaintFrameCount(aShow);
         SetBoolPrefAndRefresh("layout.reflow.showframecounts", aShow);
         mReflowCounts = aShow;
 #else
         printf("************************************************\n");
         printf("Sorry, you have not built with MOZ_REFLOW_PERF=1\n");
@@ -460,47 +460,47 @@ nsLayoutDebuggingTools::DumpViews()
 }
 
 NS_IMETHODIMP
 nsLayoutDebuggingTools::DumpStyleSheets()
 {
     NS_ENSURE_TRUE(mDocShell, NS_ERROR_NOT_INITIALIZED);
 #ifdef DEBUG
     FILE *out = stdout;
-    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell)); 
+    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell));
     if (shell)
         shell->ListStyleSheets(out);
     else
         fputs("null pres shell\n", out);
 #endif
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsLayoutDebuggingTools::DumpStyleContexts()
 {
     NS_ENSURE_TRUE(mDocShell, NS_ERROR_NOT_INITIALIZED);
 #ifdef DEBUG
     FILE *out = stdout;
-    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell)); 
+    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell));
     if (shell) {
         shell->ListStyleContexts(out);
     } else {
         fputs("null pres shell\n", out);
     }
 #endif
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsLayoutDebuggingTools::DumpReflowStats()
 {
     NS_ENSURE_TRUE(mDocShell, NS_ERROR_NOT_INITIALIZED);
 #ifdef DEBUG
-    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell)); 
+    nsCOMPtr<nsIPresShell> shell(pres_shell(mDocShell));
     if (shell) {
 #ifdef MOZ_REFLOW_PERF
         shell->DumpReflows();
 #else
         printf("************************************************\n");
         printf("Sorry, you have not built with MOZ_REFLOW_PERF=1\n");
         printf("************************************************\n");
 #endif
--- a/layout/tools/layout-debug/src/nsRegressionTester.cpp
+++ b/layout/tools/layout-debug/src/nsRegressionTester.cpp
@@ -28,17 +28,17 @@
 
 static NS_DEFINE_CID(kFrameUtilCID, NS_FRAME_UTIL_CID);
 
 
 nsRegressionTester::nsRegressionTester()
 {
 }
 
-nsRegressionTester::~nsRegressionTester() 
+nsRegressionTester::~nsRegressionTester()
 {
 }
 
 NS_IMPL_ISUPPORTS(nsRegressionTester, nsILayoutRegressionTester)
 
 NS_IMETHODIMP
 nsRegressionTester::DumpFrameModel(mozIDOMWindow* aWindowToDump,
                                    nsIFile *aDestFile,
@@ -102,19 +102,19 @@ nsRegressionTester::DumpFrameModel(mozID
 
 NS_IMETHODIMP
 nsRegressionTester::CompareFrameModels(nsIFile *aBaseFile, nsIFile *aVerFile,
                                        uint32_t aFlags, bool *aResult)
 {
   NS_ENSURE_ARG(aBaseFile);
   NS_ENSURE_ARG(aVerFile);
   NS_ENSURE_ARG_POINTER(aResult);
-  
+
   *aResult = false;
-  
+
   nsresult rv;
   FILE* baseFile;
   rv = aBaseFile->OpenANSIFileDesc("r", &baseFile);
   if (NS_FAILED(rv)) return rv;
 
   FILE* verFile;
   rv = aVerFile->OpenANSIFileDesc("r", &verFile);
   if (NS_FAILED(rv)) {
@@ -124,15 +124,15 @@ nsRegressionTester::CompareFrameModels(n
 
   nsCOMPtr<nsIFrameUtil> frameUtil = do_CreateInstance(kFrameUtilCID, &rv);
   if (NS_SUCCEEDED(rv))
   {
     int32_t outputLevel = (aFlags == COMPARE_FLAGS_VERBOSE) ? 0 : 1;
     rv = frameUtil->CompareRegressionData(baseFile, verFile, outputLevel);
     // CompareRegressionData closes |baseFile| and |verFile|.
   } else {
-    fclose(verFile);          
+    fclose(verFile);
     fclose(baseFile);
   }
 
   *aResult = NS_FAILED(rv);
   return NS_OK;
 }
--- a/layout/tools/layout-debug/src/nsRegressionTester.h
+++ b/layout/tools/layout-debug/src/nsRegressionTester.h
@@ -4,17 +4,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsRegressionTester_h__
 #define nsRegressionTester_h__
 
 #include "nsCOMPtr.h"
 
-#include "nsILayoutRegressionTester.h"  
+#include "nsILayoutRegressionTester.h"
 #include "nsILayoutDebugger.h"
 
 //*****************************************************************************
 //***    nsRegressionTester
 //*****************************************************************************
 class  nsRegressionTester : public nsILayoutRegressionTester
 {
 public:
--- a/layout/xul/ContainerBoxObject.cpp
+++ b/layout/xul/ContainerBoxObject.cpp
@@ -9,17 +9,17 @@
 #include "nsIDocShell.h"
 #include "nsIContent.h"
 #include "nsIDocument.h"
 #include "nsIFrame.h"
 #include "nsSubDocumentFrame.h"
 
 namespace mozilla {
 namespace dom {
-  
+
 ContainerBoxObject::ContainerBoxObject()
 {
 }
 
 ContainerBoxObject::~ContainerBoxObject()
 {
 }
 
--- a/layout/xul/grid/nsGrid.cpp
+++ b/layout/xul/grid/nsGrid.cpp
@@ -16,18 +16,18 @@
 #include "nsIScrollableFrame.h"
 #include "nsSprocketLayout.h"
 #include "nsGridLayout2.h"
 #include "nsGridRow.h"
 #include "nsGridCell.h"
 #include "mozilla/ReflowInput.h"
 
 /*
-The grid control expands the idea of boxes from 1 dimension to 2 dimensions. 
-It works by allowing the XUL to define a collection of rows and columns and then 
+The grid control expands the idea of boxes from 1 dimension to 2 dimensions.
+It works by allowing the XUL to define a collection of rows and columns and then
 stacking them on top of each other. Here is and example.
 
 Example 1:
 
 <grid>
    <columns>
       <column/>
       <column/>
@@ -70,30 +70,30 @@ example 3:
       <column>
          <text value="Hey I'm in the column and I'm on top!"/>
       </column>
       <column/>
    </columns>
 
 </grid>
 
-Usually the columns are first and the rows are second, so the rows will be drawn on top of the columns. 
+Usually the columns are first and the rows are second, so the rows will be drawn on top of the columns.
 You can reverse this by defining the rows first.
-Other tags are then placed in the <row> or <column> tags causing the grid to accommodate everyone.  
-It does this by creating 3 things: A cellmap, a row list, and a column list. The cellmap is a 2 
-dimensional array of nsGridCells. Each cell contains 2 boxes.  One cell from the column list 
-and one from the row list. When a cell is asked for its size it returns that smallest size it can 
-be to accommodate the 2 cells. Row lists and Column lists use the same data structure: nsGridRow. 
-Essentially a row and column are the same except a row goes alone the x axis and a column the y. 
-To make things easier and save code everything is written in terms of the x dimension. A flag is 
+Other tags are then placed in the <row> or <column> tags causing the grid to accommodate everyone.
+It does this by creating 3 things: A cellmap, a row list, and a column list. The cellmap is a 2
+dimensional array of nsGridCells. Each cell contains 2 boxes.  One cell from the column list
+and one from the row list. When a cell is asked for its size it returns that smallest size it can
+be to accommodate the 2 cells. Row lists and Column lists use the same data structure: nsGridRow.
+Essentially a row and column are the same except a row goes alone the x axis and a column the y.
+To make things easier and save code everything is written in terms of the x dimension. A flag is
 passed in called "isHorizontal" that can flip the calculations to the y axis.
 
-Usually the number of cells in a row match the number of columns, but not always. 
-It is possible to define 5 columns for a grid but have 10 cells in one of the rows. 
-In this case 5 extra columns will be added to the column list to handle the situation. 
+Usually the number of cells in a row match the number of columns, but not always.
+It is possible to define 5 columns for a grid but have 10 cells in one of the rows.
+In this case 5 extra columns will be added to the column list to handle the situation.
 These are called extraColumns/Rows.
 */
 
 using namespace mozilla;
 
 nsGrid::nsGrid():mBox(nullptr),
                  mRowsBox(nullptr),
                  mColumnsBox(nullptr),
@@ -109,30 +109,30 @@ nsGrid::nsGrid():mBox(nullptr),
 
 nsGrid::~nsGrid()
 {
     FreeMap();
     MOZ_COUNT_DTOR(nsGrid);
 }
 
 /*
- * This is called whenever something major happens in the grid. And example 
- * might be when many cells or row are added. It sets a flag signaling that 
+ * This is called whenever something major happens in the grid. And example
+ * might be when many cells or row are added. It sets a flag signaling that
  * all the grids caches information should be recalculated.
  */
 void
 nsGrid::NeedsRebuild(nsBoxLayoutState& aState)
 {
   if (mNeedsRebuild)
     return;
 
   // iterate through columns and rows and dirty them
   mNeedsRebuild = true;
 
-  // find the new row and column box. They could have 
+  // find the new row and column box. They could have
   // been changed.
   mRowsBox = nullptr;
   mColumnsBox = nullptr;
   FindRowsAndColumns(&mRowsBox, &mColumnsBox);
 
   // tell all the rows and columns they are dirty
   DirtyRows(mRowsBox, aState);
   DirtyRows(mColumnsBox, aState);
@@ -158,17 +158,17 @@ nsGrid::RebuildIfNeeded()
   int32_t computedRowCount = 0;
   int32_t computedColumnCount = 0;
   int32_t rowCount = 0;
   int32_t columnCount = 0;
 
   CountRowsColumns(mRowsBox, rowCount, computedColumnCount);
   CountRowsColumns(mColumnsBox, columnCount, computedRowCount);
 
-  // computedRowCount are the actual number of rows as determined by the 
+  // computedRowCount are the actual number of rows as determined by the
   // columns children.
   // computedColumnCount are the number of columns as determined by the number
   // of rows children.
   // We can use this information to see how many extra columns or rows we need.
   // This can happen if there are are more children in a row that number of columns
   // defined. Example:
   //
   // <columns>
@@ -180,17 +180,17 @@ nsGrid::RebuildIfNeeded()
   //     <button/><button/>
   //   </row>
   // </rows>
   //
   // computedColumnCount = 2 // for the 2 buttons in the row tag
   // computedRowCount = 0 // there is nothing in the  column tag
   // mColumnCount = 1 // one column defined
   // mRowCount = 1 // one row defined
-  // 
+  //
   // So in this case we need to make 1 extra column.
   //
 
   // Make sure to update mExtraColumnCount no matter what, since it might
   // happen that we now have as many columns as are defined, and we wouldn't
   // want to have a positive mExtraColumnCount hanging about in that case!
   mExtraColumnCount = computedColumnCount - columnCount;
   if (computedColumnCount > columnCount) {
@@ -289,17 +289,17 @@ nsGrid::FindRowsAndColumns(nsIFrame** aR
 void
 nsGrid::CountRowsColumns(nsIFrame* aRowBox, int32_t& aRowCount, int32_t& aComputedColumnCount)
 {
   aRowCount = 0;
   aComputedColumnCount = 0;
   // get the rowboxes layout manager. Then ask it to do the work for us
   if (aRowBox) {
     nsCOMPtr<nsIGridPart> monument = GetPartFromBox(aRowBox);
-    if (monument) 
+    if (monument)
        monument->CountRowsColumns(aRowBox, aRowCount, aComputedColumnCount);
   }
 }
 
 
 /**
  * Given the number of rows create nsGridRow objects for them and full them out.
  */
@@ -308,20 +308,20 @@ nsGrid::BuildRows(nsIFrame* aBox, int32_
 {
   // if no rows then return null
   if (aRowCount == 0) {
     return nullptr;
   }
 
   // create the array
   UniquePtr<nsGridRow[]> row;
-  
+
   // only create new rows if we have to. Reuse old rows.
   if (aIsHorizontal)
-  { 
+  {
     if (aRowCount > mRowCount) {
        row = MakeUnique<nsGridRow[]>(aRowCount);
     } else {
       for (int32_t i=0; i < mRowCount; i++)
         mRows[i].Init(nullptr, false);
 
       row = Move(mRows);
     }
@@ -368,49 +368,49 @@ nsGrid::BuildCellMap(int32_t aRows, int3
   // clear out cellmap
   for (int32_t i=0; i < oldsize; i++) {
     mCellMap[i].SetBoxInRow(nullptr);
     mCellMap[i].SetBoxInColumn(nullptr);
   }
   return Move(mCellMap);
 }
 
-/** 
+/**
  * Run through all the cells in the rows and columns and populate then with 2 cells. One from the row and one
  * from the column
  */
 void
 nsGrid::PopulateCellMap(nsGridRow* aRows, nsGridRow* aColumns, int32_t aRowCount, int32_t aColumnCount, bool aIsHorizontal)
 {
   if (!aRows)
     return;
 
    // look through the columns
   int32_t j = 0;
 
-  for(int32_t i=0; i < aRowCount; i++) 
+  for(int32_t i=0; i < aRowCount; i++)
   {
      nsIFrame* child = nullptr;
      nsGridRow* row = &aRows[i];
 
      // skip bogus rows. They have no cells
-     if (row->mIsBogus) 
+     if (row->mIsBogus)
        continue;
 
      child = row->mBox;
      if (child) {
        child = nsBox::GetChildXULBox(child);
 
        j = 0;
 
        while(child && j < aColumnCount)
        {
          // skip bogus column. They have no cells
          nsGridRow* column = &aColumns[j];
-         if (column->mIsBogus) 
+         if (column->mIsBogus)
          {
            j++;
            continue;
          }
 
          if (aIsHorizontal)
            GetCellAt(j,i)->SetBoxInRow(child);
          else
@@ -420,29 +420,29 @@ nsGrid::PopulateCellMap(nsGridRow* aRows
 
          j++;
        }
      }
   }
 }
 
 /**
- * Run through the rows in the given box and mark them dirty so they 
+ * Run through the rows in the given box and mark them dirty so they
  * will get recalculated and get a layout.
  */
-void 
+void
 nsGrid::DirtyRows(nsIFrame* aRowBox, nsBoxLayoutState& aState)
 {
   // make sure we prevent others from dirtying things.
   mMarkingDirty = true;
 
   // if the box is a grid part have it recursively hand it.
   if (aRowBox) {
     nsCOMPtr<nsIGridPart> part = GetPartFromBox(aRowBox);
-    if (part) 
+    if (part)
        part->DirtyRows(aRowBox, aState);
   }
 
   mMarkingDirty = false;
 }
 
 nsGridRow*
 nsGrid::GetColumnAt(int32_t aIndex, bool aIsHorizontal)
@@ -494,43 +494,43 @@ nsGrid::GetExtraRowCount(bool aIsHorizon
 
 /**
  * These methods return the preferred, min, max sizes for a given row index.
  * aIsHorizontal if aIsHorizontal is true. If you pass false you will get the inverse.
  * As if you called GetPrefColumnSize(aState, index, aPref)
  */
 nsSize
 nsGrid::GetPrefRowSize(nsBoxLayoutState& aState, int32_t aRowIndex, bool aIsHorizontal)
-{ 
+{
   nsSize size(0,0);
   if (!(aRowIndex >=0 && aRowIndex < GetRowCount(aIsHorizontal)))
     return size;
 
   nscoord height = GetPrefRowHeight(aState, aRowIndex, aIsHorizontal);
   SetLargestSize(size, height, aIsHorizontal);
 
   return size;
 }
 
 nsSize
 nsGrid::GetMinRowSize(nsBoxLayoutState& aState, int32_t aRowIndex, bool aIsHorizontal)
-{ 
+{
   nsSize size(0,0);
   if (!(aRowIndex >=0 && aRowIndex < GetRowCount(aIsHorizontal)))
     return size;
 
   nscoord height = GetMinRowHeight(aState, aRowIndex, aIsHorizontal);
   SetLargestSize(size, height, aIsHorizontal);
 
   return size;
 }
 
 nsSize
 nsGrid::GetMaxRowSize(nsBoxLayoutState& aState, int32_t aRowIndex, bool aIsHorizontal)
-{ 
+{
   nsSize size(NS_INTRINSICSIZE,NS_INTRINSICSIZE);
   if (!(aRowIndex >=0 && aRowIndex < GetRowCount(aIsHorizontal)))
     return size;
 
   nscoord height = GetMaxRowHeight(aState, aRowIndex, aIsHorizontal);
   SetSmallestSize(size, height, aIsHorizontal);
 
   return size;
@@ -547,17 +547,17 @@ nsGrid::GetPartFromBox(nsIFrame* aBox)
   return layout ? layout->AsGridPart() : nullptr;
 }
 
 nsMargin
 nsGrid::GetBoxTotalMargin(nsIFrame* aBox, bool aIsHorizontal)
 {
   nsMargin margin(0,0,0,0);
   // walk the boxes parent chain getting the border/padding/margin of our parent rows
-  
+
   // first get the layour manager
   nsIGridPart* part = GetPartFromBox(aBox);
   if (part)
     margin = part->GetTotalMargin(aBox, aIsHorizontal);
 
   return margin;
 }
 
@@ -616,27 +616,27 @@ nsGrid::GetFirstAndLastRow(int32_t& aFir
      }
 
   }
 }
 
 /**
  * A row can have a top and bottom offset. Usually this is just the top and bottom border/padding.
  * However if the row is the first or last it could be affected by the fact a column or columns could
- * have a top or bottom margin. 
+ * have a top or bottom margin.
  */
 void
 nsGrid::GetRowOffsets(int32_t aIndex, nscoord& aTop, nscoord& aBottom, bool aIsHorizontal)
 {
 
   RebuildIfNeeded();
 
   nsGridRow* row = GetRowAt(aIndex, aIsHorizontal);
 
-  if (row->IsOffsetSet()) 
+  if (row->IsOffsetSet())
   {
     aTop    = row->mTop;
     aBottom = row->mBottom;
     return;
   }
 
   // first get the rows top and bottom border and padding
   nsIFrame* box = row->GetBox();
@@ -681,45 +681,45 @@ nsGrid::GetRowOffsets(int32_t aIndex, ns
   } else {
     row->mTop = totalBorderPadding.left;
     row->mBottom = totalBorderPadding.right;
     row->mTopMargin = totalMargin.left;
     row->mBottomMargin = totalMargin.right;
   }
 
   // if we are the first or last row take into account the top and bottom borders
-  // of each columns. 
+  // of each columns.
 
-  // If we are the first row then get the largest top border/padding in 
+  // If we are the first row then get the largest top border/padding in
   // our columns. If that's larger than the rows top border/padding use it.
 
-  // If we are the last row then get the largest bottom border/padding in 
+  // If we are the last row then get the largest bottom border/padding in
   // our columns. If that's larger than the rows bottom border/padding use it.
   int32_t firstIndex = 0;
   int32_t lastIndex = 0;
   nsGridRow* firstRow = nullptr;
   nsGridRow* lastRow = nullptr;
   GetFirstAndLastRow(firstIndex, lastIndex, firstRow, lastRow, aIsHorizontal);
 
   if (aIndex == firstIndex || aIndex == lastIndex) {
     nscoord maxTop = 0;
     nscoord maxBottom = 0;
 
     // run through the columns. Look at each column
     // pick the largest top border or bottom border
-    int32_t count = GetColumnCount(aIsHorizontal); 
+    int32_t count = GetColumnCount(aIsHorizontal);
 
     for (int32_t i=0; i < count; i++)
-    {  
+    {
       nsMargin totalChildBorderPadding(0,0,0,0);
 
       nsGridRow* column = GetColumnAt(i,aIsHorizontal);
       nsIFrame* box = column->GetBox();
 
-      if (box) 
+      if (box)
       {
         // ignore collapsed children
         if (!box->IsXULCollapsed())
         {
            // include the margin of the columns. To the row
            // at this point border/padding and margins all added
            // up to more needed space.
            margin = GetBoxTotalMargin(box, !aIsHorizontal);
@@ -740,47 +740,47 @@ nsGrid::GetRowOffsets(int32_t aIndex, ns
         if (aIndex == firstIndex) {
           if (aIsHorizontal) {
             top = totalChildBorderPadding.top;
           } else {
             top = totalChildBorderPadding.left;
           }
           if (top > maxTop)
             maxTop = top;
-        } 
+        }
 
         // pick the largest bottom margin
         if (aIndex == lastIndex) {
           if (aIsHorizontal) {
             bottom = totalChildBorderPadding.bottom;
           } else {
             bottom = totalChildBorderPadding.right;
           }
           if (bottom > maxBottom)
              maxBottom = bottom;
         }
 
       }
-    
+
       // If the biggest top border/padding the columns is larger than this rows top border/padding
       // the use it.
       if (aIndex == firstIndex) {
         if (maxTop > (row->mTop + row->mTopMargin))
           row->mTop = maxTop - row->mTopMargin;
       }
 
       // If the biggest bottom border/padding the columns is larger than this rows bottom border/padding
       // the use it.
       if (aIndex == lastIndex) {
         if (maxBottom > (row->mBottom + row->mBottomMargin))
           row->mBottom = maxBottom - row->mBottomMargin;
       }
     }
   }
-  
+
   aTop    = row->mTop;
   aBottom = row->mBottom;
 }
 
 /**
  * These methods return the preferred, min, max coord for a given row index if
  * aIsHorizontal is true. If you pass false you will get the inverse.
  * As if you called GetPrefColumnHeight(aState, index, aPref).
@@ -790,23 +790,23 @@ nsGrid::GetPrefRowHeight(nsBoxLayoutStat
 {
   RebuildIfNeeded();
 
   nsGridRow* row = GetRowAt(aIndex, aIsHorizontal);
 
   if (row->IsXULCollapsed())
     return 0;
 
-  if (row->IsPrefSet()) 
+  if (row->IsPrefSet())
     return row->mPref;
 
   nsIFrame* box = row->mBox;
 
   // set in CSS?
-  if (box) 
+  if (box)
   {
     bool widthSet, heightSet;
     nsSize cssSize(-1, -1);
     nsIFrame::AddXULPrefSize(box, cssSize, widthSet, heightSet);
 
     row->mPref = GET_HEIGHT(cssSize, aIsHorizontal);
 
     // yep do nothing.
@@ -815,39 +815,39 @@ nsGrid::GetPrefRowHeight(nsBoxLayoutStat
   }
 
   // get the offsets so they are cached.
   nscoord top;
   nscoord bottom;
   GetRowOffsets(aIndex, top, bottom, aIsHorizontal);
 
   // is the row bogus? If so then just ask it for its size
-  // it should not be affected by cells in the grid. 
+  // it should not be affected by cells in the grid.
   if (row->mIsBogus)
   {
      nsSize size(0,0);
-     if (box) 
+     if (box)
      {
        size = box->GetXULPrefSize(aState);
        nsBox::AddMargin(box, size);
        nsGridLayout2::AddOffset(box, size);
      }
 
      row->mPref = GET_HEIGHT(size, aIsHorizontal);
      return row->mPref;
   }
 
   nsSize size(0,0);
 
   nsGridCell* child;
 
-  int32_t count = GetColumnCount(aIsHorizontal); 
+  int32_t count = GetColumnCount(aIsHorizontal);
 
   for (int32_t i=0; i < count; i++)
-  {  
+  {
     if (aIsHorizontal)
      child = GetCellAt(i,aIndex);
     else
      child = GetCellAt(aIndex,i);
 
     // ignore collapsed children
     if (!child->IsXULCollapsed())
     {
@@ -867,17 +867,17 @@ nsGrid::GetMinRowHeight(nsBoxLayoutState
 {
   RebuildIfNeeded();
 
   nsGridRow* row = GetRowAt(aIndex, aIsHorizontal);
 
   if (row->IsXULCollapsed())
     return 0;
 
-  if (row->IsMinSet()) 
+  if (row->IsMinSet())
     return row->mMin;
 
   nsIFrame* box = row->mBox;
 
   // set in CSS?
   if (box) {
     bool widthSet, heightSet;
     nsSize cssSize(-1, -1);
@@ -891,17 +891,17 @@ nsGrid::GetMinRowHeight(nsBoxLayoutState
   }
 
   // get the offsets so they are cached.
   nscoord top;
   nscoord bottom;
   GetRowOffsets(aIndex, top, bottom, aIsHorizontal);
 
   // is the row bogus? If so then just ask it for its size
-  // it should not be affected by cells in the grid. 
+  // it should not be affected by cells in the grid.
   if (row->mIsBogus)
   {
      nsSize size(0,0);
      if (box) {
        size = box->GetXULPrefSize(aState);
        nsBox::AddMargin(box, size);
        nsGridLayout2::AddOffset(box, size);
      }
@@ -909,20 +909,20 @@ nsGrid::GetMinRowHeight(nsBoxLayoutState
      row->mMin = GET_HEIGHT(size, aIsHorizontal) + top + bottom;
      return row->mMin;
   }
 
   nsSize size(0,0);
 
   nsGridCell* child;
 
-  int32_t count = GetColumnCount(aIsHorizontal); 
+  int32_t count = GetColumnCount(aIsHorizontal);
 
   for (int32_t i=0; i < count; i++)
-  {  
+  {
     if (aIsHorizontal)
      child = GetCellAt(i,aIndex);
     else
      child = GetCellAt(aIndex,i);
 
     // ignore collapsed children
     if (!child->IsXULCollapsed())
     {
@@ -942,17 +942,17 @@ nsGrid::GetMaxRowHeight(nsBoxLayoutState
 {
   RebuildIfNeeded();
 
   nsGridRow* row = GetRowAt(aIndex, aIsHorizontal);
 
   if (row->IsXULCollapsed())
     return 0;
 
-  if (row->IsMaxSet()) 
+  if (row->IsMaxSet())
     return row->mMax;
 
   nsIFrame* box = row->mBox;
 
   // set in CSS?
   if (box) {
     bool widthSet, heightSet;
     nsSize cssSize(-1, -1);
@@ -966,17 +966,17 @@ nsGrid::GetMaxRowHeight(nsBoxLayoutState
   }
 
   // get the offsets so they are cached.
   nscoord top;
   nscoord bottom;
   GetRowOffsets(aIndex, top, bottom, aIsHorizontal);
 
   // is the row bogus? If so then just ask it for its size
-  // it should not be affected by cells in the grid. 
+  // it should not be affected by cells in the grid.
   if (row->mIsBogus)
   {
      nsSize size(NS_INTRINSICSIZE,NS_INTRINSICSIZE);
      if (box) {
        size = box->GetXULPrefSize(aState);
        nsBox::AddMargin(box, size);
        nsGridLayout2::AddOffset(box, size);
      }
@@ -984,20 +984,20 @@ nsGrid::GetMaxRowHeight(nsBoxLayoutState
      row->mMax = GET_HEIGHT(size, aIsHorizontal);
      return row->mMax;
   }
 
   nsSize size(NS_INTRINSICSIZE,NS_INTRINSICSIZE);
 
   nsGridCell* child;
 
-  int32_t count = GetColumnCount(aIsHorizontal); 
+  int32_t count = GetColumnCount(aIsHorizontal);
 
   for (int32_t i=0; i < count; i++)
-  {  
+  {
     if (aIsHorizontal)
      child = GetCellAt(i,aIndex);
     else
      child = GetCellAt(aIndex,i);
 
     // ignore collapsed children
     if (!child->IsXULCollapsed())
     {
@@ -1034,58 +1034,58 @@ nsGrid::IsGrid(nsIFrame* aBox)
  */
 nscoord
 nsGrid::GetRowFlex(int32_t aIndex, bool aIsHorizontal)
 {
   RebuildIfNeeded();
 
   nsGridRow* row = GetRowAt(aIndex, aIsHorizontal);
 
-  if (row->IsFlexSet()) 
+  if (row->IsFlexSet())
     return row->mFlex;
 
   nsIFrame* box = row->mBox;
   row->mFlex = 0;
 
   if (box) {
 
     // We need our flex but a inflexible row could be around us. If so
-    // neither are we. However if its the row tag just inside the grid it won't 
+    // neither are we. However if its the row tag just inside the grid it won't
     // affect us. We need to do this for this case:
-    // <grid> 
-    //   <rows> 
+    // <grid>
+    //   <rows>
     //     <rows> // this is not flexible. So our children should not be flexible
     //        <row flex="1"/>
     //        <row flex="1"/>
     //     </rows>
     //        <row/>
     //   </rows>
     // </grid>
     //
     // or..
     //
-    // <grid> 
+    // <grid>
     //  <rows>
     //   <rows> // this is not flexible. So our children should not be flexible
-    //     <rows flex="1"> 
+    //     <rows flex="1">
     //        <row flex="1"/>
     //        <row flex="1"/>
     //     </rows>
     //        <row/>
     //   </rows>
     //  </row>
     // </grid>
 
 
     // So here is how it looks
     //
-    // <grid>     
+    // <grid>
     //   <rows>   // parentsParent
     //     <rows> // parent
-    //        <row flex="1"/> 
+    //        <row flex="1"/>
     //        <row flex="1"/>
     //     </rows>
     //        <row/>
     //   </rows>
     // </grid>
 
     // so the answer is simple: 1) Walk our parent chain. 2) If we find
     // someone who is not flexible and they aren't the rows immediately in
@@ -1106,23 +1106,23 @@ nsGrid::GetRowFlex(int32_t aIndex, bool 
       if (parentsParent) {
         if (!IsGrid(parentsParent)) {
           nscoord flex = parent->GetXULFlex();
           nsIFrame::AddXULFlex(parent, flex);
           if (flex == 0) {
             row->mFlex = 0;
             return row->mFlex;
           }
-        } else 
+        } else
           break;
       }
 
       parent = parentsParent;
     }
-    
+
     // get the row flex.
     row->mFlex = box->GetXULFlex();
     nsIFrame::AddXULFlex(box, row->mFlex);
   }
 
   return row->mFlex;
 }
 
@@ -1145,52 +1145,52 @@ nsGrid::SetSmallestSize(nsSize& aSize, n
     if (aSize.height > aHeight)
       aSize.height = aHeight;
   } else {
     if (aSize.width < aHeight)
       aSize.width = aHeight;
   }
 }
 
-int32_t 
+int32_t
 nsGrid::GetRowCount(int32_t aIsHorizontal)
 {
   RebuildIfNeeded();
 
   if (aIsHorizontal)
     return mRowCount;
   else
     return mColumnCount;
 }
 
-int32_t 
+int32_t
 nsGrid::GetColumnCount(int32_t aIsHorizontal)
 {
   return GetRowCount(!aIsHorizontal);
 }
 
 /*
  * A cell in the given row or columns at the given index has had a child added or removed
  */
-void 
+void
 nsGrid::CellAddedOrRemoved(nsBoxLayoutState& aState, int32_t aIndex, bool aIsHorizontal)
 {
   // TBD see if the cell will fit in our current row. If it will
-  // just add it in. 
+  // just add it in.
   // but for now rebuild everything.
   if (mMarkingDirty)
     return;
 
   NeedsRebuild(aState);
 }
 
 /**
  * A row or columns at the given index had been added or removed
  */
-void 
+void
 nsGrid::RowAddedOrRemoved(nsBoxLayoutState& aState, int32_t aIndex, bool aIsHorizontal)
 {
   // TBD see if we have extra room in the table and just add the new row in
   // for now rebuild the world
   if (mMarkingDirty)
     return;
 
   NeedsRebuild(aState);
@@ -1234,43 +1234,43 @@ nsGrid::GetScrollBox(nsIFrame* aChild)
   while (parent) {
     nsIScrollableFrame *scrollFrame = do_QueryFrame(parent);
     // scrollframe? Yep return it.
     if (scrollFrame)
       return parent;
 
     nsCOMPtr<nsIGridPart> parentGridRow = GetPartFromBox(parent);
     // if a part then just return the child
-    if (parentGridRow) 
+    if (parentGridRow)
       break;
 
     parent = nsBox::GetParentXULBox(parent);
   }
 
   return aChild;
 }
 
 
 
 #ifdef DEBUG_grid
 void
 nsGrid::PrintCellMap()
 {
-  
+
   printf("-----Columns------\n");
-  for (int x=0; x < mColumnCount; x++) 
+  for (int x=0; x < mColumnCount; x++)
   {
-   
+
     nsGridRow* column = GetColumnAt(x);
     printf("%d(pf=%d, mn=%d, mx=%d) ", x, column->mPref, column->mMin, column->mMax);
   }
 
   printf("\n-----Rows------\n");
-  for (x=0; x < mRowCount; x++) 
+  for (x=0; x < mRowCount; x++)
   {
     nsGridRow* column = GetRowAt(x);
     printf("%d(pf=%d, mn=%d, mx=%d) ", x, column->mPref, column->mMin, column->mMax);
   }
 
   printf("\n");
-  
+
 }
 #endif
--- a/layout/xul/grid/nsGrid.h
+++ b/layout/xul/grid/nsGrid.h
@@ -110,17 +110,17 @@ private:
 
   // a flag that is false tells us to rebuild the who grid
   bool mNeedsRebuild;
 
   // number of rows and columns as defined by the XUL
   int32_t mRowCount;
   int32_t mColumnCount;
 
-  // number of rows and columns that are implied but not 
+  // number of rows and columns that are implied but not
   // explicitly defined int he XUL
   int32_t mExtraRowCount;
   int32_t mExtraColumnCount;
 
   // x,y array of cells in the rows and columns
   mozilla::UniquePtr<nsGridCell[]> mCellMap;
 
   // a flag that when true suppresses all other MarkDirties. This
--- a/layout/xul/grid/nsGridCell.cpp
+++ b/layout/xul/grid/nsGridCell.cpp
@@ -14,18 +14,18 @@
 #include "nsFrame.h"
 #include "nsBox.h"
 #include "nsGridLayout2.h"
 
 
 nsGridCell::nsGridCell():mBoxInColumn(nullptr),mBoxInRow(nullptr)
 {
     MOZ_COUNT_CTOR(nsGridCell);
-}                                               
-        
+}
+
 nsGridCell::~nsGridCell()
 {
     MOZ_COUNT_DTOR(nsGridCell);
 }
 
 nsSize
 nsGridCell::GetXULPrefSize(nsBoxLayoutState& aState)
 {
@@ -92,17 +92,17 @@ nsGridCell::GetXULMaxSize(nsBoxLayoutSta
   nsSize sum(NS_INTRINSICSIZE, NS_INTRINSICSIZE);
 
   // take our 2 children and add them up.
   // we are as wide as the smallest child plus its left offset
   // we are tall as the shortest child plus its top offset
 
   if (mBoxInColumn) {
     nsSize max = mBoxInColumn->GetXULMaxSize(aState);
- 
+
     nsBox::AddMargin(mBoxInColumn, max);
     nsGridLayout2::AddOffset(mBoxInColumn, max);
 
     nsBoxLayout::AddSmallestSize(sum, max);
   }
 
   if (mBoxInRow) {
     nsSize max = mBoxInRow->GetXULMaxSize(aState);
--- a/layout/xul/grid/nsGridCell.h
+++ b/layout/xul/grid/nsGridCell.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsGridCell_h___
 #define nsGridCell_h___
 
@@ -18,17 +18,17 @@
 class nsBoxLayoutState;
 struct nsSize;
 class nsIFrame;
 
 /*
  * Grid cell is what makes up the cellmap in the grid. Each GridCell contains
  * 2 pointers. One to the matching box in the columns and one to the matching box
  * in the rows. Remember that you can put content in both rows and columns.
- * When asked for preferred/min/max sizes it works like a stack and takes the 
+ * When asked for preferred/min/max sizes it works like a stack and takes the
  * biggest sizes.
  */
 
 class nsGridCell final
 {
 public:
     nsGridCell();
     ~nsGridCell();
--- a/layout/xul/grid/nsGridLayout2.cpp
+++ b/layout/xul/grid/nsGridLayout2.cpp
@@ -20,18 +20,18 @@
 
 nsresult
 NS_NewGridLayout2( nsIPresShell* aPresShell, nsBoxLayout** aNewLayout)
 {
   *aNewLayout = new nsGridLayout2(aPresShell);
   NS_IF_ADDREF(*aNewLayout);
 
   return NS_OK;
-  
-} 
+
+}
 
 nsGridLayout2::nsGridLayout2(nsIPresShell* aPresShell):nsStackLayout()
 {
 }
 
 nsGridLayout2::~nsGridLayout2()
 {
 }
@@ -90,69 +90,69 @@ nsGridLayout2::AddWidth(nsSize& aSize, n
     else
       size += aSize2;
   }
 }
 
 nsSize
 nsGridLayout2::GetXULMinSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
-  nsSize minSize = nsStackLayout::GetXULMinSize(aBox, aState); 
+  nsSize minSize = nsStackLayout::GetXULMinSize(aBox, aState);
 
   // if there are no <rows> tags that will sum up our columns,
   // sum up our columns here.
   nsSize total(0,0);
   nsIFrame* rowsBox = mGrid.GetRowsBox();
   nsIFrame* columnsBox = mGrid.GetColumnsBox();
   if (!rowsBox || !columnsBox) {
     if (!rowsBox) {
       // max height is the sum of our rows
       int32_t rows = mGrid.GetRowCount();
       for (int32_t i=0; i < rows; i++)
       {
-        nscoord height = mGrid.GetMinRowHeight(aState, i, true); 
+        nscoord height = mGrid.GetMinRowHeight(aState, i, true);
         AddWidth(total, height, false); // AddHeight
       }
     }
 
     if (!columnsBox) {
       // max height is the sum of our rows
       int32_t columns = mGrid.GetColumnCount();
       for (int32_t i=0; i < columns; i++)
       {
-        nscoord width = mGrid.GetMinRowHeight(aState, i, false); 
+        nscoord width = mGrid.GetMinRowHeight(aState, i, false);
         AddWidth(total, width, true); // AddWidth
       }
     }
 
     AddMargin(aBox, total);
     AddOffset(aBox, total);
     AddLargestSize(minSize, total);
   }
-  
+
   return minSize;
 }
 
 nsSize
 nsGridLayout2::GetXULPrefSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
-  nsSize pref = nsStackLayout::GetXULPrefSize(aBox, aState); 
+  nsSize pref = nsStackLayout::GetXULPrefSize(aBox, aState);
 
   // if there are no <rows> tags that will sum up our columns,
   // sum up our columns here.
   nsSize total(0,0);
   nsIFrame* rowsBox = mGrid.GetRowsBox();
   nsIFrame* columnsBox = mGrid.GetColumnsBox();
   if (!rowsBox || !columnsBox) {
     if (!rowsBox) {
       // max height is the sum of our rows
       int32_t rows = mGrid.GetRowCount();
       for (int32_t i=0; i < rows; i++)
       {
-        nscoord height = mGrid.GetPrefRowHeight(aState, i, true); 
+        nscoord height = mGrid.GetPrefRowHeight(aState, i, true);
         AddWidth(total, height, false); // AddHeight
       }
     }
 
     if (!columnsBox) {
       // max height is the sum of our rows
       int32_t columns = mGrid.GetColumnCount();
       for (int32_t i=0; i < columns; i++)
@@ -168,31 +168,31 @@ nsGridLayout2::GetXULPrefSize(nsIFrame* 
   }
 
   return pref;
 }
 
 nsSize
 nsGridLayout2::GetXULMaxSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
-  nsSize maxSize = nsStackLayout::GetXULMaxSize(aBox, aState); 
+  nsSize maxSize = nsStackLayout::GetXULMaxSize(aBox, aState);
 
   // if there are no <rows> tags that will sum up our columns,
   // sum up our columns here.
   nsSize total(NS_INTRINSICSIZE, NS_INTRINSICSIZE);
   nsIFrame* rowsBox = mGrid.GetRowsBox();
   nsIFrame* columnsBox = mGrid.GetColumnsBox();
   if (!rowsBox || !columnsBox) {
     if (!rowsBox) {
       total.height = 0;
       // max height is the sum of our rows
       int32_t rows = mGrid.GetRowCount();
       for (int32_t i=0; i < rows; i++)
       {
-        nscoord height = mGrid.GetMaxRowHeight(aState, i, true); 
+        nscoord height = mGrid.GetMaxRowHeight(aState, i, true);
         AddWidth(total, height, false); // AddHeight
       }
     }
 
     if (!columnsBox) {
       total.width = 0;
       // max height is the sum of our rows
       int32_t columns = mGrid.GetColumnCount();
--- a/layout/xul/grid/nsGridLayout2.h
+++ b/layout/xul/grid/nsGridLayout2.h
@@ -16,17 +16,17 @@
 class nsGridRowGroupLayout;
 class nsGridRowLayout;
 class nsGridRow;
 class nsBoxLayoutState;
 
 /**
  * The nsBoxLayout implementation for a grid.
  */
-class nsGridLayout2 final : public nsStackLayout, 
+class nsGridLayout2 final : public nsStackLayout,
                             public nsIGridPart
 {
 public:
 
   friend nsresult NS_NewGridLayout2(nsIPresShell* aPresShell, nsBoxLayout** aNewLayout);
 
   NS_DECL_ISUPPORTS_INHERITED
 
--- a/layout/xul/grid/nsGridRow.cpp
+++ b/layout/xul/grid/nsGridRow.cpp
@@ -10,23 +10,23 @@
 // See documentation in associated header file
 //
 
 #include "nsGridRow.h"
 #include "nsBoxLayoutState.h"
 #include "nsIFrame.h"
 
 nsGridRow::nsGridRow():mIsBogus(false),
-                       mBox(nullptr), 
+                       mBox(nullptr),
                        mFlex(-1),
                        mPref(-1),
                        mMin(-1),
                        mMax(-1),
                        mTop(-1),
-                       mBottom(-1), 
+                       mBottom(-1),
                        mTopMargin(0),
                        mBottomMargin(0)
 
 {
     MOZ_COUNT_CTOR(nsGridRow);
 }
 
 void
@@ -44,14 +44,14 @@ nsGridRow::Init(nsIFrame* aBox, bool aIs
   mBottomMargin = 0;
 }
 
 nsGridRow::~nsGridRow()
 {
    MOZ_COUNT_DTOR(nsGridRow);
 }
 
-bool 
+bool
 nsGridRow::IsXULCollapsed()
 {
   return mBox && mBox->IsXULCollapsed();
 }
 
--- a/layout/xul/grid/nsGridRow.h
+++ b/layout/xul/grid/nsGridRow.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsGridRow_h___
 #define nsGridRow_h___
 
@@ -27,17 +27,17 @@ public:
    ~nsGridRow();
 
    void Init(nsIFrame* aBox, bool aIsBogus);
 
 // accessors
    nsIFrame* GetBox()   { return mBox;          }
    bool IsPrefSet() { return (mPref != -1); }
    bool IsMinSet()  { return (mMin  != -1); }
-   bool IsMaxSet()  { return (mMax  != -1); } 
+   bool IsMaxSet()  { return (mMax  != -1); }
    bool IsFlexSet() { return (mFlex != -1); }
    bool IsOffsetSet() { return (mTop != -1 && mBottom != -1); }
    bool IsXULCollapsed();
 
 public:
 
    bool    mIsBogus;
    nsIFrame* mBox;
--- a/layout/xul/grid/nsGridRowGroupFrame.h
+++ b/layout/xul/grid/nsGridRowGroupFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   A frame that can have multiple children. Only one child may be displayed at one time. So the
   can be flipped though like a deck of cards.
- 
+
 **/
 
 #ifndef nsGridRowGroupFrame_h___
 #define nsGridRowGroupFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsBoxFrame.h"
 
--- a/layout/xul/grid/nsGridRowGroupLayout.cpp
+++ b/layout/xul/grid/nsGridRowGroupLayout.cpp
@@ -7,33 +7,33 @@
 // Eric Vaughan
 // Netscape Communications
 //
 // See documentation in associated header file
 //
 
 
 /*
- * The nsGridRowGroupLayout implements the <rows> or <columns> tag in a grid. 
+ * The nsGridRowGroupLayout implements the <rows> or <columns> tag in a grid.
  */
 
 #include "nsGridRowGroupLayout.h"
 #include "nsCOMPtr.h"
 #include "nsIScrollableFrame.h"
 #include "nsBox.h"
 #include "nsBoxLayoutState.h"
 #include "nsGridLayout2.h"
 #include "nsGridRow.h"
 #include "mozilla/ReflowInput.h"
 
 already_AddRefed<nsBoxLayout> NS_NewGridRowGroupLayout()
 {
   RefPtr<nsBoxLayout> layout = new nsGridRowGroupLayout();
   return layout.forget();
-} 
+}
 
 nsGridRowGroupLayout::nsGridRowGroupLayout():nsGridRowLayout(), mRowCount(0)
 {
 }
 
 nsGridRowGroupLayout::~nsGridRowGroupLayout()
 {
 }
@@ -57,31 +57,31 @@ nsGridRowGroupLayout::AddWidth(nsSize& a
   if (size == NS_INTRINSICSIZE || aSize2 == NS_INTRINSICSIZE)
     size = NS_INTRINSICSIZE;
   else
     size += aSize2;
 }
 
 nsSize
 nsGridRowGroupLayout::GetXULPrefSize(nsIFrame* aBox, nsBoxLayoutState& aState)
-{ 
-  nsSize vpref = nsGridRowLayout::GetXULPrefSize(aBox, aState); 
+{
+  nsSize vpref = nsGridRowLayout::GetXULPrefSize(aBox, aState);
 
 
- /* It is possible that we could have some extra columns. This is when less columns in XUL were 
-  * defined that needed. And example might be a grid with 3 defined columns but a row with 4 cells in 
-  * it. We would need an extra column to make the grid work. But because that extra column does not 
+ /* It is possible that we could have some extra columns. This is when less columns in XUL were
+  * defined that needed. And example might be a grid with 3 defined columns but a row with 4 cells in
+  * it. We would need an extra column to make the grid work. But because that extra column does not
   * have a box associated with it we must add its size in manually. Remember we could have extra rows
   * as well.
   */
 
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
 
-  if (grid) 
+  if (grid)
   {
     // make sure we add in extra columns sizes as well
     bool isHorizontal = IsXULHorizontal(aBox);
     int32_t extraColumns = grid->GetExtraColumnCount(isHorizontal);
     int32_t start = grid->GetColumnCount(isHorizontal) - grid->GetExtraColumnCount(isHorizontal);
     for (int32_t i=0; i < extraColumns; i++)
     {
       nscoord pref =
@@ -92,22 +92,22 @@ nsGridRowGroupLayout::GetXULPrefSize(nsI
   }
 
   return vpref;
 }
 
 nsSize
 nsGridRowGroupLayout::GetXULMaxSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
- nsSize maxSize = nsGridRowLayout::GetXULMaxSize(aBox, aState); 
+ nsSize maxSize = nsGridRowLayout::GetXULMaxSize(aBox, aState);
 
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
 
-  if (grid) 
+  if (grid)
   {
     // make sure we add in extra columns sizes as well
     bool isHorizontal = IsXULHorizontal(aBox);
     int32_t extraColumns = grid->GetExtraColumnCount(isHorizontal);
     int32_t start = grid->GetColumnCount(isHorizontal) - grid->GetExtraColumnCount(isHorizontal);
     for (int32_t i=0; i < extraColumns; i++)
     {
       nscoord max =
@@ -118,30 +118,30 @@ nsGridRowGroupLayout::GetXULMaxSize(nsIF
   }
 
   return maxSize;
 }
 
 nsSize
 nsGridRowGroupLayout::GetXULMinSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
-  nsSize minSize = nsGridRowLayout::GetXULMinSize(aBox, aState); 
+  nsSize minSize = nsGridRowLayout::GetXULMinSize(aBox, aState);
 
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
 
-  if (grid) 
+  if (grid)
   {
     // make sure we add in extra columns sizes as well
     bool isHorizontal = IsXULHorizontal(aBox);
     int32_t extraColumns = grid->GetExtraColumnCount(isHorizontal);
     int32_t start = grid->GetColumnCount(isHorizontal) - grid->GetExtraColumnCount(isHorizontal);
     for (int32_t i=0; i < extraColumns; i++)
     {
-      nscoord min = 
+      nscoord min =
         grid->GetMinRowHeight(aState, i+start, !isHorizontal); // GetMinColumnWidth
       AddWidth(minSize, min, isHorizontal);
     }
   }
 
   return minSize;
 }
 
@@ -161,17 +161,17 @@ nsGridRowGroupLayout::DirtyRows(nsIFrame
 
     while(child) {
 
       // walk into scrollframes
       nsIFrame* deepChild = nsGrid::GetScrolledBox(child);
 
       // walk into other monuments
       nsIGridPart* monument = nsGrid::GetPartFromBox(deepChild);
-      if (monument) 
+      if (monument)
         monument->DirtyRows(deepChild, aState);
 
       child = nsBox::GetNextXULBox(child);
     }
   }
 }
 
 
@@ -179,17 +179,17 @@ void
 nsGridRowGroupLayout::CountRowsColumns(nsIFrame* aBox, int32_t& aRowCount, int32_t& aComputedColumnCount)
 {
   if (aBox) {
     int32_t startCount = aRowCount;
 
     nsIFrame* child = nsBox::GetChildXULBox(aBox);
 
     while(child) {
-      
+
       // first see if it is a scrollframe. If so walk down into it and get the scrolled child
       nsIFrame* deepChild = nsGrid::GetScrolledBox(child);
 
       nsIGridPart* monument = nsGrid::GetPartFromBox(deepChild);
       if (monument) {
         monument->CountRowsColumns(deepChild, aRowCount, aComputedColumnCount);
         child = nsBox::GetNextXULBox(child);
         deepChild = child;
@@ -205,26 +205,26 @@ nsGridRowGroupLayout::CountRowsColumns(n
     mRowCount = aRowCount - startCount;
   }
 }
 
 
 /**
  * Fill out the given row structure recursively
  */
-int32_t 
+int32_t
 nsGridRowGroupLayout::BuildRows(nsIFrame* aBox, nsGridRow* aRows)
-{ 
+{
   int32_t rowCount = 0;
 
   if (aBox) {
     nsIFrame* child = nsBox::GetChildXULBox(aBox);
 
     while(child) {
-      
+
       // first see if it is a scrollframe. If so walk down into it and get the scrolled child
       nsIFrame* deepChild = nsGrid::GetScrolledBox(child);
 
       nsIGridPart* monument = nsGrid::GetPartFromBox(deepChild);
       if (monument) {
         rowCount += monument->BuildRows(deepChild, &aRows[rowCount]);
         child = nsBox::GetNextXULBox(child);
         deepChild = child;
@@ -244,17 +244,17 @@ nsGridRowGroupLayout::BuildRows(nsIFrame
 }
 
 nsMargin
 nsGridRowGroupLayout::GetTotalMargin(nsIFrame* aBox, bool aIsHorizontal)
 {
   // group have border and padding added to the total margin
 
   nsMargin margin = nsGridRowLayout::GetTotalMargin(aBox, aIsHorizontal);
-  
+
   // make sure we have the scrollframe on the outside if it has one.
   // that's where the border is.
   aBox = nsGrid::GetScrollBox(aBox);
 
   // add our border/padding to it
   nsMargin borderPadding(0,0,0,0);
   aBox->GetXULBorderAndPadding(borderPadding);
   margin += borderPadding;
--- a/layout/xul/grid/nsGridRowGroupLayout.h
+++ b/layout/xul/grid/nsGridRowGroupLayout.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsGridRowGroupLayout_h___
 #define nsGridRowGroupLayout_h___
 
--- a/layout/xul/grid/nsGridRowLayout.cpp
+++ b/layout/xul/grid/nsGridRowLayout.cpp
@@ -53,17 +53,17 @@ nsGridRowLayout::ChildrenSet(nsIFrame* a
 }
 
 nsIGridPart*
 nsGridRowLayout::GetParentGridPart(nsIFrame* aBox, nsIFrame** aParentBox)
 {
   // go up and find our parent gridRow. Skip and non gridRow
   // parents.
   *aParentBox = nullptr;
-  
+
   // walk up through any scrollboxes
   aBox = nsGrid::GetScrollBox(aBox);
 
   // get the parent
   if (aBox)
     aBox = nsBox::GetParentXULBox(aBox);
 
   if (aBox)
@@ -97,24 +97,24 @@ nsGridRowLayout::GetGrid(nsIFrame* aBox,
    int32_t count = 0;
    while(child)
    {
      // if there is a scrollframe walk inside it to its child
      nsIFrame* childBox = nsGrid::GetScrolledBox(child);
 
      nsBoxLayout* layout = childBox->GetXULLayoutManager();
      nsIGridPart* gridRow = nsGrid::GetPartFromBox(childBox);
-     if (gridRow) 
+     if (gridRow)
      {
        if (layout == aRequestor) {
           index = count;
           break;
        }
        count += gridRow->GetRowCount();
-     } else 
+     } else
        count++;
 
      child = nsBox::GetNextXULBox(child);
    }
 
    // if we didn't find ourselves then the tree isn't properly formed yet
    // this could happen during initial construction so lets just
    // fail.
@@ -158,33 +158,33 @@ nsGridRowLayout::GetTotalMargin(nsIFrame
     if (child == aBox || next == nullptr) {
 
        // if it's not the first child remove the top margin
        // we don't need it.
        if (child != aBox)
        {
           if (aIsHorizontal)
               margin.top = 0;
-          else 
+          else
               margin.left = 0;
        }
 
        // if it's not the last child remove the bottom margin
        // we don't need it.
        if (next != nullptr)
        {
           if (aIsHorizontal)
               margin.bottom = 0;
-          else 
+          else
               margin.right = 0;
        }
 
     }
   }
-    
+
   // add ours to it.
   nsMargin ourMargin;
   aBox->GetXULMargin(ourMargin);
   margin += ourMargin;
 
   return margin;
 }
 
--- a/layout/xul/grid/nsGridRowLayout.h
+++ b/layout/xul/grid/nsGridRowLayout.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsGridRowLayout_h___
 #define nsGridRowLayout_h___
 
--- a/layout/xul/grid/nsGridRowLeafFrame.cpp
+++ b/layout/xul/grid/nsGridRowLeafFrame.cpp
@@ -36,59 +36,59 @@ nsresult
 nsGridRowLeafFrame::GetXULBorderAndPadding(nsMargin& aBorderAndPadding)
 {
   // if our columns have made our padding larger add it in.
   nsresult rv = nsBoxFrame::GetXULBorderAndPadding(aBorderAndPadding);
 
   nsIGridPart* part = nsGrid::GetPartFromBox(this);
   if (!part)
     return rv;
-    
+
   int32_t index = 0;
   nsGrid* grid = part->GetGrid(this, &index);
 
-  if (!grid) 
+  if (!grid)
     return rv;
 
   bool isHorizontal = IsXULHorizontal();
 
   int32_t firstIndex = 0;
   int32_t lastIndex = 0;
   nsGridRow* firstRow = nullptr;
   nsGridRow* lastRow = nullptr;
   grid->GetFirstAndLastRow(firstIndex, lastIndex, firstRow, lastRow, isHorizontal);
 
   // only the first and last rows can be affected.
   if (firstRow && firstRow->GetBox() == this) {
-    
+
     nscoord top = 0;
     nscoord bottom = 0;
     grid->GetRowOffsets(firstIndex, top, bottom, isHorizontal);
 
     if (isHorizontal) {
       if (top > aBorderAndPadding.top)
         aBorderAndPadding.top = top;
     } else {
       if (top > aBorderAndPadding.left)
         aBorderAndPadding.left = top;
-    } 
+    }
   }
 
   if (lastRow && lastRow->GetBox() == this) {
-    
+
     nscoord top = 0;
     nscoord bottom = 0;
     grid->GetRowOffsets(lastIndex, top, bottom, isHorizontal);
 
     if (isHorizontal) {
       if (bottom > aBorderAndPadding.bottom)
         aBorderAndPadding.bottom = bottom;
     } else {
       if (bottom > aBorderAndPadding.right)
         aBorderAndPadding.right = bottom;
     }
-    
-  }  
-  
+
+  }
+
   return rv;
 }
 
 
--- a/layout/xul/grid/nsGridRowLeafFrame.h
+++ b/layout/xul/grid/nsGridRowLeafFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   A frame that can have multiple children. Only one child may be displayed at one time. So the
   can be flipped though like a deck of cards.
- 
+
 **/
 
 #ifndef nsGridRowLeafFrame_h___
 #define nsGridRowLeafFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsBoxFrame.h"
 
--- a/layout/xul/grid/nsGridRowLeafLayout.cpp
+++ b/layout/xul/grid/nsGridRowLeafLayout.cpp
@@ -19,17 +19,17 @@
 #include "nsBoxFrame.h"
 #include "nsGridLayout2.h"
 #include <algorithm>
 
 already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout()
 {
   RefPtr<nsBoxLayout> layout = new nsGridRowLeafLayout();
   return layout.forget();
-} 
+}
 
 nsGridRowLeafLayout::nsGridRowLeafLayout():nsGridRowLayout()
 {
 }
 
 nsGridRowLeafLayout::~nsGridRowLeafLayout()
 {
 }
@@ -39,49 +39,49 @@ nsGridRowLeafLayout::GetXULPrefSize(nsIF
 {
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
   bool isHorizontal = IsXULHorizontal(aBox);
 
   // If we are not in a grid. Then we just work like a box. But if we are in a grid
   // ask the grid for our size.
   if (!grid) {
-    return nsGridRowLayout::GetXULPrefSize(aBox, aState); 
+    return nsGridRowLayout::GetXULPrefSize(aBox, aState);
   }
   else {
     return grid->GetPrefRowSize(aState, index, isHorizontal);
     //AddBorderAndPadding(aBox, pref);
   }
 }
 
 nsSize
 nsGridRowLeafLayout::GetXULMinSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
   bool isHorizontal = IsXULHorizontal(aBox);
 
   if (!grid)
-    return nsGridRowLayout::GetXULMinSize(aBox, aState); 
+    return nsGridRowLayout::GetXULMinSize(aBox, aState);
   else {
     nsSize minSize = grid->GetMinRowSize(aState, index, isHorizontal);
     AddBorderAndPadding(aBox, minSize);
     return minSize;
   }
 }
 
 nsSize
 nsGridRowLeafLayout::GetXULMaxSize(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
   int32_t index = 0;
   nsGrid* grid = GetGrid(aBox, &index);
   bool isHorizontal = IsXULHorizontal(aBox);
 
   if (!grid)
-    return nsGridRowLayout::GetXULMaxSize(aBox, aState); 
+    return nsGridRowLayout::GetXULMaxSize(aBox, aState);
   else {
     nsSize maxSize;
     maxSize = grid->GetMaxRowSize(aState, index, isHorizontal);
     AddBorderAndPadding(aBox, maxSize);
     return maxSize;
   }
 }
 
@@ -105,43 +105,43 @@ nsGridRowLeafLayout::PopulateBoxSizes(ns
   nsGrid* grid = GetGrid(aBox, &index);
   bool isHorizontal = IsXULHorizontal(aBox);
 
   // Our base class SprocketLayout is giving us a chance to change the box sizes before layout
   // If we are a row lets change the sizes to match our columns. If we are a column then do the opposite
   // and make them match or rows.
   if (grid) {
     nsGridRow* column;
-    int32_t count = grid->GetColumnCount(isHorizontal); 
+    int32_t count = grid->GetColumnCount(isHorizontal);
     nsBoxSize* start = nullptr;
     nsBoxSize* last = nullptr;
     nsBoxSize* current = nullptr;
     nsIFrame* child = nsBox::GetChildXULBox(aBox);
     for (int i=0; i < count; i++)
     {
-      column = grid->GetColumnAt(i,isHorizontal); 
+      column = grid->GetColumnAt(i,isHorizontal);
 
       // make sure the value was computed before we use it.
       // !isHorizontal is passed in to invert the behavior of these methods.
       nscoord pref =
         grid->GetPrefRowHeight(aState, i, !isHorizontal); // GetPrefColumnWidth
-      nscoord min = 
+      nscoord min =
         grid->GetMinRowHeight(aState, i, !isHorizontal);  // GetMinColumnWidth
-      nscoord max = 
+      nscoord max =
         grid->GetMaxRowHeight(aState, i, !isHorizontal);  // GetMaxColumnWidth
       nscoord flex = grid->GetRowFlex(i, !isHorizontal);  // GetColumnFlex
       nscoord left  = 0;
       nscoord right  = 0;
       grid->GetRowOffsets(i, left, right, !isHorizontal); // GetColumnOffsets
       nsIFrame* box = column->GetBox();
       bool collapsed = false;
       nscoord topMargin = column->mTopMargin;
       nscoord bottomMargin = column->mBottomMargin;
 
-      if (box) 
+      if (box)
         collapsed = box->IsXULCollapsed();
 
       pref = pref - (left + right);
       if (pref < 0)
         pref = 0;
 
       // if this is the first or last column. Take into account that
       // our row could have a border that could affect our left or right
@@ -160,37 +160,37 @@ nsGridRowLeafLayout::PopulateBoxSizes(ns
         nsMargin border(0,0,0,0);
         // can't call GetBorderPadding we will get into recursion
         aBox->GetXULBorder(border);
         offset += border;
         aBox->GetXULPadding(border);
         offset += border;
 
         // subtract from out left and right
-        if (i == firstIndex) 
+        if (i == firstIndex)
         {
           if (isHorizontal)
            left -= offset.left;
           else
            left -= offset.top;
         }
 
         if (i == lastIndex)
         {
           if (isHorizontal)
            right -= offset.right;
           else
            right -= offset.bottom;
         }
       }
-    
-      // initialize the box size here 
+
+      // initialize the box size here
       max = std::max(min, max);
       pref = nsBox::BoundsCheck(min, pref, max);
-   
+
       current = new (aState) nsBoxSize();
       current->pref = pref;
       current->min = min;
       current->max = max;
       current->flex = flex;
       current->bogus = column->mIsBogus;
       current->left = left + topMargin;
       current->right = right + bottomMargin;
@@ -211,21 +211,21 @@ nsGridRowLeafLayout::PopulateBoxSizes(ns
     aBoxSizes = start;
   }
 
   nsSprocketLayout::PopulateBoxSizes(aBox, aState, aBoxSizes, aMinSize, aMaxSize, aFlexes);
 }
 
 void
 nsGridRowLeafLayout::ComputeChildSizes(nsIFrame* aBox,
-                           nsBoxLayoutState& aState, 
-                           nscoord& aGivenSize, 
-                           nsBoxSize* aBoxSizes, 
+                           nsBoxLayoutState& aState,
+                           nscoord& aGivenSize,
+                           nsBoxSize* aBoxSizes,
                            nsComputedBoxSize*& aComputedBoxSizes)
-{ 
+{
   // see if we are in a scrollable frame. If we are then there could be scrollbars present
   // if so we need to subtract them out to make sure our columns line up.
   if (aBox) {
     bool isHorizontal = aBox->IsXULHorizontal();
 
     // go up the parent chain looking for scrollframes
     nscoord diff = 0;
     nsIFrame* parentBox;
@@ -259,24 +259,24 @@ nsGridRowLeafLayout::ComputeChildSizes(n
 
       nsComputedBoxSize* s    = aComputedBoxSizes;
       nsComputedBoxSize* last = aComputedBoxSizes;
       while(s)
       {
         last = s;
         s = s->next;
       }
-  
-      if (last) 
-        last->size -= diff;                         
+
+      if (last)
+        last->size -= diff;
 
       return;
     }
   }
-      
+
   nsSprocketLayout::ComputeChildSizes(aBox, aState, aGivenSize, aBoxSizes, aComputedBoxSizes);
 
 }
 
 NS_IMETHODIMP
 nsGridRowLeafLayout::XULLayout(nsIFrame* aBox, nsBoxLayoutState& aBoxLayoutState)
 {
   return nsGridRowLayout::XULLayout(aBox, aBoxLayoutState);
@@ -303,17 +303,17 @@ nsGridRowLeafLayout::CountRowsColumns(ns
     // count the children
     int32_t columnCount = 0;
     while(child) {
       child = nsBox::GetNextXULBox(child);
       columnCount++;
     }
 
     // if our count is greater than the current column count
-    if (columnCount > aComputedColumnCount) 
+    if (columnCount > aComputedColumnCount)
       aComputedColumnCount = columnCount;
 
     aRowCount++;
   }
 }
 
 int32_t
 nsGridRowLeafLayout::BuildRows(nsIFrame* aBox, nsGridRow* aRows)
--- a/layout/xul/grid/nsGridRowLeafLayout.h
+++ b/layout/xul/grid/nsGridRowLeafLayout.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsGridRowLeafLayout_h___
 #define nsGridRowLeafLayout_h___
 
--- a/layout/xul/grid/nsIGridPart.h
+++ b/layout/xul/grid/nsIGridPart.h
@@ -67,17 +67,17 @@ public:
    * @param aRowCount [INOUT] Row count
    * @param aComputedColumnCount [INOUT] Column count
    */
   virtual void CountRowsColumns(nsIFrame* aBox, int32_t& aRowCount, int32_t& aComputedColumnCount)=0;
   virtual void DirtyRows(nsIFrame* aBox, nsBoxLayoutState& aState)=0;
   virtual int32_t BuildRows(nsIFrame* aBox, nsGridRow* aRows)=0;
   virtual nsMargin GetTotalMargin(nsIFrame* aBox, bool aIsHorizontal)=0;
   virtual int32_t GetRowCount() { return 1; }
-  
+
   /**
    * Return the level of the grid hierarchy this grid part represents.
    */
   enum Type { eGrid, eRowGroup, eRowLeaf };
   virtual Type GetType()=0;
 
   /**
    * Return whether this grid part is an appropriate parent for the argument.
--- a/layout/xul/nsBox.cpp
+++ b/layout/xul/nsBox.cpp
@@ -114,17 +114,17 @@ nsBox::GetBoxName(nsAutoString& aName)
 {
   aName.AssignLiteral("Box");
 }
 #endif
 
 nsresult
 nsBox::BeginXULLayout(nsBoxLayoutState& aState)
 {
-#ifdef DEBUG_LAYOUT 
+#ifdef DEBUG_LAYOUT
 
   nsBoxAddIndents();
   printf("XULLayout: ");
   XULDumpBox(stdout);
   printf("\n");
   gIndent++;
 #endif
 
@@ -255,19 +255,19 @@ nsBox::SetXULBounds(nsBoxLayoutState& aS
     }
 
     if (!(flags & NS_FRAME_NO_MOVE_VIEW))
     {
       nsContainerFrame::PositionFrameView(this);
       if ((rect.x != aRect.x) || (rect.y != aRect.y))
         nsContainerFrame::PositionChildViews(this);
     }
-  
+
 
-   /*  
+   /*
     // only if the origin changed
     if ((rect.x != aRect.x) || (rect.y != aRect.y))  {
       if (frame->HasView()) {
         nsContainerFrame::PositionFrameView(presContext, frame,
                                             frame->GetView());
       } else {
         nsContainerFrame::PositionChildViews(presContext, frame);
       }
@@ -292,17 +292,17 @@ nsIFrame::GetXULBorderAndPadding(nsMargi
 
   return rv;
 }
 
 nsresult
 nsBox::GetXULBorder(nsMargin& aMargin)
 {
   aMargin.SizeTo(0,0,0,0);
-    
+
   const nsStyleDisplay* disp = StyleDisplay();
   if (disp->mAppearance && gTheme) {
     // Go to the theme for the border.
     nsPresContext *context = PresContext();
     if (gTheme->ThemeSupportsWidget(context, this, disp->mAppearance)) {
       nsIntMargin margin(0, 0, 0, 0);
       gTheme->GetWidgetBorder(context->DeviceContext(), this,
                               disp->mAppearance, &margin);
@@ -519,17 +519,17 @@ nsresult
 nsBox::SyncLayout(nsBoxLayoutState& aState)
 {
   /*
   if (IsXULCollapsed()) {
     CollapseChild(aState, this, true);
     return NS_OK;
   }
   */
-  
+
 
   if (GetStateBits() & NS_FRAME_IS_DIRTY)
      XULRedraw(aState);
 
   RemoveStateBits(NS_FRAME_HAS_DIRTY_CHILDREN | NS_FRAME_IS_DIRTY
                   | NS_FRAME_FIRST_REFLOW | NS_FRAME_IN_REFLOW);
 
   nsPresContext* presContext = aState.PresContext();
@@ -562,17 +562,17 @@ nsBox::SyncLayout(nsBoxLayoutState& aSta
   }
 
   nsView* view = GetView();
   if (view) {
     // Make sure the frame's view is properly sized and positioned and has
     // things like opacity correct
     nsContainerFrame::SyncFrameViewAfterReflow(presContext, this, view,
                                                visualOverflow, flags);
-  } 
+  }
 
   return NS_OK;
 }
 
 nsresult
 nsIFrame::XULRedraw(nsBoxLayoutState& aState)
 {
   if (aState.PaintingDisabled())
--- a/layout/xul/nsBoxFrame.cpp
+++ b/layout/xul/nsBoxFrame.cpp
@@ -12,29 +12,29 @@
 //
 
 // How boxes layout
 // ----------------
 // Boxes layout a bit differently than html. html does a bottom up layout. Where boxes do a top down.
 // 1) First thing a box does it goes out and askes each child for its min, max, and preferred sizes.
 // 2) It then adds them up to determine its size.
 // 3) If the box was asked to layout it self intrinically it will layout its children at their preferred size
-//    otherwise it will layout the child at the size it was told to. It will squeeze or stretch its children if 
+//    otherwise it will layout the child at the size it was told to. It will squeeze or stretch its children if
 //    Necessary.
 //
-// However there is a catch. Some html components like block frames can not determine their preferred size. 
+// However there is a catch. Some html components like block frames can not determine their preferred size.
 // this is their size if they were laid out intrinsically. So the box will flow the child to determine this can
 // cache the value.
 
 // Boxes and Incremental Reflow
 // ----------------------------
 // Boxes layout out top down by adding up their children's min, max, and preferred sizes. Only problem is if a incremental
 // reflow occurs. The preferred size of a child deep in the hierarchy could change. And this could change
 // any number of syblings around the box. Basically any children in the reflow chain must have their caches cleared
-// so when asked for there current size they can relayout themselves. 
+// so when asked for there current size they can relayout themselves.
 
 #include "nsBoxFrame.h"
 
 #include "gfxUtils.h"
 #include "mozilla/gfx/2D.h"
 #include "nsBoxLayoutState.h"
 #include "mozilla/dom/Touch.h"
 #include "mozilla/Move.h"
@@ -228,50 +228,50 @@ nsBoxFrame::CacheAttributes()
   XULDumpBox(stdout);
   printf("\n");
    */
 
   mValign = vAlign_Top;
   mHalign = hAlign_Left;
 
   bool orient = false;
-  GetInitialOrientation(orient); 
+  GetInitialOrientation(orient);
   if (orient)
     mState |= NS_STATE_IS_HORIZONTAL;
   else
     mState &= ~NS_STATE_IS_HORIZONTAL;
 
   bool normal = true;
-  GetInitialDirection(normal); 
+  GetInitialDirection(normal);
   if (normal)
     mState |= NS_STATE_IS_DIRECTION_NORMAL;
   else
     mState &= ~NS_STATE_IS_DIRECTION_NORMAL;
 
   GetInitialVAlignment(mValign);
   GetInitialHAlignment(mHalign);
-  
+
   bool equalSize = false;
-  GetInitialEqualSize(equalSize); 
+  GetInitialEqualSize(equalSize);
   if (equalSize)
         mState |= NS_STATE_EQUAL_SIZE;
     else
         mState &= ~NS_STATE_EQUAL_SIZE;
 
   bool autostretch = !!(mState & NS_STATE_AUTO_STRETCH);
   GetInitialAutoStretch(autostretch);
   if (autostretch)
         mState |= NS_STATE_AUTO_STRETCH;
      else
         mState &= ~NS_STATE_AUTO_STRETCH;
 
 
 #ifdef DEBUG_LAYOUT
   bool debug = mState & NS_STATE_SET_TO_DEBUG;
-  bool debugSet = GetInitialDebug(debug); 
+  bool debugSet = GetInitialDebug(debug);
   if (debugSet) {
         mState |= NS_STATE_DEBUG_WAS_SET;
         if (debug)
             mState |= NS_STATE_SET_TO_DEBUG;
         else
             mState &= ~NS_STATE_SET_TO_DEBUG;
   } else {
         mState &= ~NS_STATE_DEBUG_WAS_SET;
@@ -310,38 +310,38 @@ nsBoxFrame::GetInitialHAlignment(nsBoxFr
     {&nsGkAtoms::left, &nsGkAtoms::right, nullptr};
   static const Halignment alignValues[] = {hAlign_Left, hAlign_Right};
   int32_t index = GetContent()->FindAttrValueIn(kNameSpaceID_None, nsGkAtoms::align,
       alignStrings, eCaseMatters);
   if (index >= 0) {
     aHalign = alignValues[index];
     return true;
   }
-      
-  // Now that the deprecated stuff is out of the way, we move on to check the appropriate 
+
+  // Now that the deprecated stuff is out of the way, we move on to check the appropriate
   // attribute.  For horizontal boxes, we are checking the PACK attribute.  For vertical boxes
   // we are checking the ALIGN attribute.
   nsIAtom* attrName = IsXULHorizontal() ? nsGkAtoms::pack : nsGkAtoms::align;
   static nsIContent::AttrValuesArray strings[] =
     {&nsGkAtoms::_empty, &nsGkAtoms::start, &nsGkAtoms::center, &nsGkAtoms::end, nullptr};
   static const Halignment values[] =
     {hAlign_Left/*not used*/, hAlign_Left, hAlign_Center, hAlign_Right};
   index = GetContent()->FindAttrValueIn(kNameSpaceID_None, attrName,
       strings, eCaseMatters);
 
   if (index == nsIContent::ATTR_VALUE_NO_MATCH) {
     // The attr was present but had a nonsensical value. Revert to the default.
     return false;
   }
-  if (index > 0) {    
+  if (index > 0) {
     aHalign = values[index];
     return true;
   }
 
-  // Now that we've checked for the attribute it's time to check CSS.  For 
+  // Now that we've checked for the attribute it's time to check CSS.  For
   // horizontal boxes we're checking PACK.  For vertical boxes we are checking
   // ALIGN.
   const nsStyleXUL* boxInfo = StyleXUL();
   if (IsXULHorizontal()) {
     switch (boxInfo->mBoxPack) {
       case StyleBoxPack::Start:
         aHalign = nsBoxFrame::hAlign_Left;
         return true;
@@ -386,17 +386,17 @@ nsBoxFrame::GetInitialVAlignment(nsBoxFr
     {vAlign_Top, vAlign_BaseLine, vAlign_Middle, vAlign_Bottom};
   int32_t index = GetContent()->FindAttrValueIn(kNameSpaceID_None, nsGkAtoms::valign,
       valignStrings, eCaseMatters);
   if (index >= 0) {
     aValign = valignValues[index];
     return true;
   }
 
-  // Now that the deprecated stuff is out of the way, we move on to check the appropriate 
+  // Now that the deprecated stuff is out of the way, we move on to check the appropriate
   // attribute.  For horizontal boxes, we are checking the ALIGN attribute.  For vertical boxes
   // we are checking the PACK attribute.
   nsIAtom* attrName = IsXULHorizontal() ? nsGkAtoms::align : nsGkAtoms::pack;
   static nsIContent::AttrValuesArray strings[] =
     {&nsGkAtoms::_empty, &nsGkAtoms::start, &nsGkAtoms::center,
      &nsGkAtoms::baseline, &nsGkAtoms::end, nullptr};
   static const Valignment values[] =
     {vAlign_Top/*not used*/, vAlign_Top, vAlign_Middle, vAlign_BaseLine, vAlign_Bottom};
@@ -406,17 +406,17 @@ nsBoxFrame::GetInitialVAlignment(nsBoxFr
     // The attr was present but had a nonsensical value. Revert to the default.
     return false;
   }
   if (index > 0) {
     aValign = values[index];
     return true;
   }
 
-  // Now that we've checked for the attribute it's time to check CSS.  For 
+  // Now that we've checked for the attribute it's time to check CSS.  For
   // horizontal boxes we're checking ALIGN.  For vertical boxes we are checking
   // PACK.
   const nsStyleXUL* boxInfo = StyleXUL();
   if (IsXULHorizontal()) {
     switch (boxInfo->mBoxAlign) {
       case StyleBoxAlign::Start:
         aValign = nsBoxFrame::vAlign_Top;
         return true;
@@ -535,17 +535,17 @@ nsBoxFrame::GetInitialEqualSize(bool& aE
 
 /* Returns true if it was set.
  */
 bool
 nsBoxFrame::GetInitialAutoStretch(bool& aStretch)
 {
   if (!GetContent())
      return false;
-  
+
   // Check the align attribute.
   static nsIContent::AttrValuesArray strings[] =
     {&nsGkAtoms::_empty, &nsGkAtoms::stretch, nullptr};
   int32_t index = GetContent()->FindAttrValueIn(kNameSpaceID_None, nsGkAtoms::align,
       strings, eCaseMatters);
   if (index != nsIContent::ATTR_MISSING && index != 0) {
     aStretch = index == 1;
     return true;
@@ -573,17 +573,17 @@ bool
 nsBoxFrame::HonorPrintBackgroundSettings()
 {
   return (!mContent || !mContent->IsInNativeAnonymousSubtree()) &&
     nsContainerFrame::HonorPrintBackgroundSettings();
 }
 
 #ifdef DO_NOISY_REFLOW
 static int myCounter = 0;
-static void printSize(char * aDesc, nscoord aSize) 
+static void printSize(char * aDesc, nscoord aSize)
 {
   printf(" %s: ", aDesc);
   if (aSize == NS_UNCONSTRAINEDSIZE) {
     printf("UC");
   } else {
     printf("%d", aSize);
   }
 }
@@ -647,17 +647,17 @@ nsBoxFrame::Reflow(nsPresContext*       
   DISPLAY_REFLOW(aPresContext, this, aReflowInput, aDesiredSize, aStatus);
 
   NS_ASSERTION(aReflowInput.ComputedWidth() >=0 &&
                aReflowInput.ComputedHeight() >= 0, "Computed Size < 0");
 
 #ifdef DO_NOISY_REFLOW
   printf("\n-------------Starting BoxFrame Reflow ----------------------------\n");
   printf("%p ** nsBF::Reflow %d ", this, myCounter++);
-  
+
   printSize("AW", aReflowInput.AvailableWidth());
   printSize("AH", aReflowInput.AvailableHeight());
   printSize("CW", aReflowInput.ComputedWidth());
   printSize("CH", aReflowInput.ComputedHeight());
 
   printf(" *\n");
 
 #endif
@@ -705,22 +705,22 @@ nsBoxFrame::Reflow(nsPresContext*       
   } else {
     computedSize.BSize(wm) += m.BStart(wm) + m.BEnd(wm);
   }
 
   nsSize physicalSize = computedSize.GetPhysicalSize(wm);
   nsRect r(mRect.x, mRect.y, physicalSize.width, physicalSize.height);
 
   SetXULBounds(state, r);
- 
+
   // layout our children
   XULLayout(state);
-  
+
   // ok our child could have gotten bigger. So lets get its bounds
-  
+
   // get the ascent
   LogicalSize boxSize = GetLogicalSize(wm);
   nscoord ascent = boxSize.BSize(wm);
 
   // getting the ascent could be a lot of work. Don't get it if
   // we are the root. The viewport doesn't care about it.
   if (!(mState & NS_STATE_IS_ROOT)) {
     ascent = GetXULBoxAscent(state);
@@ -731,19 +731,19 @@ nsBoxFrame::Reflow(nsPresContext*       
 
   aDesiredSize.mOverflowAreas = GetOverflowAreas();
 
 #ifdef DO_NOISY_REFLOW
   {
     printf("%p ** nsBF(done) W:%d H:%d  ", this, aDesiredSize.Width(), aDesiredSize.Height());
 
     if (maxElementSize) {
-      printf("MW:%d\n", *maxElementWidth); 
+      printf("MW:%d\n", *maxElementWidth);
     } else {
-      printf("MW:?\n"); 
+      printf("MW:?\n");
     }
 
   }
 #endif
 
   ReflowAbsoluteFrames(aPresContext, aDesiredSize, aReflowInput, aStatus);
 
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowInput, aDesiredSize);
@@ -782,17 +782,17 @@ nsBoxFrame::GetXULPrefSize(nsBoxLayoutSt
     else {
       size = nsBox::GetXULPrefSize(aBoxLayoutState);
     }
   }
 
   nsSize minSize = GetXULMinSize(aBoxLayoutState);
   nsSize maxSize = GetXULMaxSize(aBoxLayoutState);
   mPrefSize = BoundsCheck(minSize, size, maxSize);
- 
+
   return mPrefSize;
 }
 
 nscoord
 nsBoxFrame::GetXULBoxAscent(nsBoxLayoutState& aBoxLayoutState)
 {
   if (!DoesNeedRecalc(mAscent))
      return mAscent;
@@ -841,17 +841,17 @@ nsBoxFrame::GetXULMinSize(nsBoxLayoutSta
         size.width = layoutSize.width;
       if (!heightSet)
         size.height = layoutSize.height;
     }
     else {
       size = nsBox::GetXULMinSize(aBoxLayoutState);
     }
   }
-  
+
   mMinSize = size;
 
   return size;
 }
 
 nsSize
 nsBoxFrame::GetXULMaxSize(nsBoxLayoutState& aBoxLayoutState)
 {
@@ -899,17 +899,17 @@ nsBoxFrame::GetXULFlex()
      return mFlex;
 
   mFlex = nsBox::GetXULFlex();
 
   return mFlex;
 }
 
 /**
- * If subclassing please subclass this method not layout. 
+ * If subclassing please subclass this method not layout.
  * layout will call this method.
  */
 NS_IMETHODIMP
 nsBoxFrame::DoXULLayout(nsBoxLayoutState& aState)
 {
   uint32_t oldFlags = aState.LayoutFlags();
   aState.SetLayoutFlags(0);
 
@@ -962,17 +962,17 @@ nsBoxFrame::DestroyFrom(nsIFrame* aDestr
 {
   // unregister access key
   RegUnregAccessKey(false);
 
   // clean up the container box's layout manager and child boxes
   SetXULLayoutManager(nullptr);
 
   nsContainerFrame::DestroyFrom(aDestructRoot);
-} 
+}
 
 #ifdef DEBUG_LAYOUT
 nsresult
 nsBoxFrame::SetXULDebug(nsBoxLayoutState& aState, bool aDebug)
 {
   // see if our state matches the given debug state
   bool debugSet = mState & NS_STATE_CURRENTLY_IN_DEBUG;
   bool debugChanged = (!aDebug && debugSet) || (aDebug && !debugSet);
@@ -980,17 +980,17 @@ nsBoxFrame::SetXULDebug(nsBoxLayoutState
   // if it doesn't then tell each child below us the new debug state
   if (debugChanged)
   {
      if (aDebug) {
          mState |= NS_STATE_CURRENTLY_IN_DEBUG;
      } else {
          mState &= ~NS_STATE_CURRENTLY_IN_DEBUG;
      }
- 
+
      SetDebugOnChildList(aState, mFirstChild, aDebug);
 
     MarkIntrinsicISizesDirty();
   }
 
   return NS_OK;
 }
 #endif
@@ -1168,34 +1168,34 @@ nsBoxFrame::AttributeChanged(int32_t aNa
         aAttribute == nsGkAtoms::debug   ||
 #endif
         aAttribute == nsGkAtoms::dir) {
 
       mValign = nsBoxFrame::vAlign_Top;
       mHalign = nsBoxFrame::hAlign_Left;
 
       bool orient = true;
-      GetInitialOrientation(orient); 
+      GetInitialOrientation(orient);
       if (orient)
         mState |= NS_STATE_IS_HORIZONTAL;
       else
         mState &= ~NS_STATE_IS_HORIZONTAL;
 
       bool normal = true;
       GetInitialDirection(normal);
       if (normal)
         mState |= NS_STATE_IS_DIRECTION_NORMAL;
       else
         mState &= ~NS_STATE_IS_DIRECTION_NORMAL;
 
       GetInitialVAlignment(mValign);
       GetInitialHAlignment(mHalign);
 
       bool equalSize = false;
-      GetInitialEqualSize(equalSize); 
+      GetInitialEqualSize(equalSize);
       if (equalSize)
         mState |= NS_STATE_EQUAL_SIZE;
       else
         mState &= ~NS_STATE_EQUAL_SIZE;
 
 #ifdef DEBUG_LAYOUT
       bool debug = mState & NS_STATE_SET_TO_DEBUG;
       bool debugSet = GetInitialDebug(debug);
@@ -1232,17 +1232,17 @@ nsBoxFrame::AttributeChanged(int32_t aNa
 
     PresContext()->PresShell()->
       FrameNeedsReflow(this, nsIPresShell::eStyleChange, NS_FRAME_IS_DIRTY);
   }
   else if (aAttribute == nsGkAtoms::ordinal) {
     nsIFrame* parent = GetParentXULBox(this);
     // If our parent is not a box, there's not much we can do... but in that
     // case our ordinal doesn't matter anyway, so that's ok.
-    // Also don't bother with popup frames since they are kept on the 
+    // Also don't bother with popup frames since they are kept on the
     // kPopupList and XULRelayoutChildAtOrdinal() only handles
     // principal children.
     if (parent && !(GetStateBits() & NS_FRAME_OUT_OF_FLOW) &&
         StyleDisplay()->mDisplay != mozilla::StyleDisplay::MozPopup) {
       parent->XULRelayoutChildAtOrdinal(this);
       // XXXldb Should this instead be a tree change on the child or parent?
       PresContext()->PresShell()->
         FrameNeedsReflow(parent, nsIPresShell::eStyleChange,
@@ -1491,41 +1491,41 @@ nsBoxFrame::PaintXULDebugOverlay(DrawTar
 
   nscoord onePixel = GetPresContext()->IntScaledPixelsToTwips(1);
 
   kid = nsBox::GetChildXULBox(this);
   while (nullptr != kid) {
     bool isHorizontal = IsXULHorizontal();
 
     nscoord x, y, borderSize, spacerSize;
-    
+
     nsRect cr(kid->mRect);
     nsMargin margin;
     kid->GetXULMargin(margin);
     cr.Inflate(margin);
-    
-    if (isHorizontal) 
+
+    if (isHorizontal)
     {
         cr.y = inner.y;
         x = cr.x;
         y = cr.y + onePixel;
         spacerSize = debugBorder.top - onePixel*4;
     } else {
         cr.x = inner.x;
         x = cr.y;
         y = cr.x + onePixel;
         spacerSize = debugBorder.left - onePixel*4;
     }
 
     nscoord flex = kid->GetXULFlex();
 
     if (!kid->IsXULCollapsed()) {
-      if (isHorizontal) 
+      if (isHorizontal)
           borderSize = cr.width;
-      else 
+      else
           borderSize = cr.height;
 
       DrawSpacer(GetPresContext(), aDrawTarget, isHorizontal, flex, x, y, borderSize, spacerSize);
     }
 
     kid = GetNextXULBox(kid);
   }
 }
@@ -1578,17 +1578,17 @@ nsBoxFrame::GetXULDebug(bool& aDebug)
 // IMHO this is very bogus and adds a great deal of complexity for something
 // that is very rarely used. So I'm redefining 'mousethrough' to the following:
 // a frame with mousethrough is transparent to mouse events. This is compatible
 // with the way 'mousethrough' is used in Seamonkey's navigator.xul and
 // Firefox's browser.xul. The only other place it's used is in the 'expander'
 // XBL binding, which in our tree is only used by Thunderbird SMIME Advanced
 // Preferences, and I can't figure out what that does, so I'll have to test it.
 // If it's broken I'll probably just change the binding to use it more sensibly.
-// This new behaviour is implemented in nsDisplayList::HitTest. 
+// This new behaviour is implemented in nsDisplayList::HitTest.
 // REVIEW: This debug-box stuff is annoying. I'm just going to put debug boxes
 // in the outline layer and avoid GetDebugBoxAt.
 
 // REVIEW: GetCursor had debug-only event dumping code. I have replaced it
 // with instrumentation in nsDisplayXULDebug.
 
 #ifdef DEBUG_LAYOUT
 void
@@ -1611,21 +1611,21 @@ nsBoxFrame::FillRect(DrawTarget& aDrawTa
     Rect rect = NSRectToSnappedRect(aHorizontal ? nsRect(x, y, width, height) :
                                                   nsRect(y, x, height, width),
                                     PresContext()->AppUnitsPerDevPixel(),
                                     aDrawTarget);
     ColorPattern white(ToDeviceColor(Color(1.f, 1.f, 1.f, 1.f)));
     aDrawTarget.FillRect(rect, white);
 }
 
-void 
+void
 nsBoxFrame::DrawSpacer(nsPresContext* aPresContext, DrawTarget& aDrawTarget,
                        bool aHorizontal, int32_t flex, nscoord x, nscoord y,
                        nscoord size, nscoord spacerSize)
-{    
+{
          nscoord onePixel = aPresContext->IntScaledPixelsToTwips(1);
 
      // if we do draw the coils
         int distance = 0;
         int center = 0;
         int offset = 0;
         int coilSize = COIL_SIZE*onePixel;
         int halfSpacer = spacerSize/2;
@@ -1654,75 +1654,75 @@ nsBoxFrame::DrawSpacer(nsPresContext* aP
         FillRect(aDrawTarget, aHorizontal, x, y, spacerSize/2, spacerSize);
 }
 
 void
 nsBoxFrame::GetDebugBorder(nsMargin& aInset)
 {
     aInset.SizeTo(2,2,2,2);
 
-    if (IsXULHorizontal()) 
+    if (IsXULHorizontal())
        aInset.top = 10;
-    else 
+    else
        aInset.left = 10;
 }
 
 void
 nsBoxFrame::GetDebugMargin(nsMargin& aInset)
 {
     aInset.SizeTo(2,2,2,2);
 }
 
 void
 nsBoxFrame::GetDebugPadding(nsMargin& aPadding)
 {
     aPadding.SizeTo(2,2,2,2);
 }
 
-void 
+void
 nsBoxFrame::PixelMarginToTwips(nsMargin& aMarginPixels)
 {
   nscoord onePixel = nsPresContext::CSSPixelsToAppUnits(1);
   aMarginPixels.left   *= onePixel;
   aMarginPixels.right  *= onePixel;
   aMarginPixels.top    *= onePixel;
   aMarginPixels.bottom *= onePixel;
 }
 
 void
-nsBoxFrame::GetValue(nsPresContext* aPresContext, const nsSize& a, const nsSize& b, char* ch) 
+nsBoxFrame::GetValue(nsPresContext* aPresContext, const nsSize& a, const nsSize& b, char* ch)
 {
     float p2t = aPresContext->ScaledPixelsToTwips();
 
     char width[100];
     char height[100];
-    
+
     if (a.width == NS_INTRINSICSIZE)
         sprintf(width,"%s","INF");
     else
         sprintf(width,"%d", nscoord(a.width/*/p2t*/));
-    
+
     if (a.height == NS_INTRINSICSIZE)
         sprintf(height,"%s","INF");
-    else 
+    else
         sprintf(height,"%d", nscoord(a.height/*/p2t*/));
-    
+
 
     sprintf(ch, "(%s%s, %s%s)", width, (b.width != NS_INTRINSICSIZE ? "[SET]" : ""),
                     height, (b.height != NS_INTRINSICSIZE ? "[SET]" : ""));
 
 }
 
 void
-nsBoxFrame::GetValue(nsPresContext* aPresContext, int32_t a, int32_t b, char* ch) 
+nsBoxFrame::GetValue(nsPresContext* aPresContext, int32_t a, int32_t b, char* ch)
 {
     if (a == NS_INTRINSICSIZE)
-      sprintf(ch, "%d[SET]", b);             
+      sprintf(ch, "%d[SET]", b);
     else
-      sprintf(ch, "%d", a);             
+      sprintf(ch, "%d", a);
 }
 
 nsresult
 nsBoxFrame::DisplayDebugInfoFor(nsIFrame*  aBox,
                                 nsPoint& aPoint)
 {
     nsBoxLayoutState state(GetPresContext());
 
@@ -1754,17 +1754,17 @@ nsBoxFrame::DisplayDebugInfoFor(nsIFrame
     GetDebugMargin(m2);
     PixelMarginToTwips(m2);
 
     m += m2;
 
     if ((isHorizontal && y < insideBorder.y + m.top) ||
         (!isHorizontal && x < insideBorder.x + m.left)) {
         //printf("**** inside debug border *******\n");
-        while (child) 
+        while (child)
         {
             const nsRect& r = child->mRect;
 
             // if we are not in the child. But in the spacer above the child.
             if ((isHorizontal && x >= r.x && x < r.x + r.width) ||
                 (!isHorizontal && y >= r.y && y < r.y + r.height)) {
                 aCursor = NS_STYLE_CURSOR_POINTER;
                    // found it but we already showed it.
@@ -1803,39 +1803,39 @@ nsBoxFrame::DisplayDebugInfoFor(nsIFrame
                     nscoord ascentSize = child->GetXULBoxAscent(state);
 
                     char min[100];
                     char pref[100];
                     char max[100];
                     char calc[100];
                     char flex[100];
                     char ascent[100];
-                  
+
                     nsSize actualSize;
                     GetFrameSizeWithMargin(child, actualSize);
                     nsSize actualSizeCSS (NS_INTRINSICSIZE, NS_INTRINSICSIZE);
 
                     GetValue(aPresContext, minSize,  minSizeCSS, min);
                     GetValue(aPresContext, prefSize, prefSizeCSS, pref);
                     GetValue(aPresContext, maxSize,  maxSizeCSS, max);
                     GetValue(aPresContext, actualSize, actualSizeCSS, calc);
                     GetValue(aPresContext, flexSize,  flexCSS, flex);
                     GetValue(aPresContext, ascentSize,  NS_INTRINSICSIZE, ascent);
 
 
-                    printf("min%s, pref%s, max%s, actual%s, flex=%s, ascent=%s\n\n", 
+                    printf("min%s, pref%s, max%s, actual%s, flex=%s, ascent=%s\n\n",
                         min,
                         pref,
                         max,
                         calc,
                         flex,
                         ascent
                     );
 
-                    return NS_OK;   
+                    return NS_OK;
             }
 
           child = GetNextXULBox(child);
           count++;
         }
     } else {
     }
 
@@ -1886,17 +1886,17 @@ nsBoxFrame::RegUnregAccessKey(bool aDoRe
   }
 
   nsAutoString accessKey;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::accesskey, accessKey);
 
   if (accessKey.IsEmpty())
     return;
 
-  // With a valid PresContext we can get the ESM 
+  // With a valid PresContext we can get the ESM
   // and register the access key
   EventStateManager* esm = PresContext()->EventStateManager();
 
   uint32_t key = accessKey.First();
   if (aDoReg)
     esm->RegisterAccessKey(mContent, key);
   else
     esm->UnregisterAccessKey(mContent, key);
@@ -1915,49 +1915,49 @@ IsBoxOrdinalLEQ(nsIFrame* aFrame1,
                 nsIFrame* aFrame2)
 {
   // If we've got a placeholder frame, use its out-of-flow frame's ordinal val.
   nsIFrame* aRealFrame1 = nsPlaceholderFrame::GetRealFrameFor(aFrame1);
   nsIFrame* aRealFrame2 = nsPlaceholderFrame::GetRealFrameFor(aFrame2);
   return aRealFrame1->GetXULOrdinal() <= aRealFrame2->GetXULOrdinal();
 }
 
-void 
+void
 nsBoxFrame::CheckBoxOrder()
 {
   if (SupportsOrdinalsInChildren() &&
       !nsIFrame::IsFrameListSorted<IsBoxOrdinalLEQ>(mFrames)) {
     nsIFrame::SortFrameList<IsBoxOrdinalLEQ>(mFrames);
   }
 }
 
 nsresult
 nsBoxFrame::LayoutChildAt(nsBoxLayoutState& aState, nsIFrame* aBox, const nsRect& aRect)
 {
   // get the current rect
   nsRect oldRect(aBox->GetRect());
   aBox->SetXULBounds(aState, aRect);
 
   bool layout = NS_SUBTREE_DIRTY(aBox);
-  
+
   if (layout || (oldRect.width != aRect.width || oldRect.height != aRect.height))  {
     return aBox->XULLayout(aState);
   }
 
   return NS_OK;
 }
 
 nsresult
 nsBoxFrame::XULRelayoutChildAtOrdinal(nsIFrame* aChild)
 {
   if (!SupportsOrdinalsInChildren())
     return NS_OK;
 
   uint32_t ord = aChild->GetXULOrdinal();
-  
+
   nsIFrame* child = mFrames.FirstChild();
   nsIFrame* newPrevSib = nullptr;
 
   while (child) {
     if (ord < child->GetXULOrdinal()) {
       break;
     }
 
@@ -1980,23 +1980,23 @@ nsBoxFrame::XULRelayoutChildAtOrdinal(ns
   mFrames.InsertFrame(nullptr, newPrevSib, aChild);
 
   return NS_OK;
 }
 
 /**
  * This wrapper class lets us redirect mouse hits from descendant frames
  * of a menu to the menu itself, if they didn't specify 'allowevents'.
- * 
+ *
  * The wrapper simply turns a hit on a descendant element
  * into a hit on the menu itself, unless there is an element between the target
  * and the menu with the "allowevents" attribute.
- * 
+ *
  * This is used by nsMenuFrame and nsTreeColFrame.
- * 
+ *
  * Note that turning a hit on a descendant element into nullptr, so events
  * could fall through to the menu background, might be an appealing simplification
  * but it would mean slightly strange behaviour in some cases, because grabber
  * wrappers can be created for many individual lists and items, so the exact
  * fallthrough behaviour would be complex. E.g. an element with "allowevents"
  * on top of the Content() list could receive the event even if it was covered
  * by a PositionedDescenants() element without "allowevents". It is best to
  * never convert a non-null hit into null.
--- a/layout/xul/nsBoxFrame.h
+++ b/layout/xul/nsBoxFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   nsBoxFrame is a frame that can lay its children out either vertically or horizontally.
   It lays them out according to a min max or preferred size.
- 
+
 **/
 
 #ifndef nsBoxFrame_h___
 #define nsBoxFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsCOMPtr.h"
 #include "nsContainerFrame.h"
@@ -40,17 +40,17 @@ protected:
   typedef mozilla::gfx::DrawTarget DrawTarget;
 
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsBoxFrame)
 #ifdef DEBUG
   NS_DECL_QUERYFRAME
 #endif
 
-  friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell, 
+  friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
                                   nsStyleContext* aContext,
                                   bool aIsRoot,
                                   nsBoxLayout* aLayoutManager);
   friend nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell,
                                   nsStyleContext* aContext);
 
   // gets the rect inside our border and debug border. If you wish to paint inside a box
   // call this method to get the rect so you don't draw on the debug border or outer border.
@@ -73,22 +73,22 @@ public:
   virtual Halignment GetXULHAlign() const override { return mHalign; }
   NS_IMETHOD DoXULLayout(nsBoxLayoutState& aBoxLayoutState) override;
 
   virtual bool ComputesOwnOverflowArea() override { return false; }
 
   // ----- child and sibling operations ---
 
   // ----- public methods -------
-  
+
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
 
- 
+
   virtual nsresult AttributeChanged(int32_t         aNameSpaceID,
                                     nsIAtom*        aAttribute,
                                     int32_t         aModType) override;
 
   virtual void MarkIntrinsicISizesDirty() override;
   virtual nscoord GetMinISize(gfxContext *aRenderingContext) override;
   virtual nscoord GetPrefISize(gfxContext *aRenderingContext) override;
 
@@ -108,17 +108,17 @@ public:
                            nsIFrame*       aOldFrame) override;
 
   virtual nsContainerFrame* GetContentInsertionFrame() override;
 
   virtual void DidSetStyleContext(nsStyleContext* aOldStyleContext) override;
 
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
-    // record that children that are ignorable whitespace should be excluded 
+    // record that children that are ignorable whitespace should be excluded
     // (When content was loaded via the XUL content sink, it's already
     // been excluded, but we need this for when the XUL namespace is used
     // in other MIME types or when the XUL CSS display types are used with
     // non-XUL elements.)
 
     // This is bogus, but it's what we've always done.
     // (Given that we're replaced, we need to say we're a replaced element
     // that contains a block so ReflowInput doesn't tell us to be
@@ -142,20 +142,20 @@ public:
   // can override it
   virtual void BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                            const nsRect&           aDirtyRect,
                                            const nsDisplayListSet& aLists);
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
-  
+
 #ifdef DEBUG_LAYOUT
     virtual void SetDebugOnChildList(nsBoxLayoutState& aState, nsIFrame* aChild, bool aDebug);
-    nsresult DisplayDebugInfoFor(nsIFrame*  aBox, 
+    nsresult DisplayDebugInfoFor(nsIFrame*  aBox,
                                  nsPoint& aPoint);
 #endif
 
   static nsresult LayoutChildAt(nsBoxLayoutState& aState, nsIFrame* aBox, const nsRect& aRect);
 
   /**
    * Utility method to redirect events on descendants to this frame.
    * Supports 'allowevents' attribute on descendant elements to allow those
@@ -182,23 +182,23 @@ protected:
 #ifdef DEBUG_LAYOUT
     virtual void GetBoxName(nsAutoString& aName) override;
     void PaintXULDebugBackground(gfxContext& aRenderingContext,
                                  nsPoint aPt);
     void PaintXULDebugOverlay(DrawTarget& aRenderingContext,
                               nsPoint aPt);
 #endif
 
-    virtual bool GetInitialEqualSize(bool& aEqualSize); 
+    virtual bool GetInitialEqualSize(bool& aEqualSize);
     virtual void GetInitialOrientation(bool& aIsHorizontal);
     virtual void GetInitialDirection(bool& aIsNormal);
-    virtual bool GetInitialHAlignment(Halignment& aHalign); 
-    virtual bool GetInitialVAlignment(Valignment& aValign); 
-    virtual bool GetInitialAutoStretch(bool& aStretch); 
-  
+    virtual bool GetInitialHAlignment(Halignment& aHalign);
+    virtual bool GetInitialVAlignment(Valignment& aValign);
+    virtual bool GetInitialAutoStretch(bool& aStretch);
+
     virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
     nsSize mPrefSize;
     nsSize mMinSize;
     nsSize mMaxSize;
     nscoord mFlex;
     nscoord mAscent;
 
@@ -212,17 +212,17 @@ protected:
     bool GetEventPoint(mozilla::WidgetGUIEvent* aEvent,
                        mozilla::LayoutDeviceIntPoint& aPoint);
 
 protected:
     void RegUnregAccessKey(bool aDoReg);
 
   void CheckBoxOrder();
 
-private: 
+private:
 
 #ifdef DEBUG_LAYOUT
     nsresult SetXULDebug(nsPresContext* aPresContext, bool aDebug);
     bool GetInitialDebug(bool& aDebug);
     void GetDebugPref();
 
     void GetDebugBorder(nsMargin& aInset);
     void GetDebugPadding(nsMargin& aInset);
--- a/layout/xul/nsBoxLayoutState.h
+++ b/layout/xul/nsBoxLayoutState.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
- 
+
   Author:
   Eric D Vaughan
 
 **/
 
 #ifndef nsBoxLayoutState_h___
 #define nsBoxLayoutState_h___
 
@@ -58,20 +58,20 @@ public:
     nsBoxLayoutState& mState;
   };
 
   // The HTML reflow state that lives outside the box-block boundary.
   // May not be set reliably yet.
   const ReflowInput* OuterReflowInput() { return mOuterReflowInput; }
 
   uint16_t GetReflowDepth() { return mReflowDepth; }
-  
+
 private:
   RefPtr<nsPresContext> mPresContext;
   gfxContext *mRenderingContext;
   const ReflowInput *mOuterReflowInput;
   uint32_t mLayoutFlags;
-  uint16_t mReflowDepth; 
+  uint16_t mReflowDepth;
   bool mPaintingDisabled;
 };
 
 #endif
 
--- a/layout/xul/nsButtonBoxFrame.cpp
+++ b/layout/xul/nsButtonBoxFrame.cpp
@@ -97,17 +97,17 @@ nsButtonBoxFrame::BuildDisplayListForChi
 {
   // override, since we don't want children to get events
   if (aBuilder->IsForEventDelivery())
     return;
   nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
 }
 
 nsresult
-nsButtonBoxFrame::HandleEvent(nsPresContext* aPresContext, 
+nsButtonBoxFrame::HandleEvent(nsPresContext* aPresContext,
                               WidgetGUIEvent* aEvent,
                               nsEventStatus* aEventStatus)
 {
   NS_ENSURE_ARG_POINTER(aEventStatus);
   if (nsEventStatus_eConsumeNoDefault == *aEventStatus) {
     return NS_OK;
   }
 
--- a/layout/xul/nsButtonBoxFrame.h
+++ b/layout/xul/nsButtonBoxFrame.h
@@ -23,33 +23,33 @@ public:
                     nsIFrame*         aPrevInFlow) override;
 
   virtual void BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                            const nsRect&           aDirtyRect,
                                            const nsDisplayListSet& aLists) override;
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
-  virtual nsresult HandleEvent(nsPresContext* aPresContext, 
+  virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
 
   virtual void MouseClicked(mozilla::WidgetGUIEvent* aEvent)
   { DoMouseClick(aEvent, false); }
 
   void Blurred();
 
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override {
     return MakeFrameName(NS_LITERAL_STRING("ButtonBoxFrame"), aResult);
   }
 #endif
 
   /**
-   * Our implementation of MouseClicked. 
+   * Our implementation of MouseClicked.
    * @param aTrustEvent if true and aEvent as null, then assume the event was trusted
    */
   void DoMouseClick(mozilla::WidgetGUIEvent* aEvent, bool aTrustEvent);
   void UpdateMouseThrough() override { AddStateBits(NS_FRAME_MOUSE_THROUGH_NEVER); }
 
 private:
   class nsButtonBoxListener final : public nsIDOMEventListener
   {
--- a/layout/xul/nsDeckFrame.cpp
+++ b/layout/xul/nsDeckFrame.cpp
@@ -133,31 +133,31 @@ nsDeckFrame::GetSelectedIndex()
 
     // convert it to an integer
     index = value.ToInteger(&error);
   }
 
   return index;
 }
 
-nsIFrame* 
+nsIFrame*
 nsDeckFrame::GetSelectedBox()
 {
-  return (mIndex >= 0) ? mFrames.FrameAt(mIndex) : nullptr; 
+  return (mIndex >= 0) ? mFrames.FrameAt(mIndex) : nullptr;
 }
 
 void
 nsDeckFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                               const nsRect&           aDirtyRect,
                               const nsDisplayListSet& aLists)
 {
   // if a tab is hidden all its children are too.
   if (!StyleVisibility()->mVisible)
     return;
-    
+
   nsBoxFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
 }
 
 void
 nsDeckFrame::RemoveFrame(ChildListID aListID,
                          nsIFrame* aOldFrame)
 {
   nsIFrame* currentFrame = GetSelectedBox();
@@ -210,20 +210,20 @@ nsDeckFrame::DoXULLayout(nsBoxLayoutStat
 
   // do a normal layout
   nsresult rv = nsBoxFrame::DoXULLayout(aState);
 
   // run though each child. Hide all but the selected one
   nsIFrame* box = nsBox::GetChildXULBox(this);
 
   nscoord count = 0;
-  while (box) 
+  while (box)
   {
     // make collapsed children not show up
-    if (count != mIndex) 
+    if (count != mIndex)
       HideBox(box);
 
     box = GetNextXULBox(box);
     count++;
   }
 
   aState.SetLayoutFlags(oldFlags);
 
--- a/layout/xul/nsDeckFrame.h
+++ b/layout/xul/nsDeckFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   A frame that can have multiple children. Only one child may be displayed at one time. So the
   can be flipped though like a deck of cards.
- 
+
 **/
 
 #ifndef nsDeckFrame_h___
 #define nsDeckFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsBoxFrame.h"
 
--- a/layout/xul/nsGroupBoxFrame.cpp
+++ b/layout/xul/nsGroupBoxFrame.cpp
@@ -44,19 +44,19 @@ public:
                                    nsPoint aPt,
                                    const nsRect& aDirtyRect);
   nsRect GetBackgroundRectRelativeToSelf(nscoord* aOutYOffset = nullptr, nsRect* aOutGroupRect = nullptr);
 
   // make sure we our kids get our orient and align instead of us.
   // our child box has no content node so it will search for a parent with one.
   // that will be us.
   virtual void GetInitialOrientation(bool& aHorizontal) override { aHorizontal = false; }
-  virtual bool GetInitialHAlignment(Halignment& aHalign) override { aHalign = hAlign_Left; return true; } 
-  virtual bool GetInitialVAlignment(Valignment& aValign) override { aValign = vAlign_Top; return true; } 
-  virtual bool GetInitialAutoStretch(bool& aStretch) override { aStretch = true; return true; } 
+  virtual bool GetInitialHAlignment(Halignment& aHalign) override { aHalign = hAlign_Left; return true; }
+  virtual bool GetInitialVAlignment(Valignment& aValign) override { aValign = vAlign_Top; return true; }
+  virtual bool GetInitialAutoStretch(bool& aStretch) override { aStretch = true; return true; }
 
   nsIFrame* GetCaptionBox(nsRect& aCaptionRect);
 };
 
 /*
 class nsGroupBoxInnerFrame : public nsBoxFrame {
 public:
 
@@ -64,17 +64,17 @@ public:
       nsBoxFrame(aShell, aContext) {}
 
 
 #ifdef DEBUG_FRAME_DUMP
   NS_IMETHOD GetFrameName(nsString& aResult) const {
     return MakeFrameName("GroupBoxFrameInner", aResult);
   }
 #endif
-  
+
   // we are always flexible
   virtual bool GetDefaultFlex(int32_t& aFlex) { aFlex = 1; return true; }
 
 };
 */
 
 nsIFrame*
 NS_NewGroupBoxFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
@@ -152,17 +152,17 @@ nsGroupBoxFrame::BuildDisplayList(nsDisp
 {
   // Paint our background and border
   if (IsVisibleForPainting(aBuilder)) {
     nsDisplayBackgroundImage::AppendBackgroundItemsToTop(
       aBuilder, this, GetBackgroundRectRelativeToSelf(),
       aLists.BorderBackground());
     aLists.BorderBackground()->AppendNewToTop(new (aBuilder)
       nsDisplayXULGroupBorder(aBuilder, this));
-    
+
     DisplayOutline(aBuilder, aLists);
   }
 
   BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
 }
 
 nsRect
 nsGroupBoxFrame::GetBackgroundRectRelativeToSelf(nscoord* aOutYOffset, nsRect* aOutGroupRect)
@@ -242,32 +242,32 @@ nsGroupBoxFrame::PaintBorder(gfxContext&
 
     aRenderingContext.Save();
     aRenderingContext.Clip(
       NSRectToSnappedRect(clipRect, appUnitsPerDevPixel, *drawTarget));
     result &=
       nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
                                   aDirtyRect, rect, mStyleContext,
                                   PaintBorderFlags::SYNC_DECODE_IMAGES, skipSides);
-  
+
     aRenderingContext.Restore();
     // draw bottom
 
     clipRect = rect;
     clipRect.y += border.top;
     clipRect.height = mRect.height - (yoff + border.top);
 
     aRenderingContext.Save();
     aRenderingContext.Clip(
       NSRectToSnappedRect(clipRect, appUnitsPerDevPixel, *drawTarget));
     result &=
       nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
                                   aDirtyRect, rect, mStyleContext,
                                   PaintBorderFlags::SYNC_DECODE_IMAGES, skipSides);
-    
+
     aRenderingContext.Restore();
   } else {
     result &=
       nsCSSRendering::PaintBorder(presContext, aRenderingContext, this,
                                   aDirtyRect, nsRect(aPt, GetSize()),
                                   mStyleContext,
                                   PaintBorderFlags::SYNC_DECODE_IMAGES, skipSides);
   }
--- a/layout/xul/nsImageBoxFrame.cpp
+++ b/layout/xul/nsImageBoxFrame.cpp
@@ -496,17 +496,17 @@ nsDisplayXULImage::GetImage()
 {
   nsImageBoxFrame* imageFrame = static_cast<nsImageBoxFrame*>(mFrame);
   if (!imageFrame->mImageRequest) {
     return nullptr;
   }
 
   nsCOMPtr<imgIContainer> imgCon;
   imageFrame->mImageRequest->GetImage(getter_AddRefs(imgCon));
-  
+
   return imgCon.forget();
 }
 
 nsRect
 nsDisplayXULImage::GetDestRect()
 {
   Maybe<nsPoint> anchorPoint;
   return static_cast<nsImageBoxFrame*>(mFrame)->GetDestRect(ToReferenceFrame(), anchorPoint);
@@ -774,17 +774,17 @@ nsImageBoxFrame::OnImageIsAnimated(imgIR
 }
 
 nsresult
 nsImageBoxFrame::OnFrameUpdate(imgIRequest* aRequest)
 {
   if ((0 == mRect.width) || (0 == mRect.height)) {
     return NS_OK;
   }
- 
+
   InvalidateLayer(nsDisplayItem::TYPE_XUL_IMAGE);
 
   return NS_OK;
 }
 
 NS_IMPL_ISUPPORTS(nsImageBoxListener, imgINotificationObserver, imgIOnloadBlocker)
 
 nsImageBoxListener::nsImageBoxListener()
--- a/layout/xul/nsImageBoxFrame.h
+++ b/layout/xul/nsImageBoxFrame.h
@@ -67,17 +67,17 @@ public:
   virtual void DidSetStyleContext(nsStyleContext* aOldStyleContext) override;
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override;
 #endif
 
-  /** 
+  /**
    * Update mUseSrcAttr from appropriate content attributes or from
    * style, throw away the current image, and load the appropriate
    * image.
    * */
   void UpdateImage();
 
   /**
    * Update mLoadFlags from content attributes. Does not attempt to reload the
--- a/layout/xul/nsLeafBoxFrame.cpp
+++ b/layout/xul/nsLeafBoxFrame.cpp
@@ -69,17 +69,17 @@ nsLeafBoxFrame::Init(nsIContent*       a
 nsresult
 nsLeafBoxFrame::AttributeChanged(int32_t aNameSpaceID,
                                  nsIAtom* aAttribute,
                                  int32_t aModType)
 {
   nsresult rv = nsLeafFrame::AttributeChanged(aNameSpaceID, aAttribute,
                                               aModType);
 
-  if (aAttribute == nsGkAtoms::mousethrough) 
+  if (aAttribute == nsGkAtoms::mousethrough)
     UpdateMouseThrough();
 
   return rv;
 }
 
 void nsLeafBoxFrame::UpdateMouseThrough()
 {
   if (mContent) {
@@ -215,17 +215,17 @@ nsLeafBoxFrame::Reflow(nsPresContext*   
       printf("Rsz");break;
     case eReflowReason_StyleChange:
       printf("Sty");break;
     case eReflowReason_Dirty:
       printf("Drt ");
       break;
     default:printf("<unknown>%d", aReflowInput.reason);break;
   }
-  
+
   printSize("AW", aReflowInput.AvailableWidth());
   printSize("AH", aReflowInput.AvailableHeight());
   printSize("CW", aReflowInput.ComputedWidth());
   printSize("CH", aReflowInput.ComputedHeight());
 
   printf(" *\n");
 
 #endif
@@ -289,36 +289,36 @@ nsLeafBoxFrame::Reflow(nsPresContext*   
   computedSize.height = NS_CSS_MINMAX(computedSize.height,
                                       aReflowInput.ComputedMinHeight(),
                                       aReflowInput.ComputedMaxHeight());
   computedSize.height += m.TopBottom();
 
   nsRect r(mRect.x, mRect.y, computedSize.width, computedSize.height);
 
   SetXULBounds(state, r);
- 
+
   // layout our children
   XULLayout(state);
-  
+
   // ok our child could have gotten bigger. So lets get its bounds
   aDesiredSize.Width() = mRect.width;
   aDesiredSize.Height() = mRect.height;
   aDesiredSize.SetBlockStartAscent(GetXULBoxAscent(state));
 
   // the overflow rect is set in SetXULBounds() above
   aDesiredSize.mOverflowAreas = GetOverflowAreas();
 
 #ifdef DO_NOISY_REFLOW
   {
     printf("%p ** nsLBF(done) W:%d H:%d  ", this, aDesiredSize.Width(), aDesiredSize.Height());
 
     if (maxElementWidth) {
-      printf("MW:%d\n", *maxElementWidth); 
+      printf("MW:%d\n", *maxElementWidth);
     } else {
-      printf("MW:?\n"); 
+      printf("MW:?\n");
     }
 
   }
 #endif
 }
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult
--- a/layout/xul/nsListBoxBodyFrame.cpp
+++ b/layout/xul/nsListBoxBodyFrame.cpp
@@ -41,19 +41,19 @@
 #include "nsAccessibilityService.h"
 #endif
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 /////////////// nsListScrollSmoother //////////////////
 
-/* A mediator used to smooth out scrolling. It works by seeing if 
+/* A mediator used to smooth out scrolling. It works by seeing if
  * we have time to scroll the amount of rows requested. This is determined
- * by measuring how long it takes to scroll a row. If we can scroll the 
+ * by measuring how long it takes to scroll a row. If we can scroll the
  * rows in time we do so. If not we start a timer and skip the request. We
  * do this until the timer finally first because the user has stopped moving
  * the mouse. Then do all the queued requests in on shot.
  */
 
 // the longest amount of time that can go by before the use
 // notices it as a delay.
 #define USER_TIME_THRESHOLD 150000
@@ -187,17 +187,17 @@ NS_QUERYFRAME_HEAD(nsListBoxBodyFrame)
   NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
   NS_QUERYFRAME_ENTRY(nsListBoxBodyFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 ////////// nsIFrame /////////////////
 
 void
 nsListBoxBodyFrame::Init(nsIContent*       aContent,
-                         nsContainerFrame* aParent, 
+                         nsContainerFrame* aParent,
                          nsIFrame*         aPrevInFlow)
 {
   nsBoxFrame::Init(aContent, aParent, aPrevInFlow);
   // Don't call nsLayoutUtils::GetScrollableFrameFor since we are not its
   // scrollframe child yet.
   nsIScrollableFrame* scrollFrame = do_QueryFrame(aParent);
   if (scrollFrame) {
     nsIFrame* verticalScrollbar = scrollFrame->GetScrollbarBox(true);
@@ -228,30 +228,30 @@ nsListBoxBodyFrame::DestroyFrom(nsIFrame
     mBoxObject->ClearCachedValues();
   }
 
   nsBoxFrame::DestroyFrom(aDestructRoot);
 }
 
 nsresult
 nsListBoxBodyFrame::AttributeChanged(int32_t aNameSpaceID,
-                                     nsIAtom* aAttribute, 
+                                     nsIAtom* aAttribute,
                                      int32_t aModType)
 {
   nsresult rv = NS_OK;
 
   if (aAttribute == nsGkAtoms::rows) {
     PresContext()->PresShell()->
       FrameNeedsReflow(this, nsIPresShell::eStyleChange, NS_FRAME_IS_DIRTY);
   }
   else
     rv = nsBoxFrame::AttributeChanged(aNameSpaceID, aAttribute, aModType);
 
   return rv;
- 
+
 }
 
 /* virtual */ void
 nsListBoxBodyFrame::MarkIntrinsicISizesDirty()
 {
   mStringWidth = -1;
   nsBoxFrame::MarkIntrinsicISizesDirty();
 }
@@ -312,17 +312,17 @@ nsListBoxBodyFrame::GetXULMinSizeForScro
       result.width += scrollbars.left + scrollbars.right;
     }
   }
   return result;
 }
 
 nsSize
 nsListBoxBodyFrame::GetXULPrefSize(nsBoxLayoutState& aBoxLayoutState)
-{  
+{
   nsSize pref = nsBoxFrame::GetXULPrefSize(aBoxLayoutState);
 
   int32_t size = GetFixedRowSize();
   if (size > -1)
     pref.height = size*GetRowHeightAppUnits();
 
   nsIScrollableFrame* scrollFrame = nsLayoutUtils::GetScrollableFrameFor(this);
   if (scrollFrame &&
@@ -396,17 +396,17 @@ nsListBoxBodyFrame::ToRowIndex(nscoord a
 {
   return NS_roundf(float(std::max(aPos, 0)) / mRowHeight);
 }
 
 void
 nsListBoxBodyFrame::ThumbMoved(nsScrollbarFrame* aScrollbar,
                                nscoord aOldPos,
                                nscoord aNewPos)
-{ 
+{
   if (mScrolling || mRowHeight == 0)
     return;
 
   int32_t newIndex = ToRowIndex(aNewPos);
   if (newIndex == mCurrentIndex) {
     return;
   }
   int32_t rowDelta = newIndex - mCurrentIndex;
@@ -425,17 +425,17 @@ nsListBoxBodyFrame::ThumbMoved(nsScrollb
 
      return;
   }
 
   smoother->Stop();
 
   mCurrentIndex = newIndex;
   smoother->mDelta = 0;
-  
+
   if (mCurrentIndex < 0) {
     mCurrentIndex = 0;
     return;
   }
   InternalPositionChanged(rowDelta < 0, Abs(rowDelta));
 }
 
 void
@@ -468,39 +468,39 @@ nsListBoxBodyFrame::UpdateIndex(int32_t 
   if (newIndex == mCurrentIndex) {
     return;
   }
   bool up = newIndex < mCurrentIndex;
   int32_t indexDelta = Abs(newIndex - mCurrentIndex);
   mCurrentIndex = newIndex;
   InternalPositionChanged(up, indexDelta);
 }
- 
+
 ///////////// nsIReflowCallback ///////////////
 
 bool
 nsListBoxBodyFrame::ReflowFinished()
 {
   nsAutoScriptBlocker scriptBlocker;
   // now create or destroy any rows as needed
   CreateRows();
 
   // keep scrollbar in sync
   if (mAdjustScroll) {
      VerticalScroll(mYPosition);
      mAdjustScroll = false;
   }
 
-  // if the row height changed then mark everything as a style change. 
+  // if the row height changed then mark everything as a style change.
   // That will dirty the entire listbox
   if (mRowHeightWasSet) {
     PresContext()->PresShell()->
       FrameNeedsReflow(this, nsIPresShell::eStyleChange, NS_FRAME_IS_DIRTY);
      int32_t pos = mCurrentIndex * mRowHeight;
-     if (mYPosition != pos) 
+     if (mYPosition != pos)
        mAdjustScroll = true;
     mRowHeightWasSet = false;
   }
 
   mReflowCallbackPosted = false;
   return true;
 }
 
@@ -531,17 +531,17 @@ nsListBoxBodyFrame::EnsureIndexIsVisible
     return NS_ERROR_ILLEGAL_VALUE;
 
   int32_t rows = 0;
   if (mRowHeight)
     rows = GetAvailableHeight()/mRowHeight;
   if (rows <= 0)
     rows = 1;
   int32_t bottomIndex = mCurrentIndex + rows;
-  
+
   // if row is visible, ignore
   if (mCurrentIndex <= aRowIndex && aRowIndex < bottomIndex)
     return NS_OK;
 
   int32_t delta;
 
   bool up = aRowIndex < mCurrentIndex;
   if (up) {
@@ -550,42 +550,42 @@ nsListBoxBodyFrame::EnsureIndexIsVisible
   }
   else {
     // Check to be sure we're not scrolling off the bottom of the tree
     if (aRowIndex >= GetRowCount())
       return NS_ERROR_ILLEGAL_VALUE;
 
     // Bring it just into view.
     delta = 1 + (aRowIndex-bottomIndex);
-    mCurrentIndex += delta; 
+    mCurrentIndex += delta;
   }
 
   // Safe to not go off an event here, since this is coming from the
   // box object.
   DoInternalPositionChangedSync(up, delta);
   return NS_OK;
 }
 
 nsresult
 nsListBoxBodyFrame::ScrollByLines(int32_t aNumLines)
 {
   int32_t scrollIndex = GetIndexOfFirstVisibleRow(),
     visibleRows = GetNumberOfVisibleRows();
 
   scrollIndex += aNumLines;
-  
+
   if (scrollIndex < 0)
     scrollIndex = 0;
   else {
     int32_t numRows = GetRowCount();
     int32_t lastPageTopRow = numRows - visibleRows;
     if (scrollIndex > lastPageTopRow)
       scrollIndex = lastPageTopRow;
   }
-  
+
   ScrollToIndex(scrollIndex);
 
   return NS_OK;
 }
 
 // walks the DOM to get the zero-based row index of the content
 nsresult
 nsListBoxBodyFrame::GetIndexOfItem(nsIDOMElement* aItem, int32_t* _retval)
@@ -656,32 +656,32 @@ int32_t
 nsListBoxBodyFrame::GetFixedRowSize()
 {
   nsresult dummy;
 
   nsAutoString rows;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::rows, rows);
   if (!rows.IsEmpty())
     return rows.ToInteger(&dummy);
- 
+
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::size, rows);
 
   if (!rows.IsEmpty())
     return rows.ToInteger(&dummy);
 
   return -1;
 }
 
 void
 nsListBoxBodyFrame::SetRowHeight(nscoord aRowHeight)
-{ 
-  if (aRowHeight > mRowHeight) { 
+{
+  if (aRowHeight > mRowHeight) {
     mRowHeight = aRowHeight;
 
-    // signal we need to dirty everything 
+    // signal we need to dirty everything
     // and we want to be notified after reflow
     // so we can create or destory rows as needed
     mRowHeightWasSet = true;
     PostReflowCallback();
   }
 }
 
 nscoord
@@ -747,17 +747,17 @@ nsListBoxBodyFrame::ComputeIntrinsicISiz
           RefPtr<nsFontMetrics> fm =
             nsLayoutUtils::GetFontMetricsForStyleContext(styleContext);
 
           nscoord textWidth =
             nsLayoutUtils::AppUnitWidthOfStringBidi(value, this, *fm,
                                                     *rendContext);
           textWidth += width;
 
-          if (textWidth > largestWidth) 
+          if (textWidth > largestWidth)
             largestWidth = textWidth;
         }
       }
     }
   }
 
   mStringWidth = largestWidth;
   return mStringWidth;
@@ -786,17 +786,17 @@ nsListBoxBodyFrame::PostReflowCallback()
 
 ////////// scrolling
 
 nsresult
 nsListBoxBodyFrame::ScrollToIndex(int32_t aRowIndex)
 {
   if (( aRowIndex < 0 ) || (mRowHeight == 0))
     return NS_OK;
-    
+
   int32_t newIndex = aRowIndex;
   int32_t delta = mCurrentIndex > newIndex ? mCurrentIndex - newIndex : newIndex - mCurrentIndex;
   bool up = newIndex < mCurrentIndex;
 
   // Check to be sure we're not scrolling off the bottom of the tree
   int32_t lastPageTopRow = GetRowCount() - (GetAvailableHeight() / mRowHeight);
   if (lastPageTopRow < 0)
     lastPageTopRow = 0;
@@ -857,17 +857,17 @@ nsListBoxBodyFrame::InternalPositionChan
   }
   return rv;
 }
 
 nsresult
 nsListBoxBodyFrame::DoInternalPositionChangedSync(bool aUp, int32_t aDelta)
 {
   AutoWeakFrame weak(this);
-  
+
   // Process all the pending position changes first
   nsTArray< RefPtr<nsPositionChangedEvent> > temp;
   temp.SwapElements(mPendingPositionChangeEvents);
   for (uint32_t i = 0; i < temp.Length(); ++i) {
     if (weak.IsAlive()) {
       temp[i]->Run();
     }
     temp[i]->Revoke();
@@ -899,17 +899,17 @@ nsListBoxBodyFrame::DoInternalPositionCh
   }
 
   {
     nsAutoScriptBlocker scriptBlocker;
 
     int32_t visibleRows = 0;
     if (mRowHeight)
       visibleRows = GetAvailableHeight()/mRowHeight;
-  
+
     if (aDelta < visibleRows) {
       int32_t loseRows = aDelta;
       if (aUp) {
         // scrolling up, destroy rows from the bottom downwards
         ReverseDestroyRows(loseRows);
         mRowsToPrepend += aDelta;
         mLinkupFrame = nullptr;
       }
@@ -929,48 +929,48 @@ nsListBoxBodyFrame::DoInternalPositionCh
         nsIFrame *nextBox = currBox->GetNextSibling();
         RemoveChildFrame(state, currBox);
         currBox = nextBox;
       }
       fc->EndUpdate();
     }
 
     // clear frame markers so that CreateRows will re-create
-    mTopFrame = mBottomFrame = nullptr; 
-  
+    mTopFrame = mBottomFrame = nullptr;
+
     mYPosition = mCurrentIndex*mRowHeight;
     mScrolling = true;
     presContext->PresShell()->
       FrameNeedsReflow(this, nsIPresShell::eResize, NS_FRAME_HAS_DIRTY_CHILDREN);
   }
   if (!weakThis.IsAlive()) {
     return NS_OK;
   }
   // Flush calls CreateRows
   // XXXbz there has to be a better way to do this than flushing!
   presContext->PresShell()->FlushPendingNotifications(FlushType::Layout);
   if (!weakThis.IsAlive()) {
     return NS_OK;
   }
 
   mScrolling = false;
-  
+
   VerticalScroll(mYPosition);
 
   PRTime end = PR_Now();
 
   int32_t newTime = int32_t(end - start) / aDelta;
 
   // average old and new
   mTimePerRow = (newTime + mTimePerRow)/2;
-  
+
   return NS_OK;
 }
 
-nsListScrollSmoother* 
+nsListScrollSmoother*
 nsListBoxBodyFrame::GetSmoother()
 {
   if (!mScrollSmoother) {
     mScrollSmoother = new nsListScrollSmoother(this);
     NS_ASSERTION(mScrollSmoother, "out of memory");
     NS_IF_ADDREF(mScrollSmoother);
   }
 
@@ -982,17 +982,17 @@ nsListBoxBodyFrame::VerticalScroll(int32
 {
   nsIScrollableFrame* scrollFrame
     = nsLayoutUtils::GetScrollableFrameFor(this);
   if (!scrollFrame) {
     return;
   }
 
   nsPoint scrollPosition = scrollFrame->GetScrollPosition();
- 
+
   AutoWeakFrame weakFrame(this);
   scrollFrame->ScrollTo(nsPoint(scrollPosition.x, aPosition),
                         nsIScrollableFrame::INSTANT);
   if (!weakFrame.IsAlive()) {
     return;
   }
 
   mYPosition = aPosition;
@@ -1026,54 +1026,54 @@ nsListBoxBodyFrame::CreateRows()
 {
   // Get our client rect.
   nsRect clientRect;
   GetXULClientRect(clientRect);
 
   // Get the starting y position and the remaining available
   // height.
   nscoord availableHeight = GetAvailableHeight();
-  
+
   if (availableHeight <= 0) {
     bool fixed = (GetFixedRowSize() != -1);
     if (fixed)
       availableHeight = 10;
     else
       return;
   }
-  
+
   // get the first tree box. If there isn't one create one.
   bool created = false;
   nsIFrame* box = GetFirstItemBox(0, &created);
   nscoord rowHeight = GetRowHeightAppUnits();
-  while (box) {  
+  while (box) {
     if (created && mRowsToPrepend > 0)
       --mRowsToPrepend;
 
-    // if the row height is 0 then fail. Wait until someone 
+    // if the row height is 0 then fail. Wait until someone
     // laid out and sets the row height.
     if (rowHeight == 0)
         return;
-     
+
     availableHeight -= rowHeight;
-    
+
     // should we continue? Is the enought height?
     if (!ContinueReflow(availableHeight))
       break;
 
     // get the next tree box. Create one if needed.
     box = GetNextItemBox(box, 0, &created);
   }
 
   mRowsToPrepend = 0;
   mLinkupFrame = nullptr;
 }
 
 void
-nsListBoxBodyFrame::DestroyRows(int32_t& aRowsToLose) 
+nsListBoxBodyFrame::DestroyRows(int32_t& aRowsToLose)
 {
   // We need to destroy frames until our row count has been properly
   // reduced.  A reflow will then pick up and create the new frames.
   nsIFrame* childFrame = GetFirstFrame();
   nsBoxLayoutState state(PresContext());
 
   nsCSSFrameConstructor* fc = PresContext()->PresShell()->FrameConstructor();
   fc->BeginUpdate();
@@ -1088,28 +1088,28 @@ nsListBoxBodyFrame::DestroyRows(int32_t&
   fc->EndUpdate();
 
   PresContext()->PresShell()->
     FrameNeedsReflow(this, nsIPresShell::eTreeChange,
                      NS_FRAME_HAS_DIRTY_CHILDREN);
 }
 
 void
-nsListBoxBodyFrame::ReverseDestroyRows(int32_t& aRowsToLose) 
+nsListBoxBodyFrame::ReverseDestroyRows(int32_t& aRowsToLose)
 {
   // We need to destroy frames until our row count has been properly
   // reduced.  A reflow will then pick up and create the new frames.
   nsIFrame* childFrame = GetLastFrame();
   nsBoxLayoutState state(PresContext());
 
   nsCSSFrameConstructor* fc = PresContext()->PresShell()->FrameConstructor();
   fc->BeginUpdate();
   while (childFrame && aRowsToLose > 0) {
     --aRowsToLose;
-    
+
     nsIFrame* prevFrame;
     prevFrame = childFrame->GetPrevSibling();
     RemoveChildFrame(state, childFrame);
 
     mBottomFrame = childFrame = prevFrame;
   }
   fc->EndUpdate();
 
@@ -1154,17 +1154,17 @@ nsListBoxBodyFrame::GetFirstItemBox(int3
   // top frame was cleared out
   mTopFrame = GetFirstFrame();
   mBottomFrame = mTopFrame;
 
   if (mTopFrame && mRowsToPrepend <= 0) {
     return mTopFrame->IsXULBoxFrame() ? mTopFrame.GetFrame() : nullptr;
   }
 
-  // At this point, we either have no frames at all, 
+  // At this point, we either have no frames at all,
   // or the user has scrolled upwards, leaving frames
   // to be created at the top.  Let's determine which
   // content needs a new frame first.
 
   nsCOMPtr<nsIContent> startContent;
   if (mTopFrame && mRowsToPrepend > 0) {
     // We need to insert rows before the top frame
     nsIContent* topContent = mTopFrame->GetContent();
@@ -1175,30 +1175,30 @@ nsListBoxBodyFrame::GetFirstItemBox(int3
       return nullptr;
     startContent = topParent->GetChildAt(contentIndex - mRowsToPrepend);
   } else {
     // This will be the first item frame we create.  Use the content
     // at the current index, which is the first index scrolled into view
     GetListItemContentAt(mCurrentIndex+aOffset, getter_AddRefs(startContent));
   }
 
-  if (startContent) {  
+  if (startContent) {
     nsIFrame* existingFrame;
     if (!IsListItemChild(this, startContent, &existingFrame)) {
       return GetFirstItemBox(++aOffset, aCreated);
     }
     if (existingFrame) {
       return existingFrame->IsXULBoxFrame() ? existingFrame : nullptr;
     }
 
     // Either append the new frame, or prepend it (at index 0)
     // XXX check here if frame was even created, it may not have been if
     //     display: none was on listitem content
     bool isAppend = mRowsToPrepend <= 0;
-    
+
     nsPresContext* presContext = PresContext();
     nsCSSFrameConstructor* fc = presContext->PresShell()->FrameConstructor();
     nsIFrame* topFrame = nullptr;
     fc->CreateListBoxContent(this, nullptr, startContent, &topFrame, isAppend);
     mTopFrame = topFrame;
     if (mTopFrame) {
       if (aCreated)
         *aCreated = true;
@@ -1241,48 +1241,48 @@ nsListBoxBodyFrame::GetNextItemBox(nsIFr
       nsIFrame* existingFrame;
       if (!IsListItemChild(this, nextContent, &existingFrame)) {
         return GetNextItemBox(aBox, ++aOffset, aCreated);
       }
       if (!existingFrame) {
         // Either append the new frame, or insert it after the current frame
         bool isAppend = result != mLinkupFrame && mRowsToPrepend <= 0;
         nsIFrame* prevFrame = isAppend ? nullptr : aBox;
-      
+
         nsPresContext* presContext = PresContext();
         nsCSSFrameConstructor* fc = presContext->PresShell()->FrameConstructor();
         fc->CreateListBoxContent(this, prevFrame, nextContent,
                                  &result, isAppend);
 
         if (result) {
           if (aCreated)
             *aCreated = true;
         } else
           return GetNextItemBox(aBox, ++aOffset, aCreated);
       } else {
         result = existingFrame;
       }
-            
+
       mLinkupFrame = nullptr;
     }
   }
 
   if (!result)
     return nullptr;
 
   mBottomFrame = result;
 
   NS_ASSERTION(!result->IsXULBoxFrame() || result->GetParent() == this,
                "returning frame that is not in childlist");
 
   return result->IsXULBoxFrame() ? result : nullptr;
 }
 
 bool
-nsListBoxBodyFrame::ContinueReflow(nscoord height) 
+nsListBoxBodyFrame::ContinueReflow(nscoord height)
 {
 #ifdef ACCESSIBILITY
   if (nsIPresShell::IsAccessibilityActive()) {
     // Create all the frames at once so screen readers and
     // onscreen keyboards can see the full list right away
     return true;
   }
 #endif
@@ -1327,17 +1327,17 @@ nsListBoxBodyFrame::ListBoxAppendFrames(
   // append them after
   nsBoxLayoutState state(PresContext());
   const nsFrameList::Slice& newFrames = mFrames.AppendFrames(nullptr, aFrameList);
   if (mLayoutManager)
     mLayoutManager->ChildrenAppended(this, state, newFrames);
   PresContext()->PresShell()->
     FrameNeedsReflow(this, nsIPresShell::eTreeChange,
                      NS_FRAME_HAS_DIRTY_CHILDREN);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsListBoxBodyFrame::ListBoxInsertFrames(nsIFrame* aPrevFrame,
                                         nsFrameList& aFrameList)
 {
   // insert the frames to our info list
@@ -1348,96 +1348,96 @@ nsListBoxBodyFrame::ListBoxInsertFrames(
     mLayoutManager->ChildrenInserted(this, state, aPrevFrame, newFrames);
   PresContext()->PresShell()->
     FrameNeedsReflow(this, nsIPresShell::eTreeChange,
                      NS_FRAME_HAS_DIRTY_CHILDREN);
 
   return NS_OK;
 }
 
-// 
+//
 // Called by nsCSSFrameConstructor when a new listitem content is inserted.
 //
 void
 nsListBoxBodyFrame::OnContentInserted(nsIContent* aChildContent)
 {
   if (mRowCount >= 0)
     ++mRowCount;
 
-  // The RDF content builder will build content nodes such that they are all 
+  // The RDF content builder will build content nodes such that they are all
   // ready when OnContentInserted is first called, meaning the first call
   // to CreateRows will create all the frames, but OnContentInserted will
   // still be called again for each content node - so we need to make sure
   // that the frame for each content node hasn't already been created.
   nsIFrame* childFrame = aChildContent->GetPrimaryFrame();
   if (childFrame)
     return;
 
   int32_t siblingIndex;
   nsCOMPtr<nsIContent> nextSiblingContent;
   GetListItemNextSibling(aChildContent, getter_AddRefs(nextSiblingContent), siblingIndex);
-  
+
   // if we're inserting our item before the first visible content,
   // then we need to shift all rows down by one
   if (siblingIndex >= 0 &&  siblingIndex-1 <= mCurrentIndex) {
     mTopFrame = nullptr;
     mRowsToPrepend = 1;
   } else if (nextSiblingContent) {
     // we may be inserting before a frame that is on screen
     nsIFrame* nextSiblingFrame = nextSiblingContent->GetPrimaryFrame();
     mLinkupFrame = nextSiblingFrame;
   }
-  
+
   CreateRows();
   PresContext()->PresShell()->
     FrameNeedsReflow(this, nsIPresShell::eTreeChange,
                      NS_FRAME_HAS_DIRTY_CHILDREN);
 }
 
-// 
+//
 // Called by nsCSSFrameConstructor when listitem content is removed.
 //
 void
 nsListBoxBodyFrame::OnContentRemoved(nsPresContext* aPresContext,
                                      nsIContent* aContainer,
                                      nsIFrame* aChildFrame,
                                      nsIContent* aOldNextSibling)
 {
   NS_ASSERTION(!aChildFrame || aChildFrame->GetParent() == this,
                "Removing frame that's not our child... Not good");
-  
+
   if (mRowCount >= 0)
     --mRowCount;
 
   if (aContainer) {
     if (!aChildFrame) {
       // The row we are removing is out of view, so we need to try to
       // determine the index of its next sibling.
       int32_t siblingIndex = -1;
       if (aOldNextSibling) {
         nsCOMPtr<nsIContent> nextSiblingContent;
         GetListItemNextSibling(aOldNextSibling,
                                getter_AddRefs(nextSiblingContent),
                                siblingIndex);
       }
-    
+
       // if the row being removed is off-screen and above the top frame, we need to
       // adjust our top index and tell the scrollbar to shift up one row.
       if (siblingIndex >= 0 && siblingIndex-1 < mCurrentIndex) {
         NS_PRECONDITION(mCurrentIndex > 0, "mCurrentIndex > 0");
         --mCurrentIndex;
         mYPosition = mCurrentIndex*mRowHeight;
         AutoWeakFrame weakChildFrame(aChildFrame);
         VerticalScroll(mYPosition);
         if (!weakChildFrame.IsAlive()) {
           return;
         }
       }
     } else if (mCurrentIndex > 0) {
-      // At this point, we know we have a scrollbar, and we need to know 
+      // At this point, we know we have a scrollbar, and we need to know
       // if we are scrolled to the last row.  In this case, the behavior
       // of the scrollbar is to stay locked to the bottom.  Since we are
       // removing visible content, the first visible row will have to move
       // down by one, and we will have to insert a new frame at the top.
 
       // if the last content node has a frame, we are scrolled to the bottom
       nsIContent* lastChild = nullptr;
       FlattenedChildIterator iter(mContent);
--- a/layout/xul/nsListBoxBodyFrame.h
+++ b/layout/xul/nsListBoxBodyFrame.h
@@ -38,20 +38,20 @@ public:
   nsresult EnsureIndexIsVisible(int32_t aRowIndex);
   nsresult ScrollToIndex(int32_t aRowIndex);
   nsresult ScrollByLines(int32_t aNumLines);
   nsresult GetItemAtIndex(int32_t aIndex, nsIDOMElement **aResult);
   nsresult GetIndexOfItem(nsIDOMElement *aItem, int32_t *aResult);
 
   friend nsIFrame* NS_NewListBoxBodyFrame(nsIPresShell* aPresShell,
                                           nsStyleContext* aContext);
-  
+
   // nsIFrame
   virtual void Init(nsIContent*       aContent,
-                    nsContainerFrame* aParent, 
+                    nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
   virtual nsresult AttributeChanged(int32_t aNameSpaceID, nsIAtom* aAttribute, int32_t aModType) override;
 
   // nsIScrollbarMediator
   virtual void ScrollByPage(nsScrollbarFrame* aScrollbar, int32_t aDirection,
                             nsIScrollbarMediator::ScrollSnapMode snapMode
@@ -84,17 +84,17 @@ public:
   virtual void ReflowCallbackCanceled() override;
 
   NS_IMETHOD DoXULLayout(nsBoxLayoutState& aBoxLayoutState) override;
   virtual void MarkIntrinsicISizesDirty() override;
 
   virtual nsSize GetXULMinSizeForScrollArea(nsBoxLayoutState& aBoxLayoutState) override;
   virtual nsSize GetXULPrefSize(nsBoxLayoutState& aBoxLayoutState) override;
 
-  // size calculation 
+  // size calculation
   int32_t GetRowCount();
   int32_t GetRowHeightAppUnits() { return mRowHeight; }
   int32_t GetRowHeightPixels() const;
   int32_t GetFixedRowSize();
   void SetRowHeight(nscoord aRowHeight);
   nscoord GetYPosition();
   nscoord GetAvailableHeight();
   nscoord ComputeIntrinsicISize(nsBoxLayoutState& aBoxLayoutState);
@@ -153,17 +153,17 @@ protected:
   {
   public:
     nsPositionChangedEvent(nsListBoxBodyFrame* aFrame, bool aUp, int32_t aDelta)
       : mozilla::Runnable("nsListBoxBodyFrame::nsPositionChangedEvent")
       , mFrame(aFrame)
       , mUp(aUp)
       , mDelta(aDelta)
     {}
-  
+
     NS_IMETHOD Run() override
     {
       if (!mFrame) {
         return NS_OK;
       }
 
       mFrame->mPendingPositionChangeEvents.RemoveElement(this);
 
@@ -198,17 +198,17 @@ protected:
   // row height
   int32_t mRowCount;
   nscoord mRowHeight;
   nscoord mAvailableHeight;
   nscoord mStringWidth;
 
   // scrolling
   int32_t mCurrentIndex; // Row-based
-  int32_t mOldIndex; 
+  int32_t mOldIndex;
   int32_t mYPosition;
   int32_t mTimePerRow;
 
   // row height
   bool mRowHeightWasSet;
   // scrolling
   bool mScrolling;
   bool mAdjustScroll;
--- a/layout/xul/nsListBoxLayout.cpp
+++ b/layout/xul/nsListBoxLayout.cpp
@@ -121,17 +121,17 @@ nsListBoxLayout::LayoutInternal(nsIFrame
   // Get our client rect.
   nsRect clientRect;
   aBox->GetXULClientRect(clientRect);
 
   // Get the starting y position and the remaining available
   // height.
   nscoord availableHeight = body->GetAvailableHeight();
   nscoord yOffset = body->GetYPosition();
-  
+
   if (availableHeight <= 0) {
     bool fixed = (body->GetFixedRowSize() != -1);
     if (fixed)
       availableHeight = 10;
     else
       return NS_OK;
   }
 
@@ -141,72 +141,72 @@ nsListBoxLayout::LayoutInternal(nsIFrame
   // if the reason is resize or initial we must relayout.
   nscoord rowHeight = body->GetRowHeightAppUnits();
 
   while (box) {
     // If this box is dirty or if it has dirty children, we
     // call layout on it.
     nsRect childRect(box->GetRect());
     box->GetXULMargin(margin);
-    
+
     // relayout if we must or we are dirty or some of our children are dirty
     //   or the client area is wider than us
     // XXXldb There should probably be a resize check here too!
     if (NS_SUBTREE_DIRTY(box) || childRect.width < clientRect.width) {
       childRect.x = 0;
       childRect.y = yOffset;
       childRect.width = clientRect.width;
-      
+
       nsSize size = box->GetXULPrefSize(aState);
       body->SetRowHeight(size.height);
-      
+
       childRect.height = rowHeight;
 
       childRect.Deflate(margin);
       box->SetXULBounds(aState, childRect);
       box->XULLayout(aState);
     } else {
       // if the child did not need to be relayed out. Then its easy.
       // Place the child by just grabbing its rect and adjusting the y.
       int32_t newPos = yOffset+margin.top;
 
       // are we pushing down or pulling up any rows?
-      // Then we may have to redraw everything below the moved 
+      // Then we may have to redraw everything below the moved
       // rows.
       if (redrawStart == -1 && childRect.y != newPos)
         redrawStart = newPos;
 
       childRect.y = newPos;
       box->SetXULBounds(aState, childRect);
     }
 
     // Ok now the available size gets smaller and we move the
     // starting position of the next child down some.
     nscoord size = childRect.height + margin.top + margin.bottom;
 
     yOffset += size;
     availableHeight -= size;
-    
+
     box = nsBox::GetNextXULBox(box);
   }
-  
+
   // We have enough available height left to add some more rows
   // Since we can't do this during layout, we post a callback
   // that will be processed after the reflow completes.
   body->PostReflowCallback();
-    
+
   // if rows were pushed down or pulled up because some rows were added
   // before them then redraw everything under the inserted rows. The inserted
   // rows will automatically be redrawn because the were marked dirty on insertion.
   if (redrawStart > -1) {
     aBox->XULRedraw(aState);
   }
 
   return NS_OK;
 }
 
 // Creation Routines ///////////////////////////////////////////////////////////////////////
 
 already_AddRefed<nsBoxLayout> NS_NewListBoxLayout()
 {
   RefPtr<nsBoxLayout> layout = new nsListBoxLayout();
   return layout.forget();
-} 
+}
--- a/layout/xul/nsListItemFrame.cpp
+++ b/layout/xul/nsListItemFrame.cpp
@@ -12,28 +12,28 @@
 #include "nsGkAtoms.h"
 #include "nsDisplayList.h"
 #include "nsBoxLayout.h"
 #include "nsIContent.h"
 
 nsListItemFrame::nsListItemFrame(nsStyleContext* aContext,
                                  bool aIsRoot,
                                  nsBoxLayout* aLayoutManager)
-  : nsGridRowLeafFrame(aContext, aIsRoot, aLayoutManager, kClassID) 
+  : nsGridRowLeafFrame(aContext, aIsRoot, aLayoutManager, kClassID)
 {
 }
 
 nsListItemFrame::~nsListItemFrame()
 {
 }
 
 nsSize
 nsListItemFrame::GetXULPrefSize(nsBoxLayoutState& aState)
 {
-  nsSize size = nsBoxFrame::GetXULPrefSize(aState);  
+  nsSize size = nsBoxFrame::GetXULPrefSize(aState);
   DISPLAY_PREF_SIZE(this, size);
 
   // guarantee that our preferred height doesn't exceed the standard
   // listbox row height
   size.height = std::max(mRect.height, size.height);
   return size;
 }
 
@@ -42,28 +42,28 @@ nsListItemFrame::BuildDisplayListForChil
                                              const nsRect&           aDirtyRect,
                                              const nsDisplayListSet& aLists)
 {
   if (aBuilder->IsForEventDelivery()) {
     if (!mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::allowevents,
                                nsGkAtoms::_true, eCaseMatters))
       return;
   }
-  
+
   nsGridRowLeafFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
 }
 
 // Creation Routine ///////////////////////////////////////////////////////////////////////
 
 already_AddRefed<nsBoxLayout> NS_NewGridRowLeafLayout();
 
 nsIFrame*
 NS_NewListItemFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
 {
   nsCOMPtr<nsBoxLayout> layout = NS_NewGridRowLeafLayout();
   if (!layout) {
     return nullptr;
   }
-  
+
   return new (aPresShell) nsListItemFrame(aContext, false, layout);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsListItemFrame)
--- a/layout/xul/nsMenuBarFrame.cpp
+++ b/layout/xul/nsMenuBarFrame.cpp
@@ -96,17 +96,17 @@ nsMenuBarFrame::SetActive(bool aActiveFl
   }
   else {
     mActiveByKeyboard = false;
     RemoveKeyboardNavigator();
   }
 
   NS_NAMED_LITERAL_STRING(active, "DOMMenuBarActive");
   NS_NAMED_LITERAL_STRING(inactive, "DOMMenuBarInactive");
-  
+
   FireDOMEvent(mIsActive ? active : inactive, mContent);
 
   return NS_OK;
 }
 
 nsMenuFrame*
 nsMenuBarFrame::ToggleMenuActiveState()
 {
@@ -121,24 +121,24 @@ nsMenuBarFrame::ToggleMenuActiveState()
     }
   }
   else {
     // if the menu bar is already selected (eg. mouseover), deselect it
     if (mCurrentMenu)
       mCurrentMenu->SelectMenu(false);
 
     // Set the active menu to be the top left item (e.g., the File menu).
-    // We use an attribute called "menuactive" to track the current 
+    // We use an attribute called "menuactive" to track the current
     // active menu.
     nsMenuFrame* firstFrame = nsXULPopupManager::GetNextMenuItem(this, nullptr, false, false);
     if (firstFrame) {
       // Activate the menu bar
       SetActive(true);
       firstFrame->SelectMenu(true);
-      
+
       // Track this item for keyboard navigation.
       mCurrentMenu = firstFrame;
     }
   }
 
   return nullptr;
 }
 
@@ -314,17 +314,17 @@ nsMenuBarFrame::ChangeMenuItem(nsMenuFra
 
   // check if there's an open context menu, we ignore this
   nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
   if (pm && pm->HasContextMenu(nullptr))
     return NS_OK;
 
   nsIContent* aOldMenu = nullptr;
   nsIContent* aNewMenu = nullptr;
-  
+
   // Unset the current child.
   bool wasOpen = false;
   if (mCurrentMenu) {
     wasOpen = mCurrentMenu->IsOpen();
     mCurrentMenu->SelectMenu(false);
     if (wasOpen) {
       nsMenuPopupFrame* popupFrame = mCurrentMenu->GetPopup();
       if (popupFrame)
--- a/layout/xul/nsMenuBarFrame.h
+++ b/layout/xul/nsMenuBarFrame.h
@@ -33,17 +33,17 @@ public:
   // nsMenuParent interface
   virtual nsMenuFrame* GetCurrentMenuItem() override;
   NS_IMETHOD SetCurrentMenuItem(nsMenuFrame* aMenuItem) override;
   virtual void CurrentMenuIsBeingDestroyed() override;
   NS_IMETHOD ChangeMenuItem(nsMenuFrame* aMenuItem,
                             bool aSelectFirstItem,
                             bool aFromKey) override;
 
-  NS_IMETHOD SetActive(bool aActiveFlag) override; 
+  NS_IMETHOD SetActive(bool aActiveFlag) override;
 
   virtual bool IsMenuBar() override { return true; }
   virtual bool IsContextMenu() override { return false; }
   virtual bool IsActive() override { return mIsActive; }
   virtual bool IsMenu() override { return false; }
   virtual bool IsOpen() override { return true; } // menubars are considered always open
 
   bool IsMenuOpen() { return mCurrentMenu && mCurrentMenu->IsOpen(); }
--- a/layout/xul/nsMenuBarListener.cpp
+++ b/layout/xul/nsMenuBarListener.cpp
@@ -74,17 +74,17 @@ nsMenuBarListener::nsMenuBarListener(nsM
     nsContentUtils::GetWindowRoot(aMenuBarContent->GetComposedDoc());
   mTopWindowEventTarget = topWindowEventTarget.get();
 
   mTopWindowEventTarget->AddSystemEventListener(NS_LITERAL_STRING("deactivate"),
                                                 this, true);
 }
 
 ////////////////////////////////////////////////////////////////////////
-nsMenuBarListener::~nsMenuBarListener() 
+nsMenuBarListener::~nsMenuBarListener()
 {
   MOZ_ASSERT(!mEventTarget,
              "OnDestroyMenuBarFrame() should've alreay been called");
 }
 
 void
 nsMenuBarListener::OnDestroyMenuBarFrame()
 {
@@ -169,17 +169,17 @@ nsMenuBarListener::ToggleMenuActiveState
     if (popupFrame)
       pm->HidePopup(popupFrame->GetContent(), false, false, true, false);
   }
 }
 
 ////////////////////////////////////////////////////////////////////////
 nsresult
 nsMenuBarListener::KeyUp(nsIDOMEvent* aKeyEvent)
-{  
+{
   nsCOMPtr<nsIDOMKeyEvent> keyEvent = do_QueryInterface(aKeyEvent);
   if (!keyEvent) {
     return NS_OK;
   }
 
   InitAccessKey();
 
   //handlers shouldn't be triggered by non-trusted events.
@@ -190,17 +190,17 @@ nsMenuBarListener::KeyUp(nsIDOMEvent* aK
     return NS_OK;
   }
 
   if (mAccessKey && mAccessKeyFocuses)
   {
     bool defaultPrevented = false;
     aKeyEvent->GetDefaultPrevented(&defaultPrevented);
 
-    // On a press of the ALT key by itself, we toggle the menu's 
+    // On a press of the ALT key by itself, we toggle the menu's
     // active/inactive state.
     // Get the ascii key code.
     uint32_t theChar;
     keyEvent->GetKeyCode(&theChar);
 
     if (!defaultPrevented && mAccessKeyDown && !mAccessKeyDownCanceled &&
         (int32_t)theChar == mAccessKey)
     {
@@ -231,17 +231,17 @@ nsMenuBarListener::KeyUp(nsIDOMEvent* aK
 
     bool active = !Destroyed() && mMenuBarFrame->IsActive();
     if (active) {
       aKeyEvent->StopPropagation();
       aKeyEvent->PreventDefault();
       return NS_OK; // I am consuming event
     }
   }
-  
+
   return NS_OK; // means I am NOT consuming event
 }
 
 ////////////////////////////////////////////////////////////////////////
 nsresult
 nsMenuBarListener::KeyPress(nsIDOMEvent* aKeyEvent)
 {
   // if event has already been handled, bail
@@ -307,17 +307,17 @@ nsMenuBarListener::KeyPress(nsIDOMEvent*
 
         // The opened menu will listen next keyup event.
         // Therefore, we should clear the keydown flags here.
         mAccessKeyDown = mAccessKeyDownCanceled = false;
 
         aKeyEvent->StopPropagation();
         aKeyEvent->PreventDefault();
       }
-    }    
+    }
 #ifndef XP_MACOSX
     // Also need to handle F10 specially on Non-Mac platform.
     else if (nativeKeyEvent->mMessage == eKeyPress && keyCode == NS_VK_F10) {
       if ((GetModifiersForAccessKey(keyEvent) & ~MODIFIER_CONTROL) == 0) {
         // The F10 key just went down by itself or with ctrl pressed.
         // In Windows, both of these activate the menu bar.
         mMenuBarFrame->SetActiveByKeyboard();
         ToggleMenuActiveState();
@@ -443,17 +443,17 @@ nsMenuBarListener::OnWindowDeactivated(n
   // Reset the accesskey state because we cannot receive the keyup event for
   // the pressing accesskey.
   mAccessKeyDown = false;
   mAccessKeyDownCanceled = false;
   return NS_OK; // means I am NOT consuming event
 }
 
 ////////////////////////////////////////////////////////////////////////
-nsresult 
+nsresult
 nsMenuBarListener::MouseDown(nsIDOMEvent* aMouseEvent)
 {
   // NOTE: MouseDown method listens all phases
 
   // Even if the mousedown event is canceled, it means the user don't want
   // to activate the menu.  Therefore, we need to record it at capturing (or
   // target) phase.
   if (mAccessKeyDown) {
@@ -491,17 +491,17 @@ nsMenuBarListener::HandleEvent(nsIDOMEve
 {
   // If the menu bar is collapsed, don't do anything.
   if (!mMenuBarFrame->StyleVisibility()->IsVisible()) {
     return NS_OK;
   }
 
   nsAutoString eventType;
   aEvent->GetType(eventType);
-  
+
   if (eventType.EqualsLiteral("keyup")) {
     return KeyUp(aEvent);
   }
   if (eventType.EqualsLiteral("keydown")) {
     return KeyDown(aEvent);
   }
   if (eventType.EqualsLiteral("keypress")) {
     return KeyPress(aEvent);
--- a/layout/xul/nsMenuFrame.cpp
+++ b/layout/xul/nsMenuFrame.cpp
@@ -325,17 +325,17 @@ nsMenuFrame::DestroyFrom(nsIFrame* aDest
   // the pointer to this frame will be cleared from the mediator, but
   // this is done for added safety.
   if (mOpenTimer) {
     mOpenTimer->Cancel();
   }
 
   StopBlinking();
 
-  // Null out the pointer to this frame in the mediator wrapper so that it 
+  // Null out the pointer to this frame in the mediator wrapper so that it
   // doesn't try to interact with a deallocated frame.
   mTimerMediator->ClearFrame();
 
   // if the menu content is just being hidden, it may be made visible again
   // later, so make sure to clear the highlighting.
   mContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::menuactive, false);
 
   // are we our menu parent's current menu item?
@@ -358,20 +358,20 @@ void
 nsMenuFrame::BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                          const nsRect&           aDirtyRect,
                                          const nsDisplayListSet& aLists)
 {
   if (!aBuilder->IsForEventDelivery()) {
     nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
     return;
   }
-    
+
   nsDisplayListCollection set;
   nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, set);
-  
+
   WrapListsInRedirector(aBuilder, set, aLists);
 }
 
 nsresult
 nsMenuFrame::HandleEvent(nsPresContext* aPresContext,
                          WidgetGUIEvent* aEvent,
                          nsEventStatus* aEventStatus)
 {
@@ -530,17 +530,17 @@ nsMenuFrame::HandleEvent(nsPresContext* 
 
       // We're a menu, we're built, we're closed, and no timer has been kicked off.
       mOpenTimer = do_CreateInstance("@mozilla.org/timer;1");
       mOpenTimer->SetTarget(
           mContent->OwnerDoc()->EventTargetFor(TaskCategory::Other));
       mOpenTimer->InitWithCallback(mTimerMediator, menuDelay, nsITimer::TYPE_ONE_SHOT);
     }
   }
-  
+
   return NS_OK;
 }
 
 void
 nsMenuFrame::ToggleMenuState()
 {
   if (IsOpen())
     CloseMenu(false);
@@ -926,17 +926,17 @@ nsMenuFrame::Notify(nsITimer* aTimer)
         break;
       }
     }
   }
 
   return NS_OK;
 }
 
-bool 
+bool
 nsMenuFrame::IsDisabled()
 {
   return mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::disabled,
                                nsGkAtoms::_true, eCaseMatters);
 }
 
 void
 nsMenuFrame::UpdateMenuType()
@@ -965,26 +965,26 @@ nsMenuFrame::UpdateMenuType()
 }
 
 /* update checked-ness for type="checkbox" and type="radio" */
 void
 nsMenuFrame::UpdateMenuSpecialState()
 {
   bool newChecked =
     mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::checked,
-                          nsGkAtoms::_true, eCaseMatters); 
+                          nsGkAtoms::_true, eCaseMatters);
   if (newChecked == mChecked) {
     /* checked state didn't change */
 
     if (mType != eMenuType_Radio)
       return; // only Radio possibly cares about other kinds of change
 
     if (!mChecked || mGroupName.IsEmpty())
       return;                   // no interesting change
-  } else { 
+  } else {
     mChecked = newChecked;
     if (mType != eMenuType_Radio || !mChecked)
       /*
        * Unchecking something requires no further changes, and only
        * menuRadio has to do additional work when checked.
        */
       return;
   }
@@ -1023,20 +1023,20 @@ nsMenuFrame::UpdateMenuSpecialState()
         /* XXX in DEBUG, check to make sure that there aren't two checked items */
         return;
       }
     }
     sib = nsXULPopupManager::GetNextMenuItem(GetParent(), menu, true, true);
     if (sib == firstMenuItem) {
       break;
     }
-  } 
+  }
 }
 
-void 
+void
 nsMenuFrame::BuildAcceleratorText(bool aNotify)
 {
   nsAutoString accelText;
 
   if ((GetStateBits() & NS_STATE_ACCELTEXT_IS_DERIVED) == 0) {
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::acceltext, accelText);
     if (!accelText.IsEmpty())
       return;
@@ -1114,17 +1114,17 @@ nsMenuFrame::BuildAcceleratorText(bool a
       // nothing usable found, bail
       if (accelString.IsEmpty())
         return;
     }
   }
 
   nsAutoString modifiers;
   keyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::modifiers, modifiers);
-  
+
   char* str = ToNewCString(modifiers);
   char* newStr;
   char* token = nsCRT::strtok(str, ", \t", &newStr);
 
   nsAutoString shiftText;
   nsAutoString altText;
   nsAutoString metaText;
   nsAutoString controlText;
@@ -1134,27 +1134,27 @@ nsMenuFrame::BuildAcceleratorText(bool a
   nsContentUtils::GetShiftText(shiftText);
   nsContentUtils::GetAltText(altText);
   nsContentUtils::GetMetaText(metaText);
   nsContentUtils::GetControlText(controlText);
   nsContentUtils::GetOSText(osText);
   nsContentUtils::GetModifierSeparatorText(modifierSeparator);
 
   while (token) {
-      
+
     if (PL_strcmp(token, "shift") == 0)
       accelText += shiftText;
-    else if (PL_strcmp(token, "alt") == 0) 
-      accelText += altText; 
-    else if (PL_strcmp(token, "meta") == 0) 
-      accelText += metaText; 
+    else if (PL_strcmp(token, "alt") == 0)
+      accelText += altText;
+    else if (PL_strcmp(token, "meta") == 0)
+      accelText += metaText;
     else if (PL_strcmp(token, "os") == 0)
-      accelText += osText; 
-    else if (PL_strcmp(token, "control") == 0) 
-      accelText += controlText; 
+      accelText += osText;
+    else if (PL_strcmp(token, "control") == 0)
+      accelText += controlText;
     else if (PL_strcmp(token, "accel") == 0) {
       switch (WidgetInputEvent::AccelModifier()) {
         case MODIFIER_META:
           accelText += metaText;
           break;
         case MODIFIER_OS:
           accelText += osText;
           break;
@@ -1165,17 +1165,17 @@ nsMenuFrame::BuildAcceleratorText(bool a
           accelText += controlText;
           break;
         default:
           MOZ_CRASH(
             "Handle the new result of WidgetInputEvent::AccelModifier()");
           break;
       }
     }
-    
+
     accelText += modifierSeparator;
 
     token = nsCRT::strtok(newStr, ", \t", &newStr);
   }
 
   free(str);
 
   accelText += accelString;
@@ -1362,17 +1362,17 @@ nsMenuFrame::AppendFrames(ChildListID   
         FrameNeedsReflow(this, nsIPresShell::eTreeChange,
                          NS_FRAME_HAS_DIRTY_CHILDREN);
     }
   }
 
   if (aFrameList.IsEmpty())
     return;
 
-  nsBoxFrame::AppendFrames(aListID, aFrameList); 
+  nsBoxFrame::AppendFrames(aListID, aFrameList);
 }
 
 bool
 nsMenuFrame::SizeToPopup(nsBoxLayoutState& aState, nsSize& aSize)
 {
   if (!IsXULCollapsed()) {
     bool widthSet, heightSet;
     nsSize tmpSize(-1, 0);
--- a/layout/xul/nsMenuFrame.h
+++ b/layout/xul/nsMenuFrame.h
@@ -162,17 +162,17 @@ public:
    * @return true if this frame has a popup child frame.
    */
   bool HasPopup() const
   {
     return (GetStateBits() & NS_STATE_MENU_HAS_POPUP_LIST) != 0;
   }
 
 
-  // nsMenuFrame methods 
+  // nsMenuFrame methods
 
   bool IsOnMenuBar() const
   {
     nsMenuParent* menuParent = GetMenuParent();
     return menuParent && menuParent->IsMenuBar();
   }
   bool IsOnActiveMenuBar() const
   {
--- a/layout/xul/nsMenuPopupFrame.cpp
+++ b/layout/xul/nsMenuPopupFrame.cpp
@@ -383,17 +383,17 @@ NS_IMETHODIMP nsXULPopupShownEvent::Run(
   nsMenuPopupFrame* popup = do_QueryFrame(mPopup->GetPrimaryFrame());
   // Set the state to visible if the popup is still open.
   if (popup && popup->IsOpen()) {
     popup->SetPopupState(ePopupShown);
   }
 
   WidgetMouseEvent event(true, eXULPopupShown, nullptr,
                          WidgetMouseEvent::eReal);
-  return EventDispatcher::Dispatch(mPopup, mPresContext, &event);                 
+  return EventDispatcher::Dispatch(mPopup, mPresContext, &event);
 }
 
 NS_IMETHODIMP nsXULPopupShownEvent::HandleEvent(nsIDOMEvent* aEvent)
 {
   nsMenuPopupFrame* popup = do_QueryFrame(mPopup->GetPrimaryFrame());
   nsCOMPtr<nsIDOMEventTarget> eventTarget;
   aEvent->GetTarget(getter_AddRefs(eventTarget));
   // Ignore events not targeted at the popup itself (ie targeted at
@@ -497,17 +497,17 @@ nsMenuPopupFrame::LayoutPopup(nsBoxLayou
         return;
       }
     }
   }
 
   // get the preferred, minimum and maximum size. If the menu is sized to the
   // popup, then the popup's width is the menu's width.
   nsSize prefSize = GetXULPrefSize(aState);
-  nsSize minSize = GetXULMinSize(aState); 
+  nsSize minSize = GetXULMinSize(aState);
   nsSize maxSize = GetXULMaxSize(aState);
 
   if (aSizedToPopup) {
     prefSize.width = aParentMenu->GetRect().width;
   }
   prefSize = BoundsCheck(minSize, prefSize, maxSize);
 
   // if the size changed then set the bounds to be the preferred size
@@ -818,17 +818,17 @@ nsMenuPopupFrame::InitializePopup(nsICon
       InitPositionFromAnchorAlign(anchor, align);
     }
   }
 
   mScreenRect = nsIntRect(-1, -1, 0, 0);
 
   if (aAttributesOverride) {
     // Use |left| and |top| dimension attributes to position the popup if
-    // present, as they may have been persisted. 
+    // present, as they may have been persisted.
     nsAutoString left, top;
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::left, left);
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::top, top);
 
     nsresult err;
     if (!left.IsEmpty()) {
       int32_t x = left.ToInteger(&err);
       if (NS_SUCCEEDED(err))
@@ -1037,28 +1037,28 @@ nsMenuPopupFrame::HidePopup(bool aDesele
 uint32_t
 nsMenuPopupFrame::GetXULLayoutFlags()
 {
   return NS_FRAME_NO_SIZE_VIEW | NS_FRAME_NO_MOVE_VIEW | NS_FRAME_NO_VISIBILITY;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
 // GetRootViewForPopup
-//   Retrieves the view for the popup widget that contains the given frame. 
+//   Retrieves the view for the popup widget that contains the given frame.
 //   If the given frame is not contained by a popup widget, return the
 //   root view of the root viewmanager.
 nsView*
 nsMenuPopupFrame::GetRootViewForPopup(nsIFrame* aStartFrame)
 {
   nsView* view = aStartFrame->GetClosestView();
   NS_ASSERTION(view, "frame must have a closest view!");
   while (view) {
-    // Walk up the view hierarchy looking for a view whose widget has a 
+    // Walk up the view hierarchy looking for a view whose widget has a
     // window type of eWindowType_popup - in other words a popup window
-    // widget. If we find one, this is the view we want. 
+    // widget. If we find one, this is the view we want.
     nsIWidget* widget = view->GetWidget();
     if (widget && widget->WindowType() == eWindowType_popup) {
       return view;
     }
 
     nsView* temp = view->GetParent();
     if (!temp) {
       // Otherwise, we've walked all the way up to the root view and not
@@ -1240,17 +1240,17 @@ nsMenuPopupFrame::SlideOrResize(nscoord&
   nscoord newPos =
     std::max(aScreenBegin, std::min(aScreenEnd - aSize, aScreenPoint));
   *aOffset = newPos - aScreenPoint;
   aScreenPoint = newPos;
   return std::min(aSize, aScreenEnd - aScreenPoint);
 }
 
 nscoord
-nsMenuPopupFrame::FlipOrResize(nscoord& aScreenPoint, nscoord aSize, 
+nsMenuPopupFrame::FlipOrResize(nscoord& aScreenPoint, nscoord aSize,
                                nscoord aScreenBegin, nscoord aScreenEnd,
                                nscoord aAnchorBegin, nscoord aAnchorEnd,
                                nscoord aMarginBegin, nscoord aMarginEnd,
                                nscoord aOffsetForContextMenu, FlipStyle aFlip,
                                bool aEndAligned, bool* aFlipSide)
 {
   // The flip side argument will be set to true if there wasn't room and we
   // flipped to the opposite side.
@@ -1475,17 +1475,17 @@ nsMenuPopupFrame::SetPopupPosition(nsIFr
   bool isNoAutoHide = IsNoAutoHide();
   nsPopupLevel popupLevel = PopupLevel(isNoAutoHide);
 
   if (anchored) {
     // if we are anchored, there are certain things we don't want to do when
     // repositioning the popup to fit on the screen, such as end up positioned
     // over the anchor, for instance a popup appearing over the menu label.
     // When doing this reposition, we want to move the popup to the side with
-    // the most room. The combination of anchor and alignment dictate if we 
+    // the most room. The combination of anchor and alignment dictate if we
     // readjust above/below or to the left/right.
     if (mAnchorContent || mAnchorType == MenuPopupAnchorType_Rect) {
       // move the popup according to the anchor and alignment. This will also
       // tell us which axis the popup is flush against in case we have to move
       // it around later. The AdjustPositionForAnchorAlign method accounts for
       // the popup's margin.
       screenPoint = AdjustPositionForAnchorAlign(anchorRect, hFlip, vFlip);
     }
@@ -1845,17 +1845,17 @@ ConsumeOutsideClicksResult nsMenuPopupFr
   return ConsumeOutsideClicks_True;
 }
 
 // XXXroc this is megalame. Fossicking around for a frame of the right
 // type is a recipe for disaster in the long term.
 nsIScrollableFrame* nsMenuPopupFrame::GetScrollFrame(nsIFrame* aStart)
 {
   if (!aStart)
-    return nullptr;  
+    return nullptr;
 
   // try start frame and siblings
   nsIFrame* currFrame = aStart;
   do {
     nsIScrollableFrame* sf = do_QueryFrame(currFrame);
     if (sf)
       return sf;
     currFrame = currFrame->GetNextSibling();
@@ -1940,17 +1940,17 @@ void nsMenuPopupFrame::ChangeByPage(bool
           if (!lastWasValid) {
             newMenu = menuFrame;
           }
 
           break;
         }
 
         // Assign this item to newMenu. This item will be selected in case we
-        // don't find any more. 
+        // don't find any more.
         lastWasValid = true;
         newMenu = menuFrame;
       }
       else {
         lastWasValid = false;
       }
 
       currentMenu = aIsUp ? currentMenu->GetPrevSibling() :
@@ -2119,19 +2119,19 @@ nsMenuPopupFrame::FindMenuWithShortcut(n
   }
   if (charIndex == stringLength) {
     incrementalString.Truncate(1);
     stringLength = 1;
   }
 
   sLastKeyTime = keyTime;
 
-  // NOTE: If you crashed here due to a bogus |immediateParent| it is 
-  //       possible that the menu whose shortcut is being looked up has 
-  //       been destroyed already.  One strategy would be to 
+  // NOTE: If you crashed here due to a bogus |immediateParent| it is
+  //       possible that the menu whose shortcut is being looked up has
+  //       been destroyed already.  One strategy would be to
   //       setTimeout(<func>,0) as detailed in:
   //       <http://bugzilla.mozilla.org/show_bug.cgi?id=126675#c32>
   nsIFrame* firstMenuItem = nsXULPopupManager::GetNextMenuItem(immediateParent, nullptr, true, false);
   nsIFrame* currFrame = firstMenuItem;
 
   int32_t menuAccessKey = -1;
   nsMenuBarListener::GetMenuAccessKey(&menuAccessKey);
 
@@ -2253,25 +2253,25 @@ nsMenuPopupFrame::GetWidget()
 void
 nsMenuPopupFrame::AttachedDismissalListener()
 {
   mConsumeRollupEvent = PopupBoxObject::ROLLUP_DEFAULT;
 }
 
 // helpers /////////////////////////////////////////////////////////////
 
-nsresult 
+nsresult
 nsMenuPopupFrame::AttributeChanged(int32_t aNameSpaceID,
                                    nsIAtom* aAttribute,
                                    int32_t aModType)
 
 {
   nsresult rv = nsBoxFrame::AttributeChanged(aNameSpaceID, aAttribute,
                                              aModType);
-  
+
   if (aAttribute == nsGkAtoms::left || aAttribute == nsGkAtoms::top)
     MoveToAttributePosition();
 
 #ifndef MOZ_GTK2
   if (aAttribute == nsGkAtoms::noautohide) {
     nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
     if (pm)
       pm->EnableRollup(mContent, !IsNoAutoHide());
@@ -2315,17 +2315,17 @@ nsMenuPopupFrame::AttributeChanged(int32
   }
 
   return rv;
 }
 
 void
 nsMenuPopupFrame::MoveToAttributePosition()
 {
-  // Move the widget around when the user sets the |left| and |top| attributes. 
+  // Move the widget around when the user sets the |left| and |top| attributes.
   // Note that this is not the best way to move the widget, as it results in lots
   // of FE notifications and is likely to be slow as molasses. Use |moveTo| on
   // PopupBoxObject if possible.
   nsAutoString left, top;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::left, left);
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::top, top);
   nsresult err1, err2;
   mozilla::CSSIntPoint pos(left.ToInteger(&err1), top.ToInteger(&err2));
--- a/layout/xul/nsMenuPopupFrame.h
+++ b/layout/xul/nsMenuPopupFrame.h
@@ -182,27 +182,27 @@ public:
   void SetPopupState(nsPopupState aPopupState) { mPopupState = aPopupState; }
 
   NS_IMETHOD SetActive(bool aActiveFlag) override { return NS_OK; } // We don't care.
   virtual bool IsActive() override { return false; }
   virtual bool IsMenuBar() override { return false; }
 
   /*
    * When this popup is open, should clicks outside of it be consumed?
-   * Return true if the popup should rollup on an outside click, 
+   * Return true if the popup should rollup on an outside click,
    * but consume that click so it can't be used for anything else.
-   * Return false to allow clicks outside the popup to activate content 
+   * Return false to allow clicks outside the popup to activate content
    * even when the popup is open.
    * ---------------------------------------------------------------------
-   * 
+   *
    * Should clicks outside of a popup be eaten?
    *
    *       Menus     Autocomplete     Comboboxes
    * Mac     Eat           No              Eat
-   * Win     No            No              Eat     
+   * Win     No            No              Eat
    * Unix    Eat           No              Eat
    *
    */
   ConsumeOutsideClicksResult ConsumeOutsideClicks();
 
   virtual bool IsContextMenu() override { return mIsContextMenu; }
 
   virtual bool MenuClosed() override { return true; }
@@ -229,17 +229,17 @@ public:
   bool HasRemoteContent() const;
 
   // returns true if the popup is a panel with the noautohide attribute set to
   // true. These panels do not roll up automatically.
   bool IsNoAutoHide() const;
 
   nsPopupLevel PopupLevel() const
   {
-    return PopupLevel(IsNoAutoHide()); 
+    return PopupLevel(IsNoAutoHide());
   }
 
   // Ensure that a widget has already been created for this view, and create
   // one if it hasn't. If aRecreate is true, destroys any existing widget and
   // creates a new one, regardless of whether one has already been created.
   void EnsureWidget(bool aRecreate = false);
 
   nsresult CreateWidgetForView(nsView* aView);
@@ -485,17 +485,17 @@ protected:
   //   aScreenEnd - the right or bottom edge of the screen
   //   aAnchorBegin - the left or top edge of the anchor rectangle
   //   aAnchorEnd - the right or bottom edge of the anchor rectangle
   //   aMarginBegin - the left or top margin of the popup
   //   aMarginEnd - the right or bottom margin of the popup
   //   aOffsetForContextMenu - the additional offset to add for context menus
   //   aFlip - how to flip or resize the popup when there isn't space
   //   aFlipSide - pointer to where current flip mode is stored
-  nscoord FlipOrResize(nscoord& aScreenPoint, nscoord aSize, 
+  nscoord FlipOrResize(nscoord& aScreenPoint, nscoord aSize,
                        nscoord aScreenBegin, nscoord aScreenEnd,
                        nscoord aAnchorBegin, nscoord aAnchorEnd,
                        nscoord aMarginBegin, nscoord aMarginEnd,
                        nscoord aOffsetForContextMenu, FlipStyle aFlip,
                        bool aIsOnEnd, bool* aFlipSide);
 
   // check if the popup can fit into the available space by "sliding" (i.e.,
   // by having the anchor arrow slide along one axis and only resizing if that
--- a/layout/xul/nsResizerFrame.cpp
+++ b/layout/xul/nsResizerFrame.cpp
@@ -99,17 +99,17 @@ nsResizerFrame::HandleEvent(nsPresContex
 
           // ask the widget implementation to begin a resize drag if it can
           Direction direction = GetDirection();
           nsresult rv = aEvent->mWidget->BeginResizeDrag(aEvent,
                         direction.mHorizontal, direction.mVertical);
           // for native drags, don't set the fields below
           if (rv != NS_ERROR_NOT_IMPLEMENTED)
              break;
-             
+
           // if there's no native resize support, we need to do window
           // resizing ourselves
           window->GetPositionAndSize(&mMouseDownRect.x, &mMouseDownRect.y,
                                      &mMouseDownRect.width, &mMouseDownRect.height);
         }
 
         // remember current mouse coordinates
         LayoutDeviceIntPoint refPoint;
--- a/layout/xul/nsResizerFrame.h
+++ b/layout/xul/nsResizerFrame.h
@@ -17,17 +17,17 @@ protected:
   struct Direction {
     int8_t mHorizontal;
     int8_t mVertical;
   };
 
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsResizerFrame)
 
-  friend nsIFrame* NS_NewResizerFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);  
+  friend nsIFrame* NS_NewResizerFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
   explicit nsResizerFrame(nsStyleContext* aContext);
 
   virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
 
   virtual void MouseClicked(mozilla::WidgetMouseEvent* aEvent) override;
--- a/layout/xul/nsRootBoxFrame.cpp
+++ b/layout/xul/nsRootBoxFrame.cpp
@@ -81,17 +81,17 @@ public:
 
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
     // Override bogus IsFrameOfType in nsBoxFrame.
     if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced))
       return false;
     return nsBoxFrame::IsFrameOfType(aFlags);
   }
-  
+
 #ifdef DEBUG_FRAME_DUMP
   virtual nsresult GetFrameName(nsAString& aResult) const override;
 #endif
 
   nsPopupSetFrame* mPopupSetFrame;
 
 protected:
   nsIContent* mDefaultTooltip;
@@ -253,18 +253,18 @@ nsRootBoxFrame::AddTooltipSupport(nsICon
 
   return listener->AddTooltipSupport(aNode);
 }
 
 nsresult
 nsRootBoxFrame::RemoveTooltipSupport(nsIContent* aNode)
 {
   // XXjh yuck, I'll have to implement a way to get at
-  // the tooltip listener for a given node to make 
-  // this work.  Not crucial, we aren't removing 
+  // the tooltip listener for a given node to make
+  // this work.  Not crucial, we aren't removing
   // tooltips from any nodes in the app just yet.
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_QUERYFRAME_HEAD(nsRootBoxFrame)
   NS_QUERYFRAME_ENTRY(nsIRootBox)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
--- a/layout/xul/nsScrollBoxFrame.cpp
+++ b/layout/xul/nsScrollBoxFrame.cpp
@@ -38,17 +38,17 @@ public:
 
   NS_IMETHOD HandleRelease(nsPresContext* aPresContext,
                            WidgetGUIEvent* aEvent,
                            nsEventStatus* aEventStatus) override;
 
 protected:
   explicit nsAutoRepeatBoxFrame(nsStyleContext* aContext):
     nsButtonBoxFrame(aContext, kClassID) {}
-  
+
   void StartRepeat() {
     if (IsActivatedOnHover()) {
       // No initial delay on hover.
       nsRepeatService::GetInstance()->Start(Notify, this,
                                             mContent->OwnerDoc(),
                                             NS_LITERAL_CSTRING("DoMouseClick"),
                                             0);
     } else {
@@ -61,33 +61,33 @@ protected:
     nsRepeatService::GetInstance()->Stop(Notify, this);
   }
   void Notify();
   static void Notify(void* aData) {
     static_cast<nsAutoRepeatBoxFrame*>(aData)->Notify();
   }
 
   bool mTrustedEvent;
-  
+
   bool IsActivatedOnHover();
 };
 
 nsIFrame*
 NS_NewAutoRepeatBoxFrame (nsIPresShell* aPresShell, nsStyleContext* aContext)
 {
   return new (aPresShell) nsAutoRepeatBoxFrame(aContext);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsAutoRepeatBoxFrame)
 
 nsresult
 nsAutoRepeatBoxFrame::HandleEvent(nsPresContext* aPresContext,
                                   WidgetGUIEvent* aEvent,
                                   nsEventStatus* aEventStatus)
-{  
+{
   NS_ENSURE_ARG_POINTER(aEventStatus);
   if (nsEventStatus_eConsumeNoDefault == *aEventStatus) {
     return NS_OK;
   }
 
   switch(aEvent->mMessage) {
     // repeat mode may be "hover" for repeating while the mouse is hovering
     // over the element, otherwise repetition is done while the element is
@@ -115,17 +115,17 @@ nsAutoRepeatBoxFrame::HandleEvent(nsPres
         return nsBoxFrame::HandleEvent(aPresContext, mouseEvent, aEventStatus);
       }
       break;
     }
 
     default:
       break;
   }
-     
+
   return nsButtonBoxFrame::HandleEvent(aPresContext, aEvent, aEventStatus);
 }
 
 NS_IMETHODIMP
 nsAutoRepeatBoxFrame::HandlePress(nsPresContext* aPresContext,
                                   WidgetGUIEvent* aEvent,
                                   nsEventStatus* aEventStatus)
 {
@@ -133,17 +133,17 @@ nsAutoRepeatBoxFrame::HandlePress(nsPres
     StartRepeat();
     mTrustedEvent = aEvent->IsTrusted();
     DoMouseClick(aEvent, mTrustedEvent);
   }
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsAutoRepeatBoxFrame::HandleRelease(nsPresContext* aPresContext,
                                     WidgetGUIEvent* aEvent,
                                     nsEventStatus* aEventStatus)
 {
   if (!IsActivatedOnHover()) {
     StopRepeat();
   }
   return NS_OK;
--- a/layout/xul/nsScrollbarButtonFrame.cpp
+++ b/layout/xul/nsScrollbarButtonFrame.cpp
@@ -40,17 +40,17 @@ NS_NewScrollbarButtonFrame (nsIPresShell
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsScrollbarButtonFrame)
 
 nsresult
 nsScrollbarButtonFrame::HandleEvent(nsPresContext* aPresContext,
                                     WidgetGUIEvent* aEvent,
                                     nsEventStatus* aEventStatus)
-{  
+{
   NS_ENSURE_ARG_POINTER(aEventStatus);
 
   // If a web page calls event.preventDefault() we still want to
   // scroll when scroll arrow is clicked. See bug 511075.
   if (!mContent->IsInNativeAnonymousSubtree() &&
       nsEventStatus_eConsumeNoDefault == *aEventStatus) {
     return NS_OK;
   }
@@ -108,17 +108,17 @@ nsScrollbarButtonFrame::HandleButtonPres
   }
 
   // get the scrollbar control
   nsIFrame* scrollbar;
   GetParentWithTag(nsGkAtoms::scrollbar, this, scrollbar);
 
   if (scrollbar == nullptr)
     return false;
- 
+
   static nsIContent::AttrValuesArray strings[] = { &nsGkAtoms::increment,
                                                    &nsGkAtoms::decrement,
                                                    nullptr };
   int32_t index = mContent->FindAttrValueIn(kNameSpaceID_None,
                                             nsGkAtoms::type,
                                             strings, eCaseMatters);
   int32_t direction;
   if (index == 0)
@@ -182,17 +182,17 @@ nsScrollbarButtonFrame::HandleButtonPres
     }
   }
   if (repeat) {
     StartRepeat();
   }
   return true;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsScrollbarButtonFrame::HandleRelease(nsPresContext* aPresContext,
                                       WidgetGUIEvent* aEvent,
                                       nsEventStatus* aEventStatus)
 {
   nsIPresShell::SetCapturingContent(nullptr, 0);
   // we're not active anymore
   mContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::active, true);
   StopRepeat();
@@ -252,17 +252,17 @@ nsScrollbarButtonFrame::GetChildWithTag(
          result = childFrame;
 
          return NS_OK;
        }
     }
 
      // recursive search the child
      GetChildWithTag(atom, childFrame, result);
-     if (result != nullptr) 
+     if (result != nullptr)
        return NS_OK;
   }
 
   result = nullptr;
   return NS_OK;
 }
 
 nsresult
--- a/layout/xul/nsScrollbarButtonFrame.h
+++ b/layout/xul/nsScrollbarButtonFrame.h
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   This class lays out its children either vertically or horizontally
- 
+
 **/
 
 #ifndef nsScrollbarButtonFrame_h___
 #define nsScrollbarButtonFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsButtonBoxFrame.h"
 #include "nsITimer.h"
@@ -71,13 +71,13 @@ protected:
   }
   void StopRepeat() {
     nsRepeatService::GetInstance()->Stop(Notify, this);
   }
   void Notify();
   static void Notify(void* aData) {
     static_cast<nsScrollbarButtonFrame*>(aData)->Notify();
   }
-  
+
   bool mCursorOnThis;
 };
 
 #endif
--- a/layout/xul/nsScrollbarFrame.cpp
+++ b/layout/xul/nsScrollbarFrame.cpp
@@ -106,25 +106,25 @@ NS_IMETHODIMP
 nsScrollbarFrame::HandleMultiplePress(nsPresContext* aPresContext,
                                       WidgetGUIEvent* aEvent,
                                       nsEventStatus* aEventStatus,
                                       bool aControlHeld)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsScrollbarFrame::HandleDrag(nsPresContext* aPresContext,
                              WidgetGUIEvent* aEvent,
                              nsEventStatus* aEventStatus)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsScrollbarFrame::HandleRelease(nsPresContext* aPresContext,
                                 WidgetGUIEvent* aEvent,
                                 nsEventStatus* aEventStatus)
 {
   return NS_OK;
 }
 
 void
--- a/layout/xul/nsSliderFrame.cpp
+++ b/layout/xul/nsSliderFrame.cpp
@@ -326,17 +326,17 @@ nsSliderFrame::BuildDisplayList(nsDispla
 {
   if (aBuilder->IsForEventDelivery() && isDraggingThumb()) {
     // This is EVIL, we shouldn't be messing with event delivery just to get
     // thumb mouse drag events to arrive at the slider!
     aLists.Outlines()->AppendNewToTop(new (aBuilder)
       nsDisplayEventReceiver(aBuilder, this));
     return;
   }
-  
+
   nsBoxFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
 }
 
 static bool
 UsesCustomScrollbarMediator(nsIFrame* scrollbarBox) {
   if (nsScrollbarFrame* scrollbarFrame = do_QueryFrame(scrollbarBox)) {
     if (nsIScrollbarMediator* mediator = scrollbarFrame->GetScrollbarMediator()) {
       nsIScrollableFrame* scrollFrame = do_QueryFrame(mediator);
@@ -468,17 +468,17 @@ nsSliderFrame::BuildDisplayListForChildr
                                           thumbLength,
                                           isAsyncDraggable,
                                           sliderTrackStart,
                                           sliderTrackLength}));
 
       return;
     }
   }
-  
+
   nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
 }
 
 NS_IMETHODIMP
 nsSliderFrame::DoXULLayout(nsBoxLayoutState& aState)
 {
   // get the thumb should be our only child
   nsIFrame* thumbBox = nsBox::GetChildXULBox(this);
@@ -888,17 +888,17 @@ nsSliderFrame::CurrentPositionChanged()
         new nsValueChangedRunnable(sliderListener, nsGkAtoms::curpos, mCurPos, mUserChanged));
     }
   }
 }
 
 static void UpdateAttribute(nsIContent* aScrollbar, nscoord aNewPos, bool aNotify, bool aIsSmooth) {
   nsAutoString str;
   str.AppendInt(aNewPos);
-  
+
   if (aIsSmooth) {
     aScrollbar->SetAttr(kNameSpaceID_None, nsGkAtoms::smooth, NS_LITERAL_STRING("true"), false);
   }
   aScrollbar->SetAttr(kNameSpaceID_None, nsGkAtoms::curpos, str, aNotify);
   if (aIsSmooth) {
     aScrollbar->UnsetAttr(kNameSpaceID_None, nsGkAtoms::smooth, false);
   }
 }
@@ -909,25 +909,25 @@ static void UpdateAttribute(nsIContent* 
 void
 nsSliderFrame::SetCurrentThumbPosition(nsIContent* aScrollbar, nscoord aNewThumbPos,
                                        bool aIsSmooth, bool aMaySnap)
 {
   nsRect crect;
   GetXULClientRect(crect);
   nscoord offset = IsXULHorizontal() ? crect.x : crect.y;
   int32_t newPos = NSToIntRound((aNewThumbPos - offset) / mRatio);
-  
+
   if (aMaySnap && mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::snap,
                                         nsGkAtoms::_true, eCaseMatters)) {
     // If snap="true", then the slider may only be set to min + (increment * x).
     // Otherwise, the slider may be set to any positive integer.
     int32_t increment = GetIncrement(aScrollbar);
     newPos = NSToIntRound(newPos / float(increment)) * increment;
   }
-  
+
   SetCurrentPosition(aScrollbar, newPos, aIsSmooth);
 }
 
 // Use this function when you know the target scroll position of the scrolled content.
 // aNewPos should be passed to this function as a position as if the minpos is 0.
 // That is, the minpos will be added to the position by this function. In a reverse
 // direction slider, the newpos should be the distance from the end.
 void
@@ -1422,29 +1422,29 @@ nsSliderFrame::HandlePress(nsPresContext
 
   nsIFrame* thumbFrame = mFrames.FirstChild();
   if (!thumbFrame) // display:none?
     return NS_OK;
 
   if (mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::disabled,
                             nsGkAtoms::_true, eCaseMatters))
     return NS_OK;
-  
+
   nsRect thumbRect = thumbFrame->GetRect();
-  
+
   nscoord change = 1;
   nsPoint eventPoint;
   if (!GetEventPoint(aEvent, eventPoint)) {
     return NS_OK;
   }
 
   mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
       (uint32_t) ScrollInputMethod::MainThreadScrollbarTrackClick);
 
-  if (IsXULHorizontal() ? eventPoint.x < thumbRect.x 
+  if (IsXULHorizontal() ? eventPoint.x < thumbRect.x
                         : eventPoint.y < thumbRect.y)
     change = -1;
 
   mChange = change;
   DragThumb(true);
   // On Linux we want to keep scrolling in the direction indicated by |change|
   // until the mouse is released. On the other platforms we want to stop
   // scrolling as soon as the scrollbar thumb has reached the current mouse
--- a/layout/xul/nsSliderFrame.h
+++ b/layout/xul/nsSliderFrame.h
@@ -64,17 +64,17 @@ public:
 
   virtual void BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                            const nsRect&           aDirtyRect,
                                            const nsDisplayListSet& aLists) override;
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
- 
+
   virtual nsresult AttributeChanged(int32_t aNameSpaceID,
                                     nsIAtom* aAttribute,
                                     int32_t aModType) override;
 
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         asPrevInFlow) override;
 
@@ -173,17 +173,17 @@ private:
   void StopRepeat() {
     nsRepeatService::GetInstance()->Stop(Notify, this);
   }
   void Notify();
   static void Notify(void* aData) {
     (static_cast<nsSliderFrame*>(aData))->Notify();
   }
   void PageScroll(nscoord aChange);
- 
+
   nsPoint mDestinationPoint;
   RefPtr<nsSliderMediator> mMediator;
 
   float mRatio;
 
   nscoord mDragStart;
   nscoord mThumbStart;
 
--- a/layout/xul/nsSplitterFrame.cpp
+++ b/layout/xul/nsSplitterFrame.cpp
@@ -139,17 +139,17 @@ nsSplitterFrameInner::GetResizeBefore()
                                                 nsGkAtoms::resizebefore,
                                                 strings, eCaseMatters)) {
     case 0: return Farthest;
     case 1: return Flex;
   }
   return Closest;
 }
 
-nsSplitterFrameInner::~nsSplitterFrameInner() 
+nsSplitterFrameInner::~nsSplitterFrameInner()
 {
 }
 
 nsSplitterFrameInner::ResizeType
 nsSplitterFrameInner::GetResizeAfter()
 {
   static nsIContent::AttrValuesArray strings[] =
     {&nsGkAtoms::farthest, &nsGkAtoms::flex, &nsGkAtoms::grow, nullptr};
@@ -242,17 +242,17 @@ nsresult
 nsSplitterFrame::AttributeChanged(int32_t aNameSpaceID,
                                   nsIAtom* aAttribute,
                                   int32_t aModType)
 {
   nsresult rv = nsBoxFrame::AttributeChanged(aNameSpaceID, aAttribute,
                                              aModType);
   // if the alignment changed. Let the grippy know
   if (aAttribute == nsGkAtoms::align) {
-    // tell the slider its attribute changed so it can 
+    // tell the slider its attribute changed so it can
     // update itself
     nsIFrame* grippy = nullptr;
     nsScrollbarButtonFrame::GetChildWithTag(nsGkAtoms::grippy, this, grippy);
     if (grippy)
       grippy->AttributeChanged(aNameSpaceID, aAttribute, aModType);
   } else if (aAttribute == nsGkAtoms::state) {
     mInner->UpdateState();
   }
@@ -299,17 +299,17 @@ nsSplitterFrame::Init(nsIContent*       
   mInner->mState = nsSplitterFrameInner::Open;
   mInner->AddListener();
   mInner->mParentBox = nullptr;
 }
 
 NS_IMETHODIMP
 nsSplitterFrame::DoXULLayout(nsBoxLayoutState& aState)
 {
-  if (GetStateBits() & NS_FRAME_FIRST_REFLOW) 
+  if (GetStateBits() & NS_FRAME_FIRST_REFLOW)
   {
     mInner->mParentBox = nsBox::GetParentXULBox(this);
     mInner->UpdateState();
   }
 
   return nsBoxFrame::DoXULLayout(aState);
 }
 
@@ -359,17 +359,17 @@ nsSplitterFrame::HandleRelease(nsPresCon
 }
 
 void
 nsSplitterFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                   const nsRect&           aDirtyRect,
                                   const nsDisplayListSet& aLists)
 {
   nsBoxFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-  
+
   // if the mouse is captured always return us as the frame.
   if (mInner->mDragging)
   {
     // XXX It's probably better not to check visibility here, right?
     aLists.Outlines()->AppendNewToTop(new (aBuilder)
       nsDisplayEventReceiver(aBuilder, this));
     return;
   }
@@ -383,20 +383,20 @@ nsSplitterFrame::HandleEvent(nsPresConte
   NS_ENSURE_ARG_POINTER(aEventStatus);
   if (nsEventStatus_eConsumeNoDefault == *aEventStatus) {
     return NS_OK;
   }
 
   AutoWeakFrame weakFrame(this);
   RefPtr<nsSplitterFrameInner> inner(mInner);
   switch (aEvent->mMessage) {
-    case eMouseMove: 
+    case eMouseMove:
       inner->MouseDrag(aPresContext, aEvent);
       break;
-  
+
     case eMouseUp:
       if (aEvent->AsMouseEvent()->button == WidgetMouseEvent::eLeftButton) {
         inner->MouseUp(aPresContext, aEvent);
       }
       break;
 
     default:
       break;
@@ -410,17 +410,17 @@ void
 nsSplitterFrameInner::MouseUp(nsPresContext* aPresContext,
                               WidgetGUIEvent* aEvent)
 {
   if (mDragging && mOuter) {
     AdjustChildren(aPresContext);
     AddListener();
     nsIPresShell::SetCapturingContent(nullptr, 0); // XXXndeakin is this needed?
     mDragging = false;
-    State newState = GetState(); 
+    State newState = GetState();
     // if the state is dragging then make it Open.
     if (newState == Dragging)
       mOuter->mContent->SetAttr(kNameSpaceID_None, nsGkAtoms::state, EmptyString(), true);
 
     mPressed = false;
 
     // if we dragged then fire a command event.
     if (mDidDrag) {
@@ -461,24 +461,24 @@ nsSplitterFrameInner::MouseDrag(nsPresCo
     //printf("Diff=%d\n", pos);
 
     ResizeType resizeAfter  = GetResizeAfter();
 
     bool bounded;
 
     if (resizeAfter == nsSplitterFrameInner::Grow)
       bounded = false;
-    else 
+    else
       bounded = true;
 
     int i;
-    for (i=0; i < mChildInfosBeforeCount; i++) 
+    for (i=0; i < mChildInfosBeforeCount; i++)
       mChildInfosBefore[i].changed = mChildInfosBefore[i].current;
 
-    for (i=0; i < mChildInfosAfterCount; i++) 
+    for (i=0; i < mChildInfosAfterCount; i++)
       mChildInfosAfter[i].changed = mChildInfosAfter[i].current;
 
     nscoord oldPos = pos;
 
     ResizeChildTo(pos,
                   mChildInfosBefore.get(), mChildInfosAfter.get(),
                   mChildInfosBeforeCount, mChildInfosAfterCount, bounded);
 
@@ -501,17 +501,17 @@ nsSplitterFrameInner::MouseDrag(nsPresCo
     // if we are in a collapsed position
     if (isCollapsedBefore || isCollapsedAfter)
     {
       // and we are not collapsed then collapse
       if (currentState == Dragging) {
         if (pastEnd)
         {
           //printf("Collapse right\n");
-          if (supportsAfter) 
+          if (supportsAfter)
           {
             nsCOMPtr<nsIContent> outer = mOuter->mContent;
             outer->SetAttr(kNameSpaceID_None, nsGkAtoms::substate,
                            NS_LITERAL_STRING("after"),
                            true);
             outer->SetAttr(kNameSpaceID_None, nsGkAtoms::state,
                            NS_LITERAL_STRING("collapsed"),
                            true);
@@ -585,28 +585,28 @@ nsSplitterFrameInner::HandleEvent(nsIDOM
     return MouseMove(aEvent);
 
   NS_ABORT();
   return NS_OK;
 }
 
 nsresult
 nsSplitterFrameInner::MouseUp(nsIDOMEvent* aMouseEvent)
-{  
+{
   NS_ENSURE_TRUE(mOuter, NS_OK);
   mPressed = false;
 
   nsIPresShell::SetCapturingContent(nullptr, 0);
 
   return NS_OK;
 }
 
 nsresult
 nsSplitterFrameInner::MouseDown(nsIDOMEvent* aMouseEvent)
-{  
+{
   NS_ENSURE_TRUE(mOuter, NS_OK);
   nsCOMPtr<nsIDOMMouseEvent> mouseEvent(do_QueryInterface(aMouseEvent));
   if (!mouseEvent)
     return NS_OK;
 
   int16_t button = 0;
   mouseEvent->GetButton(&button);
 
@@ -642,39 +642,39 @@ nsSplitterFrameInner::MouseDown(nsIDOMEv
   nsBoxLayoutState state(outerPresContext, rc);
   mCurrentPos = 0;
   mPressed = true;
 
   mDidDrag = false;
 
   EnsureOrient();
   bool isHorizontal = !mOuter->IsXULHorizontal();
-  
+
   ResizeType resizeBefore = GetResizeBefore();
   ResizeType resizeAfter  = GetResizeAfter();
 
   mChildInfosBefore = MakeUnique<nsSplitterInfo[]>(childCount);
   mChildInfosAfter  = MakeUnique<nsSplitterInfo[]>(childCount);
 
   // create info 2 lists. One of the children before us and one after.
   int32_t count = 0;
   mChildInfosBeforeCount = 0;
   mChildInfosAfterCount = 0;
 
   nsIFrame* childBox = nsBox::GetChildXULBox(mParentBox);
 
-  while (nullptr != childBox) 
-  { 
+  while (nullptr != childBox)
+  {
     nsIContent* content = childBox->GetContent();
     nsIDocument* doc = content->OwnerDoc();
     int32_t dummy;
     nsIAtom* atom = doc->BindingManager()->ResolveTag(content, &dummy);
 
     // skip over any splitters
-    if (atom != nsGkAtoms::splitter) { 
+    if (atom != nsGkAtoms::splitter) {
         nsSize prefSize = childBox->GetXULPrefSize(state);
         nsSize minSize = childBox->GetXULMinSize(state);
         nsSize maxSize = nsBox::BoundsCheckMinMax(minSize, childBox->GetXULMaxSize(state));
         prefSize = nsBox::BoundsCheck(minSize, prefSize, maxSize);
 
         mOuter->AddMargin(childBox, minSize);
         mOuter->AddMargin(childBox, prefSize);
         mOuter->AddMargin(childBox, maxSize);
@@ -706,19 +706,19 @@ nsSplitterFrameInner::MouseDown(nsIDOMEv
                 mChildInfosAfter[mChildInfosAfterCount].min     = isHorizontal ? minSize.width : minSize.height;
                 mChildInfosAfter[mChildInfosAfterCount].max     = isHorizontal ? maxSize.width : maxSize.height;
                 mChildInfosAfter[mChildInfosAfterCount].current = isHorizontal ? r.width : r.height;
                 mChildInfosAfter[mChildInfosAfterCount].flex    = flex;
                 mChildInfosAfter[mChildInfosAfterCount].index   = count;
                 mChildInfosAfter[mChildInfosAfterCount].changed = mChildInfosAfter[mChildInfosAfterCount].current;
                 mChildInfosAfterCount++;
             }
-        } 
+        }
     }
-    
+
     childBox = nsBox::GetNextXULBox(childBox);
     count++;
   }
 
   if (!mParentBox->IsXULNormalDirection()) {
     // The before array is really the after array, and the order needs to be reversed.
     // First reverse both arrays.
     Reverse(mChildInfosBefore, mChildInfosBeforeCount);
@@ -761,17 +761,17 @@ nsSplitterFrameInner::MouseDown(nsIDOMEv
 
   nsIPresShell::SetCapturingContent(mOuter->GetContent(), CAPTURE_IGNOREALLOWED);
 
   return NS_OK;
 }
 
 nsresult
 nsSplitterFrameInner::MouseMove(nsIDOMEvent* aMouseEvent)
-{  
+{
   NS_ENSURE_TRUE(mOuter, NS_OK);
   if (!mPressed)
     return NS_OK;
 
   if (mDragging)
     return NS_OK;
 
   nsCOMPtr<nsIDOMEventListener> kungfuDeathGrip(this);
@@ -828,17 +828,17 @@ nsSplitterFrameInner::UpdateState()
   //   CollapsedBefore -> Open
   //   CollapsedBefore -> Dragging
   //   CollapsedAfter  -> Open
   //   CollapsedAfter  -> Dragging
   //   Dragging        -> Open
   //   Dragging        -> CollapsedBefore (auto collapse)
   //   Dragging        -> CollapsedAfter (auto collapse)
 
-  State newState = GetState(); 
+  State newState = GetState();
 
   if (newState == mState) {
     // No change.
     return;
   }
 
   if ((SupportsCollapseDirection(Before) || SupportsCollapseDirection(After)) &&
       mOuter->GetParent()->IsXULBoxFrame()) {
@@ -923,17 +923,17 @@ nsSplitterFrameInner::AdjustChildren(nsP
   nsIFrame* child =  nsBox::GetChildXULBox(mOuter);
   while(child)
   {
     SetPreferredSize(state, child, onePixel, aIsHorizontal, nullptr);
     child = nsBox::GetNextXULBox(child);
   }
 
   // now set our changed widths.
-  for (int i=0; i < aCount; i++) 
+  for (int i=0; i < aCount; i++)
   {
     nscoord   pref       = aChildInfos[i].changed;
     nsIFrame* childBox     = GetChildBoxForContent(mParentBox, aChildInfos[i].childElem);
 
     if (childBox) {
       SetPreferredSize(state, childBox, onePixel, aIsHorizontal, &pref);
     }
   }
@@ -942,17 +942,17 @@ nsSplitterFrameInner::AdjustChildren(nsP
 void
 nsSplitterFrameInner::SetPreferredSize(nsBoxLayoutState& aState, nsIFrame* aChildBox, nscoord aOnePixel, bool aIsHorizontal, nscoord* aSize)
 {
   nsRect rect(aChildBox->GetRect());
   nscoord pref = 0;
 
   if (!aSize)
   {
-    if (aIsHorizontal) 
+    if (aIsHorizontal)
       pref = rect.width;
     else
       pref = rect.height;
   } else {
     pref = *aSize;
   }
 
   nsMargin margin(0,0,0,0);
@@ -980,25 +980,25 @@ nsSplitterFrameInner::SetPreferredSize(n
   AutoWeakFrame weakBox(aChildBox);
   content->SetAttr(kNameSpaceID_None, attribute, prefValue, true);
   ENSURE_TRUE(weakBox.IsAlive());
   aState.PresShell()->FrameNeedsReflow(aChildBox, nsIPresShell::eStyleChange,
                                        NS_FRAME_IS_DIRTY);
 }
 
 
-void 
+void
 nsSplitterFrameInner::AddRemoveSpace(nscoord aDiff,
                                     nsSplitterInfo* aChildInfos,
                                     int32_t aCount,
                                     int32_t& aSpaceLeft)
 {
   aSpaceLeft = 0;
 
-  for (int i=0; i < aCount; i++) {   
+  for (int i=0; i < aCount; i++) {
     nscoord min    = aChildInfos[i].min;
     nscoord max    = aChildInfos[i].max;
     nscoord& c     = aChildInfos[i].changed;
 
     // figure our how much space to add or remove
     if (c + aDiff < min) {
       aDiff += (c - min);
       c = min;
--- a/layout/xul/nsSplitterFrame.h
+++ b/layout/xul/nsSplitterFrame.h
@@ -66,17 +66,17 @@ public:
   virtual nsresult HandleEvent(nsPresContext* aPresContext,
                                mozilla::WidgetGUIEvent* aEvent,
                                nsEventStatus* aEventStatus) override;
 
   virtual void BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                 const nsRect&           aDirtyRect,
                                 const nsDisplayListSet& aLists) override;
 
-  virtual void GetInitialOrientation(bool& aIsHorizontal) override; 
+  virtual void GetInitialOrientation(bool& aIsHorizontal) override;
 
 private:
 
   friend class nsSplitterFrameInner;
   nsSplitterFrameInner* mInner;
 
 }; // class nsSplitterFrame
 
--- a/layout/xul/nsSprocketLayout.h
+++ b/layout/xul/nsSprocketLayout.h
@@ -85,58 +85,58 @@ public:
   static void AddLargestSize(nsSize& aSize, const nsSize& aSizeToAdd, bool aIsHorizontal);
   static void AddSmallestSize(nsSize& aSize, const nsSize& aSizeToAdd, bool aIsHorizontal);
   static void AddCoord(nscoord& aCoord, nscoord aCoordToAdd);
 
 protected:
 
 
   void ComputeChildsNextPosition(nsIFrame* aBox,
-                                 const nscoord& aCurX, 
-                                 const nscoord& aCurY, 
-                                 nscoord& aNextX, 
-                                 nscoord& aNextY, 
+                                 const nscoord& aCurX,
+                                 const nscoord& aCurY,
+                                 nscoord& aNextX,
+                                 nscoord& aNextY,
                                  const nsRect& aChildSize);
 
   void ChildResized(nsIFrame* aBox,
-                    nsBoxLayoutState& aState, 
+                    nsBoxLayoutState& aState,
                     nsIFrame* aChild,
-                    nsBoxSize* aChildBoxSize, 
-                    nsComputedBoxSize* aChildComputedBoxSize, 
-                    nsBoxSize* aBoxSizes, 
-                    nsComputedBoxSize* aComputedBoxSizes, 
-                    const nsRect& aChildLayoutRect, 
-                    nsRect& aChildActualRect, 
-                    nsRect& aContainingRect, 
-                    int32_t aFlexes, 
+                    nsBoxSize* aChildBoxSize,
+                    nsComputedBoxSize* aChildComputedBoxSize,
+                    nsBoxSize* aBoxSizes,
+                    nsComputedBoxSize* aComputedBoxSizes,
+                    const nsRect& aChildLayoutRect,
+                    nsRect& aChildActualRect,
+                    nsRect& aContainingRect,
+                    int32_t aFlexes,
                     bool& aFinished);
 
   void AlignChildren(nsIFrame* aBox,
                      nsBoxLayoutState& aState);
 
-  virtual void ComputeChildSizes(nsIFrame* aBox, 
-                         nsBoxLayoutState& aState, 
-                         nscoord& aGivenSize, 
-                         nsBoxSize* aBoxSizes, 
+  virtual void ComputeChildSizes(nsIFrame* aBox,
+                         nsBoxLayoutState& aState,
+                         nscoord& aGivenSize,
+                         nsBoxSize* aBoxSizes,
                          nsComputedBoxSize*& aComputedBoxSizes);
 
 
   virtual void PopulateBoxSizes(nsIFrame* aBox, nsBoxLayoutState& aBoxLayoutState,
                                 nsBoxSize*& aBoxSizes, nscoord& aMinSize,
                                 nscoord& aMaxSize, int32_t& aFlexes);
 
   virtual void InvalidateComputedSizes(nsComputedBoxSize* aComputedBoxSizes);
 
   virtual bool GetDefaultFlex(int32_t& aFlex);
 
   virtual void GetFrameState(nsIFrame* aBox, nsFrameState& aState);
 
 private:
 
 
-  // because the sprocket layout manager has no instance variables. We 
+  // because the sprocket layout manager has no instance variables. We
   // can make a static one and reuse it everywhere.
   static nsBoxLayout* gInstance;
 
 };
 
 #endif
 
--- a/layout/xul/nsStackFrame.h
+++ b/layout/xul/nsStackFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   A frame that can have multiple children. Only one child may be displayed at one time. So the
   can be flipped though like a Stack of cards.
- 
+
 **/
 
 #ifndef nsStackFrame_h___
 #define nsStackFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "nsBoxFrame.h"
 
--- a/layout/xul/nsStackLayout.cpp
+++ b/layout/xul/nsStackLayout.cpp
@@ -33,17 +33,17 @@ NS_NewStackLayout(nsCOMPtr<nsBoxLayout>&
 {
   if (!nsStackLayout::gInstance) {
     nsStackLayout::gInstance = new nsStackLayout();
     NS_IF_ADDREF(nsStackLayout::gInstance);
   }
   // we have not instance variables so just return our static one.
   aNewLayout = nsStackLayout::gInstance;
   return NS_OK;
-} 
+}
 
 /*static*/ void
 nsStackLayout::Shutdown()
 {
   NS_IF_RELEASE(gInstance);
 }
 
 nsStackLayout::nsStackLayout()
@@ -168,17 +168,17 @@ nsStackLayout::GetXULMaxSize(nsIFrame* a
 
 
 nscoord
 nsStackLayout::GetAscent(nsIFrame* aBox, nsBoxLayoutState& aState)
 {
   nscoord vAscent = 0;
 
   nsIFrame* child = nsBox::GetChildXULBox(aBox);
-  while (child) {  
+  while (child) {
     nscoord ascent = child->GetXULBoxAscent(aState);
     nsMargin margin;
     child->GetXULMargin(margin);
     ascent += margin.top;
     if (ascent > vAscent)
       vAscent = ascent;
 
     child = nsBox::GetNextXULBox(child);
@@ -285,18 +285,18 @@ nsStackLayout::XULLayout(nsIFrame* aBox,
   aBox->GetXULClientRect(clientRect);
 
   bool grow;
 
   do {
     nsIFrame* child = nsBox::GetChildXULBox(aBox);
     grow = false;
 
-    while (child) 
-    {  
+    while (child)
+    {
       nsMargin margin;
       child->GetXULMargin(margin);
       nsRect childRect(clientRect);
       childRect.Deflate(margin);
 
       if (childRect.width < 0)
         childRect.width = 0;
 
--- a/layout/xul/nsStackLayout.h
+++ b/layout/xul/nsStackLayout.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
 
   Eric D Vaughan
   A frame that can have multiple children. Only one child may be displayed at one time. So the
   can be flipped though like a deck of cards.
- 
+
 **/
 
 #ifndef nsStackLayout_h___
 #define nsStackLayout_h___
 
 #include "mozilla/Attributes.h"
 #include "nsBoxLayout.h"
 #include "nsCOMPtr.h"
--- a/layout/xul/nsTextBoxFrame.cpp
+++ b/layout/xul/nsTextBoxFrame.cpp
@@ -136,17 +136,17 @@ nsTextBoxFrame::DestroyFrom(nsIFrame* aD
     // unregister access key
     RegUnregAccessKey(false);
     nsLeafBoxFrame::DestroyFrom(aDestructRoot);
 }
 
 bool
 nsTextBoxFrame::AlwaysAppendAccessKey()
 {
-  if (!gAccessKeyPrefInitialized) 
+  if (!gAccessKeyPrefInitialized)
   {
     gAccessKeyPrefInitialized = true;
 
     const char* prefName = "intl.menuitems.alwaysappendaccesskeys";
     nsAdoptingString val = Preferences::GetLocalizedString(prefName);
     gAlwaysAppendAccessKey = val.EqualsLiteral("true");
   }
   return gAlwaysAppendAccessKey;
@@ -370,17 +370,17 @@ void
 nsTextBoxFrame::BuildDisplayList(nsDisplayListBuilder*   aBuilder,
                                  const nsRect&           aDirtyRect,
                                  const nsDisplayListSet& aLists)
 {
     if (!IsVisibleForPainting(aBuilder))
         return;
 
     nsLeafBoxFrame::BuildDisplayList(aBuilder, aDirtyRect, aLists);
-    
+
     aLists.Content()->AppendNewToTop(new (aBuilder)
         nsDisplayXULTextBox(aBuilder, this));
 }
 
 void
 nsTextBoxFrame::PaintTitle(gfxContext&          aRenderingContext,
                            const nsRect&        aDirtyRect,
                            nsPoint              aPt,
@@ -904,20 +904,20 @@ nsTextBoxFrame::UpdateAccessIndex()
         } else {
             if (!mAccessKeyInfo) {
                 mAccessKeyInfo = new nsAccessKeyInfo();
                 if (!mAccessKeyInfo)
                     return;
             }
 
             nsAString::const_iterator start, end;
-                
+
             mCroppedTitle.BeginReading(start);
             mCroppedTitle.EndReading(end);
-            
+
             // remember the beginning of the string
             nsAString::const_iterator originalStart = start;
 
             bool found;
             if (!AlwaysAppendAccessKey()) {
                 // not appending access key - do case-sensitive search
                 // first
                 found = FindInReadable(mAccessKey, start, end);
@@ -926,17 +926,17 @@ nsTextBoxFrame::UpdateAccessIndex()
                     start = originalStart;
                     found = FindInReadable(mAccessKey, start, end,
                                            nsCaseInsensitiveStringComparator());
                 }
             } else {
                 found = RFindInReadable(mAccessKey, start, end,
                                         nsCaseInsensitiveStringComparator());
             }
-            
+
             if (found)
                 mAccessKeyInfo->mAccesskeyIndex = Distance(originalStart, start);
             else
                 mAccessKeyInfo->mAccesskeyIndex = kNotFound;
         }
     }
 }
 
@@ -988,33 +988,33 @@ nsTextBoxFrame::DoXULLayout(nsBoxLayoutS
         mNeedsReflowCallback = false;
     }
 
     nsresult rv = nsLeafBoxFrame::DoXULLayout(aBoxLayoutState);
 
     CalcDrawRect(*aBoxLayoutState.GetRenderingContext());
 
     const nsStyleText* textStyle = StyleText();
-    
+
     nsRect scrollBounds(nsPoint(0, 0), GetSize());
     nsRect textRect = mTextDrawRect;
-    
+
     RefPtr<nsFontMetrics> fontMet =
       nsLayoutUtils::GetFontMetricsForFrame(this, 1.0f);
-    nsBoundingMetrics metrics = 
+    nsBoundingMetrics metrics =
       fontMet->GetInkBoundsForVisualOverflow(mCroppedTitle.get(),
                                              mCroppedTitle.Length(),
                                              aBoxLayoutState.GetRenderingContext()->GetDrawTarget());
 
     WritingMode wm = GetWritingMode();
     LogicalRect tr(wm, textRect, GetSize());
 
     tr.IStart(wm) -= metrics.leftBearing;
     tr.ISize(wm) = metrics.width;
-    // In DrawText() we always draw with the baseline at MaxAscent() (relative to mTextDrawRect), 
+    // In DrawText() we always draw with the baseline at MaxAscent() (relative to mTextDrawRect),
     tr.BStart(wm) += fontMet->MaxAscent() - metrics.ascent;
     tr.BSize(wm) = metrics.ascent + metrics.descent;
 
     textRect = tr.GetPhysicalRect(wm, GetSize());
 
     // Our scrollable overflow is our bounds; our visual overflow may
     // extend beyond that.
     nsRect visualBounds;
@@ -1199,17 +1199,17 @@ nsresult
 nsTextBoxFrame::GetFrameName(nsAString& aResult) const
 {
     MakeFrameName(NS_LITERAL_STRING("TextBox"), aResult);
     aResult += NS_LITERAL_STRING("[value=") + mTitle + NS_LITERAL_STRING("]");
     return NS_OK;
 }
 #endif
 
-// If you make changes to this function, check its counterparts 
+// If you make changes to this function, check its counterparts
 // in nsBoxFrame and nsXULLabelFrame
 nsresult
 nsTextBoxFrame::RegUnregAccessKey(bool aDoReg)
 {
     // if we have no content, we can't do anything
     if (!mContent)
         return NS_ERROR_FAILURE;
 
@@ -1226,17 +1226,17 @@ nsTextBoxFrame::RegUnregAccessKey(bool a
 
     // see if we even have an access key
     nsAutoString accessKey;
     mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::accesskey, accessKey);
 
     if (accessKey.IsEmpty())
         return NS_OK;
 
-    // With a valid PresContext we can get the ESM 
+    // With a valid PresContext we can get the ESM
     // and (un)register the access key
     EventStateManager* esm = PresContext()->EventStateManager();
 
     uint32_t key = accessKey.First();
     if (aDoReg)
         esm->RegisterAccessKey(mContent, key);
     else
         esm->UnregisterAccessKey(mContent, key);
--- a/layout/xul/nsTitleBarFrame.h
+++ b/layout/xul/nsTitleBarFrame.h
@@ -4,22 +4,22 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #ifndef nsTitleBarFrame_h___
 #define nsTitleBarFrame_h___
 
 #include "mozilla/Attributes.h"
 #include "mozilla/EventForwards.h"
 #include "nsBoxFrame.h"
 
-class nsTitleBarFrame : public nsBoxFrame  
+class nsTitleBarFrame : public nsBoxFrame
 {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsTitleBarFrame)
 
-  friend nsIFrame* NS_NewTitleBarFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);  
+  friend nsIFrame* NS_NewTitleBarFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
 
   explicit nsTitleBarFrame(nsStyleContext* aContext, ClassID = kClassID);
 
   virtual void BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                            const nsRect&           aDirtyRect,
                                            const nsDisplayListSet& aLists) override;
 
   virtual nsresult HandleEvent(nsPresContext* aPresContext,
--- a/layout/xul/nsXULLabelFrame.cpp
+++ b/layout/xul/nsXULLabelFrame.cpp
@@ -17,17 +17,17 @@ NS_NewXULLabelFrame(nsIPresShell* aPresS
 {
   nsXULLabelFrame* it = new (aPresShell) nsXULLabelFrame(aContext);
   it->AddStateBits(NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS);
   return it;
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsXULLabelFrame)
 
-// If you make changes to this function, check its counterparts 
+// If you make changes to this function, check its counterparts
 // in nsBoxFrame and nsTextBoxFrame
 nsresult
 nsXULLabelFrame::RegUnregAccessKey(bool aDoReg)
 {
   // if we have no content, we can't do anything
   if (!mContent)
     return NS_ERROR_FAILURE;
 
@@ -40,17 +40,17 @@ nsXULLabelFrame::RegUnregAccessKey(bool 
     return NS_OK;
 
   nsAutoString accessKey;
   mContent->GetAttr(kNameSpaceID_None, nsGkAtoms::accesskey, accessKey);
 
   if (accessKey.IsEmpty())
     return NS_OK;
 
-  // With a valid PresContext we can get the ESM 
+  // With a valid PresContext we can get the ESM
   // and register the access key
   EventStateManager* esm = PresContext()->EventStateManager();
 
   uint32_t key = accessKey.First();
   if (aDoReg)
     esm->RegisterAccessKey(mContent, key);
   else
     esm->UnregisterAccessKey(mContent, key);
@@ -73,24 +73,24 @@ nsXULLabelFrame::Init(nsIContent*       
 }
 
 void
 nsXULLabelFrame::DestroyFrom(nsIFrame* aDestructRoot)
 {
   // unregister access key
   RegUnregAccessKey(false);
   nsBlockFrame::DestroyFrom(aDestructRoot);
-} 
+}
 
 nsresult
 nsXULLabelFrame::AttributeChanged(int32_t aNameSpaceID,
                                   nsIAtom* aAttribute,
                                   int32_t aModType)
 {
-  nsresult rv = nsBlockFrame::AttributeChanged(aNameSpaceID, 
+  nsresult rv = nsBlockFrame::AttributeChanged(aNameSpaceID,
                                                aAttribute, aModType);
 
   // If the accesskey changed, register for the new value
   // The old value has been unregistered in nsXULElement::SetAttr
   if (aAttribute == nsGkAtoms::accesskey || aAttribute == nsGkAtoms::control)
     RegUnregAccessKey(true);
 
   return rv;
--- a/layout/xul/nsXULLabelFrame.h
+++ b/layout/xul/nsXULLabelFrame.h
@@ -17,17 +17,17 @@
 
 class nsXULLabelFrame final : public nsBlockFrame
 {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsXULLabelFrame)
 
   friend nsIFrame* NS_NewXULLabelFrame(nsIPresShell* aPresShell,
                                        nsStyleContext *aContext);
-  
+
   // nsIFrame
   virtual void Init(nsIContent*       aContent,
                     nsContainerFrame* aParent,
                     nsIFrame*         aPrevInFlow) override;
 
   virtual void DestroyFrom(nsIFrame* aDestructRoot) override;
 
   virtual nsresult AttributeChanged(int32_t aNameSpaceID,
--- a/layout/xul/nsXULPopupManager.cpp
+++ b/layout/xul/nsXULPopupManager.cpp
@@ -145,17 +145,17 @@ nsXULPopupManager::nsXULPopupManager() :
   nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
   if (obs) {
     obs->AddObserver(this, "xpcom-shutdown", false);
   }
   Preferences::AddBoolVarCache(&sDevtoolsDisableAutoHide,
                                kPrefDevtoolsDisableAutoHide, false);
 }
 
-nsXULPopupManager::~nsXULPopupManager() 
+nsXULPopupManager::~nsXULPopupManager()
 {
   NS_ASSERTION(!mPopups, "XUL popups still open");
 }
 
 nsresult
 nsXULPopupManager::Init()
 {
   sInstance = new nsXULPopupManager();
@@ -642,17 +642,17 @@ nsXULPopupManager::InitTriggerEvent(nsID
         nsPresContext* presContext;
         if (presShell && (presContext = presShell->GetPresContext())) {
           nsPresContext* rootDocPresContext =
             presContext->GetRootPresContext();
           if (!rootDocPresContext)
             return;
           nsIFrame* rootDocumentRootFrame = rootDocPresContext->
               PresShell()->FrameManager()->GetRootFrame();
-          if ((event->mClass == eMouseEventClass || 
+          if ((event->mClass == eMouseEventClass ||
                event->mClass == eMouseScrollEventClass ||
                event->mClass == eWheelEventClass) &&
                !event->AsGUIEvent()->mWidget) {
             // no widget, so just use the client point if available
             nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aEvent);
             nsIntPoint clientPt;
             mouseEvent->GetClientX(&clientPt.x);
             mouseEvent->GetClientY(&clientPt.y);
@@ -1037,17 +1037,17 @@ nsXULPopupManager::HidePopup(nsIContent*
       // scan and just close up this menu.
       if (foundPopup->IsMenu()) {
         nsMenuChainItem* child = foundPopup->GetChild();
         while (child && child->IsMenu()) {
           topMenu = child;
           child = child->GetChild();
         }
       }
-      
+
       deselectMenu = aDeselectMenu;
       popupToHide = topMenu->Content();
       popupFrame = topMenu->Frame();
 
       // Close up another popup if there is one, and we are either hiding the
       // entire chain or the item to hide isn't the topmost popup.
       nsMenuChainItem* parent = topMenu->GetParent();
       if (parent && (aHideChain || topMenu != foundPopup)) {
@@ -2024,29 +2024,29 @@ nsXULPopupManager::UpdateMenuItems(nsICo
         grandChild->GetParent()->IsXULElement(nsGkAtoms::menugroup)) {
       grandChild = grandChild->GetParent();
     }
   }
 }
 
 // Notify
 //
-// The item selection timer has fired, we might have to readjust the 
+// The item selection timer has fired, we might have to readjust the
 // selected item. There are two cases here that we are trying to deal with:
 //   (1) diagonal movement from a parent menu to a submenu passing briefly over
 //       other items, and
 //   (2) moving out from a submenu to a parent or grandparent menu.
 // In both cases, |mTimerMenu| is the menu item that might have an open submenu and
 // the first item in |mPopups| is the item the mouse is currently over, which could be
 // none of them.
 //
 // case (1):
 //  As the mouse moves from the parent item of a submenu (we'll call 'A') diagonally into the
 //  submenu, it probably passes through one or more sibilings (B). As the mouse passes
-//  through B, it becomes the current menu item and the timer is set and mTimerMenu is 
+//  through B, it becomes the current menu item and the timer is set and mTimerMenu is
 //  set to A. Before the timer fires, the mouse leaves the menu containing A and B and
 //  enters the submenus. Now when the timer fires, |mPopups| is null (!= |mTimerMenu|)
 //  so we have to see if anything in A's children is selected (recall that even disabled
 //  items are selected, the style just doesn't show it). If that is the case, we need to
 //  set the selected item back to A.
 //
 // case (2);
 //  Item A has an open submenu, and in it there is an item (B) which also has an open
@@ -2055,20 +2055,20 @@ nsXULPopupManager::UpdateMenuItems(nsICo
 //  the timer is set and |mTimerMenu| is A and |mPopups| is C. As the timer fires,
 //  the mouse is still within C. The correct behavior is to set the current item to C
 //  and close up the chain parented at A.
 //
 //  This brings up the question of is the logic of case (1) enough? The answer is no,
 //  and is discussed in bugzilla bug 29400. Case (1) asks if A's submenu has a selected
 //  child, and if it does, set the selected item to A. Because B has a submenu open, it
 //  is selected and as a result, A is set to be the selected item even though the mouse
-//  rests in C -- very wrong. 
+//  rests in C -- very wrong.
 //
-//  The solution is to use the same idea, but instead of only checking one level, 
-//  drill all the way down to the deepest open submenu and check if it has something 
+//  The solution is to use the same idea, but instead of only checking one level,
+//  drill all the way down to the deepest open submenu and check if it has something
 //  selected. Since the mouse is in a grandparent, it won't, and we know that we can
 //  safely close up A and all its children.
 //
 // The code below melds the two cases together.
 //
 void
 nsXULPopupManager::KillMenuTimer()
 {
@@ -2184,20 +2184,20 @@ nsXULPopupManager::HandleKeyboardNavigat
 
   // if a popup is open, first check for navigation within the popup
   if (item && HandleKeyboardNavigationInPopup(item, theDirection))
     return true;
 
   // no popup handled the key, so check the active menubar, if any
   if (mActiveMenuBar) {
     nsMenuFrame* currentMenu = mActiveMenuBar->GetCurrentMenuItem();
-  
+
     if (NS_DIRECTION_IS_INLINE(theDirection)) {
       nsMenuFrame* nextItem = (theDirection == eNavigationDirection_End) ?
-                              GetNextMenuItem(mActiveMenuBar, currentMenu, false, true) : 
+                              GetNextMenuItem(mActiveMenuBar, currentMenu, false, true) :
                               GetPreviousMenuItem(mActiveMenuBar, currentMenu, false, true);
       mActiveMenuBar->ChangeMenuItem(nextItem, true, true);
       return true;
     }
     else if (NS_DIRECTION_IS_BLOCK(theDirection)) {
       // Open the menu and select its first item.
       if (currentMenu) {
         nsCOMPtr<nsIContent> content = currentMenu->GetContent();
@@ -2690,17 +2690,17 @@ nsXULPopupManager::KeyDown(nsIDOMKeyEven
         nsMenuChainItem* item = GetTopVisibleMenu();
         if (item && !item->Frame()->IsMenuList()) {
           Rollup(0, false, nullptr, nullptr);
         } else if (mActiveMenuBar) {
           mActiveMenuBar->MenuClosed();
         }
 
         // Clear the item to avoid bugs as it may have been deleted during rollup.
-        item = nullptr; 
+        item = nullptr;
       }
       aKeyEvent->AsEvent()->StopPropagation();
       aKeyEvent->AsEvent()->PreventDefault();
     }
   }
 
   aKeyEvent->AsEvent()->StopCrossProcessForwarding();
   return NS_OK;
--- a/layout/xul/nsXULPopupManager.h
+++ b/layout/xul/nsXULPopupManager.h
@@ -62,17 +62,17 @@ enum CloseMenuMode {
   CloseMenuMode_Auto, // close up the chain of menus, default value
   CloseMenuMode_None, // don't close up any menus
   CloseMenuMode_Single // close up only the menu the command is inside
 };
 
 /**
  * nsNavigationDirection: an enum expressing navigation through the menus in
  * terms which are independent of the directionality of the chrome. The
- * terminology, derived from XSL-FO and CSS3 (e.g. 
+ * terminology, derived from XSL-FO and CSS3 (e.g.
  * http://www.w3.org/TR/css3-text/#TextLayout), is BASE (Before, After, Start,
  * End), with the addition of First and Last (mapped to Home and End
  * respectively).
  *
  * In languages such as English where the inline progression is left-to-right
  * and the block progression is top-to-bottom (lr-tb), these terms will map out
  * as in the following diagram
  *
@@ -82,17 +82,17 @@ enum CloseMenuMode {
  *           ...                |
  *           Before             |
  *         +--------+         block
  *   Start |        | End  progression
  *         +--------+           |
  *           After              |
  *           ...                |
  *           Last               V
- * 
+ *
  */
 
 enum nsNavigationDirection {
   eNavigationDirection_Last,
   eNavigationDirection_First,
   eNavigationDirection_Start,
   eNavigationDirection_Before,
   eNavigationDirection_End,
@@ -446,17 +446,17 @@ public:
                  bool aSelectFirstItem,
                  nsIDOMEvent* aTriggerEvent);
 
   /**
    * Open a popup at a specific screen position specified by aXPos and aYPos,
    * measured in CSS pixels.
    *
    * This fires the popupshowing event synchronously.
-   * 
+   *
    * If aIsContextMenu is true, the popup is positioned at a slight
    * offset from aXPos/aYPos to ensure that it is not under the mouse
    * cursor.
    */
   void ShowPopupAtScreen(nsIContent* aPopup,
                          int32_t aXPos, int32_t aYPos,
                          bool aIsContextMenu,
                          nsIDOMEvent* aTriggerEvent);
@@ -750,17 +750,17 @@ protected:
    * within.
    *
    * The caller must keep a strong reference to aPopup, aNextPopup and aLastPopup.
    *
    * aPopup - the popup to hide
    * aNextPopup - the next popup to hide
    * aLastPopup - the last popup in the chain to hide
    * aPresContext - nsPresContext for the popup's frame
-   * aPopupType - the PopupType of the frame. 
+   * aPopupType - the PopupType of the frame.
    * aDeselectMenu - true to unhighlight the menu when hiding it
    * aIsCancel - true if this popup is hiding due to being cancelled.
    */
   void FirePopupHidingEvent(nsIContent* aPopup,
                             nsIContent* aNextPopup,
                             nsIContent* aLastPopup,
                             nsPresContext *aPresContext,
                             nsPopupType aPopupType,
--- a/layout/xul/nsXULTooltipListener.cpp
+++ b/layout/xul/nsXULTooltipListener.cpp
@@ -78,17 +78,17 @@ NS_IMPL_ISUPPORTS(nsXULTooltipListener, 
 
 void
 nsXULTooltipListener::MouseOut(nsIDOMEvent* aEvent)
 {
   // reset flag so that tooltip will display on the next MouseMove
   mTooltipShownOnce = false;
 
   // if the timer is running and no tooltip is shown, we
-  // have to cancel the timer here so that it doesn't 
+  // have to cancel the timer here so that it doesn't
   // show the tooltip if we move the mouse out of the window
   nsCOMPtr<nsIContent> currentTooltip = do_QueryReferent(mCurrentTooltip);
   if (mTooltipTimer && !currentTooltip) {
     mTooltipTimer->Cancel();
     mTooltipTimer = nullptr;
     return;
   }
 
@@ -125,17 +125,17 @@ nsXULTooltipListener::MouseOut(nsIDOMEve
 }
 
 void
 nsXULTooltipListener::MouseMove(nsIDOMEvent* aEvent)
 {
   if (!sShowTooltips)
     return;
 
-  // stash the coordinates of the event so that we can still get back to it from within the 
+  // stash the coordinates of the event so that we can still get back to it from within the
   // timer callback. On win32, we'll get a MouseMove event even when a popup goes away --
   // even when the mouse doesn't change position! To get around this, we make sure the
   // mouse has really moved before proceeding.
   nsCOMPtr<nsIDOMMouseEvent> mouseEvent(do_QueryInterface(aEvent));
   if (!mouseEvent)
     return;
   int32_t newMouseX, newMouseY;
   mouseEvent->GetScreenX(&newMouseX);
@@ -160,17 +160,17 @@ nsXULTooltipListener::MouseMove(nsIDOMEv
     aEvent->InternalDOMEvent()->GetCurrentTarget());
   mSourceNode = do_GetWeakReference(sourceContent);
 #ifdef MOZ_XUL
   mIsSourceTree = sourceContent->IsXULElement(nsGkAtoms::treechildren);
   if (mIsSourceTree)
     CheckTreeBodyMove(mouseEvent);
 #endif
 
-  // as the mouse moves, we want to make sure we reset the timer to show it, 
+  // as the mouse moves, we want to make sure we reset the timer to show it,
   // so that the delay is from when the mouse stops moving, not when it enters
   // the node.
   KillTooltipTimer();
 
   // If the mouse moves while the tooltip is up, hide it. If nothing is
   // showing and the tooltip hasn't been displayed since the mouse entered
   // the node, then start the timer to show the tooltip.
   if (!currentTooltip && !mTooltipShownOnce) {
@@ -379,17 +379,17 @@ nsXULTooltipListener::CheckTreeBodyMove(
     if (row >= 0 && obj.EqualsLiteral("text") &&
         colType != nsITreeColumn::TYPE_PASSWORD) {
       obx->IsCellCropped(row, col, &mNeedTitletip);
     }
 
     nsCOMPtr<nsIContent> currentTooltip = do_QueryReferent(mCurrentTooltip);
     if (currentTooltip && (row != mLastTreeRow || col != mLastTreeCol)) {
       HideTooltip();
-    } 
+    }
 
     mLastTreeRow = row;
     mLastTreeCol = col;
   }
 }
 #endif
 
 nsresult
@@ -402,17 +402,17 @@ nsXULTooltipListener::ShowTooltip()
   GetTooltipFor(sourceNode, getter_AddRefs(tooltipNode));
   if (!tooltipNode || sourceNode == tooltipNode)
     return NS_ERROR_FAILURE; // the target node doesn't need a tooltip
 
   // set the node in the document that triggered the tooltip and show it
   nsCOMPtr<nsIDOMXULDocument> xulDoc =
     do_QueryInterface(tooltipNode->GetComposedDoc());
   if (xulDoc) {
-    // Make sure the target node is still attached to some document. 
+    // Make sure the target node is still attached to some document.
     // It might have been deleted.
     if (sourceNode->IsInComposedDoc()) {
 #ifdef MOZ_XUL
       if (!mIsSourceTree) {
         mLastTreeRow = -1;
         mLastTreeCol = nullptr;
       }
 #endif
@@ -422,17 +422,17 @@ nsXULTooltipListener::ShowTooltip()
       mTargetNode = nullptr;
 
       nsCOMPtr<nsIContent> currentTooltip = do_QueryReferent(mCurrentTooltip);
       if (!currentTooltip)
         return NS_OK;
 
       // listen for popuphidden on the tooltip node, so that we can
       // be sure DestroyPopup is called even if someone else closes the tooltip
-      currentTooltip->AddSystemEventListener(NS_LITERAL_STRING("popuphiding"), 
+      currentTooltip->AddSystemEventListener(NS_LITERAL_STRING("popuphiding"),
                                              this, false, false);
 
       // listen for mousedown, mouseup, keydown, and DOMMouseScroll events at document level
       nsIDocument* doc = sourceNode->GetComposedDoc();
       if (doc) {
         // Probably, we should listen to untrusted events for hiding tooltips
         // on content since tooltips might disturb something of web
         // applications.  If we don't specify the aWantsUntrusted of
@@ -457,17 +457,17 @@ nsXULTooltipListener::ShowTooltip()
   return NS_OK;
 }
 
 #ifdef MOZ_XUL
 // XXX: "This stuff inside DEBUG_crap could be used to make tree tooltips work
 //       in the future."
 #ifdef DEBUG_crap
 static void
-GetTreeCellCoords(nsITreeBoxObject* aTreeBox, nsIContent* aSourceNode, 
+GetTreeCellCoords(nsITreeBoxObject* aTreeBox, nsIContent* aSourceNode,
                   int32_t aRow, nsITreeColumn* aCol, int32_t* aX, int32_t* aY)
 {
   int32_t junk;
   aTreeBox->GetCoordsForCellItem(aRow, aCol, EmptyCString(), aX, aY, &junk, &junk);
   RefPtr<nsXULElement> xulEl = nsXULElement::FromContent(aSourceNode);
   IgnoredErrorResult ignored;
   nsCOMPtr<nsIBoxObject> bx = xulEl->GetBoxObject(ignored);
   int32_t myX, myY;
@@ -482,17 +482,17 @@ static void
 SetTitletipLabel(nsITreeBoxObject* aTreeBox, nsIContent* aTooltip,
                  int32_t aRow, nsITreeColumn* aCol)
 {
   nsCOMPtr<nsITreeView> view;
   aTreeBox->GetView(getter_AddRefs(view));
   if (view) {
     nsAutoString label;
 #ifdef DEBUG
-    nsresult rv = 
+    nsresult rv =
 #endif
       view->GetCellText(aRow, aCol, label);
     NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "Couldn't get the cell text!");
     aTooltip->SetAttr(kNameSpaceID_None, nsGkAtoms::label, label, true);
   }
 }
 #endif
 
@@ -547,17 +547,17 @@ nsXULTooltipListener::HideTooltip()
   }
 #endif
 
   DestroyTooltip();
   return NS_OK;
 }
 
 static void
-GetImmediateChild(nsIContent* aContent, nsIAtom *aTag, nsIContent** aResult) 
+GetImmediateChild(nsIContent* aContent, nsIAtom *aTag, nsIContent** aResult)
 {
   *aResult = nullptr;
   uint32_t childCount = aContent->GetChildCount();
   for (uint32_t i = 0; i < childCount; i++) {
     nsIContent *child = aContent->GetChildAt(i);
 
     if (child->IsXULElement(aTag)) {
       *aResult = child;
--- a/layout/xul/tree/nsTreeBodyFrame.cpp
+++ b/layout/xul/tree/nsTreeBodyFrame.cpp
@@ -274,17 +274,17 @@ void
 nsTreeBodyFrame::DestroyFrom(nsIFrame* aDestructRoot)
 {
   if (mScrollbarActivity) {
     mScrollbarActivity->Destroy();
     mScrollbarActivity = nullptr;
   }
 
   mScrollEvent.Revoke();
-  // Make sure we cancel any posted callbacks. 
+  // Make sure we cancel any posted callbacks.
   if (mReflowCallbackPosted) {
     PresContext()->PresShell()->CancelReflowCallback(this);
     mReflowCallbackPosted = false;
   }
 
   if (mColumns)
     mColumns->SetTree(nullptr);
 
@@ -488,21 +488,21 @@ nsTreeBodyFrame::SetView(nsITreeView * a
     mView->SetTree(nullptr);
 
     // Only reset the top row index and delete the columns if we had an old non-null view.
     mTopRowIndex = 0;
   }
 
   // Tree, meet the view.
   mView = aView;
- 
+
   // Changing the view causes us to refetch our data.  This will
   // necessarily entail a full invalidation of the tree.
   Invalidate();
- 
+
   nsIContent *treeContent = GetBaseElement();
   if (treeContent) {
 #ifdef ACCESSIBILITY
     nsAccessibilityService* accService = nsIPresShell::AccService();
     if (accService)
       accService->TreeViewChanged(PresContext()->GetPresShell(), treeContent, mView);
 #endif
     FireDOMEvent(NS_LITERAL_STRING("TreeViewChanged"), treeContent);
@@ -521,26 +521,26 @@ nsTreeBodyFrame::SetView(nsITreeView * a
       mView->SetSelection(sel);
     }
 
     // View, meet the tree.
     AutoWeakFrame weakFrame(this);
     mView->SetTree(mTreeBoxObject);
     NS_ENSURE_STATE(weakFrame.IsAlive());
     mView->GetRowCount(&mRowCount);
- 
+
     if (!PresContext()->PresShell()->IsReflowLocked()) {
       // The scrollbar will need to be updated.
       FullScrollbarsUpdate(false);
     } else if (!mReflowCallbackPosted) {
       mReflowCallbackPosted = true;
       PresContext()->PresShell()->PostReflowCallback(this);
     }
   }
- 
+
   return NS_OK;
 }
 
 nsresult
 nsTreeBodyFrame::SetFocused(bool aFocused)
 {
   if (mFocused != aFocused) {
     mFocused = aFocused;
@@ -771,17 +771,17 @@ nsTreeBodyFrame::InvalidateColumnRange(i
   if (nsIPresShell::IsAccessibilityActive()) {
     int32_t end =
       mRowCount > 0 ? ((mRowCount <= aEnd) ? mRowCount - 1 : aEnd) : 0;
     FireInvalidateEvent(aStart, end, aCol, aCol);
   }
 #endif
 
   nsRect rangeRect;
-  nsresult rv = col->GetRect(this, 
+  nsresult rv = col->GetRect(this,
                              mInnerBox.y+mRowHeight*(aStart-mTopRowIndex),
                              mRowHeight*(aEnd-aStart+1),
                              &rangeRect);
   NS_ENSURE_SUCCESS(rv, rv);
 
   InvalidateFrameWithRect(rangeRect);
 
   return NS_OK;
@@ -792,32 +792,32 @@ FindScrollParts(nsIFrame* aCurrFrame, ns
 {
   if (!aResult->mColumnsScrollFrame) {
     nsIScrollableFrame* f = do_QueryFrame(aCurrFrame);
     if (f) {
       aResult->mColumnsFrame = aCurrFrame;
       aResult->mColumnsScrollFrame = f;
     }
   }
-  
+
   nsScrollbarFrame *sf = do_QueryFrame(aCurrFrame);
   if (sf) {
     if (!aCurrFrame->IsXULHorizontal()) {
       if (!aResult->mVScrollbar) {
         aResult->mVScrollbar = sf;
       }
     } else {
       if (!aResult->mHScrollbar) {
         aResult->mHScrollbar = sf;
       }
     }
     // don't bother searching inside a scrollbar
     return;
   }
-  
+
   nsIFrame* child = aCurrFrame->PrincipalChildList().FirstChild();
   while (child &&
          !child->GetContent()->IsRootOfNativeAnonymousSubtree() &&
          (!aResult->mVScrollbar || !aResult->mHScrollbar ||
           !aResult->mColumnsScrollFrame)) {
     FindScrollParts(child, aResult);
     child = child->GetNextSibling();
   }
@@ -889,17 +889,17 @@ nsTreeBodyFrame::CheckOverflow(const Scr
     mVerticalOverflow = false;
     verticalOverflowChanged = true;
   }
 
   if (aParts.mColumnsFrame) {
     nsRect bounds = aParts.mColumnsFrame->GetRect();
     if (bounds.width != 0) {
       /* Ignore overflows that are less than half a pixel. Yes these happen
-         all over the place when flex boxes are compressed real small. 
+         all over the place when flex boxes are compressed real small.
          Probably a result of a rounding errors somewhere in the layout code. */
       bounds.width += nsPresContext::CSSPixelsToAppUnits(0.5f);
       if (!mHorizontalOverflow && bounds.width < mHorzWidth) {
         mHorizontalOverflow = true;
         horizontalOverflowChanged = true;
       } else if (mHorizontalOverflow && bounds.width >= mHorzWidth) {
         mHorizontalOverflow = false;
         horizontalOverflowChanged = true;
@@ -953,17 +953,17 @@ nsTreeBodyFrame::CheckOverflow(const Scr
 void
 nsTreeBodyFrame::InvalidateScrollbars(const ScrollParts& aParts, AutoWeakFrame& aWeakColumnsFrame)
 {
   if (mUpdateBatchNest || !mView)
     return;
   AutoWeakFrame weakFrame(this);
 
   if (aParts.mVScrollbar) {
-    // Do Vertical Scrollbar 
+    // Do Vertical Scrollbar
     nsAutoString maxposStr;
 
     nscoord rowHeightAsPixels = nsPresContext::AppUnitsToIntCSSPixels(mRowHeight);
 
     int32_t size = rowHeightAsPixels * (mRowCount > mPageLength ? mRowCount - mPageLength : 0);
     maxposStr.AppendInt(size);
     aParts.mVScrollbarContent->
       SetAttr(kNameSpaceID_None, nsGkAtoms::maxpos, maxposStr, true);
@@ -982,23 +982,23 @@ nsTreeBodyFrame::InvalidateScrollbars(co
     // And now Horizontal scrollbar
     nsRect bounds = aParts.mColumnsFrame->GetRect();
     nsAutoString maxposStr;
 
     maxposStr.AppendInt(mHorzWidth > bounds.width ? mHorzWidth - bounds.width : 0);
     aParts.mHScrollbarContent->
       SetAttr(kNameSpaceID_None, nsGkAtoms::maxpos, maxposStr, true);
     ENSURE_TRUE(weakFrame.IsAlive());
-  
+
     nsAutoString pageStr;
     pageStr.AppendInt(bounds.width);
     aParts.mHScrollbarContent->
       SetAttr(kNameSpaceID_None, nsGkAtoms::pageincrement, pageStr, true);
     ENSURE_TRUE(weakFrame.IsAlive());
-  
+
     pageStr.Truncate();
     pageStr.AppendInt(nsPresContext::CSSPixelsToAppUnits(16));
     aParts.mHScrollbarContent->
       SetAttr(kNameSpaceID_None, nsGkAtoms::increment, pageStr, true);
   }
 
   if (weakFrame.IsAlive() && mScrollbarActivity) {
     mScrollbarActivity->ActivityOccurred();
@@ -1075,35 +1075,35 @@ nsTreeBodyFrame::GetCellAt(int32_t aX, i
   return NS_OK;
 }
 
 
 //
 // GetCoordsForCellItem
 //
 // Find the x/y location and width/height (all in PIXELS) of the given object
-// in the given column. 
+// in the given column.
 //
 // XXX IMPORTANT XXX:
 // Hyatt says in the bug for this, that the following needs to be done:
-// (1) You need to deal with overflow when computing cell rects.  See other column 
-// iteration examples... if you don't deal with this, you'll mistakenly extend the 
+// (1) You need to deal with overflow when computing cell rects.  See other column
+// iteration examples... if you don't deal with this, you'll mistakenly extend the
 // cell into the scrollbar's rect.
 //
-// (2) You are adjusting the cell rect by the *row" border padding.  That's 
-// wrong.  You need to first adjust a row rect by its border/padding, and then the 
-// cell rect fits inside the adjusted row rect.  It also can have border/padding 
-// as well as margins.  The vertical direction isn't that important, but you need 
+// (2) You are adjusting the cell rect by the *row" border padding.  That's
+// wrong.  You need to first adjust a row rect by its border/padding, and then the
+// cell rect fits inside the adjusted row rect.  It also can have border/padding
+// as well as margins.  The vertical direction isn't that important, but you need
 // to get the horizontal direction right.
 //
-// (3) GetImageSize() does not include margins (but it does include border/padding).  
+// (3) GetImageSize() does not include margins (but it does include border/padding).
 // You need to make sure to add in the image's margins as well.
 //
 nsresult
-nsTreeBodyFrame::GetCoordsForCellItem(int32_t aRow, nsITreeColumn* aCol, const nsACString& aElement, 
+nsTreeBodyFrame::GetCoordsForCellItem(int32_t aRow, nsITreeColumn* aCol, const nsACString& aElement,
                                       int32_t *aX, int32_t *aY, int32_t *aWidth, int32_t *aHeight)
 {
   *aX = 0;
   *aY = 0;
   *aWidth = 0;
   *aHeight = 0;
 
   bool isRTL = StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL;
@@ -1122,91 +1122,91 @@ nsTreeBodyFrame::GetCoordsForCellItem(in
     nsresult rv =
 #endif
       currCol->GetWidthInTwips(this, &colWidth);
     NS_ASSERTION(NS_SUCCEEDED(rv), "invalid column");
 
     nsRect cellRect(currX, mInnerBox.y + mRowHeight * (aRow - mTopRowIndex),
                     colWidth, mRowHeight);
 
-    // Check the ID of the current column to see if it matches. If it doesn't 
+    // Check the ID of the current column to see if it matches. If it doesn't
     // increment the current X value and continue to the next column.
     if (currCol != aCol) {
       currX += cellRect.width;
       continue;
     }
     // Now obtain the properties for our cell.
     PrefillPropertyArray(aRow, currCol);
 
     nsAutoString properties;
     mView->GetCellProperties(aRow, currCol, properties);
     nsTreeUtils::TokenizeProperties(properties, mScratchArray);
 
     nsStyleContext* rowContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreerow);
 
     // We don't want to consider any of the decorations that may be present
-    // on the current row, so we have to deflate the rect by the border and 
-    // padding and offset its left and top coordinates appropriately. 
+    // on the current row, so we have to deflate the rect by the border and
+    // padding and offset its left and top coordinates appropriately.
     AdjustForBorderPadding(rowContext, cellRect);
 
     nsStyleContext* cellContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecell);
 
     NS_NAMED_LITERAL_CSTRING(cell, "cell");
     if (currCol->IsCycler() || cell.Equals(aElement)) {
-      // If the current Column is a Cycler, then the Rect is just the cell - the margins. 
-      // Similarly, if we're just being asked for the cell rect, provide it. 
+      // If the current Column is a Cycler, then the Rect is just the cell - the margins.
+      // Similarly, if we're just being asked for the cell rect, provide it.
 
       theRect = cellRect;
       nsMargin cellMargin;
       cellContext->StyleMargin()->GetMargin(cellMargin);
       theRect.Deflate(cellMargin);
       break;
     }
 
     // Since we're not looking for the cell, and since the cell isn't a cycler,
-    // we're looking for some subcomponent, and now we need to subtract the 
-    // borders and padding of the cell from cellRect so this does not 
+    // we're looking for some subcomponent, and now we need to subtract the
+    // borders and padding of the cell from cellRect so this does not
     // interfere with our computations.
     AdjustForBorderPadding(cellContext, cellRect);
 
     RefPtr<gfxContext> rc =
       presContext->PresShell()->CreateReferenceRenderingContext();
 
-    // Now we'll start making our way across the cell, starting at the edge of 
-    // the cell and proceeding until we hit the right edge. |cellX| is the 
+    // Now we'll start making our way across the cell, starting at the edge of
+    // the cell and proceeding until we hit the right edge. |cellX| is the
     // working X value that we will increment as we crawl from left to right.
     nscoord cellX = cellRect.x;
     nscoord remainWidth = cellRect.width;
 
     if (currCol->IsPrimary()) {
       // If the current Column is a Primary, then we need to take into account the indentation
-      // and possibly a twisty. 
-
-      // The amount of indentation is the indentation width (|mIndentation|) by the level. 
+      // and possibly a twisty.
+
+      // The amount of indentation is the indentation width (|mIndentation|) by the level.
       int32_t level;
       mView->GetLevel(aRow, &level);
       if (!isRTL)
         cellX += mIndentation * level;
       remainWidth -= mIndentation * level;
 
-      // Find the twisty rect by computing its size. 
+      // Find the twisty rect by computing its size.
       nsRect imageRect;
       nsRect twistyRect(cellRect);
       nsStyleContext* twistyContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreetwisty);
       GetTwistyRect(aRow, currCol, imageRect, twistyRect, presContext,
                     twistyContext);
 
       if (NS_LITERAL_CSTRING("twisty").Equals(aElement)) {
         // If we're looking for the twisty Rect, just return the size
         theRect = twistyRect;
         break;
       }
-      
-      // Now we need to add in the margins of the twisty element, so that we 
-      // can find the offset of the next element in the cell. 
+
+      // Now we need to add in the margins of the twisty element, so that we
+      // can find the offset of the next element in the cell.
       nsMargin twistyMargin;
       twistyContext->StyleMargin()->GetMargin(twistyMargin);
       twistyRect.Inflate(twistyMargin);
 
       // Adjust our working X value with the twisty width (image size, margins,
       // borders, padding.
       if (!isRTL)
         cellX += twistyRect.width;
@@ -1226,34 +1226,34 @@ nsTreeBodyFrame::GetCoordsForCellItem(in
     // Add in the margins of the cell image.
     nsMargin imageMargin;
     imageContext->StyleMargin()->GetMargin(imageMargin);
     imageSize.Inflate(imageMargin);
 
     // Increment cellX by the image width
     if (!isRTL)
       cellX += imageSize.width;
-    
-    // Cell Text 
+
+    // Cell Text
     nsAutoString cellText;
     mView->GetCellText(aRow, currCol, cellText);
     // We're going to measure this text so we need to ensure bidi is enabled if
     // necessary
     CheckTextForBidi(cellText);
 
-    // Create a scratch rect to represent the text rectangle, with the current 
-    // X and Y coords, and a guess at the width and height. The width is the 
+    // Create a scratch rect to represent the text rectangle, with the current
+    // X and Y coords, and a guess at the width and height. The width is the
     // remaining width we have left to traverse in the cell, which will be the
-    // widest possible value for the text rect, and the row height. 
+    // widest possible value for the text rect, and the row height.
     nsRect textRect(cellX, cellRect.y, remainWidth, cellRect.height);
 
-    // Measure the width of the text. If the width of the text is greater than 
-    // the remaining width available, then we just assume that the text has 
+    // Measure the width of the text. If the width of the text is greater than
+    // the remaining width available, then we just assume that the text has
     // been cropped and use the remaining rect as the text Rect. Otherwise,
-    // we add in borders and padding to the text dimension and give that back. 
+    // we add in borders and padding to the text dimension and give that back.
     nsStyleContext* textContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecelltext);
 
     RefPtr<nsFontMetrics> fm =
       nsLayoutUtils::GetFontMetricsForStyleContext(textContext);
     nscoord height = fm->MaxHeight();
 
     nsMargin textMargin;
     textContext->StyleMargin()->GetMargin(textMargin);
@@ -1480,32 +1480,32 @@ nsTreeBodyFrame::AdjustForCellText(nsAut
     }
     break;
   }
 
   aTextRect.width = width;
 }
 
 nsICSSAnonBoxPseudo*
-nsTreeBodyFrame::GetItemWithinCellAt(nscoord aX, const nsRect& aCellRect, 
+nsTreeBodyFrame::GetItemWithinCellAt(nscoord aX, const nsRect& aCellRect,
                                      int32_t aRowIndex,
                                      nsTreeColumn* aColumn)
 {
   NS_PRECONDITION(aColumn && aColumn->GetFrame(), "invalid column passed");
 
   // Obtain the properties for our cell.
   PrefillPropertyArray(aRowIndex, aColumn);
   nsAutoString properties;
   mView->GetCellProperties(aRowIndex, aColumn, properties);
   nsTreeUtils::TokenizeProperties(properties, mScratchArray);
 
   // Resolve style for the cell.
   nsStyleContext* cellContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecell);
 
-  // Obtain the margins for the cell and then deflate our rect by that 
+  // Obtain the margins for the cell and then deflate our rect by that
   // amount.  The cell is assumed to be contained within the deflated rect.
   nsRect cellRect(aCellRect);
   nsMargin cellMargin;
   cellContext->StyleMargin()->GetMargin(cellMargin);
   cellRect.Deflate(cellMargin);
 
   // Adjust the rect for its border and padding.
   AdjustForBorderPadding(cellContext, cellRect);
@@ -1575,22 +1575,22 @@ nsTreeBodyFrame::GetItemWithinCellAt(nsc
       if (hasTwisty)
         return nsCSSAnonBoxes::moztreetwisty;
       else
         return nsCSSAnonBoxes::moztreecell;
     }
 
     if (!isRTL)
       currX += twistyRect.width;
-    remainingWidth -= twistyRect.width;    
+    remainingWidth -= twistyRect.width;
   }
-  
+
   // Now test to see if the user hit the icon for the cell.
   nsRect iconRect(currX, cellRect.y, remainingWidth, cellRect.height);
-  
+
   // Resolve style for the image.
   nsStyleContext* imageContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreeimage);
 
   nsRect iconSize = GetImageSize(aRowIndex, aColumn, false, imageContext);
   nsMargin imageMargin;
   imageContext->StyleMargin()->GetMargin(imageMargin);
   iconSize.Inflate(imageMargin);
   iconRect.width = iconSize.width;
@@ -1599,17 +1599,17 @@ nsTreeBodyFrame::GetItemWithinCellAt(nsc
 
   if (aX >= iconRect.x && aX < iconRect.x + iconRect.width) {
     // The user clicked on the image.
     return nsCSSAnonBoxes::moztreeimage;
   }
 
   if (!isRTL)
     currX += iconRect.width;
-  remainingWidth -= iconRect.width;    
+  remainingWidth -= iconRect.width;
 
   nsAutoString cellText;
   mView->GetCellText(aRowIndex, aColumn, cellText);
   // We're going to measure this text so we need to ensure bidi is enabled if
   // necessary
   CheckTextForBidi(cellText);
 
   nsRect textRect(currX, cellRect.y, remainingWidth, cellRect.height);
@@ -1640,17 +1640,17 @@ nsTreeBodyFrame::GetCellAt(nscoord aX, n
   *aCol = nullptr;
   *aChildElt = nullptr;
 
   *aRow = GetRowAt(aX, aY);
   if (*aRow < 0)
     return;
 
   // Determine the column hit.
-  for (nsTreeColumn* currCol = mColumns->GetFirstColumn(); currCol; 
+  for (nsTreeColumn* currCol = mColumns->GetFirstColumn(); currCol;
        currCol = currCol->GetNext()) {
     nsRect cellRect;
     nsresult rv = currCol->GetRect(this,
                                    mInnerBox.y +
                                          mRowHeight * (*aRow - mTopRowIndex),
                                    mRowHeight,
                                    &cellRect);
     if (NS_FAILED(rv)) {
@@ -1698,24 +1698,24 @@ nsTreeBodyFrame::GetCellWidth(int32_t aR
   nsStyleContext* cellContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecell);
   nsMargin bp(0,0,0,0);
   GetBorderPadding(cellContext, bp);
 
   aCurrentSize = cellRect.width;
   aDesiredSize = bp.left + bp.right;
 
   if (aCol->IsPrimary()) {
-    // If the current Column is a Primary, then we need to take into account 
-    // the indentation and possibly a twisty. 
+    // If the current Column is a Primary, then we need to take into account
+    // the indentation and possibly a twisty.
 
     // The amount of indentation is the indentation width (|mIndentation|) by the level.
     int32_t level;
     mView->GetLevel(aRow, &level);
     aDesiredSize += mIndentation * level;
-    
+
     // Find the twisty rect by computing its size.
     nsStyleContext* twistyContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreetwisty);
 
     nsRect imageSize;
     nsRect twistyRect(cellRect);
     GetTwistyRect(aRow, aCol, imageSize, twistyRect, PresContext(),
                   twistyContext);
 
@@ -1732,17 +1732,17 @@ nsTreeBodyFrame::GetCellWidth(int32_t aR
   // Account for the width of the cell image.
   nsRect imageSize = GetImageSize(aRow, aCol, false, imageContext);
   // Add in the margins of the cell image.
   nsMargin imageMargin;
   imageContext->StyleMargin()->GetMargin(imageMargin);
   imageSize.Inflate(imageMargin);
 
   aDesiredSize += imageSize.width;
-  
+
   // Get the cell text.
   nsAutoString cellText;
   mView->GetCellText(aRow, aCol, cellText);
   // We're going to measure this text so we need to ensure bidi is enabled if
   // necessary
   CheckTextForBidi(cellText);
 
   nsStyleContext* textContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecelltext);
@@ -1757,17 +1757,17 @@ nsTreeBodyFrame::GetCellWidth(int32_t aR
                                                           *aRenderingContext);
   nscoord totalTextWidth = width + bp.left + bp.right;
   aDesiredSize += totalTextWidth;
   return NS_OK;
 }
 
 nsresult
 nsTreeBodyFrame::IsCellCropped(int32_t aRow, nsITreeColumn* aCol, bool *_retval)
-{  
+{
   nscoord currentSize, desiredSize;
   nsresult rv;
 
   RefPtr<nsTreeColumn> col = GetColumnImpl(aCol);
   if (!col)
     return NS_ERROR_INVALID_ARG;
 
   RefPtr<gfxContext> rc =
@@ -1850,20 +1850,20 @@ nsTreeBodyFrame::RowCountChanged(int32_t
   mView->GetRowCount(&rowCount);
   NS_ASSERTION(rowCount == mRowCount, "row count did not change by the amount suggested, check caller");
 #endif
 
   int32_t count = Abs(aCount);
   int32_t last = LastVisibleRow();
   if (aIndex >= mTopRowIndex && aIndex <= last)
     InvalidateRange(aIndex, last);
-    
+
   ScrollParts parts = GetScrollParts();
 
-  if (mTopRowIndex == 0) {    
+  if (mTopRowIndex == 0) {
     // Just update the scrollbar and return.
     if (FullScrollbarsUpdate(false)) {
       MarkDirtyIfSelect();
     }
     return NS_OK;
   }
 
   bool needsInvalidation = false;
@@ -1925,17 +1925,17 @@ nsTreeBodyFrame::EndUpdateBatch()
   return NS_OK;
 }
 
 void
 nsTreeBodyFrame::PrefillPropertyArray(int32_t aRowIndex, nsTreeColumn* aCol)
 {
   NS_PRECONDITION(!aCol || aCol->GetFrame(), "invalid column passed");
   mScratchArray.Clear();
-  
+
   // focus
   if (mFocused)
     mScratchArray.AppendElement(nsGkAtoms::focus);
 
   // sort
   bool sorted = false;
   mView->IsSorted(&sorted);
   if (sorted)
@@ -1943,33 +1943,33 @@ nsTreeBodyFrame::PrefillPropertyArray(in
 
   // drag session
   if (mSlots && mSlots->mIsDragging)
     mScratchArray.AppendElement(nsGkAtoms::dragSession);
 
   if (aRowIndex != -1) {
     if (aRowIndex == mMouseOverRow)
       mScratchArray.AppendElement(nsGkAtoms::hover);
-  
+
     nsCOMPtr<nsITreeSelection> selection;
     mView->GetSelection(getter_AddRefs(selection));
 
     if (selection) {
       // selected
       bool isSelected;
       selection->IsSelected(aRowIndex, &isSelected);
       if (isSelected)
         mScratchArray.AppendElement(nsGkAtoms::selected);
 
       // current
       int32_t currentIndex;
       selection->GetCurrentIndex(&currentIndex);
       if (aRowIndex == currentIndex)
         mScratchArray.AppendElement(nsGkAtoms::current);
-  
+
       // active
       if (aCol) {
         nsCOMPtr<nsITreeColumn> currentColumn;
         selection->GetCurrentColumn(getter_AddRefs(currentColumn));
         if (aCol == currentColumn)
           mScratchArray.AppendElement(nsGkAtoms::active);
       }
     }
@@ -2258,43 +2258,43 @@ nsRect nsTreeBodyFrame::GetImageSize(int
   }
 
   if (myPosition->mWidth.GetUnit() == eStyleUnit_Coord)  {
     int32_t val = myPosition->mWidth.GetCoordValue();
     r.width += val;
   }
   else if (useImageRegion && myList->mImageRegion.width > 0)
     r.width += myList->mImageRegion.width;
-  else 
+  else
     needWidth = true;
 
   if (myPosition->mHeight.GetUnit() == eStyleUnit_Coord)  {
     int32_t val = myPosition->mHeight.GetCoordValue();
     r.height += val;
   }
   else if (useImageRegion && myList->mImageRegion.height > 0)
     r.height += myList->mImageRegion.height;
-  else 
+  else
     needHeight = true;
 
   if (image) {
     if (needWidth || needHeight) {
       // Get the natural image size.
 
       if (needWidth) {
         // Get the size from the image.
         nscoord width;
         image->GetWidth(&width);
-        r.width += nsPresContext::CSSPixelsToAppUnits(width); 
+        r.width += nsPresContext::CSSPixelsToAppUnits(width);
       }
-    
+
       if (needHeight) {
         nscoord height;
         image->GetHeight(&height);
-        r.height += nsPresContext::CSSPixelsToAppUnits(height); 
+        r.height += nsPresContext::CSSPixelsToAppUnits(height);
       }
     }
   }
 
   return r;
 }
 
 // GetImageDestSize returns the destination size of the image.
@@ -2498,18 +2498,18 @@ nsTreeBodyFrame::CalcHorzWidth(const Scr
   // visibility of the columnpicker and the scrollbar.
   if (aParts.mColumnsFrame)
     mAdjustWidth = mRect.width - aParts.mColumnsFrame->GetRect().width;
   else
     mAdjustWidth = 0;
 
   nscoord width = 0;
 
-  // We calculate this from the scrollable frame, so that it 
-  // properly covers all contingencies of what could be 
+  // We calculate this from the scrollable frame, so that it
+  // properly covers all contingencies of what could be
   // scrollable (columns, body, etc...)
 
   if (aParts.mColumnsScrollFrame) {
     width = aParts.mColumnsScrollFrame->GetScrollRange().width +
       aParts.mColumnsScrollFrame->GetScrollPortRect().width;
   }
 
   // If no horz scrolling periphery is present, then just return our width
@@ -2653,17 +2653,17 @@ nsTreeBodyFrame::HandleEvent(nsPresConte
                     getter_AddRefs(mSlots->mTimer),
                     "nsTreeBodyFrame::LazyScrollCallback");
        }
 #endif
       // Bail out to prevent spring loaded timer and feedback line settings.
       return NS_OK;
     }
 
-    // If changed from last time, invalidate primary cell at the old location and if allowed, 
+    // If changed from last time, invalidate primary cell at the old location and if allowed,
     // invalidate primary cell at the new location. If nothing changed, just bail.
     if (mSlots->mDropRow != lastDropRow ||
         mSlots->mDropOrient != lastDropOrient ||
         mSlots->mDragAction != lastDragAction) {
 
       // Invalidate row at the old location.
       if (mSlots->mDropAllowed) {
         mSlots->mDropAllowed = false;
@@ -3000,17 +3000,17 @@ nsTreeBodyFrame::PaintColumn(nsTreeColum
   nsAutoString properties;
   mView->GetColumnProperties(aColumn, properties);
   nsTreeUtils::TokenizeProperties(properties, mScratchArray);
 
   // Resolve style for the column.  It contains all the info we need to lay ourselves
   // out and to paint.
   nsStyleContext* colContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecolumn);
 
-  // Obtain the margins for the cell and then deflate our rect by that 
+  // Obtain the margins for the cell and then deflate our rect by that
   // amount.  The cell is assumed to be contained within the deflated rect.
   nsRect colRect(aColumnRect);
   nsMargin colMargin;
   colContext->StyleMargin()->GetMargin(colMargin);
   colRect.Deflate(colMargin);
 
   return PaintBackgroundLayer(colContext, aPresContext, aRenderingContext,
                               colRect, aDirtyRect);
@@ -3022,17 +3022,17 @@ nsTreeBodyFrame::PaintRow(int32_t       
                           nsPresContext*        aPresContext,
                           gfxContext&           aRenderingContext,
                           const nsRect&         aDirtyRect,
                           nsPoint               aPt,
                           nsDisplayListBuilder* aBuilder)
 {
   // We have been given a rect for our row.  We treat this row like a full-blown
   // frame, meaning that it can have borders, margins, padding, and a background.
-  
+
   // Without a view, we have no data. Check for this up front.
   if (!mView) {
     return DrawResult::SUCCESS;
   }
 
   nsresult rv;
 
   // Now obtain the properties for our row.
@@ -3042,17 +3042,17 @@ nsTreeBodyFrame::PaintRow(int32_t       
   nsAutoString properties;
   mView->GetRowProperties(aRowIndex, properties);
   nsTreeUtils::TokenizeProperties(properties, mScratchArray);
 
   // Resolve style for the row.  It contains all the info we need to lay ourselves
   // out and to paint.
   nsStyleContext* rowContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreerow);
 
-  // Obtain the margins for the row and then deflate our rect by that 
+  // Obtain the margins for the row and then deflate our rect by that
   // amount.  The row is assumed to be contained within the deflated rect.
   nsRect rowRect(aRowRect);
   nsMargin rowMargin;
   rowContext->StyleMargin()->GetMargin(rowMargin);
   rowRect.Deflate(rowMargin);
 
   DrawResult result = DrawResult::SUCCESS;
 
@@ -3075,17 +3075,17 @@ nsTreeBodyFrame::PaintRow(int32_t       
     nsRect dirty;
     dirty.IntersectRect(rowRect, aDirtyRect);
     theme->DrawWidgetBackground(&aRenderingContext, this, appearance, rowRect,
                                 dirty);
   } else {
     result &= PaintBackgroundLayer(rowContext, aPresContext, aRenderingContext,
                                    rowRect, aDirtyRect);
   }
-  
+
   // Adjust the rect for its border and padding.
   nsRect originalRowRect = rowRect;
   AdjustForBorderPadding(rowContext, rowRect);
 
   bool isSeparator = false;
   mView->IsSeparator(aRowIndex, &isSeparator);
   if (isSeparator) {
     // The row is a separator.
@@ -3209,31 +3209,31 @@ nsTreeBodyFrame::PaintSeparator(int32_t 
 
   DrawResult result = DrawResult::SUCCESS;
 
   // use -moz-appearance if provided.
   if (useTheme) {
     nsRect dirty;
     dirty.IntersectRect(aSeparatorRect, aDirtyRect);
     theme->DrawWidgetBackground(&aRenderingContext, this,
-                                displayData->mAppearance, aSeparatorRect, dirty); 
+                                displayData->mAppearance, aSeparatorRect, dirty);
   }
   else {
     const nsStylePosition* stylePosition = separatorContext->StylePosition();
 
     // Obtain the height for the separator or use the default value.
     nscoord height;
     if (stylePosition->mHeight.GetUnit() == eStyleUnit_Coord)
       height = stylePosition->mHeight.GetCoordValue();
     else {
       // Use default height 2px.
       height = nsPresContext::CSSPixelsToAppUnits(2);
     }
 
-    // Obtain the margins for the separator and then deflate our rect by that 
+    // Obtain the margins for the separator and then deflate our rect by that
     // amount. The separator is assumed to be contained within the deflated rect.
     nsRect separatorRect(aSeparatorRect.x, aSeparatorRect.y, aSeparatorRect.width, height);
     nsMargin separatorMargin;
     separatorContext->StyleMargin()->GetMargin(separatorMargin);
     separatorRect.Deflate(separatorMargin);
 
     // Center the separator.
     separatorRect.y += (aSeparatorRect.height - height) / 2;
@@ -3267,17 +3267,17 @@ nsTreeBodyFrame::PaintCell(int32_t      
   nsTreeUtils::TokenizeProperties(properties, mScratchArray);
 
   // Resolve style for the cell.  It contains all the info we need to lay ourselves
   // out and to paint.
   nsStyleContext* cellContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecell);
 
   bool isRTL = StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL;
 
-  // Obtain the margins for the cell and then deflate our rect by that 
+  // Obtain the margins for the cell and then deflate our rect by that
   // amount.  The cell is assumed to be contained within the deflated rect.
   nsRect cellRect(aCellRect);
   nsMargin cellMargin;
   cellContext->StyleMargin()->GetMargin(cellMargin);
   cellRect.Deflate(cellMargin);
 
   // Paint our borders and background for our row rect.
   DrawResult result = PaintBackgroundLayer(cellContext, aPresContext,
@@ -3286,34 +3286,34 @@ nsTreeBodyFrame::PaintCell(int32_t      
 
   // Adjust the rect for its border and padding.
   AdjustForBorderPadding(cellContext, cellRect);
 
   nscoord currX = cellRect.x;
   nscoord remainingWidth = cellRect.width;
 
   // Now we paint the contents of the cells.
-  // Directionality of the tree determines the order in which we paint.  
+  // Directionality of the tree determines the order in which we paint.
   // NS_STYLE_DIRECTION_LTR means paint from left to right.
   // NS_STYLE_DIRECTION_RTL means paint from right to left.
 
   if (aColumn->IsPrimary()) {
     // If we're the primary column, we need to indent and paint the twisty and any connecting lines
     // between siblings.
 
     int32_t level;
     mView->GetLevel(aRowIndex, &level);
 
     if (!isRTL)
       currX += mIndentation * level;
     remainingWidth -= mIndentation * level;
 
     // Resolve the style to use for the connecting lines.
     nsStyleContext* lineContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreeline);
-    
+
     if (mIndentation && level &&
         lineContext->StyleVisibility()->IsVisibleOrCollapsed()) {
       // Paint the thread lines.
 
       // Get the size of the twisty. We don't want to paint the twisty
       // before painting of connecting lines since it would paint lines over
       // the twisty. But we need to leave a place for it.
       nsStyleContext* twistyContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreetwisty);
@@ -3378,17 +3378,17 @@ nsTreeBodyFrame::PaintCell(int32_t      
             if (hasNextSibling)
               p2.y = pc->AppUnitsToGfxUnits(lineY + mRowHeight);
             else if (i == level)
               p2.y = pc->AppUnitsToGfxUnits(lineY + mRowHeight / 2);
 
             SnapLineToDevicePixelsForStroking(p1, p2, *drawTarget,
                                               strokeOptions.mLineWidth);
             drawTarget->StrokeLine(p1, p2, colorPatt, strokeOptions);
-          }          
+          }
         }
 
         int32_t parent;
         if (NS_FAILED(mView->GetParentIndex(currentParent, &parent)) || parent < 0)
           break;
         currentParent = parent;
         srcX -= mIndentation;
       }
@@ -3397,28 +3397,28 @@ nsTreeBodyFrame::PaintCell(int32_t      
     }
 
     // Always leave space for the twisty.
     nsRect twistyRect(currX, cellRect.y, remainingWidth, cellRect.height);
     result &= PaintTwisty(aRowIndex, aColumn, twistyRect, aPresContext,
                           aRenderingContext, aDirtyRect, remainingWidth,
                           currX);
   }
-  
+
   // Now paint the icon for our cell.
   nsRect iconRect(currX, cellRect.y, remainingWidth, cellRect.height);
   nsRect dirtyRect;
   if (dirtyRect.IntersectRect(aDirtyRect, iconRect)) {
     result &= PaintImage(aRowIndex, aColumn, iconRect, aPresContext,
                          aRenderingContext, aDirtyRect, remainingWidth,
                          currX, aBuilder);
   }
 
   // Now paint our element, but only if we aren't a cycler column.
-  // XXX until we have the ability to load images, allow the view to 
+  // XXX until we have the ability to load images, allow the view to
   // insert text into cycler columns...
   if (!aColumn->IsCycler()) {
     nsRect elementRect(currX, cellRect.y, remainingWidth, cellRect.height);
     nsRect dirtyRect;
     if (dirtyRect.IntersectRect(aDirtyRect, elementRect)) {
       switch (aColumn->GetType()) {
         case nsITreeColumn::TYPE_TEXT:
         case nsITreeColumn::TYPE_PASSWORD:
@@ -3478,28 +3478,28 @@ nsTreeBodyFrame::PaintTwisty(int32_t    
     mView->IsContainerEmpty(aRowIndex, &isContainerEmpty);
     if (!isContainerEmpty)
       shouldPaint = true;
   }
 
   // Resolve style for the twisty.
   nsStyleContext* twistyContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreetwisty);
 
-  // Obtain the margins for the twisty and then deflate our rect by that 
+  // Obtain the margins for the twisty and then deflate our rect by that
   // amount.  The twisty is assumed to be contained within the deflated rect.
   nsRect twistyRect(aTwistyRect);
   nsMargin twistyMargin;
   twistyContext->StyleMargin()->GetMargin(twistyMargin);
   twistyRect.Deflate(twistyMargin);
 
   nsRect imageSize;
   nsITheme* theme = GetTwistyRect(aRowIndex, aColumn, imageSize, twistyRect,
                                   aPresContext, twistyContext);
 
-  // Subtract out the remaining width.  This is done even when we don't actually paint a twisty in 
+  // Subtract out the remaining width.  This is done even when we don't actually paint a twisty in
   // this cell, so that cells in different rows still line up.
   nsRect copyRect(twistyRect);
   copyRect.Inflate(twistyMargin);
   aRemainingWidth -= copyRect.width;
   if (!isRTL)
     aCurrX += copyRect.width;
 
   DrawResult result = DrawResult::SUCCESS;
@@ -3513,17 +3513,17 @@ nsTreeBodyFrame::PaintTwisty(int32_t    
     if (theme) {
       if (isRTL)
         twistyRect.x = rightEdge - twistyRect.width;
       // yeah, I know it says we're drawing a background, but a twisty is really a fg
       // object since it doesn't have anything that gecko would want to draw over it. Besides,
       // we have to prevent imagelib from drawing it.
       nsRect dirty;
       dirty.IntersectRect(twistyRect, aDirtyRect);
-      theme->DrawWidgetBackground(&aRenderingContext, this, 
+      theme->DrawWidgetBackground(&aRenderingContext, this,
                                   twistyContext->StyleDisplay()->mAppearance, twistyRect, dirty);
     }
     else {
       // Time to paint the twisty.
       // Adjust the rect for its border and padding.
       nsMargin bp(0,0,0,0);
       GetBorderPadding(twistyContext, bp);
       twistyRect.Deflate(bp);
@@ -3777,17 +3777,17 @@ nsTreeBodyFrame::PaintText(int32_t      
 
   // Resolve style for the text.  It contains all the info we need to lay ourselves
   // out and to paint.
   nsStyleContext* textContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecelltext);
 
   // Obtain opacity value for the image.
   float opacity = textContext->StyleEffects()->mOpacity;
 
-  // Obtain the margins for the text and then deflate our rect by that 
+  // Obtain the margins for the text and then deflate our rect by that
   // amount.  The text is assumed to be contained within the deflated rect.
   nsRect textRect(aTextRect);
   nsMargin textMargin;
   textContext->StyleMargin()->GetMargin(textMargin);
   textRect.Deflate(textMargin);
 
   // Adjust the rect for its border and padding.
   nsMargin bp(0,0,0,0);
@@ -3885,23 +3885,23 @@ nsTreeBodyFrame::PaintCheckbox(int32_t  
 {
   NS_PRECONDITION(aColumn && aColumn->GetFrame(), "invalid column passed");
 
   // Resolve style for the checkbox.
   nsStyleContext* checkboxContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreecheckbox);
 
   nscoord rightEdge = aCheckboxRect.XMost();
 
-  // Obtain the margins for the checkbox and then deflate our rect by that 
+  // Obtain the margins for the checkbox and then deflate our rect by that
   // amount.  The checkbox is assumed to be contained within the deflated rect.
   nsRect checkboxRect(aCheckboxRect);
   nsMargin checkboxMargin;
   checkboxContext->StyleMargin()->GetMargin(checkboxMargin);
   checkboxRect.Deflate(checkboxMargin);
-  
+
   nsRect imageSize = GetImageSize(aRowIndex, aColumn, true, checkboxContext);
 
   if (imageSize.height > checkboxRect.height)
     imageSize.height = checkboxRect.height;
   if (imageSize.width > checkboxRect.width)
     imageSize.width = checkboxRect.width;
 
   if (StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL)
@@ -3919,17 +3919,17 @@ nsTreeBodyFrame::PaintCheckbox(int32_t  
   checkboxRect.Deflate(bp);
 
   // Get the image for drawing.
   nsCOMPtr<imgIContainer> image;
   bool useImageRegion = true;
   GetImage(aRowIndex, aColumn, true, checkboxContext, useImageRegion, getter_AddRefs(image));
   if (image) {
     nsPoint pt = checkboxRect.TopLeft();
-          
+
     if (imageSize.height < checkboxRect.height) {
       pt.y += (checkboxRect.height - imageSize.height)/2;
     }
 
     if (imageSize.width < checkboxRect.width) {
       pt.x += (checkboxRect.width - imageSize.width)/2;
     }
 
@@ -3954,30 +3954,30 @@ nsTreeBodyFrame::PaintProgressMeter(int3
                                     nsDisplayListBuilder* aBuilder)
 {
   NS_PRECONDITION(aColumn && aColumn->GetFrame(), "invalid column passed");
 
   // Resolve style for the progress meter.  It contains all the info we need
   // to lay ourselves out and to paint.
   nsStyleContext* meterContext = GetPseudoStyleContext(nsCSSAnonBoxes::moztreeprogressmeter);
 
-  // Obtain the margins for the progress meter and then deflate our rect by that 
+  // Obtain the margins for the progress meter and then deflate our rect by that
   // amount. The progress meter is assumed to be contained within the deflated
   // rect.
   nsRect meterRect(aProgressMeterRect);
   nsMargin meterMargin;
   meterContext->StyleMargin()->GetMargin(meterMargin);
   meterRect.Deflate(meterMargin);
 
   // Paint our borders and background for our progress meter rect.
   DrawResult result = PaintBackgroundLayer(meterContext, aPresContext,
                                            aRenderingContext, meterRect,
                                            aDirtyRect);
 
-  // Time to paint our progress. 
+  // Time to paint our progress.
   int32_t state;
   mView->GetProgressMode(aRowIndex, aColumn, &state);
   if (state == nsITreeView::PROGRESS_NORMAL) {
     // Adjust the rect for its border and padding.
     AdjustForBorderPadding(meterContext, meterRect);
 
     // Now obtain the value for our cell.
     nsAutoString value;
@@ -4081,17 +4081,17 @@ nsTreeBodyFrame::PaintDropFeedback(const
 
   DrawResult result = DrawResult::SUCCESS;
 
   // Paint only if it is visible.
   if (feedbackContext->StyleVisibility()->IsVisibleOrCollapsed()) {
     int32_t level;
     mView->GetLevel(mSlots->mDropRow, &level);
 
-    // If our previous or next row has greater level use that for 
+    // If our previous or next row has greater level use that for
     // correct visual indentation.
     if (mSlots->mDropOrient == nsITreeView::DROP_BEFORE) {
       if (mSlots->mDropRow > 0) {
         int32_t previousLevel;
         mView->GetLevel(mSlots->mDropRow - 1, &previousLevel);
         if (previousLevel > level)
           level = previousLevel;
       }
@@ -4234,17 +4234,17 @@ nsTreeBodyFrame::EnsureCellIsVisible(int
   nscoord columnWidth;
   rv = col->GetWidthInTwips(this, &columnWidth);
   if(NS_FAILED(rv)) return rv;
 
   // If the start of the column is before the
   // start of the horizontal view, then scroll
   if (columnPos < mHorzPosition)
     result = columnPos;
-  // If the end of the column is past the end of 
+  // If the end of the column is past the end of
   // the horizontal view, then scroll
   else if ((columnPos + columnWidth) > (mHorzPosition + mInnerBox.width))
     result = ((columnPos + columnWidth) - (mHorzPosition + mInnerBox.width)) + mHorzPosition;
 
   if (result != -1) {
     rv = ScrollHorzInternal(parts, result);
     if(NS_FAILED(rv)) return rv;
   }
@@ -4373,17 +4373,17 @@ nsTreeBodyFrame::ScrollHorzInternal(cons
 
   if (aPosition == mHorzPosition)
     return NS_OK;
 
   if (aPosition < 0 || aPosition > mHorzWidth)
     return NS_OK;
 
   nsRect bounds = aParts.mColumnsFrame->GetRect();
-  if (aPosition > (mHorzWidth - bounds.width)) 
+  if (aPosition > (mHorzWidth - bounds.width))
     aPosition = mHorzWidth - bounds.width;
 
   mHorzPosition = aPosition;
 
   Invalidate();
 
   // Update the column scroll view
   AutoWeakFrame weakFrame(this);
@@ -4406,17 +4406,17 @@ nsTreeBodyFrame::ScrollByPage(nsScrollba
   ScrollByPages(aDirection);
 }
 
 void
 nsTreeBodyFrame::ScrollByWhole(nsScrollbarFrame* aScrollbar, int32_t aDirection,
                                nsIScrollbarMediator::ScrollSnapMode aSnap)
 {
   // CSS Scroll Snapping is not enabled for XUL, aSnap is ignored
-  MOZ_ASSERT(aScrollbar != nullptr); 
+  MOZ_ASSERT(aScrollbar != nullptr);
   int32_t newIndex = aDirection < 0 ? 0 : mTopRowIndex;
   ScrollToRow(newIndex);
 }
 
 void
 nsTreeBodyFrame::ScrollByLine(nsScrollbarFrame* aScrollbar, int32_t aDirection,
                               nsIScrollbarMediator::ScrollSnapMode aSnap)
 {
@@ -4457,23 +4457,23 @@ nsTreeBodyFrame::RepeatButtonScroll(nsSc
 }
 
 void
 nsTreeBodyFrame::ThumbMoved(nsScrollbarFrame* aScrollbar,
                             nscoord aOldPos,
                             nscoord aNewPos)
 {
   ScrollParts parts = GetScrollParts();
-  
+
   if (aOldPos == aNewPos)
     return;
 
   AutoWeakFrame weakFrame(this);
 
-  // Vertical Scrollbar 
+  // Vertical Scrollbar
   if (parts.mVScrollbar == aScrollbar) {
     nscoord rh = nsPresContext::AppUnitsToIntCSSPixels(mRowHeight);
     nscoord newIndex = nsPresContext::AppUnitsToIntCSSPixels(aNewPos);
     nscoord newrow = newIndex/rh;
     ScrollInternal(parts, newrow);
   // Horizontal Scrollbar
   } else if (parts.mHScrollbar == aScrollbar) {
     int32_t newIndex = nsPresContext::AppUnitsToIntCSSPixels(aNewPos);
@@ -4566,17 +4566,17 @@ nsTreeBodyFrame::DidSetStyleContext(nsSt
   // XXX The following is hacky, but it's not incorrect,
   // and appears to fix a few bugs with style changes, like text zoom and
   // dpi changes
   mIndentation = GetIndentation();
   mRowHeight = GetRowHeight();
   mStringWidth = -1;
 }
 
-bool 
+bool
 nsTreeBodyFrame::OffsetForHorzScroll(nsRect& rect, bool clip)
 {
   rect.x -= mHorzPosition;
 
   // Scrolled out before
   if (rect.XMost() <= mInnerBox.x)
     return false;
 
@@ -4618,17 +4618,17 @@ nsTreeBodyFrame::CanAutoScroll(int32_t a
 // Doesn't query the content about if the drag is allowable, that's done elsewhere.
 //
 // For containers, we break up the vertical space of the row as follows: if in
 // the topmost 25%, the drop is _before_ the row the mouse is over; if in the
 // last 25%, _after_; in the middle 50%, we consider it a drop _on_ the container.
 //
 // For non-containers, if the mouse is in the top 50% of the row, the drop is
 // _before_ and the bottom 50% _after_
-void 
+void
 nsTreeBodyFrame::ComputeDropPosition(WidgetGUIEvent* aEvent,
                                      int32_t* aRow,
                                      int16_t* aOrient,
                                      int16_t* aScrollLines)
 {
   *aOrient = -1;
   *aScrollLines = 0;
 
@@ -4637,17 +4637,17 @@ nsTreeBodyFrame::ComputeDropPosition(Wid
   nsPoint pt = nsLayoutUtils::GetEventCoordinatesRelativeTo(aEvent, this);
   int32_t xTwips = pt.x - mInnerBox.x;
   int32_t yTwips = pt.y - mInnerBox.y;
 
   *aRow = GetRowAt(xTwips, yTwips);
   if (*aRow >=0) {
     // Compute the top/bottom of the row in question.
     int32_t yOffset = yTwips - mRowHeight * (*aRow - mTopRowIndex);
-   
+
     bool isContainer = false;
     mView->IsContainer (*aRow, &isContainer);
     if (isContainer) {
       // for a container, use a 25%/50%/25% breakdown
       if (yOffset < mRowHeight / 4)
         *aOrient = nsITreeView::DROP_BEFORE;
       else if (yOffset > mRowHeight - (mRowHeight / 4))
         *aOrient = nsITreeView::DROP_AFTER;
--- a/layout/xul/tree/nsTreeBodyFrame.h
+++ b/layout/xul/tree/nsTreeBodyFrame.h
@@ -269,43 +269,43 @@ protected:
                        nsTreeColumn*       aColumn,
                        const nsRect&       aTextRect,
                        nsPresContext*      aPresContext,
                        gfxContext&         aRenderingContext,
                        const nsRect&       aDirtyRect,
                        nscoord&            aCurrX);
 
   // This method paints the checkbox inside a particular cell of the tree.
-  DrawResult PaintCheckbox(int32_t              aRowIndex, 
+  DrawResult PaintCheckbox(int32_t              aRowIndex,
                            nsTreeColumn*        aColumn,
                            const nsRect&        aCheckboxRect,
                            nsPresContext*       aPresContext,
                            gfxContext&          aRenderingContext,
                            const nsRect&        aDirtyRect);
 
   // This method paints the progress meter inside a particular cell of the tree.
   DrawResult PaintProgressMeter(int32_t               aRowIndex,
                                 nsTreeColumn*         aColumn,
                                 const nsRect&         aProgressMeterRect,
                                 nsPresContext*        aPresContext,
                                 gfxContext&           aRenderingContext,
                                 const nsRect&         aDirtyRect,
                                 nsDisplayListBuilder* aBuilder);
 
   // This method paints a drop feedback of the tree.
-  DrawResult PaintDropFeedback(const nsRect&        aDropFeedbackRect, 
+  DrawResult PaintDropFeedback(const nsRect&        aDropFeedbackRect,
                                nsPresContext*       aPresContext,
                                gfxContext&          aRenderingContext,
                                const nsRect&        aDirtyRect,
                                nsPoint              aPt);
 
   // This method is called with a specific style context and rect to
   // paint the background rect as if it were a full-blown frame.
   DrawResult PaintBackgroundLayer(nsStyleContext*      aStyleContext,
-                                  nsPresContext*       aPresContext, 
+                                  nsPresContext*       aPresContext,
                                   gfxContext&          aRenderingContext,
                                   const nsRect&        aRect,
                                   const nsRect&        aDirtyRect);
 
 
   // An internal hit test.  aX and aY are expected to be in twips in the
   // coordinate system of this frame.
   int32_t GetRowAt(nscoord aX, nscoord aY);
@@ -597,17 +597,17 @@ protected: // Data Members
   // is provided by the view or by the style context. The style context
   // represents a resolved :-moz-tree-cell-image (or twisty) pseudo-element.
   // It maps directly to an imgIRequest.
   nsDataHashtable<nsStringHashKey, nsTreeImageCacheEntry> mImageCache;
 
   // A scratch array used when looking up cached style contexts.
   AtomArray mScratchArray;
 
-  // The index of the first visible row and the # of rows visible onscreen.  
+  // The index of the first visible row and the # of rows visible onscreen.
   // The tree only examines onscreen rows, starting from
   // this index and going up to index+pageLength.
   int32_t mTopRowIndex;
   int32_t mPageLength;
 
   // The horizontal scroll position
   nscoord mHorzPosition;
 
--- a/layout/xul/tree/nsTreeColFrame.cpp
+++ b/layout/xul/tree/nsTreeColFrame.cpp
@@ -115,20 +115,20 @@ void
 nsTreeColFrame::BuildDisplayListForChildren(nsDisplayListBuilder*   aBuilder,
                                             const nsRect&           aDirtyRect,
                                             const nsDisplayListSet& aLists)
 {
   if (!aBuilder->IsForEventDelivery()) {
     nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, aLists);
     return;
   }
-  
+
   nsDisplayListCollection set;
   nsBoxFrame::BuildDisplayListForChildren(aBuilder, aDirtyRect, set);
-  
+
   WrapListsInRedirector(aBuilder, set, aLists);
 
   aLists.Content()->AppendNewToTop(new (aBuilder)
     nsDisplayXULTreeColSplitterTarget(aBuilder, this));
 }
 
 nsresult
 nsTreeColFrame::AttributeChanged(int32_t aNameSpaceID,
--- a/layout/xul/tree/nsTreeColFrame.h
+++ b/layout/xul/tree/nsTreeColFrame.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mozilla/Attributes.h"
 #include "nsBoxFrame.h"
 
 class nsITreeBoxObject;
 
-nsIFrame* NS_NewTreeColFrame(nsIPresShell* aPresShell, 
+nsIFrame* NS_NewTreeColFrame(nsIPresShell* aPresShell,
                              nsStyleContext* aContext);
 
 class nsTreeColFrame final : public nsBoxFrame
 {
 public:
   NS_DECL_FRAMEARENA_HELPERS(nsTreeColFrame)
 
   explicit nsTreeColFrame(nsStyleContext* aContext):
--- a/layout/xul/tree/nsTreeColumns.cpp
+++ b/layout/xul/tree/nsTreeColumns.cpp
@@ -406,17 +406,17 @@ nsTreeColumns::~nsTreeColumns()
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(nsTreeColumns)
 
 // QueryInterface implementation for nsTreeColumns
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsTreeColumns)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsITreeColumns)
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
-                                                                                
+
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsTreeColumns)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsTreeColumns)
 
 nsIContent*
 nsTreeColumns::GetParentObject() const
 {
   return mTree ? mTree->GetBaseElement() : nullptr;
 }
@@ -539,17 +539,17 @@ nsTreeColumns::GetKeyColumn()
       continue;
 
     // Skip non-text column
     if (currCol->GetType() != nsITreeColumn::TYPE_TEXT)
       continue;
 
     if (!first)
       first = currCol;
-    
+
     if (nsContentUtils::HasNonEmptyAttr(currCol->mContent, kNameSpaceID_None,
                                         nsGkAtoms::sortDirection)) {
       // Use sorted column as the key.
       sorted = currCol;
       break;
     }
 
     if (currCol->IsPrimary())
--- a/layout/xul/tree/nsTreeContentView.cpp
+++ b/layout/xul/tree/nsTreeContentView.cpp
@@ -359,17 +359,17 @@ NS_IMETHODIMP
 nsTreeContentView::CanDrop(int32_t aIndex, int32_t aOrientation,
                            nsIDOMDataTransfer* aDataTransfer, bool *_retval)
 {
   ErrorResult rv;
   *_retval = CanDrop(aIndex, aOrientation, DataTransfer::Cast(aDataTransfer),
                      rv);
   return rv.StealNSResult();
 }
- 
+
 void
 nsTreeContentView::Drop(int32_t aRow, int32_t aOrientation,
                         DataTransfer* aDataTransfer, ErrorResult& aError)
 {
   if (!IsValidRowIndex(aRow)) {
     aError.Throw(NS_ERROR_INVALID_ARG);
   }
 }
@@ -981,17 +981,17 @@ nsTreeContentView::AttributeChanged(nsID
 
   // Handle changes of the hidden attribute.
   if (aAttribute == nsGkAtoms::hidden &&
       aElement->IsAnyOfXULElements(nsGkAtoms::treeitem,
                                    nsGkAtoms::treeseparator)) {
     bool hidden = aElement->AttrValueIs(kNameSpaceID_None,
                                           nsGkAtoms::hidden,
                                           nsGkAtoms::_true, eCaseMatters);
- 
+
     int32_t index = FindContent(aElement);
     if (hidden && index >= 0) {
       // Hide this row along with its children.
       int32_t count = RemoveRow(index);
       if (mBoxObject)
         mBoxObject->RowCountChanged(index, -count);
     }
     else if (!hidden && index < 0) {
@@ -1306,17 +1306,17 @@ nsTreeContentView::SerializeItem(Element
         row->mSubtreeSize += aRows.Length() - count;
       }
       else
         row->SetEmpty(true);
     } else if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::empty,
                                      nsGkAtoms::_true, eCaseMatters)) {
       row->SetEmpty(true);
     }
-  } 
+  }
 }
 
 void
 nsTreeContentView::SerializeSeparator(Element* aContent,
                                       int32_t aParentIndex, int32_t* aIndex,
                                       nsTArray<UniquePtr<Row>>& aRows)
 {
   if (aContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::hidden,
@@ -1328,17 +1328,17 @@ nsTreeContentView::SerializeSeparator(El
   aRows.AppendElement(Move(row));
 }
 
 void
 nsTreeContentView::GetIndexInSubtree(nsIContent* aContainer,
                                      nsIContent* aContent, int32_t* aIndex)
 {
   uint32_t childCount = aContainer->GetChildCount();
-  
+
   if (!aContainer->IsXULElement())
     return;
 
   for (uint32_t i = 0; i < childCount; i++) {
     nsIContent *content = aContainer->GetChildAt(i);
 
     if (content == aContent)
       break;
--- a/layout/xul/tree/nsTreeContentView.h
+++ b/layout/xul/tree/nsTreeContentView.h
@@ -141,30 +141,30 @@ class nsTreeContentView final : public n
 
     void SerializeItem(Element* aContent, int32_t aParentIndex,
                        int32_t* aIndex, nsTArray<mozilla::UniquePtr<Row>>& aRows);
 
     void SerializeSeparator(Element* aContent, int32_t aParentIndex,
                             int32_t* aIndex, nsTArray<mozilla::UniquePtr<Row>>& aRows);
 
     void GetIndexInSubtree(nsIContent* aContainer, nsIContent* aContent, int32_t* aResult);
-    
+
     // Helper methods which we use to manage our plain array of rows.
     int32_t EnsureSubtree(int32_t aIndex);
 
     int32_t RemoveSubtree(int32_t aIndex);
 
     int32_t InsertRow(int32_t aParentIndex, int32_t aIndex, nsIContent* aContent);
 
     void InsertRowFor(nsIContent* aParent, nsIContent* aChild);
 
     int32_t RemoveRow(int32_t aIndex);
 
     void ClearRows();
-    
+
     void OpenContainer(int32_t aIndex);
 
     void CloseContainer(int32_t aIndex);
 
     int32_t FindContent(nsIContent* aContent);
 
     void UpdateSubtreeSizes(int32_t aIndex, int32_t aCount);
 
--- a/layout/xul/tree/nsTreeSelection.cpp
+++ b/layout/xul/tree/nsTreeSelection.cpp
@@ -26,17 +26,17 @@ struct nsTreeRange
   nsTreeRange* mPrev;
   nsTreeRange* mNext;
 
   int32_t mMin;
   int32_t mMax;
 
   nsTreeRange(nsTreeSelection* aSel, int32_t aSingleVal)
     :mSelection(aSel), mPrev(nullptr), mNext(nullptr), mMin(aSingleVal), mMax(aSingleVal) {}
-  nsTreeRange(nsTreeSelection* aSel, int32_t aMin, int32_t aMax) 
+  nsTreeRange(nsTreeSelection* aSel, int32_t aMin, int32_t aMax)
     :mSelection(aSel), mPrev(nullptr), mNext(nullptr), mMin(aMin), mMax(aMax) {}
 
   ~nsTreeRange() { delete mNext; }
 
   void Connect(nsTreeRange* aPrev = nullptr, nsTreeRange* aNext = nullptr) {
     if (aPrev)
       aPrev->mNext = this;
     else
@@ -179,68 +179,68 @@ struct nsTreeRange
   {
     nsTreeRange* cur = aRange;
     while (cur) {
       aRanges.AppendElement(cur->mMin);
       aRanges.AppendElement(cur->mMax);
       cur = cur->mNext;
     }
   }
-  
+
   static void InvalidateRanges(nsITreeBoxObject* aTree,
                                nsTArray<int32_t>& aRanges)
   {
     if (aTree) {
       nsCOMPtr<nsITreeBoxObject> tree = aTree;
       for (uint32_t i = 0; i < aRanges.Length(); i += 2) {
         aTree->InvalidateRange(aRanges[i], aRanges[i + 1]);
       }
     }
   }
 
   void Invalidate() {
     nsTArray<int32_t> ranges;
     CollectRanges(this, ranges);
     InvalidateRanges(mSelection->mTree, ranges);
-    
+
   }
 
   void RemoveAllBut(int32_t aIndex) {
     if (aIndex >= mMin && aIndex <= mMax) {
 
       // Invalidate everything in this list.
       nsTArray<int32_t> ranges;
       CollectRanges(mSelection->mFirstRange, ranges);
 
       mMin = aIndex;
       mMax = aIndex;
-      
+
       nsTreeRange* first = mSelection->mFirstRange;
       if (mPrev)
         mPrev->mNext = mNext;
       if (mNext)
         mNext->mPrev = mPrev;
       mNext = mPrev = nullptr;
-      
+
       if (first != this) {
         delete mSelection->mFirstRange;
         mSelection->mFirstRange = this;
       }
       InvalidateRanges(mSelection->mTree, ranges);
     }
     else if (mNext)
       mNext->RemoveAllBut(aIndex);
   }
 
   void Insert(nsTreeRange* aRange) {
     if (mMin >= aRange->mMax)
       aRange->Connect(mPrev, this);
     else if (mNext)
       mNext->Insert(aRange);
-    else 
+    else
       aRange->Connect(this, nullptr);
   }
 };
 
 nsTreeSelection::nsTreeSelection(nsITreeBoxObject* aTree)
   : mTree(aTree),
     mSuppressed(false),
     mCurrentIndex(-1),
@@ -448,17 +448,17 @@ NS_IMETHODIMP nsTreeSelection::RangedSel
     else
       aStartIndex = aEndIndex;
   }
 
   mShiftSelectPivot = aStartIndex;
   rv = SetCurrentIndex(aEndIndex);
   if (NS_FAILED(rv))
     return rv;
-  
+
   int32_t start = aStartIndex < aEndIndex ? aStartIndex : aEndIndex;
   int32_t end = aStartIndex < aEndIndex ? aEndIndex : aStartIndex;
 
   if (aAugment && mFirstRange) {
     // We need to remove all the items within our selected range from the selection,
     // and then we insert our new range into the list.
     nsresult rv = mFirstRange->RemoveRange(start, end);
     if (NS_FAILED(rv))
@@ -491,17 +491,17 @@ NS_IMETHODIMP nsTreeSelection::ClearRang
     int32_t start = aStartIndex < aEndIndex ? aStartIndex : aEndIndex;
     int32_t end = aStartIndex < aEndIndex ? aEndIndex : aStartIndex;
 
     mFirstRange->RemoveRange(start, end);
 
     if (mTree)
       mTree->InvalidateRange(start, end);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsTreeSelection::ClearSelection()
 {
   if (mFirstRange) {
     mFirstRange->Invalidate();
     delete mFirstRange;
@@ -536,17 +536,17 @@ NS_IMETHODIMP nsTreeSelection::SelectAll
   if (NS_FAILED(rv))
     return rv;
 
   if (rowCount == 0 || (rowCount > 1 && single))
     return NS_OK;
 
   mShiftSelectPivot = -1;
 
-  // Invalidate not necessary when clearing selection, since 
+  // Invalidate not necessary when clearing selection, since
   // we're going to invalidate the world on the SelectAll.
   delete mFirstRange;
 
   mFirstRange = new nsTreeRange(this, 0, rowCount-1);
   mFirstRange->Invalidate();
 
   FireOnSelectHandler();
 
@@ -585,17 +585,17 @@ NS_IMETHODIMP nsTreeSelection::GetRangeA
 }
 
 NS_IMETHODIMP nsTreeSelection::GetCount(int32_t *count)
 {
   if (mFirstRange)
     *count = mFirstRange->Count();
   else // No range available, so there's no selected row.
     *count = 0;
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsTreeSelection::GetSelectEventsSuppressed(bool *aSelectEventsSuppressed)
 {
   *aSelectEventsSuppressed = mSuppressed;
   return NS_OK;
 }
@@ -619,21 +619,21 @@ NS_IMETHODIMP nsTreeSelection::SetCurren
   if (!mTree) {
     return NS_ERROR_UNEXPECTED;
   }
   if (mCurrentIndex == aIndex) {
     return NS_OK;
   }
   if (mCurrentIndex != -1 && mTree)
     mTree->InvalidateRow(mCurrentIndex);
-  
+
   mCurrentIndex = aIndex;
   if (!mTree)
     return NS_OK;
-  
+
   if (aIndex != -1)
     mTree->InvalidateRow(aIndex);
 
   // Fire DOMMenuItemActive or DOMMenuItemInactive event for tree.
   nsCOMPtr<nsIBoxObject> boxObject = do_QueryInterface(mTree);
   NS_ASSERTION(boxObject, "no box object!");
   if (!boxObject)
     return NS_ERROR_UNEXPECTED;
@@ -670,19 +670,19 @@ NS_IMETHODIMP nsTreeSelection::SetCurren
   }
 
   if (mCurrentColumn) {
     if (mFirstRange)
       mTree->InvalidateCell(mFirstRange->mMin, mCurrentColumn);
     if (mCurrentIndex != -1)
       mTree->InvalidateCell(mCurrentIndex, mCurrentColumn);
   }
-  
+
   mCurrentColumn = aCurrentColumn;
-  
+
   if (mCurrentColumn) {
     if (mFirstRange)
       mTree->InvalidateCell(mFirstRange->mMin, mCurrentColumn);
     if (mCurrentIndex != -1)
       mTree->InvalidateCell(mCurrentIndex, mCurrentColumn);
   }
 
   return NS_OK;
@@ -739,17 +739,17 @@ nsTreeSelection::AdjustSelection(int32_t
   mFirstRange = nullptr;
   while (curr) {
     if (aCount > 0) {
       // inserting
       if (aIndex > curr->mMax) {
         // adjustment happens after the range, so no change
         ADD_NEW_RANGE(mFirstRange, this, curr->mMin, curr->mMax);
       }
-      else if (aIndex <= curr->mMin) {  
+      else if (aIndex <= curr->mMin) {
         // adjustment happens before the start of the range, so shift down
         ADD_NEW_RANGE(mFirstRange, this, curr->mMin + aCount, curr->mMax + aCount);
         selChanged = true;
       }
       else {
         // adjustment happen inside the range.
         // break apart the range and create two ranges
         ADD_NEW_RANGE(mFirstRange, this, curr->mMin, aIndex - 1);
--- a/layout/xul/tree/nsTreeSelection.h
+++ b/layout/xul/tree/nsTreeSelection.h
@@ -15,17 +15,17 @@
 
 class nsITreeBoxObject;
 struct nsTreeRange;
 
 class nsTreeSelection final : public nsINativeTreeSelection
 {
 public:
   explicit nsTreeSelection(nsITreeBoxObject* aTree);
-   
+
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_CLASS(nsTreeSelection)
   NS_DECL_NSITREESELECTION
 
   // nsINativeTreeSelection: Untrusted code can use us
   NS_IMETHOD EnsureNative() override { return NS_OK; }
 
   friend struct nsTreeRange;
--- a/media/libaom/config/generic/aom_config.h
+++ b/media/libaom/config/generic/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      inline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 0
 #define ARCH_X86_64 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/libaom/config/linux/arm/aom_config.h
+++ b/media/libaom/config/linux/arm/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      inline
 #define ARCH_ARM 1
 #define ARCH_MIPS 0
 #define ARCH_X86 0
 #define ARCH_X86_64 0
 #define HAVE_NEON 1
 #define HAVE_NEON_ASM 1
 #define HAVE_MIPS32 0
--- a/media/libaom/config/linux/ia32/aom_config.h
+++ b/media/libaom/config/linux/ia32/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      inline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 1
 #define ARCH_X86_64 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/libaom/config/linux/x64/aom_config.h
+++ b/media/libaom/config/linux/x64/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      inline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 0
 #define ARCH_X86_64 1
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/libaom/config/mac/x64/aom_config.h
+++ b/media/libaom/config/mac/x64/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      inline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 0
 #define ARCH_X86_64 1
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/libaom/config/win/ia32/aom_config.h
+++ b/media/libaom/config/win/ia32/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      __forceinline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 1
 #define ARCH_X86_64 0
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/libaom/config/win/x64/aom_config.h
+++ b/media/libaom/config/win/x64/aom_config.h
@@ -4,17 +4,17 @@
 /* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License */
 /* was not distributed with this source code in the LICENSE file, you can */
 /* obtain it at www.aomedia.org/license/software. If the Alliance for Open */
 /* Media Patent License 1.0 was not distributed with this source code in the */
 /* PATENTS file, you can obtain it at www.aomedia.org/license/patent. */
 /* This file automatically generated by configure. Do not edit! */
 #ifndef AOM_CONFIG_H
 #define AOM_CONFIG_H
-#define RESTRICT    
+#define RESTRICT
 #define INLINE      __forceinline
 #define ARCH_ARM 0
 #define ARCH_MIPS 0
 #define ARCH_X86 0
 #define ARCH_X86_64 1
 #define HAVE_NEON 0
 #define HAVE_NEON_ASM 0
 #define HAVE_MIPS32 0
--- a/media/mtransport/sigslot.h
+++ b/media/mtransport/sigslot.h
@@ -1,27 +1,27 @@
 // sigslot.h: Signal/Slot classes
-// 
+//
 // Written by Sarah Thompson (sarah@telergy.com) 2002.
 //
 // License: Public domain. You are free to use this code however you like, with the proviso that
 //          the author takes on no responsibility or liability for any use.
 //
-// QUICK DOCUMENTATION 
-//		
+// QUICK DOCUMENTATION
+//
 //				(see also the full documentation at http://sigslot.sourceforge.net/)
 //
 //		#define switches
 //			SIGSLOT_PURE_ISO			- Define this to force ISO C++ compliance. This also disables
-//										  all of the thread safety support on platforms where it is 
+//										  all of the thread safety support on platforms where it is
 //										  available.
 //
 //			SIGSLOT_USE_POSIX_THREADS	- Force use of Posix threads when using a C++ compiler other than
 //										  gcc on a platform that supports Posix threads. (When using gcc,
-//										  this is the default - use SIGSLOT_PURE_ISO to disable this if 
+//										  this is the default - use SIGSLOT_PURE_ISO to disable this if
 //										  necessary)
 //
 //			SIGSLOT_DEFAULT_MT_POLICY	- Where thread support is enabled, this defaults to multi_threaded_global.
 //										  Otherwise, the default is single_threaded. #define this yourself to
 //										  override the default. In pure ISO mode, anything other than
 //										  single_threaded will cause a compiler error.
 //
 //		PLATFORM NOTES
@@ -35,22 +35,22 @@
 //										  available, so they are used automatically. You can override this
 //										  (as under Windows) with the SIGSLOT_PURE_ISO switch. If you're using
 //										  something other than gcc but still want to use Posix threads, you
 //										  need to #define SIGSLOT_USE_POSIX_THREADS.
 //
 //			ISO C++						- If none of the supported platforms are detected, or if
 //										  SIGSLOT_PURE_ISO is defined, all multithreading support is turned off,
 //										  along with any code that might cause a pure ISO C++ environment to
-//										  complain. Before you ask, gcc -ansi -pedantic won't compile this 
+//										  complain. Before you ask, gcc -ansi -pedantic won't compile this
 //										  library, but gcc -ansi is fine. Pedantic mode seems to throw a lot of
 //										  errors that aren't really there. If you feel like investigating this,
 //										  please contact the author.
 //
-//		
+//
 //		THREADING MODES
 //
 //			single_threaded				- Your program is assumed to be single threaded from the point of view
 //										  of signal/slot usage (i.e. all objects using signals and slots are
 //										  created and destroyed from a single thread). Behaviour if objects are
 //										  destroyed concurrently is undefined (i.e. you'll get the occasional
 //										  segmentation fault/memory exception).
 //
@@ -58,20 +58,20 @@
 //										  slots can be safely created and destroyed from any thread, even when
 //										  connections exist. In multi_threaded_global mode, this is achieved by a
 //										  single global mutex (actually a critical section on Windows because they
 //										  are faster). This option uses less OS resources, but results in more
 //										  opportunities for contention, possibly resulting in more context switches
 //										  than are strictly necessary.
 //
 //			multi_threaded_local		- Behaviour in this mode is essentially the same as multi_threaded_global,
-//										  except that each signal, and each object that inherits has_slots, all 
+//										  except that each signal, and each object that inherits has_slots, all
 //										  have their own mutex/critical section. In practice, this means that
 //										  mutex collisions (and hence context switches) only happen if they are
-//										  absolutely essential. However, on some platforms, creating a lot of 
+//										  absolutely essential. However, on some platforms, creating a lot of
 //										  mutexes can slow down the whole OS, so use this option with care.
 //
 //		USING THE LIBRARY
 //
 //			See the full documentation at http://sigslot.sourceforge.net/
 //
 //
 // Libjingle specific:
@@ -378,17 +378,17 @@ namespace sigslot {
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class mt_policy>
 	class _connection_base5
 	{
 	public:
 		virtual ~_connection_base5() {}
 		virtual has_slots_interface* getdest() const = 0;
-		virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type) = 0;
 		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, mt_policy>* clone() = 0;
 		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, mt_policy>* duplicate(has_slots_interface* pnewdest) = 0;
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
@@ -487,17 +487,17 @@ namespace sigslot {
 			const_iterator itEnd = hs.m_senders.end();
 
 			while(it != itEnd)
 			{
 				(*it)->slot_duplicate(&hs, this);
 				m_senders.insert(*it);
 				++it;
 			}
-		} 
+		}
 
 		void signal_connect(_signal_base_interface* sender)
 		{
 			lock_block<mt_policy> lock(this);
 			m_senders.insert(sender);
 		}
 
 		void signal_disconnect(_signal_base_interface* sender)
@@ -1359,17 +1359,17 @@ namespace sigslot {
 		connections_list m_connected_slots;
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class arg6_type, class mt_policy>
 	class _signal_base6 : public _signal_base<mt_policy>
 	{
 	public:
-		typedef std::list<_connection_base6<arg1_type, arg2_type, arg3_type, 
+		typedef std::list<_connection_base6<arg1_type, arg2_type, arg3_type,
 			arg4_type, arg5_type, arg6_type, mt_policy> *>  connections_list;
 
 		_signal_base6()
 		{
 			;
 		}
 
 		_signal_base6(const _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type,
@@ -1499,17 +1499,17 @@ namespace sigslot {
 		connections_list m_connected_slots;
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class arg6_type, class arg7_type, class mt_policy>
 	class _signal_base7 : public _signal_base<mt_policy>
 	{
 	public:
-		typedef std::list<_connection_base7<arg1_type, arg2_type, arg3_type, 
+		typedef std::list<_connection_base7<arg1_type, arg2_type, arg3_type,
 			arg4_type, arg5_type, arg6_type, arg7_type, mt_policy> *>  connections_list;
 
 		_signal_base7()
 		{
 			;
 		}
 
 		_signal_base7(const _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type,
@@ -1639,17 +1639,17 @@ namespace sigslot {
 		connections_list m_connected_slots;
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class arg6_type, class arg7_type, class arg8_type, class mt_policy>
 	class _signal_base8 : public _signal_base<mt_policy>
 	{
 	public:
-		typedef std::list<_connection_base8<arg1_type, arg2_type, arg3_type, 
+		typedef std::list<_connection_base8<arg1_type, arg2_type, arg3_type,
 			arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> *>
 			connections_list;
 
 		_signal_base8()
 		{
 			;
 		}
 
@@ -1991,17 +1991,17 @@ namespace sigslot {
 			return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(*this);
 		}
 
 		virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* duplicate(has_slots_interface* pnewdest)
 		{
 			return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);
 		}
 
-		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, 
+		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3,
 			arg4_type a4)
 		{
 			(m_pobject->*m_pmemfun)(a1, a2, a3, a4);
 		}
 
 		virtual has_slots_interface* getdest() const
 		{
 			return m_pobject;
@@ -2031,27 +2031,27 @@ namespace sigslot {
 			m_pobject = pobject;
 			m_pmemfun = pmemfun;
 		}
 
 		virtual ~_connection5()
 		{
                 }
 
-		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, mt_policy>* clone()
 		{
-			return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, mt_policy>(*this);
 		}
 
-		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, mt_policy>* duplicate(has_slots_interface* pnewdest)
 		{
-			return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);
 		}
 
 		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5)
 		{
 			(m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5);
 		}
@@ -2085,27 +2085,27 @@ namespace sigslot {
 			m_pobject = pobject;
 			m_pmemfun = pmemfun;
 		}
 
 		virtual ~_connection6()
 		{
                 }
 
-		virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, mt_policy>* clone()
 		{
-			return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, mt_policy>(*this);
 		}
 
-		virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, mt_policy>* duplicate(has_slots_interface* pnewdest)
 		{
-			return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);
 		}
 
 		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6)
 		{
 			(m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6);
 		}
@@ -2139,27 +2139,27 @@ namespace sigslot {
 			m_pobject = pobject;
 			m_pmemfun = pmemfun;
 		}
 
 		virtual ~_connection7()
 		{
                 }
 
-		virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, mt_policy>* clone()
 		{
-			return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, arg7_type, mt_policy>(*this);
 		}
 
-		virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, mt_policy>* duplicate(has_slots_interface* pnewdest)
 		{
-			return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, arg7_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);
 		}
 
 		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6, arg7_type a7)
 		{
 			(m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7);
 		}
@@ -2171,51 +2171,51 @@ namespace sigslot {
 
 	private:
 		dest_type* m_pobject;
 		void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type);
 	};
 
 	template<class dest_type, class arg1_type, class arg2_type, class arg3_type,
-	class arg4_type, class arg5_type, class arg6_type, class arg7_type, 
+	class arg4_type, class arg5_type, class arg6_type, class arg7_type,
 	class arg8_type, class mt_policy>
 	class _connection8 : public _connection_base8<arg1_type, arg2_type,
 		arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>
 	{
 	public:
 		_connection8()
 		{
 			m_pobject = NULL;
 			m_pmemfun = NULL;
 		}
 
 		_connection8(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,
-			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 
+			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,
 			arg7_type, arg8_type))
 		{
 			m_pobject = pobject;
 			m_pmemfun = pmemfun;
 		}
 
 		virtual ~_connection8()
 		{
                 }
 
-		virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* clone()
 		{
-			return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(*this);
 		}
 
-		virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 
+		virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* duplicate(has_slots_interface* pnewdest)
 		{
-			return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 
+			return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,
 				arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);
 		}
 
 		virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)
 		{
 			(m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7, a8);
 		}
@@ -2249,17 +2249,17 @@ namespace sigslot {
 		{
 			;
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)())
 		{
 			lock_block<mt_policy> lock(this);
-			_connection0<desttype, mt_policy>* conn = 
+			_connection0<desttype, mt_policy>* conn =
 				new _connection0<desttype, mt_policy>(pclass, pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit()
 		{
 			lock_block<mt_policy> lock(this);
@@ -2313,17 +2313,17 @@ namespace sigslot {
 		{
 			;
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type))
 		{
 			lock_block<mt_policy> lock(this);
-			_connection1<desttype, arg1_type, mt_policy>* conn = 
+			_connection1<desttype, arg1_type, mt_policy>* conn =
 				new _connection1<desttype, arg1_type, mt_policy>(pclass, pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit(arg1_type a1)
 		{
 			lock_block<mt_policy> lock(this);
@@ -2443,17 +2443,17 @@ namespace sigslot {
 			;
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,
 			arg2_type, arg3_type))
 		{
 			lock_block<mt_policy> lock(this);
-			_connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>* conn = 
+			_connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>* conn =
 				new _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>(pclass,
 				pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit(arg1_type a1, arg2_type a2, arg3_type a3)
 		{
@@ -2654,17 +2654,17 @@ namespace sigslot {
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,
 			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type))
 		{
 			lock_block<mt_policy> lock(this);
 			_connection6<desttype, arg1_type, arg2_type, arg3_type, arg4_type,
-				arg5_type, arg6_type, mt_policy>* conn = 
+				arg5_type, arg6_type, mt_policy>* conn =
 				new _connection6<desttype, arg1_type, arg2_type, arg3_type,
 				arg4_type, arg5_type, arg6_type, mt_policy>(pclass, pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6)
@@ -2704,17 +2704,17 @@ namespace sigslot {
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class arg6_type, class arg7_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
 	class signal7 : public _signal_base7<arg1_type, arg2_type, arg3_type,
 		arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>
 	{
 	public:
-		typedef _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, 
+		typedef _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, mt_policy> base;
 		typedef typename base::connections_list connections_list;
 		using base::m_connected_slots;
 
 		signal7()
 		{
 			;
 		}
@@ -2724,22 +2724,22 @@ namespace sigslot {
 			: _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, mt_policy>(s)
 		{
 			;
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,
-			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 
+			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,
 			arg7_type))
 		{
 			lock_block<mt_policy> lock(this);
 			_connection7<desttype, arg1_type, arg2_type, arg3_type, arg4_type,
-				arg5_type, arg6_type, arg7_type, mt_policy>* conn = 
+				arg5_type, arg6_type, arg7_type, mt_policy>* conn =
 				new _connection7<desttype, arg1_type, arg2_type, arg3_type,
 				arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>(pclass, pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6, arg7_type a7)
@@ -2779,17 +2779,17 @@ namespace sigslot {
 	};
 
 	template<class arg1_type, class arg2_type, class arg3_type, class arg4_type,
 	class arg5_type, class arg6_type, class arg7_type, class arg8_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
 	class signal8 : public _signal_base8<arg1_type, arg2_type, arg3_type,
 		arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>
 	{
 	public:
-		typedef _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, 
+		typedef _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> base;
 		typedef typename base::connections_list connections_list;
 		using base::m_connected_slots;
 
 		signal8()
 		{
 			;
 		}
@@ -2799,24 +2799,24 @@ namespace sigslot {
 			: _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type,
 			arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(s)
 		{
 			;
 		}
 
 		template<class desttype>
 			void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,
-			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 
+			arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,
 			arg7_type, arg8_type))
 		{
 			lock_block<mt_policy> lock(this);
 			_connection8<desttype, arg1_type, arg2_type, arg3_type, arg4_type,
-				arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* conn = 
+				arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* conn =
 				new _connection8<desttype, arg1_type, arg2_type, arg3_type,
-				arg4_type, arg5_type, arg6_type, arg7_type, 
+				arg4_type, arg5_type, arg6_type, arg7_type,
 				arg8_type, mt_policy>(pclass, pmemfun);
 			m_connected_slots.push_back(conn);
 			pclass->signal_connect(this);
 		}
 
 		void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,
 			arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)
 		{
--- a/media/omx-plugin/include/ics/android/native_window.h
+++ b/media/omx-plugin/include/ics/android/native_window.h
@@ -46,17 +46,17 @@ typedef struct ANativeWindow_Buffer {
     // memory.  This may be >= width.
     int32_t stride;
 
     // The format of the buffer.  One of WINDOW_FORMAT_*
     int32_t format;
 
     // The actual bits.
     void* bits;
-    
+
     // Do not touch.
     uint32_t reserved[6];
 } ANativeWindow_Buffer;
 
 /**
  * Acquire a reference on the given ANativeWindow object.  This prevents the object
  * from being deleted until the reference is removed.
  */
--- a/media/omx-plugin/include/ics/binder/IInterface.h
+++ b/media/omx-plugin/include/ics/binder/IInterface.h
@@ -25,17 +25,17 @@ namespace android {
 // ----------------------------------------------------------------------
 
 class IInterface : public virtual RefBase
 {
 public:
             IInterface();
             sp<IBinder>         asBinder();
             sp<const IBinder>   asBinder() const;
-            
+
 protected:
     virtual                     ~IInterface();
     virtual IBinder*            onAsBinder() = 0;
 };
 
 // ----------------------------------------------------------------------
 
 template<typename INTERFACE>
@@ -137,14 +137,14 @@ inline BpInterface<INTERFACE>::BpInterfa
 {
 }
 
 template<typename INTERFACE>
 inline IBinder* BpInterface<INTERFACE>::onAsBinder()
 {
     return remote();
 }
-    
+
 // ----------------------------------------------------------------------
 
 }; // namespace android
 
 #endif // ANDROID_IINTERFACE_H
--- a/media/omx-plugin/include/ics/cutils/log.h
+++ b/media/omx-plugin/include/ics/cutils/log.h
@@ -274,17 +274,17 @@ extern "C" {
 
 #ifndef SLOGE_IF
 #define SLOGE_IF(cond, ...) \
     ( (CONDITION(cond)) \
     ? ((void)__android_log_buf_print(LOG_ID_SYSTEM, ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)) \
     : (void)0 )
 #endif
 
-    
+
 
 // ---------------------------------------------------------------------
 
 /*
  * Log a fatal error.  If the given condition fails, this stops program
  * execution like a normal assertion, but also generating the given message.
  * It is NOT stripped from release builds.  Note that the condition test
  * is -inverted- from the normal assert() semantics.
--- a/media/omx-plugin/include/ics/cutils/native_handle.h
+++ b/media/omx-plugin/include/ics/cutils/native_handle.h
@@ -26,43 +26,43 @@ typedef struct native_handle
     int version;        /* sizeof(native_handle_t) */
     int numFds;         /* number of file-descriptors at &data[0] */
     int numInts;        /* number of ints at &data[numFds] */
     int data[0];        /* numFds + numInts ints */
 } native_handle_t;
 
 /*
  * native_handle_close
- * 
+ *
  * closes the file descriptors contained in this native_handle_t
- * 
+ *
  * return 0 on success, or a negative error code on failure
- * 
+ *
  */
 int native_handle_close(const native_handle_t* h);
 
 
 /*
  * native_handle_create
- * 
+ *
  * creates a native_handle_t and initializes it. must be destroyed with
  * native_handle_delete().
- * 
+ *
  */
 native_handle_t* native_handle_create(int numFds, int numInts);
 
 /*
  * native_handle_delete
- * 
+ *
  * frees a native_handle_t allocated with native_handle_create().
  * This ONLY frees the memory allocated for the native_handle_t, but doesn't
  * close the file descriptors; which can be achieved with native_handle_close().
- * 
+ *
  * return 0 on success, or a negative error code on failure
- * 
+ *
  */
 int native_handle_delete(native_handle_t* h);
 
 
 #ifdef __cplusplus
 }
 #endif
 
--- a/media/omx-plugin/include/ics/hardware/gralloc.h
+++ b/media/omx-plugin/include/ics/hardware/gralloc.h
@@ -49,17 +49,17 @@ enum {
     /* buffer is never read in software */
     GRALLOC_USAGE_SW_READ_NEVER         = 0x00000000,
     /* buffer is rarely read in software */
     GRALLOC_USAGE_SW_READ_RARELY        = 0x00000002,
     /* buffer is often read in software */
     GRALLOC_USAGE_SW_READ_OFTEN         = 0x00000003,
     /* mask for the software read values */
     GRALLOC_USAGE_SW_READ_MASK          = 0x0000000F,
-    
+
     /* buffer is never written in software */
     GRALLOC_USAGE_SW_WRITE_NEVER        = 0x00000000,
     /* buffer is never written in software */
     GRALLOC_USAGE_SW_WRITE_RARELY       = 0x00000020,
     /* buffer is never written in software */
     GRALLOC_USAGE_SW_WRITE_OFTEN        = 0x00000030,
     /* mask for the software write values */
     GRALLOC_USAGE_SW_WRITE_MASK         = 0x000000F0,
@@ -104,92 +104,92 @@ enum {
 
 /**
  * Every hardware module must have a data structure named HAL_MODULE_INFO_SYM
  * and the fields of this data structure must begin with hw_module_t
  * followed by module specific information.
  */
 typedef struct gralloc_module_t {
     struct hw_module_t common;
-    
+
     /*
      * (*registerBuffer)() must be called before a buffer_handle_t that has not
      * been created with (*alloc_device_t::alloc)() can be used.
-     * 
+     *
      * This is intended to be used with buffer_handle_t's that have been
      * received in this process through IPC.
-     * 
+     *
      * This function checks that the handle is indeed a valid one and prepares
      * it for use with (*lock)() and (*unlock)().
-     * 
-     * It is not necessary to call (*registerBuffer)() on a handle created 
+     *
+     * It is not necessary to call (*registerBuffer)() on a handle created
      * with (*alloc_device_t::alloc)().
-     * 
+     *
      * returns an error if this buffer_handle_t is not valid.
      */
     int (*registerBuffer)(struct gralloc_module_t const* module,
             buffer_handle_t handle);
 
     /*
      * (*unregisterBuffer)() is called once this handle is no longer needed in
      * this process. After this call, it is an error to call (*lock)(),
      * (*unlock)(), or (*registerBuffer)().
-     * 
+     *
      * This function doesn't close or free the handle itself; this is done
      * by other means, usually through libcutils's native_handle_close() and
-     * native_handle_free(). 
-     * 
+     * native_handle_free().
+     *
      * It is an error to call (*unregisterBuffer)() on a buffer that wasn't
      * explicitly registered first.
      */
     int (*unregisterBuffer)(struct gralloc_module_t const* module,
             buffer_handle_t handle);
-    
+
     /*
-     * The (*lock)() method is called before a buffer is accessed for the 
+     * The (*lock)() method is called before a buffer is accessed for the
      * specified usage. This call may block, for instance if the h/w needs
      * to finish rendering or if CPU caches need to be synchronized.
-     * 
-     * The caller promises to modify only pixels in the area specified 
+     *
+     * The caller promises to modify only pixels in the area specified
      * by (l,t,w,h).
-     * 
+     *
      * The content of the buffer outside of the specified area is NOT modified
      * by this call.
      *
      * If usage specifies GRALLOC_USAGE_SW_*, vaddr is filled with the address
      * of the buffer in virtual memory.
      *
      * THREADING CONSIDERATIONS:
      *
-     * It is legal for several different threads to lock a buffer from 
+     * It is legal for several different threads to lock a buffer from
      * read access, none of the threads are blocked.
-     * 
+     *
      * However, locking a buffer simultaneously for write or read/write is
      * undefined, but:
      * - shall not result in termination of the process
      * - shall not block the caller
      * It is acceptable to return an error or to leave the buffer's content
      * into an indeterminate state.
      *
      * If the buffer was created with a usage mask incompatible with the
-     * requested usage flags here, -EINVAL is returned. 
-     * 
+     * requested usage flags here, -EINVAL is returned.
+     *
      */
-    
+
     int (*lock)(struct gralloc_module_t const* module,
             buffer_handle_t handle, int usage,
             int l, int t, int w, int h,
             void** vaddr);
 
-    
+
     /*
      * The (*unlock)() method must be called after all changes to the buffer
      * are completed.
      */
-    
+
     int (*unlock)(struct gralloc_module_t const* module,
             buffer_handle_t handle);
 
 
     /* reserved for future use */
     int (*perform)(struct gralloc_module_t const* module,
             int operation, ... );
 
@@ -202,38 +202,38 @@ typedef struct gralloc_module_t {
 /**
  * Every device data structure must begin with hw_device_t
  * followed by module specific public methods and attributes.
  */
 
 typedef struct alloc_device_t {
     struct hw_device_t common;
 
-    /* 
+    /*
      * (*alloc)() Allocates a buffer in graphic memory with the requested
      * parameters and returns a buffer_handle_t and the stride in pixels to
      * allow the implementation to satisfy hardware constraints on the width
-     * of a pixmap (eg: it may have to be multiple of 8 pixels). 
+     * of a pixmap (eg: it may have to be multiple of 8 pixels).
      * The CALLER TAKES OWNERSHIP of the buffer_handle_t.
-     * 
+     *
      * Returns 0 on success or -errno on error.
      */
-    
+
     int (*alloc)(struct alloc_device_t* dev,
             int w, int h, int format, int usage,
             buffer_handle_t* handle, int* stride);
 
     /*
-     * (*free)() Frees a previously allocated buffer. 
+     * (*free)() Frees a previously allocated buffer.
      * Behavior is undefined if the buffer is still mapped in any process,
      * but shall not result in termination of the program or security breaches
      * (allowing a process to get access to another process' buffers).
      * THIS FUNCTION TAKES OWNERSHIP of the buffer_handle_t which becomes
-     * invalid after the call. 
-     * 
+     * invalid after the call.
+     *
      * Returns 0 on success or -errno on error.
      */
     int (*free)(struct alloc_device_t* dev,
             buffer_handle_t handle);
 
     /* This hook is OPTIONAL.
      *
      * If non NULL it will be caused by SurfaceFlinger on dumpsys
@@ -241,19 +241,19 @@ typedef struct alloc_device_t {
     void (*dump)(struct alloc_device_t *dev, char *buff, int buff_len);
 
     void* reserved_proc[7];
 } alloc_device_t;
 
 
 /** convenience API for opening and closing a supported device */
 
-static inline int gralloc_open(const struct hw_module_t* module, 
+static inline int gralloc_open(const struct hw_module_t* module,
         struct alloc_device_t** device) {
-    return module->methods->open(module, 
+    return module->methods->open(module,
             GRALLOC_HARDWARE_GPU0, (struct hw_device_t**)device);
 }
 
 static inline int gralloc_close(struct alloc_device_t* device) {
     return device->common.close(&device->common);
 }
 
 __END_DECLS
--- a/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Core.h
+++ b/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Core.h
@@ -11,35 +11,35 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied.
  * See the License for the specific language governing permissions
  * and limitations under the License.
  * -------------------------------------------------------------------
  */
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_Core.h - OpenMax IL version 1.1.2
  *  The OMX_Core header file contains the definitions used by both the
  *  application and the component to access common items.
  */
 
@@ -48,34 +48,34 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header shall include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 
 #include <OMX_Index.h>
 
 
 /** The OMX_COMMANDTYPE enumeration is used to specify the action in the
- *  OMX_SendCommand macro.  
+ *  OMX_SendCommand macro.
  *  @ingroup core
  */
 typedef enum OMX_COMMANDTYPE
 {
     OMX_CommandStateSet,    /**< Change the component state */
     OMX_CommandFlush,       /**< Flush the data queue(s) of a component */
     OMX_CommandPortDisable, /**< Disable a port on a component. */
     OMX_CommandPortEnable,  /**< Enable a port on a component. */
     OMX_CommandMarkBuffer,  /**< Mark a component/buffer for observation */
-    OMX_CommandKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_CommandKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_CommandVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_CommandMax = 0X7FFFFFFF
 } OMX_COMMANDTYPE;
 
 
 
 /** The OMX_STATETYPE enumeration is used to indicate or change the component
  *  state.  This enumeration reflects the current state of the component when
@@ -88,56 +88,56 @@ typedef enum OMX_COMMANDTYPE
  *  and configuration tables.  The application will send one or more
  *  SetParameters/GetParameters and SetConfig/GetConfig commands to the
  *  component and the component will record each of these parameter and
  *  configuration changes for use later.  When the application sends the
  *  Idle command, the component will acquire the resources needed for the
  *  specified configuration and will transition to the idle state if the
  *  allocation is successful.  If the component cannot successfully
  *  transition to the idle state for any reason, the state of the component
- *  shall be fully rolled back to the Loaded state (e.g. all allocated 
+ *  shall be fully rolled back to the Loaded state (e.g. all allocated
  *  resources shall be released).  When the component receives the command
  *  to go to the Executing state, it shall begin processing buffers by
  *  sending all input buffers it holds to the application.  While
  *  the component is in the Idle state, the application may also send the
  *  Pause command.  If the component receives the pause command while in the
- *  Idle state, the component shall send all input buffers it holds to the 
+ *  Idle state, the component shall send all input buffers it holds to the
  *  application, but shall not begin processing buffers.  This will allow the
  *  application to prefill buffers.
- * 
+ *
  *  @ingroup comp
  */
 
 typedef enum OMX_STATETYPE
 {
-    OMX_StateInvalid,      /**< component has detected that it's internal data 
+    OMX_StateInvalid,      /**< component has detected that it's internal data
                                 structures are corrupted to the point that
                                 it cannot determine it's state properly */
     OMX_StateLoaded,      /**< component has been loaded but has not completed
                                 initialization.  The OMX_SetParameter macro
-                                and the OMX_GetParameter macro are the only 
-                                valid macros allowed to be sent to the 
+                                and the OMX_GetParameter macro are the only
+                                valid macros allowed to be sent to the
                                 component in this state. */
     OMX_StateIdle,        /**< component initialization has been completed
                                 successfully and the component is ready to
                                 to start. */
     OMX_StateExecuting,   /**< component has accepted the start command and
                                 is processing data (if data is available) */
     OMX_StatePause,       /**< component has received pause command */
-    OMX_StateWaitForResources, /**< component is waiting for resources, either after 
+    OMX_StateWaitForResources, /**< component is waiting for resources, either after
                                 preemption or before it gets the resources requested.
                                 See specification for complete details. */
-    OMX_StateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_StateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_StateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_StateMax = 0X7FFFFFFF
 } OMX_STATETYPE;
 
-/** The OMX_ERRORTYPE enumeration defines the standard OMX Errors.  These 
- *  errors should cover most of the common failure cases.  However, 
- *  vendors are free to add additional error messages of their own as 
+/** The OMX_ERRORTYPE enumeration defines the standard OMX Errors.  These
+ *  errors should cover most of the common failure cases.  However,
+ *  vendors are free to add additional error messages of their own as
  *  long as they follow these rules:
  *  1.  Vendor error messages shall be in the range of 0x90000000 to
  *      0x9000FFFF.
  *  2.  Vendor error messages shall be defined in a header file provided
  *      with the component.  No error messages are allowed that are
  *      not defined.
  */
 typedef enum OMX_ERRORTYPE
@@ -198,43 +198,43 @@ typedef enum OMX_ERRORTYPE
   OMX_ErrorNotReady = (OMX_S32) 0x80001010,
 
   /** There was a timeout that occurred */
   OMX_ErrorTimeout = (OMX_S32) 0x80001011,
 
   /** This error occurs when trying to transition into the state you are already in */
   OMX_ErrorSameState = (OMX_S32) 0x80001012,
 
-  /** Resources allocated to an executing or paused component have been 
+  /** Resources allocated to an executing or paused component have been
       preempted, causing the component to return to the idle state */
-  OMX_ErrorResourcesPreempted = (OMX_S32) 0x80001013, 
+  OMX_ErrorResourcesPreempted = (OMX_S32) 0x80001013,
 
-  /** A non-supplier port sends this error to the IL client (via the EventHandler callback) 
+  /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
       during the allocation of buffers (on a transition from the LOADED to the IDLE state or
-      on a port restart) when it deems that it has waited an unusually long time for the supplier 
+      on a port restart) when it deems that it has waited an unusually long time for the supplier
       to send it an allocated buffer via a UseBuffer call. */
   OMX_ErrorPortUnresponsiveDuringAllocation = (OMX_S32) 0x80001014,
 
-  /** A non-supplier port sends this error to the IL client (via the EventHandler callback) 
-      during the deallocation of buffers (on a transition from the IDLE to LOADED state or 
-      on a port stop) when it deems that it has waited an unusually long time for the supplier 
+  /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
+      during the deallocation of buffers (on a transition from the IDLE to LOADED state or
+      on a port stop) when it deems that it has waited an unusually long time for the supplier
       to request the deallocation of a buffer header via a FreeBuffer call. */
   OMX_ErrorPortUnresponsiveDuringDeallocation = (OMX_S32) 0x80001015,
 
-  /** A supplier port sends this error to the IL client (via the EventHandler callback) 
-      during the stopping of a port (either on a transition from the IDLE to LOADED 
-      state or a port stop) when it deems that it has waited an unusually long time for 
+  /** A supplier port sends this error to the IL client (via the EventHandler callback)
+      during the stopping of a port (either on a transition from the IDLE to LOADED
+      state or a port stop) when it deems that it has waited an unusually long time for
       the non-supplier to return a buffer via an EmptyThisBuffer or FillThisBuffer call. */
   OMX_ErrorPortUnresponsiveDuringStop = (OMX_S32) 0x80001016,
 
   /** Attempting a state transtion that is not allowed */
   OMX_ErrorIncorrectStateTransition = (OMX_S32) 0x80001017,
 
   /* Attempting a command that is not allowed during the present state. */
-  OMX_ErrorIncorrectStateOperation = (OMX_S32) 0x80001018, 
+  OMX_ErrorIncorrectStateOperation = (OMX_S32) 0x80001018,
 
   /** The values encapsulated in the parameter or config structure are not supported. */
   OMX_ErrorUnsupportedSetting = (OMX_S32) 0x80001019,
 
   /** The parameter or config indicated by the given index is not supported. */
   OMX_ErrorUnsupportedIndex = (OMX_S32) 0x8000101A,
 
   /** The port index supplied is incorrect. */
@@ -244,36 +244,36 @@ typedef enum OMX_ERRORTYPE
   OMX_ErrorPortUnpopulated = (OMX_S32) 0x8000101C,
 
   /** Component suspended due to temporary loss of resources */
   OMX_ErrorComponentSuspended = (OMX_S32) 0x8000101D,
 
   /** Component suspended due to an inability to acquire dynamic resources */
   OMX_ErrorDynamicResourcesUnavailable = (OMX_S32) 0x8000101E,
 
-  /** When the macroblock error reporting is enabled the component returns new error 
+  /** When the macroblock error reporting is enabled the component returns new error
   for every frame that has errors */
   OMX_ErrorMbErrorsInFrame = (OMX_S32) 0x8000101F,
 
   /** A component reports this error when it cannot parse or determine the format of an input stream. */
-  OMX_ErrorFormatNotDetected = (OMX_S32) 0x80001020, 
+  OMX_ErrorFormatNotDetected = (OMX_S32) 0x80001020,
 
   /** The content open operation failed. */
   OMX_ErrorContentPipeOpenFailed = (OMX_S32) 0x80001021,
 
   /** The content creation operation failed. */
   OMX_ErrorContentPipeCreationFailed = (OMX_S32) 0x80001022,
 
   /** Separate table information is being used */
   OMX_ErrorSeperateTablesUsed = (OMX_S32) 0x80001023,
 
   /** Tunneling is unsupported by the component*/
   OMX_ErrorTunnelingUnsupported = (OMX_S32) 0x80001024,
 
-  OMX_ErrorKhronosExtensions = (OMX_S32)0x8F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_ErrorKhronosExtensions = (OMX_S32)0x8F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_ErrorVendorStartUnused = (OMX_S32)0x90000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_ErrorMax = 0x7FFFFFFF
 } OMX_ERRORTYPE;
 
 /** @ingroup core */
 typedef OMX_ERRORTYPE (* OMX_COMPONENTINITTYPE)(OMX_IN  OMX_HANDLETYPE hComponent);
 
 /** @ingroup core */
@@ -299,109 +299,109 @@ typedef struct OMX_PRIORITYMGMTTYPE {
 
 /** @ingroup comp */
 typedef struct OMX_PARAM_COMPONENTROLETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U8 cRole[OMX_MAX_STRINGNAME_SIZE];  /**< name of standard component which defines component role */
 } OMX_PARAM_COMPONENTROLETYPE;
 
-/** End of Stream Buffer Flag: 
+/** End of Stream Buffer Flag:
   *
-  * A component sets EOS when it has no more data to emit on a particular 
-  * output port. Thus an output port shall set EOS on the last buffer it 
-  * emits. A component's determination of when an output port should 
+  * A component sets EOS when it has no more data to emit on a particular
+  * output port. Thus an output port shall set EOS on the last buffer it
+  * emits. A component's determination of when an output port should
   * cease sending data is implemenation specific.
   * @ingroup buf
   */
 
-#define OMX_BUFFERFLAG_EOS 0x00000001 
+#define OMX_BUFFERFLAG_EOS 0x00000001
 
-/** Start Time Buffer Flag: 
+/** Start Time Buffer Flag:
  *
  * The source of a stream (e.g. a demux component) sets the STARTTIME
  * flag on the buffer that contains the starting timestamp for the
  * stream. The starting timestamp corresponds to the first data that
  * should be displayed at startup or after a seek.
  * The first timestamp of the stream is not necessarily the start time.
- * For instance, in the case of a seek to a particular video frame, 
- * the target frame may be an interframe. Thus the first buffer of 
+ * For instance, in the case of a seek to a particular video frame,
+ * the target frame may be an interframe. Thus the first buffer of
  * the stream will be the intra-frame preceding the target frame and
  * the starttime will occur with the target frame (with any other
  * required frames required to reconstruct the target intervening).
  *
- * The STARTTIME flag is directly associated with the buffer's 
- * timestamp ' thus its association to buffer data and its 
+ * The STARTTIME flag is directly associated with the buffer's
+ * timestamp ' thus its association to buffer data and its
  * propagation is identical to the timestamp's.
  *
- * When a Sync Component client receives a buffer with the 
- * STARTTIME flag it shall perform a SetConfig on its sync port 
+ * When a Sync Component client receives a buffer with the
+ * STARTTIME flag it shall perform a SetConfig on its sync port
  * using OMX_ConfigTimeClientStartTime and passing the buffer's
  * timestamp.
- * 
+ *
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_STARTTIME 0x00000002
 
- 
+
 
-/** Decode Only Buffer Flag: 
+/** Decode Only Buffer Flag:
  *
  * The source of a stream (e.g. a demux component) sets the DECODEONLY
  * flag on any buffer that should shall be decoded but should not be
- * displayed. This flag is used, for instance, when a source seeks to 
- * a target interframe that requires the decode of frames preceding the 
- * target to facilitate the target's reconstruction. In this case the 
- * source would emit the frames preceding the target downstream 
+ * displayed. This flag is used, for instance, when a source seeks to
+ * a target interframe that requires the decode of frames preceding the
+ * target to facilitate the target's reconstruction. In this case the
+ * source would emit the frames preceding the target downstream
  * but mark them as decode only.
  *
- * The DECODEONLY is associated with buffer data and propagated in a 
+ * The DECODEONLY is associated with buffer data and propagated in a
  * manner identical to the buffer timestamp.
  *
- * A component that renders data should ignore all buffers with 
+ * A component that renders data should ignore all buffers with
  * the DECODEONLY flag set.
- * 
+ *
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_DECODEONLY 0x00000004
 
 
-/* Data Corrupt Flag: This flag is set when the IL client believes the data in the associated buffer is corrupt 
+/* Data Corrupt Flag: This flag is set when the IL client believes the data in the associated buffer is corrupt
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_DATACORRUPT 0x00000008
 
 /* End of Frame: The buffer contains exactly one end of frame and no data
  *  occurs after the end of frame. This flag is an optional hint. The absence
- *  of this flag does not imply the absence of an end of frame within the buffer. 
+ *  of this flag does not imply the absence of an end of frame within the buffer.
  * @ingroup buf
 */
 #define OMX_BUFFERFLAG_ENDOFFRAME 0x00000010
 
-/* Sync Frame Flag: This flag is set when the buffer content contains a coded sync frame ' 
- *  a frame that has no dependency on any other frame information 
+/* Sync Frame Flag: This flag is set when the buffer content contains a coded sync frame '
+ *  a frame that has no dependency on any other frame information
  *  @ingroup buf
  */
 #define OMX_BUFFERFLAG_SYNCFRAME 0x00000020
 
 /* Extra data present flag: there is extra data appended to the data stream
- * residing in the buffer 
- * @ingroup buf  
+ * residing in the buffer
+ * @ingroup buf
  */
 #define OMX_BUFFERFLAG_EXTRADATA 0x00000040
 
-/** Codec Config Buffer Flag: 
+/** Codec Config Buffer Flag:
 * OMX_BUFFERFLAG_CODECCONFIG is an optional flag that is set by an
 * output port when all bytes in the buffer form part or all of a set of
 * codec specific configuration data.  Examples include SPS/PPS nal units
 * for OMX_VIDEO_CodingAVC or AudioSpecificConfig data for
-* OMX_AUDIO_CodingAAC.  Any component that for a given stream sets 
+* OMX_AUDIO_CodingAAC.  Any component that for a given stream sets
 * OMX_BUFFERFLAG_CODECCONFIG shall not mix codec configuration bytes
 * with frame data in the same buffer, and shall send all buffers
 * containing codec configuration bytes before any buffers containing
 * frame data that those configurations bytes describe.
 * If the stream format for a particular codec has a frame specific
 * header at the start of each frame, for example OMX_AUDIO_CodingMP3 or
 * OMX_AUDIO_CodingAAC in ADTS mode, then these shall be presented as
 * normal without setting OMX_BUFFERFLAG_CODECCONFIG.
@@ -411,135 +411,135 @@ typedef struct OMX_PARAM_COMPONENTROLETY
 
 
 
 /** @ingroup buf */
 typedef struct OMX_BUFFERHEADERTYPE
 {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U8* pBuffer;            /**< Pointer to actual block of memory 
+    OMX_U8* pBuffer;            /**< Pointer to actual block of memory
                                      that is acting as the buffer */
     OMX_U32 nAllocLen;          /**< size of the buffer allocated, in bytes */
-    OMX_U32 nFilledLen;         /**< number of bytes currently in the 
+    OMX_U32 nFilledLen;         /**< number of bytes currently in the
                                      buffer */
     OMX_U32 nOffset;            /**< start offset of valid data in bytes from
                                      the start of the buffer */
     OMX_PTR pAppPrivate;        /**< pointer to any data the application
                                      wants to associate with this buffer */
     OMX_PTR pPlatformPrivate;   /**< pointer to any data the platform
-                                     wants to associate with this buffer */ 
+                                     wants to associate with this buffer */
     OMX_PTR pInputPortPrivate;  /**< pointer to any data the input port
                                      wants to associate with this buffer */
     OMX_PTR pOutputPortPrivate; /**< pointer to any data the output port
                                      wants to associate with this buffer */
-    OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will generate a 
+    OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will generate a
                                               mark event upon processing this buffer. */
-    OMX_PTR pMarkData;          /**< Application specific data associated with 
-                                     the mark sent on a mark event to disambiguate 
+    OMX_PTR pMarkData;          /**< Application specific data associated with
+                                     the mark sent on a mark event to disambiguate
                                      this mark from others. */
     OMX_U32 nTickCount;         /**< Optional entry that the component and
                                      application can update with a tick count
                                      when they access the component.  This
                                      value should be in microseconds.  Since
                                      this is a value relative to an arbitrary
-                                     starting point, this value cannot be used 
+                                     starting point, this value cannot be used
                                      to determine absolute time.  This is an
                                      optional entry and not all components
                                      will update it.*/
- OMX_TICKS nTimeStamp;          /**< Timestamp corresponding to the sample 
-                                     starting at the first logical sample 
-                                     boundary in the buffer. Timestamps of 
+ OMX_TICKS nTimeStamp;          /**< Timestamp corresponding to the sample
+                                     starting at the first logical sample
+                                     boundary in the buffer. Timestamps of
                                      successive samples within the buffer may
-                                     be inferred by adding the duration of the 
+                                     be inferred by adding the duration of the
                                      of the preceding buffer to the timestamp
                                      of the preceding buffer.*/
   OMX_U32     nFlags;           /**< buffer specific flags */
-  OMX_U32 nOutputPortIndex;     /**< The index of the output port (if any) using 
+  OMX_U32 nOutputPortIndex;     /**< The index of the output port (if any) using
                                      this buffer */
   OMX_U32 nInputPortIndex;      /**< The index of the input port (if any) using
                                      this buffer */
 } OMX_BUFFERHEADERTYPE;
 
-/** The OMX_EXTRADATATYPE enumeration is used to define the 
+/** The OMX_EXTRADATATYPE enumeration is used to define the
  * possible extra data payload types.
  * NB: this enum is binary backwards compatible with the previous
  * OMX_EXTRADATA_QUANT define.  This should be replaced with
  * OMX_ExtraDataQuantization.
  */
 typedef enum OMX_EXTRADATATYPE
 {
-   OMX_ExtraDataNone = 0,                       /**< Indicates that no more extra data sections follow */        
+   OMX_ExtraDataNone = 0,                       /**< Indicates that no more extra data sections follow */
    OMX_ExtraDataQuantization,                   /**< The data payload contains quantization data */
-   OMX_ExtraDataKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_ExtraDataKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_ExtraDataVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_ExtraDataMax = 0x7FFFFFFF
 } OMX_EXTRADATATYPE;
 
 
 typedef struct OMX_OTHER_EXTRADATATYPE  {
     OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;               
+    OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_EXTRADATATYPE eType;       /* Extra Data type */
     OMX_U32 nDataSize;   /* Size of the supporting data to follow */
     OMX_U8  data[1];     /* Supporting data hint  */
 } OMX_OTHER_EXTRADATATYPE;
 
 /** @ingroup comp */
 typedef struct OMX_PORT_PARAM_TYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPorts;             /**< The number of ports for this component */
     OMX_U32 nStartPortNumber;   /** first port number for this type of port */
-} OMX_PORT_PARAM_TYPE; 
+} OMX_PORT_PARAM_TYPE;
 
 /** @ingroup comp */
 typedef enum OMX_EVENTTYPE
 {
     OMX_EventCmdComplete,         /**< component has sucessfully completed a command */
     OMX_EventError,               /**< component has detected an error condition */
     OMX_EventMark,                /**< component has detected a buffer mark */
     OMX_EventPortSettingsChanged, /**< component is reported a port settings change */
-    OMX_EventBufferFlag,          /**< component has detected an EOS */ 
+    OMX_EventBufferFlag,          /**< component has detected an EOS */
     OMX_EventResourcesAcquired,   /**< component has been granted resources and is
                                        automatically starting the state change from
                                        OMX_StateWaitForResources to OMX_StateIdle. */
    OMX_EventComponentResumed,     /**< Component resumed due to reacquisition of resources */
    OMX_EventDynamicResourcesAvailable, /**< Component has acquired previously unavailable dynamic resources */
    OMX_EventPortFormatDetected,      /**< Component has detected a supported format. */
-   OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_EventMax = 0x7FFFFFFF
 } OMX_EVENTTYPE;
 
 typedef struct OMX_CALLBACKTYPE
 {
     /** The EventHandler method is used to notify the application when an
         event of interest occurs.  Events are defined in the OMX_EVENTTYPE
         enumeration.  Please see that enumeration for details of what will
         be returned for each type of event. Callbacks should not return
-        an error to the component, so if an error occurs, the application 
+        an error to the component, so if an error occurs, the application
         shall handle it internally.  This is a blocking call.
 
         The application should return from this call within 5 msec to avoid
         blocking the component for an excessively long period of time.
 
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param eEvent
             Event that the component wants to notify the application about.
         @param nData1
-            nData will be the OMX_ERRORTYPE for an error event and will be 
+            nData will be the OMX_ERRORTYPE for an error event and will be
             an OMX_COMMANDTYPE for a command complete event and OMX_INDEXTYPE for a OMX_PortSettingsChanged event.
          @param nData2
             nData2 will hold further information related to the event. Can be OMX_STATETYPE for
             a OMX_CommandStateSet command or port index for a OMX_PortSettingsChanged event.
             Default value is 0 if not used. )
         @param pEventData
             Pointer to additional event-specific data (see spec for meaning).
       */
@@ -548,60 +548,60 @@ typedef struct OMX_CALLBACKTYPE
         OMX_IN OMX_HANDLETYPE hComponent,
         OMX_IN OMX_PTR pAppData,
         OMX_IN OMX_EVENTTYPE eEvent,
         OMX_IN OMX_U32 nData1,
         OMX_IN OMX_U32 nData2,
         OMX_IN OMX_PTR pEventData);
 
     /** The EmptyBufferDone method is used to return emptied buffers from an
-        input port back to the application for reuse.  This is a blocking call 
+        input port back to the application for reuse.  This is a blocking call
         so the application should not attempt to refill the buffers during this
         call, but should queue them and refill them in another thread.  There
         is no error return, so the application shall handle any errors generated
-        internally.  
-        
+        internally.
+
         The application should return from this call within 5 msec.
-        
+
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param pBuffer
             pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
             or AllocateBuffer indicating the buffer that was emptied.
         @ingroup buf
      */
     OMX_ERRORTYPE (*EmptyBufferDone)(
         OMX_IN OMX_HANDLETYPE hComponent,
         OMX_IN OMX_PTR pAppData,
         OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
 
     /** The FillBufferDone method is used to return filled buffers from an
-        output port back to the application for emptying and then reuse.  
-        This is a blocking call so the application should not attempt to 
-        empty the buffers during this call, but should queue the buffers 
-        and empty them in another thread.  There is no error return, so 
-        the application shall handle any errors generated internally.  The 
+        output port back to the application for emptying and then reuse.
+        This is a blocking call so the application should not attempt to
+        empty the buffers during this call, but should queue the buffers
+        and empty them in another thread.  There is no error return, so
+        the application shall handle any errors generated internally.  The
         application shall also update the buffer header to indicate the
-        number of bytes placed into the buffer.  
+        number of bytes placed into the buffer.
 
         The application should return from this call within 5 msec.
-        
+
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param pBuffer
             pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
             or AllocateBuffer indicating the buffer that was filled.
         @ingroup buf
      */
     OMX_ERRORTYPE (*FillBufferDone)(
         OMX_OUT OMX_HANDLETYPE hComponent,
@@ -615,88 +615,88 @@ typedef struct OMX_CALLBACKTYPE
     @ingroup tun buf
 */
 typedef enum OMX_BUFFERSUPPLIERTYPE
 {
     OMX_BufferSupplyUnspecified = 0x0, /**< port supplying the buffers is unspecified,
                                               or don't care */
     OMX_BufferSupplyInput,             /**< input port supplies the buffers */
     OMX_BufferSupplyOutput,            /**< output port supplies the buffers */
-    OMX_BufferSupplyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_BufferSupplyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_BufferSupplyVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_BufferSupplyMax = 0x7FFFFFFF
 } OMX_BUFFERSUPPLIERTYPE;
 
 
-/** buffer supplier parameter 
+/** buffer supplier parameter
  * @ingroup tun
  */
 typedef struct OMX_PARAM_BUFFERSUPPLIERTYPE {
     OMX_U32 nSize; /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex; /**< port that this structure applies to */
     OMX_BUFFERSUPPLIERTYPE eBufferSupplier; /**< buffer supplier */
 } OMX_PARAM_BUFFERSUPPLIERTYPE;
 
 
-/**< indicates that buffers received by an input port of a tunnel 
-     may not modify the data in the buffers 
+/**< indicates that buffers received by an input port of a tunnel
+     may not modify the data in the buffers
      @ingroup tun
  */
-#define OMX_PORTTUNNELFLAG_READONLY 0x00000001 
+#define OMX_PORTTUNNELFLAG_READONLY 0x00000001
 
 
 /** The OMX_TUNNELSETUPTYPE structure is used to pass data from an output
     port to an input port as part the two ComponentTunnelRequest calls
-    resulting from a OMX_SetupTunnel call from the IL Client. 
+    resulting from a OMX_SetupTunnel call from the IL Client.
     @ingroup tun
- */   
+ */
 typedef struct OMX_TUNNELSETUPTYPE
 {
     OMX_U32 nTunnelFlags;             /**< bit flags for tunneling */
     OMX_BUFFERSUPPLIERTYPE eSupplier; /**< supplier preference */
-} OMX_TUNNELSETUPTYPE; 
+} OMX_TUNNELSETUPTYPE;
 
 /* OMX Component headers is included to enable the core to use
-   macros for functions into the component for OMX release 1.0.  
+   macros for functions into the component for OMX release 1.0.
    Developers should not access any structures or data from within
    the component header directly */
 /* TO BE REMOVED - #include <OMX_Component.h> */
 
-/** GetComponentVersion will return information about the component.  
+/** GetComponentVersion will return information about the component.
     This is a blocking call.  This macro will go directly from the
     application to the component (via a core macro).  The
     component will return from this call within 5 msec.
     @param [in] hComponent
         handle of component to execute the command
     @param [out] pComponentName
-        pointer to an empty string of length 128 bytes.  The component 
-        will write its name into this string.  The name will be 
-        terminated by a single zero byte.  The name of a component will 
-        be 127 bytes or less to leave room for the trailing zero byte.  
+        pointer to an empty string of length 128 bytes.  The component
+        will write its name into this string.  The name will be
+        terminated by a single zero byte.  The name of a component will
+        be 127 bytes or less to leave room for the trailing zero byte.
         An example of a valid component name is "OMX.ABC.ChannelMixer\0".
     @param [out] pComponentVersion
-        pointer to an OMX Version structure that the component will fill 
-        in.  The component will fill in a value that indicates the 
-        component version.  NOTE: the component version is NOT the same 
-        as the OMX Specification version (found in all structures).  The 
-        component version is defined by the vendor of the component and 
+        pointer to an OMX Version structure that the component will fill
+        in.  The component will fill in a value that indicates the
+        component version.  NOTE: the component version is NOT the same
+        as the OMX Specification version (found in all structures).  The
+        component version is defined by the vendor of the component and
         its value is entirely up to the component vendor.
     @param [out] pSpecVersion
-        pointer to an OMX Version structure that the component will fill 
-        in.  The SpecVersion is the version of the specification that the 
-        component was built against.  Please note that this value may or 
-        may not match the structure's version.  For example, if the 
-        component was built against the 2.0 specification, but the 
-        application (which creates the structure is built against the 
+        pointer to an OMX Version structure that the component will fill
+        in.  The SpecVersion is the version of the specification that the
+        component was built against.  Please note that this value may or
+        may not match the structure's version.  For example, if the
+        component was built against the 2.0 specification, but the
+        application (which creates the structure is built against the
         1.0 specification the versions would be different.
     @param [out] pComponentUUID
-        pointer to the UUID of the component which will be filled in by 
-        the component.  The UUID is a unique identifier that is set at 
-        RUN time for the component and is unique to each instantion of 
+        pointer to the UUID of the component which will be filled in by
+        the component.  The UUID is a unique identifier that is set at
+        RUN time for the component and is unique to each instantion of
         the component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetComponentVersion(                            \
         hComponent,                                         \
@@ -709,56 +709,56 @@ typedef struct OMX_TUNNELSETUPTYPE
         pComponentName,                                     \
         pComponentVersion,                                  \
         pSpecVersion,                                       \
         pComponentUUID)                 /* Macro End */
 
 
 /** Send a command to the component.  This call is a non-blocking call.
     The component should check the parameters and then queue the command
-    to the component thread to be executed.  The component thread shall 
-    send the EventHandler() callback at the conclusion of the command. 
+    to the component thread to be executed.  The component thread shall
+    send the EventHandler() callback at the conclusion of the command.
     This macro will go directly from the application to the component (via
     a core macro).  The component will return from this call within 5 msec.
-    
+
     When the command is "OMX_CommandStateSet" the component will queue a
     state transition to the new state idenfied in nParam.
-    
+
     When the command is "OMX_CommandFlush", to flush a port's buffer queues,
-    the command will force the component to return all buffers NOT CURRENTLY 
-    BEING PROCESSED to the application, in the order in which the buffers 
+    the command will force the component to return all buffers NOT CURRENTLY
+    BEING PROCESSED to the application, in the order in which the buffers
     were received.
-    
-    When the command is "OMX_CommandPortDisable" or 
+
+    When the command is "OMX_CommandPortDisable" or
     "OMX_CommandPortEnable", the component's port (given by the value of
-    nParam) will be stopped or restarted. 
-    
+    nParam) will be stopped or restarted.
+
     When the command "OMX_CommandMarkBuffer" is used to mark a buffer, the
     pCmdData will point to a OMX_MARKTYPE structure containing the component
     handle of the component to examine the buffer chain for the mark.  nParam1
     contains the index of the port on which the buffer mark is applied.
 
-    Specification text for more details. 
-    
+    Specification text for more details.
+
     @param [in] hComponent
         handle of component to execute the command
     @param [in] Cmd
         Command for the component to execute
     @param [in] nParam
-        Parameter for the command to be executed.  When Cmd has the value 
-        OMX_CommandStateSet, value is a member of OMX_STATETYPE.  When Cmd has 
-        the value OMX_CommandFlush, value of nParam indicates which port(s) 
-        to flush. -1 is used to flush all ports a single port index will 
+        Parameter for the command to be executed.  When Cmd has the value
+        OMX_CommandStateSet, value is a member of OMX_STATETYPE.  When Cmd has
+        the value OMX_CommandFlush, value of nParam indicates which port(s)
+        to flush. -1 is used to flush all ports a single port index will
         only flush that port.  When Cmd has the value "OMX_CommandPortDisable"
-        or "OMX_CommandPortEnable", the component's port is given by 
+        or "OMX_CommandPortEnable", the component's port is given by
         the value of nParam.  When Cmd has the value "OMX_CommandMarkBuffer"
         the components pot is given by the value of nParam.
     @param [in] pCmdData
         Parameter pointing to the OMX_MARKTYPE structure when Cmd has the value
-        "OMX_CommandMarkBuffer".     
+        "OMX_CommandMarkBuffer".
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_SendCommand(                                    \
          hComponent,                                        \
          Cmd,                                               \
@@ -766,39 +766,39 @@ typedef struct OMX_TUNNELSETUPTYPE
          pCmdData)                                          \
      ((OMX_COMPONENTTYPE*)hComponent)->SendCommand(         \
          hComponent,                                        \
          Cmd,                                               \
          nParam,                                            \
          pCmdData)                          /* Macro End */
 
 
-/** The OMX_GetParameter macro will get one of the current parameter 
-    settings from the component.  This macro cannot only be invoked when 
+/** The OMX_GetParameter macro will get one of the current parameter
+    settings from the component.  This macro cannot only be invoked when
     the component is in the OMX_StateInvalid state.  The nParamIndex
     parameter is used to indicate which structure is being requested from
-    the component.  The application shall allocate the correct structure 
-    and shall fill in the structure size and version information before 
+    the component.  The application shall allocate the correct structure
+    and shall fill in the structure size and version information before
     invoking this macro.  When the parameter applies to a port, the
     caller shall fill in the appropriate nPortIndex value indicating the
-    port on which the parameter applies. If the component has not had 
-    any settings changed, then the component should return a set of 
-    valid DEFAULT  parameters for the component.  This is a blocking 
-    call.  
-    
+    port on which the parameter applies. If the component has not had
+    any settings changed, then the component should return a set of
+    valid DEFAULT  parameters for the component.  This is a blocking
+    call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nParamIndex
         Index of the structure to be filled.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in,out] pComponentParameterStructure
-        Pointer to application allocated structure to be filled by the 
+        Pointer to application allocated structure to be filled by the
         component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetParameter(                                   \
         hComponent,                                         \
@@ -809,27 +809,27 @@ typedef struct OMX_TUNNELSETUPTYPE
         nParamIndex,                                        \
         pComponentParameterStructure)    /* Macro End */
 
 
 /** The OMX_SetParameter macro will send an initialization parameter
     structure to a component.  Each structure shall be sent one at a time,
     in a separate invocation of the macro.  This macro can only be
     invoked when the component is in the OMX_StateLoaded state, or the
-    port is disabled (when the parameter applies to a port). The 
+    port is disabled (when the parameter applies to a port). The
     nParamIndex parameter is used to indicate which structure is being
-    passed to the component.  The application shall allocate the 
-    correct structure and shall fill in the structure size and version 
+    passed to the component.  The application shall allocate the
+    correct structure and shall fill in the structure size and version
     information (as well as the actual data) before invoking this macro.
     The application is free to dispose of this structure after the call
-    as the component is required to copy any data it shall retain.  This 
-    is a blocking call.  
-    
+    as the component is required to copy any data it shall retain.  This
+    is a blocking call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nIndex
         Index of the structure to be sent.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in] pComponentParameterStructure
         pointer to application allocated structure to be used for
@@ -844,64 +844,64 @@ typedef struct OMX_TUNNELSETUPTYPE
         nParamIndex,                                        \
         pComponentParameterStructure)                        \
     ((OMX_COMPONENTTYPE*)hComponent)->SetParameter(         \
         hComponent,                                         \
         nParamIndex,                                        \
         pComponentParameterStructure)    /* Macro End */
 
 
-/** The OMX_GetConfig macro will get one of the configuration structures 
-    from a component.  This macro can be invoked anytime after the 
-    component has been loaded.  The nParamIndex call parameter is used to 
-    indicate which structure is being requested from the component.  The 
-    application shall allocate the correct structure and shall fill in the 
-    structure size and version information before invoking this macro.  
-    If the component has not had this configuration parameter sent before, 
-    then the component should return a set of valid DEFAULT values for the 
-    component.  This is a blocking call.  
-    
+/** The OMX_GetConfig macro will get one of the configuration structures
+    from a component.  This macro can be invoked anytime after the
+    component has been loaded.  The nParamIndex call parameter is used to
+    indicate which structure is being requested from the component.  The
+    application shall allocate the correct structure and shall fill in the
+    structure size and version information before invoking this macro.
+    If the component has not had this configuration parameter sent before,
+    then the component should return a set of valid DEFAULT values for the
+    component.  This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nIndex
         Index of the structure to be filled.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in,out] pComponentConfigStructure
-        pointer to application allocated structure to be filled by the 
+        pointer to application allocated structure to be filled by the
         component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
-*/        
+*/
 #define OMX_GetConfig(                                      \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)                           \
     ((OMX_COMPONENTTYPE*)hComponent)->GetConfig(            \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)       /* Macro End */
 
 
-/** The OMX_SetConfig macro will send one of the configuration 
+/** The OMX_SetConfig macro will send one of the configuration
     structures to a component.  Each structure shall be sent one at a time,
-    each in a separate invocation of the macro.  This macro can be invoked 
-    anytime after the component has been loaded.  The application shall 
-    allocate the correct structure and shall fill in the structure size 
-    and version information (as well as the actual data) before invoking 
-    this macro.  The application is free to dispose of this structure after 
-    the call as the component is required to copy any data it shall retain.  
-    This is a blocking call.  
-    
+    each in a separate invocation of the macro.  This macro can be invoked
+    anytime after the component has been loaded.  The application shall
+    allocate the correct structure and shall fill in the structure size
+    and version information (as well as the actual data) before invoking
+    this macro.  The application is free to dispose of this structure after
+    the call as the component is required to copy any data it shall retain.
+    This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nConfigIndex
         Index of the structure to be sent.  This value is from the
         OMX_INDEXTYPE enumeration above.
     @param [in] pComponentConfigStructure
         pointer to application allocated structure to be used for
@@ -916,32 +916,32 @@ typedef struct OMX_TUNNELSETUPTYPE
         nConfigIndex,                                       \
         pComponentConfigStructure)                           \
     ((OMX_COMPONENTTYPE*)hComponent)->SetConfig(            \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)       /* Macro End */
 
 
-/** The OMX_GetExtensionIndex macro will invoke a component to translate 
-    a vendor specific configuration or parameter string into an OMX 
-    structure index.  There is no requirement for the vendor to support 
-    this command for the indexes already found in the OMX_INDEXTYPE 
-    enumeration (this is done to save space in small components).  The 
+/** The OMX_GetExtensionIndex macro will invoke a component to translate
+    a vendor specific configuration or parameter string into an OMX
+    structure index.  There is no requirement for the vendor to support
+    this command for the indexes already found in the OMX_INDEXTYPE
+    enumeration (this is done to save space in small components).  The
     component shall support all vendor supplied extension indexes not found
-    in the master OMX_INDEXTYPE enumeration.  This is a blocking call.  
-    
+    in the master OMX_INDEXTYPE enumeration.  This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the GetHandle function.
     @param [in] cParameterName
         OMX_STRING that shall be less than 128 characters long including
-        the trailing null byte.  This is the string that will get 
+        the trailing null byte.  This is the string that will get
         translated by the component into a configuration index.
     @param [out] pIndexType
         a pointer to a OMX_INDEXTYPE to receive the index value.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
@@ -950,53 +950,53 @@ typedef struct OMX_TUNNELSETUPTYPE
         cParameterName,                                     \
         pIndexType)                                         \
     ((OMX_COMPONENTTYPE*)hComponent)->GetExtensionIndex(    \
         hComponent,                                         \
         cParameterName,                                     \
         pIndexType)                     /* Macro End */
 
 
-/** The OMX_GetState macro will invoke the component to get the current 
+/** The OMX_GetState macro will invoke the component to get the current
     state of the component and place the state value into the location
-    pointed to by pState.  
-    
+    pointed to by pState.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] pState
         pointer to the location to receive the state.  The value returned
-        is one of the OMX_STATETYPE members 
+        is one of the OMX_STATETYPE members
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetState(                                       \
         hComponent,                                         \
         pState)                                             \
     ((OMX_COMPONENTTYPE*)hComponent)->GetState(             \
         hComponent,                                         \
         pState)                         /* Macro End */
 
 
 /** The OMX_UseBuffer macro will request that the component use
-    a buffer (and allocate its own buffer header) already allocated 
-    by another component, or by the IL Client. This is a blocking 
+    a buffer (and allocate its own buffer header) already allocated
+    by another component, or by the IL Client. This is a blocking
     call.
-    
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
         pointer to the buffer header
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
  */
 
 #define OMX_UseBuffer(                                      \
@@ -1010,65 +1010,65 @@ typedef struct OMX_TUNNELSETUPTYPE
            hComponent,                                      \
            ppBufferHdr,                                     \
            nPortIndex,                                      \
            pAppPrivate,                                     \
            nSizeBytes,                                      \
            pBuffer)
 
 
-/** The OMX_AllocateBuffer macro will request that the component allocate 
-    a new buffer and buffer header.  The component will allocate the 
-    buffer and the buffer header and return a pointer to the buffer 
+/** The OMX_AllocateBuffer macro will request that the component allocate
+    a new buffer and buffer header.  The component will allocate the
+    buffer and the buffer header and return a pointer to the buffer
     header.  This is a blocking call.
-    
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive
         the pointer to the buffer header
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.  The port can be found by using the nPortIndex
         value as an index into the Port Definition array of the component.
     @param [in] pAppPrivate
-        pAppPrivate is used to initialize the pAppPrivate member of the 
+        pAppPrivate is used to initialize the pAppPrivate member of the
         buffer header structure.
     @param [in] nSizeBytes
         size of the buffer to allocate.  Used when bAllocateNew is true.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
- */    
+ */
 #define OMX_AllocateBuffer(                                 \
         hComponent,                                         \
         ppBuffer,                                           \
         nPortIndex,                                         \
         pAppPrivate,                                        \
         nSizeBytes)                                         \
     ((OMX_COMPONENTTYPE*)hComponent)->AllocateBuffer(       \
         hComponent,                                         \
         ppBuffer,                                           \
         nPortIndex,                                         \
         pAppPrivate,                                        \
         nSizeBytes)                     /* Macro End */
 
 
 /** The OMX_FreeBuffer macro will release a buffer header from the component
-    which was allocated using either OMX_AllocateBuffer or OMX_UseBuffer. If  
-    the component allocated the buffer (see the OMX_UseBuffer macro) then 
-    the component shall free the buffer and buffer header. This is a 
-    blocking call. 
-    
+    which was allocated using either OMX_AllocateBuffer or OMX_UseBuffer. If
+    the component allocated the buffer (see the OMX_UseBuffer macro) then
+    the component shall free the buffer and buffer header. This is a
+    blocking call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
@@ -1083,27 +1083,27 @@ typedef struct OMX_TUNNELSETUPTYPE
         nPortIndex,                                         \
         pBuffer)                                            \
     ((OMX_COMPONENTTYPE*)hComponent)->FreeBuffer(           \
         hComponent,                                         \
         nPortIndex,                                         \
         pBuffer)                        /* Macro End */
 
 
-/** The OMX_EmptyThisBuffer macro will send a buffer full of data to an 
+/** The OMX_EmptyThisBuffer macro will send a buffer full of data to an
     input port of a component.  The buffer will be emptied by the component
     and returned to the application via the EmptyBufferDone call back.
     This is a non-blocking call in that the component will record the buffer
-    and return immediately and then empty the buffer, later, at the proper 
-    time.  As expected, this macro may be invoked only while the component 
+    and return immediately and then empty the buffer, later, at the proper
+    time.  As expected, this macro may be invoked only while the component
     is in the OMX_StateExecuting.  If nPortIndex does not specify an input
-    port, the component shall return an error.  
-    
+    port, the component shall return an error.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
         or AllocateBuffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
@@ -1113,27 +1113,27 @@ typedef struct OMX_TUNNELSETUPTYPE
 #define OMX_EmptyThisBuffer(                                \
         hComponent,                                         \
         pBuffer)                                            \
     ((OMX_COMPONENTTYPE*)hComponent)->EmptyThisBuffer(      \
         hComponent,                                         \
         pBuffer)                        /* Macro End */
 
 
-/** The OMX_FillThisBuffer macro will send an empty buffer to an 
+/** The OMX_FillThisBuffer macro will send an empty buffer to an
     output port of a component.  The buffer will be filled by the component
     and returned to the application via the FillBufferDone call back.
     This is a non-blocking call in that the component will record the buffer
-    and return immediately and then fill the buffer, later, at the proper 
-    time.  As expected, this macro may be invoked only while the component 
+    and return immediately and then fill the buffer, later, at the proper
+    time.  As expected, this macro may be invoked only while the component
     is in the OMX_ExecutingState.  If nPortIndex does not specify an output
-    port, the component shall return an error.  
-    
+    port, the component shall return an error.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
         or AllocateBuffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
@@ -1147,38 +1147,38 @@ typedef struct OMX_TUNNELSETUPTYPE
         hComponent,                                         \
         pBuffer)                        /* Macro End */
 
 
 
 /** The OMX_UseEGLImage macro will request that the component use
     a EGLImage provided by EGL (and allocate its own buffer header)
     This is a blocking call.
-    
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
         pointer to the buffer header.  Note that the memory location used
         for this buffer is NOT visible to the IL Client.
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.  The port can be found by using the nPortIndex
         value as an index into the Port Definition array of the component.
     @param [in] pAppPrivate
-        pAppPrivate is used to initialize the pAppPrivate member of the 
+        pAppPrivate is used to initialize the pAppPrivate member of the
         buffer header structure.
     @param [in] eglImage
         eglImage contains the handle of the EGLImage to use as a buffer on the
-        specified port.  The component is expected to validate properties of 
+        specified port.  The component is expected to validate properties of
         the EGLImage against the configuration of the port to ensure the component
-        can use the EGLImage as a buffer.          
+        can use the EGLImage as a buffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
  */
 #define OMX_UseEGLImage(                                    \
            hComponent,                                      \
            ppBufferHdr,                                     \
@@ -1189,125 +1189,125 @@ typedef struct OMX_TUNNELSETUPTYPE
            hComponent,                                      \
            ppBufferHdr,                                     \
            nPortIndex,                                      \
            pAppPrivate,                                     \
            eglImage)
 
 /** The OMX_Init method is used to initialize the OMX core.  It shall be the
     first call made into OMX and it should only be executed one time without
-    an interviening OMX_Deinit call.  
-    
+    an interviening OMX_Deinit call.
+
     The core should return from this call within 20 msec.
 
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Init(void);
 
 
-/** The OMX_Deinit method is used to deinitialize the OMX core.  It shall be 
-    the last call made into OMX. In the event that the core determines that 
-    thare are components loaded when this call is made, the core may return 
+/** The OMX_Deinit method is used to deinitialize the OMX core.  It shall be
+    the last call made into OMX. In the event that the core determines that
+    thare are components loaded when this call is made, the core may return
     with an error rather than try to unload the components.
-        
+
     The core should return from this call within 20 msec.
-    
+
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Deinit(void);
 
 
 /** The OMX_ComponentNameEnum method will enumerate through all the names of
     recognised valid components in the system. This function is provided
     as a means to detect all the components in the system run-time. There is
     no strict ordering to the enumeration order of component names, although
     each name will only be enumerated once.  If the OMX core supports run-time
     installation of new components, it is only requried to detect newly
     installed components when the first call to enumerate component names
     is made (i.e. when nIndex is 0x0).
-    
+
     The core should return from this call in 20 msec.
-    
+
     @param [out] cComponentName
         pointer to a null terminated string with the component name.  The
         names of the components are strings less than 127 bytes in length
-        plus the trailing null for a maximum size of 128 bytes.  An example 
-        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are 
-        assigned by the vendor, but shall start with "OMX." and then have 
+        plus the trailing null for a maximum size of 128 bytes.  An example
+        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are
+        assigned by the vendor, but shall start with "OMX." and then have
         the Vendor designation next.
     @param [in] nNameLength
-        number of characters in the cComponentName string.  With all 
-        component name strings restricted to less than 128 characters 
+        number of characters in the cComponentName string.  With all
+        component name strings restricted to less than 128 characters
         (including the trailing null) it is recomended that the caller
         provide a input string for the cComponentName of 128 characters.
     @param [in] nIndex
-        number containing the enumeration index for the component. 
+        number containing the enumeration index for the component.
         Multiple calls to OMX_ComponentNameEnum with increasing values
         of nIndex will enumerate through the component names in the
         system until OMX_ErrorNoMore is returned.  The value of nIndex
         is 0 to (N-1), where N is the number of valid installed components
         in the system.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
-        OMX_ErrorNone.  When the value of nIndex exceeds the number of 
+        OMX_ErrorNone.  When the value of nIndex exceeds the number of
         components in the system minus 1, OMX_ErrorNoMore will be
         returned. Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_ComponentNameEnum(
     OMX_OUT OMX_STRING cComponentName,
     OMX_IN  OMX_U32 nNameLength,
     OMX_IN  OMX_U32 nIndex);
 
 
 /** The OMX_GetHandle method will locate the component specified by the
     component name given, load that component into memory and then invoke
-    the component's methods to create an instance of the component.  
-    
+    the component's methods to create an instance of the component.
+
     The core should return from this call within 20 msec.
-    
+
     @param [out] pHandle
         pointer to an OMX_HANDLETYPE pointer to be filled in by this method.
     @param [in] cComponentName
         pointer to a null terminated string with the component name.  The
         names of the components are strings less than 127 bytes in length
-        plus the trailing null for a maximum size of 128 bytes.  An example 
-        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are 
-        assigned by the vendor, but shall start with "OMX." and then have 
+        plus the trailing null for a maximum size of 128 bytes.  An example
+        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are
+        assigned by the vendor, but shall start with "OMX." and then have
         the Vendor designation next.
     @param [in] pAppData
         pointer to an application defined value that will be returned
         during callbacks so that the application can identify the source
         of the callback.
     @param [in] pCallBacks
         pointer to a OMX_CALLBACKTYPE structure that will be passed to the
-        component to initialize it with.  
+        component to initialize it with.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_GetHandle(
-    OMX_OUT OMX_HANDLETYPE* pHandle, 
+    OMX_OUT OMX_HANDLETYPE* pHandle,
     OMX_IN  OMX_STRING cComponentName,
     OMX_IN  OMX_PTR pAppData,
     OMX_IN  OMX_CALLBACKTYPE* pCallBacks);
 
 
-/** The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle 
+/** The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle
     method.  If the component reference count goes to zero, the component will
-    be unloaded from memory.  
-    
-    The core should return from this call within 20 msec when the component is 
+    be unloaded from memory.
+
+    The core should return from this call within 20 msec when the component is
     in the OMX_StateLoaded state.
 
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the GetHandle function.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
@@ -1316,131 +1316,131 @@ OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_G
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_FreeHandle(
     OMX_IN  OMX_HANDLETYPE hComponent);
 
 
 
 /** The OMX_SetupTunnel method will handle the necessary calls to the components
     to setup the specified tunnel the two components.  NOTE: This is
     an actual method (not a #define macro).  This method will make calls into
-    the component ComponentTunnelRequest method to do the actual tunnel 
-    connection.  
+    the component ComponentTunnelRequest method to do the actual tunnel
+    connection.
 
-    The ComponentTunnelRequest method on both components will be called. 
-    This method shall not be called unless the component is in the 
+    The ComponentTunnelRequest method on both components will be called.
+    This method shall not be called unless the component is in the
     OMX_StateLoaded state except when the ports used for the tunnel are
     disabled. In this case, the component may be in the OMX_StateExecuting,
-    OMX_StatePause, or OMX_StateIdle states. 
+    OMX_StatePause, or OMX_StateIdle states.
 
     The core should return from this call within 20 msec.
-    
+
     @param [in] hOutput
         Handle of the component to be accessed.  Also this is the handle
         of the component whose port, specified in the nPortOutput parameter
         will be used the source for the tunnel. This is the component handle
-        returned by the call to the OMX_GetHandle function.  There is a 
+        returned by the call to the OMX_GetHandle function.  There is a
         requirement that hOutput be the source for the data when
         tunelling (i.e. nPortOutput is an output port).  If 0x0, the component
         specified in hInput will have it's port specified in nPortInput
         setup for communication with the application / IL client.
     @param [in] nPortOutput
         nPortOutput is used to select the source port on component to be
-        used in the tunnel. 
+        used in the tunnel.
     @param [in] hInput
         This is the component to setup the tunnel with. This is the handle
         of the component whose port, specified in the nPortInput parameter
         will be used the destination for the tunnel. This is the component handle
-        returned by the call to the OMX_GetHandle function.  There is a 
+        returned by the call to the OMX_GetHandle function.  There is a
         requirement that hInput be the destination for the data when
         tunelling (i.e. nPortInut is an input port).   If 0x0, the component
         specified in hOutput will have it's port specified in nPortPOutput
         setup for communication with the application / IL client.
     @param [in] nPortInput
         nPortInput is used to select the destination port on component to be
         used in the tunnel.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
-        When OMX_ErrorNotImplemented is returned, one or both components is 
+        When OMX_ErrorNotImplemented is returned, one or both components is
         a non-interop component and does not support tunneling.
-        
+
         On failure, the ports of both components are setup for communication
         with the application / IL Client.
     @ingroup core tun
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel(
     OMX_IN  OMX_HANDLETYPE hOutput,
     OMX_IN  OMX_U32 nPortOutput,
     OMX_IN  OMX_HANDLETYPE hInput,
     OMX_IN  OMX_U32 nPortInput);
-    
+
 /** @ingroup cp */
 OMX_API OMX_ERRORTYPE   OMX_GetContentPipe(
     OMX_OUT OMX_HANDLETYPE *hPipe,
     OMX_IN OMX_STRING szURI);
 
 /** The OMX_GetComponentsOfRole method will return the number of components that support the given
-    role and (if the compNames field is non-NULL) the names of those components. The call will fail if 
+    role and (if the compNames field is non-NULL) the names of those components. The call will fail if
     an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
     client should:
         * first call this function with the compNames field NULL to determine the number of component names
-        * second call this function with the compNames field pointing to an array of names allocated 
+        * second call this function with the compNames field pointing to an array of names allocated
           according to the number returned by the first call.
 
     The core should return from this call within 5 msec.
-    
+
     @param [in] role
-        This is generic standard component name consisting only of component class 
+        This is generic standard component name consisting only of component class
         name and the type within that class (e.g. 'audio_decoder.aac').
     @param [inout] pNumComps
-        This is used both as input and output. 
- 
+        This is used both as input and output.
+
         If compNames is NULL, the input is ignored and the output specifies how many components support
         the given role.
-     
-        If compNames is not NULL, on input it bounds the size of the input structure and 
+
+        If compNames is not NULL, on input it bounds the size of the input structure and
         on output, it specifies the number of components string names listed within the compNames parameter.
     @param [inout] compNames
-        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts 
-        a list of the names of all physical components that implement the specified standard component name. 
+        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts
+        a list of the names of all physical components that implement the specified standard component name.
         Each name is NULL terminated. numComps indicates the number of names.
     @ingroup core
  */
-OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole ( 
+OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole (
 	OMX_IN      OMX_STRING role,
     OMX_INOUT   OMX_U32 *pNumComps,
     OMX_INOUT   OMX_U8  **compNames);
 
 /** The OMX_GetRolesOfComponent method will return the number of roles supported by the given
-    component and (if the roles field is non-NULL) the names of those roles. The call will fail if 
+    component and (if the roles field is non-NULL) the names of those roles. The call will fail if
     an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
     client should:
         * first call this function with the roles field NULL to determine the number of role names
-        * second call this function with the roles field pointing to an array of names allocated 
+        * second call this function with the roles field pointing to an array of names allocated
           according to the number returned by the first call.
 
     The core should return from this call within 5 msec.
 
     @param [in] compName
         This is the name of the component being queried about.
     @param [inout] pNumRoles
-        This is used both as input and output. 
- 
+        This is used both as input and output.
+
         If roles is NULL, the input is ignored and the output specifies how many roles the component supports.
-     
-        If compNames is not NULL, on input it bounds the size of the input structure and 
+
+        If compNames is not NULL, on input it bounds the size of the input structure and
         on output, it specifies the number of roles string names listed within the roles parameter.
     @param [out] roles
-        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings 
-        which accepts a list of the names of all standard components roles implemented on the 
+        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings
+        which accepts a list of the names of all standard components roles implemented on the
         specified component name. numComps indicates the number of names.
     @ingroup core
  */
-OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent ( 
-	OMX_IN      OMX_STRING compName, 
+OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent (
+	OMX_IN      OMX_STRING compName,
     OMX_INOUT   OMX_U32 *pNumRoles,
     OMX_OUT     OMX_U8 **roles);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif
--- a/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Index.h
+++ b/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Index.h
@@ -11,35 +11,35 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied.
  * See the License for the specific language governing permissions
  * and limitations under the License.
  * -------------------------------------------------------------------
  */
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** @file OMX_Index.h - OpenMax IL version 1.1.2
  *  The OMX_Index header file contains the definitions for both applications
  *  and components .
  */
 
@@ -49,66 +49,66 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header must include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 #include <OMX_Types.h>
 
 
 /** The OMX_INDEXTYPE enumeration is used to select a structure when either
- *  getting or setting parameters and/or configuration data.  Each entry in 
- *  this enumeration maps to an OMX specified structure.  When the 
+ *  getting or setting parameters and/or configuration data.  Each entry in
+ *  this enumeration maps to an OMX specified structure.  When the
  *  OMX_GetParameter, OMX_SetParameter, OMX_GetConfig or OMX_SetConfig methods
  *  are used, the second parameter will always be an entry from this enumeration
  *  and the third entry will be the structure shown in the comments for the entry.
- *  For example, if the application is initializing a cropping function, the 
- *  OMX_SetConfig command would have OMX_IndexConfigCommonInputCrop as the second parameter 
- *  and would send a pointer to an initialized OMX_RECTTYPE structure as the 
+ *  For example, if the application is initializing a cropping function, the
+ *  OMX_SetConfig command would have OMX_IndexConfigCommonInputCrop as the second parameter
+ *  and would send a pointer to an initialized OMX_RECTTYPE structure as the
  *  third parameter.
- *  
+ *
  *  The enumeration entries named with the OMX_Config prefix are sent using
  *  the OMX_SetConfig command and the enumeration entries named with the
  *  OMX_PARAM_ prefix are sent using the OMX_SetParameter command.
  */
 typedef enum OMX_INDEXTYPE {
 
     OMX_IndexComponentStartUnused = 0x01000000,
     OMX_IndexParamPriorityMgmt,             /**< reference: OMX_PRIORITYMGMTTYPE */
     OMX_IndexParamAudioInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamImageInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamVideoInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamOtherInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamNumAvailableStreams,      /**< reference: OMX_PARAM_U32TYPE */
     OMX_IndexParamActiveStream,             /**< reference: OMX_PARAM_U32TYPE */
     OMX_IndexParamSuspensionPolicy,         /**< reference: OMX_PARAM_SUSPENSIONPOLICYTYPE */
     OMX_IndexParamComponentSuspended,       /**< reference: OMX_PARAM_SUSPENSIONTYPE */
-    OMX_IndexConfigCapturing,               /**< reference: OMX_CONFIG_BOOLEANTYPE */ 
-    OMX_IndexConfigCaptureMode,             /**< reference: OMX_CONFIG_CAPTUREMODETYPE */ 
-    OMX_IndexAutoPauseAfterCapture,         /**< reference: OMX_CONFIG_BOOLEANTYPE */ 
+    OMX_IndexConfigCapturing,               /**< reference: OMX_CONFIG_BOOLEANTYPE */
+    OMX_IndexConfigCaptureMode,             /**< reference: OMX_CONFIG_CAPTUREMODETYPE */
+    OMX_IndexAutoPauseAfterCapture,         /**< reference: OMX_CONFIG_BOOLEANTYPE */
     OMX_IndexParamContentURI,               /**< reference: OMX_PARAM_CONTENTURITYPE */
-    OMX_IndexParamCustomContentPipe,        /**< reference: OMX_PARAM_CONTENTPIPETYPE */ 
+    OMX_IndexParamCustomContentPipe,        /**< reference: OMX_PARAM_CONTENTPIPETYPE */
     OMX_IndexParamDisableResourceConcealment, /**< reference: OMX_RESOURCECONCEALMENTTYPE */
     OMX_IndexConfigMetadataItemCount,       /**< reference: OMX_CONFIG_METADATAITEMCOUNTTYPE */
     OMX_IndexConfigContainerNodeCount,      /**< reference: OMX_CONFIG_CONTAINERNODECOUNTTYPE */
     OMX_IndexConfigMetadataItem,            /**< reference: OMX_CONFIG_METADATAITEMTYPE */
     OMX_IndexConfigCounterNodeID,           /**< reference: OMX_CONFIG_CONTAINERNODEIDTYPE */
     OMX_IndexParamMetadataFilterType,       /**< reference: OMX_PARAM_METADATAFILTERTYPE */
     OMX_IndexParamMetadataKeyFilter,        /**< reference: OMX_PARAM_METADATAFILTERTYPE */
     OMX_IndexConfigPriorityMgmt,            /**< reference: OMX_PRIORITYMGMTTYPE */
     OMX_IndexParamStandardComponentRole,    /**< reference: OMX_PARAM_COMPONENTROLETYPE */
 
     OMX_IndexPortStartUnused = 0x02000000,
     OMX_IndexParamPortDefinition,           /**< reference: OMX_PARAM_PORTDEFINITIONTYPE */
-    OMX_IndexParamCompBufferSupplier,       /**< reference: OMX_PARAM_BUFFERSUPPLIERTYPE */ 
+    OMX_IndexParamCompBufferSupplier,       /**< reference: OMX_PARAM_BUFFERSUPPLIERTYPE */
     OMX_IndexReservedStartUnused = 0x03000000,
 
     /* Audio parameters and configurations */
     OMX_IndexAudioStartUnused = 0x04000000,
     OMX_IndexParamAudioPortFormat,          /**< reference: OMX_AUDIO_PARAM_PORTFORMATTYPE */
     OMX_IndexParamAudioPcm,                 /**< reference: OMX_AUDIO_PARAM_PCMMODETYPE */
     OMX_IndexParamAudioAac,                 /**< reference: OMX_AUDIO_PARAM_AACPROFILETYPE */
     OMX_IndexParamAudioRa,                  /**< reference: OMX_AUDIO_PARAM_RATYPE */
@@ -250,20 +250,20 @@ typedef enum OMX_INDEXTYPE {
     OMX_IndexConfigTimeCurrentAudioReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimeCurrentVideoReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimeMediaTimeRequest,    /**< reference: OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE (write only) */
     OMX_IndexConfigTimeClientStartTime,     /**<reference:  OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimePosition,            /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE */
     OMX_IndexConfigTimeSeekMode,            /**< reference: OMX_TIME_CONFIG_SEEKMODETYPE */
 
 
-    OMX_IndexKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IndexKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     /* Vendor specific area */
     OMX_IndexVendorStartUnused = 0x7F000000,
-    /* Vendor specific structures should be in the range of 0x7F000000 
+    /* Vendor specific structures should be in the range of 0x7F000000
        to 0x7FFFFFFE.  This range is not broken out by vendor, so
        private indexes are not guaranteed unique and therefore should
        only be sent to the appropriate component. */
 
     OMX_IndexMax = 0x7FFFFFFF
 
 } OMX_INDEXTYPE;
 
--- a/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Types.h
+++ b/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Types.h
@@ -11,61 +11,61 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied.
  * See the License for the specific language governing permissions
  * and limitations under the License.
  * -------------------------------------------------------------------
  */
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_Types.h - OpenMax IL version 1.1.2
- *  The OMX_Types header file contains the primitive type definitions used by 
+ *  The OMX_Types header file contains the primitive type definitions used by
  *  the core, the application and the component.  This file may need to be
- *  modified to be used on systems that do not have "char" set to 8 bits, 
+ *  modified to be used on systems that do not have "char" set to 8 bits,
  *  "short" set to 16 bits and "long" set to 32 bits.
  */
 
 #ifndef OMX_Types_h
 #define OMX_Types_h
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 /** The OMX_API and OMX_APIENTRY are platform specific definitions used
  *  to declare OMX function prototypes.  They are modified to meet the
  *  requirements for a particular platform */
-#ifdef __SYMBIAN32__   
+#ifdef __SYMBIAN32__
 #   ifdef __OMX_EXPORTS
 #       define OMX_API __declspec(dllexport)
 #   else
 #       ifdef _WIN32
-#           define OMX_API __declspec(dllexport) 
+#           define OMX_API __declspec(dllexport)
 #       else
 #           define OMX_API __declspec(dllimport)
 #       endif
 #   endif
 #else
 #   ifdef _WIN32
 #      ifdef __OMX_EXPORTS
 #          define OMX_API __declspec(dllexport)
@@ -78,37 +78,37 @@ extern "C" {
 #          define OMX_API
 #      else
 #          define OMX_API extern
 #      endif
 #   endif
 #endif
 
 #ifndef OMX_APIENTRY
-#define OMX_APIENTRY 
-#endif 
+#define OMX_APIENTRY
+#endif
 
-/** OMX_IN is used to identify inputs to an OMX function.  This designation 
-    will also be used in the case of a pointer that points to a parameter 
+/** OMX_IN is used to identify inputs to an OMX function.  This designation
+    will also be used in the case of a pointer that points to a parameter
     that is used as an output. */
 #ifndef OMX_IN
 #define OMX_IN
 #endif
 
-/** OMX_OUT is used to identify outputs from an OMX function.  This 
-    designation will also be used in the case of a pointer that points 
+/** OMX_OUT is used to identify outputs from an OMX function.  This
+    designation will also be used in the case of a pointer that points
     to a parameter that is used as an input. */
 #ifndef OMX_OUT
 #define OMX_OUT
 #endif
 
 
 /** OMX_INOUT is used to identify parameters that may be either inputs or
-    outputs from an OMX function at the same time.  This designation will 
-    also be used in the case of a pointer that  points to a parameter that 
+    outputs from an OMX function at the same time.  This designation will
+    also be used in the case of a pointer that  points to a parameter that
     is used both as an input and an output. */
 #ifndef OMX_INOUT
 #define OMX_INOUT
 #endif
 
 /** OMX_ALL is used to as a wildcard to select all entities of the same type
  *  when specifying the index, or referring to a object by an index.  (i.e.
  *  use OMX_ALL to indicate all N channels). When used as a port index
@@ -116,41 +116,41 @@ extern "C" {
  *  parameter applies to the entire component not just one port. */
 #define OMX_ALL 0xFFFFFFFF
 
 /** In the following we define groups that help building doxygen documentation */
 
 /** @defgroup core OpenMAX IL core
  * Functions and structure related to the OMX IL core
  */
- 
+
  /** @defgroup comp OpenMAX IL component
  * Functions and structure related to the OMX IL component
  */
- 
-/** @defgroup rpm Resource and Policy Management 
+
+/** @defgroup rpm Resource and Policy Management
  * Structures for resource and policy management of components
  */
 
 /** @defgroup buf Buffer Management
  * Buffer handling functions and structures
  */
-  
+
 /** @defgroup tun Tunneling
  * @ingroup core comp
  * Structures and functions to manage tunnels among component ports
  */
- 
+
 /** @defgroup cp Content Pipes
  *  @ingroup core
  */
- 
+
  /** @defgroup metadata Metadata handling
-  * 
-  */ 
+  *
+  */
 
 /** OMX_U8 is an 8 bit unsigned quantity that is byte aligned */
 typedef unsigned char OMX_U8;
 
 /** OMX_S8 is an 8 bit signed quantity that is byte aligned */
 typedef signed char OMX_S8;
 
 /** OMX_U16 is a 16 bit unsigned quantity that is 16 bit word aligned */
@@ -162,32 +162,32 @@ typedef signed short OMX_S16;
 /** OMX_U32 is a 32 bit unsigned quantity that is 32 bit word aligned */
 typedef unsigned long OMX_U32;
 
 /** OMX_S32 is a 32 bit signed quantity that is 32 bit word aligned */
 typedef signed long OMX_S32;
 
 
 /* Users with compilers that cannot accept the "long long" designation should
-   define the OMX_SKIP64BIT macro.  It should be noted that this may cause 
+   define the OMX_SKIP64BIT macro.  It should be noted that this may cause
    some components to fail to compile if the component was written to require
    64 bit integral types.  However, these components would NOT compile anyway
    since the compiler does not support the way the component was written.
 */
 #ifndef OMX_SKIP64BIT
 #ifdef __SYMBIAN32__
 /** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
 typedef unsigned long long OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed long long OMX_S64;
 
 #elif defined(WIN32)
 
-/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */   
+/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
 typedef unsigned __int64  OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed   __int64  OMX_S64;
 
 #else /* WIN32 */
 
 /** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
@@ -195,74 +195,74 @@ typedef unsigned long long OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed long long OMX_S64;
 
 #endif /* WIN32 */
 #endif
 
 
-/** The OMX_BOOL type is intended to be used to represent a true or a false 
+/** The OMX_BOOL type is intended to be used to represent a true or a false
     value when passing parameters to and from the OMX core and components.  The
     OMX_BOOL is a 32 bit quantity and is aligned on a 32 bit word boundary.
  */
 typedef enum OMX_BOOL {
     OMX_FALSE = 0,
     OMX_TRUE = !OMX_FALSE,
     OMX_BOOL_MAX = 0x7FFFFFFF
-} OMX_BOOL; 
- 
+} OMX_BOOL;
+
 /** The OMX_PTR type is intended to be used to pass pointers between the OMX
     applications and the OMX Core and components.  This is a 32 bit pointer and
     is aligned on a 32 bit boundary.
  */
 typedef void* OMX_PTR;
 
 /** The OMX_STRING type is intended to be used to pass "C" type strings between
-    the application and the core and component.  The OMX_STRING type is a 32 
-    bit pointer to a zero terminated string.  The  pointer is word aligned and 
-    the string is byte aligned.  
+    the application and the core and component.  The OMX_STRING type is a 32
+    bit pointer to a zero terminated string.  The  pointer is word aligned and
+    the string is byte aligned.
  */
 typedef char* OMX_STRING;
 
 /** The OMX_BYTE type is intended to be used to pass arrays of bytes such as
-    buffers between the application and the component and core.  The OMX_BYTE 
+    buffers between the application and the component and core.  The OMX_BYTE
     type is a 32 bit pointer to a zero terminated string.  The  pointer is word
     aligned and the string is byte aligned.
  */
 typedef unsigned char* OMX_BYTE;
 
 /** OMX_UUIDTYPE is a very long unique identifier to uniquely identify
     at runtime.  This identifier should be generated by a component in a way
     that guarantees that every instance of the identifier running on the system
     is unique. */
 typedef unsigned char OMX_UUIDTYPE[128];
 
 /** The OMX_DIRTYPE enumeration is used to indicate if a port is an input or
-    an output port.  This enumeration is common across all component types.    
+    an output port.  This enumeration is common across all component types.
  */
 typedef enum OMX_DIRTYPE
 {
     OMX_DirInput,              /**< Port is an input port */
     OMX_DirOutput,             /**< Port is an output port */
     OMX_DirMax = 0x7FFFFFFF
 } OMX_DIRTYPE;
 
-/** The OMX_ENDIANTYPE enumeration is used to indicate the bit ordering 
-    for numerical data (i.e. big endian, or little endian).    
+/** The OMX_ENDIANTYPE enumeration is used to indicate the bit ordering
+    for numerical data (i.e. big endian, or little endian).
  */
 typedef enum OMX_ENDIANTYPE
 {
     OMX_EndianBig, /**< big endian */
     OMX_EndianLittle, /**< little endian */
     OMX_EndianMax = 0x7FFFFFFF
 } OMX_ENDIANTYPE;
 
 
-/** The OMX_NUMERICALDATATYPE enumeration is used to indicate if data 
+/** The OMX_NUMERICALDATATYPE enumeration is used to indicate if data
     is signed or unsigned
  */
 typedef enum OMX_NUMERICALDATATYPE
 {
     OMX_NumericalDataSigned, /**< signed data */
     OMX_NumericalDataUnsigned, /**< unsigned data */
     OMX_NumercialDataMax = 0x7FFFFFFF
 } OMX_NUMERICALDATATYPE;
@@ -280,26 +280,26 @@ typedef struct OMX_BU32 {
 typedef struct OMX_BS32 {
     OMX_S32 nValue; /**< actual value */
     OMX_S32 nMin;   /**< minimum for value (i.e. nValue >= nMin) */
     OMX_S32 nMax;   /**< maximum for value (i.e. nValue <= nMax) */
 } OMX_BS32;
 
 
 /** Structure representing some time or duration in microseconds. This structure
-  *  must be interpreted as a signed 64 bit value. The quantity is signed to accommodate 
-  *  negative deltas and preroll scenarios. The quantity is represented in microseconds 
+  *  must be interpreted as a signed 64 bit value. The quantity is signed to accommodate
+  *  negative deltas and preroll scenarios. The quantity is represented in microseconds
   *  to accomodate high resolution timestamps (e.g. DVD presentation timestamps based
-  *  on a 90kHz clock) and to allow more accurate and synchronized delivery (e.g. 
-  *  individual audio samples delivered at 192 kHz). The quantity is 64 bit to 
+  *  on a 90kHz clock) and to allow more accurate and synchronized delivery (e.g.
+  *  individual audio samples delivered at 192 kHz). The quantity is 64 bit to
   *  accommodate a large dynamic range (signed 32 bit values would allow only for plus
   *  or minus 35 minutes).
   *
-  *  Implementations with limited precision may convert the signed 64 bit value to 
-  *  a signed 32 bit value internally but risk loss of precision.  
+  *  Implementations with limited precision may convert the signed 64 bit value to
+  *  a signed 32 bit value internally but risk loss of precision.
   */
 #ifndef OMX_SKIP64BIT
 typedef OMX_S64 OMX_TICKS;
 #else
 typedef struct OMX_TICKS
 {
     OMX_U32 nLowPart;    /** low bits of the signed 64 bit tick value */
     OMX_U32 nHighPart;   /** high bits of the signed 64 bit tick value */
@@ -309,38 +309,38 @@ typedef struct OMX_TICKS
 
 /** Define the public interface for the OMX Handle.  The core will not use
     this value internally, but the application should only use this value.
  */
 typedef void* OMX_HANDLETYPE;
 
 typedef struct OMX_MARKTYPE
 {
-    OMX_HANDLETYPE hMarkTargetComponent;   /**< The component that will 
-                                                generate a mark event upon 
+    OMX_HANDLETYPE hMarkTargetComponent;   /**< The component that will
+                                                generate a mark event upon
                                                 processing the mark. */
-    OMX_PTR pMarkData;   /**< Application specific data associated with 
-                              the mark sent on a mark event to disambiguate 
+    OMX_PTR pMarkData;   /**< Application specific data associated with
+                              the mark sent on a mark event to disambiguate
                               this mark from others. */
 } OMX_MARKTYPE;
 
 
 /** OMX_NATIVE_DEVICETYPE is used to map a OMX video port to the
- *  platform & operating specific object used to reference the display 
+ *  platform & operating specific object used to reference the display
  *  or can be used by a audio port for native audio rendering */
 typedef void* OMX_NATIVE_DEVICETYPE;
 
 /** OMX_NATIVE_WINDOWTYPE is used to map a OMX video port to the
  *  platform & operating specific object used to reference the window */
 typedef void* OMX_NATIVE_WINDOWTYPE;
 
 /** The OMX_VERSIONTYPE union is used to specify the version for
     a structure or component.  For a component, the version is entirely
     specified by the component vendor.  Components doing the same function
-    from different vendors may or may not have the same version.  For 
+    from different vendors may or may not have the same version.  For
     structures, the version shall be set by the entity that allocates the
     structure.  For structures specified in the OMX 1.1 specification, the
     value of the version shall be set to 1.1.0.0 in all cases.  Access to the
     OMX_VERSIONTYPE can be by a single 32 bit access (e.g. by nVersion) or
     by accessing one of the structure elements to, for example, check only
     the Major revision.
  */
 typedef union OMX_VERSIONTYPE
--- a/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Video.h
+++ b/media/omx-plugin/include/ics/media/stagefright/openmax/OMX_Video.h
@@ -11,41 +11,41 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied.
  * See the License for the specific language governing permissions
  * and limitations under the License.
  * -------------------------------------------------------------------
  */
 /**
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
-/** 
+/**
  *  @file OMX_Video.h - OpenMax IL version 1.1.2
- *  The structures is needed by Video components to exchange parameters 
+ *  The structures is needed by Video components to exchange parameters
  *  and configuration data with OMX components.
  */
 #ifndef OMX_Video_h
 #define OMX_Video_h
 
 /** @defgroup video OpenMAX IL Video Domain
  * @ingroup iv
  * Structures for OpenMAX IL Video domain
@@ -55,236 +55,236 @@
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /**
  * Each OMX header must include all required header files to allow the
  * header to compile without errors.  The includes below are required
- * for this header file to compile successfully 
+ * for this header file to compile successfully
  */
 
 #include <OMX_IVCommon.h>
 
 
 /**
- * Enumeration used to define the possible video compression codings.  
- * NOTE:  This essentially refers to file extensions. If the coding is 
- *        being used to specify the ENCODE type, then additional work 
- *        must be done to configure the exact flavor of the compression 
- *        to be used.  For decode cases where the user application can 
- *        not differentiate between MPEG-4 and H.264 bit streams, it is 
+ * Enumeration used to define the possible video compression codings.
+ * NOTE:  This essentially refers to file extensions. If the coding is
+ *        being used to specify the ENCODE type, then additional work
+ *        must be done to configure the exact flavor of the compression
+ *        to be used.  For decode cases where the user application can
+ *        not differentiate between MPEG-4 and H.264 bit streams, it is
  *        up to the codec to handle this.
  */
 typedef enum OMX_VIDEO_CODINGTYPE {
     OMX_VIDEO_CodingUnused,     /**< Value when coding is N/A */
     OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */
     OMX_VIDEO_CodingMPEG2,      /**< AKA: H.262 */
     OMX_VIDEO_CodingH263,       /**< H.263 */
     OMX_VIDEO_CodingMPEG4,      /**< MPEG-4 */
     OMX_VIDEO_CodingWMV,        /**< all versions of Windows Media Video */
     OMX_VIDEO_CodingRV,         /**< all versions of Real Video */
     OMX_VIDEO_CodingAVC,        /**< H.264/AVC */
     OMX_VIDEO_CodingMJPEG,      /**< Motion JPEG */
     OMX_VIDEO_CodingVPX,        /**< Google VPX, formerly known as On2 VP8 */
-    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_CodingMax = 0x7FFFFFFF
 } OMX_VIDEO_CODINGTYPE;
 
 
 /**
- * Data structure used to define a video path.  The number of Video paths for 
- * input and output will vary by type of the Video component.  
- * 
+ * Data structure used to define a video path.  The number of Video paths for
+ * input and output will vary by type of the Video component.
+ *
  *    Input (aka Source) : zero Inputs, one Output,
  *    Splitter           : one Input, 2 or more Outputs,
  *    Processing Element : one Input, one output,
  *    Mixer              : 2 or more inputs, one output,
  *    Output (aka Sink)  : one Input, zero outputs.
- * 
- * The PortDefinition structure is used to define all of the parameters 
- * necessary for the compliant component to setup an input or an output video 
- * path.  If additional vendor specific data is required, it should be 
- * transmitted to the component using the CustomCommand function.  Compliant 
- * components will prepopulate this structure with optimal values during the 
+ *
+ * The PortDefinition structure is used to define all of the parameters
+ * necessary for the compliant component to setup an input or an output video
+ * path.  If additional vendor specific data is required, it should be
+ * transmitted to the component using the CustomCommand function.  Compliant
+ * components will prepopulate this structure with optimal values during the
  * GetDefaultInitParams command.
  *
  * STRUCT MEMBERS:
  *  cMIMEType             : MIME type of data for the port
- *  pNativeRender         : Platform specific reference for a display if a 
+ *  pNativeRender         : Platform specific reference for a display if a
  *                          sync, otherwise this field is 0
- *  nFrameWidth           : Width of frame to be used on channel if 
+ *  nFrameWidth           : Width of frame to be used on channel if
  *                          uncompressed format is used.  Use 0 for unknown,
  *                          don't care or variable
- *  nFrameHeight          : Height of frame to be used on channel if 
+ *  nFrameHeight          : Height of frame to be used on channel if
  *                          uncompressed format is used. Use 0 for unknown,
  *                          don't care or variable
- *  nStride               : Number of bytes per span of an image 
+ *  nStride               : Number of bytes per span of an image
  *                          (i.e. indicates the number of bytes to get
  *                          from span N to span N+1, where negative stride
  *                          indicates the image is bottom up
  *  nSliceHeight          : Height used when encoding in slices
- *  nBitrate              : Bit rate of frame to be used on channel if 
- *                          compressed format is used. Use 0 for unknown, 
+ *  nBitrate              : Bit rate of frame to be used on channel if
+ *                          compressed format is used. Use 0 for unknown,
  *                          don't care or variable
- *  xFramerate            : Frame rate to be used on channel if uncompressed 
- *                          format is used. Use 0 for unknown, don't care or 
+ *  xFramerate            : Frame rate to be used on channel if uncompressed
+ *                          format is used. Use 0 for unknown, don't care or
  *                          variable.  Units are Q16 frames per second.
- *  bFlagErrorConcealment : Turns on error concealment if it is supported by 
+ *  bFlagErrorConcealment : Turns on error concealment if it is supported by
  *                          the OMX component
- *  eCompressionFormat    : Compression format used in this instance of the 
- *                          component. When OMX_VIDEO_CodingUnused is 
+ *  eCompressionFormat    : Compression format used in this instance of the
+ *                          component. When OMX_VIDEO_CodingUnused is
  *                          specified, eColorFormat is used
  *  eColorFormat : Decompressed format used by this component
- *  pNativeWindow : Platform specific reference for a window object if a 
- *                          display sink , otherwise this field is 0x0. 
+ *  pNativeWindow : Platform specific reference for a window object if a
+ *                          display sink , otherwise this field is 0x0.
  */
 typedef struct OMX_VIDEO_PORTDEFINITIONTYPE {
     OMX_STRING cMIMEType;
     OMX_NATIVE_DEVICETYPE pNativeRender;
     OMX_U32 nFrameWidth;
     OMX_U32 nFrameHeight;
     OMX_S32 nStride;
     OMX_U32 nSliceHeight;
     OMX_U32 nBitrate;
     OMX_U32 xFramerate;
     OMX_BOOL bFlagErrorConcealment;
     OMX_VIDEO_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
     OMX_NATIVE_WINDOWTYPE pNativeWindow;
 } OMX_VIDEO_PORTDEFINITIONTYPE;
 
-/**  
- * Port format parameter.  This structure is used to enumerate the various 
+/**
+ * Port format parameter.  This structure is used to enumerate the various
  * data input/output format supported by the port.
- * 
+ *
  * STRUCT MEMBERS:
  *  nSize              : Size of the structure in bytes
  *  nVersion           : OMX specification version information
  *  nPortIndex         : Indicates which port to set
- *  nIndex             : Indicates the enumeration index for the format from 
+ *  nIndex             : Indicates the enumeration index for the format from
  *                       0x0 to N-1
- *  eCompressionFormat : Compression format used in this instance of the 
- *                       component. When OMX_VIDEO_CodingUnused is specified, 
- *                       eColorFormat is used 
+ *  eCompressionFormat : Compression format used in this instance of the
+ *                       component. When OMX_VIDEO_CodingUnused is specified,
+ *                       eColorFormat is used
  *  eColorFormat       : Decompressed format used by this component
  *  xFrameRate         : Indicates the video frame rate in Q16 format
  */
 typedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nIndex;
-    OMX_VIDEO_CODINGTYPE eCompressionFormat; 
+    OMX_VIDEO_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
     OMX_U32 xFramerate;
 } OMX_VIDEO_PARAM_PORTFORMATTYPE;
 
 
 /**
- * This is a structure for configuring video compression quantization 
+ * This is a structure for configuring video compression quantization
  * parameter values.  Codecs may support different QP values for different
  * frame types.
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version info
  *  nPortIndex : Port that this structure applies to
  *  nQpI       : QP value to use for index frames
  *  nQpP       : QP value to use for P frames
- *  nQpB       : QP values to use for bidirectional frames 
+ *  nQpB       : QP values to use for bidirectional frames
  */
 typedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE {
-    OMX_U32 nSize;            
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nQpI;
     OMX_U32 nQpP;
     OMX_U32 nQpB;
 } OMX_VIDEO_PARAM_QUANTIZATIONTYPE;
 
 
-/** 
- * Structure for configuration of video fast update parameters. 
- *  
+/**
+ * Structure for configuration of video fast update parameters.
+ *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version info 
+ *  nVersion   : OMX specification version info
  *  nPortIndex : Port that this structure applies to
  *  bEnableVFU : Enable/Disable video fast update
  *  nFirstGOB  : Specifies the number of the first macroblock row
  *  nFirstMB   : specifies the first MB relative to the specified first GOB
- *  nNumMBs    : Specifies the number of MBs to be refreshed from nFirstGOB 
+ *  nNumMBs    : Specifies the number of MBs to be refreshed from nFirstGOB
  *               and nFirstMB
  */
 typedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE {
-    OMX_U32 nSize;            
-    OMX_VERSIONTYPE nVersion; 
-    OMX_U32 nPortIndex;       
-    OMX_BOOL bEnableVFU;      
-    OMX_U32 nFirstGOB;                            
-    OMX_U32 nFirstMB;                            
-    OMX_U32 nNumMBs;                                  
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnableVFU;
+    OMX_U32 nFirstGOB;
+    OMX_U32 nFirstMB;
+    OMX_U32 nNumMBs;
 } OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE;
 
 
-/** 
- * Enumeration of possible bitrate control types 
+/**
+ * Enumeration of possible bitrate control types
  */
 typedef enum OMX_VIDEO_CONTROLRATETYPE {
     OMX_Video_ControlRateDisable,
     OMX_Video_ControlRateVariable,
     OMX_Video_ControlRateConstant,
     OMX_Video_ControlRateVariableSkipFrames,
     OMX_Video_ControlRateConstantSkipFrames,
-    OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_Video_ControlRateMax = 0x7FFFFFFF
 } OMX_VIDEO_CONTROLRATETYPE;
 
 
-/** 
- * Structure for configuring bitrate mode of a codec. 
+/**
+ * Structure for configuring bitrate mode of a codec.
  *
  * STRUCT MEMBERS:
  *  nSize          : Size of the struct in bytes
  *  nVersion       : OMX spec version info
  *  nPortIndex     : Port that this struct applies to
  *  eControlRate   : Control rate type enum
  *  nTargetBitrate : Target bitrate to encode with
  */
 typedef struct OMX_VIDEO_PARAM_BITRATETYPE {
-    OMX_U32 nSize;                          
-    OMX_VERSIONTYPE nVersion;               
-    OMX_U32 nPortIndex;                     
-    OMX_VIDEO_CONTROLRATETYPE eControlRate; 
-    OMX_U32 nTargetBitrate;                 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_VIDEO_CONTROLRATETYPE eControlRate;
+    OMX_U32 nTargetBitrate;
 } OMX_VIDEO_PARAM_BITRATETYPE;
 
 
-/** 
- * Enumeration of possible motion vector (MV) types 
+/**
+ * Enumeration of possible motion vector (MV) types
  */
 typedef enum OMX_VIDEO_MOTIONVECTORTYPE {
     OMX_Video_MotionVectorPixel,
     OMX_Video_MotionVectorHalfPel,
     OMX_Video_MotionVectorQuarterPel,
     OMX_Video_MotionVectorEighthPel,
-    OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_Video_MotionVectorMax = 0x7FFFFFFF
 } OMX_VIDEO_MOTIONVECTORTYPE;
 
 
 /**
  * Structure for configuring the number of motion vectors used as well
  * as their accuracy.
- * 
+ *
  * STRUCT MEMBERS:
  *  nSize            : Size of the struct in bytes
  *  nVersion         : OMX spec version info
  *  nPortIndex       : port that this structure applies to
  *  eAccuracy        : Enumerated MV accuracy
  *  bUnrestrictedMVs : Allow unrestricted MVs
  *  bFourMV          : Allow use of 4 MVs
  *  sXSearchRange    : Search range in horizontal direction for MVs
@@ -297,173 +297,173 @@ typedef struct OMX_VIDEO_PARAM_MOTIONVEC
     OMX_VIDEO_MOTIONVECTORTYPE eAccuracy;
     OMX_BOOL bUnrestrictedMVs;
     OMX_BOOL bFourMV;
     OMX_S32 sXSearchRange;
     OMX_S32 sYSearchRange;
 } OMX_VIDEO_PARAM_MOTIONVECTORTYPE;
 
 
-/** 
- * Enumeration of possible methods to use for Intra Refresh 
+/**
+ * Enumeration of possible methods to use for Intra Refresh
  */
 typedef enum OMX_VIDEO_INTRAREFRESHTYPE {
     OMX_VIDEO_IntraRefreshCyclic,
     OMX_VIDEO_IntraRefreshAdaptive,
     OMX_VIDEO_IntraRefreshBoth,
-    OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF
 } OMX_VIDEO_INTRAREFRESHTYPE;
 
 
 /**
- * Structure for configuring intra refresh mode 
- * 
+ * Structure for configuring intra refresh mode
+ *
  * STRUCT MEMBERS:
  *  nSize        : Size of the structure in bytes
  *  nVersion     : OMX specification version information
  *  nPortIndex   : Port that this structure applies to
  *  eRefreshMode : Cyclic, Adaptive, or Both
- *  nAirMBs      : Number of intra macroblocks to refresh in a frame when 
+ *  nAirMBs      : Number of intra macroblocks to refresh in a frame when
  *                 AIR is enabled
- *  nAirRef      : Number of times a motion marked macroblock has to be  
+ *  nAirRef      : Number of times a motion marked macroblock has to be
  *                 intra coded
- *  nCirMBs      : Number of consecutive macroblocks to be coded as "intra"  
+ *  nCirMBs      : Number of consecutive macroblocks to be coded as "intra"
  *                 when CIR is enabled
  */
 typedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode;
     OMX_U32 nAirMBs;
     OMX_U32 nAirRef;
     OMX_U32 nCirMBs;
 } OMX_VIDEO_PARAM_INTRAREFRESHTYPE;
 
 
 /**
- * Structure for enabling various error correction methods for video 
+ * Structure for enabling various error correction methods for video
  * compression.
  *
  * STRUCT MEMBERS:
  *  nSize                   : Size of the structure in bytes
- *  nVersion                : OMX specification version information 
- *  nPortIndex              : Port that this structure applies to 
+ *  nVersion                : OMX specification version information
+ *  nPortIndex              : Port that this structure applies to
  *  bEnableHEC              : Enable/disable header extension codes (HEC)
  *  bEnableResync           : Enable/disable resynchronization markers
- *  nResynchMarkerSpacing   : Resynch markers interval (in bits) to be 
- *                            applied in the stream 
- *  bEnableDataPartitioning : Enable/disable data partitioning 
- *  bEnableRVLC             : Enable/disable reversible variable length 
+ *  nResynchMarkerSpacing   : Resynch markers interval (in bits) to be
+ *                            applied in the stream
+ *  bEnableDataPartitioning : Enable/disable data partitioning
+ *  bEnableRVLC             : Enable/disable reversible variable length
  *                            coding
  */
 typedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bEnableHEC;
     OMX_BOOL bEnableResync;
     OMX_U32  nResynchMarkerSpacing;
     OMX_BOOL bEnableDataPartitioning;
     OMX_BOOL bEnableRVLC;
 } OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE;
 
 
-/** 
- * Configuration of variable block-size motion compensation (VBSMC) 
- * 
+/**
+ * Configuration of variable block-size motion compensation (VBSMC)
+ *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version information 
+ *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  b16x16     : Enable inter block search 16x16
  *  b16x8      : Enable inter block search 16x8
  *  b8x16      : Enable inter block search 8x16
  *  b8x8       : Enable inter block search 8x8
  *  b8x4       : Enable inter block search 8x4
  *  b4x8       : Enable inter block search 4x8
  *  b4x4       : Enable inter block search 4x4
  */
 typedef struct OMX_VIDEO_PARAM_VBSMCTYPE {
-    OMX_U32 nSize; 
-    OMX_VERSIONTYPE nVersion; 
-    OMX_U32 nPortIndex;       
-    OMX_BOOL b16x16; 
-    OMX_BOOL b16x8; 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL b16x16;
+    OMX_BOOL b16x8;
     OMX_BOOL b8x16;
     OMX_BOOL b8x8;
     OMX_BOOL b8x4;
     OMX_BOOL b4x8;
     OMX_BOOL b4x4;
 } OMX_VIDEO_PARAM_VBSMCTYPE;
 
 
-/** 
- * H.263 profile types, each profile indicates support for various 
+/**
+ * H.263 profile types, each profile indicates support for various
  * performance bounds and different annexes.
  *
  * ENUMS:
- *  Baseline           : Baseline Profile: H.263 (V1), no optional modes                                                    
- *  H320 Coding        : H.320 Coding Efficiency Backward Compatibility 
+ *  Baseline           : Baseline Profile: H.263 (V1), no optional modes
+ *  H320 Coding        : H.320 Coding Efficiency Backward Compatibility
  *                       Profile: H.263+ (V2), includes annexes I, J, L.4
  *                       and T
- *  BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 
- *                       includes annex F                                    
- *  ISWV2              : Interactive Streaming Wireless Profile: H.263+ 
- *                       (V2), includes annexes I, J, K and T                 
- *  ISWV3              : Interactive Streaming Wireless Profile: H.263++  
- *                       (V3), includes profile 3 and annexes V and W.6.3.8   
- *  HighCompression    : Conversational High Compression Profile: H.263++  
- *                       (V3), includes profiles 1 & 2 and annexes D and U   
- *  Internet           : Conversational Internet Profile: H.263++ (V3),  
- *                       includes profile 5 and annex K                       
- *  Interlace          : Conversational Interlace Profile: H.263++ (V3),  
- *                       includes profile 5 and annex W.6.3.11               
- *  HighLatency        : High Latency Profile: H.263++ (V3), includes  
- *                       profile 6 and annexes O.1 and P.5                       
+ *  BackwardCompatible : Backward Compatibility Profile: H.263 (V1),
+ *                       includes annex F
+ *  ISWV2              : Interactive Streaming Wireless Profile: H.263+
+ *                       (V2), includes annexes I, J, K and T
+ *  ISWV3              : Interactive Streaming Wireless Profile: H.263++
+ *                       (V3), includes profile 3 and annexes V and W.6.3.8
+ *  HighCompression    : Conversational High Compression Profile: H.263++
+ *                       (V3), includes profiles 1 & 2 and annexes D and U
+ *  Internet           : Conversational Internet Profile: H.263++ (V3),
+ *                       includes profile 5 and annex K
+ *  Interlace          : Conversational Interlace Profile: H.263++ (V3),
+ *                       includes profile 5 and annex W.6.3.11
+ *  HighLatency        : High Latency Profile: H.263++ (V3), includes
+ *                       profile 6 and annexes O.1 and P.5
  */
 typedef enum OMX_VIDEO_H263PROFILETYPE {
-    OMX_VIDEO_H263ProfileBaseline            = 0x01,        
-    OMX_VIDEO_H263ProfileH320Coding          = 0x02,          
-    OMX_VIDEO_H263ProfileBackwardCompatible  = 0x04,  
-    OMX_VIDEO_H263ProfileISWV2               = 0x08,               
-    OMX_VIDEO_H263ProfileISWV3               = 0x10,               
-    OMX_VIDEO_H263ProfileHighCompression     = 0x20,     
-    OMX_VIDEO_H263ProfileInternet            = 0x40,            
-    OMX_VIDEO_H263ProfileInterlace           = 0x80,           
-    OMX_VIDEO_H263ProfileHighLatency         = 0x100,         
-    OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_H263ProfileBaseline            = 0x01,
+    OMX_VIDEO_H263ProfileH320Coding          = 0x02,
+    OMX_VIDEO_H263ProfileBackwardCompatible  = 0x04,
+    OMX_VIDEO_H263ProfileISWV2               = 0x08,
+    OMX_VIDEO_H263ProfileISWV3               = 0x10,
+    OMX_VIDEO_H263ProfileHighCompression     = 0x20,
+    OMX_VIDEO_H263ProfileInternet            = 0x40,
+    OMX_VIDEO_H263ProfileInterlace           = 0x80,
+    OMX_VIDEO_H263ProfileHighLatency         = 0x100,
+    OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_H263ProfileMax                 = 0x7FFFFFFF  
+    OMX_VIDEO_H263ProfileMax                 = 0x7FFFFFFF
 } OMX_VIDEO_H263PROFILETYPE;
 
 
-/** 
- * H.263 level types, each level indicates support for various frame sizes, 
+/**
+ * H.263 level types, each level indicates support for various frame sizes,
  * bit rates, decoder frame rates.
  */
 typedef enum OMX_VIDEO_H263LEVELTYPE {
-    OMX_VIDEO_H263Level10  = 0x01,  
-    OMX_VIDEO_H263Level20  = 0x02,      
-    OMX_VIDEO_H263Level30  = 0x04,      
-    OMX_VIDEO_H263Level40  = 0x08,      
-    OMX_VIDEO_H263Level45  = 0x10,      
-    OMX_VIDEO_H263Level50  = 0x20,      
-    OMX_VIDEO_H263Level60  = 0x40,      
-    OMX_VIDEO_H263Level70  = 0x80, 
-    OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_H263Level10  = 0x01,
+    OMX_VIDEO_H263Level20  = 0x02,
+    OMX_VIDEO_H263Level30  = 0x04,
+    OMX_VIDEO_H263Level40  = 0x08,
+    OMX_VIDEO_H263Level45  = 0x10,
+    OMX_VIDEO_H263Level50  = 0x20,
+    OMX_VIDEO_H263Level60  = 0x40,
+    OMX_VIDEO_H263Level70  = 0x80,
+    OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_H263LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_H263LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_H263LEVELTYPE;
 
 
-/** 
- * Specifies the picture type. These values should be OR'd to signal all 
+/**
+ * Specifies the picture type. These values should be OR'd to signal all
  * pictures types which are allowed.
  *
  * ENUMS:
  *  Generic Picture Types:          I, P and B
  *  H.263 Specific Picture Types:   SI and SP
  *  H.264 Specific Picture Types:   EI and EP
  *  MPEG-4 Specific Picture Types:  S
  */
@@ -471,46 +471,46 @@ typedef enum OMX_VIDEO_PICTURETYPE {
     OMX_VIDEO_PictureTypeI   = 0x01,
     OMX_VIDEO_PictureTypeP   = 0x02,
     OMX_VIDEO_PictureTypeB   = 0x04,
     OMX_VIDEO_PictureTypeSI  = 0x08,
     OMX_VIDEO_PictureTypeSP  = 0x10,
     OMX_VIDEO_PictureTypeEI  = 0x11,
     OMX_VIDEO_PictureTypeEP  = 0x12,
     OMX_VIDEO_PictureTypeS   = 0x14,
-    OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF
 } OMX_VIDEO_PICTURETYPE;
 
 
-/** 
- * H.263 Params 
+/**
+ * H.263 Params
  *
  * STRUCT MEMBERS:
  *  nSize                    : Size of the structure in bytes
- *  nVersion                 : OMX specification version information 
+ *  nVersion                 : OMX specification version information
  *  nPortIndex               : Port that this structure applies to
  *  nPFrames                 : Number of P frames between each I frame
  *  nBFrames                 : Number of B frames between each I frame
  *  eProfile                 : H.263 profile(s) to use
  *  eLevel                   : H.263 level(s) to use
- *  bPLUSPTYPEAllowed        : Indicating that it is allowed to use PLUSPTYPE 
- *                             (specified in the 1998 version of H.263) to 
- *                             indicate custom picture sizes or clock 
- *                             frequencies 
- *  nAllowedPictureTypes     : Specifies the picture types allowed in the 
+ *  bPLUSPTYPEAllowed        : Indicating that it is allowed to use PLUSPTYPE
+ *                             (specified in the 1998 version of H.263) to
+ *                             indicate custom picture sizes or clock
+ *                             frequencies
+ *  nAllowedPictureTypes     : Specifies the picture types allowed in the
  *                             bitstream
- *  bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 
- *                             not constrained. It is recommended to change 
- *                             the value of the RTYPE bit for each reference 
+ *  bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is
+ *                             not constrained. It is recommended to change
+ *                             the value of the RTYPE bit for each reference
  *                             picture in error-free communication
- *  nPictureHeaderRepetition : Specifies the frequency of picture header 
+ *  nPictureHeaderRepetition : Specifies the frequency of picture header
  *                             repetition
- *  nGOBHeaderInterval       : Specifies the interval of non-empty GOB  
+ *  nGOBHeaderInterval       : Specifies the interval of non-empty GOB
  *                             headers in units of GOBs
  */
 typedef struct OMX_VIDEO_PARAM_H263TYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nPFrames;
     OMX_U32 nBFrames;
@@ -519,75 +519,75 @@ typedef struct OMX_VIDEO_PARAM_H263TYPE 
     OMX_BOOL bPLUSPTYPEAllowed;
     OMX_U32 nAllowedPictureTypes;
     OMX_BOOL bForceRoundingTypeToZero;
     OMX_U32 nPictureHeaderRepetition;
     OMX_U32 nGOBHeaderInterval;
 } OMX_VIDEO_PARAM_H263TYPE;
 
 
-/** 
- * MPEG-2 profile types, each profile indicates support for various 
+/**
+ * MPEG-2 profile types, each profile indicates support for various
  * performance bounds and different annexes.
  */
 typedef enum OMX_VIDEO_MPEG2PROFILETYPE {
     OMX_VIDEO_MPEG2ProfileSimple = 0,  /**< Simple Profile */
     OMX_VIDEO_MPEG2ProfileMain,        /**< Main Profile */
     OMX_VIDEO_MPEG2Profile422,         /**< 4:2:2 Profile */
     OMX_VIDEO_MPEG2ProfileSNR,         /**< SNR Profile */
     OMX_VIDEO_MPEG2ProfileSpatial,     /**< Spatial Profile */
     OMX_VIDEO_MPEG2ProfileHigh,        /**< High Profile */
-    OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG2PROFILETYPE;
 
 
-/** 
- * MPEG-2 level types, each level indicates support for various frame 
- * sizes, bit rates, decoder frame rates.  No need 
+/**
+ * MPEG-2 level types, each level indicates support for various frame
+ * sizes, bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_MPEG2LEVELTYPE {
-    OMX_VIDEO_MPEG2LevelLL = 0,  /**< Low Level */ 
-    OMX_VIDEO_MPEG2LevelML,      /**< Main Level */ 
-    OMX_VIDEO_MPEG2LevelH14,     /**< High 1440 */ 
-    OMX_VIDEO_MPEG2LevelHL,      /**< High Level */   
-    OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG2LevelLL = 0,  /**< Low Level */
+    OMX_VIDEO_MPEG2LevelML,      /**< Main Level */
+    OMX_VIDEO_MPEG2LevelH14,     /**< High 1440 */
+    OMX_VIDEO_MPEG2LevelHL,      /**< High Level */
+    OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG2LEVELTYPE;
 
 
-/** 
- * MPEG-2 params 
+/**
+ * MPEG-2 params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nPFrames   : Number of P frames between each I frame
  *  nBFrames   : Number of B frames between each I frame
  *  eProfile   : MPEG-2 profile(s) to use
  *  eLevel     : MPEG-2 levels(s) to use
  */
 typedef struct OMX_VIDEO_PARAM_MPEG2TYPE {
-    OMX_U32 nSize;           
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;      
-    OMX_U32 nPFrames;        
-    OMX_U32 nBFrames;        
+    OMX_U32 nPortIndex;
+    OMX_U32 nPFrames;
+    OMX_U32 nBFrames;
     OMX_VIDEO_MPEG2PROFILETYPE eProfile;
-	OMX_VIDEO_MPEG2LEVELTYPE eLevel;   
+	OMX_VIDEO_MPEG2LEVELTYPE eLevel;
 } OMX_VIDEO_PARAM_MPEG2TYPE;
 
 
-/** 
- * MPEG-4 profile types, each profile indicates support for various 
+/**
+ * MPEG-4 profile types, each profile indicates support for various
  * performance bounds and different annexes.
- * 
+ *
  * ENUMS:
  *  - Simple Profile, Levels 1-3
  *  - Simple Scalable Profile, Levels 1-2
  *  - Core Profile, Levels 1-2
  *  - Main Profile, Levels 2-4
  *  - N-bit Profile, Level 2
  *  - Scalable Texture Profile, Level 1
  *  - Simple Face Animation Profile, Levels 1-2
@@ -596,83 +596,83 @@ typedef struct OMX_VIDEO_PARAM_MPEG2TYPE
  *  - Hybrid Profile, Levels 1-2
  *  - Advanced Real Time Simple Profiles, Levels 1-4
  *  - Core Scalable Profile, Levels 1-3
  *  - Advanced Coding Efficiency Profile, Levels 1-4
  *  - Advanced Core Profile, Levels 1-2
  *  - Advanced Scalable Texture, Levels 2-3
  */
 typedef enum OMX_VIDEO_MPEG4PROFILETYPE {
-    OMX_VIDEO_MPEG4ProfileSimple           = 0x01,        
-    OMX_VIDEO_MPEG4ProfileSimpleScalable   = 0x02,    
-    OMX_VIDEO_MPEG4ProfileCore             = 0x04,              
-    OMX_VIDEO_MPEG4ProfileMain             = 0x08,             
-    OMX_VIDEO_MPEG4ProfileNbit             = 0x10,              
-    OMX_VIDEO_MPEG4ProfileScalableTexture  = 0x20,   
-    OMX_VIDEO_MPEG4ProfileSimpleFace       = 0x40,        
-    OMX_VIDEO_MPEG4ProfileSimpleFBA        = 0x80,         
-    OMX_VIDEO_MPEG4ProfileBasicAnimated    = 0x100,     
-    OMX_VIDEO_MPEG4ProfileHybrid           = 0x200,            
-    OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400,  
-    OMX_VIDEO_MPEG4ProfileCoreScalable     = 0x800,      
-    OMX_VIDEO_MPEG4ProfileAdvancedCoding   = 0x1000,    
-    OMX_VIDEO_MPEG4ProfileAdvancedCore     = 0x2000,      
+    OMX_VIDEO_MPEG4ProfileSimple           = 0x01,
+    OMX_VIDEO_MPEG4ProfileSimpleScalable   = 0x02,
+    OMX_VIDEO_MPEG4ProfileCore             = 0x04,
+    OMX_VIDEO_MPEG4ProfileMain             = 0x08,
+    OMX_VIDEO_MPEG4ProfileNbit             = 0x10,
+    OMX_VIDEO_MPEG4ProfileScalableTexture  = 0x20,
+    OMX_VIDEO_MPEG4ProfileSimpleFace       = 0x40,
+    OMX_VIDEO_MPEG4ProfileSimpleFBA        = 0x80,
+    OMX_VIDEO_MPEG4ProfileBasicAnimated    = 0x100,
+    OMX_VIDEO_MPEG4ProfileHybrid           = 0x200,
+    OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400,
+    OMX_VIDEO_MPEG4ProfileCoreScalable     = 0x800,
+    OMX_VIDEO_MPEG4ProfileAdvancedCoding   = 0x1000,
+    OMX_VIDEO_MPEG4ProfileAdvancedCore     = 0x2000,
     OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000,
     OMX_VIDEO_MPEG4ProfileAdvancedSimple   = 0x8000,
-    OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG4ProfileMax              = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG4ProfileMax              = 0x7FFFFFFF
 } OMX_VIDEO_MPEG4PROFILETYPE;
 
 
-/** 
- * MPEG-4 level types, each level indicates support for various frame 
- * sizes, bit rates, decoder frame rates.  No need 
+/**
+ * MPEG-4 level types, each level indicates support for various frame
+ * sizes, bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_MPEG4LEVELTYPE {
-    OMX_VIDEO_MPEG4Level0  = 0x01,   /**< Level 0 */   
-    OMX_VIDEO_MPEG4Level0b = 0x02,   /**< Level 0b */   
-    OMX_VIDEO_MPEG4Level1  = 0x04,   /**< Level 1 */ 
-    OMX_VIDEO_MPEG4Level2  = 0x08,   /**< Level 2 */ 
-    OMX_VIDEO_MPEG4Level3  = 0x10,   /**< Level 3 */ 
-    OMX_VIDEO_MPEG4Level4  = 0x20,   /**< Level 4 */  
-    OMX_VIDEO_MPEG4Level4a = 0x40,   /**< Level 4a */  
-    OMX_VIDEO_MPEG4Level5  = 0x80,   /**< Level 5 */  
-    OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG4Level0  = 0x01,   /**< Level 0 */
+    OMX_VIDEO_MPEG4Level0b = 0x02,   /**< Level 0b */
+    OMX_VIDEO_MPEG4Level1  = 0x04,   /**< Level 1 */
+    OMX_VIDEO_MPEG4Level2  = 0x08,   /**< Level 2 */
+    OMX_VIDEO_MPEG4Level3  = 0x10,   /**< Level 3 */
+    OMX_VIDEO_MPEG4Level4  = 0x20,   /**< Level 4 */
+    OMX_VIDEO_MPEG4Level4a = 0x40,   /**< Level 4a */
+    OMX_VIDEO_MPEG4Level5  = 0x80,   /**< Level 5 */
+    OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG4LEVELTYPE;
 
 
-/** 
+/**
  * MPEG-4 configuration.  This structure handles configuration options
  * which are specific to MPEG4 algorithms
  *
  * STRUCT MEMBERS:
  *  nSize                : Size of the structure in bytes
  *  nVersion             : OMX specification version information
  *  nPortIndex           : Port that this structure applies to
- *  nSliceHeaderSpacing  : Number of macroblocks between slice header (H263+ 
+ *  nSliceHeaderSpacing  : Number of macroblocks between slice header (H263+
  *                         Annex K). Put zero if not used
  *  bSVH                 : Enable Short Video Header mode
  *  bGov                 : Flag to enable GOV
- *  nPFrames             : Number of P frames between each I frame (also called 
+ *  nPFrames             : Number of P frames between each I frame (also called
  *                         GOV period)
  *  nBFrames             : Number of B frames between each I frame
  *  nIDCVLCThreshold     : Value of intra DC VLC threshold
  *  bACPred              : Flag to use ac prediction
  *  nMaxPacketSize       : Maximum size of packet in bytes.
- *  nTimeIncRes          : Used to pass VOP time increment resolution for MPEG4. 
+ *  nTimeIncRes          : Used to pass VOP time increment resolution for MPEG4.
  *                         Interpreted as described in MPEG4 standard.
  *  eProfile             : MPEG-4 profile(s) to use.
  *  eLevel               : MPEG-4 level(s) to use.
  *  nAllowedPictureTypes : Specifies the picture types allowed in the bitstream
  *  nHeaderExtension     : Specifies the number of consecutive video packet
  *                         headers within a VOP
- *  bReversibleVLC       : Specifies whether reversible variable length coding 
+ *  bReversibleVLC       : Specifies whether reversible variable length coding
  *                         is in use
  */
 typedef struct OMX_VIDEO_PARAM_MPEG4TYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nSliceHeaderSpacing;
     OMX_BOOL bSVH;
@@ -686,83 +686,83 @@ typedef struct OMX_VIDEO_PARAM_MPEG4TYPE
     OMX_VIDEO_MPEG4PROFILETYPE eProfile;
     OMX_VIDEO_MPEG4LEVELTYPE eLevel;
     OMX_U32 nAllowedPictureTypes;
     OMX_U32 nHeaderExtension;
     OMX_BOOL bReversibleVLC;
 } OMX_VIDEO_PARAM_MPEG4TYPE;
 
 
-/** 
- * WMV Versions 
+/**
+ * WMV Versions
  */
 typedef enum OMX_VIDEO_WMVFORMATTYPE {
     OMX_VIDEO_WMVFormatUnused = 0x01,   /**< Format unused or unknown */
     OMX_VIDEO_WMVFormat7      = 0x02,   /**< Windows Media Video format 7 */
     OMX_VIDEO_WMVFormat8      = 0x04,   /**< Windows Media Video format 8 */
     OMX_VIDEO_WMVFormat9      = 0x08,   /**< Windows Media Video format 9 */
-    OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_WMVFormatMax    = 0x7FFFFFFF
 } OMX_VIDEO_WMVFORMATTYPE;
 
 
-/** 
- * WMV Params 
+/**
+ * WMV Params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  eFormat    : Version of WMV stream / data
  */
 typedef struct OMX_VIDEO_PARAM_WMVTYPE {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_WMVFORMATTYPE eFormat;
 } OMX_VIDEO_PARAM_WMVTYPE;
 
 
-/** 
- * Real Video Version 
+/**
+ * Real Video Version
  */
 typedef enum OMX_VIDEO_RVFORMATTYPE {
     OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */
     OMX_VIDEO_RVFormat8,          /**< Real Video format 8 */
     OMX_VIDEO_RVFormat9,          /**< Real Video format 9 */
     OMX_VIDEO_RVFormatG2,         /**< Real Video Format G2 */
-    OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_RVFormatMax = 0x7FFFFFFF
 } OMX_VIDEO_RVFORMATTYPE;
 
 
-/** 
- * Real Video Params 
+/**
+ * Real Video Params
  *
  * STUCT MEMBERS:
  *  nSize              : Size of the structure in bytes
- *  nVersion           : OMX specification version information 
+ *  nVersion           : OMX specification version information
  *  nPortIndex         : Port that this structure applies to
  *  eFormat            : Version of RV stream / data
  *  nBitsPerPixel      : Bits per pixel coded in the frame
  *  nPaddedWidth       : Padded width in pixel of a video frame
  *  nPaddedHeight      : Padded Height in pixels of a video frame
  *  nFrameRate         : Rate of video in frames per second
  *  nBitstreamFlags    : Flags which internal information about the bitstream
  *  nBitstreamVersion  : Bitstream version
  *  nMaxEncodeFrameSize: Max encoded frame size
  *  bEnablePostFilter  : Turn on/off post filter
  *  bEnableTemporalInterpolation : Turn on/off temporal interpolation
- *  bEnableLatencyMode : When enabled, the decoder does not display a decoded 
- *                       frame until it has detected that no enhancement layer 
- *  					 frames or dependent B frames will be coming. This 
- *  					 detection usually occurs when a subsequent non-B 
- *  					 frame is encountered 
+ *  bEnableLatencyMode : When enabled, the decoder does not display a decoded
+ *                       frame until it has detected that no enhancement layer
+ *  					 frames or dependent B frames will be coming. This
+ *  					 detection usually occurs when a subsequent non-B
+ *  					 frame is encountered
  */
 typedef struct OMX_VIDEO_PARAM_RVTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_RVFORMATTYPE eFormat;
     OMX_U16 nBitsPerPixel;
     OMX_U16 nPaddedWidth;
@@ -772,37 +772,37 @@ typedef struct OMX_VIDEO_PARAM_RVTYPE {
     OMX_U32 nBitstreamVersion;
     OMX_U32 nMaxEncodeFrameSize;
     OMX_BOOL bEnablePostFilter;
     OMX_BOOL bEnableTemporalInterpolation;
     OMX_BOOL bEnableLatencyMode;
 } OMX_VIDEO_PARAM_RVTYPE;
 
 
-/** 
- * AVC profile types, each profile indicates support for various 
+/**
+ * AVC profile types, each profile indicates support for various
  * performance bounds and different annexes.
  */
 typedef enum OMX_VIDEO_AVCPROFILETYPE {
     OMX_VIDEO_AVCProfileBaseline = 0x01,   /**< Baseline profile */
     OMX_VIDEO_AVCProfileMain     = 0x02,   /**< Main profile */
     OMX_VIDEO_AVCProfileExtended = 0x04,   /**< Extended profile */
     OMX_VIDEO_AVCProfileHigh     = 0x08,   /**< High profile */
     OMX_VIDEO_AVCProfileHigh10   = 0x10,   /**< High 10 profile */
     OMX_VIDEO_AVCProfileHigh422  = 0x20,   /**< High 4:2:2 profile */
     OMX_VIDEO_AVCProfileHigh444  = 0x40,   /**< High 4:4:4 profile */
-    OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_AVCProfileMax      = 0x7FFFFFFF  
+    OMX_VIDEO_AVCProfileMax      = 0x7FFFFFFF
 } OMX_VIDEO_AVCPROFILETYPE;
 
 
-/** 
- * AVC level types, each level indicates support for various frame sizes, 
- * bit rates, decoder frame rates.  No need 
+/**
+ * AVC level types, each level indicates support for various frame sizes,
+ * bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_AVCLEVELTYPE {
     OMX_VIDEO_AVCLevel1   = 0x01,     /**< Level 1 */
     OMX_VIDEO_AVCLevel1b  = 0x02,     /**< Level 1b */
     OMX_VIDEO_AVCLevel11  = 0x04,     /**< Level 1.1 */
     OMX_VIDEO_AVCLevel12  = 0x08,     /**< Level 1.2 */
     OMX_VIDEO_AVCLevel13  = 0x10,     /**< Level 1.3 */
     OMX_VIDEO_AVCLevel2   = 0x20,     /**< Level 2 */
@@ -811,158 +811,158 @@ typedef enum OMX_VIDEO_AVCLEVELTYPE {
     OMX_VIDEO_AVCLevel3   = 0x100,    /**< Level 3 */
     OMX_VIDEO_AVCLevel31  = 0x200,    /**< Level 3.1 */
     OMX_VIDEO_AVCLevel32  = 0x400,    /**< Level 3.2 */
     OMX_VIDEO_AVCLevel4   = 0x800,    /**< Level 4 */
     OMX_VIDEO_AVCLevel41  = 0x1000,   /**< Level 4.1 */
     OMX_VIDEO_AVCLevel42  = 0x2000,   /**< Level 4.2 */
     OMX_VIDEO_AVCLevel5   = 0x4000,   /**< Level 5 */
     OMX_VIDEO_AVCLevel51  = 0x8000,   /**< Level 5.1 */
-    OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCLEVELTYPE;
 
 
-/** 
- * AVC loop filter modes 
+/**
+ * AVC loop filter modes
  *
  * OMX_VIDEO_AVCLoopFilterEnable               : Enable
  * OMX_VIDEO_AVCLoopFilterDisable              : Disable
  * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries
  */
 typedef enum OMX_VIDEO_AVCLOOPFILTERTYPE {
     OMX_VIDEO_AVCLoopFilterEnable = 0,
     OMX_VIDEO_AVCLoopFilterDisable,
     OMX_VIDEO_AVCLoopFilterDisableSliceBoundary,
-    OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCLOOPFILTERTYPE;
 
 
-/** 
- * AVC params 
+/**
+ * AVC params
  *
  * STRUCT MEMBERS:
  *  nSize                     : Size of the structure in bytes
  *  nVersion                  : OMX specification version information
  *  nPortIndex                : Port that this structure applies to
- *  nSliceHeaderSpacing       : Number of macroblocks between slice header, put  
+ *  nSliceHeaderSpacing       : Number of macroblocks between slice header, put
  *                              zero if not used
  *  nPFrames                  : Number of P frames between each I frame
  *  nBFrames                  : Number of B frames between each I frame
  *  bUseHadamard              : Enable/disable Hadamard transform
  *  nRefFrames                : Max number of reference frames to use for inter
  *                              motion search (1-16)
  *  nRefIdxTrailing           : Pic param set ref frame index (index into ref
  *                              frame buffer of trailing frames list), B frame
  *                              support
  *  nRefIdxForward            : Pic param set ref frame index (index into ref
  *                              frame buffer of forward frames list), B frame
  *                              support
- *  bEnableUEP                : Enable/disable unequal error protection. This 
+ *  bEnableUEP                : Enable/disable unequal error protection. This
  *                              is only valid of data partitioning is enabled.
  *  bEnableFMO                : Enable/disable flexible macroblock ordering
  *  bEnableASO                : Enable/disable arbitrary slice ordering
  *  bEnableRS                 : Enable/disable sending of redundant slices
  *  eProfile                  : AVC profile(s) to use
  *  eLevel                    : AVC level(s) to use
- *  nAllowedPictureTypes      : Specifies the picture types allowed in the 
+ *  nAllowedPictureTypes      : Specifies the picture types allowed in the
  *                              bitstream
- *  bFrameMBsOnly             : specifies that every coded picture of the 
- *                              coded video sequence is a coded frame 
+ *  bFrameMBsOnly             : specifies that every coded picture of the
+ *                              coded video sequence is a coded frame
  *                              containing only frame macroblocks
- *  bMBAFF                    : Enable/disable switching between frame and 
+ *  bMBAFF                    : Enable/disable switching between frame and
  *                              field macroblocks within a picture
- *  bEntropyCodingCABAC       : Entropy decoding method to be applied for the 
- *                              syntax elements for which two descriptors appear 
+ *  bEntropyCodingCABAC       : Entropy decoding method to be applied for the
+ *                              syntax elements for which two descriptors appear
  *                              in the syntax tables
- *  bWeightedPPrediction      : Enable/disable weighted prediction shall not 
+ *  bWeightedPPrediction      : Enable/disable weighted prediction shall not
  *                              be applied to P and SP slices
- *  nWeightedBipredicitonMode : Default weighted prediction is applied to B 
- *                              slices 
+ *  nWeightedBipredicitonMode : Default weighted prediction is applied to B
+ *                              slices
  *  bconstIpred               : Enable/disable intra prediction
- *  bDirect8x8Inference       : Specifies the method used in the derivation 
- *                              process for luma motion vectors for B_Skip, 
- *                              B_Direct_16x16 and B_Direct_8x8 as specified 
- *                              in subclause 8.4.1.2 of the AVC spec 
+ *  bDirect8x8Inference       : Specifies the method used in the derivation
+ *                              process for luma motion vectors for B_Skip,
+ *                              B_Direct_16x16 and B_Direct_8x8 as specified
+ *                              in subclause 8.4.1.2 of the AVC spec
  *  bDirectSpatialTemporal    : Flag indicating spatial or temporal direct
- *                              mode used in B slice coding (related to 
- *                              bDirect8x8Inference) . Spatial direct mode is 
+ *                              mode used in B slice coding (related to
+ *                              bDirect8x8Inference) . Spatial direct mode is
  *                              more common and should be the default.
  *  nCabacInitIdx             : Index used to init CABAC contexts
  *  eLoopFilterMode           : Enable/disable loop filter
  */
 typedef struct OMX_VIDEO_PARAM_AVCTYPE {
-    OMX_U32 nSize;                 
-    OMX_VERSIONTYPE nVersion;      
-    OMX_U32 nPortIndex;            
-    OMX_U32 nSliceHeaderSpacing;  
-    OMX_U32 nPFrames;     
-    OMX_U32 nBFrames;     
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nSliceHeaderSpacing;
+    OMX_U32 nPFrames;
+    OMX_U32 nBFrames;
     OMX_BOOL bUseHadamard;
-    OMX_U32 nRefFrames;  
+    OMX_U32 nRefFrames;
 	OMX_U32 nRefIdx10ActiveMinus1;
 	OMX_U32 nRefIdx11ActiveMinus1;
-    OMX_BOOL bEnableUEP;  
-    OMX_BOOL bEnableFMO;  
-    OMX_BOOL bEnableASO;  
-    OMX_BOOL bEnableRS;   
+    OMX_BOOL bEnableUEP;
+    OMX_BOOL bEnableFMO;
+    OMX_BOOL bEnableASO;
+    OMX_BOOL bEnableRS;
     OMX_VIDEO_AVCPROFILETYPE eProfile;
-	OMX_VIDEO_AVCLEVELTYPE eLevel; 
-    OMX_U32 nAllowedPictureTypes;  
-	OMX_BOOL bFrameMBsOnly;        									
-    OMX_BOOL bMBAFF;               
-    OMX_BOOL bEntropyCodingCABAC;  
-    OMX_BOOL bWeightedPPrediction; 
-    OMX_U32 nWeightedBipredicitonMode; 
+	OMX_VIDEO_AVCLEVELTYPE eLevel;
+    OMX_U32 nAllowedPictureTypes;
+	OMX_BOOL bFrameMBsOnly;
+    OMX_BOOL bMBAFF;
+    OMX_BOOL bEntropyCodingCABAC;
+    OMX_BOOL bWeightedPPrediction;
+    OMX_U32 nWeightedBipredicitonMode;
     OMX_BOOL bconstIpred ;
-    OMX_BOOL bDirect8x8Inference;  
+    OMX_BOOL bDirect8x8Inference;
 	OMX_BOOL bDirectSpatialTemporal;
 	OMX_U32 nCabacInitIdc;
 	OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode;
 } OMX_VIDEO_PARAM_AVCTYPE;
 
 typedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE {
-   OMX_U32 nSize;                 
-   OMX_VERSIONTYPE nVersion;      
-   OMX_U32 nPortIndex;            
-   OMX_U32 eProfile;      /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 
+   OMX_U32 nSize;
+   OMX_VERSIONTYPE nVersion;
+   OMX_U32 nPortIndex;
+   OMX_U32 eProfile;      /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
                                  or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
-   OMX_U32 eLevel;        /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 
+   OMX_U32 eLevel;        /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE,
                                  or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
    OMX_U32 nProfileIndex; /**< Used to query for individual profile support information,
-                               This parameter is valid only for 
+                               This parameter is valid only for
                                OMX_IndexParamVideoProfileLevelQuerySupported index,
                                For all other indices this parameter is to be ignored. */
 } OMX_VIDEO_PARAM_PROFILELEVELTYPE;
 
-/** 
- * Structure for dynamically configuring bitrate mode of a codec. 
+/**
+ * Structure for dynamically configuring bitrate mode of a codec.
  *
  * STRUCT MEMBERS:
  *  nSize          : Size of the struct in bytes
  *  nVersion       : OMX spec version info
  *  nPortIndex     : Port that this struct applies to
  *  nEncodeBitrate : Target average bitrate to be generated in bps
  */
 typedef struct OMX_VIDEO_CONFIG_BITRATETYPE {
-    OMX_U32 nSize;                          
-    OMX_VERSIONTYPE nVersion;               
-    OMX_U32 nPortIndex;                     
-    OMX_U32 nEncodeBitrate;                 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nEncodeBitrate;
 } OMX_VIDEO_CONFIG_BITRATETYPE;
 
-/** 
+/**
  * Defines Encoder Frame Rate setting
  *
  * STRUCT MEMBERS:
  *  nSize            : Size of the structure in bytes
- *  nVersion         : OMX specification version information 
+ *  nVersion         : OMX specification version information
  *  nPortIndex       : Port that this structure applies to
  *  xEncodeFramerate : Encoding framerate represented in Q16 format
  */
 typedef struct OMX_CONFIG_FRAMERATETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 xEncodeFramerate; /* Q16 format */
@@ -992,81 +992,81 @@ typedef struct OMX_CONFIG_MBERRORREPORTI
 
 typedef struct OMX_PARAM_MACROBLOCKSTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nMacroblocks;
 } OMX_PARAM_MACROBLOCKSTYPE;
 
-/** 
- * AVC Slice Mode modes 
+/**
+ * AVC Slice Mode modes
  *
  * OMX_VIDEO_SLICEMODE_AVCDefault   : Normal frame encoding, one slice per frame
  * OMX_VIDEO_SLICEMODE_AVCMBSlice   : NAL mode, number of MBs per frame
  * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame
  */
 typedef enum OMX_VIDEO_AVCSLICEMODETYPE {
     OMX_VIDEO_SLICEMODE_AVCDefault = 0,
     OMX_VIDEO_SLICEMODE_AVCMBSlice,
     OMX_VIDEO_SLICEMODE_AVCByteSlice,
-    OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCSLICEMODETYPE;
 
-/** 
- * AVC FMO Slice Mode Params 
+/**
+ * AVC FMO Slice Mode Params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nNumSliceGroups : Specifies the number of slice groups
  *  nSliceGroupMapType : Specifies the type of slice groups
  *  eSliceMode : Specifies the type of slice
  */
 typedef struct OMX_VIDEO_PARAM_AVCSLICEFMO {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U8 nNumSliceGroups;
     OMX_U8 nSliceGroupMapType;
     OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
 } OMX_VIDEO_PARAM_AVCSLICEFMO;
 
-/** 
+/**
  * AVC IDR Period Configs
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nIDRPeriod : Specifies periodicity of IDR frames
  *  nPFrames : Specifies internal of coding Intra frames
  */
 typedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nIDRPeriod;
     OMX_U32 nPFrames;
 } OMX_VIDEO_CONFIG_AVCINTRAPERIOD;
 
-/** 
+/**
  * AVC NAL Size Configs
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nNaluBytes : Specifies the NAL unit size
  */
 typedef struct OMX_VIDEO_CONFIG_NALSIZE {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nNaluBytes;
 } OMX_VIDEO_CONFIG_NALSIZE;
 
 /** @} */
 
 #ifdef __cplusplus
--- a/media/omx-plugin/include/ics/pixelflinger/format.h
+++ b/media/omx-plugin/include/ics/pixelflinger/format.h
@@ -99,31 +99,31 @@ typedef struct {
             return ((1<<(c[i].h-c[i].l))-1)<<c[i].l;
     }
     inline uint32_t bits(int i) const {
             return c[i].h - c[i].l;
     }
 #endif
 	uint8_t     size;	// bytes per pixel
     uint8_t     bitsPerPixel;
-    union {    
+    union {
         struct {
             uint8_t     ah;		// alpha high bit position + 1
             uint8_t     al;		// alpha low bit position
             uint8_t     rh;		// red high bit position + 1
             uint8_t     rl;		// red low bit position
             uint8_t     gh;		// green high bit position + 1
             uint8_t     gl;		// green low bit position
             uint8_t     bh;		// blue high bit position + 1
             uint8_t     bl;		// blue low bit position
         };
         struct {
             uint8_t h;
             uint8_t l;
-        } __attribute__((__packed__)) c[4];        
+        } __attribute__((__packed__)) c[4];
     } __attribute__((__packed__));
 	uint16_t    components;	// GGLFormatComponents
 } GGLFormat;
 
 
 #ifdef __cplusplus
 extern "C" const GGLFormat* gglGetPixelFormatTable(size_t* numEntries = 0);
 #else
--- a/media/omx-plugin/include/ics/pixelflinger/pixelflinger.h
+++ b/media/omx-plugin/include/ics/pixelflinger/pixelflinger.h
@@ -71,32 +71,32 @@ enum GGLNames {
 	GGL_STENCIL_TEST				= 0x0B90,
 	GGL_DEPTH_TEST					= 0x0B71,
     GGL_AA                          = 0x80000001,
     GGL_W_LERP                      = 0x80000004,
     GGL_POINT_SMOOTH_NICE           = 0x80000005,
 
     // buffers, pixel drawing/reading
     GGL_COLOR                       = 0x1800,
-    
+
     // fog
     GGL_FOG                         = 0x0B60,
-    
+
 	// shade model
 	GGL_FLAT						= 0x1D00,
 	GGL_SMOOTH						= 0x1D01,
 
 	// Texture parameter name
 	GGL_TEXTURE_MIN_FILTER			= 0x2801,
 	GGL_TEXTURE_MAG_FILTER			= 0x2800,
 	GGL_TEXTURE_WRAP_S				= 0x2802,
 	GGL_TEXTURE_WRAP_T				= 0x2803,
 	GGL_TEXTURE_WRAP_R				= 0x2804,
 
-	// Texture Filter	
+	// Texture Filter
 	GGL_NEAREST						= 0x2600,
 	GGL_LINEAR						= 0x2601,
 	GGL_NEAREST_MIPMAP_NEAREST		= 0x2700,
 	GGL_LINEAR_MIPMAP_NEAREST		= 0x2701,
 	GGL_NEAREST_MIPMAP_LINEAR		= 0x2702,
 	GGL_LINEAR_MIPMAP_LINEAR		= 0x2703,
 
 	// Texture Wrap Mode
@@ -144,34 +144,34 @@ enum GGLNames {
     GGL_AND_INVERTED                = 0x1504,   // ~s & d
     GGL_NOOP                        = 0x1505,   // d
     GGL_XOR                         = 0x1506,   // s ^ d
     GGL_OR                          = 0x1507,   // s | d
     GGL_NOR                         = 0x1508,   // ~(s | d)
     GGL_EQUIV                       = 0x1509,   // ~(s ^ d)
     GGL_INVERT                      = 0x150A,   // ~d
     GGL_OR_REVERSE                  = 0x150B,   // s | ~d
-    GGL_COPY_INVERTED               = 0x150C,   // ~s 
+    GGL_COPY_INVERTED               = 0x150C,   // ~s
     GGL_OR_INVERTED                 = 0x150D,   // ~s | d
     GGL_NAND                        = 0x150E,   // ~(s & d)
     GGL_SET                         = 0x150F,   // 1
 
 	// blending equation & function
 	GGL_ZERO                        = 0,		// SD
 	GGL_ONE                         = 1,		// SD
 	GGL_SRC_COLOR                   = 0x0300,	//  D
 	GGL_ONE_MINUS_SRC_COLOR         = 0x0301,	//	D
 	GGL_SRC_ALPHA                   = 0x0302,	// SD
 	GGL_ONE_MINUS_SRC_ALPHA			= 0x0303,	// SD
 	GGL_DST_ALPHA					= 0x0304,	// SD
 	GGL_ONE_MINUS_DST_ALPHA			= 0x0305,	// SD
 	GGL_DST_COLOR					= 0x0306,	// S
 	GGL_ONE_MINUS_DST_COLOR			= 0x0307,	// S
 	GGL_SRC_ALPHA_SATURATE			= 0x0308,	// S
-    
+
     // clear bits
     GGL_DEPTH_BUFFER_BIT            = 0x00000100,
     GGL_STENCIL_BUFFER_BIT          = 0x00000400,
     GGL_COLOR_BUFFER_BIT            = 0x00004000,
 
     // errors
     GGL_NO_ERROR                    = 0,
     GGL_INVALID_ENUM                = 0x0500,
@@ -199,19 +199,19 @@ typedef struct {
     };
     void*       reserved;
 } GGLSurface;
 
 
 typedef struct {
     // immediate rendering
     void (*pointx)(void *con, const GGLcoord* v, GGLcoord r);
-    void (*linex)(void *con, 
+    void (*linex)(void *con,
             const GGLcoord* v0, const GGLcoord* v1, GGLcoord width);
-    void (*recti)(void* c, GGLint l, GGLint t, GGLint r, GGLint b); 
+    void (*recti)(void* c, GGLint l, GGLint t, GGLint r, GGLint b);
     void (*trianglex)(void* c,
             GGLcoord const* v0, GGLcoord const* v1, GGLcoord const* v2);
 
     // scissor
     void (*scissor)(void* c, GGLint x, GGLint y, GGLsizei width, GGLsizei height);
 
     // Set the textures and color buffers
     void (*activeTexture)(void* c, GGLuint tmu);
@@ -258,23 +258,23 @@ typedef struct {
     // texture parameters (Wrapping, filter)
     void (*texParameteri)(void* c,  GGLenum target,
                                     GGLenum pname,
                                     GGLint param);
 
     // texture iterators (16.16)
     void (*texCoord2i)(void* c, GGLint s, GGLint t);
     void (*texCoord2x)(void* c, GGLfixed s, GGLfixed t);
-    
+
     // s, dsdx, dsdy, scale, t, dtdx, dtdy, tscale
     // This api uses block floating-point for S and T texture coordinates.
     // All values are given in 16.16, scaled by 'scale'. In other words,
     // set scale to 0, for 16.16 values.
     void (*texCoordGradScale8xv)(void* c, GGLint tmu, const int32_t* grad8);
-    
+
     void (*texGeni)(void* c, GGLenum coord, GGLenum pname, GGLint param);
 
     // masking
     void (*colorMask)(void* c,  GGLboolean red,
                                 GGLboolean green,
                                 GGLboolean blue,
                                 GGLboolean alpha);
 
@@ -284,17 +284,17 @@ typedef struct {
 
     // alpha func
     void (*alphaFuncx)(void* c, GGLenum func, GGLclampx ref);
 
     // depth func
     void (*depthFunc)(void* c, GGLenum func);
 
     // logic op
-    void (*logicOp)(void* c, GGLenum opcode); 
+    void (*logicOp)(void* c, GGLenum opcode);
 
     // clear
     void (*clear)(void* c, GGLbitfield mask);
     void (*clearColorx)(void* c,
             GGLclampx r, GGLclampx g, GGLclampx b, GGLclampx a);
     void (*clearDepthx)(void* c, GGLclampx depth);
     void (*clearStencil)(void* c, GGLint s);
 
--- a/media/omx-plugin/include/ics/ui/GraphicBuffer.h
+++ b/media/omx-plugin/include/ics/ui/GraphicBuffer.h
@@ -34,27 +34,27 @@ class GraphicBufferMapper;
 
 // ===========================================================================
 // GraphicBuffer
 // ===========================================================================
 
 class GraphicBuffer
     : public EGLNativeBase<
         ANativeWindowBuffer,
-        GraphicBuffer, 
+        GraphicBuffer,
         LightRefBase<GraphicBuffer> >, public Flattenable
 {
 public:
 
     enum {
         USAGE_SW_READ_NEVER     = GRALLOC_USAGE_SW_READ_NEVER,
         USAGE_SW_READ_RARELY    = GRALLOC_USAGE_SW_READ_RARELY,
         USAGE_SW_READ_OFTEN     = GRALLOC_USAGE_SW_READ_OFTEN,
         USAGE_SW_READ_MASK      = GRALLOC_USAGE_SW_READ_MASK,
-        
+
         USAGE_SW_WRITE_NEVER    = GRALLOC_USAGE_SW_WRITE_NEVER,
         USAGE_SW_WRITE_RARELY   = GRALLOC_USAGE_SW_WRITE_RARELY,
         USAGE_SW_WRITE_OFTEN    = GRALLOC_USAGE_SW_WRITE_OFTEN,
         USAGE_SW_WRITE_MASK     = GRALLOC_USAGE_SW_WRITE_MASK,
 
         USAGE_SOFTWARE_MASK     = USAGE_SW_READ_MASK|USAGE_SW_WRITE_MASK,
 
         USAGE_PROTECTED         = GRALLOC_USAGE_PROTECTED,
@@ -83,26 +83,26 @@ public:
     status_t initCheck() const;
 
     uint32_t getWidth() const           { return width; }
     uint32_t getHeight() const          { return height; }
     uint32_t getStride() const          { return stride; }
     uint32_t getUsage() const           { return usage; }
     PixelFormat getPixelFormat() const  { return format; }
     Rect getBounds() const              { return Rect(width, height); }
-    
+
     status_t reallocate(uint32_t w, uint32_t h, PixelFormat f, uint32_t usage);
 
     status_t lock(uint32_t usage, void** vaddr);
     status_t lock(uint32_t usage, const Rect& rect, void** vaddr);
     status_t lock(GGLSurface* surface, uint32_t usage);
     status_t unlock();
 
     ANativeWindowBuffer* getNativeBuffer() const;
-    
+
     void setIndex(int index);
     int getIndex() const;
 
     // for debugging
     static void dumpAllocationsToSystemLog();
 
 private:
     virtual ~GraphicBuffer();
@@ -126,17 +126,17 @@ private:
     friend class BpSurface;
     friend class BnSurface;
     friend class SurfaceTextureClient;
     friend class LightRefBase<GraphicBuffer>;
     GraphicBuffer(const GraphicBuffer& rhs);
     GraphicBuffer& operator = (const GraphicBuffer& rhs);
     const GraphicBuffer& operator = (const GraphicBuffer& rhs) const;
 
-    status_t initSize(uint32_t w, uint32_t h, PixelFormat format, 
+    status_t initSize(uint32_t w, uint32_t h, PixelFormat format,
             uint32_t usage);
 
     void free_handle();
 
     // Flattenable interface
     size_t getFlattenedSize() const;
     size_t getFdCount() const;
     status_t flatten(void* buffer, size_t size,
--- a/media/omx-plugin/include/ics/ui/Point.h
+++ b/media/omx-plugin/include/ics/ui/Point.h
@@ -53,35 +53,35 @@ public:
         return y<rhs.y || (y==rhs.y && x<rhs.x);
     }
 
     inline Point& operator - () {
         x = -x;
         y = -y;
         return *this;
     }
-    
+
     inline Point& operator += (const Point& rhs) {
         x += rhs.x;
         y += rhs.y;
         return *this;
     }
     inline Point& operator -= (const Point& rhs) {
         x -= rhs.x;
         y -= rhs.y;
         return *this;
     }
-    
+
     const Point operator + (const Point& rhs) const {
         const Point result(x+rhs.x, y+rhs.y);
         return result;
     }
     const Point operator - (const Point& rhs) const {
         const Point result(x-rhs.x, y-rhs.y);
         return result;
-    }    
+    }
 };
 
 ANDROID_BASIC_TYPES_TRAITS(Point)
 
 }; // namespace android
 
 #endif // ANDROID_UI_POINT
--- a/media/omx-plugin/include/ics/ui/Rect.h
+++ b/media/omx-plugin/include/ics/ui/Rect.h
@@ -63,32 +63,32 @@ public:
     inline void set(const Rect& rhs) {
         operator = (rhs);
     }
 
     // rectangle's width
     inline int32_t width() const {
         return right-left;
     }
-    
+
     // rectangle's height
     inline int32_t height() const {
         return bottom-top;
     }
 
     void setLeftTop(const Point& lt) {
         left = lt.x;
         top  = lt.y;
     }
 
     void setRightBottom(const Point& rb) {
         right = rb.x;
         bottom  = rb.y;
     }
-    
+
     // the following 4 functions return the 4 corners of the rect as Point
     Point leftTop() const {
         return Point(left, top);
     }
     Point rightBottom() const {
         return Point(right, bottom);
     }
     Point rightTop() const {
@@ -131,17 +131,17 @@ public:
         return offsetBy(-rhs.x, -rhs.y);
     }
     const Rect operator + (const Point& rhs) const;
     const Rect operator - (const Point& rhs) const;
 
     void translate(int32_t dx, int32_t dy) { // legacy, don't use.
         offsetBy(dx, dy);
     }
- 
+
     Rect&   offsetTo(int32_t x, int32_t y);
     Rect&   offsetBy(int32_t x, int32_t y);
     bool    intersect(const Rect& with, Rect* result) const;
 };
 
 ANDROID_BASIC_TYPES_TRAITS(Rect)
 
 }; // namespace android
--- a/media/omx-plugin/include/ics/utils/Errors.h
+++ b/media/omx-plugin/include/ics/utils/Errors.h
@@ -27,62 +27,62 @@ namespace android {
 typedef int         status_t;
 #else
 typedef int32_t     status_t;
 #endif
 
 /* the MS C runtime lacks a few error codes */
 
 /*
- * Error codes. 
+ * Error codes.
  * All error codes are negative values.
  */
 
 // Win32 #defines NO_ERROR as well.  It has the same value, so there's no
 // real conflict, though it's a bit awkward.
 #ifdef _WIN32
 # undef NO_ERROR
 #endif
- 
+
 enum {
     OK                = 0,    // Everything's swell.
     NO_ERROR          = 0,    // No errors.
-    
+
     UNKNOWN_ERROR       = 0x80000000,
 
     NO_MEMORY           = -ENOMEM,
     INVALID_OPERATION   = -ENOSYS,
     BAD_VALUE           = -EINVAL,
     BAD_TYPE            = 0x80000001,
     NAME_NOT_FOUND      = -ENOENT,
     PERMISSION_DENIED   = -EPERM,
     NO_INIT             = -ENODEV,
     ALREADY_EXISTS      = -EEXIST,
     DEAD_OBJECT         = -EPIPE,
     FAILED_TRANSACTION  = 0x80000002,
     JPARKS_BROKE_IT     = -EPIPE,
 #if !defined(HAVE_MS_C_RUNTIME)
     BAD_INDEX           = -EOVERFLOW,
     NOT_ENOUGH_DATA     = -ENODATA,
-    WOULD_BLOCK         = -EWOULDBLOCK, 
+    WOULD_BLOCK         = -EWOULDBLOCK,
     TIMED_OUT           = -ETIMEDOUT,
     UNKNOWN_TRANSACTION = -EBADMSG,
-#else    
+#else
     BAD_INDEX           = -E2BIG,
     NOT_ENOUGH_DATA     = 0x80000003,
     WOULD_BLOCK         = 0x80000004,
     TIMED_OUT           = 0x80000005,
     UNKNOWN_TRANSACTION = 0x80000006,
-#endif    
+#endif
     FDS_NOT_ALLOWED     = 0x80000007,
 };
 
 // Restore define; enumeration is in "android" namespace, so the value defined
 // there won't work for Win32 code in a different namespace.
 #ifdef _WIN32
 # define NO_ERROR 0L
 #endif
 
 }; // namespace android
-    
+
 // ---------------------------------------------------------------------------
-    
+
 #endif // ANDROID_ERRORS_H
--- a/media/omx-plugin/include/ics/utils/KeyedVector.h
+++ b/media/omx-plugin/include/ics/utils/KeyedVector.h
@@ -39,59 +39,59 @@ public:
     inline                  KeyedVector();
 
     /*
      * empty the vector
      */
 
     inline  void            clear()                     { mVector.clear(); }
 
-    /*! 
+    /*!
      * vector stats
      */
 
     //! returns number of items in the vector
     inline  size_t          size() const                { return mVector.size(); }
     //! returns wether or not the vector is empty
     inline  bool            isEmpty() const             { return mVector.isEmpty(); }
     //! returns how many items can be stored without reallocating the backing store
     inline  size_t          capacity() const            { return mVector.capacity(); }
     //! setst the capacity. capacity can never be reduced less than size()
     inline ssize_t          setCapacity(size_t size)    { return mVector.setCapacity(size); }
-    
-    /*! 
+
+    /*!
      * accessors
      */
             const VALUE&    valueFor(const KEY& key) const;
             const VALUE&    valueAt(size_t index) const;
             const KEY&      keyAt(size_t index) const;
             ssize_t         indexOfKey(const KEY& key) const;
 
     /*!
      * modifing the array
      */
 
             VALUE&          editValueFor(const KEY& key);
             VALUE&          editValueAt(size_t index);
 
-            /*! 
+            /*!
              * add/insert/replace items
              */
-             
+
             ssize_t         add(const KEY& key, const VALUE& item);
             ssize_t         replaceValueFor(const KEY& key, const VALUE& item);
             ssize_t         replaceValueAt(size_t index, const VALUE& item);
 
     /*!
      * remove items
      */
 
             ssize_t         removeItem(const KEY& key);
             ssize_t         removeItemsAt(size_t index, size_t count = 1);
-            
+
 private:
             SortedVector< key_value_pair_t<KEY, VALUE> >    mVector;
 };
 
 // ---------------------------------------------------------------------------
 
 /**
  * Variation of KeyedVector that holds a default value to return when
--- a/media/omx-plugin/include/ics/utils/List.h
+++ b/media/omx-plugin/include/ics/utils/List.h
@@ -33,18 +33,18 @@
 namespace android {
 
 /*
  * Doubly-linked list.  Instantiate with "List<MyClass> myList".
  *
  * Objects added to the list are copied using the assignment operator,
  * so this must be defined.
  */
-template<typename T> 
-class List 
+template<typename T>
+class List
 {
 protected:
     /*
      * One element in the list.
      */
     class _Node {
     public:
         explicit _Node(const T& val) : mVal(val) {}
@@ -62,77 +62,77 @@ protected:
         T           mVal;
         _Node*      mpPrev;
         _Node*      mpNext;
     };
 
     /*
      * Iterator for walking through the list.
      */
-    
+
     template <typename TYPE>
     struct CONST_ITERATOR {
         typedef _Node const * NodePtr;
         typedef const TYPE Type;
     };
-    
+
     template <typename TYPE>
     struct NON_CONST_ITERATOR {
         typedef _Node* NodePtr;
         typedef TYPE Type;
     };
-    
+
     template<
         typename U,
         template <class> class Constness
-    > 
+    >
     class _ListIterator {
         typedef _ListIterator<U, Constness>     _Iter;
         typedef typename Constness<U>::NodePtr  _NodePtr;
         typedef typename Constness<U>::Type     _Type;
 
         explicit _ListIterator(_NodePtr ptr) : mpNode(ptr) {}
 
     public:
         _ListIterator() {}
         _ListIterator(const _Iter& rhs) : mpNode(rhs.mpNode) {}
         ~_ListIterator() {}
-        
+
         // this will handle conversions from iterator to const_iterator
         // (and also all convertible iterators)
         // Here, in this implementation, the iterators can be converted
         // if the nodes can be converted
-        template<typename V> explicit 
+        template<typename V> explicit
         _ListIterator(const V& rhs) : mpNode(rhs.mpNode) {}
-        
+
 
         /*
          * Dereference operator.  Used to get at the juicy insides.
          */
         _Type& operator*() const { return mpNode->getRef(); }
         _Type* operator->() const { return &(mpNode->getRef()); }
 
         /*
          * Iterator comparison.
          */
-        inline bool operator==(const _Iter& right) const { 
+        inline bool operator==(const _Iter& right) const {
             return mpNode == right.mpNode; }
-        
-        inline bool operator!=(const _Iter& right) const { 
+
+        inline bool operator!=(const _Iter& right) const {
             return mpNode != right.mpNode; }
 
         /*
          * handle comparisons between iterator and const_iterator
          */
         template<typename OTHER>
-        inline bool operator==(const OTHER& right) const { 
+        inline bool operator==(const OTHER& right) const {
             return mpNode == right.mpNode; }
-        
+
         template<typename OTHER>
-        inline bool operator!=(const OTHER& right) const { 
+        inline bool operator!=(const OTHER& right) const {
             return mpNode != right.mpNode; }
 
         /*
          * Incr/decr, used to move through the list.
          */
         inline _Iter& operator++() {     // pre-increment
             mpNode = mpNode->getNext();
             return *this;
@@ -185,35 +185,35 @@ public:
         return size_t(distance(begin(), end()));
     }
 
     /*
      * Return the first element or one past the last element.  The
      * _Node* we're returning is converted to an "iterator" by a
      * constructor in _ListIterator.
      */
-    inline iterator begin() { 
-        return iterator(mpMiddle->getNext()); 
+    inline iterator begin() {
+        return iterator(mpMiddle->getNext());
     }
-    inline const_iterator begin() const { 
-        return const_iterator(const_cast<_Node const*>(mpMiddle->getNext())); 
+    inline const_iterator begin() const {
+        return const_iterator(const_cast<_Node const*>(mpMiddle->getNext()));
     }
-    inline iterator end() { 
-        return iterator(mpMiddle); 
+    inline iterator end() {
+        return iterator(mpMiddle);
     }
-    inline const_iterator end() const { 
-        return const_iterator(const_cast<_Node const*>(mpMiddle)); 
+    inline const_iterator end() const {
+        return const_iterator(const_cast<_Node const*>(mpMiddle));
     }
 
     /* add the object to the head or tail of the list */
     void push_front(const T& val) { insert(begin(), val); }
     void push_back(const T& val) { insert(end(), val); }
 
     /* insert before the current node; returns iterator at new node */
-    iterator insert(iterator posn, const T& val) 
+    iterator insert(iterator posn, const T& val)
     {
         _Node* newNode = new _Node(val);        // alloc & copy-construct
         newNode->setNext(posn.getNode());
         newNode->setPrev(posn.getNode()->getPrev());
         posn.getNode()->getPrev()->setNext(newNode);
         posn.getNode()->setPrev(newNode);
         return iterator(newNode);
     }
@@ -255,28 +255,28 @@ public:
         mpMiddle->setNext(mpMiddle);
     }
 
     /*
      * Measure the distance between two iterators.  On exist, "first"
      * will be equal to "last".  The iterators must refer to the same
      * list.
      *
-     * FIXME: This is actually a generic iterator function. It should be a 
+     * FIXME: This is actually a generic iterator function. It should be a
      * template function at the top-level with specializations for things like
      * vector<>, which can just do pointer math). Here we limit it to
      * _ListIterator of the same type but different constness.
      */
     template<
         typename U,
         template <class> class CL,
         template <class> class CR
-    > 
+    >
     ptrdiff_t distance(
-            _ListIterator<U, CL> first, _ListIterator<U, CR> last) const 
+            _ListIterator<U, CL> first, _ListIterator<U, CR> last) const
     {
         ptrdiff_t count = 0;
         while (first != last) {
             ++first;
             ++count;
         }
         return count;
     }
--- a/media/omx-plugin/include/ics/utils/RefBase.h
+++ b/media/omx-plugin/include/ics/utils/RefBase.h
@@ -61,101 +61,101 @@ public:
 
 // ---------------------------------------------------------------------------
 
 class RefBase
 {
 public:
             void            incStrong(const void* id) const;
             void            decStrong(const void* id) const;
-    
+
             void            forceIncStrong(const void* id) const;
 
             //! DEBUGGING ONLY: Get current strong ref count.
             int32_t         getStrongCount() const;
 
     class weakref_type
     {
     public:
         RefBase*            refBase() const;
-        
+
         void                incWeak(const void* id);
         void                decWeak(const void* id);
-        
+
         // acquires a strong reference if there is already one.
         bool                attemptIncStrong(const void* id);
-        
+
         // acquires a weak reference if there is already one.
         // This is not always safe. see ProcessState.cpp and BpBinder.cpp
         // for proper use.
         bool                attemptIncWeak(const void* id);
 
         //! DEBUGGING ONLY: Get current weak ref count.
         int32_t             getWeakCount() const;
 
         //! DEBUGGING ONLY: Print references held on object.
         void                printRefs() const;
 
         //! DEBUGGING ONLY: Enable tracking for this object.
         // enable -- enable/disable tracking
         // retain -- when tracking is enable, if true, then we save a stack trace
         //           for each reference and dereference; when retain == false, we
-        //           match up references and dereferences and keep only the 
+        //           match up references and dereferences and keep only the
         //           outstanding ones.
-        
+
         void                trackMe(bool enable, bool retain);
     };
-    
+
             weakref_type*   createWeak(const void* id) const;
-            
+
             weakref_type*   getWeakRefs() const;
 
             //! DEBUGGING ONLY: Print references held on object.
     inline  void            printRefs() const { getWeakRefs()->printRefs(); }
 
             //! DEBUGGING ONLY: Enable tracking of object.
     inline  void            trackMe(bool enable, bool retain)
-    { 
-        getWeakRefs()->trackMe(enable, retain); 
+    {
+        getWeakRefs()->trackMe(enable, retain);
     }
 
     typedef RefBase basetype;
 
 protected:
                             RefBase();
     virtual                 ~RefBase();
 
     //! Flags for extendObjectLifetime()
     enum {
         OBJECT_LIFETIME_STRONG  = 0x0000,
         OBJECT_LIFETIME_WEAK    = 0x0001,
         OBJECT_LIFETIME_MASK    = 0x0001
     };
-    
+
             void            extendObjectLifetime(int32_t mode);
-            
+
     //! Flags for onIncStrongAttempted()
     enum {
         FIRST_INC_STRONG = 0x0001
     };
-    
+
     virtual void            onFirstRef();
     virtual void            onLastStrongRef(const void* id);
     virtual bool            onIncStrongAttempted(uint32_t flags, const void* id);
     virtual void            onLastWeakRef(const void* id);
 
 private:
     friend class ReferenceMover;
     static void moveReferences(void* d, void const* s, size_t n,
             const ReferenceConverterBase& caster);
 
 private:
     friend class weakref_type;
     class weakref_impl;
-    
+
                             RefBase(const RefBase& o);
             RefBase&        operator=(const RefBase& o);
 
         weakref_impl* const mRefs;
 };
 
 // ---------------------------------------------------------------------------
 
@@ -193,52 +193,52 @@ private:
 
 // ---------------------------------------------------------------------------
 
 template <typename T>
 class wp
 {
 public:
     typedef typename RefBase::weakref_type weakref_type;
-    
+
     inline wp() : m_ptr(0) { }
 
     wp(T* other);
     wp(const wp<T>& other);
     wp(const sp<T>& other);
     template<typename U> wp(U* other);
     template<typename U> wp(const sp<U>& other);
     template<typename U> wp(const wp<U>& other);
 
     ~wp();
-    
+
     // Assignment
 
     wp& operator = (T* other);
     wp& operator = (const wp<T>& other);
     wp& operator = (const sp<T>& other);
-    
+
     template<typename U> wp& operator = (U* other);
     template<typename U> wp& operator = (const wp<U>& other);
     template<typename U> wp& operator = (const sp<U>& other);
-    
+
     void set_object_and_refs(T* other, weakref_type* refs);
 
     // promotion to sp
-    
+
     sp<T> promote() const;
 
     // Reset
-    
+
     void clear();
 
     // Accessors
-    
+
     inline  weakref_type* get_refs() const { return m_refs; }
-    
+
     inline  T* unsafe_get() const { return m_ptr; }
 
     // Operators
 
     COMPARE_WEAK(==)
     COMPARE_WEAK(!=)
     COMPARE_WEAK(>)
     COMPARE_WEAK(<)
--- a/media/omx-plugin/include/ics/utils/SharedBuffer.h
+++ b/media/omx-plugin/include/ics/utils/SharedBuffer.h
@@ -32,75 +32,75 @@ public:
     enum {
         eKeepStorage = 0x00000001
     };
 
     /*! allocate a buffer of size 'size' and acquire() it.
      *  call release() to free it.
      */
     static          SharedBuffer*           alloc(size_t size);
-    
+
     /*! free the memory associated with the SharedBuffer.
      * Fails if there are any users associated with this SharedBuffer.
      * In other words, the buffer must have been release by all its
      * users.
      */
     static          ssize_t                 dealloc(const SharedBuffer* released);
-    
+
     //! get the SharedBuffer from the data pointer
     static  inline  const SharedBuffer*     sharedBuffer(const void* data);
 
     //! access the data for read
     inline          const void*             data() const;
-    
+
     //! access the data for read/write
     inline          void*                   data();
 
     //! get size of the buffer
     inline          size_t                  size() const;
- 
+
     //! get back a SharedBuffer object from its data
     static  inline  SharedBuffer*           bufferFromData(void* data);
-    
+
     //! get back a SharedBuffer object from its data
     static  inline  const SharedBuffer*     bufferFromData(const void* data);
 
     //! get the size of a SharedBuffer object from its data
     static  inline  size_t                  sizeFromData(const void* data);
-    
+
     //! edit the buffer (get a writtable, or non-const, version of it)
                     SharedBuffer*           edit() const;
 
     //! edit the buffer, resizing if needed
                     SharedBuffer*           editResize(size_t size) const;
 
     //! like edit() but fails if a copy is required
                     SharedBuffer*           attemptEdit() const;
-    
+
     //! resize and edit the buffer, loose it's content.
                     SharedBuffer*           reset(size_t size) const;
 
     //! acquire/release a reference on this buffer
                     void                    acquire() const;
-                    
+
     /*! release a reference on this buffer, with the option of not
      * freeing the memory associated with it if it was the last reference
      * returns the previous reference count
-     */     
+     */
                     int32_t                 release(uint32_t flags = 0) const;
-    
+
     //! returns wether or not we're the only owner
     inline          bool                    onlyOwner() const;
-    
+
 
 private:
         inline SharedBuffer() { }
         inline ~SharedBuffer() { }
         inline SharedBuffer(const SharedBuffer&);
- 
+
         // 16 bytes. must be sized to preserve correct alingment.
         mutable int32_t        mRefs;
                 size_t         mSize;
                 uint32_t       mReserved[2];
 };
 
 // ---------------------------------------------------------------------------
 
@@ -119,17 +119,17 @@ void* SharedBuffer::data() {
 size_t SharedBuffer::size() const {
     return mSize;
 }
 
 SharedBuffer* SharedBuffer::bufferFromData(void* data)
 {
     return ((SharedBuffer*)data)-1;
 }
-    
+
 const SharedBuffer* SharedBuffer::bufferFromData(const void* data)
 {
     return ((const SharedBuffer*)data)-1;
 }
 
 size_t SharedBuffer::sizeFromData(const void* data)
 {
     return (((const SharedBuffer*)data)-1)->mSize;
--- a/media/omx-plugin/include/ics/utils/SortedVector.h
+++ b/media/omx-plugin/include/ics/utils/SortedVector.h
@@ -31,67 +31,67 @@ namespace android {
 
 template <class TYPE>
 class SortedVector : private SortedVectorImpl
 {
     friend class Vector<TYPE>;
 
 public:
             typedef TYPE    value_type;
-    
-    /*! 
+
+    /*!
      * Constructors and destructors
      */
-    
+
                             SortedVector();
                             SortedVector(const SortedVector<TYPE>& rhs);
     virtual                 ~SortedVector();
 
     /*! copy operator */
-    const SortedVector<TYPE>&   operator = (const SortedVector<TYPE>& rhs) const;    
-    SortedVector<TYPE>&         operator = (const SortedVector<TYPE>& rhs);    
+    const SortedVector<TYPE>&   operator = (const SortedVector<TYPE>& rhs) const;
+    SortedVector<TYPE>&         operator = (const SortedVector<TYPE>& rhs);
 
     /*
      * empty the vector
      */
 
     inline  void            clear()             { VectorImpl::clear(); }
 
-    /*! 
+    /*!
      * vector stats
      */
 
     //! returns number of items in the vector
     inline  size_t          size() const                { return VectorImpl::size(); }
     //! returns wether or not the vector is empty
     inline  bool            isEmpty() const             { return VectorImpl::isEmpty(); }
     //! returns how many items can be stored without reallocating the backing store
     inline  size_t          capacity() const            { return VectorImpl::capacity(); }
     //! setst the capacity. capacity can never be reduced less than size()
     inline  ssize_t         setCapacity(size_t size)    { return VectorImpl::setCapacity(size); }
 
-    /*! 
+    /*!
      * C-style array access
      */
-     
-    //! read-only C-style access 
+
+    //! read-only C-style access
     inline  const TYPE*     array() const;
 
     //! read-write C-style access. BE VERY CAREFUL when modifying the array
     //! you ust keep it sorted! You usually don't use this function.
             TYPE*           editArray();
 
             //! finds the index of an item
             ssize_t         indexOf(const TYPE& item) const;
-            
+
             //! finds where this item should be inserted
             size_t          orderOf(const TYPE& item) const;
-            
-    
-    /*! 
+
+
+    /*!
      * accessors
      */
 
     //! read-only access to an item at a given index
     inline  const TYPE&     operator [] (size_t index) const;
     //! alternate name for operator []
     inline  const TYPE&     itemAt(size_t index) const;
     //! stack-usage of the vector. returns the top of the stack (last element)
@@ -100,34 +100,34 @@ public:
             const TYPE&     mirrorItemAt(ssize_t index) const;
 
     /*!
      * modifing the array
      */
 
             //! add an item in the right place (and replace the one that is there)
             ssize_t         add(const TYPE& item);
-            
+
             //! editItemAt() MUST NOT change the order of this item
             TYPE&           editItemAt(size_t index) {
                 return *( static_cast<TYPE *>(VectorImpl::editItemLocation(index)) );
             }
 
             //! merges a vector into this one
             ssize_t         merge(const Vector<TYPE>& vector);
             ssize_t         merge(const SortedVector<TYPE>& vector);
-            
+
             //! removes an item
             ssize_t         remove(const TYPE&);
 
     //! remove several items
     inline  ssize_t         removeItemsAt(size_t index, size_t count = 1);
     //! remove one item
     inline  ssize_t         removeAt(size_t index)  { return removeItemsAt(index); }
-            
+
 protected:
     virtual void    do_construct(void* storage, size_t num) const;
     virtual void    do_destroy(void* storage, size_t num) const;
     virtual void    do_copy(void* dest, const void* from, size_t num) const;
     virtual void    do_splat(void* dest, const void* item, size_t num) const;
     virtual void    do_move_forward(void* dest, const void* from, size_t num) const;
     virtual void    do_move_backward(void* dest, const void* from, size_t num) const;
     virtual int     do_compare(const void* lhs, const void* rhs) const;
@@ -156,23 +156,23 @@ SortedVector<TYPE>::SortedVector(const S
 template<class TYPE> inline
 SortedVector<TYPE>::~SortedVector() {
     finish_vector();
 }
 
 template<class TYPE> inline
 SortedVector<TYPE>& SortedVector<TYPE>::operator = (const SortedVector<TYPE>& rhs) {
     SortedVectorImpl::operator = (rhs);
-    return *this; 
+    return *this;
 }
 
 template<class TYPE> inline
 const SortedVector<TYPE>& SortedVector<TYPE>::operator = (const SortedVector<TYPE>& rhs) const {
     SortedVectorImpl::operator = (rhs);
-    return *this; 
+    return *this;
 }
 
 template<class TYPE> inline
 const TYPE* SortedVector<TYPE>::array() const {
     return static_cast<const TYPE *>(arrayImpl());
 }
 
 template<class TYPE> inline
--- a/media/omx-plugin/include/ics/utils/String16.h
+++ b/media/omx-plugin/include/ics/utils/String16.h
@@ -47,72 +47,72 @@ public:
                                          size_t begin=0);
     explicit                    String16(const char16_t* o);
     explicit                    String16(const char16_t* o, size_t len);
     explicit                    String16(const String8& o);
     explicit                    String16(const char* o);
     explicit                    String16(const char* o, size_t len);
 
                                 ~String16();
-    
+
     inline  const char16_t*     string() const;
     inline  size_t              size() const;
-    
+
     inline  const SharedBuffer* sharedBuffer() const;
-    
+
             void                setTo(const String16& other);
             status_t            setTo(const char16_t* other);
             status_t            setTo(const char16_t* other, size_t len);
             status_t            setTo(const String16& other,
                                       size_t len,
                                       size_t begin=0);
-    
+
             status_t            append(const String16& other);
             status_t            append(const char16_t* other, size_t len);
-            
+
     inline  String16&           operator=(const String16& other);
-    
+
     inline  String16&           operator+=(const String16& other);
     inline  String16            operator+(const String16& other) const;
 
             status_t            insert(size_t pos, const char16_t* chrs);
             status_t            insert(size_t pos,
                                        const char16_t* chrs, size_t len);
 
             ssize_t             findFirst(char16_t c) const;
             ssize_t             findLast(char16_t c) const;
 
             bool                startsWith(const String16& prefix) const;
             bool                startsWith(const char16_t* prefix) const;
-            
+
             status_t            makeLower();
 
             status_t            replaceAll(char16_t replaceThis,
                                            char16_t withThis);
 
             status_t            remove(size_t len, size_t begin=0);
 
     inline  int                 compare(const String16& other) const;
 
     inline  bool                operator<(const String16& other) const;
     inline  bool                operator<=(const String16& other) const;
     inline  bool                operator==(const String16& other) const;
     inline  bool                operator!=(const String16& other) const;
     inline  bool                operator>=(const String16& other) const;
     inline  bool                operator>(const String16& other) const;
-    
+
     inline  bool                operator<(const char16_t* other) const;
     inline  bool                operator<=(const char16_t* other) const;
     inline  bool                operator==(const char16_t* other) const;
     inline  bool                operator!=(const char16_t* other) const;
     inline  bool                operator>=(const char16_t* other) const;
     inline  bool                operator>(const char16_t* other) const;
-    
+
     inline                      operator const char16_t*() const;
-    
+
 private:
             const char16_t*     mString;
 };
 
 TextOutput& operator<<(TextOutput& to, const String16& val);
 
 // ---------------------------------------------------------------------------
 // No user servicable parts below.
--- a/media/omx-plugin/include/ics/utils/String8.h
+++ b/media/omx-plugin/include/ics/utils/String8.h
@@ -35,17 +35,17 @@ class TextOutput;
 // than 0x10FFFF, which is not valid unicode codepoint.
 class String8
 {
 public:
                                 String8();
                                 String8(const String8& o);
     explicit                    String8(const char* o);
     explicit                    String8(const char* o, size_t numChars);
-    
+
     explicit                    String8(const String16& o);
     explicit                    String8(const char16_t* o);
     explicit                    String8(const char16_t* o, size_t numChars);
     explicit                    String8(const char32_t* o);
     explicit                    String8(const char32_t* o, size_t numChars);
                                 ~String8();
 
     static inline const String8 empty();
@@ -53,19 +53,19 @@ public:
     static String8              format(const char* fmt, ...) __attribute__((format (printf, 1, 2)));
     static String8              formatV(const char* fmt, va_list args);
 
     inline  const char*         string() const;
     inline  size_t              size() const;
     inline  size_t              length() const;
     inline  size_t              bytes() const;
     inline  bool                isEmpty() const;
-    
+
     inline  const SharedBuffer* sharedBuffer() const;
-    
+
             void                clear();
 
             void                setTo(const String8& other);
             status_t            setTo(const char* other);
             status_t            setTo(const char* other, size_t numChars);
             status_t            setTo(const char16_t* other, size_t numChars);
             status_t            setTo(const char32_t* other,
                                       size_t length);
@@ -82,45 +82,45 @@ public:
             // No cache value is stored.
             size_t              getUtf32Length() const;
             int32_t             getUtf32At(size_t index,
                                            size_t *next_index) const;
             void                getUtf32(char32_t* dst) const;
 
     inline  String8&            operator=(const String8& other);
     inline  String8&            operator=(const char* other);
-    
+
     inline  String8&            operator+=(const String8& other);
     inline  String8             operator+(const String8& other) const;
-    
+
     inline  String8&            operator+=(const char* other);
     inline  String8             operator+(const char* other) const;
 
     inline  int                 compare(const String8& other) const;
 
     inline  bool                operator<(const String8& other) const;
     inline  bool                operator<=(const String8& other) const;
     inline  bool                operator==(const String8& other) const;
     inline  bool                operator!=(const String8& other) const;
     inline  bool                operator>=(const String8& other) const;
     inline  bool                operator>(const String8& other) const;
-    
+
     inline  bool                operator<(const char* other) const;
     inline  bool                operator<=(const char* other) const;
     inline  bool                operator==(const char* other) const;
     inline  bool                operator!=(const char* other) const;
     inline  bool                operator>=(const char* other) const;
     inline  bool                operator>(const char* other) const;
-    
+
     inline                      operator const char*() const;
-    
+
             char*               lockBuffer(size_t size);
             void                unlockBuffer();
             status_t            unlockBuffer(size_t size);
-            
+
             // return the index of the first byte of other in this at or after
             // start, or -1 if not found
             ssize_t             find(const char* other, size_t start = 0) const;
 
             void                toLower();
             void                toLower(size_t start, size_t numChars);
             void                toUpper();
             void                toUpper(size_t start, size_t numChars);
--- a/media/omx-plugin/include/ics/utils/StrongPointer.h
+++ b/media/omx-plugin/include/ics/utils/StrongPointer.h
@@ -96,17 +96,17 @@ public:
 
     COMPARE(==)
     COMPARE(!=)
     COMPARE(>)
     COMPARE(<)
     COMPARE(<=)
     COMPARE(>=)
 
-private:    
+private:
     template<typename Y> friend class sp;
     template<typename Y> friend class wp;
     void set_pointer(T* ptr);
     T* m_ptr;
 };
 
 #undef COMPARE
 
@@ -181,17 +181,17 @@ template<typename T> template<typename U
 sp<T>& sp<T>::operator = (U* other)
 {
     if (other) ((T*)other)->incStrong(this);
     if (m_ptr) m_ptr->decStrong(this);
     m_ptr = other;
     return *this;
 }
 
-template<typename T>    
+template<typename T>
 void sp<T>::force_set(T* other)
 {
     other->forceIncStrong(this);
     m_ptr = other;
 }
 
 template<typename T>
 void sp<T>::clear()
--- a/media/omx-plugin/include/ics/utils/Timers.h
+++ b/media/omx-plugin/include/ics/utils/Timers.h
@@ -75,17 +75,17 @@ static inline nsecs_t milliseconds(nsecs
 static inline nsecs_t microseconds(nsecs_t v) { return us2ns(v); }
 
 enum {
     SYSTEM_TIME_REALTIME = 0,  // system-wide realtime clock
     SYSTEM_TIME_MONOTONIC = 1, // monotonic time since unspecified starting point
     SYSTEM_TIME_PROCESS = 2,   // high-resolution per-process clock
     SYSTEM_TIME_THREAD = 3     // high-resolution per-thread clock
 };
-    
+
 // return the system-time according to the specified clock
 #ifdef __cplusplus
 nsecs_t systemTime(int clock = SYSTEM_TIME_MONOTONIC);
 #else
 nsecs_t systemTime(int clock);
 #endif // def __cplusplus
 
 /**
--- a/media/omx-plugin/include/ics/utils/TypeHelpers.h
+++ b/media/omx-plugin/include/ics/utils/TypeHelpers.h
@@ -29,17 +29,17 @@ namespace android {
 /*
  * Types traits
  */
 
 template <typename T> struct trait_trivial_ctor { enum { value = false }; };
 template <typename T> struct trait_trivial_dtor { enum { value = false }; };
 template <typename T> struct trait_trivial_copy { enum { value = false }; };
 template <typename T> struct trait_trivial_move { enum { value = false }; };
-template <typename T> struct trait_pointer      { enum { value = false }; };    
+template <typename T> struct trait_pointer      { enum { value = false }; };
 template <typename T> struct trait_pointer<T*>  { enum { value = true }; };
 
 template <typename TYPE>
 struct traits {
     enum {
         // whether this type is a pointer
         is_pointer          = trait_pointer<TYPE>::value,
         // whether this type's constructor is a no-op
@@ -52,23 +52,23 @@ struct traits {
         has_trivial_move    = is_pointer || trait_trivial_move<TYPE>::value
     };
 };
 
 template <typename T, typename U>
 struct aggregate_traits {
     enum {
         is_pointer          = false,
-        has_trivial_ctor    = 
+        has_trivial_ctor    =
             traits<T>::has_trivial_ctor && traits<U>::has_trivial_ctor,
-        has_trivial_dtor    = 
+        has_trivial_dtor    =
             traits<T>::has_trivial_dtor && traits<U>::has_trivial_dtor,
-        has_trivial_copy    = 
+        has_trivial_copy    =
             traits<T>::has_trivial_copy && traits<U>::has_trivial_copy,
-        has_trivial_move    = 
+        has_trivial_move    =
             traits<T>::has_trivial_move && traits<U>::has_trivial_move
     };
 };
 
 #define ANDROID_BASIC_TYPES_TRAITS( T )                                     \
     template<> struct trait_trivial_ctor< T >   { enum { value = true }; }; \
     template<> struct trait_trivial_dtor< T >   { enum { value = true }; }; \
     template<> struct trait_trivial_copy< T >   { enum { value = true }; }; \
@@ -158,49 +158,49 @@ void splat_type(TYPE* where, const TYPE*
         while (n--) {
             *where++ = *what;
         }
     }
 }
 
 template<typename TYPE> inline
 void move_forward_type(TYPE* d, const TYPE* s, size_t n = 1) {
-    if ((traits<TYPE>::has_trivial_dtor && traits<TYPE>::has_trivial_copy) 
-            || traits<TYPE>::has_trivial_move) 
+    if ((traits<TYPE>::has_trivial_dtor && traits<TYPE>::has_trivial_copy)
+            || traits<TYPE>::has_trivial_move)
     {
         memmove(d,s,n*sizeof(TYPE));
     } else {
         d += n;
         s += n;
         while (n--) {
             --d, --s;
             if (!traits<TYPE>::has_trivial_copy) {
                 new(d) TYPE(*s);
             } else {
-                *d = *s;   
+                *d = *s;
             }
             if (!traits<TYPE>::has_trivial_dtor) {
                 s->~TYPE();
             }
         }
     }
 }
 
 template<typename TYPE> inline
 void move_backward_type(TYPE* d, const TYPE* s, size_t n = 1) {
-    if ((traits<TYPE>::has_trivial_dtor && traits<TYPE>::has_trivial_copy) 
-            || traits<TYPE>::has_trivial_move) 
+    if ((traits<TYPE>::has_trivial_dtor && traits<TYPE>::has_trivial_copy)
+            || traits<TYPE>::has_trivial_move)
     {
         memmove(d,s,n*sizeof(TYPE));
     } else {
         while (n--) {
             if (!traits<TYPE>::has_trivial_copy) {
                 new(d) TYPE(*s);
             } else {
-                *d = *s;   
+                *d = *s;
             }
             if (!traits<TYPE>::has_trivial_dtor) {
                 s->~TYPE();
             }
             d++, s++;
         }
     }
 }
--- a/media/omx-plugin/include/ics/utils/threads.h
+++ b/media/omx-plugin/include/ics/utils/threads.h
@@ -37,50 +37,50 @@ typedef void* android_thread_id_t;
 
 typedef int (*android_thread_func_t)(void*);
 
 enum {
     /*
      * ***********************************************
      * ** Keep in sync with android.os.Process.java **
      * ***********************************************
-     * 
+     *
      * This maps directly to the "nice" priorities we use in Android.
      * A thread priority should be chosen inverse-proportionally to
      * the amount of work the thread is expected to do. The more work
-     * a thread will do, the less favorable priority it should get so that 
+     * a thread will do, the less favorable priority it should get so that
      * it doesn't starve the system. Threads not behaving properly might
      * be "punished" by the kernel.
      * Use the levels below when appropriate. Intermediate values are
      * acceptable, preferably use the {MORE|LESS}_FAVORABLE constants below.
      */
     ANDROID_PRIORITY_LOWEST         =  19,
 
     /* use for background tasks */
     ANDROID_PRIORITY_BACKGROUND     =  10,
-    
+
     /* most threads run at normal priority */
     ANDROID_PRIORITY_NORMAL         =   0,
-    
+
     /* threads currently running a UI that the user is interacting with */
     ANDROID_PRIORITY_FOREGROUND     =  -2,
 
     /* the main UI thread has a slightly more favorable priority */
     ANDROID_PRIORITY_DISPLAY        =  -4,
-    
+
     /* ui service treads might want to run at a urgent display (uncommon) */
     ANDROID_PRIORITY_URGENT_DISPLAY =  HAL_PRIORITY_URGENT_DISPLAY,
-    
+
     /* all normal audio threads */
     ANDROID_PRIORITY_AUDIO          = -16,
-    
+
     /* service audio threads (uncommon) */
     ANDROID_PRIORITY_URGENT_AUDIO   = -19,
 
-    /* should never be used in practice. regular process might not 
+    /* should never be used in practice. regular process might not
      * be allowed to use this level */
     ANDROID_PRIORITY_HIGHEST        = -20,
 
     ANDROID_PRIORITY_DEFAULT        = ANDROID_PRIORITY_NORMAL,
     ANDROID_PRIORITY_MORE_FAVORABLE = -1,
     ANDROID_PRIORITY_LESS_FAVORABLE = +1,
 };
 
@@ -219,17 +219,17 @@ inline thread_id_t getThreadId() {
  * recursive, i.e. the same thread can't lock it multiple times.
  */
 class Mutex {
 public:
     enum {
         PRIVATE = 0,
         SHARED = 1
     };
-    
+
                 Mutex();
                 Mutex(const char* name);
                 Mutex(int type, const char* name = NULL);
                 ~Mutex();
 
     // lock or unlock the mutex
     status_t    lock();
     void        unlock();
@@ -245,21 +245,21 @@ public:
         inline Autolock(Mutex* mutex) : mLock(*mutex) { mLock.lock(); }
         inline ~Autolock() { mLock.unlock(); }
     private:
         Mutex& mLock;
     };
 
 private:
     friend class Condition;
-    
+
     // A mutex cannot be copied
                 Mutex(const Mutex&);
     Mutex&      operator = (const Mutex&);
-    
+
 #if defined(HAVE_PTHREADS)
     pthread_mutex_t mMutex;
 #else
     void    _init();
     void*   mState;
 #endif
 };
 
@@ -297,17 +297,17 @@ inline status_t Mutex::tryLock() {
 
 #endif // HAVE_PTHREADS
 
 /*
  * Automatic mutex.  Declare one of these at the top of a function.
  * When the function returns, it will go out of scope, and release the
  * mutex.
  */
- 
+
 typedef Mutex::Autolock AutoMutex;
 
 /*****************************************************************************/
 
 #if defined(HAVE_PTHREADS)
 
 /*
  * Simple mutex class.  The implementation is system-dependent.
@@ -502,39 +502,39 @@ public:
     // thread. See the run() method.
                         Thread(bool canCallJava = true);
     virtual             ~Thread();
 
     // Start the thread in threadLoop() which needs to be implemented.
     virtual status_t    run(    const char* name = 0,
                                 int32_t priority = PRIORITY_DEFAULT,
                                 size_t stack = 0);
-    
+
     // Ask this object's thread to exit. This function is asynchronous, when the
     // function returns the thread might still be running. Of course, this
     // function can be called from a different thread.
     virtual void        requestExit();
 
     // Good place to do one-time initializations
     virtual status_t    readyToRun();
-    
+
     // Call requestExit() and wait until this object's thread exits.
     // BE VERY CAREFUL of deadlocks. In particular, it would be silly to call
     // this function from this object's thread. Will return WOULD_BLOCK in
     // that case.
             status_t    requestExitAndWait();
 
     // Wait until this object's thread exits. Returns immediately if not yet running.
     // Do not call from this object's thread; will return WOULD_BLOCK in that case.
             status_t    join();
 
 protected:
     // exitPending() returns true if requestExit() has been called.
             bool        exitPending() const;
-    
+
 private:
     // Derived class must implement threadLoop(). The thread starts its life
     // here. There are two ways of using the Thread object:
     // 1) loop: if threadLoop() returns true, it will be called again if
     //          requestExit() wasn't called.
     // 2) once: if threadLoop() returns false, the thread will exit upon return.
     virtual bool        threadLoop() = 0;
 
--- a/media/openmax_il/il112/OMX_Audio.h
+++ b/media/openmax_il/il112/OMX_Audio.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** @file OMX_Audio.h - OpenMax IL version 1.1.2
  *  The structures needed by Audio components to exchange
  *  parameters and configuration data with the componenmilts.
  */
 
@@ -31,38 +31,38 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header must include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 
 #include <OMX_Core.h>
 
 /** @defgroup midi MIDI
  * @ingroup audio
  */
- 
+
 /** @defgroup effects Audio effects
  * @ingroup audio
  */
 
 /** @defgroup audio OpenMAX IL Audio Domain
  * Structures for OpenMAX IL Audio domain
  * @{
  */
 
-/** Enumeration used to define the possible audio codings.  
- *  If "OMX_AUDIO_CodingUnused" is selected, the coding selection must 
- *  be done in a vendor specific way.  Since this is for an audio 
- *  processing element this enum is relevant.  However, for another 
+/** Enumeration used to define the possible audio codings.
+ *  If "OMX_AUDIO_CodingUnused" is selected, the coding selection must
+ *  be done in a vendor specific way.  Since this is for an audio
+ *  processing element this enum is relevant.  However, for another
  *  type of component other enums would be in this area.
  */
 typedef enum OMX_AUDIO_CODINGTYPE {
     OMX_AUDIO_CodingUnused = 0,  /**< Placeholder value when coding is N/A  */
     OMX_AUDIO_CodingAutoDetect,  /**< auto detection of audio format */
     OMX_AUDIO_CodingPCM,         /**< Any variant of PCM coding */
     OMX_AUDIO_CodingADPCM,       /**< Any variant of ADPCM encoded data */
     OMX_AUDIO_CodingAMR,         /**< Any variant of AMR encoded data */
@@ -84,123 +84,123 @@ typedef enum OMX_AUDIO_CODINGTYPE {
     OMX_AUDIO_CodingG729,        /**< Any variant of G.729 encoded data */
     OMX_AUDIO_CodingAAC,         /**< Any variant of AAC encoded data */
     OMX_AUDIO_CodingMP3,         /**< Any variant of MP3 encoded data */
     OMX_AUDIO_CodingSBC,         /**< Any variant of SBC encoded data */
     OMX_AUDIO_CodingVORBIS,      /**< Any variant of VORBIS encoded data */
     OMX_AUDIO_CodingWMA,         /**< Any variant of WMA encoded data */
     OMX_AUDIO_CodingRA,          /**< Any variant of RA encoded data */
     OMX_AUDIO_CodingMIDI,        /**< Any variant of MIDI encoded data */
-    OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_CodingMax = 0x7FFFFFFF
 } OMX_AUDIO_CODINGTYPE;
 
 
-/** The PortDefinition structure is used to define all of the parameters 
- *  necessary for the compliant component to setup an input or an output audio 
+/** The PortDefinition structure is used to define all of the parameters
+ *  necessary for the compliant component to setup an input or an output audio
  *  path.  If additional information is needed to define the parameters of the
  *  port (such as frequency), additional structures must be sent such as the
  *  OMX_AUDIO_PARAM_PCMMODETYPE structure to supply the extra parameters for the port.
  */
 typedef struct OMX_AUDIO_PORTDEFINITIONTYPE {
     OMX_STRING cMIMEType;            /**< MIME type of data for the port */
     OMX_NATIVE_DEVICETYPE pNativeRender; /** < platform specific reference
-                                               for an output device, 
+                                               for an output device,
                                                otherwise this field is 0 */
-    OMX_BOOL bFlagErrorConcealment;  /**< Turns on error concealment if it is 
+    OMX_BOOL bFlagErrorConcealment;  /**< Turns on error concealment if it is
                                           supported by the OMX component */
-    OMX_AUDIO_CODINGTYPE eEncoding;  /**< Type of data expected for this 
+    OMX_AUDIO_CODINGTYPE eEncoding;  /**< Type of data expected for this
                                           port (e.g. PCM, AMR, MP3, etc) */
 } OMX_AUDIO_PORTDEFINITIONTYPE;
 
 
 /**  Port format parameter.  This structure is used to enumerate
   *  the various data input/output format supported by the port.
   */
 typedef struct OMX_AUDIO_PARAM_PORTFORMATTYPE {
     OMX_U32 nSize;                  /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
     OMX_U32 nPortIndex;             /**< Indicates which port to set */
     OMX_U32 nIndex;                 /**< Indicates the enumeration index for the format from 0x0 to N-1 */
     OMX_AUDIO_CODINGTYPE eEncoding; /**< Type of data expected for this port (e.g. PCM, AMR, MP3, etc) */
 } OMX_AUDIO_PARAM_PORTFORMATTYPE;
 
 
-/** PCM mode type  */ 
-typedef enum OMX_AUDIO_PCMMODETYPE { 
-    OMX_AUDIO_PCMModeLinear = 0,  /**< Linear PCM encoded data */ 
-    OMX_AUDIO_PCMModeALaw,        /**< A law PCM encoded data (G.711) */ 
-    OMX_AUDIO_PCMModeMULaw,       /**< Mu law PCM encoded data (G.711)  */ 
-    OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+/** PCM mode type  */
+typedef enum OMX_AUDIO_PCMMODETYPE {
+    OMX_AUDIO_PCMModeLinear = 0,  /**< Linear PCM encoded data */
+    OMX_AUDIO_PCMModeALaw,        /**< A law PCM encoded data (G.711) */
+    OMX_AUDIO_PCMModeMULaw,       /**< Mu law PCM encoded data (G.711)  */
+    OMX_AUDIO_PCMModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_PCMModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_AUDIO_PCMModeMax = 0x7FFFFFFF 
-} OMX_AUDIO_PCMMODETYPE; 
+    OMX_AUDIO_PCMModeMax = 0x7FFFFFFF
+} OMX_AUDIO_PCMMODETYPE;
 
 
 typedef enum OMX_AUDIO_CHANNELTYPE {
     OMX_AUDIO_ChannelNone = 0x0,    /**< Unused or empty */
     OMX_AUDIO_ChannelLF   = 0x1,    /**< Left front */
     OMX_AUDIO_ChannelRF   = 0x2,    /**< Right front */
     OMX_AUDIO_ChannelCF   = 0x3,    /**< Center front */
     OMX_AUDIO_ChannelLS   = 0x4,    /**< Left surround */
     OMX_AUDIO_ChannelRS   = 0x5,    /**< Right surround */
     OMX_AUDIO_ChannelLFE  = 0x6,    /**< Low frequency effects */
     OMX_AUDIO_ChannelCS   = 0x7,    /**< Back surround */
     OMX_AUDIO_ChannelLR   = 0x8,    /**< Left rear. */
     OMX_AUDIO_ChannelRR   = 0x9,    /**< Right rear. */
-    OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_ChannelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_ChannelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_AUDIO_ChannelMax  = 0x7FFFFFFF 
+    OMX_AUDIO_ChannelMax  = 0x7FFFFFFF
 } OMX_AUDIO_CHANNELTYPE;
 
 #define OMX_AUDIO_MAXCHANNELS 16  /**< maximum number distinct audio channels that a buffer may contain */
 #define OMX_MIN_PCMPAYLOAD_MSEC 5 /**< Minimum audio buffer payload size for uncompressed (PCM) audio */
 
-/** PCM format description */ 
-typedef struct OMX_AUDIO_PARAM_PCMMODETYPE { 
-    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */ 
-    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;               /**< port that this structure applies to */ 
-    OMX_U32 nChannels;                /**< Number of channels (e.g. 2 for stereo) */ 
-    OMX_NUMERICALDATATYPE eNumData;   /**< indicates PCM data as signed or unsigned */ 
-    OMX_ENDIANTYPE eEndian;           /**< indicates PCM data as little or big endian */ 
-    OMX_BOOL bInterleaved;            /**< True for normal interleaved data; false for 
-                                           non-interleaved data (e.g. block data) */ 
-    OMX_U32 nBitPerSample;            /**< Bit per sample */ 
-    OMX_U32 nSamplingRate;            /**< Sampling rate of the source data.  Use 0 for 
-                                           variable or unknown sampling rate. */ 
-    OMX_AUDIO_PCMMODETYPE ePCMMode;   /**< PCM mode enumeration */ 
+/** PCM format description */
+typedef struct OMX_AUDIO_PARAM_PCMMODETYPE {
+    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */
+    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
+    OMX_U32 nPortIndex;               /**< port that this structure applies to */
+    OMX_U32 nChannels;                /**< Number of channels (e.g. 2 for stereo) */
+    OMX_NUMERICALDATATYPE eNumData;   /**< indicates PCM data as signed or unsigned */
+    OMX_ENDIANTYPE eEndian;           /**< indicates PCM data as little or big endian */
+    OMX_BOOL bInterleaved;            /**< True for normal interleaved data; false for
+                                           non-interleaved data (e.g. block data) */
+    OMX_U32 nBitPerSample;            /**< Bit per sample */
+    OMX_U32 nSamplingRate;            /**< Sampling rate of the source data.  Use 0 for
+                                           variable or unknown sampling rate. */
+    OMX_AUDIO_PCMMODETYPE ePCMMode;   /**< PCM mode enumeration */
     OMX_AUDIO_CHANNELTYPE eChannelMapping[OMX_AUDIO_MAXCHANNELS]; /**< Slot i contains channel defined by eChannelMap[i] */
 
-} OMX_AUDIO_PARAM_PCMMODETYPE; 
+} OMX_AUDIO_PARAM_PCMMODETYPE;
 
 
 /** Audio channel mode.  This is used by both AAC and MP3, although the names are more appropriate
- * for the MP3.  For example, JointStereo for MP3 is CouplingChannels for AAC. 
+ * for the MP3.  For example, JointStereo for MP3 is CouplingChannels for AAC.
  */
 typedef enum OMX_AUDIO_CHANNELMODETYPE {
-    OMX_AUDIO_ChannelModeStereo = 0,  /**< 2 channels, the bitrate allocation between those 
+    OMX_AUDIO_ChannelModeStereo = 0,  /**< 2 channels, the bitrate allocation between those
                                           two channels changes accordingly to each channel information */
-    OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between 
+    OMX_AUDIO_ChannelModeJointStereo, /**< mode that takes advantage of what is common between
                                            2 channels for higher compression gain */
-    OMX_AUDIO_ChannelModeDual,        /**< 2 mono-channels, each channel is encoded with half 
+    OMX_AUDIO_ChannelModeDual,        /**< 2 mono-channels, each channel is encoded with half
                                            the bitrate of the overall bitrate */
     OMX_AUDIO_ChannelModeMono,        /**< Mono channel mode */
-    OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_ChannelModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_ChannelModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_ChannelModeMax = 0x7FFFFFFF
 } OMX_AUDIO_CHANNELMODETYPE;
 
 
 typedef enum OMX_AUDIO_MP3STREAMFORMATTYPE {
     OMX_AUDIO_MP3StreamFormatMP1Layer3 = 0, /**< MP3 Audio MPEG 1 Layer 3 Stream format */
     OMX_AUDIO_MP3StreamFormatMP2Layer3,     /**< MP3 Audio MPEG 2 Layer 3 Stream format */
     OMX_AUDIO_MP3StreamFormatMP2_5Layer3,   /**< MP3 Audio MPEG2.5 Layer 3 Stream format */
-    OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_MP3StreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_MP3StreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_MP3StreamFormatMax = 0x7FFFFFFF
 } OMX_AUDIO_MP3STREAMFORMATTYPE;
 
 /** MP3 params */
 typedef struct OMX_AUDIO_PARAM_MP3TYPE {
     OMX_U32 nSize;                 /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
@@ -220,17 +220,17 @@ typedef struct OMX_AUDIO_PARAM_MP3TYPE {
 typedef enum OMX_AUDIO_AACSTREAMFORMATTYPE {
     OMX_AUDIO_AACStreamFormatMP2ADTS = 0, /**< AAC Audio Data Transport Stream 2 format */
     OMX_AUDIO_AACStreamFormatMP4ADTS,     /**< AAC Audio Data Transport Stream 4 format */
     OMX_AUDIO_AACStreamFormatMP4LOAS,     /**< AAC Low Overhead Audio Stream format */
     OMX_AUDIO_AACStreamFormatMP4LATM,     /**< AAC Low overhead Audio Transport Multiplex */
     OMX_AUDIO_AACStreamFormatADIF,        /**< AAC Audio Data Interchange Format */
     OMX_AUDIO_AACStreamFormatMP4FF,       /**< AAC inside MPEG-4/ISO File Format */
     OMX_AUDIO_AACStreamFormatRAW,         /**< AAC Raw Format */
-    OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_AACStreamFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_AACStreamFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_AACStreamFormatMax = 0x7FFFFFFF
 } OMX_AUDIO_AACSTREAMFORMATTYPE;
 
 
 /** AAC mode type.  Note that the term profile is used with the MPEG-2
  * standard and the term object type and profile is used with MPEG-4 */
 typedef enum OMX_AUDIO_AACPROFILETYPE{
@@ -239,17 +239,17 @@ typedef enum OMX_AUDIO_AACPROFILETYPE{
   OMX_AUDIO_AACObjectLC,            /**< AAC Low Complexity object (AAC profile) */
   OMX_AUDIO_AACObjectSSR,           /**< AAC Scalable Sample Rate object */
   OMX_AUDIO_AACObjectLTP,           /**< AAC Long Term Prediction object */
   OMX_AUDIO_AACObjectHE,            /**< AAC High Efficiency (object type SBR, HE-AAC profile) */
   OMX_AUDIO_AACObjectScalable,      /**< AAC Scalable object */
   OMX_AUDIO_AACObjectERLC = 17,     /**< ER AAC Low Complexity object (Error Resilient AAC-LC) */
   OMX_AUDIO_AACObjectLD = 23,       /**< AAC Low Delay object (Error Resilient) */
   OMX_AUDIO_AACObjectHE_PS = 29,    /**< AAC High Efficiency with Parametric Stereo coding (HE-AAC v2, object type PS) */
-  OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_AUDIO_AACObjectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_AUDIO_AACObjectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_AUDIO_AACObjectMax = 0x7FFFFFFF
 } OMX_AUDIO_AACPROFILETYPE;
 
 
 /** AAC tool usage (for nAACtools in OMX_AUDIO_PARAM_AACPROFILETYPE).
  * Required for encoder configuration and optional as decoder info output.
  * For MP3, OMX_AUDIO_CHANNELMODETYPE is sufficient. */
@@ -312,40 +312,40 @@ typedef struct OMX_AUDIO_PARAM_VORBISTYP
     OMX_S32 nQuality;		  /**< Sets encoding quality to n, between -1 (low) and 10 (high).
                                    In the default mode of operation, teh quality level is 3.
                                    Normal quality range is 0 - 10. */
     OMX_BOOL bManaged;		  /**< Set  bitrate  management  mode. This turns off the
                                    normal VBR encoding, but allows hard or soft bitrate
                                    constraints to be enforced by the encoder. This mode can
                                    be slower, and may also be lower quality. It is
                                    primarily useful for streaming. */
-    OMX_BOOL bDownmix;		  /**< Downmix input from stereo to mono (has no effect on 
-                                   non-stereo streams). Useful for lower-bitrate encoding. */     
+    OMX_BOOL bDownmix;		  /**< Downmix input from stereo to mono (has no effect on
+                                   non-stereo streams). Useful for lower-bitrate encoding. */
 } OMX_AUDIO_PARAM_VORBISTYPE;
 
 
 /** WMA Version */
 typedef enum OMX_AUDIO_WMAFORMATTYPE {
   OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */
   OMX_AUDIO_WMAFormat7,          /**< Windows Media Audio format 7 */
   OMX_AUDIO_WMAFormat8,          /**< Windows Media Audio format 8 */
   OMX_AUDIO_WMAFormat9,          /**< Windows Media Audio format 9 */
-  OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_AUDIO_WMAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_AUDIO_WMAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_AUDIO_WMAFormatMax = 0x7FFFFFFF
 } OMX_AUDIO_WMAFORMATTYPE;
 
 
 /** WMA Profile */
 typedef enum OMX_AUDIO_WMAPROFILETYPE {
   OMX_AUDIO_WMAProfileUnused = 0,  /**< profile unused or unknown */
   OMX_AUDIO_WMAProfileL1,          /**< Windows Media audio version 9 profile L1 */
   OMX_AUDIO_WMAProfileL2,          /**< Windows Media audio version 9 profile L2 */
   OMX_AUDIO_WMAProfileL3,          /**< Windows Media audio version 9 profile L3 */
-  OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_AUDIO_WMAProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_AUDIO_WMAProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_AUDIO_WMAProfileMax = 0x7FFFFFFF
 } OMX_AUDIO_WMAPROFILETYPE;
 
 
 /** WMA params */
 typedef struct OMX_AUDIO_PARAM_WMATYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
@@ -357,54 +357,54 @@ typedef struct OMX_AUDIO_PARAM_WMATYPE {
     OMX_AUDIO_WMAFORMATTYPE eFormat; /**< Version of WMA stream / data */
 	OMX_AUDIO_WMAPROFILETYPE eProfile;  /**< Profile of WMA stream / data */
     OMX_U32 nSamplingRate;    /**< Sampling rate of the source data */
     OMX_U16 nBlockAlign;      /**< is the block alignment, or block size, in bytes of the audio codec */
     OMX_U16 nEncodeOptions;   /**< WMA Type-specific data */
     OMX_U32 nSuperBlockAlign; /**< WMA Type-specific data */
 } OMX_AUDIO_PARAM_WMATYPE;
 
-/** 
+/**
  * RealAudio format
  */
 typedef enum OMX_AUDIO_RAFORMATTYPE {
     OMX_AUDIO_RAFormatUnused = 0, /**< Format unused or unknown */
     OMX_AUDIO_RA8,                /**< RealAudio 8 codec */
     OMX_AUDIO_RA9,                /**< RealAudio 9 codec */
     OMX_AUDIO_RA10_AAC,           /**< MPEG-4 AAC codec for bitrates of more than 128kbps */
     OMX_AUDIO_RA10_CODEC,         /**< RealAudio codec for bitrates less than 128 kbps */
     OMX_AUDIO_RA10_LOSSLESS,      /**< RealAudio Lossless */
     OMX_AUDIO_RA10_MULTICHANNEL,  /**< RealAudio Multichannel */
     OMX_AUDIO_RA10_VOICE,         /**< RealAudio Voice for bitrates below 15 kbps */
-    OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_RAFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_RAFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_RAFormatMax = 0x7FFFFFFF
 } OMX_AUDIO_RAFORMATTYPE;
 
-/** RA (Real Audio) params */ 
-typedef struct OMX_AUDIO_PARAM_RATYPE { 
-    OMX_U32 nSize;              /**< Size of this structure, in Bytes */ 
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;         /**< Port that this structure applies to */ 
-    OMX_U32 nChannels;          /**< Number of channels */ 
-    OMX_U32 nSamplingRate;      /**< is the sampling rate of the source data */ 
-    OMX_U32 nBitsPerFrame;      /**< is the value for bits per frame  */ 
-    OMX_U32 nSamplePerFrame;    /**< is the value for samples per frame */ 
-    OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */ 
-    OMX_U32 nCouplingStartRegion;   /**< is the coupling start region in the stream  */ 
-    OMX_U32 nNumRegions;        /**< is the number of regions value */ 
+/** RA (Real Audio) params */
+typedef struct OMX_AUDIO_PARAM_RATYPE {
+    OMX_U32 nSize;              /**< Size of this structure, in Bytes */
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
+    OMX_U32 nPortIndex;         /**< Port that this structure applies to */
+    OMX_U32 nChannels;          /**< Number of channels */
+    OMX_U32 nSamplingRate;      /**< is the sampling rate of the source data */
+    OMX_U32 nBitsPerFrame;      /**< is the value for bits per frame  */
+    OMX_U32 nSamplePerFrame;    /**< is the value for samples per frame */
+    OMX_U32 nCouplingQuantBits; /**< is the number of coupling quantization bits in the stream */
+    OMX_U32 nCouplingStartRegion;   /**< is the coupling start region in the stream  */
+    OMX_U32 nNumRegions;        /**< is the number of regions value */
     OMX_AUDIO_RAFORMATTYPE eFormat; /**< is the RealAudio audio format */
-} OMX_AUDIO_PARAM_RATYPE; 
+} OMX_AUDIO_PARAM_RATYPE;
 
 
 /** SBC Allocation Method Type */
 typedef enum OMX_AUDIO_SBCALLOCMETHODTYPE {
   OMX_AUDIO_SBCAllocMethodLoudness, /**< Loudness allocation method */
   OMX_AUDIO_SBCAllocMethodSNR,      /**< SNR allocation method */
-  OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_AUDIO_SBCAllocMethodKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_AUDIO_SBCAllocMethodVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_AUDIO_SBCAllocMethodMax = 0x7FFFFFFF
 } OMX_AUDIO_SBCALLOCMETHODTYPE;
 
 
 /** SBC params */
 typedef struct OMX_AUDIO_PARAM_SBCTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
@@ -419,88 +419,88 @@ typedef struct OMX_AUDIO_PARAM_SBCTYPE {
     OMX_U32 nSubbands;         /**< Number of subbands */
     OMX_U32 nBitPool;          /**< Bitpool value */
     OMX_BOOL bEnableBitrate;   /**< Use bitrate value instead of bitpool */
     OMX_AUDIO_CHANNELMODETYPE eChannelMode; /**< Channel mode enumeration */
     OMX_AUDIO_SBCALLOCMETHODTYPE eSBCAllocType;   /**< SBC Allocation method type */
 } OMX_AUDIO_PARAM_SBCTYPE;
 
 
-/** ADPCM stream format parameters */ 
-typedef struct OMX_AUDIO_PARAM_ADPCMTYPE { 
-    OMX_U32 nSize;              /**< size of the structure in bytes */ 
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;         /**< port that this structure applies to */ 
-    OMX_U32 nChannels;          /**< Number of channels in the data stream (not 
-                                     necessarily the same as the number of channels 
-                                     to be rendered. */ 
-    OMX_U32 nBitsPerSample;     /**< Number of bits in each sample */ 
-    OMX_U32 nSampleRate;        /**< Sampling rate of the source data.  Use 0 for 
-                                    variable or unknown sampling rate. */ 
-} OMX_AUDIO_PARAM_ADPCMTYPE; 
+/** ADPCM stream format parameters */
+typedef struct OMX_AUDIO_PARAM_ADPCMTYPE {
+    OMX_U32 nSize;              /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
+    OMX_U32 nPortIndex;         /**< port that this structure applies to */
+    OMX_U32 nChannels;          /**< Number of channels in the data stream (not
+                                     necessarily the same as the number of channels
+                                     to be rendered. */
+    OMX_U32 nBitsPerSample;     /**< Number of bits in each sample */
+    OMX_U32 nSampleRate;        /**< Sampling rate of the source data.  Use 0 for
+                                    variable or unknown sampling rate. */
+} OMX_AUDIO_PARAM_ADPCMTYPE;
 
 
 /** G723 rate */
 typedef enum OMX_AUDIO_G723RATE {
     OMX_AUDIO_G723ModeUnused = 0,  /**< AMRNB Mode unused / unknown */
     OMX_AUDIO_G723ModeLow,         /**< 5300 bps */
     OMX_AUDIO_G723ModeHigh,        /**< 6300 bps */
-    OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_G723ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_G723ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_G723ModeMax = 0x7FFFFFFF
 } OMX_AUDIO_G723RATE;
 
 
 /** G723 - Sample rate must be 8 KHz */
-typedef struct OMX_AUDIO_PARAM_G723TYPE { 
-    OMX_U32 nSize;                /**< size of the structure in bytes */ 
-    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;           /**< port that this structure applies to */ 
-    OMX_U32 nChannels;            /**< Number of channels in the data stream (not 
-                                       necessarily the same as the number of channels 
-                                       to be rendered. */ 
-    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */ 
+typedef struct OMX_AUDIO_PARAM_G723TYPE {
+    OMX_U32 nSize;                /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
+    OMX_U32 nPortIndex;           /**< port that this structure applies to */
+    OMX_U32 nChannels;            /**< Number of channels in the data stream (not
+                                       necessarily the same as the number of channels
+                                       to be rendered. */
+    OMX_BOOL bDTX;                /**< Enable Discontinuous Transmisssion */
     OMX_AUDIO_G723RATE eBitRate;  /**< todo: Should this be moved to a config? */
-    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */ 
-    OMX_BOOL bPostFilter;         /**< Enable Post Filter */ 
-} OMX_AUDIO_PARAM_G723TYPE; 
+    OMX_BOOL bHiPassFilter;       /**< Enable High Pass Filter */
+    OMX_BOOL bPostFilter;         /**< Enable Post Filter */
+} OMX_AUDIO_PARAM_G723TYPE;
 
 
 /** ITU G726 (ADPCM) rate */
 typedef enum OMX_AUDIO_G726MODE {
     OMX_AUDIO_G726ModeUnused = 0,  /**< G726 Mode unused / unknown */
     OMX_AUDIO_G726Mode16,          /**< 16 kbps */
     OMX_AUDIO_G726Mode24,          /**< 24 kbps */
     OMX_AUDIO_G726Mode32,          /**< 32 kbps, most common rate, also G721 */
     OMX_AUDIO_G726Mode40,          /**< 40 kbps */
-    OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_G726ModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_G726ModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_G726ModeMax = 0x7FFFFFFF
 } OMX_AUDIO_G726MODE;
 
 
-/** G.726 stream format parameters - must be at 8KHz */ 
-typedef struct OMX_AUDIO_PARAM_G726TYPE { 
-    OMX_U32 nSize;              /**< size of the structure in bytes */ 
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;         /**< port that this structure applies to */ 
-    OMX_U32 nChannels;          /**< Number of channels in the data stream (not 
-                                     necessarily the same as the number of channels 
-                                     to be rendered. */ 
+/** G.726 stream format parameters - must be at 8KHz */
+typedef struct OMX_AUDIO_PARAM_G726TYPE {
+    OMX_U32 nSize;              /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
+    OMX_U32 nPortIndex;         /**< port that this structure applies to */
+    OMX_U32 nChannels;          /**< Number of channels in the data stream (not
+                                     necessarily the same as the number of channels
+                                     to be rendered. */
      OMX_AUDIO_G726MODE eG726Mode;
-} OMX_AUDIO_PARAM_G726TYPE; 
+} OMX_AUDIO_PARAM_G726TYPE;
 
 
 /** G729 coder type */
 typedef enum OMX_AUDIO_G729TYPE {
     OMX_AUDIO_G729 = 0,           /**< ITU G.729  encoded data */
     OMX_AUDIO_G729A,              /**< ITU G.729 annex A  encoded data */
     OMX_AUDIO_G729B,              /**< ITU G.729 with annex B encoded data */
     OMX_AUDIO_G729AB,             /**< ITU G.729 annexes A and B encoded data */
-    OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_G729KhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_G729VendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_G729Max = 0x7FFFFFFF
 } OMX_AUDIO_G729TYPE;
 
 
 /** G729 stream format parameters - fixed 6KHz sample rate */
 typedef struct OMX_AUDIO_PARAM_G729TYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
@@ -509,87 +509,87 @@ typedef struct OMX_AUDIO_PARAM_G729TYPE 
     OMX_U32 nChannels;        /**< Number of channels in the data stream (not
                                    necessarily the same as the number of channels
                                    to be rendered. */
     OMX_BOOL bDTX;            /**< Enable Discontinuous Transmisssion */
     OMX_AUDIO_G729TYPE eBitType;
 } OMX_AUDIO_PARAM_G729TYPE;
 
 
-/** AMR Frame format */ 
-typedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE { 
-    OMX_AUDIO_AMRFrameFormatConformance = 0,  /**< Frame Format is AMR Conformance 
-                                                   (Standard) Format */ 
-    OMX_AUDIO_AMRFrameFormatIF1,              /**< Frame Format is AMR Interface 
-                                                   Format 1 */ 
-    OMX_AUDIO_AMRFrameFormatIF2,              /**< Frame Format is AMR Interface 
-                                                   Format 2*/ 
-    OMX_AUDIO_AMRFrameFormatFSF,              /**< Frame Format is AMR File Storage 
-                                                   Format */ 
-    OMX_AUDIO_AMRFrameFormatRTPPayload,       /**< Frame Format is AMR Real-Time 
-                                                   Transport Protocol Payload Format */ 
-    OMX_AUDIO_AMRFrameFormatITU,              /**< Frame Format is ITU Format (added at Motorola request) */ 
-    OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+/** AMR Frame format */
+typedef enum OMX_AUDIO_AMRFRAMEFORMATTYPE {
+    OMX_AUDIO_AMRFrameFormatConformance = 0,  /**< Frame Format is AMR Conformance
+                                                   (Standard) Format */
+    OMX_AUDIO_AMRFrameFormatIF1,              /**< Frame Format is AMR Interface
+                                                   Format 1 */
+    OMX_AUDIO_AMRFrameFormatIF2,              /**< Frame Format is AMR Interface
+                                                   Format 2*/
+    OMX_AUDIO_AMRFrameFormatFSF,              /**< Frame Format is AMR File Storage
+                                                   Format */
+    OMX_AUDIO_AMRFrameFormatRTPPayload,       /**< Frame Format is AMR Real-Time
+                                                   Transport Protocol Payload Format */
+    OMX_AUDIO_AMRFrameFormatITU,              /**< Frame Format is ITU Format (added at Motorola request) */
+    OMX_AUDIO_AMRFrameFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_AMRFrameFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF 
-} OMX_AUDIO_AMRFRAMEFORMATTYPE; 
+    OMX_AUDIO_AMRFrameFormatMax = 0x7FFFFFFF
+} OMX_AUDIO_AMRFRAMEFORMATTYPE;
 
 
 /** AMR band mode */
 typedef enum OMX_AUDIO_AMRBANDMODETYPE {
     OMX_AUDIO_AMRBandModeUnused = 0,          /**< AMRNB Mode unused / unknown */
     OMX_AUDIO_AMRBandModeNB0,                 /**< AMRNB Mode 0 =  4750 bps */
     OMX_AUDIO_AMRBandModeNB1,                 /**< AMRNB Mode 1 =  5150 bps */
-    OMX_AUDIO_AMRBandModeNB2,                 /**< AMRNB Mode 2 =  5900 bps */ 
+    OMX_AUDIO_AMRBandModeNB2,                 /**< AMRNB Mode 2 =  5900 bps */
     OMX_AUDIO_AMRBandModeNB3,                 /**< AMRNB Mode 3 =  6700 bps */
     OMX_AUDIO_AMRBandModeNB4,                 /**< AMRNB Mode 4 =  7400 bps */
     OMX_AUDIO_AMRBandModeNB5,                 /**< AMRNB Mode 5 =  7950 bps */
     OMX_AUDIO_AMRBandModeNB6,                 /**< AMRNB Mode 6 = 10200 bps */
     OMX_AUDIO_AMRBandModeNB7,                 /**< AMRNB Mode 7 = 12200 bps */
     OMX_AUDIO_AMRBandModeWB0,                 /**< AMRWB Mode 0 =  6600 bps */
     OMX_AUDIO_AMRBandModeWB1,                 /**< AMRWB Mode 1 =  8850 bps */
-    OMX_AUDIO_AMRBandModeWB2,                 /**< AMRWB Mode 2 = 12650 bps */ 
-    OMX_AUDIO_AMRBandModeWB3,                 /**< AMRWB Mode 3 = 14250 bps */ 
+    OMX_AUDIO_AMRBandModeWB2,                 /**< AMRWB Mode 2 = 12650 bps */
+    OMX_AUDIO_AMRBandModeWB3,                 /**< AMRWB Mode 3 = 14250 bps */
     OMX_AUDIO_AMRBandModeWB4,                 /**< AMRWB Mode 4 = 15850 bps */
     OMX_AUDIO_AMRBandModeWB5,                 /**< AMRWB Mode 5 = 18250 bps */
     OMX_AUDIO_AMRBandModeWB6,                 /**< AMRWB Mode 6 = 19850 bps */
     OMX_AUDIO_AMRBandModeWB7,                 /**< AMRWB Mode 7 = 23050 bps */
-    OMX_AUDIO_AMRBandModeWB8,                 /**< AMRWB Mode 8 = 23850 bps */      
-    OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_AMRBandModeWB8,                 /**< AMRWB Mode 8 = 23850 bps */
+    OMX_AUDIO_AMRBandModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_AMRBandModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_AMRBandModeMax = 0x7FFFFFFF
 } OMX_AUDIO_AMRBANDMODETYPE;
-     
+
 
-/** AMR Discontinuous Transmission mode */ 
-typedef enum OMX_AUDIO_AMRDTXMODETYPE { 
-    OMX_AUDIO_AMRDTXModeOff = 0,        /**< AMR Discontinuous Transmission Mode is disabled */ 
-    OMX_AUDIO_AMRDTXModeOnVAD1,         /**< AMR Discontinuous Transmission Mode using 
-                                             Voice Activity Detector 1 (VAD1) is enabled */ 
-    OMX_AUDIO_AMRDTXModeOnVAD2,         /**< AMR Discontinuous Transmission Mode using 
-                                             Voice Activity Detector 2 (VAD2) is enabled */       
-    OMX_AUDIO_AMRDTXModeOnAuto,         /**< The codec will automatically select between 
-                                             Off, VAD1 or VAD2 modes */ 
+/** AMR Discontinuous Transmission mode */
+typedef enum OMX_AUDIO_AMRDTXMODETYPE {
+    OMX_AUDIO_AMRDTXModeOff = 0,        /**< AMR Discontinuous Transmission Mode is disabled */
+    OMX_AUDIO_AMRDTXModeOnVAD1,         /**< AMR Discontinuous Transmission Mode using
+                                             Voice Activity Detector 1 (VAD1) is enabled */
+    OMX_AUDIO_AMRDTXModeOnVAD2,         /**< AMR Discontinuous Transmission Mode using
+                                             Voice Activity Detector 2 (VAD2) is enabled */
+    OMX_AUDIO_AMRDTXModeOnAuto,         /**< The codec will automatically select between
+                                             Off, VAD1 or VAD2 modes */
 
     OMX_AUDIO_AMRDTXasEFR,             /**< DTX as EFR instead of AMR standard (3GPP 26.101, frame type =8,9,10) */
 
-    OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_AMRDTXModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_AMRDTXModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF 
-} OMX_AUDIO_AMRDTXMODETYPE; 
- 
+    OMX_AUDIO_AMRDTXModeMax = 0x7FFFFFFF
+} OMX_AUDIO_AMRDTXMODETYPE;
+
 
 /** AMR params */
 typedef struct OMX_AUDIO_PARAM_AMRTYPE {
     OMX_U32 nSize;                          /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;               /**< OMX specification version information */
     OMX_U32 nPortIndex;                     /**< port that this structure applies to */
     OMX_U32 nChannels;                      /**< Number of channels */
     OMX_U32 nBitRate;                       /**< Bit rate read only field */
-    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */ 
+    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode; /**< AMR Band Mode enumeration */
     OMX_AUDIO_AMRDTXMODETYPE  eAMRDTXMode;  /**< AMR DTX Mode enumeration */
     OMX_AUDIO_AMRFRAMEFORMATTYPE eAMRFrameFormat; /**< AMR frame format enumeration */
 } OMX_AUDIO_PARAM_AMRTYPE;
 
 
 /** GSM_FR (ETSI 06.10, 3GPP 46.010) stream format parameters */
 typedef struct OMX_AUDIO_PARAM_GSMFRTYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
@@ -687,17 +687,17 @@ typedef struct OMX_AUDIO_PARAM_PDCHRTYPE
 /** CDMA Rate types */
 typedef enum OMX_AUDIO_CDMARATETYPE {
     OMX_AUDIO_CDMARateBlank = 0,          /**< CDMA encoded frame is blank */
     OMX_AUDIO_CDMARateFull,               /**< CDMA encoded frame in full rate */
     OMX_AUDIO_CDMARateHalf,               /**< CDMA encoded frame in half rate */
     OMX_AUDIO_CDMARateQuarter,            /**< CDMA encoded frame in quarter rate */
     OMX_AUDIO_CDMARateEighth,             /**< CDMA encoded frame in eighth rate (DTX)*/
     OMX_AUDIO_CDMARateErasure,            /**< CDMA erasure frame */
-    OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_CDMARateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_CDMARateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_CDMARateMax = 0x7FFFFFFF
 } OMX_AUDIO_CDMARATETYPE;
 
 
 /** QCELP8 (TIA/EIA-96, up to 8kbps coder) stream format parameters */
 typedef struct OMX_AUDIO_PARAM_QCELP8TYPE {
     OMX_U32 nSize;                /**< size of the structure in bytes */
@@ -759,545 +759,545 @@ typedef struct OMX_AUDIO_PARAM_SMVTYPE {
     OMX_U32 nMinBitRate;          /**< minmal rate for the encoder = 1,2,3,4, default = 1 ??*/
     OMX_U32 nMaxBitRate;          /**< maximal rate for the encoder = 1,2,3,4, default = 4 ??*/
     OMX_BOOL bHiPassFilter;       /**< Enable encoder's High Pass Filter ??*/
     OMX_BOOL bNoiseSuppressor;    /**< Enable encoder's noise suppressor pre-processing */
     OMX_BOOL bPostFilter;         /**< Enable decoder's post Filter ??*/
 } OMX_AUDIO_PARAM_SMVTYPE;
 
 
-/** MIDI Format 
+/** MIDI Format
  * @ingroup midi
  */
 typedef enum OMX_AUDIO_MIDIFORMATTYPE
 {
     OMX_AUDIO_MIDIFormatUnknown = 0, /**< MIDI Format unknown or don't care */
     OMX_AUDIO_MIDIFormatSMF0,        /**< Standard MIDI File Type 0 */
     OMX_AUDIO_MIDIFormatSMF1,        /**< Standard MIDI File Type 1 */
     OMX_AUDIO_MIDIFormatSMF2,        /**< Standard MIDI File Type 2 */
     OMX_AUDIO_MIDIFormatSPMIDI,      /**< SP-MIDI */
     OMX_AUDIO_MIDIFormatXMF0,        /**< eXtensible Music Format type 0 */
     OMX_AUDIO_MIDIFormatXMF1,        /**< eXtensible Music Format type 1 */
     OMX_AUDIO_MIDIFormatMobileXMF,   /**< Mobile XMF (eXtensible Music Format type 2) */
-    OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_MIDIFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_MIDIFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_MIDIFormatMax = 0x7FFFFFFF
 } OMX_AUDIO_MIDIFORMATTYPE;
 
 
-/** MIDI params 
+/** MIDI params
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_PARAM_MIDITYPE {
     OMX_U32 nSize;                 /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
     OMX_U32 nPortIndex;            /**< port that this structure applies to */
-    OMX_U32 nFileSize;             /**< size of the MIDI file in bytes, where the entire 
-                                        MIDI file passed in, otherwise if 0x0, the MIDI data 
-                                        is merged and streamed (instead of passed as an 
+    OMX_U32 nFileSize;             /**< size of the MIDI file in bytes, where the entire
+                                        MIDI file passed in, otherwise if 0x0, the MIDI data
+                                        is merged and streamed (instead of passed as an
                                         entire MIDI file) */
-    OMX_BU32 sMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic 
-                                        voices. A value of zero indicates that the default 
-                                        polyphony of the device is used  */                                    
-    OMX_BOOL bLoadDefaultSound;    /**< Whether to load default sound 
+    OMX_BU32 sMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic
+                                        voices. A value of zero indicates that the default
+                                        polyphony of the device is used  */
+    OMX_BOOL bLoadDefaultSound;    /**< Whether to load default sound
                                         bank at initialization */
-    OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */                                                                           
+    OMX_AUDIO_MIDIFORMATTYPE eMidiFormat; /**< Version of the MIDI file */
 } OMX_AUDIO_PARAM_MIDITYPE;
 
 
-/** Type of the MIDI sound bank 
+/** Type of the MIDI sound bank
  * @ingroup midi
  */
 typedef enum OMX_AUDIO_MIDISOUNDBANKTYPE {
     OMX_AUDIO_MIDISoundBankUnused = 0,           /**< unused/unknown soundbank type */
     OMX_AUDIO_MIDISoundBankDLS1,                 /**< DLS version 1 */
     OMX_AUDIO_MIDISoundBankDLS2,                 /**< DLS version 2 */
     OMX_AUDIO_MIDISoundBankMobileDLSBase,        /**< Mobile DLS, using the base functionality */
     OMX_AUDIO_MIDISoundBankMobileDLSPlusOptions, /**< Mobile DLS, using the specification-defined optional feature set */
-    OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_MIDISoundBankKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_MIDISoundBankVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_MIDISoundBankMax = 0x7FFFFFFF
 } OMX_AUDIO_MIDISOUNDBANKTYPE;
 
 
-/** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank 
+/** Bank Layout describes how bank MSB & LSB are used in the DLS instrument definitions sound bank
  * @ingroup midi
  */
 typedef enum OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE {
    OMX_AUDIO_MIDISoundBankLayoutUnused = 0,   /**< unused/unknown soundbank type */
    OMX_AUDIO_MIDISoundBankLayoutGM,           /**< GS layout (based on bank MSB 0x00) */
    OMX_AUDIO_MIDISoundBankLayoutGM2,          /**< General MIDI 2 layout (using MSB 0x78/0x79, LSB 0x00) */
    OMX_AUDIO_MIDISoundBankLayoutUser,         /**< Does not conform to any bank numbering standards */
-   OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_AUDIO_MIDISoundBankLayoutKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_AUDIO_MIDISoundBankLayoutVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_AUDIO_MIDISoundBankLayoutMax = 0x7FFFFFFF
 } OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE;
 
 
-/** MIDI params to load/unload user soundbank 
+/** MIDI params to load/unload user soundbank
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex;       /**< port that this structure applies to */
     OMX_U32 nDLSIndex;        /**< DLS file index to be loaded */
     OMX_U32 nDLSSize;         /**< Size in bytes */
     OMX_PTR pDLSData;         /**< Pointer to DLS file data */
     OMX_AUDIO_MIDISOUNDBANKTYPE eMidiSoundBank;   /**< Midi sound bank type enumeration */
     OMX_AUDIO_MIDISOUNDBANKLAYOUTTYPE eMidiSoundBankLayout; /**< Midi sound bank layout enumeration */
 } OMX_AUDIO_PARAM_MIDILOADUSERSOUNDTYPE;
 
 
-/** Structure for Live MIDI events and MIP messages. 
- * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.) 
+/** Structure for Live MIDI events and MIP messages.
+ * (MIP = Maximum Instantaneous Polyphony; part of the SP-MIDI standard.)
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex;       /**< Port that this structure applies to */
     OMX_U32 nMidiEventSize;   /**< Size of immediate MIDI events or MIP message in bytes  */
     OMX_U8 nMidiEvents[1];    /**< MIDI event array to be rendered immediately, or an
-                                   array for the MIP message buffer, where the size is 
+                                   array for the MIP message buffer, where the size is
                                    indicated by nMidiEventSize */
 } OMX_AUDIO_CONFIG_MIDIIMMEDIATEEVENTTYPE;
 
 
-/** MIDI sound bank/ program pair in a given channel 
+/** MIDI sound bank/ program pair in a given channel
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPortIndex;         /**< Port that this structure applies to */
     OMX_U32 nChannel;           /**< Valid channel values range from 1 to 16 */
     OMX_U16 nIDProgram;         /**< Valid program ID range is 1 to 128 */
     OMX_U16 nIDSoundBank;       /**< Sound bank ID */
-    OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks 
+    OMX_U32 nUserSoundBankIndex;/**< User soundbank index, easier to access soundbanks
                                      by index if multiple banks are present */
 } OMX_AUDIO_CONFIG_MIDISOUNDBANKPROGRAMTYPE;
 
 
-/** MIDI control 
+/** MIDI control
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_CONFIG_MIDICONTROLTYPE {
     OMX_U32 nSize;                /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
     OMX_U32 nPortIndex;           /**< port that this structure applies to */
-    OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10 
+    OMX_BS32 sPitchTransposition; /**< Pitch transposition in semitones, stored as Q22.10
                                        format based on JAVA MMAPI (JSR-135) requirement */
     OMX_BU32 sPlayBackRate;       /**< Relative playback rate, stored as Q14.17 fixed-point
                                        number based on JSR-135 requirement */
-    OMX_BU32 sTempo ;             /**< Tempo in beats per minute (BPM), stored as Q22.10 
+    OMX_BU32 sTempo ;             /**< Tempo in beats per minute (BPM), stored as Q22.10
                                        fixed-point number based on JSR-135 requirement */
-    OMX_U32 nMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic 
-                                       voices. A value of zero indicates that the default 
+    OMX_U32 nMaxPolyphony;        /**< Specifies the maximum simultaneous polyphonic
+                                       voices. A value of zero indicates that the default
                                        polyphony of the device is used  */
     OMX_U32 nNumRepeat;           /**< Number of times to repeat playback */
-    OMX_U32 nStopTime;            /**< Time in milliseconds to indicate when playback 
+    OMX_U32 nStopTime;            /**< Time in milliseconds to indicate when playback
                                        will stop automatically.  Set to zero if not used */
     OMX_U16 nChannelMuteMask;     /**< 16 bit mask for channel mute status */
     OMX_U16 nChannelSoloMask;     /**< 16 bit mask for channel solo status */
     OMX_U32 nTrack0031MuteMask;   /**< 32 bit mask for track mute status. Note: This is for tracks 0-31 */
     OMX_U32 nTrack3263MuteMask;   /**< 32 bit mask for track mute status. Note: This is for tracks 32-63 */
     OMX_U32 nTrack0031SoloMask;   /**< 32 bit mask for track solo status. Note: This is for tracks 0-31 */
     OMX_U32 nTrack3263SoloMask;   /**< 32 bit mask for track solo status. Note: This is for tracks 32-63 */
 
 } OMX_AUDIO_CONFIG_MIDICONTROLTYPE;
 
 
-/** MIDI Playback States 
+/** MIDI Playback States
  * @ingroup midi
  */
 typedef enum OMX_AUDIO_MIDIPLAYBACKSTATETYPE {
-  OMX_AUDIO_MIDIPlayBackStateUnknown = 0,      /**< Unknown state or state does not map to 
+  OMX_AUDIO_MIDIPlayBackStateUnknown = 0,      /**< Unknown state or state does not map to
   													other defined states */
-  OMX_AUDIO_MIDIPlayBackStateClosedEngaged,    /**< No MIDI resource is currently open. 
-                                                    The MIDI engine is currently processing 
+  OMX_AUDIO_MIDIPlayBackStateClosedEngaged,    /**< No MIDI resource is currently open.
+                                                    The MIDI engine is currently processing
                                                     MIDI events. */
-  OMX_AUDIO_MIDIPlayBackStateParsing,          /**< A MIDI resource is open and is being 
-                                                    primed. The MIDI engine is currently 
+  OMX_AUDIO_MIDIPlayBackStateParsing,          /**< A MIDI resource is open and is being
+                                                    primed. The MIDI engine is currently
                                                     processing MIDI events. */
-  OMX_AUDIO_MIDIPlayBackStateOpenEngaged,      /**< A MIDI resource is open and primed but 
+  OMX_AUDIO_MIDIPlayBackStateOpenEngaged,      /**< A MIDI resource is open and primed but
                                                     not playing. The MIDI engine is currently
                                                     processing MIDI events. The transition to
-                                                    this state is only possible from the 
+                                                    this state is only possible from the
                                                     OMX_AUDIO_MIDIPlayBackStatePlaying state,
                                                     when the 'playback head' reaches the end
                                                     of media data or the playback stops due
                                                     to stop time set.*/
   OMX_AUDIO_MIDIPlayBackStatePlaying,          /**< A MIDI resource is open and currently
                                                     playing. The MIDI engine is currently
                                                     processing MIDI events.*/
   OMX_AUDIO_MIDIPlayBackStatePlayingPartially, /**< Best-effort playback due to SP-MIDI/DLS
                                                     resource constraints */
   OMX_AUDIO_MIDIPlayBackStatePlayingSilently,  /**< Due to system resource constraints and
                                                     SP-MIDI content constraints, there is
                                                     no audible MIDI content during playback
                                                     currently. The situation may change if
                                                     resources are freed later.*/
-  OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_AUDIO_MIDIPlayBackStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_AUDIO_MIDIPlayBackStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_AUDIO_MIDIPlayBackStateMax = 0x7FFFFFFF
 } OMX_AUDIO_MIDIPLAYBACKSTATETYPE;
 
 
-/** MIDI status 
+/** MIDI status
  * @ingroup midi
  */
 typedef struct OMX_AUDIO_CONFIG_MIDISTATUSTYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPortIndex;         /**< port that this structure applies to */
-    OMX_U16 nNumTracks;         /**< Number of MIDI tracks in the file, read only field. 
-                                     NOTE: May not return a meaningful value until the entire 
+    OMX_U16 nNumTracks;         /**< Number of MIDI tracks in the file, read only field.
+                                     NOTE: May not return a meaningful value until the entire
                                      file is parsed and buffered.  */
-    OMX_U32 nDuration;          /**< The length of the currently open MIDI resource 
-                                     in milliseconds. NOTE: May not return a meaningful value 
-                                     until the entire file is parsed and buffered.  */  
-    OMX_U32 nPosition;          /**< Current Position of the MIDI resource being played 
+    OMX_U32 nDuration;          /**< The length of the currently open MIDI resource
+                                     in milliseconds. NOTE: May not return a meaningful value
+                                     until the entire file is parsed and buffered.  */
+    OMX_U32 nPosition;          /**< Current Position of the MIDI resource being played
                                      in milliseconds */
-    OMX_BOOL bVibra;            /**< Does Vibra track exist? NOTE: May not return a meaningful 
+    OMX_BOOL bVibra;            /**< Does Vibra track exist? NOTE: May not return a meaningful
                                      value until the entire file is parsed and buffered. */
-    OMX_U32 nNumMetaEvents;     /**< Total number of MIDI Meta Events in the currently 
-                                     open MIDI resource. NOTE: May not return a meaningful value 
+    OMX_U32 nNumMetaEvents;     /**< Total number of MIDI Meta Events in the currently
+                                     open MIDI resource. NOTE: May not return a meaningful value
                                      until the entire file is parsed and buffered.  */
-    OMX_U32 nNumActiveVoices;   /**< Number of active voices in the currently playing 
-                                     MIDI resource. NOTE: May not return a meaningful value until 
+    OMX_U32 nNumActiveVoices;   /**< Number of active voices in the currently playing
+                                     MIDI resource. NOTE: May not return a meaningful value until
                                      the entire file is parsed and buffered. */
     OMX_AUDIO_MIDIPLAYBACKSTATETYPE eMIDIPlayBackState;  /**< MIDI playback state enumeration, read only field */
 } OMX_AUDIO_CONFIG_MIDISTATUSTYPE;
 
 
 /** MIDI Meta Event structure one per Meta Event.
- *  MIDI Meta Events are like audio metadata, except that they are interspersed 
- *  with the MIDI content throughout the file and are not localized in the header. 
- *  As such, it is necessary to retrieve information about these Meta Events from 
- *  the engine, as it encounters these Meta Events within the MIDI content. 
- *  For example, SMF files can have up to 14 types of MIDI Meta Events (copyright, 
- *  author, default tempo, etc.) scattered throughout the file. 
+ *  MIDI Meta Events are like audio metadata, except that they are interspersed
+ *  with the MIDI content throughout the file and are not localized in the header.
+ *  As such, it is necessary to retrieve information about these Meta Events from
+ *  the engine, as it encounters these Meta Events within the MIDI content.
+ *  For example, SMF files can have up to 14 types of MIDI Meta Events (copyright,
+ *  author, default tempo, etc.) scattered throughout the file.
  *  @ingroup midi
  */
-typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{ 
-    OMX_U32 nSize;            /**< size of the structure in bytes */ 
-    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;       /**< port that this structure applies to */ 
-    OMX_U32 nIndex;           /**< Index of Meta Event */ 
-    OMX_U8 nMetaEventType;    /**< Meta Event Type, 7bits (i.e. 0 - 127) */ 
-    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */ 
+typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE{
+    OMX_U32 nSize;            /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
+    OMX_U32 nPortIndex;       /**< port that this structure applies to */
+    OMX_U32 nIndex;           /**< Index of Meta Event */
+    OMX_U8 nMetaEventType;    /**< Meta Event Type, 7bits (i.e. 0 - 127) */
+    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */
     OMX_U32 nTrack;           /**< track number for the meta event */
     OMX_U32 nPosition;        /**< Position of the meta-event in milliseconds */
-} OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE; 
+} OMX_AUDIO_CONFIG_MIDIMETAEVENTTYPE;
 
 
-/** MIDI Meta Event Data structure - one per Meta Event. 
+/** MIDI Meta Event Data structure - one per Meta Event.
  * @ingroup midi
- */ 
-typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{ 
-    OMX_U32 nSize;            /**< size of the structure in bytes */ 
-    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;       /**< port that this structure applies to */ 
-    OMX_U32 nIndex;           /**< Index of Meta Event */ 
-    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */ 
-    OMX_U8 nData[1];          /**< array of one or more bytes of meta data 
-                                   as indicated by the nMetaEventSize field */ 
-} OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE; 
+ */
+typedef struct OMX_AUDIO_CONFIG_MIDIMETAEVENTDATATYPE{
+    OMX_U32 nSize;            /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
+    OMX_U32 nPortIndex;       /**< port that this structure applies to */
+    OMX_U32 nIndex;           /**< Index of Meta Event */
+    OMX_U32 nMetaEventSize;   /**< size of the Meta Event in bytes */
+    OMX_U8 nData[1];          /**< array of one or more bytes of meta data
+                                   as indicated by the nMetaEventSize field */
+} OMX_AUDIO_CONFIG__MIDIMETAEVENTDATATYPE;
 
 
 /** Audio Volume adjustment for a port */
 typedef struct OMX_AUDIO_CONFIG_VOLUMETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U32 nPortIndex;         /**< Port index indicating which port to 
-                                     set.  Select the input port to set 
-                                     just that port's volume.  Select the 
-                                     output port to adjust the master 
+    OMX_U32 nPortIndex;         /**< Port index indicating which port to
+                                     set.  Select the input port to set
+                                     just that port's volume.  Select the
+                                     output port to adjust the master
                                      volume. */
-    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100) 
+    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100)
                                      or logarithmic scale (mB) */
     OMX_BS32 sVolume;           /**< Volume linear setting in the 0..100 range, OR
                                      Volume logarithmic setting for this port.  The values
                                      for volume are in mB (millibels = 1/100 dB) relative
-                                     to a gain of 1 (e.g. the output is the same as the 
-                                     input level).  Values are in mB from nMax 
+                                     to a gain of 1 (e.g. the output is the same as the
+                                     input level).  Values are in mB from nMax
                                      (maximum volume) to nMin mB (typically negative).
                                      Since the volume is "voltage"
                                      and not a "power", it takes a setting of
                                      -600 mB to decrease the volume by 1/2.  If
-                                     a component cannot accurately set the 
+                                     a component cannot accurately set the
                                      volume to the requested value, it must
                                      set the volume to the closest value BELOW
                                      the requested value.  When getting the
                                      volume setting, the current actual volume
                                      must be returned. */
 } OMX_AUDIO_CONFIG_VOLUMETYPE;
 
 
 /** Audio Volume adjustment for a channel */
 typedef struct OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U32 nPortIndex;         /**< Port index indicating which port to 
-                                     set.  Select the input port to set 
-                                     just that port's volume.  Select the 
-                                     output port to adjust the master 
+    OMX_U32 nPortIndex;         /**< Port index indicating which port to
+                                     set.  Select the input port to set
+                                     just that port's volume.  Select the
+                                     output port to adjust the master
                                      volume. */
-    OMX_U32 nChannel;           /**< channel to select from 0 to N-1, 
+    OMX_U32 nChannel;           /**< channel to select from 0 to N-1,
                                      using OMX_ALL to apply volume settings
                                      to all channels */
-    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100) or 
+    OMX_BOOL bLinear;           /**< Is the volume to be set in linear (0.100) or
                                      logarithmic scale (mB) */
     OMX_BS32 sVolume;           /**< Volume linear setting in the 0..100 range, OR
-                                     Volume logarithmic setting for this port.  
-                                     The values for volume are in mB 
+                                     Volume logarithmic setting for this port.
+                                     The values for volume are in mB
                                      (millibels = 1/100 dB) relative to a gain
-                                     of 1 (e.g. the output is the same as the 
-                                     input level).  Values are in mB from nMax 
-                                     (maximum volume) to nMin mB (typically negative).  
+                                     of 1 (e.g. the output is the same as the
+                                     input level).  Values are in mB from nMax
+                                     (maximum volume) to nMin mB (typically negative).
                                      Since the volume is "voltage"
                                      and not a "power", it takes a setting of
                                      -600 mB to decrease the volume by 1/2.  If
-                                     a component cannot accurately set the 
+                                     a component cannot accurately set the
                                      volume to the requested value, it must
                                      set the volume to the closest value BELOW
                                      the requested value.  When getting the
                                      volume setting, the current actual volume
                                      must be returned. */
     OMX_BOOL bIsMIDI;           /**< TRUE if nChannel refers to a MIDI channel,
                                      FALSE otherwise */
 } OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE;
 
 
 /** Audio balance setting */
 typedef struct OMX_AUDIO_CONFIG_BALANCETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U32 nPortIndex;         /**< Port index indicating which port to 
-                                     set.  Select the input port to set 
-                                     just that port's balance.  Select the 
-                                     output port to adjust the master 
+    OMX_U32 nPortIndex;         /**< Port index indicating which port to
+                                     set.  Select the input port to set
+                                     just that port's balance.  Select the
+                                     output port to adjust the master
                                      balance. */
-    OMX_S32 nBalance;           /**< balance setting for this port 
+    OMX_S32 nBalance;           /**< balance setting for this port
                                      (-100 to 100, where -100 indicates
                                      all left, and no right */
 } OMX_AUDIO_CONFIG_BALANCETYPE;
 
 
 /** Audio Port mute */
 typedef struct OMX_AUDIO_CONFIG_MUTETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U32 nPortIndex;         /**< Port index indicating which port to 
-                                     set.  Select the input port to set 
-                                     just that port's mute.  Select the 
-                                     output port to adjust the master 
+    OMX_U32 nPortIndex;         /**< Port index indicating which port to
+                                     set.  Select the input port to set
+                                     just that port's mute.  Select the
+                                     output port to adjust the master
                                      mute. */
     OMX_BOOL bMute;             /**< Mute setting for this port */
 } OMX_AUDIO_CONFIG_MUTETYPE;
 
 
 /** Audio Channel mute */
 typedef struct OMX_AUDIO_CONFIG_CHANNELMUTETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPortIndex;         /**< port that this structure applies to */
-    OMX_U32 nChannel;           /**< channel to select from 0 to N-1, 
+    OMX_U32 nChannel;           /**< channel to select from 0 to N-1,
                                      using OMX_ALL to apply mute settings
                                      to all channels */
     OMX_BOOL bMute;             /**< Mute setting for this channel */
     OMX_BOOL bIsMIDI;           /**< TRUE if nChannel refers to a MIDI channel,
-                                     FALSE otherwise */ 
+                                     FALSE otherwise */
 } OMX_AUDIO_CONFIG_CHANNELMUTETYPE;
 
 
 
-/** Enable / Disable for loudness control, which boosts bass and to a 
+/** Enable / Disable for loudness control, which boosts bass and to a
  *  smaller extent high end frequencies to compensate for hearing
  *  ability at the extreme ends of the audio spectrum
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_LOUDNESSTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bLoudness;        /**< Enable/disable for loudness */
 } OMX_AUDIO_CONFIG_LOUDNESSTYPE;
 
 
 /** Enable / Disable for bass, which controls low frequencies
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_BASSTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bEnable;          /**< Enable/disable for bass control */
-    OMX_S32 nBass;             /**< bass setting for the port, as a 
-                                    continuous value from -100 to 100  
+    OMX_S32 nBass;             /**< bass setting for the port, as a
+                                    continuous value from -100 to 100
                                     (0 means no change in bass level)*/
 } OMX_AUDIO_CONFIG_BASSTYPE;
 
 
 /** Enable / Disable for treble, which controls high frequencies tones
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_TREBLETYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bEnable;          /**< Enable/disable for treble control */
     OMX_S32  nTreble;          /**< treble setting for the port, as a
-                                    continuous value from -100 to 100  
+                                    continuous value from -100 to 100
                                     (0 means no change in treble level) */
 } OMX_AUDIO_CONFIG_TREBLETYPE;
 
 
-/** An equalizer is typically used for two reasons: to compensate for an 
- *  sub-optimal frequency response of a system to make it sound more natural 
+/** An equalizer is typically used for two reasons: to compensate for an
+ *  sub-optimal frequency response of a system to make it sound more natural
  *  or to create intentionally some unnatural coloring to the sound to create
  *  an effect.
  *  @ingroup effects
  */
 typedef struct OMX_AUDIO_CONFIG_EQUALIZERTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bEnable;          /**< Enable/disable for equalizer */
-    OMX_BU32 sBandIndex;       /**< Band number to be set.  Upper Limit is 
+    OMX_BU32 sBandIndex;       /**< Band number to be set.  Upper Limit is
                                     N-1, where N is the number of bands, lower limit is 0 */
     OMX_BU32 sCenterFreq;      /**< Center frequecies in Hz.  This is a
-                                    read only element and is used to determine 
-                                    the lower, center and upper frequency of 
+                                    read only element and is used to determine
+                                    the lower, center and upper frequency of
                                     this band.  */
     OMX_BS32 sBandLevel;       /**< band level in millibels */
 } OMX_AUDIO_CONFIG_EQUALIZERTYPE;
 
 
-/** Stereo widening mode type 
+/** Stereo widening mode type
  * @ingroup effects
- */ 
+ */
 typedef enum OMX_AUDIO_STEREOWIDENINGTYPE {
     OMX_AUDIO_StereoWideningHeadphones,    /**< Stereo widening for loudspeakers */
     OMX_AUDIO_StereoWideningLoudspeakers,  /**< Stereo widening for closely spaced loudspeakers */
-    OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_AUDIO_StereoWideningKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_AUDIO_StereoWideningVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_AUDIO_StereoWideningMax = 0x7FFFFFFF
 } OMX_AUDIO_STEREOWIDENINGTYPE;
 
 
 /** Control for stereo widening, which is a special 2-channel
- *  case of the audio virtualizer effect. For example, for 5.1-channel 
- *  output, it translates to virtual surround sound. 
+ *  case of the audio virtualizer effect. For example, for 5.1-channel
+ *  output, it translates to virtual surround sound.
  * @ingroup effects
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bEnable;          /**< Enable/disable for stereo widening control */
     OMX_AUDIO_STEREOWIDENINGTYPE eWideningType; /**< Stereo widening algorithm type */
     OMX_U32  nStereoWidening;  /**< stereo widening setting for the port,
                                     as a continuous value from 0 to 100  */
 } OMX_AUDIO_CONFIG_STEREOWIDENINGTYPE;
 
 
 /** The chorus effect (or ``choralizer'') is any signal processor which makes
- *  one sound source (such as a voice) sound like many such sources singing 
- *  (or playing) in unison. Since performance in unison is never exact, chorus 
- *  effects simulate this by making independently modified copies of the input 
- *  signal. Modifications may include (1) delay, (2) frequency shift, and 
+ *  one sound source (such as a voice) sound like many such sources singing
+ *  (or playing) in unison. Since performance in unison is never exact, chorus
+ *  effects simulate this by making independently modified copies of the input
+ *  signal. Modifications may include (1) delay, (2) frequency shift, and
  *  (3) amplitude modulation.
  * @ingroup effects
  */
 typedef struct OMX_AUDIO_CONFIG_CHORUSTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bEnable;          /**< Enable/disable for chorus */
     OMX_BU32 sDelay;           /**< average delay in milliseconds */
     OMX_BU32 sModulationRate;  /**< rate of modulation in millihertz */
-    OMX_U32 nModulationDepth;  /**< depth of modulation as a percentage of 
+    OMX_U32 nModulationDepth;  /**< depth of modulation as a percentage of
                                     delay (i.e. 0 to 100) */
     OMX_BU32 nFeedback;        /**< Feedback from chorus output to input in percentage */
 } OMX_AUDIO_CONFIG_CHORUSTYPE;
 
 
-/** Reverberation is part of the reflected sound that follows the early 
- *  reflections. In a typical room, this consists of a dense succession of 
- *  echoes whose energy decays exponentially. The reverberation effect structure 
- *  as defined here includes both (early) reflections as well as (late) reverberations. 
+/** Reverberation is part of the reflected sound that follows the early
+ *  reflections. In a typical room, this consists of a dense succession of
+ *  echoes whose energy decays exponentially. The reverberation effect structure
+ *  as defined here includes both (early) reflections as well as (late) reverberations.
  * @ingroup effects
  */
 typedef struct OMX_AUDIO_CONFIG_REVERBERATIONTYPE {
     OMX_U32 nSize;                /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
     OMX_U32 nPortIndex;           /**< port that this structure applies to */
     OMX_BOOL bEnable;             /**< Enable/disable for reverberation control */
-    OMX_BS32 sRoomLevel;          /**< Intensity level for the whole room effect 
-                                       (i.e. both early reflections and late 
+    OMX_BS32 sRoomLevel;          /**< Intensity level for the whole room effect
+                                       (i.e. both early reflections and late
                                        reverberation) in millibels */
     OMX_BS32 sRoomHighFreqLevel;  /**< Attenuation at high frequencies
                                        relative to the intensity at low
                                        frequencies in millibels */
     OMX_BS32 sReflectionsLevel;   /**< Intensity level of early reflections
                                        (relative to room value), in millibels */
-    OMX_BU32 sReflectionsDelay;   /**< Delay time of the first reflection relative 
+    OMX_BU32 sReflectionsDelay;   /**< Delay time of the first reflection relative
                                        to the direct path, in milliseconds */
     OMX_BS32 sReverbLevel;        /**< Intensity level of late reverberation
                                        relative to room level, in millibels */
-    OMX_BU32 sReverbDelay;        /**< Time delay from the first early reflection 
-                                       to the beginning of the late reverberation 
+    OMX_BU32 sReverbDelay;        /**< Time delay from the first early reflection
+                                       to the beginning of the late reverberation
                                        section, in milliseconds */
     OMX_BU32 sDecayTime;          /**< Late reverberation decay time at low
                                        frequencies, in milliseconds */
-    OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative 
+    OMX_BU32 nDecayHighFreqRatio; /**< Ratio of high frequency decay time relative
                                        to low frequency decay time in percent  */
     OMX_U32 nDensity;             /**< Modal density in the late reverberation decay,
                                        in percent (i.e. 0 - 100) */
     OMX_U32 nDiffusion;           /**< Echo density in the late reverberation decay,
                                        in percent (i.e. 0 - 100) */
-    OMX_BU32 sReferenceHighFreq;  /**< Reference high frequency in Hertz. This is 
-                                       the frequency used as the reference for all 
+    OMX_BU32 sReferenceHighFreq;  /**< Reference high frequency in Hertz. This is
+                                       the frequency used as the reference for all
                                        the high-frequency settings above */
 
 } OMX_AUDIO_CONFIG_REVERBERATIONTYPE;
 
 
-/** Possible settings for the Echo Cancelation structure to use 
+/** Possible settings for the Echo Cancelation structure to use
  * @ingroup effects
  */
 typedef enum OMX_AUDIO_ECHOCANTYPE {
    OMX_AUDIO_EchoCanOff = 0,    /**< Echo Cancellation is disabled */
-   OMX_AUDIO_EchoCanNormal,     /**< Echo Cancellation normal operation - 
+   OMX_AUDIO_EchoCanNormal,     /**< Echo Cancellation normal operation -
                                      echo from plastics and face */
-   OMX_AUDIO_EchoCanHFree,      /**< Echo Cancellation optimized for 
+   OMX_AUDIO_EchoCanHFree,      /**< Echo Cancellation optimized for
                                      Hands Free operation */
-   OMX_AUDIO_EchoCanCarKit,    /**< Echo Cancellation optimized for 
+   OMX_AUDIO_EchoCanCarKit,    /**< Echo Cancellation optimized for
                                      Car Kit (longer echo) */
-   OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_AUDIO_EchoCanKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_AUDIO_EchoCanVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_AUDIO_EchoCanMax = 0x7FFFFFFF
 } OMX_AUDIO_ECHOCANTYPE;
 
 
 /** Enable / Disable for echo cancelation, which removes undesired echo's
  *  from the audio
  * @ingroup effects
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_AUDIO_ECHOCANTYPE eEchoCancelation; /**< Echo cancelation settings */
 } OMX_AUDIO_CONFIG_ECHOCANCELATIONTYPE;
 
 
 /** Enable / Disable for noise reduction, which undesired noise from
  * the audio
  * @ingroup effects
- */ 
+ */
 typedef struct OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
     OMX_U32 nPortIndex;        /**< port that this structure applies to */
     OMX_BOOL bNoiseReduction;  /**< Enable/disable for noise reduction */
 } OMX_AUDIO_CONFIG_NOISEREDUCTIONTYPE;
 
 /** @} */
--- a/media/openmax_il/il112/OMX_Component.h
+++ b/media/openmax_il/il112/OMX_Component.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_Component.h - OpenMax IL version 1.1.2
  *  The OMX_Component header file contains the definitions used to define
  *  the public interface of a component.  This header file is intended to
  *  be used by both the application and the component.
  */
@@ -33,31 +33,31 @@
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 
 /* Each OMX header must include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 
 #include <OMX_Audio.h>
 #include <OMX_Video.h>
 #include <OMX_Image.h>
 #include <OMX_Other.h>
 
 /** @ingroup comp */
-typedef enum OMX_PORTDOMAINTYPE { 
-    OMX_PortDomainAudio, 
-    OMX_PortDomainVideo, 
-    OMX_PortDomainImage, 
+typedef enum OMX_PORTDOMAINTYPE {
+    OMX_PortDomainAudio,
+    OMX_PortDomainVideo,
+    OMX_PortDomainImage,
     OMX_PortDomainOther,
-    OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_PortDomainMax = 0x7ffffff
 } OMX_PORTDOMAINTYPE;
 
 /** @ingroup comp */
 typedef struct OMX_PARAM_PORTDEFINITIONTYPE {
     OMX_U32 nSize;                 /**< Size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
@@ -66,74 +66,74 @@ typedef struct OMX_PARAM_PORTDEFINITIONT
     OMX_U32 nBufferCountActual;    /**< The actual number of buffers allocated on this port */
     OMX_U32 nBufferCountMin;       /**< The minimum number of buffers this port requires */
     OMX_U32 nBufferSize;           /**< Size, in bytes, for buffers to be used for this channel */
     OMX_BOOL bEnabled;             /**< Ports default to enabled and are enabled/disabled by
                                         OMX_CommandPortEnable/OMX_CommandPortDisable.
                                         When disabled a port is unpopulated. A disabled port
                                         is not populated with buffers on a transition to IDLE. */
     OMX_BOOL bPopulated;           /**< Port is populated with all of its buffers as indicated by
-                                        nBufferCountActual. A disabled port is always unpopulated. 
+                                        nBufferCountActual. A disabled port is always unpopulated.
                                         An enabled port is populated on a transition to OMX_StateIdle
                                         and unpopulated on a transition to loaded. */
     OMX_PORTDOMAINTYPE eDomain;    /**< Domain of the port. Determines the contents of metadata below. */
     union {
         OMX_AUDIO_PORTDEFINITIONTYPE audio;
         OMX_VIDEO_PORTDEFINITIONTYPE video;
         OMX_IMAGE_PORTDEFINITIONTYPE image;
         OMX_OTHER_PORTDEFINITIONTYPE other;
     } format;
     OMX_BOOL bBuffersContiguous;
     OMX_U32 nBufferAlignment;
 } OMX_PARAM_PORTDEFINITIONTYPE;
 
 /** @ingroup comp */
-typedef struct OMX_PARAM_U32TYPE { 
-    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */ 
-    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */ 
-    OMX_U32 nPortIndex;               /**< port that this structure applies to */ 
+typedef struct OMX_PARAM_U32TYPE {
+    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */
+    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
+    OMX_U32 nPortIndex;               /**< port that this structure applies to */
     OMX_U32 nU32;                     /**< U32 value */
 } OMX_PARAM_U32TYPE;
 
 /** @ingroup rpm */
 typedef enum OMX_SUSPENSIONPOLICYTYPE {
     OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */
-    OMX_SuspensionEnabled,  /**< Suspension allowed */   
-    OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_SuspensionEnabled,  /**< Suspension allowed */
+    OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_SuspensionPolicyMax = 0x7fffffff
 } OMX_SUSPENSIONPOLICYTYPE;
 
 /** @ingroup rpm */
 typedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE {
-    OMX_U32 nSize;                  
-    OMX_VERSIONTYPE nVersion;        
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
     OMX_SUSPENSIONPOLICYTYPE ePolicy;
 } OMX_PARAM_SUSPENSIONPOLICYTYPE;
 
 /** @ingroup rpm */
 typedef enum OMX_SUSPENSIONTYPE {
     OMX_NotSuspended, /**< component is not suspended */
     OMX_Suspended,    /**< component is suspended */
-    OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_SuspendMax = 0x7FFFFFFF
 } OMX_SUSPENSIONTYPE;
 
 /** @ingroup rpm */
 typedef struct OMX_PARAM_SUSPENSIONTYPE {
-    OMX_U32 nSize;                  
-    OMX_VERSIONTYPE nVersion;       
-    OMX_SUSPENSIONTYPE eType;             
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_SUSPENSIONTYPE eType;
 } OMX_PARAM_SUSPENSIONTYPE ;
 
 typedef struct OMX_CONFIG_BOOLEANTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
-    OMX_BOOL bEnabled;    
+    OMX_BOOL bEnabled;
 } OMX_CONFIG_BOOLEANTYPE;
 
 /* Parameter specifying the content uri to use. */
 /** @ingroup cp */
 typedef struct OMX_PARAM_CONTENTURITYPE
 {
     OMX_U32 nSize;                      /**< size of the structure in bytes, including
                                              actual URI name */
@@ -149,34 +149,34 @@ typedef struct OMX_PARAM_CONTENTPIPETYPE
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_HANDLETYPE hPipe;       /**< The pipe handle*/
 } OMX_PARAM_CONTENTPIPETYPE;
 
 /** @ingroup rpm */
 typedef struct OMX_RESOURCECONCEALMENTTYPE {
     OMX_U32 nSize;             /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
-    OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 
-                                            methods (like degrading algorithm quality to 
-                                            lower resource consumption or functional bypass) 
+    OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment
+                                            methods (like degrading algorithm quality to
+                                            lower resource consumption or functional bypass)
                                             on a component as a resolution to resource conflicts. */
 } OMX_RESOURCECONCEALMENTTYPE;
 
 
 /** @ingroup metadata */
 typedef enum OMX_METADATACHARSETTYPE {
     OMX_MetadataCharsetUnknown = 0,
     OMX_MetadataCharsetASCII,
     OMX_MetadataCharsetBinary,
     OMX_MetadataCharsetCodePage1252,
     OMX_MetadataCharsetUTF8,
     OMX_MetadataCharsetJavaConformantUTF8,
     OMX_MetadataCharsetUTF7,
     OMX_MetadataCharsetImapUTF7,
-    OMX_MetadataCharsetUTF16LE, 
+    OMX_MetadataCharsetUTF16LE,
     OMX_MetadataCharsetUTF16BE,
     OMX_MetadataCharsetGB12345,
     OMX_MetadataCharsetHZGB2312,
     OMX_MetadataCharsetGB2312,
     OMX_MetadataCharsetGB18030,
     OMX_MetadataCharsetGBK,
     OMX_MetadataCharsetBig5,
     OMX_MetadataCharsetISO88591,
@@ -192,40 +192,40 @@ typedef enum OMX_METADATACHARSETTYPE {
     OMX_MetadataCharsetISO885913,
     OMX_MetadataCharsetISO885914,
     OMX_MetadataCharsetISO885915,
     OMX_MetadataCharsetShiftJIS,
     OMX_MetadataCharsetISO2022JP,
     OMX_MetadataCharsetISO2022JP1,
     OMX_MetadataCharsetISOEUCJP,
     OMX_MetadataCharsetSMS7Bit,
-    OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_MetadataCharsetTypeMax= 0x7FFFFFFF
 } OMX_METADATACHARSETTYPE;
 
 /** @ingroup metadata */
 typedef enum OMX_METADATASCOPETYPE
 {
     OMX_MetadataScopeAllLevels,
     OMX_MetadataScopeTopLevel,
     OMX_MetadataScopePortLevel,
     OMX_MetadataScopeNodeLevel,
-    OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_MetadataScopeTypeMax = 0x7fffffff
 } OMX_METADATASCOPETYPE;
 
 /** @ingroup metadata */
 typedef enum OMX_METADATASEARCHMODETYPE
 {
     OMX_MetadataSearchValueSizeByIndex,
     OMX_MetadataSearchItemByIndex,
     OMX_MetadataSearchNextItemByKey,
-    OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_MetadataSearchTypeMax = 0x7fffffff
 } OMX_METADATASEARCHMODETYPE;
 /** @ingroup metadata */
 typedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE
 {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
@@ -236,17 +236,17 @@ typedef struct OMX_CONFIG_METADATAITEMCO
 
 /** @ingroup metadata */
 typedef struct OMX_CONFIG_METADATAITEMTYPE
 {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_METADATASCOPETYPE eScopeMode;
     OMX_U32 nScopeSpecifier;
-    OMX_U32 nMetadataItemIndex;  
+    OMX_U32 nMetadataItemIndex;
     OMX_METADATASEARCHMODETYPE eSearchMode;
     OMX_METADATACHARSETTYPE eKeyCharset;
     OMX_U8 nKeySizeUsed;
     OMX_U8 nKey[128];
     OMX_METADATACHARSETTYPE eValueCharset;
     OMX_STRING sLanguageCountry;
     OMX_U32 nValueMaxSize;
     OMX_U32 nValueSizeUsed;
@@ -265,193 +265,193 @@ typedef struct OMX_CONFIG_CONTAINERNODEC
 
 /** @ingroup metadata */
 typedef struct OMX_CONFIG_CONTAINERNODEIDTYPE
 {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_BOOL bAllKeys;
     OMX_U32 nParentNodeID;
-    OMX_U32 nNodeIndex; 
-    OMX_U32 nNodeID; 
+    OMX_U32 nNodeIndex;
+    OMX_U32 nNodeID;
     OMX_STRING cNodeName;
     OMX_BOOL bIsLeafType;
 } OMX_CONFIG_CONTAINERNODEIDTYPE;
 
 /** @ingroup metadata */
-typedef struct OMX_PARAM_METADATAFILTERTYPE 
-{ 
-    OMX_U32 nSize; 
-    OMX_VERSIONTYPE nVersion; 
-    OMX_BOOL bAllKeys;	/* if true then this structure refers to all keys and 
+typedef struct OMX_PARAM_METADATAFILTERTYPE
+{
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_BOOL bAllKeys;	/* if true then this structure refers to all keys and
                          * the three key fields below are ignored */
     OMX_METADATACHARSETTYPE eKeyCharset;
-    OMX_U32 nKeySizeUsed; 
-    OMX_U8   nKey [128]; 
+    OMX_U32 nKeySizeUsed;
+    OMX_U8   nKey [128];
     OMX_U32 nLanguageCountrySizeUsed;
     OMX_U8 nLanguageCountry[128];
-    OMX_BOOL bEnabled;	/* if true then key is part of filter (e.g. 
+    OMX_BOOL bEnabled;	/* if true then key is part of filter (e.g.
                          * retained for query later). If false then
                          * key is not part of filter */
-} OMX_PARAM_METADATAFILTERTYPE; 
+} OMX_PARAM_METADATAFILTERTYPE;
 
-/** The OMX_HANDLETYPE structure defines the component handle.  The component 
+/** The OMX_HANDLETYPE structure defines the component handle.  The component
  *  handle is used to access all of the component's public methods and also
  *  contains pointers to the component's private data area.  The component
  *  handle is initialized by the OMX core (with help from the component)
  *  during the process of loading the component.  After the component is
  *  successfully loaded, the application can safely access any of the
  *  component's public functions (although some may return an error because
  *  the state is inappropriate for the access).
- * 
+ *
  *  @ingroup comp
  */
 typedef struct OMX_COMPONENTTYPE
 {
     /** The size of this structure, in bytes.  It is the responsibility
         of the allocator of this structure to fill in this value.  Since
         this structure is allocated by the GetHandle function, this
         function will fill in this value. */
     OMX_U32 nSize;
 
-    /** nVersion is the version of the OMX specification that the structure 
-        is built against.  It is the responsibility of the creator of this 
-        structure to initialize this value and every user of this structure 
-        should verify that it knows how to use the exact version of 
+    /** nVersion is the version of the OMX specification that the structure
+        is built against.  It is the responsibility of the creator of this
+        structure to initialize this value and every user of this structure
+        should verify that it knows how to use the exact version of
         this structure found herein. */
     OMX_VERSIONTYPE nVersion;
 
-    /** pComponentPrivate is a pointer to the component private data area.  
-        This member is allocated and initialized by the component when the 
-        component is first loaded.  The application should not access this 
+    /** pComponentPrivate is a pointer to the component private data area.
+        This member is allocated and initialized by the component when the
+        component is first loaded.  The application should not access this
         data area. */
     OMX_PTR pComponentPrivate;
 
-    /** pApplicationPrivate is a pointer that is a parameter to the 
-        OMX_GetHandle method, and contains an application private value 
-        provided by the IL client.  This application private data is 
+    /** pApplicationPrivate is a pointer that is a parameter to the
+        OMX_GetHandle method, and contains an application private value
+        provided by the IL client.  This application private data is
         returned to the IL Client by OMX in all callbacks */
     OMX_PTR pApplicationPrivate;
 
-    /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 
+    /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL
         specification for details on the GetComponentVersion method.
      */
     OMX_ERRORTYPE (*GetComponentVersion)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_OUT OMX_STRING pComponentName,
             OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
             OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
             OMX_OUT OMX_UUIDTYPE* pComponentUUID);
 
-    /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 
+    /** refer to OMX_SendCommand in OMX_core.h or the OMX IL
         specification for details on the SendCommand method.
      */
     OMX_ERRORTYPE (*SendCommand)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_COMMANDTYPE Cmd,
             OMX_IN  OMX_U32 nParam1,
             OMX_IN  OMX_PTR pCmdData);
 
-    /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 
+    /** refer to OMX_GetParameter in OMX_core.h or the OMX IL
         specification for details on the GetParameter method.
      */
     OMX_ERRORTYPE (*GetParameter)(
-            OMX_IN  OMX_HANDLETYPE hComponent, 
-            OMX_IN  OMX_INDEXTYPE nParamIndex,  
+            OMX_IN  OMX_HANDLETYPE hComponent,
+            OMX_IN  OMX_INDEXTYPE nParamIndex,
             OMX_INOUT OMX_PTR pComponentParameterStructure);
 
 
-    /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 
+    /** refer to OMX_SetParameter in OMX_core.h or the OMX IL
         specification for details on the SetParameter method.
      */
     OMX_ERRORTYPE (*SetParameter)(
-            OMX_IN  OMX_HANDLETYPE hComponent, 
+            OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_INDEXTYPE nIndex,
             OMX_IN  OMX_PTR pComponentParameterStructure);
 
 
-    /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 
+    /** refer to OMX_GetConfig in OMX_core.h or the OMX IL
         specification for details on the GetConfig method.
      */
     OMX_ERRORTYPE (*GetConfig)(
             OMX_IN  OMX_HANDLETYPE hComponent,
-            OMX_IN  OMX_INDEXTYPE nIndex, 
+            OMX_IN  OMX_INDEXTYPE nIndex,
             OMX_INOUT OMX_PTR pComponentConfigStructure);
 
 
-    /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 
+    /** refer to OMX_SetConfig in OMX_core.h or the OMX IL
         specification for details on the SetConfig method.
      */
     OMX_ERRORTYPE (*SetConfig)(
             OMX_IN  OMX_HANDLETYPE hComponent,
-            OMX_IN  OMX_INDEXTYPE nIndex, 
+            OMX_IN  OMX_INDEXTYPE nIndex,
             OMX_IN  OMX_PTR pComponentConfigStructure);
 
 
-    /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 
+    /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL
         specification for details on the GetExtensionIndex method.
      */
     OMX_ERRORTYPE (*GetExtensionIndex)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_STRING cParameterName,
             OMX_OUT OMX_INDEXTYPE* pIndexType);
 
 
-    /** refer to OMX_GetState in OMX_core.h or the OMX IL 
+    /** refer to OMX_GetState in OMX_core.h or the OMX IL
         specification for details on the GetState method.
      */
     OMX_ERRORTYPE (*GetState)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_OUT OMX_STATETYPE* pState);
 
-    
+
     /** The ComponentTunnelRequest method will interact with another OMX
         component to determine if tunneling is possible and to setup the
-        tunneling.  The return codes for this method can be used to 
+        tunneling.  The return codes for this method can be used to
         determine if tunneling is not possible, or if tunneling is not
-        supported.  
-        
+        supported.
+
         Base profile components (i.e. non-interop) do not support this
-        method and should return OMX_ErrorNotImplemented 
+        method and should return OMX_ErrorNotImplemented
 
-        The interop profile component MUST support tunneling to another 
-        interop profile component with a compatible port parameters.  
+        The interop profile component MUST support tunneling to another
+        interop profile component with a compatible port parameters.
         A component may also support proprietary communication.
-        
-        If proprietary communication is supported the negotiation of 
-        proprietary communication is done outside of OMX in a vendor 
-        specific way. It is only required that the proper result be 
-        returned and the details of how the setup is done is left 
-        to the component implementation.  
-    
+
+        If proprietary communication is supported the negotiation of
+        proprietary communication is done outside of OMX in a vendor
+        specific way. It is only required that the proper result be
+        returned and the details of how the setup is done is left
+        to the component implementation.
+
         When this method is invoked when nPort in an output port, the
         component will:
-        1.  Populate the pTunnelSetup structure with the output port's 
+        1.  Populate the pTunnelSetup structure with the output port's
             requirements and constraints for the tunnel.
 
         When this method is invoked when nPort in an input port, the
         component will:
-        1.  Query the necessary parameters from the output port to 
+        1.  Query the necessary parameters from the output port to
             determine if the ports are compatible for tunneling
         2.  If the ports are compatible, the component should store
             the tunnel step provided by the output port
         3.  Determine which port (either input or output) is the buffer
             supplier, and call OMX_SetParameter on the output port to
             indicate this selection.
-        
+
         The component will return from this call within 5 msec.
-    
+
         @param [in] hComp
             Handle of the component to be accessed.  This is the component
             handle returned by the call to the OMX_GetHandle method.
         @param [in] nPort
             nPort is used to select the port on the component to be used
             for tunneling.
         @param [in] hTunneledComp
-            Handle of the component to tunnel with.  This is the component 
+            Handle of the component to tunnel with.  This is the component
             handle returned by the call to the OMX_GetHandle method.  When
             this parameter is 0x0 the component should setup the port for
             communication with the application / IL Client.
         @param [in] nPortOutput
             nPortOutput is used indicate the port the component should
             tunnel with.
         @param [in] pTunnelSetup
             Pointer to the tunnel setup structure.  When nPort is an output port
@@ -464,87 +464,87 @@ typedef struct OMX_COMPONENTTYPE
         @ingroup tun
     */
 
     OMX_ERRORTYPE (*ComponentTunnelRequest)(
         OMX_IN  OMX_HANDLETYPE hComp,
         OMX_IN  OMX_U32 nPort,
         OMX_IN  OMX_HANDLETYPE hTunneledComp,
         OMX_IN  OMX_U32 nTunneledPort,
-        OMX_INOUT  OMX_TUNNELSETUPTYPE* pTunnelSetup); 
+        OMX_INOUT  OMX_TUNNELSETUPTYPE* pTunnelSetup);
 
-    /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 
+    /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL
         specification for details on the UseBuffer method.
         @ingroup buf
      */
     OMX_ERRORTYPE (*UseBuffer)(
             OMX_IN OMX_HANDLETYPE hComponent,
             OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
             OMX_IN OMX_U32 nPortIndex,
             OMX_IN OMX_PTR pAppPrivate,
             OMX_IN OMX_U32 nSizeBytes,
             OMX_IN OMX_U8* pBuffer);
 
-    /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 
+    /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL
         specification for details on the AllocateBuffer method.
         @ingroup buf
      */
     OMX_ERRORTYPE (*AllocateBuffer)(
             OMX_IN OMX_HANDLETYPE hComponent,
             OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer,
             OMX_IN OMX_U32 nPortIndex,
             OMX_IN OMX_PTR pAppPrivate,
             OMX_IN OMX_U32 nSizeBytes);
 
-    /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 
+    /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL
         specification for details on the FreeBuffer method.
         @ingroup buf
      */
     OMX_ERRORTYPE (*FreeBuffer)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_U32 nPortIndex,
             OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
 
-    /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 
+    /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL
         specification for details on the EmptyThisBuffer method.
         @ingroup buf
      */
     OMX_ERRORTYPE (*EmptyThisBuffer)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
 
-    /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 
+    /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL
         specification for details on the FillThisBuffer method.
         @ingroup buf
      */
     OMX_ERRORTYPE (*FillThisBuffer)(
             OMX_IN  OMX_HANDLETYPE hComponent,
             OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
 
     /** The SetCallbacks method is used by the core to specify the callback
         structure from the application to the component.  This is a blocking
         call.  The component will return from this call within 5 msec.
         @param [in] hComponent
             Handle of the component to be accessed.  This is the component
             handle returned by the call to the GetHandle function.
         @param [in] pCallbacks
-            pointer to an OMX_CALLBACKTYPE structure used to provide the 
+            pointer to an OMX_CALLBACKTYPE structure used to provide the
             callback information to the component
         @param [in] pAppData
-            pointer to an application defined value.  It is anticipated that 
+            pointer to an application defined value.  It is anticipated that
             the application will pass a pointer to a data structure or a "this
             pointer" in this area to allow the callback (in the application)
             to determine the context of the call
         @return OMX_ERRORTYPE
             If the command successfully executes, the return code will be
             OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
      */
     OMX_ERRORTYPE (*SetCallbacks)(
             OMX_IN  OMX_HANDLETYPE hComponent,
-            OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
+            OMX_IN  OMX_CALLBACKTYPE* pCallbacks,
             OMX_IN  OMX_PTR pAppData);
 
     /** ComponentDeInit method is used to deinitialize the component
         providing a means to free any resources allocated at component
         initialization.  NOTE:  After this call the component handle is
         not valid for further use.
         @param [in] hComponent
             Handle of the component to be accessed.  This is the component
--- a/media/openmax_il/il112/OMX_ComponentExt.h
+++ b/media/openmax_il/il112/OMX_ComponentExt.h
@@ -1,61 +1,61 @@
-/*
- * Copyright (c) 2010 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_ComponentExt.h - OpenMax IL version 1.1.2
- * The OMX_ComponentExt header file contains extensions to the definitions used
- * by both the application and the component to access common items.
- */
-
-#ifndef OMX_ComponentExt_h
-#define OMX_ComponentExt_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Each OMX header must include all required header files to allow the
- * header to compile without errors.  The includes below are required
- * for this header file to compile successfully 
- */
-#include <OMX_Types.h>
-
-
-/** Set/query the commit mode */
-typedef struct OMX_CONFIG_COMMITMODETYPE {
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-    OMX_BOOL bDeferred;
-} OMX_CONFIG_COMMITMODETYPE;
-
-/** Explicit commit */
-typedef struct OMX_CONFIG_COMMITTYPE {
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-} OMX_CONFIG_COMMITTYPE;
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* OMX_ComponentExt_h */
+/*
+ * Copyright (c) 2010 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/** OMX_ComponentExt.h - OpenMax IL version 1.1.2
+ * The OMX_ComponentExt header file contains extensions to the definitions used
+ * by both the application and the component to access common items.
+ */
+
+#ifndef OMX_ComponentExt_h
+#define OMX_ComponentExt_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Each OMX header must include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully
+ */
+#include <OMX_Types.h>
+
+
+/** Set/query the commit mode */
+typedef struct OMX_CONFIG_COMMITMODETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_BOOL bDeferred;
+} OMX_CONFIG_COMMITMODETYPE;
+
+/** Explicit commit */
+typedef struct OMX_CONFIG_COMMITTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+} OMX_CONFIG_COMMITTYPE;
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_ComponentExt_h */
--- a/media/openmax_il/il112/OMX_ContentPipe.h
+++ b/media/openmax_il/il112/OMX_ContentPipe.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_ContentPipe.h - OpenMax IL version 1.1.2
  *  The OMX_ContentPipe header file contains the definitions used to define
  *  the public interface for content piples.  This header file is intended to
  *  be used by the component.
  */
@@ -59,135 +59,135 @@
 #define KD_ENOTCONN (28)
 #define KD_EPERM (33)
 #define KD_ETIMEDOUT (36)
 #define KD_EILSEQ (19)
 #endif
 
 /** Map types from OMX standard types only here so interface is as generic as possible. */
 typedef OMX_U32    CPresult;
-typedef char *     CPstring;  
+typedef char *     CPstring;
 typedef void *     CPhandle;
 typedef OMX_U32    CPuint;
-typedef OMX_S32    CPint;  
-typedef char       CPbyte;  
+typedef OMX_S32    CPint;
+typedef char       CPbyte;
 typedef OMX_BOOL   CPbool;
 
-/** enumeration of origin types used in the CP_PIPETYPE's Seek function 
+/** enumeration of origin types used in the CP_PIPETYPE's Seek function
  * @ingroup cp
  */
 typedef enum CP_ORIGINTYPE {
-    CP_OriginBegin,      
-    CP_OriginCur,      
-    CP_OriginEnd,      
-    CP_OriginKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    CP_OriginBegin,
+    CP_OriginCur,
+    CP_OriginEnd,
+    CP_OriginKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     CP_OriginVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     CP_OriginMax = 0X7FFFFFFF
 } CP_ORIGINTYPE;
 
-/** enumeration of contact access types used in the CP_PIPETYPE's Open function 
+/** enumeration of contact access types used in the CP_PIPETYPE's Open function
  * @ingroup cp
  */
 typedef enum CP_ACCESSTYPE {
-    CP_AccessRead,      
-    CP_AccessWrite,  
-    CP_AccessReadWrite ,  
-    CP_AccessKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    CP_AccessRead,
+    CP_AccessWrite,
+    CP_AccessReadWrite ,
+    CP_AccessKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     CP_AccessVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     CP_AccessMax = 0X7FFFFFFF
 } CP_ACCESSTYPE;
 
-/** enumeration of results returned by the CP_PIPETYPE's CheckAvailableBytes function 
+/** enumeration of results returned by the CP_PIPETYPE's CheckAvailableBytes function
  * @ingroup cp
  */
 typedef enum CP_CHECKBYTESRESULTTYPE
 {
-    CP_CheckBytesOk,                    /**< There are at least the request number 
+    CP_CheckBytesOk,                    /**< There are at least the request number
                                               of bytes available */
-    CP_CheckBytesNotReady,              /**< The pipe is still retrieving bytes 
-                                              and presently lacks sufficient bytes. 
-                                              Client will be called when they are 
+    CP_CheckBytesNotReady,              /**< The pipe is still retrieving bytes
+                                              and presently lacks sufficient bytes.
+                                              Client will be called when they are
                                               sufficient bytes are available. */
-    CP_CheckBytesInsufficientBytes  ,     /**< The pipe has retrieved all bytes 
-                                              but those available are less than those 
+    CP_CheckBytesInsufficientBytes  ,     /**< The pipe has retrieved all bytes
+                                              but those available are less than those
                                               requested */
     CP_CheckBytesAtEndOfStream,         /**< The pipe has reached the end of stream
                                               and no more bytes are available. */
     CP_CheckBytesOutOfBuffers,          /**< All read/write buffers are currently in use. */
-    CP_CheckBytesKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    CP_CheckBytesKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     CP_CheckBytesVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     CP_CheckBytesMax = 0X7FFFFFFF
 } CP_CHECKBYTESRESULTTYPE;
 
-/** enumeration of content pipe events sent to the client callback. 
+/** enumeration of content pipe events sent to the client callback.
  * @ingroup cp
  */
 typedef enum CP_EVENTTYPE{
     CP_BytesAvailable,      	    /** bytes requested in a CheckAvailableBytes call are now available*/
     CP_Overflow,  		           /** enumeration of content pipe events sent to the client callback*/
     CP_PipeDisconnected  ,  		    /** enumeration of content pipe events sent to the client callback*/
-    CP_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    CP_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     CP_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     CP_EventMax = 0X7FFFFFFF
 } CP_EVENTTYPE;
 
-/** content pipe definition 
+/** content pipe definition
  * @ingroup cp
  */
 typedef struct CP_PIPETYPE
 {
-    /** Open a content stream for reading or writing. */ 
+    /** Open a content stream for reading or writing. */
     CPresult (*Open)( CPhandle* hContent, CPstring szURI, CP_ACCESSTYPE eAccess );
 
-    /** Close a content stream. */ 
+    /** Close a content stream. */
     CPresult (*Close)( CPhandle hContent );
 
-    /** Create a content source and open it for writing. */ 
+    /** Create a content source and open it for writing. */
     CPresult (*Create)( CPhandle *hContent, CPstring szURI );
 
     /** Check the that specified number of bytes are available for reading or writing (depending on access type).*/
     CPresult (*CheckAvailableBytes)( CPhandle hContent, CPuint nBytesRequested, CP_CHECKBYTESRESULTTYPE *eResult );
 
     /** Seek to certain position in the content relative to the specified origin. */
     CPresult (*SetPosition)( CPhandle  hContent, CPint nOffset, CP_ORIGINTYPE eOrigin);
 
     /** Retrieve the current position relative to the start of the content. */
     CPresult (*GetPosition)( CPhandle hContent, CPuint *pPosition);
 
     /** Retrieve data of the specified size from the content stream (advance content pointer by size of data).
        Note: pipe client provides pointer. This function is appropriate for small high frequency reads. */
-    CPresult (*Read)( CPhandle hContent, CPbyte *pData, CPuint nSize); 
+    CPresult (*Read)( CPhandle hContent, CPbyte *pData, CPuint nSize);
 
-    /** Retrieve a buffer allocated by the pipe that contains the requested number of bytes. 
+    /** Retrieve a buffer allocated by the pipe that contains the requested number of bytes.
        Buffer contains the next block of bytes, as specified by nSize, of the content. nSize also
-       returns the size of the block actually read. Content pointer advances the by the returned size. 
-       Note: pipe provides pointer. This function is appropriate for large reads. The client must call 
-       ReleaseReadBuffer when done with buffer. 
+       returns the size of the block actually read. Content pointer advances the by the returned size.
+       Note: pipe provides pointer. This function is appropriate for large reads. The client must call
+       ReleaseReadBuffer when done with buffer.
 
        In some cases the requested block may not reside in contiguous memory within the
-       pipe implementation. For instance if the pipe leverages a circular buffer then the requested 
-       block may straddle the boundary of the circular buffer. By default a pipe implementation 
+       pipe implementation. For instance if the pipe leverages a circular buffer then the requested
+       block may straddle the boundary of the circular buffer. By default a pipe implementation
        performs a copy in this case to provide the block to the pipe client in one contiguous buffer.
-       If, however, the client sets bForbidCopy, then the pipe returns only those bytes preceding the memory 
+       If, however, the client sets bForbidCopy, then the pipe returns only those bytes preceding the memory
        boundary. Here the client may retrieve the data in segments over successive calls. */
     CPresult (*ReadBuffer)( CPhandle hContent, CPbyte **ppBuffer, CPuint *nSize, CPbool bForbidCopy);
 
     /** Release a buffer obtained by ReadBuffer back to the pipe. */
     CPresult (*ReleaseReadBuffer)(CPhandle hContent, CPbyte *pBuffer);
 
     /** Write data of the specified size to the content (advance content pointer by size of data).
        Note: pipe client provides pointer. This function is appropriate for small high frequency writes. */
-    CPresult (*Write)( CPhandle hContent, CPbyte *data, CPuint nSize); 
+    CPresult (*Write)( CPhandle hContent, CPbyte *data, CPuint nSize);
 
-    /** Retrieve a buffer allocated by the pipe used to write data to the content. 
+    /** Retrieve a buffer allocated by the pipe used to write data to the content.
        Client will fill buffer with output data. Note: pipe provides pointer. This function is appropriate
        for large writes. The client must call WriteBuffer when done it has filled the buffer with data.*/
     CPresult (*GetWriteBuffer)( CPhandle hContent, CPbyte **ppBuffer, CPuint nSize);
 
-    /** Deliver a buffer obtained via GetWriteBuffer to the pipe. Pipe will write the 
+    /** Deliver a buffer obtained via GetWriteBuffer to the pipe. Pipe will write the
        the contents of the buffer to content and advance content pointer by the size of the buffer */
     CPresult (*WriteBuffer)( CPhandle hContent, CPbyte *pBuffer, CPuint nFilledSize);
 
     /** Register a per-handle client callback with the content pipe. */
     CPresult (*RegisterCallback)( CPhandle hContent, CPresult (*ClientCallback)(CP_EVENTTYPE eEvent, CPuint iParam));
 
 } CP_PIPETYPE;
 
--- a/media/openmax_il/il112/OMX_Core.h
+++ b/media/openmax_il/il112/OMX_Core.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_Core.h - OpenMax IL version 1.1.2
  *  The OMX_Core header file contains the definitions used by both the
  *  application and the component to access common items.
  */
 
@@ -31,34 +31,34 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header shall include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 
 #include <OMX_Index.h>
 
 
 /** The OMX_COMMANDTYPE enumeration is used to specify the action in the
- *  OMX_SendCommand macro.  
+ *  OMX_SendCommand macro.
  *  @ingroup core
  */
 typedef enum OMX_COMMANDTYPE
 {
     OMX_CommandStateSet,    /**< Change the component state */
     OMX_CommandFlush,       /**< Flush the data queue(s) of a component */
     OMX_CommandPortDisable, /**< Disable a port on a component. */
     OMX_CommandPortEnable,  /**< Enable a port on a component. */
     OMX_CommandMarkBuffer,  /**< Mark a component/buffer for observation */
-    OMX_CommandKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_CommandKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_CommandVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_CommandMax = 0X7FFFFFFF
 } OMX_COMMANDTYPE;
 
 
 
 /** The OMX_STATETYPE enumeration is used to indicate or change the component
  *  state.  This enumeration reflects the current state of the component when
@@ -71,56 +71,56 @@ typedef enum OMX_COMMANDTYPE
  *  and configuration tables.  The application will send one or more
  *  SetParameters/GetParameters and SetConfig/GetConfig commands to the
  *  component and the component will record each of these parameter and
  *  configuration changes for use later.  When the application sends the
  *  Idle command, the component will acquire the resources needed for the
  *  specified configuration and will transition to the idle state if the
  *  allocation is successful.  If the component cannot successfully
  *  transition to the idle state for any reason, the state of the component
- *  shall be fully rolled back to the Loaded state (e.g. all allocated 
+ *  shall be fully rolled back to the Loaded state (e.g. all allocated
  *  resources shall be released).  When the component receives the command
  *  to go to the Executing state, it shall begin processing buffers by
  *  sending all input buffers it holds to the application.  While
  *  the component is in the Idle state, the application may also send the
  *  Pause command.  If the component receives the pause command while in the
- *  Idle state, the component shall send all input buffers it holds to the 
+ *  Idle state, the component shall send all input buffers it holds to the
  *  application, but shall not begin processing buffers.  This will allow the
  *  application to prefill buffers.
- * 
+ *
  *  @ingroup comp
  */
 
 typedef enum OMX_STATETYPE
 {
-    OMX_StateInvalid,      /**< component has detected that it's internal data 
+    OMX_StateInvalid,      /**< component has detected that it's internal data
                                 structures are corrupted to the point that
                                 it cannot determine it's state properly */
     OMX_StateLoaded,      /**< component has been loaded but has not completed
                                 initialization.  The OMX_SetParameter macro
-                                and the OMX_GetParameter macro are the only 
-                                valid macros allowed to be sent to the 
+                                and the OMX_GetParameter macro are the only
+                                valid macros allowed to be sent to the
                                 component in this state. */
     OMX_StateIdle,        /**< component initialization has been completed
                                 successfully and the component is ready to
                                 to start. */
     OMX_StateExecuting,   /**< component has accepted the start command and
                                 is processing data (if data is available) */
     OMX_StatePause,       /**< component has received pause command */
-    OMX_StateWaitForResources, /**< component is waiting for resources, either after 
+    OMX_StateWaitForResources, /**< component is waiting for resources, either after
                                 preemption or before it gets the resources requested.
                                 See specification for complete details. */
-    OMX_StateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_StateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_StateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_StateMax = 0X7FFFFFFF
 } OMX_STATETYPE;
 
-/** The OMX_ERRORTYPE enumeration defines the standard OMX Errors.  These 
- *  errors should cover most of the common failure cases.  However, 
- *  vendors are free to add additional error messages of their own as 
+/** The OMX_ERRORTYPE enumeration defines the standard OMX Errors.  These
+ *  errors should cover most of the common failure cases.  However,
+ *  vendors are free to add additional error messages of their own as
  *  long as they follow these rules:
  *  1.  Vendor error messages shall be in the range of 0x90000000 to
  *      0x9000FFFF.
  *  2.  Vendor error messages shall be defined in a header file provided
  *      with the component.  No error messages are allowed that are
  *      not defined.
  */
 typedef enum OMX_ERRORTYPE
@@ -181,43 +181,43 @@ typedef enum OMX_ERRORTYPE
   OMX_ErrorNotReady = (OMX_S32) 0x80001010,
 
   /** There was a timeout that occurred */
   OMX_ErrorTimeout = (OMX_S32) 0x80001011,
 
   /** This error occurs when trying to transition into the state you are already in */
   OMX_ErrorSameState = (OMX_S32) 0x80001012,
 
-  /** Resources allocated to an executing or paused component have been 
+  /** Resources allocated to an executing or paused component have been
       preempted, causing the component to return to the idle state */
-  OMX_ErrorResourcesPreempted = (OMX_S32) 0x80001013, 
+  OMX_ErrorResourcesPreempted = (OMX_S32) 0x80001013,
 
-  /** A non-supplier port sends this error to the IL client (via the EventHandler callback) 
+  /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
       during the allocation of buffers (on a transition from the LOADED to the IDLE state or
-      on a port restart) when it deems that it has waited an unusually long time for the supplier 
+      on a port restart) when it deems that it has waited an unusually long time for the supplier
       to send it an allocated buffer via a UseBuffer call. */
   OMX_ErrorPortUnresponsiveDuringAllocation = (OMX_S32) 0x80001014,
 
-  /** A non-supplier port sends this error to the IL client (via the EventHandler callback) 
-      during the deallocation of buffers (on a transition from the IDLE to LOADED state or 
-      on a port stop) when it deems that it has waited an unusually long time for the supplier 
+  /** A non-supplier port sends this error to the IL client (via the EventHandler callback)
+      during the deallocation of buffers (on a transition from the IDLE to LOADED state or
+      on a port stop) when it deems that it has waited an unusually long time for the supplier
       to request the deallocation of a buffer header via a FreeBuffer call. */
   OMX_ErrorPortUnresponsiveDuringDeallocation = (OMX_S32) 0x80001015,
 
-  /** A supplier port sends this error to the IL client (via the EventHandler callback) 
-      during the stopping of a port (either on a transition from the IDLE to LOADED 
-      state or a port stop) when it deems that it has waited an unusually long time for 
+  /** A supplier port sends this error to the IL client (via the EventHandler callback)
+      during the stopping of a port (either on a transition from the IDLE to LOADED
+      state or a port stop) when it deems that it has waited an unusually long time for
       the non-supplier to return a buffer via an EmptyThisBuffer or FillThisBuffer call. */
   OMX_ErrorPortUnresponsiveDuringStop = (OMX_S32) 0x80001016,
 
   /** Attempting a state transtion that is not allowed */
   OMX_ErrorIncorrectStateTransition = (OMX_S32) 0x80001017,
 
   /* Attempting a command that is not allowed during the present state. */
-  OMX_ErrorIncorrectStateOperation = (OMX_S32) 0x80001018, 
+  OMX_ErrorIncorrectStateOperation = (OMX_S32) 0x80001018,
 
   /** The values encapsulated in the parameter or config structure are not supported. */
   OMX_ErrorUnsupportedSetting = (OMX_S32) 0x80001019,
 
   /** The parameter or config indicated by the given index is not supported. */
   OMX_ErrorUnsupportedIndex = (OMX_S32) 0x8000101A,
 
   /** The port index supplied is incorrect. */
@@ -227,36 +227,36 @@ typedef enum OMX_ERRORTYPE
   OMX_ErrorPortUnpopulated = (OMX_S32) 0x8000101C,
 
   /** Component suspended due to temporary loss of resources */
   OMX_ErrorComponentSuspended = (OMX_S32) 0x8000101D,
 
   /** Component suspended due to an inability to acquire dynamic resources */
   OMX_ErrorDynamicResourcesUnavailable = (OMX_S32) 0x8000101E,
 
-  /** When the macroblock error reporting is enabled the component returns new error 
+  /** When the macroblock error reporting is enabled the component returns new error
   for every frame that has errors */
   OMX_ErrorMbErrorsInFrame = (OMX_S32) 0x8000101F,
 
   /** A component reports this error when it cannot parse or determine the format of an input stream. */
-  OMX_ErrorFormatNotDetected = (OMX_S32) 0x80001020, 
+  OMX_ErrorFormatNotDetected = (OMX_S32) 0x80001020,
 
   /** The content open operation failed. */
   OMX_ErrorContentPipeOpenFailed = (OMX_S32) 0x80001021,
 
   /** The content creation operation failed. */
   OMX_ErrorContentPipeCreationFailed = (OMX_S32) 0x80001022,
 
   /** Separate table information is being used */
   OMX_ErrorSeperateTablesUsed = (OMX_S32) 0x80001023,
 
   /** Tunneling is unsupported by the component*/
   OMX_ErrorTunnelingUnsupported = (OMX_S32) 0x80001024,
 
-  OMX_ErrorKhronosExtensions = (OMX_S32)0x8F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+  OMX_ErrorKhronosExtensions = (OMX_S32)0x8F000000, /**< Reserved region for introducing Khronos Standard Extensions */
   OMX_ErrorVendorStartUnused = (OMX_S32)0x90000000, /**< Reserved region for introducing Vendor Extensions */
   OMX_ErrorMax = 0x7FFFFFFF
 } OMX_ERRORTYPE;
 
 /** @ingroup core */
 typedef OMX_ERRORTYPE (* OMX_COMPONENTINITTYPE)(OMX_IN  OMX_HANDLETYPE hComponent);
 
 /** @ingroup core */
@@ -282,109 +282,109 @@ typedef struct OMX_PRIORITYMGMTTYPE {
 
 /** @ingroup comp */
 typedef struct OMX_PARAM_COMPONENTROLETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U8 cRole[OMX_MAX_STRINGNAME_SIZE];  /**< name of standard component which defines component role */
 } OMX_PARAM_COMPONENTROLETYPE;
 
-/** End of Stream Buffer Flag: 
+/** End of Stream Buffer Flag:
   *
-  * A component sets EOS when it has no more data to emit on a particular 
-  * output port. Thus an output port shall set EOS on the last buffer it 
-  * emits. A component's determination of when an output port should 
+  * A component sets EOS when it has no more data to emit on a particular
+  * output port. Thus an output port shall set EOS on the last buffer it
+  * emits. A component's determination of when an output port should
   * cease sending data is implemenation specific.
   * @ingroup buf
   */
 
-#define OMX_BUFFERFLAG_EOS 0x00000001 
+#define OMX_BUFFERFLAG_EOS 0x00000001
 
-/** Start Time Buffer Flag: 
+/** Start Time Buffer Flag:
  *
  * The source of a stream (e.g. a demux component) sets the STARTTIME
  * flag on the buffer that contains the starting timestamp for the
  * stream. The starting timestamp corresponds to the first data that
  * should be displayed at startup or after a seek.
  * The first timestamp of the stream is not necessarily the start time.
- * For instance, in the case of a seek to a particular video frame, 
- * the target frame may be an interframe. Thus the first buffer of 
+ * For instance, in the case of a seek to a particular video frame,
+ * the target frame may be an interframe. Thus the first buffer of
  * the stream will be the intra-frame preceding the target frame and
  * the starttime will occur with the target frame (with any other
  * required frames required to reconstruct the target intervening).
  *
- * The STARTTIME flag is directly associated with the buffer's 
- * timestamp ' thus its association to buffer data and its 
+ * The STARTTIME flag is directly associated with the buffer's
+ * timestamp ' thus its association to buffer data and its
  * propagation is identical to the timestamp's.
  *
- * When a Sync Component client receives a buffer with the 
- * STARTTIME flag it shall perform a SetConfig on its sync port 
+ * When a Sync Component client receives a buffer with the
+ * STARTTIME flag it shall perform a SetConfig on its sync port
  * using OMX_ConfigTimeClientStartTime and passing the buffer's
  * timestamp.
- * 
+ *
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_STARTTIME 0x00000002
 
- 
+
 
-/** Decode Only Buffer Flag: 
+/** Decode Only Buffer Flag:
  *
  * The source of a stream (e.g. a demux component) sets the DECODEONLY
  * flag on any buffer that should shall be decoded but should not be
- * displayed. This flag is used, for instance, when a source seeks to 
- * a target interframe that requires the decode of frames preceding the 
- * target to facilitate the target's reconstruction. In this case the 
- * source would emit the frames preceding the target downstream 
+ * displayed. This flag is used, for instance, when a source seeks to
+ * a target interframe that requires the decode of frames preceding the
+ * target to facilitate the target's reconstruction. In this case the
+ * source would emit the frames preceding the target downstream
  * but mark them as decode only.
  *
- * The DECODEONLY is associated with buffer data and propagated in a 
+ * The DECODEONLY is associated with buffer data and propagated in a
  * manner identical to the buffer timestamp.
  *
- * A component that renders data should ignore all buffers with 
+ * A component that renders data should ignore all buffers with
  * the DECODEONLY flag set.
- * 
+ *
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_DECODEONLY 0x00000004
 
 
-/* Data Corrupt Flag: This flag is set when the IL client believes the data in the associated buffer is corrupt 
+/* Data Corrupt Flag: This flag is set when the IL client believes the data in the associated buffer is corrupt
  * @ingroup buf
  */
 
 #define OMX_BUFFERFLAG_DATACORRUPT 0x00000008
 
 /* End of Frame: The buffer contains exactly one end of frame and no data
  *  occurs after the end of frame. This flag is an optional hint. The absence
- *  of this flag does not imply the absence of an end of frame within the buffer. 
+ *  of this flag does not imply the absence of an end of frame within the buffer.
  * @ingroup buf
 */
 #define OMX_BUFFERFLAG_ENDOFFRAME 0x00000010
 
-/* Sync Frame Flag: This flag is set when the buffer content contains a coded sync frame ' 
- *  a frame that has no dependency on any other frame information 
+/* Sync Frame Flag: This flag is set when the buffer content contains a coded sync frame '
+ *  a frame that has no dependency on any other frame information
  *  @ingroup buf
  */
 #define OMX_BUFFERFLAG_SYNCFRAME 0x00000020
 
 /* Extra data present flag: there is extra data appended to the data stream
- * residing in the buffer 
- * @ingroup buf  
+ * residing in the buffer
+ * @ingroup buf
  */
 #define OMX_BUFFERFLAG_EXTRADATA 0x00000040
 
-/** Codec Config Buffer Flag: 
+/** Codec Config Buffer Flag:
 * OMX_BUFFERFLAG_CODECCONFIG is an optional flag that is set by an
 * output port when all bytes in the buffer form part or all of a set of
 * codec specific configuration data.  Examples include SPS/PPS nal units
 * for OMX_VIDEO_CodingAVC or AudioSpecificConfig data for
-* OMX_AUDIO_CodingAAC.  Any component that for a given stream sets 
+* OMX_AUDIO_CodingAAC.  Any component that for a given stream sets
 * OMX_BUFFERFLAG_CODECCONFIG shall not mix codec configuration bytes
 * with frame data in the same buffer, and shall send all buffers
 * containing codec configuration bytes before any buffers containing
 * frame data that those configurations bytes describe.
 * If the stream format for a particular codec has a frame specific
 * header at the start of each frame, for example OMX_AUDIO_CodingMP3 or
 * OMX_AUDIO_CodingAAC in ADTS mode, then these shall be presented as
 * normal without setting OMX_BUFFERFLAG_CODECCONFIG.
@@ -394,135 +394,135 @@ typedef struct OMX_PARAM_COMPONENTROLETY
 
 
 
 /** @ingroup buf */
 typedef struct OMX_BUFFERHEADERTYPE
 {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U8* pBuffer;            /**< Pointer to actual block of memory 
+    OMX_U8* pBuffer;            /**< Pointer to actual block of memory
                                      that is acting as the buffer */
     OMX_U32 nAllocLen;          /**< size of the buffer allocated, in bytes */
-    OMX_U32 nFilledLen;         /**< number of bytes currently in the 
+    OMX_U32 nFilledLen;         /**< number of bytes currently in the
                                      buffer */
     OMX_U32 nOffset;            /**< start offset of valid data in bytes from
                                      the start of the buffer */
     OMX_PTR pAppPrivate;        /**< pointer to any data the application
                                      wants to associate with this buffer */
     OMX_PTR pPlatformPrivate;   /**< pointer to any data the platform
-                                     wants to associate with this buffer */ 
+                                     wants to associate with this buffer */
     OMX_PTR pInputPortPrivate;  /**< pointer to any data the input port
                                      wants to associate with this buffer */
     OMX_PTR pOutputPortPrivate; /**< pointer to any data the output port
                                      wants to associate with this buffer */
-    OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will generate a 
+    OMX_HANDLETYPE hMarkTargetComponent; /**< The component that will generate a
                                               mark event upon processing this buffer. */
-    OMX_PTR pMarkData;          /**< Application specific data associated with 
-                                     the mark sent on a mark event to disambiguate 
+    OMX_PTR pMarkData;          /**< Application specific data associated with
+                                     the mark sent on a mark event to disambiguate
                                      this mark from others. */
     OMX_U32 nTickCount;         /**< Optional entry that the component and
                                      application can update with a tick count
                                      when they access the component.  This
                                      value should be in microseconds.  Since
                                      this is a value relative to an arbitrary
-                                     starting point, this value cannot be used 
+                                     starting point, this value cannot be used
                                      to determine absolute time.  This is an
                                      optional entry and not all components
                                      will update it.*/
- OMX_TICKS nTimeStamp;          /**< Timestamp corresponding to the sample 
-                                     starting at the first logical sample 
-                                     boundary in the buffer. Timestamps of 
+ OMX_TICKS nTimeStamp;          /**< Timestamp corresponding to the sample
+                                     starting at the first logical sample
+                                     boundary in the buffer. Timestamps of
                                      successive samples within the buffer may
-                                     be inferred by adding the duration of the 
+                                     be inferred by adding the duration of the
                                      of the preceding buffer to the timestamp
                                      of the preceding buffer.*/
   OMX_U32     nFlags;           /**< buffer specific flags */
-  OMX_U32 nOutputPortIndex;     /**< The index of the output port (if any) using 
+  OMX_U32 nOutputPortIndex;     /**< The index of the output port (if any) using
                                      this buffer */
   OMX_U32 nInputPortIndex;      /**< The index of the input port (if any) using
                                      this buffer */
 } OMX_BUFFERHEADERTYPE;
 
-/** The OMX_EXTRADATATYPE enumeration is used to define the 
+/** The OMX_EXTRADATATYPE enumeration is used to define the
  * possible extra data payload types.
  * NB: this enum is binary backwards compatible with the previous
  * OMX_EXTRADATA_QUANT define.  This should be replaced with
  * OMX_ExtraDataQuantization.
  */
 typedef enum OMX_EXTRADATATYPE
 {
-   OMX_ExtraDataNone = 0,                       /**< Indicates that no more extra data sections follow */        
+   OMX_ExtraDataNone = 0,                       /**< Indicates that no more extra data sections follow */
    OMX_ExtraDataQuantization,                   /**< The data payload contains quantization data */
-   OMX_ExtraDataKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_ExtraDataKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_ExtraDataVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_ExtraDataMax = 0x7FFFFFFF
 } OMX_EXTRADATATYPE;
 
 
 typedef struct OMX_OTHER_EXTRADATATYPE  {
     OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;               
+    OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_EXTRADATATYPE eType;       /* Extra Data type */
     OMX_U32 nDataSize;   /* Size of the supporting data to follow */
     OMX_U8  data[1];     /* Supporting data hint  */
 } OMX_OTHER_EXTRADATATYPE;
 
 /** @ingroup comp */
 typedef struct OMX_PORT_PARAM_TYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPorts;             /**< The number of ports for this component */
     OMX_U32 nStartPortNumber;   /** first port number for this type of port */
-} OMX_PORT_PARAM_TYPE; 
+} OMX_PORT_PARAM_TYPE;
 
 /** @ingroup comp */
 typedef enum OMX_EVENTTYPE
 {
     OMX_EventCmdComplete,         /**< component has sucessfully completed a command */
     OMX_EventError,               /**< component has detected an error condition */
     OMX_EventMark,                /**< component has detected a buffer mark */
     OMX_EventPortSettingsChanged, /**< component is reported a port settings change */
-    OMX_EventBufferFlag,          /**< component has detected an EOS */ 
+    OMX_EventBufferFlag,          /**< component has detected an EOS */
     OMX_EventResourcesAcquired,   /**< component has been granted resources and is
                                        automatically starting the state change from
                                        OMX_StateWaitForResources to OMX_StateIdle. */
    OMX_EventComponentResumed,     /**< Component resumed due to reacquisition of resources */
    OMX_EventDynamicResourcesAvailable, /**< Component has acquired previously unavailable dynamic resources */
    OMX_EventPortFormatDetected,      /**< Component has detected a supported format. */
-   OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+   OMX_EventKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_EventVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_EventMax = 0x7FFFFFFF
 } OMX_EVENTTYPE;
 
 typedef struct OMX_CALLBACKTYPE
 {
     /** The EventHandler method is used to notify the application when an
         event of interest occurs.  Events are defined in the OMX_EVENTTYPE
         enumeration.  Please see that enumeration for details of what will
         be returned for each type of event. Callbacks should not return
-        an error to the component, so if an error occurs, the application 
+        an error to the component, so if an error occurs, the application
         shall handle it internally.  This is a blocking call.
 
         The application should return from this call within 5 msec to avoid
         blocking the component for an excessively long period of time.
 
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param eEvent
             Event that the component wants to notify the application about.
         @param nData1
-            nData will be the OMX_ERRORTYPE for an error event and will be 
+            nData will be the OMX_ERRORTYPE for an error event and will be
             an OMX_COMMANDTYPE for a command complete event and OMX_INDEXTYPE for a OMX_PortSettingsChanged event.
          @param nData2
             nData2 will hold further information related to the event. Can be OMX_STATETYPE for
             a OMX_CommandStateSet command or port index for a OMX_PortSettingsChanged event.
             Default value is 0 if not used. )
         @param pEventData
             Pointer to additional event-specific data (see spec for meaning).
       */
@@ -531,60 +531,60 @@ typedef struct OMX_CALLBACKTYPE
         OMX_IN OMX_HANDLETYPE hComponent,
         OMX_IN OMX_PTR pAppData,
         OMX_IN OMX_EVENTTYPE eEvent,
         OMX_IN OMX_U32 nData1,
         OMX_IN OMX_U32 nData2,
         OMX_IN OMX_PTR pEventData);
 
     /** The EmptyBufferDone method is used to return emptied buffers from an
-        input port back to the application for reuse.  This is a blocking call 
+        input port back to the application for reuse.  This is a blocking call
         so the application should not attempt to refill the buffers during this
         call, but should queue them and refill them in another thread.  There
         is no error return, so the application shall handle any errors generated
-        internally.  
-        
+        internally.
+
         The application should return from this call within 5 msec.
-        
+
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param pBuffer
             pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
             or AllocateBuffer indicating the buffer that was emptied.
         @ingroup buf
      */
     OMX_ERRORTYPE (*EmptyBufferDone)(
         OMX_IN OMX_HANDLETYPE hComponent,
         OMX_IN OMX_PTR pAppData,
         OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
 
     /** The FillBufferDone method is used to return filled buffers from an
-        output port back to the application for emptying and then reuse.  
-        This is a blocking call so the application should not attempt to 
-        empty the buffers during this call, but should queue the buffers 
-        and empty them in another thread.  There is no error return, so 
-        the application shall handle any errors generated internally.  The 
+        output port back to the application for emptying and then reuse.
+        This is a blocking call so the application should not attempt to
+        empty the buffers during this call, but should queue the buffers
+        and empty them in another thread.  There is no error return, so
+        the application shall handle any errors generated internally.  The
         application shall also update the buffer header to indicate the
-        number of bytes placed into the buffer.  
+        number of bytes placed into the buffer.
 
         The application should return from this call within 5 msec.
-        
+
         @param hComponent
             handle of the component to access.  This is the component
             handle returned by the call to the GetHandle function.
         @param pAppData
-            pointer to an application defined value that was provided in the 
+            pointer to an application defined value that was provided in the
             pAppData parameter to the OMX_GetHandle method for the component.
-            This application defined value is provided so that the application 
+            This application defined value is provided so that the application
             can have a component specific context when receiving the callback.
         @param pBuffer
             pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
             or AllocateBuffer indicating the buffer that was filled.
         @ingroup buf
      */
     OMX_ERRORTYPE (*FillBufferDone)(
         OMX_OUT OMX_HANDLETYPE hComponent,
@@ -598,88 +598,88 @@ typedef struct OMX_CALLBACKTYPE
     @ingroup tun buf
 */
 typedef enum OMX_BUFFERSUPPLIERTYPE
 {
     OMX_BufferSupplyUnspecified = 0x0, /**< port supplying the buffers is unspecified,
                                               or don't care */
     OMX_BufferSupplyInput,             /**< input port supplies the buffers */
     OMX_BufferSupplyOutput,            /**< output port supplies the buffers */
-    OMX_BufferSupplyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_BufferSupplyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_BufferSupplyVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_BufferSupplyMax = 0x7FFFFFFF
 } OMX_BUFFERSUPPLIERTYPE;
 
 
-/** buffer supplier parameter 
+/** buffer supplier parameter
  * @ingroup tun
  */
 typedef struct OMX_PARAM_BUFFERSUPPLIERTYPE {
     OMX_U32 nSize; /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex; /**< port that this structure applies to */
     OMX_BUFFERSUPPLIERTYPE eBufferSupplier; /**< buffer supplier */
 } OMX_PARAM_BUFFERSUPPLIERTYPE;
 
 
-/**< indicates that buffers received by an input port of a tunnel 
-     may not modify the data in the buffers 
+/**< indicates that buffers received by an input port of a tunnel
+     may not modify the data in the buffers
      @ingroup tun
  */
-#define OMX_PORTTUNNELFLAG_READONLY 0x00000001 
+#define OMX_PORTTUNNELFLAG_READONLY 0x00000001
 
 
 /** The OMX_TUNNELSETUPTYPE structure is used to pass data from an output
     port to an input port as part the two ComponentTunnelRequest calls
-    resulting from a OMX_SetupTunnel call from the IL Client. 
+    resulting from a OMX_SetupTunnel call from the IL Client.
     @ingroup tun
- */   
+ */
 typedef struct OMX_TUNNELSETUPTYPE
 {
     OMX_U32 nTunnelFlags;             /**< bit flags for tunneling */
     OMX_BUFFERSUPPLIERTYPE eSupplier; /**< supplier preference */
-} OMX_TUNNELSETUPTYPE; 
+} OMX_TUNNELSETUPTYPE;
 
 /* OMX Component headers is included to enable the core to use
-   macros for functions into the component for OMX release 1.0.  
+   macros for functions into the component for OMX release 1.0.
    Developers should not access any structures or data from within
    the component header directly */
 /* TO BE REMOVED - #include <OMX_Component.h> */
 
-/** GetComponentVersion will return information about the component.  
+/** GetComponentVersion will return information about the component.
     This is a blocking call.  This macro will go directly from the
     application to the component (via a core macro).  The
     component will return from this call within 5 msec.
     @param [in] hComponent
         handle of component to execute the command
     @param [out] pComponentName
-        pointer to an empty string of length 128 bytes.  The component 
-        will write its name into this string.  The name will be 
-        terminated by a single zero byte.  The name of a component will 
-        be 127 bytes or less to leave room for the trailing zero byte.  
+        pointer to an empty string of length 128 bytes.  The component
+        will write its name into this string.  The name will be
+        terminated by a single zero byte.  The name of a component will
+        be 127 bytes or less to leave room for the trailing zero byte.
         An example of a valid component name is "OMX.ABC.ChannelMixer\0".
     @param [out] pComponentVersion
-        pointer to an OMX Version structure that the component will fill 
-        in.  The component will fill in a value that indicates the 
-        component version.  NOTE: the component version is NOT the same 
-        as the OMX Specification version (found in all structures).  The 
-        component version is defined by the vendor of the component and 
+        pointer to an OMX Version structure that the component will fill
+        in.  The component will fill in a value that indicates the
+        component version.  NOTE: the component version is NOT the same
+        as the OMX Specification version (found in all structures).  The
+        component version is defined by the vendor of the component and
         its value is entirely up to the component vendor.
     @param [out] pSpecVersion
-        pointer to an OMX Version structure that the component will fill 
-        in.  The SpecVersion is the version of the specification that the 
-        component was built against.  Please note that this value may or 
-        may not match the structure's version.  For example, if the 
-        component was built against the 2.0 specification, but the 
-        application (which creates the structure is built against the 
+        pointer to an OMX Version structure that the component will fill
+        in.  The SpecVersion is the version of the specification that the
+        component was built against.  Please note that this value may or
+        may not match the structure's version.  For example, if the
+        component was built against the 2.0 specification, but the
+        application (which creates the structure is built against the
         1.0 specification the versions would be different.
     @param [out] pComponentUUID
-        pointer to the UUID of the component which will be filled in by 
-        the component.  The UUID is a unique identifier that is set at 
-        RUN time for the component and is unique to each instantion of 
+        pointer to the UUID of the component which will be filled in by
+        the component.  The UUID is a unique identifier that is set at
+        RUN time for the component and is unique to each instantion of
         the component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetComponentVersion(                            \
         hComponent,                                         \
@@ -692,56 +692,56 @@ typedef struct OMX_TUNNELSETUPTYPE
         pComponentName,                                     \
         pComponentVersion,                                  \
         pSpecVersion,                                       \
         pComponentUUID)                 /* Macro End */
 
 
 /** Send a command to the component.  This call is a non-blocking call.
     The component should check the parameters and then queue the command
-    to the component thread to be executed.  The component thread shall 
-    send the EventHandler() callback at the conclusion of the command. 
+    to the component thread to be executed.  The component thread shall
+    send the EventHandler() callback at the conclusion of the command.
     This macro will go directly from the application to the component (via
     a core macro).  The component will return from this call within 5 msec.
-    
+
     When the command is "OMX_CommandStateSet" the component will queue a
     state transition to the new state idenfied in nParam.
-    
+
     When the command is "OMX_CommandFlush", to flush a port's buffer queues,
-    the command will force the component to return all buffers NOT CURRENTLY 
-    BEING PROCESSED to the application, in the order in which the buffers 
+    the command will force the component to return all buffers NOT CURRENTLY
+    BEING PROCESSED to the application, in the order in which the buffers
     were received.
-    
-    When the command is "OMX_CommandPortDisable" or 
+
+    When the command is "OMX_CommandPortDisable" or
     "OMX_CommandPortEnable", the component's port (given by the value of
-    nParam) will be stopped or restarted. 
-    
+    nParam) will be stopped or restarted.
+
     When the command "OMX_CommandMarkBuffer" is used to mark a buffer, the
     pCmdData will point to a OMX_MARKTYPE structure containing the component
     handle of the component to examine the buffer chain for the mark.  nParam1
     contains the index of the port on which the buffer mark is applied.
 
-    Specification text for more details. 
-    
+    Specification text for more details.
+
     @param [in] hComponent
         handle of component to execute the command
     @param [in] Cmd
         Command for the component to execute
     @param [in] nParam
-        Parameter for the command to be executed.  When Cmd has the value 
-        OMX_CommandStateSet, value is a member of OMX_STATETYPE.  When Cmd has 
-        the value OMX_CommandFlush, value of nParam indicates which port(s) 
-        to flush. -1 is used to flush all ports a single port index will 
+        Parameter for the command to be executed.  When Cmd has the value
+        OMX_CommandStateSet, value is a member of OMX_STATETYPE.  When Cmd has
+        the value OMX_CommandFlush, value of nParam indicates which port(s)
+        to flush. -1 is used to flush all ports a single port index will
         only flush that port.  When Cmd has the value "OMX_CommandPortDisable"
-        or "OMX_CommandPortEnable", the component's port is given by 
+        or "OMX_CommandPortEnable", the component's port is given by
         the value of nParam.  When Cmd has the value "OMX_CommandMarkBuffer"
         the components pot is given by the value of nParam.
     @param [in] pCmdData
         Parameter pointing to the OMX_MARKTYPE structure when Cmd has the value
-        "OMX_CommandMarkBuffer".     
+        "OMX_CommandMarkBuffer".
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_SendCommand(                                    \
          hComponent,                                        \
          Cmd,                                               \
@@ -749,39 +749,39 @@ typedef struct OMX_TUNNELSETUPTYPE
          pCmdData)                                          \
      ((OMX_COMPONENTTYPE*)hComponent)->SendCommand(         \
          hComponent,                                        \
          Cmd,                                               \
          nParam,                                            \
          pCmdData)                          /* Macro End */
 
 
-/** The OMX_GetParameter macro will get one of the current parameter 
-    settings from the component.  This macro cannot only be invoked when 
+/** The OMX_GetParameter macro will get one of the current parameter
+    settings from the component.  This macro cannot only be invoked when
     the component is in the OMX_StateInvalid state.  The nParamIndex
     parameter is used to indicate which structure is being requested from
-    the component.  The application shall allocate the correct structure 
-    and shall fill in the structure size and version information before 
+    the component.  The application shall allocate the correct structure
+    and shall fill in the structure size and version information before
     invoking this macro.  When the parameter applies to a port, the
     caller shall fill in the appropriate nPortIndex value indicating the
-    port on which the parameter applies. If the component has not had 
-    any settings changed, then the component should return a set of 
-    valid DEFAULT  parameters for the component.  This is a blocking 
-    call.  
-    
+    port on which the parameter applies. If the component has not had
+    any settings changed, then the component should return a set of
+    valid DEFAULT  parameters for the component.  This is a blocking
+    call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nParamIndex
         Index of the structure to be filled.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in,out] pComponentParameterStructure
-        Pointer to application allocated structure to be filled by the 
+        Pointer to application allocated structure to be filled by the
         component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetParameter(                                   \
         hComponent,                                         \
@@ -792,27 +792,27 @@ typedef struct OMX_TUNNELSETUPTYPE
         nParamIndex,                                        \
         pComponentParameterStructure)    /* Macro End */
 
 
 /** The OMX_SetParameter macro will send an initialization parameter
     structure to a component.  Each structure shall be sent one at a time,
     in a separate invocation of the macro.  This macro can only be
     invoked when the component is in the OMX_StateLoaded state, or the
-    port is disabled (when the parameter applies to a port). The 
+    port is disabled (when the parameter applies to a port). The
     nParamIndex parameter is used to indicate which structure is being
-    passed to the component.  The application shall allocate the 
-    correct structure and shall fill in the structure size and version 
+    passed to the component.  The application shall allocate the
+    correct structure and shall fill in the structure size and version
     information (as well as the actual data) before invoking this macro.
     The application is free to dispose of this structure after the call
-    as the component is required to copy any data it shall retain.  This 
-    is a blocking call.  
-    
+    as the component is required to copy any data it shall retain.  This
+    is a blocking call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nIndex
         Index of the structure to be sent.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in] pComponentParameterStructure
         pointer to application allocated structure to be used for
@@ -827,64 +827,64 @@ typedef struct OMX_TUNNELSETUPTYPE
         nParamIndex,                                        \
         pComponentParameterStructure)                        \
     ((OMX_COMPONENTTYPE*)hComponent)->SetParameter(         \
         hComponent,                                         \
         nParamIndex,                                        \
         pComponentParameterStructure)    /* Macro End */
 
 
-/** The OMX_GetConfig macro will get one of the configuration structures 
-    from a component.  This macro can be invoked anytime after the 
-    component has been loaded.  The nParamIndex call parameter is used to 
-    indicate which structure is being requested from the component.  The 
-    application shall allocate the correct structure and shall fill in the 
-    structure size and version information before invoking this macro.  
-    If the component has not had this configuration parameter sent before, 
-    then the component should return a set of valid DEFAULT values for the 
-    component.  This is a blocking call.  
-    
+/** The OMX_GetConfig macro will get one of the configuration structures
+    from a component.  This macro can be invoked anytime after the
+    component has been loaded.  The nParamIndex call parameter is used to
+    indicate which structure is being requested from the component.  The
+    application shall allocate the correct structure and shall fill in the
+    structure size and version information before invoking this macro.
+    If the component has not had this configuration parameter sent before,
+    then the component should return a set of valid DEFAULT values for the
+    component.  This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nIndex
         Index of the structure to be filled.  This value is from the
         OMX_INDEXTYPE enumeration.
     @param [in,out] pComponentConfigStructure
-        pointer to application allocated structure to be filled by the 
+        pointer to application allocated structure to be filled by the
         component.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
-*/        
+*/
 #define OMX_GetConfig(                                      \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)                           \
     ((OMX_COMPONENTTYPE*)hComponent)->GetConfig(            \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)       /* Macro End */
 
 
-/** The OMX_SetConfig macro will send one of the configuration 
+/** The OMX_SetConfig macro will send one of the configuration
     structures to a component.  Each structure shall be sent one at a time,
-    each in a separate invocation of the macro.  This macro can be invoked 
-    anytime after the component has been loaded.  The application shall 
-    allocate the correct structure and shall fill in the structure size 
-    and version information (as well as the actual data) before invoking 
-    this macro.  The application is free to dispose of this structure after 
-    the call as the component is required to copy any data it shall retain.  
-    This is a blocking call.  
-    
+    each in a separate invocation of the macro.  This macro can be invoked
+    anytime after the component has been loaded.  The application shall
+    allocate the correct structure and shall fill in the structure size
+    and version information (as well as the actual data) before invoking
+    this macro.  The application is free to dispose of this structure after
+    the call as the component is required to copy any data it shall retain.
+    This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nConfigIndex
         Index of the structure to be sent.  This value is from the
         OMX_INDEXTYPE enumeration above.
     @param [in] pComponentConfigStructure
         pointer to application allocated structure to be used for
@@ -899,32 +899,32 @@ typedef struct OMX_TUNNELSETUPTYPE
         nConfigIndex,                                       \
         pComponentConfigStructure)                           \
     ((OMX_COMPONENTTYPE*)hComponent)->SetConfig(            \
         hComponent,                                         \
         nConfigIndex,                                       \
         pComponentConfigStructure)       /* Macro End */
 
 
-/** The OMX_GetExtensionIndex macro will invoke a component to translate 
-    a vendor specific configuration or parameter string into an OMX 
-    structure index.  There is no requirement for the vendor to support 
-    this command for the indexes already found in the OMX_INDEXTYPE 
-    enumeration (this is done to save space in small components).  The 
+/** The OMX_GetExtensionIndex macro will invoke a component to translate
+    a vendor specific configuration or parameter string into an OMX
+    structure index.  There is no requirement for the vendor to support
+    this command for the indexes already found in the OMX_INDEXTYPE
+    enumeration (this is done to save space in small components).  The
     component shall support all vendor supplied extension indexes not found
-    in the master OMX_INDEXTYPE enumeration.  This is a blocking call.  
-    
+    in the master OMX_INDEXTYPE enumeration.  This is a blocking call.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the GetHandle function.
     @param [in] cParameterName
         OMX_STRING that shall be less than 128 characters long including
-        the trailing null byte.  This is the string that will get 
+        the trailing null byte.  This is the string that will get
         translated by the component into a configuration index.
     @param [out] pIndexType
         a pointer to a OMX_INDEXTYPE to receive the index value.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
@@ -933,53 +933,53 @@ typedef struct OMX_TUNNELSETUPTYPE
         cParameterName,                                     \
         pIndexType)                                         \
     ((OMX_COMPONENTTYPE*)hComponent)->GetExtensionIndex(    \
         hComponent,                                         \
         cParameterName,                                     \
         pIndexType)                     /* Macro End */
 
 
-/** The OMX_GetState macro will invoke the component to get the current 
+/** The OMX_GetState macro will invoke the component to get the current
     state of the component and place the state value into the location
-    pointed to by pState.  
-    
+    pointed to by pState.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] pState
         pointer to the location to receive the state.  The value returned
-        is one of the OMX_STATETYPE members 
+        is one of the OMX_STATETYPE members
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp
  */
 #define OMX_GetState(                                       \
         hComponent,                                         \
         pState)                                             \
     ((OMX_COMPONENTTYPE*)hComponent)->GetState(             \
         hComponent,                                         \
         pState)                         /* Macro End */
 
 
 /** The OMX_UseBuffer macro will request that the component use
-    a buffer (and allocate its own buffer header) already allocated 
-    by another component, or by the IL Client. This is a blocking 
+    a buffer (and allocate its own buffer header) already allocated
+    by another component, or by the IL Client. This is a blocking
     call.
-    
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
         pointer to the buffer header
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
  */
 
 #define OMX_UseBuffer(                                      \
@@ -993,65 +993,65 @@ typedef struct OMX_TUNNELSETUPTYPE
            hComponent,                                      \
            ppBufferHdr,                                     \
            nPortIndex,                                      \
            pAppPrivate,                                     \
            nSizeBytes,                                      \
            pBuffer)
 
 
-/** The OMX_AllocateBuffer macro will request that the component allocate 
-    a new buffer and buffer header.  The component will allocate the 
-    buffer and the buffer header and return a pointer to the buffer 
+/** The OMX_AllocateBuffer macro will request that the component allocate
+    a new buffer and buffer header.  The component will allocate the
+    buffer and the buffer header and return a pointer to the buffer
     header.  This is a blocking call.
-    
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive
         the pointer to the buffer header
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.  The port can be found by using the nPortIndex
         value as an index into the Port Definition array of the component.
     @param [in] pAppPrivate
-        pAppPrivate is used to initialize the pAppPrivate member of the 
+        pAppPrivate is used to initialize the pAppPrivate member of the
         buffer header structure.
     @param [in] nSizeBytes
         size of the buffer to allocate.  Used when bAllocateNew is true.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
- */    
+ */
 #define OMX_AllocateBuffer(                                 \
         hComponent,                                         \
         ppBuffer,                                           \
         nPortIndex,                                         \
         pAppPrivate,                                        \
         nSizeBytes)                                         \
     ((OMX_COMPONENTTYPE*)hComponent)->AllocateBuffer(       \
         hComponent,                                         \
         ppBuffer,                                           \
         nPortIndex,                                         \
         pAppPrivate,                                        \
         nSizeBytes)                     /* Macro End */
 
 
 /** The OMX_FreeBuffer macro will release a buffer header from the component
-    which was allocated using either OMX_AllocateBuffer or OMX_UseBuffer. If  
-    the component allocated the buffer (see the OMX_UseBuffer macro) then 
-    the component shall free the buffer and buffer header. This is a 
-    blocking call. 
-    
+    which was allocated using either OMX_AllocateBuffer or OMX_UseBuffer. If
+    the component allocated the buffer (see the OMX_UseBuffer macro) then
+    the component shall free the buffer and buffer header. This is a
+    blocking call.
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
@@ -1066,27 +1066,27 @@ typedef struct OMX_TUNNELSETUPTYPE
         nPortIndex,                                         \
         pBuffer)                                            \
     ((OMX_COMPONENTTYPE*)hComponent)->FreeBuffer(           \
         hComponent,                                         \
         nPortIndex,                                         \
         pBuffer)                        /* Macro End */
 
 
-/** The OMX_EmptyThisBuffer macro will send a buffer full of data to an 
+/** The OMX_EmptyThisBuffer macro will send a buffer full of data to an
     input port of a component.  The buffer will be emptied by the component
     and returned to the application via the EmptyBufferDone call back.
     This is a non-blocking call in that the component will record the buffer
-    and return immediately and then empty the buffer, later, at the proper 
-    time.  As expected, this macro may be invoked only while the component 
+    and return immediately and then empty the buffer, later, at the proper
+    time.  As expected, this macro may be invoked only while the component
     is in the OMX_StateExecuting.  If nPortIndex does not specify an input
-    port, the component shall return an error.  
-    
+    port, the component shall return an error.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
         or AllocateBuffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
@@ -1096,27 +1096,27 @@ typedef struct OMX_TUNNELSETUPTYPE
 #define OMX_EmptyThisBuffer(                                \
         hComponent,                                         \
         pBuffer)                                            \
     ((OMX_COMPONENTTYPE*)hComponent)->EmptyThisBuffer(      \
         hComponent,                                         \
         pBuffer)                        /* Macro End */
 
 
-/** The OMX_FillThisBuffer macro will send an empty buffer to an 
+/** The OMX_FillThisBuffer macro will send an empty buffer to an
     output port of a component.  The buffer will be filled by the component
     and returned to the application via the FillBufferDone call back.
     This is a non-blocking call in that the component will record the buffer
-    and return immediately and then fill the buffer, later, at the proper 
-    time.  As expected, this macro may be invoked only while the component 
+    and return immediately and then fill the buffer, later, at the proper
+    time.  As expected, this macro may be invoked only while the component
     is in the OMX_ExecutingState.  If nPortIndex does not specify an output
-    port, the component shall return an error.  
-    
+    port, the component shall return an error.
+
     The component should return from this call within 5 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [in] pBuffer
         pointer to an OMX_BUFFERHEADERTYPE structure allocated with UseBuffer
         or AllocateBuffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
@@ -1130,38 +1130,38 @@ typedef struct OMX_TUNNELSETUPTYPE
         hComponent,                                         \
         pBuffer)                        /* Macro End */
 
 
 
 /** The OMX_UseEGLImage macro will request that the component use
     a EGLImage provided by EGL (and allocate its own buffer header)
     This is a blocking call.
-    
+
     The component should return from this call within 20 msec.
-    
+
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the OMX_GetHandle function.
     @param [out] ppBuffer
-        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the 
+        pointer to an OMX_BUFFERHEADERTYPE structure used to receive the
         pointer to the buffer header.  Note that the memory location used
         for this buffer is NOT visible to the IL Client.
     @param [in] nPortIndex
         nPortIndex is used to select the port on the component the buffer will
         be used with.  The port can be found by using the nPortIndex
         value as an index into the Port Definition array of the component.
     @param [in] pAppPrivate
-        pAppPrivate is used to initialize the pAppPrivate member of the 
+        pAppPrivate is used to initialize the pAppPrivate member of the
         buffer header structure.
     @param [in] eglImage
         eglImage contains the handle of the EGLImage to use as a buffer on the
-        specified port.  The component is expected to validate properties of 
+        specified port.  The component is expected to validate properties of
         the EGLImage against the configuration of the port to ensure the component
-        can use the EGLImage as a buffer.          
+        can use the EGLImage as a buffer.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup comp buf
  */
 #define OMX_UseEGLImage(                                    \
            hComponent,                                      \
            ppBufferHdr,                                     \
@@ -1172,125 +1172,125 @@ typedef struct OMX_TUNNELSETUPTYPE
            hComponent,                                      \
            ppBufferHdr,                                     \
            nPortIndex,                                      \
            pAppPrivate,                                     \
            eglImage)
 
 /** The OMX_Init method is used to initialize the OMX core.  It shall be the
     first call made into OMX and it should only be executed one time without
-    an interviening OMX_Deinit call.  
-    
+    an interviening OMX_Deinit call.
+
     The core should return from this call within 20 msec.
 
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Init(void);
 
 
-/** The OMX_Deinit method is used to deinitialize the OMX core.  It shall be 
-    the last call made into OMX. In the event that the core determines that 
-    thare are components loaded when this call is made, the core may return 
+/** The OMX_Deinit method is used to deinitialize the OMX core.  It shall be
+    the last call made into OMX. In the event that the core determines that
+    thare are components loaded when this call is made, the core may return
     with an error rather than try to unload the components.
-        
+
     The core should return from this call within 20 msec.
-    
+
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_Deinit(void);
 
 
 /** The OMX_ComponentNameEnum method will enumerate through all the names of
     recognised valid components in the system. This function is provided
     as a means to detect all the components in the system run-time. There is
     no strict ordering to the enumeration order of component names, although
     each name will only be enumerated once.  If the OMX core supports run-time
     installation of new components, it is only requried to detect newly
     installed components when the first call to enumerate component names
     is made (i.e. when nIndex is 0x0).
-    
+
     The core should return from this call in 20 msec.
-    
+
     @param [out] cComponentName
         pointer to a null terminated string with the component name.  The
         names of the components are strings less than 127 bytes in length
-        plus the trailing null for a maximum size of 128 bytes.  An example 
-        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are 
-        assigned by the vendor, but shall start with "OMX." and then have 
+        plus the trailing null for a maximum size of 128 bytes.  An example
+        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are
+        assigned by the vendor, but shall start with "OMX." and then have
         the Vendor designation next.
     @param [in] nNameLength
-        number of characters in the cComponentName string.  With all 
-        component name strings restricted to less than 128 characters 
+        number of characters in the cComponentName string.  With all
+        component name strings restricted to less than 128 characters
         (including the trailing null) it is recomended that the caller
         provide a input string for the cComponentName of 128 characters.
     @param [in] nIndex
-        number containing the enumeration index for the component. 
+        number containing the enumeration index for the component.
         Multiple calls to OMX_ComponentNameEnum with increasing values
         of nIndex will enumerate through the component names in the
         system until OMX_ErrorNoMore is returned.  The value of nIndex
         is 0 to (N-1), where N is the number of valid installed components
         in the system.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
-        OMX_ErrorNone.  When the value of nIndex exceeds the number of 
+        OMX_ErrorNone.  When the value of nIndex exceeds the number of
         components in the system minus 1, OMX_ErrorNoMore will be
         returned. Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_ComponentNameEnum(
     OMX_OUT OMX_STRING cComponentName,
     OMX_IN  OMX_U32 nNameLength,
     OMX_IN  OMX_U32 nIndex);
 
 
 /** The OMX_GetHandle method will locate the component specified by the
     component name given, load that component into memory and then invoke
-    the component's methods to create an instance of the component.  
-    
+    the component's methods to create an instance of the component.
+
     The core should return from this call within 20 msec.
-    
+
     @param [out] pHandle
         pointer to an OMX_HANDLETYPE pointer to be filled in by this method.
     @param [in] cComponentName
         pointer to a null terminated string with the component name.  The
         names of the components are strings less than 127 bytes in length
-        plus the trailing null for a maximum size of 128 bytes.  An example 
-        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are 
-        assigned by the vendor, but shall start with "OMX." and then have 
+        plus the trailing null for a maximum size of 128 bytes.  An example
+        of a valid component name is "OMX.TI.AUDIO.DSP.MIXER\0".  Names are
+        assigned by the vendor, but shall start with "OMX." and then have
         the Vendor designation next.
     @param [in] pAppData
         pointer to an application defined value that will be returned
         during callbacks so that the application can identify the source
         of the callback.
     @param [in] pCallBacks
         pointer to a OMX_CALLBACKTYPE structure that will be passed to the
-        component to initialize it with.  
+        component to initialize it with.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
     @ingroup core
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_GetHandle(
-    OMX_OUT OMX_HANDLETYPE* pHandle, 
+    OMX_OUT OMX_HANDLETYPE* pHandle,
     OMX_IN  OMX_STRING cComponentName,
     OMX_IN  OMX_PTR pAppData,
     OMX_IN  OMX_CALLBACKTYPE* pCallBacks);
 
 
-/** The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle 
+/** The OMX_FreeHandle method will free a handle allocated by the OMX_GetHandle
     method.  If the component reference count goes to zero, the component will
-    be unloaded from memory.  
-    
-    The core should return from this call within 20 msec when the component is 
+    be unloaded from memory.
+
+    The core should return from this call within 20 msec when the component is
     in the OMX_StateLoaded state.
 
     @param [in] hComponent
         Handle of the component to be accessed.  This is the component
         handle returned by the call to the GetHandle function.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
@@ -1299,131 +1299,131 @@ OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_G
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_FreeHandle(
     OMX_IN  OMX_HANDLETYPE hComponent);
 
 
 
 /** The OMX_SetupTunnel method will handle the necessary calls to the components
     to setup the specified tunnel the two components.  NOTE: This is
     an actual method (not a #define macro).  This method will make calls into
-    the component ComponentTunnelRequest method to do the actual tunnel 
-    connection.  
+    the component ComponentTunnelRequest method to do the actual tunnel
+    connection.
 
-    The ComponentTunnelRequest method on both components will be called. 
-    This method shall not be called unless the component is in the 
+    The ComponentTunnelRequest method on both components will be called.
+    This method shall not be called unless the component is in the
     OMX_StateLoaded state except when the ports used for the tunnel are
     disabled. In this case, the component may be in the OMX_StateExecuting,
-    OMX_StatePause, or OMX_StateIdle states. 
+    OMX_StatePause, or OMX_StateIdle states.
 
     The core should return from this call within 20 msec.
-    
+
     @param [in] hOutput
         Handle of the component to be accessed.  Also this is the handle
         of the component whose port, specified in the nPortOutput parameter
         will be used the source for the tunnel. This is the component handle
-        returned by the call to the OMX_GetHandle function.  There is a 
+        returned by the call to the OMX_GetHandle function.  There is a
         requirement that hOutput be the source for the data when
         tunelling (i.e. nPortOutput is an output port).  If 0x0, the component
         specified in hInput will have it's port specified in nPortInput
         setup for communication with the application / IL client.
     @param [in] nPortOutput
         nPortOutput is used to select the source port on component to be
-        used in the tunnel. 
+        used in the tunnel.
     @param [in] hInput
         This is the component to setup the tunnel with. This is the handle
         of the component whose port, specified in the nPortInput parameter
         will be used the destination for the tunnel. This is the component handle
-        returned by the call to the OMX_GetHandle function.  There is a 
+        returned by the call to the OMX_GetHandle function.  There is a
         requirement that hInput be the destination for the data when
         tunelling (i.e. nPortInut is an input port).   If 0x0, the component
         specified in hOutput will have it's port specified in nPortPOutput
         setup for communication with the application / IL client.
     @param [in] nPortInput
         nPortInput is used to select the destination port on component to be
         used in the tunnel.
     @return OMX_ERRORTYPE
         If the command successfully executes, the return code will be
         OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
-        When OMX_ErrorNotImplemented is returned, one or both components is 
+        When OMX_ErrorNotImplemented is returned, one or both components is
         a non-interop component and does not support tunneling.
-        
+
         On failure, the ports of both components are setup for communication
         with the application / IL Client.
     @ingroup core tun
  */
 OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel(
     OMX_IN  OMX_HANDLETYPE hOutput,
     OMX_IN  OMX_U32 nPortOutput,
     OMX_IN  OMX_HANDLETYPE hInput,
     OMX_IN  OMX_U32 nPortInput);
-    
+
 /** @ingroup cp */
 OMX_API OMX_ERRORTYPE   OMX_GetContentPipe(
     OMX_OUT OMX_HANDLETYPE *hPipe,
     OMX_IN OMX_STRING szURI);
 
 /** The OMX_GetComponentsOfRole method will return the number of components that support the given
-    role and (if the compNames field is non-NULL) the names of those components. The call will fail if 
+    role and (if the compNames field is non-NULL) the names of those components. The call will fail if
     an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
     client should:
         * first call this function with the compNames field NULL to determine the number of component names
-        * second call this function with the compNames field pointing to an array of names allocated 
+        * second call this function with the compNames field pointing to an array of names allocated
           according to the number returned by the first call.
 
     The core should return from this call within 5 msec.
-    
+
     @param [in] role
-        This is generic standard component name consisting only of component class 
+        This is generic standard component name consisting only of component class
         name and the type within that class (e.g. 'audio_decoder.aac').
     @param [inout] pNumComps
-        This is used both as input and output. 
- 
+        This is used both as input and output.
+
         If compNames is NULL, the input is ignored and the output specifies how many components support
         the given role.
-     
-        If compNames is not NULL, on input it bounds the size of the input structure and 
+
+        If compNames is not NULL, on input it bounds the size of the input structure and
         on output, it specifies the number of components string names listed within the compNames parameter.
     @param [inout] compNames
-        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts 
-        a list of the names of all physical components that implement the specified standard component name. 
+        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings which accepts
+        a list of the names of all physical components that implement the specified standard component name.
         Each name is NULL terminated. numComps indicates the number of names.
     @ingroup core
  */
-OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole ( 
+OMX_API OMX_ERRORTYPE OMX_GetComponentsOfRole (
 	OMX_IN      OMX_STRING role,
     OMX_INOUT   OMX_U32 *pNumComps,
     OMX_INOUT   OMX_U8  **compNames);
 
 /** The OMX_GetRolesOfComponent method will return the number of roles supported by the given
-    component and (if the roles field is non-NULL) the names of those roles. The call will fail if 
+    component and (if the roles field is non-NULL) the names of those roles. The call will fail if
     an insufficiently sized array of names is supplied. To ensure the array is sufficiently sized the
     client should:
         * first call this function with the roles field NULL to determine the number of role names
-        * second call this function with the roles field pointing to an array of names allocated 
+        * second call this function with the roles field pointing to an array of names allocated
           according to the number returned by the first call.
 
     The core should return from this call within 5 msec.
 
     @param [in] compName
         This is the name of the component being queried about.
     @param [inout] pNumRoles
-        This is used both as input and output. 
- 
+        This is used both as input and output.
+
         If roles is NULL, the input is ignored and the output specifies how many roles the component supports.
-     
-        If compNames is not NULL, on input it bounds the size of the input structure and 
+
+        If compNames is not NULL, on input it bounds the size of the input structure and
         on output, it specifies the number of roles string names listed within the roles parameter.
     @param [out] roles
-        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings 
-        which accepts a list of the names of all standard components roles implemented on the 
+        If NULL this field is ignored. If non-NULL this points to an array of 128-byte strings
+        which accepts a list of the names of all standard components roles implemented on the
         specified component name. numComps indicates the number of names.
     @ingroup core
  */
-OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent ( 
-	OMX_IN      OMX_STRING compName, 
+OMX_API OMX_ERRORTYPE OMX_GetRolesOfComponent (
+	OMX_IN      OMX_STRING compName,
     OMX_INOUT   OMX_U32 *pNumRoles,
     OMX_OUT     OMX_U8 **roles);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif
--- a/media/openmax_il/il112/OMX_CoreExt.h
+++ b/media/openmax_il/il112/OMX_CoreExt.h
@@ -1,73 +1,73 @@
-/*
- * Copyright (c) 2010 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_CoreExt.h - OpenMax IL version 1.1.2
- * The OMX_CoreExt header file contains extensions to the definitions used
- * by both the application and the component to access common items.
- */
-
-#ifndef OMX_CoreExt_h
-#define OMX_CoreExt_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Each OMX header shall include all required header files to allow the
- * header to compile without errors.  The includes below are required
- * for this header file to compile successfully
- */
-#include <OMX_Core.h>
-
-/** Extensions to the standard IL errors. */ 
-typedef enum OMX_ERROREXTTYPE 
-{
-    OMX_ErrorInvalidMode = (OMX_S32) (OMX_ErrorKhronosExtensions + 0x00000001),
-    OMX_ErrorExtMax = 0x7FFFFFFF
-} OMX_ERROREXTTYPE;
-
-
-/** Event type extensions. */
-typedef enum OMX_EVENTEXTTYPE
-{
-    OMX_EventIndexSettingChanged = OMX_EventKhronosExtensions, /**< component signals the IL client of a change
-                                                                    in a param, config, or extension */
-    OMX_EventExtMax = 0x7FFFFFFF
-} OMX_EVENTEXTTYPE;
-
-
-/** Enable or disable a callback event. */
-typedef struct OMX_CONFIG_CALLBACKREQUESTTYPE {
-    OMX_U32 nSize;              /**< size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
-    OMX_U32 nPortIndex;         /**< port that this structure applies to */
-    OMX_INDEXTYPE nIndex;       /**< the index the callback is requested for */
-    OMX_BOOL bEnable;           /**< enable (OMX_TRUE) or disable (OMX_FALSE) the callback */
-} OMX_CONFIG_CALLBACKREQUESTTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* OMX_CoreExt_h */
-/* File EOF */
+/*
+ * Copyright (c) 2010 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/** OMX_CoreExt.h - OpenMax IL version 1.1.2
+ * The OMX_CoreExt header file contains extensions to the definitions used
+ * by both the application and the component to access common items.
+ */
+
+#ifndef OMX_CoreExt_h
+#define OMX_CoreExt_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Each OMX header shall include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully
+ */
+#include <OMX_Core.h>
+
+/** Extensions to the standard IL errors. */
+typedef enum OMX_ERROREXTTYPE
+{
+    OMX_ErrorInvalidMode = (OMX_S32) (OMX_ErrorKhronosExtensions + 0x00000001),
+    OMX_ErrorExtMax = 0x7FFFFFFF
+} OMX_ERROREXTTYPE;
+
+
+/** Event type extensions. */
+typedef enum OMX_EVENTEXTTYPE
+{
+    OMX_EventIndexSettingChanged = OMX_EventKhronosExtensions, /**< component signals the IL client of a change
+                                                                    in a param, config, or extension */
+    OMX_EventExtMax = 0x7FFFFFFF
+} OMX_EVENTEXTTYPE;
+
+
+/** Enable or disable a callback event. */
+typedef struct OMX_CONFIG_CALLBACKREQUESTTYPE {
+    OMX_U32 nSize;              /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
+    OMX_U32 nPortIndex;         /**< port that this structure applies to */
+    OMX_INDEXTYPE nIndex;       /**< the index the callback is requested for */
+    OMX_BOOL bEnable;           /**< enable (OMX_TRUE) or disable (OMX_FALSE) the callback */
+} OMX_CONFIG_CALLBACKREQUESTTYPE;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_CoreExt_h */
+/* File EOF */
--- a/media/openmax_il/il112/OMX_IVCommon.h
+++ b/media/openmax_il/il112/OMX_IVCommon.h
@@ -1,59 +1,59 @@
 /**
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
-/** 
+/**
  * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
  *  The structures needed by Video and Image components to exchange
  *  parameters and configuration data with the components.
  */
 #ifndef OMX_IVCommon_h
 #define OMX_IVCommon_h
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 /**
  * Each OMX header must include all required header files to allow the header
  * to compile without errors.  The includes below are required for this header
- * file to compile successfully 
+ * file to compile successfully
  */
 
 #include <OMX_Core.h>
 
 /** @defgroup iv OpenMAX IL Imaging and Video Domain
  * Common structures for OpenMAX IL Imaging and Video domains
  * @{
  */
 
 
-/** 
- * Enumeration defining possible uncompressed image/video formats. 
+/**
+ * Enumeration defining possible uncompressed image/video formats.
  *
  * ENUMS:
  *  Unused                 : Placeholder value when format is N/A
  *  Monochrome             : black and white
  *  8bitRGB332             : Red 7:5, Green 4:2, Blue 1:0
  *  12bitRGB444            : Red 11:8, Green 7:4, Blue 3:0
  *  16bitARGB4444          : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
  *  16bitARGB1555          : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
@@ -91,17 +91,17 @@ typedef enum OMX_COLOR_FORMATTYPE {
     OMX_COLOR_Format8bitRGB332,
     OMX_COLOR_Format12bitRGB444,
     OMX_COLOR_Format16bitARGB4444,
     OMX_COLOR_Format16bitARGB1555,
     OMX_COLOR_Format16bitRGB565,
     OMX_COLOR_Format16bitBGR565,
     OMX_COLOR_Format18bitRGB666,
     OMX_COLOR_Format18bitARGB1665,
-    OMX_COLOR_Format19bitARGB1666, 
+    OMX_COLOR_Format19bitARGB1666,
     OMX_COLOR_Format24bitRGB888,
     OMX_COLOR_Format24bitBGR888,
     OMX_COLOR_Format24bitARGB1887,
     OMX_COLOR_Format25bitARGB1888,
     OMX_COLOR_Format32bitBGRA8888,
     OMX_COLOR_Format32bitARGB8888,
     OMX_COLOR_FormatYUV411Planar,
     OMX_COLOR_FormatYUV411PackedPlanar,
@@ -114,729 +114,729 @@ typedef enum OMX_COLOR_FORMATTYPE {
     OMX_COLOR_FormatYCbYCr,
     OMX_COLOR_FormatYCrYCb,
     OMX_COLOR_FormatCbYCrY,
     OMX_COLOR_FormatCrYCbY,
     OMX_COLOR_FormatYUV444Interleaved,
     OMX_COLOR_FormatRawBayer8bit,
     OMX_COLOR_FormatRawBayer10bit,
     OMX_COLOR_FormatRawBayer8bitcompressed,
-    OMX_COLOR_FormatL2, 
-    OMX_COLOR_FormatL4, 
-    OMX_COLOR_FormatL8, 
-    OMX_COLOR_FormatL16, 
-    OMX_COLOR_FormatL24, 
+    OMX_COLOR_FormatL2,
+    OMX_COLOR_FormatL4,
+    OMX_COLOR_FormatL8,
+    OMX_COLOR_FormatL16,
+    OMX_COLOR_FormatL24,
     OMX_COLOR_FormatL32,
     OMX_COLOR_FormatYUV420PackedSemiPlanar,
     OMX_COLOR_FormatYUV422PackedSemiPlanar,
     OMX_COLOR_Format18BitBGR666,
     OMX_COLOR_Format24BitARGB6666,
     OMX_COLOR_Format24BitABGR6666,
-    OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_COLOR_FormatMax = 0x7FFFFFFF
 } OMX_COLOR_FORMATTYPE;
 
 
-/** 
+/**
  * Defines the matrix for conversion from RGB to YUV or vice versa.
- * iColorMatrix should be initialized with the fixed point values 
+ * iColorMatrix should be initialized with the fixed point values
  * used in converting between formats.
  */
 typedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
     OMX_U32 nSize;              /**< Size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */ 
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */
     OMX_U32 nPortIndex;         /**< Port that this struct applies to */
     OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
     OMX_S32 xColorOffset[4];    /**< Stored in signed Q16 format */
 }OMX_CONFIG_COLORCONVERSIONTYPE;
 
 
-/** 
- * Structure defining percent to scale each frame dimension.  For example:  
+/**
+ * Structure defining percent to scale each frame dimension.  For example:
  * To make the width 50% larger, use fWidth = 1.5 and to make the width
  * 1/2 the original size, use fWidth = 0.5
  */
 typedef struct OMX_CONFIG_SCALEFACTORTYPE {
     OMX_U32 nSize;            /**< Size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */ 
+    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
     OMX_U32 nPortIndex;       /**< Port that this struct applies to */
     OMX_S32 xWidth;           /**< Fixed point value stored as Q16 */
     OMX_S32 xHeight;          /**< Fixed point value stored as Q16 */
 }OMX_CONFIG_SCALEFACTORTYPE;
 
 
-/** 
- * Enumeration of possible image filter types 
+/**
+ * Enumeration of possible image filter types
  */
 typedef enum OMX_IMAGEFILTERTYPE {
     OMX_ImageFilterNone,
     OMX_ImageFilterNoise,
     OMX_ImageFilterEmboss,
     OMX_ImageFilterNegative,
     OMX_ImageFilterSketch,
     OMX_ImageFilterOilPaint,
     OMX_ImageFilterHatch,
     OMX_ImageFilterGpen,
-    OMX_ImageFilterAntialias, 
-    OMX_ImageFilterDeRing,       
+    OMX_ImageFilterAntialias,
+    OMX_ImageFilterDeRing,
     OMX_ImageFilterSolarize,
-    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_ImageFilterMax = 0x7FFFFFFF
 } OMX_IMAGEFILTERTYPE;
 
 
-/** 
- * Image filter configuration 
+/**
+ * Image filter configuration
  *
  * STRUCT MEMBERS:
- *  nSize        : Size of the structure in bytes       
+ *  nSize        : Size of the structure in bytes
  *  nVersion     : OMX specification version information
- *  nPortIndex   : Port that this structure applies to 
- *  eImageFilter : Image filter type enumeration      
+ *  nPortIndex   : Port that this structure applies to
+ *  eImageFilter : Image filter type enumeration
  */
 typedef struct OMX_CONFIG_IMAGEFILTERTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_IMAGEFILTERTYPE eImageFilter;
 } OMX_CONFIG_IMAGEFILTERTYPE;
 
 
-/** 
- * Customized U and V for color enhancement 
+/**
+ * Customized U and V for color enhancement
  *
  * STRUCT MEMBERS:
  *  nSize             : Size of the structure in bytes
- *  nVersion          : OMX specification version information 
+ *  nVersion          : OMX specification version information
  *  nPortIndex        : Port that this structure applies to
  *  bColorEnhancement : Enable/disable color enhancement
- *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for 
+ *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for
  *                      U component
- *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for 
+ *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for
  *                      V component
  */
 typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
     OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion; 
+    OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bColorEnhancement;
     OMX_U8 nCustomizedU;
     OMX_U8 nCustomizedV;
 } OMX_CONFIG_COLORENHANCEMENTTYPE;
 
 
-/** 
- * Define color key and color key mask 
+/**
+ * Define color key and color key mask
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version information 
+ *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nARGBColor : 32bit Alpha, Red, Green, Blue Color
  *  nARGBMask  : 32bit Mask for Alpha, Red, Green, Blue channels
  */
 typedef struct OMX_CONFIG_COLORKEYTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nARGBColor;
     OMX_U32 nARGBMask;
 } OMX_CONFIG_COLORKEYTYPE;
 
 
-/** 
- * List of color blend types for pre/post processing 
+/**
+ * List of color blend types for pre/post processing
  *
  * ENUMS:
  *  None          : No color blending present
- *  AlphaConstant : Function is (alpha_constant * src) + 
+ *  AlphaConstant : Function is (alpha_constant * src) +
  *                  (1 - alpha_constant) * dst)
  *  AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
  *  Alternate     : Function is alternating pixels from src and dst
  *  And           : Function is (src & dst)
  *  Or            : Function is (src | dst)
  *  Invert        : Function is ~src
  */
 typedef enum OMX_COLORBLENDTYPE {
     OMX_ColorBlendNone,
     OMX_ColorBlendAlphaConstant,
     OMX_ColorBlendAlphaPerPixel,
     OMX_ColorBlendAlternate,
     OMX_ColorBlendAnd,
     OMX_ColorBlendOr,
     OMX_ColorBlendInvert,
-    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_ColorBlendMax = 0x7FFFFFFF
 } OMX_COLORBLENDTYPE;
 
 
-/** 
- * Color blend configuration 
+/**
+ * Color blend configuration
  *
  * STRUCT MEMBERS:
- *  nSize             : Size of the structure in bytes                        
- *  nVersion          : OMX specification version information                
- *  nPortIndex        : Port that this structure applies to                   
+ *  nSize             : Size of the structure in bytes
+ *  nVersion          : OMX specification version information
+ *  nPortIndex        : Port that this structure applies to
  *  nRGBAlphaConstant : Constant global alpha values when global alpha is used
- *  eColorBlend       : Color blend type enumeration                         
+ *  eColorBlend       : Color blend type enumeration
  */
 typedef struct OMX_CONFIG_COLORBLENDTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nRGBAlphaConstant;
     OMX_COLORBLENDTYPE  eColorBlend;
 } OMX_CONFIG_COLORBLENDTYPE;
 
 
-/** 
+/**
  * Hold frame dimension
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes      
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
- *  nPortIndex : Port that this structure applies to     
- *  nWidth     : Frame width in pixels                 
- *  nHeight    : Frame height in pixels                
+ *  nPortIndex : Port that this structure applies to
+ *  nWidth     : Frame width in pixels
+ *  nHeight    : Frame height in pixels
  */
 typedef struct OMX_FRAMESIZETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nWidth;
     OMX_U32 nHeight;
 } OMX_FRAMESIZETYPE;
 
 
 /**
- * Rotation configuration 
+ * Rotation configuration
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes             
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
- *  nRotation  : +/- integer rotation value               
+ *  nRotation  : +/- integer rotation value
  */
 typedef struct OMX_CONFIG_ROTATIONTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
-    OMX_S32 nRotation; 
+    OMX_S32 nRotation;
 } OMX_CONFIG_ROTATIONTYPE;
 
 
-/** 
- * Possible mirroring directions for pre/post processing 
+/**
+ * Possible mirroring directions for pre/post processing
  *
  * ENUMS:
- *  None       : No mirroring                         
- *  Vertical   : Vertical mirroring, flip on X axis   
- *  Horizontal : Horizontal mirroring, flip on Y axis  
+ *  None       : No mirroring
+ *  Vertical   : Vertical mirroring, flip on X axis
+ *  Horizontal : Horizontal mirroring, flip on Y axis
  *  Both       : Both vertical and horizontal mirroring
  */
 typedef enum OMX_MIRRORTYPE {
     OMX_MirrorNone = 0,
     OMX_MirrorVertical,
     OMX_MirrorHorizontal,
-    OMX_MirrorBoth, 
-    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_MirrorBoth,
+    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_MirrorMax = 0x7FFFFFFF   
+    OMX_MirrorMax = 0x7FFFFFFF
 } OMX_MIRRORTYPE;
 
 
-/** 
- * Mirroring configuration 
+/**
+ * Mirroring configuration
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes      
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
- *  nPortIndex : Port that this structure applies to  
- *  eMirror    : Mirror type enumeration              
+ *  nPortIndex : Port that this structure applies to
+ *  eMirror    : Mirror type enumeration
  */
 typedef struct OMX_CONFIG_MIRRORTYPE {
     OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion; 
+    OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_MIRRORTYPE  eMirror;
 } OMX_CONFIG_MIRRORTYPE;
 
 
-/** 
- * Position information only 
+/**
+ * Position information only
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes               
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
- *  nX         : X coordinate for the point                     
- *  nY         : Y coordinate for the point 
- */                      
+ *  nX         : X coordinate for the point
+ *  nY         : Y coordinate for the point
+ */
 typedef struct OMX_CONFIG_POINTTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_S32 nX;
     OMX_S32 nY;
 } OMX_CONFIG_POINTTYPE;
 
 
-/** 
- * Frame size plus position 
+/**
+ * Frame size plus position
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes                    
- *  nVersion   : OMX specification version information      
- *  nPortIndex : Port that this structure applies to    
+ *  nSize      : Size of the structure in bytes
+ *  nVersion   : OMX specification version information
+ *  nPortIndex : Port that this structure applies to
  *  nLeft      : X Coordinate of the top left corner of the rectangle
  *  nTop       : Y Coordinate of the top left corner of the rectangle
- *  nWidth     : Width of the rectangle                              
- *  nHeight    : Height of the rectangle                             
+ *  nWidth     : Width of the rectangle
+ *  nHeight    : Height of the rectangle
  */
 typedef struct OMX_CONFIG_RECTTYPE {
     OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;  
-    OMX_U32 nPortIndex; 
-    OMX_S32 nLeft; 
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_S32 nLeft;
     OMX_S32 nTop;
     OMX_U32 nWidth;
     OMX_U32 nHeight;
 } OMX_CONFIG_RECTTYPE;
 
 
-/** 
- * Deblocking state; it is required to be set up before starting the codec 
+/**
+ * Deblocking state; it is required to be set up before starting the codec
  *
  * STRUCT MEMBERS:
- *  nSize       : Size of the structure in bytes      
- *  nVersion    : OMX specification version information 
+ *  nSize       : Size of the structure in bytes
+ *  nVersion    : OMX specification version information
  *  nPortIndex  : Port that this structure applies to
- *  bDeblocking : Enable/disable deblocking mode    
+ *  bDeblocking : Enable/disable deblocking mode
  */
 typedef struct OMX_PARAM_DEBLOCKINGTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bDeblocking;
 } OMX_PARAM_DEBLOCKINGTYPE;
 
 
-/** 
- * Stabilization state 
+/**
+ * Stabilization state
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes          
- *  nVersion   : OMX specification version information    
- *  nPortIndex : Port that this structure applies to   
+ *  nSize      : Size of the structure in bytes
+ *  nVersion   : OMX specification version information
+ *  nPortIndex : Port that this structure applies to
  *  bStab      : Enable/disable frame stabilization state
  */
 typedef struct OMX_CONFIG_FRAMESTABTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bStab;
 } OMX_CONFIG_FRAMESTABTYPE;
 
 
-/** 
- * White Balance control type 
+/**
+ * White Balance control type
  *
  * STRUCT MEMBERS:
  *  SunLight : Referenced in JSR-234
  *  Flash    : Optimal for device's integrated flash
  */
 typedef enum OMX_WHITEBALCONTROLTYPE {
     OMX_WhiteBalControlOff = 0,
     OMX_WhiteBalControlAuto,
     OMX_WhiteBalControlSunLight,
     OMX_WhiteBalControlCloudy,
     OMX_WhiteBalControlShade,
     OMX_WhiteBalControlTungsten,
     OMX_WhiteBalControlFluorescent,
     OMX_WhiteBalControlIncandescent,
     OMX_WhiteBalControlFlash,
     OMX_WhiteBalControlHorizon,
-    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_WhiteBalControlMax = 0x7FFFFFFF
 } OMX_WHITEBALCONTROLTYPE;
 
 
-/** 
- * White Balance control configuration 
+/**
+ * White Balance control configuration
  *
  * STRUCT MEMBERS:
- *  nSize            : Size of the structure in bytes       
+ *  nSize            : Size of the structure in bytes
  *  nVersion         : OMX specification version information
- *  nPortIndex       : Port that this structure applies to                 
- *  eWhiteBalControl : White balance enumeration            
+ *  nPortIndex       : Port that this structure applies to
+ *  eWhiteBalControl : White balance enumeration
  */
 typedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
 } OMX_CONFIG_WHITEBALCONTROLTYPE;
 
 
-/** 
- * Exposure control type 
+/**
+ * Exposure control type
  */
 typedef enum OMX_EXPOSURECONTROLTYPE {
     OMX_ExposureControlOff = 0,
     OMX_ExposureControlAuto,
     OMX_ExposureControlNight,
     OMX_ExposureControlBackLight,
     OMX_ExposureControlSpotLight,
     OMX_ExposureControlSports,
     OMX_ExposureControlSnow,
     OMX_ExposureControlBeach,
     OMX_ExposureControlLargeAperture,
     OMX_ExposureControlSmallApperture,
-    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_ExposureControlMax = 0x7FFFFFFF
 } OMX_EXPOSURECONTROLTYPE;
 
 
-/** 
- * White Balance control configuration 
+/**
+ * White Balance control configuration
  *
  * STRUCT MEMBERS:
- *  nSize            : Size of the structure in bytes      
+ *  nSize            : Size of the structure in bytes
  *  nVersion         : OMX specification version information
- *  nPortIndex       : Port that this structure applies to                
- *  eExposureControl : Exposure control enumeration         
+ *  nPortIndex       : Port that this structure applies to
+ *  eExposureControl : Exposure control enumeration
  */
 typedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_EXPOSURECONTROLTYPE eExposureControl;
 } OMX_CONFIG_EXPOSURECONTROLTYPE;
 
 
-/** 
- * Defines sensor supported mode. 
+/**
+ * Defines sensor supported mode.
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes           
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
- *  nPortIndex : Port that this structure applies to 
- *  nFrameRate : Single shot mode is indicated by a 0     
+ *  nPortIndex : Port that this structure applies to
+ *  nFrameRate : Single shot mode is indicated by a 0
  *  bOneShot   : Enable for single shot, disable for streaming
- *  sFrameSize : Framesize                                          
+ *  sFrameSize : Framesize
  */
 typedef struct OMX_PARAM_SENSORMODETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nFrameRate;
     OMX_BOOL bOneShot;
     OMX_FRAMESIZETYPE sFrameSize;
 } OMX_PARAM_SENSORMODETYPE;
 
 
-/** 
- * Defines contrast level 
+/**
+ * Defines contrast level
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes                              
- *  nVersion   : OMX specification version information                
- *  nPortIndex : Port that this structure applies to                 
+ *  nSize      : Size of the structure in bytes
+ *  nVersion   : OMX specification version information
+ *  nPortIndex : Port that this structure applies to
  *  nContrast  : Values allowed for contrast -100 to 100, zero means no change
  */
 typedef struct OMX_CONFIG_CONTRASTTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_S32 nContrast;
 } OMX_CONFIG_CONTRASTTYPE;
 
 
-/** 
- * Defines brightness level 
+/**
+ * Defines brightness level
  *
  * STRUCT MEMBERS:
- *  nSize       : Size of the structure in bytes          
- *  nVersion    : OMX specification version information 
- *  nPortIndex  : Port that this structure applies to 
- *  nBrightness : 0-100%        
+ *  nSize       : Size of the structure in bytes
+ *  nVersion    : OMX specification version information
+ *  nPortIndex  : Port that this structure applies to
+ *  nBrightness : 0-100%
  */
 typedef struct OMX_CONFIG_BRIGHTNESSTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nBrightness;
 } OMX_CONFIG_BRIGHTNESSTYPE;
 
 
-/** 
- * Defines backlight level configuration for a video sink, e.g. LCD panel 
+/**
+ * Defines backlight level configuration for a video sink, e.g. LCD panel
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version information 
+ *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nBacklight : Values allowed for backlight 0-100%
- *  nTimeout   : Number of milliseconds before backlight automatically turns 
- *               off.  A value of 0x0 disables backight timeout 
+ *  nTimeout   : Number of milliseconds before backlight automatically turns
+ *               off.  A value of 0x0 disables backight timeout
  */
 typedef struct OMX_CONFIG_BACKLIGHTTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nBacklight;
     OMX_U32 nTimeout;
 } OMX_CONFIG_BACKLIGHTTYPE;
 
 
-/** 
- * Defines setting for Gamma 
+/**
+ * Defines setting for Gamma
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version information 
+ *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nGamma     : Values allowed for gamma -100 to 100, zero means no change
  */
 typedef struct OMX_CONFIG_GAMMATYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_S32 nGamma;
 } OMX_CONFIG_GAMMATYPE;
 
 
-/** 
- * Define for setting saturation 
- * 
+/**
+ * Define for setting saturation
+ *
  * STRUCT MEMBERS:
  *  nSize       : Size of the structure in bytes
  *  nVersion    : OMX specification version information
  *  nPortIndex  : Port that this structure applies to
- *  nSaturation : Values allowed for saturation -100 to 100, zero means 
+ *  nSaturation : Values allowed for saturation -100 to 100, zero means
  *                no change
  */
 typedef struct OMX_CONFIG_SATURATIONTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_S32 nSaturation;
 } OMX_CONFIG_SATURATIONTYPE;
 
 
-/** 
- * Define for setting Lightness 
+/**
+ * Define for setting Lightness
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
- *  nLightness : Values allowed for lightness -100 to 100, zero means no 
+ *  nLightness : Values allowed for lightness -100 to 100, zero means no
  *               change
  */
 typedef struct OMX_CONFIG_LIGHTNESSTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_S32 nLightness;
 } OMX_CONFIG_LIGHTNESSTYPE;
 
 
-/** 
- * Plane blend configuration 
+/**
+ * Plane blend configuration
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes 
+ *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Index of input port associated with the plane.
- *  nDepth     : Depth of the plane in relation to the screen. Higher 
- *               numbered depths are "behind" lower number depths.  
+ *  nDepth     : Depth of the plane in relation to the screen. Higher
+ *               numbered depths are "behind" lower number depths.
  *               This number defaults to the Port Index number.
- *  nAlpha     : Transparency blending component for the entire plane.  
+ *  nAlpha     : Transparency blending component for the entire plane.
  *               See blending modes for more detail.
  */
 typedef struct OMX_CONFIG_PLANEBLENDTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nDepth;
     OMX_U32 nAlpha;
 } OMX_CONFIG_PLANEBLENDTYPE;
 
 
-/** 
+/**
  * Define interlace type
  *
  * STRUCT MEMBERS:
- *  nSize                 : Size of the structure in bytes 
- *  nVersion              : OMX specification version information 
+ *  nSize                 : Size of the structure in bytes
+ *  nVersion              : OMX specification version information
  *  nPortIndex            : Port that this structure applies to
- *  bEnable               : Enable control variable for this functionality 
+ *  bEnable               : Enable control variable for this functionality
  *                          (see below)
- *  nInterleavePortIndex  : Index of input or output port associated with  
- *                          the interleaved plane. 
+ *  nInterleavePortIndex  : Index of input or output port associated with
+ *                          the interleaved plane.
  *  pPlanarPortIndexes[4] : Index of input or output planar ports.
  */
 typedef struct OMX_PARAM_INTERLEAVETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bEnable;
     OMX_U32 nInterleavePortIndex;
 } OMX_PARAM_INTERLEAVETYPE;
 
 
-/** 
- * Defines the picture effect used for an input picture 
+/**
+ * Defines the picture effect used for an input picture
  */
 typedef enum OMX_TRANSITIONEFFECTTYPE {
     OMX_EffectNone,
     OMX_EffectFadeFromBlack,
     OMX_EffectFadeToBlack,
     OMX_EffectUnspecifiedThroughConstantColor,
     OMX_EffectDissolve,
     OMX_EffectWipe,
     OMX_EffectUnspecifiedMixOfTwoScenes,
-    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_EffectMax = 0x7FFFFFFF
 } OMX_TRANSITIONEFFECTTYPE;
 
 
-/** 
- * Structure used to configure current transition effect 
+/**
+ * Structure used to configure current transition effect
  *
  * STRUCT MEMBERS:
  * nSize      : Size of the structure in bytes
- * nVersion   : OMX specification version information 
+ * nVersion   : OMX specification version information
  * nPortIndex : Port that this structure applies to
  * eEffect    : Effect to enable
  */
 typedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_TRANSITIONEFFECTTYPE eEffect;
 } OMX_CONFIG_TRANSITIONEFFECTTYPE;
 
 
-/** 
- * Defines possible data unit types for encoded video data. The data unit 
+/**
+ * Defines possible data unit types for encoded video data. The data unit
  * types are used both for encoded video input for playback as well as
- * encoded video output from recording. 
+ * encoded video output from recording.
  */
 typedef enum OMX_DATAUNITTYPE {
     OMX_DataUnitCodedPicture,
     OMX_DataUnitVideoSegment,
     OMX_DataUnitSeveralSegments,
     OMX_DataUnitArbitraryStreamSection,
-    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_DataUnitMax = 0x7FFFFFFF
 } OMX_DATAUNITTYPE;
 
 
-/** 
- * Defines possible encapsulation types for coded video data unit. The 
- * encapsulation information is used both for encoded video input for 
- * playback as well as encoded video output from recording. 
+/**
+ * Defines possible encapsulation types for coded video data unit. The
+ * encapsulation information is used both for encoded video input for
+ * playback as well as encoded video output from recording.
  */
 typedef enum OMX_DATAUNITENCAPSULATIONTYPE {
     OMX_DataEncapsulationElementaryStream,
     OMX_DataEncapsulationGenericPayload,
     OMX_DataEncapsulationRtpPayload,
-    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_DataEncapsulationMax = 0x7FFFFFFF
 } OMX_DATAUNITENCAPSULATIONTYPE;
 
 
-/** 
- * Structure used to configure the type of being decoded/encoded 
+/**
+ * Structure used to configure the type of being decoded/encoded
  */
 typedef struct OMX_PARAM_DATAUNITTYPE {
     OMX_U32 nSize;            /**< Size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 
+    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex;       /**< Port that this structure applies to */
     OMX_DATAUNITTYPE eUnitType;
     OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
 } OMX_PARAM_DATAUNITTYPE;
 
 
 /**
- * Defines dither types 
+ * Defines dither types
  */
 typedef enum OMX_DITHERTYPE {
     OMX_DitherNone,
     OMX_DitherOrdered,
     OMX_DitherErrorDiffusion,
     OMX_DitherOther,
-    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_DitherMax = 0x7FFFFFFF
 } OMX_DITHERTYPE;
 
 
-/** 
- * Structure used to configure current type of dithering 
+/**
+ * Structure used to configure current type of dithering
  */
 typedef struct OMX_CONFIG_DITHERTYPE {
     OMX_U32 nSize;            /**< Size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 
+    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex;       /**< Port that this structure applies to */
     OMX_DITHERTYPE eDither;   /**< Type of dithering to use */
 } OMX_CONFIG_DITHERTYPE;
 
 typedef struct OMX_CONFIG_CAPTUREMODETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;     /**< Port that this structure applies to */
-    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture 
+    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture
                              *   data as fast as possible (otherwise obey port's frame rate). */
-    OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the 
-                             *   specified number of frames (otherwise the port does not 
-                             *   terminate the capture until instructed to do so by the client). 
-                             *   Even if set, the client may manually terminate the capture prior 
+    OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
+                             *   specified number of frames (otherwise the port does not
+                             *   terminate the capture until instructed to do so by the client).
+                             *   Even if set, the client may manually terminate the capture prior
                              *   to reaching the limit. */
     OMX_U32 nFrameLimit;      /**< Limit on number of frames emitted during a capture (only
                                *   valid if bFrameLimited is set). */
 } OMX_CONFIG_CAPTUREMODETYPE;
 
 typedef enum OMX_METERINGTYPE {
- 
+
     OMX_MeteringModeAverage,     /**< Center-weighted average metering. */
     OMX_MeteringModeSpot,  	      /**< Spot (partial) metering. */
     OMX_MeteringModeMatrix,      /**< Matrix or evaluative metering. */
- 
-    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+
+    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_EVModeMax = 0x7fffffff
 } OMX_METERINGTYPE;
- 
+
 typedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_METERINGTYPE eMetering;
     OMX_S32 xEVCompensation;      /**< Fixed point value stored as Q16 */
     OMX_U32 nApertureFNumber;     /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
     OMX_BOOL bAutoAperture;		/**< Whether aperture number is defined automatically */
-    OMX_U32 nShutterSpeedMsec;    /**< Shutterspeed in milliseconds */ 
-    OMX_BOOL bAutoShutterSpeed;	/**< Whether shutter speed is defined automatically */ 
+    OMX_U32 nShutterSpeedMsec;    /**< Shutterspeed in milliseconds */
+    OMX_BOOL bAutoShutterSpeed;	/**< Whether shutter speed is defined automatically */
     OMX_U32 nSensitivity;         /**< e.g. nSensitivity = 100 implies "ISO 100" */
     OMX_BOOL bAutoSensitivity;	/**< Whether sensitivity is defined automatically */
 } OMX_CONFIG_EXPOSUREVALUETYPE;
 
-/** 
- * Focus region configuration 
+/**
+ * Focus region configuration
  *
  * STRUCT MEMBERS:
  *  nSize           : Size of the structure in bytes
  *  nVersion        : OMX specification version information
  *  nPortIndex      : Port that this structure applies to
  *  bCenter         : Use center region as focus region of interest
  *  bLeft           : Use left region as focus region of interest
  *  bRight          : Use right region as focus region of interest
@@ -857,32 +857,32 @@ typedef struct OMX_CONFIG_FOCUSREGIONTYP
     OMX_BOOL bTop;
     OMX_BOOL bBottom;
     OMX_BOOL bTopLeft;
     OMX_BOOL bTopRight;
     OMX_BOOL bBottomLeft;
     OMX_BOOL bBottomRight;
 } OMX_CONFIG_FOCUSREGIONTYPE;
 
-/** 
- * Focus Status type 
+/**
+ * Focus Status type
  */
 typedef enum OMX_FOCUSSTATUSTYPE {
     OMX_FocusStatusOff = 0,
     OMX_FocusStatusRequest,
     OMX_FocusStatusReached,
     OMX_FocusStatusUnableToReach,
     OMX_FocusStatusLost,
-    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_FocusStatusMax = 0x7FFFFFFF
 } OMX_FOCUSSTATUSTYPE;
 
-/** 
- * Focus status configuration 
+/**
+ * Focus status configuration
  *
  * STRUCT MEMBERS:
  *  nSize               : Size of the structure in bytes
  *  nVersion            : OMX specification version information
  *  nPortIndex          : Port that this structure applies to
  *  eFocusStatus        : Specifies the focus status
  *  bCenterStatus       : Use center region as focus region of interest
  *  bLeftStatus         : Use left region as focus region of interest
--- a/media/openmax_il/il112/OMX_Image.h
+++ b/media/openmax_il/il112/OMX_Image.h
@@ -1,319 +1,319 @@
 /**
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-/** 
+/**
  * @file OMX_Image.h - OpenMax IL version 1.1.2
- * The structures needed by Image components to exchange parameters and 
+ * The structures needed by Image components to exchange parameters and
  * configuration data with the components.
  */
 #ifndef OMX_Image_h
 #define OMX_Image_h
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /**
- * Each OMX header must include all required header files to allow the 
- * header to compile without errors.  The includes below are required  
- * for this header file to compile successfully 
+ * Each OMX header must include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully
  */
 
 #include <OMX_IVCommon.h>
 
 /** @defgroup imaging OpenMAX IL Imaging Domain
  * @ingroup iv
  * Structures for OpenMAX IL Imaging domain
  * @{
  */
 
-/** 
- * Enumeration used to define the possible image compression coding. 
+/**
+ * Enumeration used to define the possible image compression coding.
  */
 typedef enum OMX_IMAGE_CODINGTYPE {
     OMX_IMAGE_CodingUnused,      /**< Value when format is N/A */
     OMX_IMAGE_CodingAutoDetect,  /**< Auto detection of image format */
     OMX_IMAGE_CodingJPEG,        /**< JPEG/JFIF image format */
     OMX_IMAGE_CodingJPEG2K,      /**< JPEG 2000 image format */
     OMX_IMAGE_CodingEXIF,        /**< EXIF image format */
     OMX_IMAGE_CodingTIFF,        /**< TIFF image format */
     OMX_IMAGE_CodingGIF,         /**< Graphics image format */
     OMX_IMAGE_CodingPNG,         /**< PNG image format */
     OMX_IMAGE_CodingLZW,         /**< LZW image format */
     OMX_IMAGE_CodingBMP,         /**< Windows Bitmap format */
-    OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_IMAGE_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_IMAGE_CodingMax = 0x7FFFFFFF
 } OMX_IMAGE_CODINGTYPE;
 
 
 /**
- * Data structure used to define an image path. The number of image paths 
- * for input and output will vary by type of the image component.  
- * 
+ * Data structure used to define an image path. The number of image paths
+ * for input and output will vary by type of the image component.
+ *
  *  Input (aka Source) : Zero Inputs, one Output,
  *  Splitter           : One Input, 2 or more Outputs,
  *  Processing Element : One Input, one output,
  *  Mixer              : 2 or more inputs, one output,
  *  Output (aka Sink)  : One Input, zero outputs.
- * 
- * The PortDefinition structure is used to define all of the parameters 
- * necessary for the compliant component to setup an input or an output  
- * image path.  If additional vendor specific data is required, it should  
- * be transmitted to the component using the CustomCommand function.   
- * Compliant components will prepopulate this structure with optimal  
+ *
+ * The PortDefinition structure is used to define all of the parameters
+ * necessary for the compliant component to setup an input or an output
+ * image path.  If additional vendor specific data is required, it should
+ * be transmitted to the component using the CustomCommand function.
+ * Compliant components will prepopulate this structure with optimal
  * values during the OMX_GetParameter() command.
  *
  * STRUCT MEMBERS:
  *  cMIMEType             : MIME type of data for the port
- *  pNativeRender         : Platform specific reference for a display if a 
+ *  pNativeRender         : Platform specific reference for a display if a
  *                          sync, otherwise this field is 0
- *  nFrameWidth           : Width of frame to be used on port if 
- *                          uncompressed format is used.  Use 0 for 
+ *  nFrameWidth           : Width of frame to be used on port if
+ *                          uncompressed format is used.  Use 0 for
  *                          unknown, don't care or variable
- *  nFrameHeight          : Height of frame to be used on port if 
- *                          uncompressed format is used. Use 0 for 
+ *  nFrameHeight          : Height of frame to be used on port if
+ *                          uncompressed format is used. Use 0 for
  *                          unknown, don't care or variable
- *  nStride               : Number of bytes per span of an image (i.e. 
+ *  nStride               : Number of bytes per span of an image (i.e.
  *                          indicates the number of bytes to get from
- *                          span N to span N+1, where negative stride 
+ *                          span N to span N+1, where negative stride
  *                          indicates the image is bottom up
  *  nSliceHeight          : Height used when encoding in slices
- *  bFlagErrorConcealment : Turns on error concealment if it is supported by 
+ *  bFlagErrorConcealment : Turns on error concealment if it is supported by
  *                          the OMX component
- *  eCompressionFormat    : Compression format used in this instance of  
- *                          the component. When OMX_IMAGE_CodingUnused is 
+ *  eCompressionFormat    : Compression format used in this instance of
+ *                          the component. When OMX_IMAGE_CodingUnused is
  *                          specified, eColorFormat is valid
  *  eColorFormat          : Decompressed format used by this component
- *  pNativeWindow         : Platform specific reference for a window object if a 
- *                          display sink , otherwise this field is 0x0. 
+ *  pNativeWindow         : Platform specific reference for a window object if a
+ *                          display sink , otherwise this field is 0x0.
  */
 typedef struct OMX_IMAGE_PORTDEFINITIONTYPE {
     OMX_STRING cMIMEType;
     OMX_NATIVE_DEVICETYPE pNativeRender;
-    OMX_U32 nFrameWidth; 
+    OMX_U32 nFrameWidth;
     OMX_U32 nFrameHeight;
-    OMX_S32 nStride;     
+    OMX_S32 nStride;
     OMX_U32 nSliceHeight;
     OMX_BOOL bFlagErrorConcealment;
     OMX_IMAGE_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
     OMX_NATIVE_WINDOWTYPE pNativeWindow;
 } OMX_IMAGE_PORTDEFINITIONTYPE;
 
 
-/**  
- * Port format parameter.  This structure is used to enumerate the various 
+/**
+ * Port format parameter.  This structure is used to enumerate the various
  * data input/output format supported by the port.
- * 
+ *
  * STRUCT MEMBERS:
  *  nSize              : Size of the structure in bytes
  *  nVersion           : OMX specification version information
  *  nPortIndex         : Indicates which port to set
- *  nIndex             : Indicates the enumeration index for the format from 
+ *  nIndex             : Indicates the enumeration index for the format from
  *                       0x0 to N-1
- *  eCompressionFormat : Compression format used in this instance of the 
- *                       component. When OMX_IMAGE_CodingUnused is specified, 
+ *  eCompressionFormat : Compression format used in this instance of the
+ *                       component. When OMX_IMAGE_CodingUnused is specified,
  *                       eColorFormat is valid
  *  eColorFormat       : Decompressed format used by this component
  */
 typedef struct OMX_IMAGE_PARAM_PORTFORMATTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nIndex;
     OMX_IMAGE_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
 } OMX_IMAGE_PARAM_PORTFORMATTYPE;
 
 
-/** 
- * Flash control type 
+/**
+ * Flash control type
  *
  * ENUMS
  *  Torch : Flash forced constantly on
  */
 typedef enum OMX_IMAGE_FLASHCONTROLTYPE {
     OMX_IMAGE_FlashControlOn = 0,
     OMX_IMAGE_FlashControlOff,
     OMX_IMAGE_FlashControlAuto,
     OMX_IMAGE_FlashControlRedEyeReduction,
     OMX_IMAGE_FlashControlFillin,
     OMX_IMAGE_FlashControlTorch,
-    OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_IMAGE_FlashControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_IMAGE_FlashControlMax = 0x7FFFFFFF
 } OMX_IMAGE_FLASHCONTROLTYPE;
 
 
-/** 
- * Flash control configuration 
+/**
+ * Flash control configuration
  *
  * STRUCT MEMBERS:
  *  nSize         : Size of the structure in bytes
  *  nVersion      : OMX specification version information
  *  nPortIndex    : Port that this structure applies to
  *  eFlashControl : Flash control type
  */
 typedef struct OMX_IMAGE_PARAM_FLASHCONTROLTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_IMAGE_FLASHCONTROLTYPE eFlashControl;
 } OMX_IMAGE_PARAM_FLASHCONTROLTYPE;
 
 
-/** 
- * Focus control type 
+/**
+ * Focus control type
  */
 typedef enum OMX_IMAGE_FOCUSCONTROLTYPE {
     OMX_IMAGE_FocusControlOn = 0,
     OMX_IMAGE_FocusControlOff,
     OMX_IMAGE_FocusControlAuto,
     OMX_IMAGE_FocusControlAutoLock,
-    OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_IMAGE_FocusControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_IMAGE_FocusControlMax = 0x7FFFFFFF
 } OMX_IMAGE_FOCUSCONTROLTYPE;
 
- 
-/** 
- * Focus control configuration 
+
+/**
+ * Focus control configuration
  *
  * STRUCT MEMBERS:
  *  nSize           : Size of the structure in bytes
  *  nVersion        : OMX specification version information
  *  nPortIndex      : Port that this structure applies to
  *  eFocusControl   : Focus control
- *  nFocusSteps     : Focus can take on values from 0 mm to infinity. 
+ *  nFocusSteps     : Focus can take on values from 0 mm to infinity.
  *                    Interest is only in number of steps over this range.
  *  nFocusStepIndex : Current focus step index
  */
 typedef struct OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_IMAGE_FOCUSCONTROLTYPE eFocusControl;
     OMX_U32 nFocusSteps;
     OMX_U32 nFocusStepIndex;
 } OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE;
 
 
-/** 
+/**
  * Q Factor for JPEG compression, which controls the tradeoff between image
  * quality and size.  Q Factor provides a more simple means of controlling
  * JPEG compression quality, without directly programming Quantization
- * tables for chroma and luma 
+ * tables for chroma and luma
  *
  * STRUCT MEMBERS:
- *  nSize      : Size of the structure in bytes         
- *  nVersion   : OMX specification version information 
- *  nPortIndex : Port that this structure applies to 
- *  nQFactor   : JPEG Q factor value in the range of 1-100. A factor of 1 
- *               produces the smallest, worst quality images, and a factor 
- *               of 100 produces the largest, best quality images.  A 
- *               typical default is 75 for small good quality images               
+ *  nSize      : Size of the structure in bytes
+ *  nVersion   : OMX specification version information
+ *  nPortIndex : Port that this structure applies to
+ *  nQFactor   : JPEG Q factor value in the range of 1-100. A factor of 1
+ *               produces the smallest, worst quality images, and a factor
+ *               of 100 produces the largest, best quality images.  A
+ *               typical default is 75 for small good quality images
  */
 typedef struct OMX_IMAGE_PARAM_QFACTORTYPE {
-    OMX_U32 nSize;            
-    OMX_VERSIONTYPE nVersion; 
-    OMX_U32 nPortIndex;       
-    OMX_U32 nQFactor;                                        
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nQFactor;
 } OMX_IMAGE_PARAM_QFACTORTYPE;
 
-/** 
- * Quantization table type 
+/**
+ * Quantization table type
  */
 
 typedef enum OMX_IMAGE_QUANTIZATIONTABLETYPE {
     OMX_IMAGE_QuantizationTableLuma = 0,
     OMX_IMAGE_QuantizationTableChroma,
     OMX_IMAGE_QuantizationTableChromaCb,
     OMX_IMAGE_QuantizationTableChromaCr,
-    OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_IMAGE_QuantizationTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_IMAGE_QuantizationTableMax = 0x7FFFFFFF
 } OMX_IMAGE_QUANTIZATIONTABLETYPE;
 
-/** 
+/**
  * JPEG quantization tables are used to determine DCT compression for
- * YUV data, as an alternative to specifying Q factor, providing exact 
- * control of compression 
+ * YUV data, as an alternative to specifying Q factor, providing exact
+ * control of compression
  *
  * STRUCT MEMBERS:
  *  nSize                   : Size of the structure in bytes
- *  nVersion                : OMX specification version information 
+ *  nVersion                : OMX specification version information
  *  nPortIndex              : Port that this structure applies to
  *  eQuantizationTable      : Quantization table type
- *  nQuantizationMatrix[64] : JPEG quantization table of coefficients stored 
- *                            in increasing columns then by rows of data (i.e. 
- *                            row 1, ... row 8). Quantization values are in 
+ *  nQuantizationMatrix[64] : JPEG quantization table of coefficients stored
+ *                            in increasing columns then by rows of data (i.e.
+ *                            row 1, ... row 8). Quantization values are in
  *                            the range 0-255 and stored in linear order
- *                            (i.e. the component will zig-zag the 
- *                            quantization table data if required internally) 
+ *                            (i.e. the component will zig-zag the
+ *                            quantization table data if required internally)
  */
 typedef struct OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_IMAGE_QUANTIZATIONTABLETYPE eQuantizationTable;
     OMX_U8 nQuantizationMatrix[64];
 } OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE;
 
 
-/** 
- * Huffman table type, the same Huffman table is applied for chroma and 
- * luma component 
+/**
+ * Huffman table type, the same Huffman table is applied for chroma and
+ * luma component
  */
 typedef enum OMX_IMAGE_HUFFMANTABLETYPE {
     OMX_IMAGE_HuffmanTableAC = 0,
     OMX_IMAGE_HuffmanTableDC,
     OMX_IMAGE_HuffmanTableACLuma,
     OMX_IMAGE_HuffmanTableACChroma,
     OMX_IMAGE_HuffmanTableDCLuma,
     OMX_IMAGE_HuffmanTableDCChroma,
-    OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_IMAGE_HuffmanTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_IMAGE_HuffmanTableMax = 0x7FFFFFFF
 } OMX_IMAGE_HUFFMANTABLETYPE;
 
-/** 
- * JPEG Huffman table 
+/**
+ * JPEG Huffman table
  *
  * STRUCT MEMBERS:
  *  nSize                            : Size of the structure in bytes
  *  nVersion                         : OMX specification version information
  *  nPortIndex                       : Port that this structure applies to
  *  eHuffmanTable                    : Huffman table type
- *  nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each 
+ *  nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each
  *                                     possible length
- *  nHuffmanTable[256]               : 0-255, the size used for AC and DC 
- *                                     HuffmanTable are 16 and 162 
+ *  nHuffmanTable[256]               : 0-255, the size used for AC and DC
+ *                                     HuffmanTable are 16 and 162
  */
 typedef struct OMX_IMAGE_PARAM_HUFFMANTTABLETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_IMAGE_HUFFMANTABLETYPE eHuffmanTable;
     OMX_U8 nNumberOfHuffmanCodeOfLength[16];
     OMX_U8 nHuffmanTable[256];
--- a/media/openmax_il/il112/OMX_Index.h
+++ b/media/openmax_il/il112/OMX_Index.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** @file OMX_Index.h - OpenMax IL version 1.1.2
  *  The OMX_Index header file contains the definitions for both applications
  *  and components .
  */
 
@@ -32,66 +32,66 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header must include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 #include <OMX_Types.h>
 
 
 /** The OMX_INDEXTYPE enumeration is used to select a structure when either
- *  getting or setting parameters and/or configuration data.  Each entry in 
- *  this enumeration maps to an OMX specified structure.  When the 
+ *  getting or setting parameters and/or configuration data.  Each entry in
+ *  this enumeration maps to an OMX specified structure.  When the
  *  OMX_GetParameter, OMX_SetParameter, OMX_GetConfig or OMX_SetConfig methods
  *  are used, the second parameter will always be an entry from this enumeration
  *  and the third entry will be the structure shown in the comments for the entry.
- *  For example, if the application is initializing a cropping function, the 
- *  OMX_SetConfig command would have OMX_IndexConfigCommonInputCrop as the second parameter 
- *  and would send a pointer to an initialized OMX_RECTTYPE structure as the 
+ *  For example, if the application is initializing a cropping function, the
+ *  OMX_SetConfig command would have OMX_IndexConfigCommonInputCrop as the second parameter
+ *  and would send a pointer to an initialized OMX_RECTTYPE structure as the
  *  third parameter.
- *  
+ *
  *  The enumeration entries named with the OMX_Config prefix are sent using
  *  the OMX_SetConfig command and the enumeration entries named with the
  *  OMX_PARAM_ prefix are sent using the OMX_SetParameter command.
  */
 typedef enum OMX_INDEXTYPE {
 
     OMX_IndexComponentStartUnused = 0x01000000,
     OMX_IndexParamPriorityMgmt,             /**< reference: OMX_PRIORITYMGMTTYPE */
     OMX_IndexParamAudioInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamImageInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamVideoInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamOtherInit,                /**< reference: OMX_PORT_PARAM_TYPE */
     OMX_IndexParamNumAvailableStreams,      /**< reference: OMX_PARAM_U32TYPE */
     OMX_IndexParamActiveStream,             /**< reference: OMX_PARAM_U32TYPE */
     OMX_IndexParamSuspensionPolicy,         /**< reference: OMX_PARAM_SUSPENSIONPOLICYTYPE */
     OMX_IndexParamComponentSuspended,       /**< reference: OMX_PARAM_SUSPENSIONTYPE */
-    OMX_IndexConfigCapturing,               /**< reference: OMX_CONFIG_BOOLEANTYPE */ 
-    OMX_IndexConfigCaptureMode,             /**< reference: OMX_CONFIG_CAPTUREMODETYPE */ 
-    OMX_IndexAutoPauseAfterCapture,         /**< reference: OMX_CONFIG_BOOLEANTYPE */ 
+    OMX_IndexConfigCapturing,               /**< reference: OMX_CONFIG_BOOLEANTYPE */
+    OMX_IndexConfigCaptureMode,             /**< reference: OMX_CONFIG_CAPTUREMODETYPE */
+    OMX_IndexAutoPauseAfterCapture,         /**< reference: OMX_CONFIG_BOOLEANTYPE */
     OMX_IndexParamContentURI,               /**< reference: OMX_PARAM_CONTENTURITYPE */
-    OMX_IndexParamCustomContentPipe,        /**< reference: OMX_PARAM_CONTENTPIPETYPE */ 
+    OMX_IndexParamCustomContentPipe,        /**< reference: OMX_PARAM_CONTENTPIPETYPE */
     OMX_IndexParamDisableResourceConcealment, /**< reference: OMX_RESOURCECONCEALMENTTYPE */
     OMX_IndexConfigMetadataItemCount,       /**< reference: OMX_CONFIG_METADATAITEMCOUNTTYPE */
     OMX_IndexConfigContainerNodeCount,      /**< reference: OMX_CONFIG_CONTAINERNODECOUNTTYPE */
     OMX_IndexConfigMetadataItem,            /**< reference: OMX_CONFIG_METADATAITEMTYPE */
     OMX_IndexConfigCounterNodeID,           /**< reference: OMX_CONFIG_CONTAINERNODEIDTYPE */
     OMX_IndexParamMetadataFilterType,       /**< reference: OMX_PARAM_METADATAFILTERTYPE */
     OMX_IndexParamMetadataKeyFilter,        /**< reference: OMX_PARAM_METADATAFILTERTYPE */
     OMX_IndexConfigPriorityMgmt,            /**< reference: OMX_PRIORITYMGMTTYPE */
     OMX_IndexParamStandardComponentRole,    /**< reference: OMX_PARAM_COMPONENTROLETYPE */
 
     OMX_IndexPortStartUnused = 0x02000000,
     OMX_IndexParamPortDefinition,           /**< reference: OMX_PARAM_PORTDEFINITIONTYPE */
-    OMX_IndexParamCompBufferSupplier,       /**< reference: OMX_PARAM_BUFFERSUPPLIERTYPE */ 
+    OMX_IndexParamCompBufferSupplier,       /**< reference: OMX_PARAM_BUFFERSUPPLIERTYPE */
     OMX_IndexReservedStartUnused = 0x03000000,
 
     /* Audio parameters and configurations */
     OMX_IndexAudioStartUnused = 0x04000000,
     OMX_IndexParamAudioPortFormat,          /**< reference: OMX_AUDIO_PARAM_PORTFORMATTYPE */
     OMX_IndexParamAudioPcm,                 /**< reference: OMX_AUDIO_PARAM_PCMMODETYPE */
     OMX_IndexParamAudioAac,                 /**< reference: OMX_AUDIO_PARAM_AACPROFILETYPE */
     OMX_IndexParamAudioRa,                  /**< reference: OMX_AUDIO_PARAM_RATYPE */
@@ -233,20 +233,20 @@ typedef enum OMX_INDEXTYPE {
     OMX_IndexConfigTimeCurrentAudioReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimeCurrentVideoReference, /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimeMediaTimeRequest,    /**< reference: OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE (write only) */
     OMX_IndexConfigTimeClientStartTime,     /**<reference:  OMX_TIME_CONFIG_TIMESTAMPTYPE (write only) */
     OMX_IndexConfigTimePosition,            /**< reference: OMX_TIME_CONFIG_TIMESTAMPTYPE */
     OMX_IndexConfigTimeSeekMode,            /**< reference: OMX_TIME_CONFIG_SEEKMODETYPE */
 
 
-    OMX_IndexKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_IndexKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     /* Vendor specific area */
     OMX_IndexVendorStartUnused = 0x7F000000,
-    /* Vendor specific structures should be in the range of 0x7F000000 
+    /* Vendor specific structures should be in the range of 0x7F000000
        to 0x7FFFFFFE.  This range is not broken out by vendor, so
        private indexes are not guaranteed unique and therefore should
        only be sent to the appropriate component. */
 
     OMX_IndexMax = 0x7FFFFFFF
 
 } OMX_INDEXTYPE;
 
--- a/media/openmax_il/il112/OMX_IndexExt.h
+++ b/media/openmax_il/il112/OMX_IndexExt.h
@@ -1,90 +1,90 @@
-/*
- * Copyright (c) 2010 The Khronos Group Inc. 
- * 
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
- *
- */
-
-/** @file OMX_IndexExt.h - OpenMax IL version 1.1.2
- * The OMX_IndexExt header file contains extensions to the definitions 
- * for both applications and components .
- */
-
-#ifndef OMX_IndexExt_h
-#define OMX_IndexExt_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Each OMX header shall include all required header files to allow the
- * header to compile without errors.  The includes below are required
- * for this header file to compile successfully
- */
-#include <OMX_Index.h>
-
-
-/** Khronos standard extension indices.
-
-This enum lists the current Khronos extension indices to OpenMAX IL.
-*/
-typedef enum OMX_INDEXEXTTYPE {
-
-    /* Component parameters and configurations */
-    OMX_IndexExtComponentStartUnused = OMX_IndexKhronosExtensions + 0x00100000,
-    OMX_IndexConfigCallbackRequest,                 /**< reference: OMX_CONFIG_CALLBACKREQUESTTYPE */
-    OMX_IndexConfigCommitMode,                      /**< reference: OMX_CONFIG_COMMITMODETYPE */
-    OMX_IndexConfigCommit,                          /**< reference: OMX_CONFIG_COMMITTYPE */
-
-    /* Port parameters and configurations */
-    OMX_IndexExtPortStartUnused = OMX_IndexKhronosExtensions + 0x00200000,
-
-    /* Audio parameters and configurations */
-    OMX_IndexExtAudioStartUnused = OMX_IndexKhronosExtensions + 0x00400000,
-
-    /* Image parameters and configurations */
-    OMX_IndexExtImageStartUnused = OMX_IndexKhronosExtensions + 0x00500000,
-
-    /* Video parameters and configurations */
-    OMX_IndexExtVideoStartUnused = OMX_IndexKhronosExtensions + 0x00600000,
-    OMX_IndexParamNalStreamFormatSupported,         /**< reference: OMX_NALSTREAMFORMATTYPE */
-    OMX_IndexParamNalStreamFormat,                  /**< reference: OMX_NALSTREAMFORMATTYPE */
-    OMX_IndexParamNalStreamFormatSelect,            /**< reference: OMX_NALSTREAMFORMATTYPE */
-    OMX_IndexParamVideoVp8,                         /**< reference: OMX_VIDEO_PARAM_VP8TYPE */
-    OMX_IndexConfigVideoVp8ReferenceFrame,          /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */
-    OMX_IndexConfigVideoVp8ReferenceFrameType,      /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */
-
-    /* Image & Video common configurations */
-    OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000,
-
-    /* Other configurations */
-    OMX_IndexExtOtherStartUnused = OMX_IndexKhronosExtensions + 0x00800000,
-
-    /* Time configurations */
-    OMX_IndexExtTimeStartUnused = OMX_IndexKhronosExtensions + 0x00900000,
-
-    OMX_IndexExtMax = 0x7FFFFFFF
-} OMX_INDEXEXTTYPE;
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* OMX_IndexExt_h */
-/* File EOF */
+/*
+ * Copyright (c) 2010 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/** @file OMX_IndexExt.h - OpenMax IL version 1.1.2
+ * The OMX_IndexExt header file contains extensions to the definitions
+ * for both applications and components .
+ */
+
+#ifndef OMX_IndexExt_h
+#define OMX_IndexExt_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Each OMX header shall include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully
+ */
+#include <OMX_Index.h>
+
+
+/** Khronos standard extension indices.
+
+This enum lists the current Khronos extension indices to OpenMAX IL.
+*/
+typedef enum OMX_INDEXEXTTYPE {
+
+    /* Component parameters and configurations */
+    OMX_IndexExtComponentStartUnused = OMX_IndexKhronosExtensions + 0x00100000,
+    OMX_IndexConfigCallbackRequest,                 /**< reference: OMX_CONFIG_CALLBACKREQUESTTYPE */
+    OMX_IndexConfigCommitMode,                      /**< reference: OMX_CONFIG_COMMITMODETYPE */
+    OMX_IndexConfigCommit,                          /**< reference: OMX_CONFIG_COMMITTYPE */
+
+    /* Port parameters and configurations */
+    OMX_IndexExtPortStartUnused = OMX_IndexKhronosExtensions + 0x00200000,
+
+    /* Audio parameters and configurations */
+    OMX_IndexExtAudioStartUnused = OMX_IndexKhronosExtensions + 0x00400000,
+
+    /* Image parameters and configurations */
+    OMX_IndexExtImageStartUnused = OMX_IndexKhronosExtensions + 0x00500000,
+
+    /* Video parameters and configurations */
+    OMX_IndexExtVideoStartUnused = OMX_IndexKhronosExtensions + 0x00600000,
+    OMX_IndexParamNalStreamFormatSupported,         /**< reference: OMX_NALSTREAMFORMATTYPE */
+    OMX_IndexParamNalStreamFormat,                  /**< reference: OMX_NALSTREAMFORMATTYPE */
+    OMX_IndexParamNalStreamFormatSelect,            /**< reference: OMX_NALSTREAMFORMATTYPE */
+    OMX_IndexParamVideoVp8,                         /**< reference: OMX_VIDEO_PARAM_VP8TYPE */
+    OMX_IndexConfigVideoVp8ReferenceFrame,          /**< reference: OMX_VIDEO_VP8REFERENCEFRAMETYPE */
+    OMX_IndexConfigVideoVp8ReferenceFrameType,      /**< reference: OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE */
+
+    /* Image & Video common configurations */
+    OMX_IndexExtCommonStartUnused = OMX_IndexKhronosExtensions + 0x00700000,
+
+    /* Other configurations */
+    OMX_IndexExtOtherStartUnused = OMX_IndexKhronosExtensions + 0x00800000,
+
+    /* Time configurations */
+    OMX_IndexExtTimeStartUnused = OMX_IndexKhronosExtensions + 0x00900000,
+
+    OMX_IndexExtMax = 0x7FFFFFFF
+} OMX_INDEXEXTTYPE;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_IndexExt_h */
+/* File EOF */
--- a/media/openmax_il/il112/OMX_Other.h
+++ b/media/openmax_il/il112/OMX_Other.h
@@ -1,28 +1,28 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** @file OMX_Other.h - OpenMax IL version 1.1.2
  *  The structures needed by Other components to exchange
  *  parameters and configuration data with the components.
  */
 
@@ -31,269 +31,269 @@
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /* Each OMX header must include all required header files to allow the
  *  header to compile without errors.  The includes below are required
- *  for this header file to compile successfully 
+ *  for this header file to compile successfully
  */
 
 #include <OMX_Core.h>
 
 
-/** 
+/**
  * Enumeration of possible data types which match to multiple domains or no
  * domain at all.  For types which are vendor specific, a value above
  * OMX_OTHER_VENDORTSTART should be used.
  */
 typedef enum OMX_OTHER_FORMATTYPE {
-    OMX_OTHER_FormatTime = 0, /**< Transmission of various timestamps, elapsed time, 
+    OMX_OTHER_FormatTime = 0, /**< Transmission of various timestamps, elapsed time,
                                    time deltas, etc */
-    OMX_OTHER_FormatPower,    /**< Perhaps used for enabling/disabling power 
+    OMX_OTHER_FormatPower,    /**< Perhaps used for enabling/disabling power
                                    management, setting clocks? */
-    OMX_OTHER_FormatStats,    /**< Could be things such as frame rate, frames 
+    OMX_OTHER_FormatStats,    /**< Could be things such as frame rate, frames
                                    dropped, etc */
     OMX_OTHER_FormatBinary,   /**< Arbitrary binary data */
-    OMX_OTHER_FormatVendorReserved = 1000, /**< Starting value for vendor specific 
+    OMX_OTHER_FormatVendorReserved = 1000, /**< Starting value for vendor specific
                                                 formats */
 
-    OMX_OTHER_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_OTHER_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_OTHER_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_OTHER_FormatMax = 0x7FFFFFFF
 } OMX_OTHER_FORMATTYPE;
 
-/** 
+/**
  * Enumeration of seek modes.
  */
 typedef enum OMX_TIME_SEEKMODETYPE {
     OMX_TIME_SeekModeFast = 0, /**< Prefer seeking to an approximation
-                                * of the requested seek position over   
+                                * of the requested seek position over
                                 * the actual seek position if it
                                 * results in a faster seek. */
-    OMX_TIME_SeekModeAccurate, /**< Prefer seeking to the actual seek 
+    OMX_TIME_SeekModeAccurate, /**< Prefer seeking to the actual seek
                                 * position over an approximation
                                 * of the requested seek position even
                                 * if it results in a slower seek. */
-    OMX_TIME_SeekModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_TIME_SeekModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_TIME_SeekModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_TIME_SeekModeMax = 0x7FFFFFFF
 } OMX_TIME_SEEKMODETYPE;
 
 /* Structure representing the seekmode of the component */
 typedef struct OMX_TIME_CONFIG_SEEKMODETYPE {
     OMX_U32 nSize;                  /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
     OMX_TIME_SEEKMODETYPE eType;    /**< The seek mode */
 } OMX_TIME_CONFIG_SEEKMODETYPE;
 
-/** Structure representing a time stamp used with the following configs 
+/** Structure representing a time stamp used with the following configs
  * on the Clock Component (CC):
- * 
- * OMX_IndexConfigTimeCurrentWallTime: query of the CC’s current wall  
+ *
+ * OMX_IndexConfigTimeCurrentWallTime: query of the CC’s current wall
  *     time
  * OMX_IndexConfigTimeCurrentMediaTime: query of the CC’s current media
  *     time
- * OMX_IndexConfigTimeCurrentAudioReference and  
- * OMX_IndexConfigTimeCurrentVideoReference: audio/video reference 
+ * OMX_IndexConfigTimeCurrentAudioReference and
+ * OMX_IndexConfigTimeCurrentVideoReference: audio/video reference
  *     clock sending SC its reference time
- * OMX_IndexConfigTimeClientStartTime: a Clock Component client sends 
- *     this structure to the Clock Component via a SetConfig on its 
+ * OMX_IndexConfigTimeClientStartTime: a Clock Component client sends
+ *     this structure to the Clock Component via a SetConfig on its
  *     client port when it receives a buffer with
  *     OMX_BUFFERFLAG_STARTTIME set. It must use the timestamp
- *     specified by that buffer for nStartTimestamp. 
+ *     specified by that buffer for nStartTimestamp.
  *
  * It’s also used with the following config on components in general:
  *
- * OMX_IndexConfigTimePosition: IL client querying component position 
+ * OMX_IndexConfigTimePosition: IL client querying component position
  * (GetConfig) or commanding a component to seek to the given location
  * (SetConfig)
- */	
+ */
 typedef struct OMX_TIME_CONFIG_TIMESTAMPTYPE {
     OMX_U32 nSize;               /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;    /**< OMX specification version
                                   *   information */
     OMX_U32 nPortIndex;     /**< port that this structure applies to */
-    OMX_TICKS nTimestamp;  	     /**< timestamp .*/ 
-} OMX_TIME_CONFIG_TIMESTAMPTYPE;  
+    OMX_TICKS nTimestamp;  	     /**< timestamp .*/
+} OMX_TIME_CONFIG_TIMESTAMPTYPE;
 
 /** Enumeration of possible reference clocks to the media time. */
 typedef enum OMX_TIME_UPDATETYPE {
       OMX_TIME_UpdateRequestFulfillment,    /**< Update is the fulfillment of a media time request. */
       OMX_TIME_UpdateScaleChanged,	        /**< Update was generated because the scale chagned. */
       OMX_TIME_UpdateClockStateChanged,     /**< Update was generated because the clock state changed. */
-      OMX_TIME_UpdateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+      OMX_TIME_UpdateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
       OMX_TIME_UpdateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
       OMX_TIME_UpdateMax = 0x7FFFFFFF
 } OMX_TIME_UPDATETYPE;
 
 /** Enumeration of possible reference clocks to the media time. */
 typedef enum OMX_TIME_REFCLOCKTYPE {
       OMX_TIME_RefClockNone,    /**< Use no references. */
       OMX_TIME_RefClockAudio,	/**< Use references sent through OMX_IndexConfigTimeCurrentAudioReference */
       OMX_TIME_RefClockVideo,   /**< Use references sent through OMX_IndexConfigTimeCurrentVideoReference */
-      OMX_TIME_RefClockKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+      OMX_TIME_RefClockKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
       OMX_TIME_RefClockVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
       OMX_TIME_RefClockMax = 0x7FFFFFFF
 } OMX_TIME_REFCLOCKTYPE;
 
 /** Enumeration of clock states. */
 typedef enum OMX_TIME_CLOCKSTATE {
       OMX_TIME_ClockStateRunning,             /**< Clock running. */
-      OMX_TIME_ClockStateWaitingForStartTime, /**< Clock waiting until the 
+      OMX_TIME_ClockStateWaitingForStartTime, /**< Clock waiting until the
                                                *   prescribed clients emit their
                                                *   start time. */
       OMX_TIME_ClockStateStopped,             /**< Clock stopped. */
-      OMX_TIME_ClockStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+      OMX_TIME_ClockStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
       OMX_TIME_ClockStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
       OMX_TIME_ClockStateMax = 0x7FFFFFFF
 } OMX_TIME_CLOCKSTATE;
 
 /** Structure representing a media time request to the clock component.
  *
  *  A client component sends this structure to the Clock Component via a SetConfig
  *  on its client port to specify a media timestamp the Clock Component
  *  should emit.  The Clock Component should fulfill the request by sending a
- *  OMX_TIME_MEDIATIMETYPE when its media clock matches the requested 
+ *  OMX_TIME_MEDIATIMETYPE when its media clock matches the requested
  *  timestamp.
  *
  *  The client may require a media time request be fulfilled slightly
- *  earlier than the media time specified. In this case the client specifies 
- *  an offset which is equal to the difference between wall time corresponding 
- *  to the requested media time and the wall time when it will be 
- *  fulfilled. 
+ *  earlier than the media time specified. In this case the client specifies
+ *  an offset which is equal to the difference between wall time corresponding
+ *  to the requested media time and the wall time when it will be
+ *  fulfilled.
  *
  *  A client component may uses these requests and the OMX_TIME_MEDIATIMETYPE to
  *  time events according to timestamps. If a client must perform an operation O at
- *  a time T (e.g. deliver a video frame at its corresponding timestamp), it makes a 
+ *  a time T (e.g. deliver a video frame at its corresponding timestamp), it makes a
  *  media time request at T (perhaps specifying an offset to ensure the request fulfillment
  *  is a little early). When the clock component passes the resulting OMX_TIME_MEDIATIMETYPE
  *  structure back to the client component, the client may perform operation O (perhaps having
  *  to wait a slight amount more time itself as specified by the return values).
  */
 
 typedef struct OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
     OMX_U32 nPortIndex;         /**< port that this structure applies to */
-    OMX_PTR pClientPrivate;     /**< Client private data to disabiguate this media time 
-                                 *   from others (e.g. the number of the frame to deliver). 
-                                 *   Duplicated in the media time structure that fulfills 
-                                 *   this request. A value of zero is reserved for time scale 
+    OMX_PTR pClientPrivate;     /**< Client private data to disabiguate this media time
+                                 *   from others (e.g. the number of the frame to deliver).
+                                 *   Duplicated in the media time structure that fulfills
+                                 *   this request. A value of zero is reserved for time scale
                                  *   updates. */
-    OMX_TICKS nMediaTimestamp;  /**< Media timestamp requested.*/ 
+    OMX_TICKS nMediaTimestamp;  /**< Media timestamp requested.*/
     OMX_TICKS nOffset;          /**< Amount of wall clock time by which this
                                  *   request should be fulfilled early */
 } OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE;
 
-/**< Structure sent from the clock component client either when fulfilling 
- *   a media time request or when the time scale has changed. 
+/**< Structure sent from the clock component client either when fulfilling
+ *   a media time request or when the time scale has changed.
  *
- *   In the former case the Clock Component fills this structure and times its emission 
- *   to a client component (via the client port) according to the corresponding media 
+ *   In the former case the Clock Component fills this structure and times its emission
+ *   to a client component (via the client port) according to the corresponding media
  *   time request sent by the client. The Clock Component should time the emission to occur
- *   when the requested timestamp matches the Clock Component's media time but also the 
- *   prescribed offset early. 
+ *   when the requested timestamp matches the Clock Component's media time but also the
+ *   prescribed offset early.
  *
  *   Upon scale changes the clock component clears the nClientPrivate data, sends the current
- *   media time and sets the nScale to the new scale via the client port. It emits a 
- *   OMX_TIME_MEDIATIMETYPE to all clients independent of any requests. This allows clients to 
- *   alter processing to accomodate scaling. For instance a video component might skip inter-frames 
- *   in the case of extreme fastforward. Likewise an audio component might add or remove samples 
- *   from an audio frame to scale audio data. 
+ *   media time and sets the nScale to the new scale via the client port. It emits a
+ *   OMX_TIME_MEDIATIMETYPE to all clients independent of any requests. This allows clients to
+ *   alter processing to accomodate scaling. For instance a video component might skip inter-frames
+ *   in the case of extreme fastforward. Likewise an audio component might add or remove samples
+ *   from an audio frame to scale audio data.
  *
  *   It is expected that some clock components may not be able to fulfill requests
- *   at exactly the prescribed time. This is acceptable so long as the request is 
- *   fulfilled at least as early as described and not later. This structure provides 
+ *   at exactly the prescribed time. This is acceptable so long as the request is
+ *   fulfilled at least as early as described and not later. This structure provides
  *   fields the client may use to wait for the remaining time.
  *
- *   The client may use either the nOffset or nWallTimeAtMedia fields to determine the 
+ *   The client may use either the nOffset or nWallTimeAtMedia fields to determine the
  *   wall time until the nMediaTimestamp actually occurs. In the latter case the
  *   client can get a more accurate value for offset by getting the current wall
- *   from the cloc component and subtracting it from nWallTimeAtMedia. 
+ *   from the cloc component and subtracting it from nWallTimeAtMedia.
  */
 
 typedef struct OMX_TIME_MEDIATIMETYPE {
     OMX_U32 nSize;                  /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
-    OMX_U32 nClientPrivate;         /**< Client private data to disabiguate this media time 
-                                     *   from others. Copied from the media time request. 
+    OMX_U32 nClientPrivate;         /**< Client private data to disabiguate this media time
+                                     *   from others. Copied from the media time request.
                                      *   A value of zero is reserved for time scale updates. */
     OMX_TIME_UPDATETYPE eUpdateType; /**< Reason for the update */
-    OMX_TICKS nMediaTimestamp;      /**< Media time requested. If no media time was 
-                                     *   requested then this is the current media time. */ 
+    OMX_TICKS nMediaTimestamp;      /**< Media time requested. If no media time was
+                                     *   requested then this is the current media time. */
     OMX_TICKS nOffset;              /**< Amount of wall clock time by which this
                                      *   request was actually fulfilled early */
 
     OMX_TICKS nWallTimeAtMediaTime; /**< Wall time corresponding to nMediaTimeStamp.
                                      *   A client may compare this value to current
                                      *   media time obtained from the Clock Component to determine
                                      *   the wall time until the media timestamp is really
                                      *   current. */
     OMX_S32 xScale;                 /**< Current media time scale in Q16 format. */
     OMX_TIME_CLOCKSTATE eState;     /* Seeking Change. Added 7/12.*/
                                     /**< State of the media time. */
-} OMX_TIME_MEDIATIMETYPE;  
+} OMX_TIME_MEDIATIMETYPE;
 
-/** Structure representing the current media time scale factor. Applicable only to clock 
+/** Structure representing the current media time scale factor. Applicable only to clock
  *  component, other components see scale changes via OMX_TIME_MEDIATIMETYPE buffers sent via
- *  the clock component client ports. Upon recieving this config the clock component changes 
- *  the rate by which the media time increases or decreases effectively implementing trick modes. 
- */ 
+ *  the clock component client ports. Upon recieving this config the clock component changes
+ *  the rate by which the media time increases or decreases effectively implementing trick modes.
+ */
 typedef struct OMX_TIME_CONFIG_SCALETYPE {
     OMX_U32 nSize;                  /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
     OMX_S32 xScale;                 /**< This is a value in Q16 format which is used for
                                      * scaling the media time */
 } OMX_TIME_CONFIG_SCALETYPE;
- 
+
 /** Bits used to identify a clock port. Used in OMX_TIME_CONFIG_CLOCKSTATETYPE’s nWaitMask field */
 #define OMX_CLOCKPORT0 0x00000001
 #define OMX_CLOCKPORT1 0x00000002
 #define OMX_CLOCKPORT2 0x00000004
 #define OMX_CLOCKPORT3 0x00000008
 #define OMX_CLOCKPORT4 0x00000010
 #define OMX_CLOCKPORT5 0x00000020
 #define OMX_CLOCKPORT6 0x00000040
 #define OMX_CLOCKPORT7 0x00000080
 
-/** Structure representing the current mode of the media clock. 
- *  IL Client uses this config to change or query the mode of the 
+/** Structure representing the current mode of the media clock.
+ *  IL Client uses this config to change or query the mode of the
  *  media clock of the clock component. Applicable only to clock
- *  component. 
- *  
+ *  component.
+ *
  *  On a SetConfig if eState is OMX_TIME_ClockStateRunning media time
  *  starts immediately at the prescribed start time. If
  *  OMX_TIME_ClockStateWaitingForStartTime the Clock Component ignores
- *  the given nStartTime and waits for all clients specified in the 
- *  nWaitMask to send starttimes (via 
- *  OMX_IndexConfigTimeClientStartTime). The Clock Component then starts 
- *  the media clock using the earliest start time supplied. */    
+ *  the given nStartTime and waits for all clients specified in the
+ *  nWaitMask to send starttimes (via
+ *  OMX_IndexConfigTimeClientStartTime). The Clock Component then starts
+ *  the media clock using the earliest start time supplied. */
 typedef struct OMX_TIME_CONFIG_CLOCKSTATETYPE {
     OMX_U32 nSize;              /**< size of the structure in bytes */
-    OMX_VERSIONTYPE nVersion;   /**< OMX specification version 
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version
                                  *   information */
     OMX_TIME_CLOCKSTATE eState; /**< State of the media time. */
     OMX_TICKS nStartTime;       /**< Start time of the media time. */
-    OMX_TICKS nOffset;          /**< Time to offset the media time by 
+    OMX_TICKS nOffset;          /**< Time to offset the media time by
                                  * (e.g. preroll). Media time will be
-                                 * reported to be nOffset ticks earlier.     
+                                 * reported to be nOffset ticks earlier.
                                  */
     OMX_U32 nWaitMask;          /**< Mask of OMX_CLOCKPORT values. */
 } OMX_TIME_CONFIG_CLOCKSTATETYPE;
 
 /** Structure representing the reference clock currently being used to
- *  compute media time. IL client uses this config to change or query the 
+ *  compute media time. IL client uses this config to change or query the
  *  clock component's active reference clock */
 typedef struct OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE {
     OMX_U32 nSize;                  /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion;       /**< OMX specification version information */
-    OMX_TIME_REFCLOCKTYPE eClock;   /**< Reference clock used to compute media time */                        
+    OMX_TIME_REFCLOCKTYPE eClock;   /**< Reference clock used to compute media time */
 } OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE;
 
 /** Descriptor for setting specifics of power type.
  *  Note: this structure is listed for backwards compatibility. */
 typedef struct OMX_OTHER_CONFIG_POWERTYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_BOOL bEnablePM;       /**< Flag to enable Power Management */
@@ -305,33 +305,33 @@ typedef struct OMX_OTHER_CONFIG_POWERTYP
 typedef struct OMX_OTHER_CONFIG_STATSTYPE {
     OMX_U32 nSize;            /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     /* what goes here */
 } OMX_OTHER_CONFIG_STATSTYPE;
 
 
 /**
- * The PortDefinition structure is used to define all of the parameters 
- * necessary for the compliant component to setup an input or an output other 
+ * The PortDefinition structure is used to define all of the parameters
+ * necessary for the compliant component to setup an input or an output other
  * path.
  */
 typedef struct OMX_OTHER_PORTDEFINITIONTYPE {
     OMX_OTHER_FORMATTYPE eFormat;  /**< Type of data expected for this channel */
 } OMX_OTHER_PORTDEFINITIONTYPE;
 
 /**  Port format parameter.  This structure is used to enumerate
   *  the various data input/output format supported by the port.
   */
 typedef struct OMX_OTHER_PARAM_PORTFORMATTYPE {
     OMX_U32 nSize; /**< size of the structure in bytes */
     OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
     OMX_U32 nPortIndex; /**< Indicates which port to set */
     OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */
     OMX_OTHER_FORMATTYPE eFormat; /**< Type of data expected for this channel */
-} OMX_OTHER_PARAM_PORTFORMATTYPE; 
+} OMX_OTHER_PARAM_PORTFORMATTYPE;
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif
 /* File EOF */
--- a/media/openmax_il/il112/OMX_Types.h
+++ b/media/openmax_il/il112/OMX_Types.h
@@ -1,54 +1,54 @@
 /*
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
 /** OMX_Types.h - OpenMax IL version 1.1.2
- *  The OMX_Types header file contains the primitive type definitions used by 
+ *  The OMX_Types header file contains the primitive type definitions used by
  *  the core, the application and the component.  This file may need to be
- *  modified to be used on systems that do not have "char" set to 8 bits, 
+ *  modified to be used on systems that do not have "char" set to 8 bits,
  *  "short" set to 16 bits and "long" set to 32 bits.
  */
 
 #ifndef OMX_Types_h
 #define OMX_Types_h
 
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 /** The OMX_API and OMX_APIENTRY are platform specific definitions used
  *  to declare OMX function prototypes.  They are modified to meet the
  *  requirements for a particular platform */
-#ifdef __SYMBIAN32__   
+#ifdef __SYMBIAN32__
 #   ifdef __OMX_EXPORTS
 #       define OMX_API __declspec(dllexport)
 #   else
 #       ifdef _WIN32
-#           define OMX_API __declspec(dllexport) 
+#           define OMX_API __declspec(dllexport)
 #       else
 #           define OMX_API __declspec(dllimport)
 #       endif
 #   endif
 #else
 #   ifdef _WIN32
 #      ifdef __OMX_EXPORTS
 #          define OMX_API __declspec(dllexport)
@@ -60,37 +60,37 @@ extern "C" {
 #          define OMX_API
 #      else
 #          define OMX_API extern
 #      endif
 #   endif
 #endif
 
 #ifndef OMX_APIENTRY
-#define OMX_APIENTRY 
-#endif 
+#define OMX_APIENTRY
+#endif
 
-/** OMX_IN is used to identify inputs to an OMX function.  This designation 
-    will also be used in the case of a pointer that points to a parameter 
+/** OMX_IN is used to identify inputs to an OMX function.  This designation
+    will also be used in the case of a pointer that points to a parameter
     that is used as an output. */
 #ifndef OMX_IN
 #define OMX_IN
 #endif
 
-/** OMX_OUT is used to identify outputs from an OMX function.  This 
-    designation will also be used in the case of a pointer that points 
+/** OMX_OUT is used to identify outputs from an OMX function.  This
+    designation will also be used in the case of a pointer that points
     to a parameter that is used as an input. */
 #ifndef OMX_OUT
 #define OMX_OUT
 #endif
 
 
 /** OMX_INOUT is used to identify parameters that may be either inputs or
-    outputs from an OMX function at the same time.  This designation will 
-    also be used in the case of a pointer that  points to a parameter that 
+    outputs from an OMX function at the same time.  This designation will
+    also be used in the case of a pointer that  points to a parameter that
     is used both as an input and an output. */
 #ifndef OMX_INOUT
 #define OMX_INOUT
 #endif
 
 /** OMX_ALL is used to as a wildcard to select all entities of the same type
  *  when specifying the index, or referring to a object by an index.  (i.e.
  *  use OMX_ALL to indicate all N channels). When used as a port index
@@ -98,41 +98,41 @@ extern "C" {
  *  parameter applies to the entire component not just one port. */
 #define OMX_ALL 0xFFFFFFFF
 
 /** In the following we define groups that help building doxygen documentation */
 
 /** @defgroup core OpenMAX IL core
  * Functions and structure related to the OMX IL core
  */
- 
+
  /** @defgroup comp OpenMAX IL component
  * Functions and structure related to the OMX IL component
  */
- 
-/** @defgroup rpm Resource and Policy Management 
+
+/** @defgroup rpm Resource and Policy Management
  * Structures for resource and policy management of components
  */
 
 /** @defgroup buf Buffer Management
  * Buffer handling functions and structures
  */
-  
+
 /** @defgroup tun Tunneling
  * @ingroup core comp
  * Structures and functions to manage tunnels among component ports
  */
- 
+
 /** @defgroup cp Content Pipes
  *  @ingroup core
  */
- 
+
  /** @defgroup metadata Metadata handling
-  * 
-  */ 
+  *
+  */
 
 /** OMX_U8 is an 8 bit unsigned quantity that is byte aligned */
 typedef unsigned char OMX_U8;
 
 /** OMX_S8 is an 8 bit signed quantity that is byte aligned */
 typedef signed char OMX_S8;
 
 /** OMX_U16 is a 16 bit unsigned quantity that is 16 bit word aligned */
@@ -144,32 +144,32 @@ typedef signed short OMX_S16;
 /** OMX_U32 is a 32 bit unsigned quantity that is 32 bit word aligned */
 typedef unsigned long OMX_U32;
 
 /** OMX_S32 is a 32 bit signed quantity that is 32 bit word aligned */
 typedef signed long OMX_S32;
 
 
 /* Users with compilers that cannot accept the "long long" designation should
-   define the OMX_SKIP64BIT macro.  It should be noted that this may cause 
+   define the OMX_SKIP64BIT macro.  It should be noted that this may cause
    some components to fail to compile if the component was written to require
    64 bit integral types.  However, these components would NOT compile anyway
    since the compiler does not support the way the component was written.
 */
 #ifndef OMX_SKIP64BIT
 #ifdef __SYMBIAN32__
 /** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
 typedef unsigned long long OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed long long OMX_S64;
 
 #elif defined(WIN32)
 
-/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */   
+/** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
 typedef unsigned __int64  OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed   __int64  OMX_S64;
 
 #else /* WIN32 */
 
 /** OMX_U64 is a 64 bit unsigned quantity that is 64 bit word aligned */
@@ -177,74 +177,74 @@ typedef unsigned long long OMX_U64;
 
 /** OMX_S64 is a 64 bit signed quantity that is 64 bit word aligned */
 typedef signed long long OMX_S64;
 
 #endif /* WIN32 */
 #endif
 
 
-/** The OMX_BOOL type is intended to be used to represent a true or a false 
+/** The OMX_BOOL type is intended to be used to represent a true or a false
     value when passing parameters to and from the OMX core and components.  The
     OMX_BOOL is a 32 bit quantity and is aligned on a 32 bit word boundary.
  */
 typedef enum OMX_BOOL {
     OMX_FALSE = 0,
     OMX_TRUE = !OMX_FALSE,
     OMX_BOOL_MAX = 0x7FFFFFFF
-} OMX_BOOL; 
- 
+} OMX_BOOL;
+
 /** The OMX_PTR type is intended to be used to pass pointers between the OMX
     applications and the OMX Core and components.  This is a 32 bit pointer and
     is aligned on a 32 bit boundary.
  */
 typedef void* OMX_PTR;
 
 /** The OMX_STRING type is intended to be used to pass "C" type strings between
-    the application and the core and component.  The OMX_STRING type is a 32 
-    bit pointer to a zero terminated string.  The  pointer is word aligned and 
-    the string is byte aligned.  
+    the application and the core and component.  The OMX_STRING type is a 32
+    bit pointer to a zero terminated string.  The  pointer is word aligned and
+    the string is byte aligned.
  */
 typedef char* OMX_STRING;
 
 /** The OMX_BYTE type is intended to be used to pass arrays of bytes such as
-    buffers between the application and the component and core.  The OMX_BYTE 
+    buffers between the application and the component and core.  The OMX_BYTE
     type is a 32 bit pointer to a zero terminated string.  The  pointer is word
     aligned and the string is byte aligned.
  */
 typedef unsigned char* OMX_BYTE;
 
 /** OMX_UUIDTYPE is a very long unique identifier to uniquely identify
     at runtime.  This identifier should be generated by a component in a way
     that guarantees that every instance of the identifier running on the system
     is unique. */
 typedef unsigned char OMX_UUIDTYPE[128];
 
 /** The OMX_DIRTYPE enumeration is used to indicate if a port is an input or
-    an output port.  This enumeration is common across all component types.    
+    an output port.  This enumeration is common across all component types.
  */
 typedef enum OMX_DIRTYPE
 {
     OMX_DirInput,              /**< Port is an input port */
     OMX_DirOutput,             /**< Port is an output port */
     OMX_DirMax = 0x7FFFFFFF
 } OMX_DIRTYPE;
 
-/** The OMX_ENDIANTYPE enumeration is used to indicate the bit ordering 
-    for numerical data (i.e. big endian, or little endian).    
+/** The OMX_ENDIANTYPE enumeration is used to indicate the bit ordering
+    for numerical data (i.e. big endian, or little endian).
  */
 typedef enum OMX_ENDIANTYPE
 {
     OMX_EndianBig, /**< big endian */
     OMX_EndianLittle, /**< little endian */
     OMX_EndianMax = 0x7FFFFFFF
 } OMX_ENDIANTYPE;
 
 
-/** The OMX_NUMERICALDATATYPE enumeration is used to indicate if data 
+/** The OMX_NUMERICALDATATYPE enumeration is used to indicate if data
     is signed or unsigned
  */
 typedef enum OMX_NUMERICALDATATYPE
 {
     OMX_NumericalDataSigned, /**< signed data */
     OMX_NumericalDataUnsigned, /**< unsigned data */
     OMX_NumercialDataMax = 0x7FFFFFFF
 } OMX_NUMERICALDATATYPE;
@@ -262,26 +262,26 @@ typedef struct OMX_BU32 {
 typedef struct OMX_BS32 {
     OMX_S32 nValue; /**< actual value */
     OMX_S32 nMin;   /**< minimum for value (i.e. nValue >= nMin) */
     OMX_S32 nMax;   /**< maximum for value (i.e. nValue <= nMax) */
 } OMX_BS32;
 
 
 /** Structure representing some time or duration in microseconds. This structure
-  *  must be interpreted as a signed 64 bit value. The quantity is signed to accommodate 
-  *  negative deltas and preroll scenarios. The quantity is represented in microseconds 
+  *  must be interpreted as a signed 64 bit value. The quantity is signed to accommodate
+  *  negative deltas and preroll scenarios. The quantity is represented in microseconds
   *  to accomodate high resolution timestamps (e.g. DVD presentation timestamps based
-  *  on a 90kHz clock) and to allow more accurate and synchronized delivery (e.g. 
-  *  individual audio samples delivered at 192 kHz). The quantity is 64 bit to 
+  *  on a 90kHz clock) and to allow more accurate and synchronized delivery (e.g.
+  *  individual audio samples delivered at 192 kHz). The quantity is 64 bit to
   *  accommodate a large dynamic range (signed 32 bit values would allow only for plus
   *  or minus 35 minutes).
   *
-  *  Implementations with limited precision may convert the signed 64 bit value to 
-  *  a signed 32 bit value internally but risk loss of precision.  
+  *  Implementations with limited precision may convert the signed 64 bit value to
+  *  a signed 32 bit value internally but risk loss of precision.
   */
 #ifndef OMX_SKIP64BIT
 typedef OMX_S64 OMX_TICKS;
 #else
 typedef struct OMX_TICKS
 {
     OMX_U32 nLowPart;    /** low bits of the signed 64 bit tick value */
     OMX_U32 nHighPart;   /** high bits of the signed 64 bit tick value */
@@ -291,27 +291,27 @@ typedef struct OMX_TICKS
 
 /** Define the public interface for the OMX Handle.  The core will not use
     this value internally, but the application should only use this value.
  */
 typedef void* OMX_HANDLETYPE;
 
 typedef struct OMX_MARKTYPE
 {
-    OMX_HANDLETYPE hMarkTargetComponent;   /**< The component that will 
-                                                generate a mark event upon 
+    OMX_HANDLETYPE hMarkTargetComponent;   /**< The component that will
+                                                generate a mark event upon
                                                 processing the mark. */
-    OMX_PTR pMarkData;   /**< Application specific data associated with 
-                              the mark sent on a mark event to disambiguate 
+    OMX_PTR pMarkData;   /**< Application specific data associated with
+                              the mark sent on a mark event to disambiguate
                               this mark from others. */
 } OMX_MARKTYPE;
 
 
 /** OMX_NATIVE_DEVICETYPE is used to map a OMX video port to the
- *  platform & operating specific object used to reference the display 
+ *  platform & operating specific object used to reference the display
  *  or can be used by a audio port for native audio rendering */
 typedef void* OMX_NATIVE_DEVICETYPE;
 
 /** OMX_NATIVE_WINDOWTYPE is used to map a OMX video port to the
  *  platform & operating specific object used to reference the window */
 typedef void* OMX_NATIVE_WINDOWTYPE;
 
 
@@ -324,17 +324,17 @@ typedef void* OMX_NATIVE_WINDOWTYPE;
 #define OMX_VERSION_STEP 0
 
 #define OMX_VERSION ((OMX_VERSION_STEP<<24) | (OMX_VERSION_REVISION<<16) | (OMX_VERSION_MINOR<<8) | OMX_VERSION_MAJOR)
 
 
 /** The OMX_VERSIONTYPE union is used to specify the version for
     a structure or component.  For a component, the version is entirely
     specified by the component vendor.  Components doing the same function
-    from different vendors may or may not have the same version.  For 
+    from different vendors may or may not have the same version.  For
     structures, the version shall be set by the entity that allocates the
     structure.  For structures specified in the OMX 1.1 specification, the
     value of the version shall be set to 1.1.0.0 in all cases.  Access to the
     OMX_VERSIONTYPE can be by a single 32 bit access (e.g. by nVersion) or
     by accessing one of the structure elements to, for example, check only
     the Major revision.
  */
 typedef union OMX_VERSIONTYPE
--- a/media/openmax_il/il112/OMX_Video.h
+++ b/media/openmax_il/il112/OMX_Video.h
@@ -1,34 +1,34 @@
 /**
- * Copyright (c) 2008 The Khronos Group Inc. 
- * 
+ * Copyright (c) 2008 The Khronos Group Inc.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining
  * a copy of this software and associated documentation files (the
  * "Software"), to deal in the Software without restriction, including
  * without limitation the rights to use, copy, modify, merge, publish,
  * distribute, sublicense, and/or sell copies of the Software, and to
  * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions: 
+ * to the following conditions:
  * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software. 
- * 
+ * in all copies or substantial portions of the Software.
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
 
-/** 
+/**
  *  @file OMX_Video.h - OpenMax IL version 1.1.2
- *  The structures is needed by Video components to exchange parameters 
+ *  The structures is needed by Video components to exchange parameters
  *  and configuration data with OMX components.
  */
 #ifndef OMX_Video_h
 #define OMX_Video_h
 
 /** @defgroup video OpenMAX IL Video Domain
  * @ingroup iv
  * Structures for OpenMAX IL Video domain
@@ -38,235 +38,235 @@
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 
 /**
  * Each OMX header must include all required header files to allow the
  * header to compile without errors.  The includes below are required
- * for this header file to compile successfully 
+ * for this header file to compile successfully
  */
 
 #include <OMX_IVCommon.h>
 
 
 /**
- * Enumeration used to define the possible video compression codings.  
- * NOTE:  This essentially refers to file extensions. If the coding is 
- *        being used to specify the ENCODE type, then additional work 
- *        must be done to configure the exact flavor of the compression 
- *        to be used.  For decode cases where the user application can 
- *        not differentiate between MPEG-4 and H.264 bit streams, it is 
+ * Enumeration used to define the possible video compression codings.
+ * NOTE:  This essentially refers to file extensions. If the coding is
+ *        being used to specify the ENCODE type, then additional work
+ *        must be done to configure the exact flavor of the compression
+ *        to be used.  For decode cases where the user application can
+ *        not differentiate between MPEG-4 and H.264 bit streams, it is
  *        up to the codec to handle this.
  */
 typedef enum OMX_VIDEO_CODINGTYPE {
     OMX_VIDEO_CodingUnused,     /**< Value when coding is N/A */
     OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */
     OMX_VIDEO_CodingMPEG2,      /**< AKA: H.262 */
     OMX_VIDEO_CodingH263,       /**< H.263 */
     OMX_VIDEO_CodingMPEG4,      /**< MPEG-4 */
     OMX_VIDEO_CodingWMV,        /**< all versions of Windows Media Video */
     OMX_VIDEO_CodingRV,         /**< all versions of Real Video */
     OMX_VIDEO_CodingAVC,        /**< H.264/AVC */
     OMX_VIDEO_CodingMJPEG,      /**< Motion JPEG */
-    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_CodingMax = 0x7FFFFFFF
 } OMX_VIDEO_CODINGTYPE;
 
 
 /**
- * Data structure used to define a video path.  The number of Video paths for 
- * input and output will vary by type of the Video component.  
- * 
+ * Data structure used to define a video path.  The number of Video paths for
+ * input and output will vary by type of the Video component.
+ *
  *    Input (aka Source) : zero Inputs, one Output,
  *    Splitter           : one Input, 2 or more Outputs,
  *    Processing Element : one Input, one output,
  *    Mixer              : 2 or more inputs, one output,
  *    Output (aka Sink)  : one Input, zero outputs.
- * 
- * The PortDefinition structure is used to define all of the parameters 
- * necessary for the compliant component to setup an input or an output video 
- * path.  If additional vendor specific data is required, it should be 
- * transmitted to the component using the CustomCommand function.  Compliant 
- * components will prepopulate this structure with optimal values during the 
+ *
+ * The PortDefinition structure is used to define all of the parameters
+ * necessary for the compliant component to setup an input or an output video
+ * path.  If additional vendor specific data is required, it should be
+ * transmitted to the component using the CustomCommand function.  Compliant
+ * components will prepopulate this structure with optimal values during the
  * GetDefaultInitParams command.
  *
  * STRUCT MEMBERS:
  *  cMIMEType             : MIME type of data for the port
- *  pNativeRender         : Platform specific reference for a display if a 
+ *  pNativeRender         : Platform specific reference for a display if a
  *                          sync, otherwise this field is 0
- *  nFrameWidth           : Width of frame to be used on channel if 
+ *  nFrameWidth           : Width of frame to be used on channel if
  *                          uncompressed format is used.  Use 0 for unknown,
  *                          don't care or variable
- *  nFrameHeight          : Height of frame to be used on channel if 
+ *  nFrameHeight          : Height of frame to be used on channel if
  *                          uncompressed format is used. Use 0 for unknown,
  *                          don't care or variable
- *  nStride               : Number of bytes per span of an image 
+ *  nStride               : Number of bytes per span of an image
  *                          (i.e. indicates the number of bytes to get
  *                          from span N to span N+1, where negative stride
  *                          indicates the image is bottom up
  *  nSliceHeight          : Height used when encoding in slices
- *  nBitrate              : Bit rate of frame to be used on channel if 
- *                          compressed format is used. Use 0 for unknown, 
+ *  nBitrate              : Bit rate of frame to be used on channel if
+ *                          compressed format is used. Use 0 for unknown,
  *                          don't care or variable
- *  xFramerate            : Frame rate to be used on channel if uncompressed 
- *                          format is used. Use 0 for unknown, don't care or 
+ *  xFramerate            : Frame rate to be used on channel if uncompressed
+ *                          format is used. Use 0 for unknown, don't care or
  *                          variable.  Units are Q16 frames per second.
- *  bFlagErrorConcealment : Turns on error concealment if it is supported by 
+ *  bFlagErrorConcealment : Turns on error concealment if it is supported by
  *                          the OMX component
- *  eCompressionFormat    : Compression format used in this instance of the 
- *                          component. When OMX_VIDEO_CodingUnused is 
+ *  eCompressionFormat    : Compression format used in this instance of the
+ *                          component. When OMX_VIDEO_CodingUnused is
  *                          specified, eColorFormat is used
  *  eColorFormat : Decompressed format used by this component
- *  pNativeWindow : Platform specific reference for a window object if a 
- *                          display sink , otherwise this field is 0x0. 
+ *  pNativeWindow : Platform specific reference for a window object if a
+ *                          display sink , otherwise this field is 0x0.
  */
 typedef struct OMX_VIDEO_PORTDEFINITIONTYPE {
     OMX_STRING cMIMEType;
     OMX_NATIVE_DEVICETYPE pNativeRender;
     OMX_U32 nFrameWidth;
     OMX_U32 nFrameHeight;
     OMX_S32 nStride;
     OMX_U32 nSliceHeight;
     OMX_U32 nBitrate;
     OMX_U32 xFramerate;
     OMX_BOOL bFlagErrorConcealment;
     OMX_VIDEO_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
     OMX_NATIVE_WINDOWTYPE pNativeWindow;
 } OMX_VIDEO_PORTDEFINITIONTYPE;
 
-/**  
- * Port format parameter.  This structure is used to enumerate the various 
+/**
+ * Port format parameter.  This structure is used to enumerate the various
  * data input/output format supported by the port.
- * 
+ *
  * STRUCT MEMBERS:
  *  nSize              : Size of the structure in bytes
  *  nVersion           : OMX specification version information
  *  nPortIndex         : Indicates which port to set
- *  nIndex             : Indicates the enumeration index for the format from 
+ *  nIndex             : Indicates the enumeration index for the format from
  *                       0x0 to N-1
- *  eCompressionFormat : Compression format used in this instance of the 
- *                       component. When OMX_VIDEO_CodingUnused is specified, 
- *                       eColorFormat is used 
+ *  eCompressionFormat : Compression format used in this instance of the
+ *                       component. When OMX_VIDEO_CodingUnused is specified,
+ *                       eColorFormat is used
  *  eColorFormat       : Decompressed format used by this component
  *  xFrameRate         : Indicates the video frame rate in Q16 format
  */
 typedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nIndex;
-    OMX_VIDEO_CODINGTYPE eCompressionFormat; 
+    OMX_VIDEO_CODINGTYPE eCompressionFormat;
     OMX_COLOR_FORMATTYPE eColorFormat;
     OMX_U32 xFramerate;
 } OMX_VIDEO_PARAM_PORTFORMATTYPE;
 
 
 /**
- * This is a structure for configuring video compression quantization 
+ * This is a structure for configuring video compression quantization
  * parameter values.  Codecs may support different QP values for different
  * frame types.
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version info
  *  nPortIndex : Port that this structure applies to
  *  nQpI       : QP value to use for index frames
  *  nQpP       : QP value to use for P frames
- *  nQpB       : QP values to use for bidirectional frames 
+ *  nQpB       : QP values to use for bidirectional frames
  */
 typedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE {
-    OMX_U32 nSize;            
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nQpI;
     OMX_U32 nQpP;
     OMX_U32 nQpB;
 } OMX_VIDEO_PARAM_QUANTIZATIONTYPE;
 
 
-/** 
- * Structure for configuration of video fast update parameters. 
- *  
+/**
+ * Structure for configuration of video fast update parameters.
+ *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version info 
+ *  nVersion   : OMX specification version info
  *  nPortIndex : Port that this structure applies to
  *  bEnableVFU : Enable/Disable video fast update
  *  nFirstGOB  : Specifies the number of the first macroblock row
  *  nFirstMB   : specifies the first MB relative to the specified first GOB
- *  nNumMBs    : Specifies the number of MBs to be refreshed from nFirstGOB 
+ *  nNumMBs    : Specifies the number of MBs to be refreshed from nFirstGOB
  *               and nFirstMB
  */
 typedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE {
-    OMX_U32 nSize;            
-    OMX_VERSIONTYPE nVersion; 
-    OMX_U32 nPortIndex;       
-    OMX_BOOL bEnableVFU;      
-    OMX_U32 nFirstGOB;                            
-    OMX_U32 nFirstMB;                            
-    OMX_U32 nNumMBs;                                  
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnableVFU;
+    OMX_U32 nFirstGOB;
+    OMX_U32 nFirstMB;
+    OMX_U32 nNumMBs;
 } OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE;
 
 
-/** 
- * Enumeration of possible bitrate control types 
+/**
+ * Enumeration of possible bitrate control types
  */
 typedef enum OMX_VIDEO_CONTROLRATETYPE {
     OMX_Video_ControlRateDisable,
     OMX_Video_ControlRateVariable,
     OMX_Video_ControlRateConstant,
     OMX_Video_ControlRateVariableSkipFrames,
     OMX_Video_ControlRateConstantSkipFrames,
-    OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_Video_ControlRateMax = 0x7FFFFFFF
 } OMX_VIDEO_CONTROLRATETYPE;
 
 
-/** 
- * Structure for configuring bitrate mode of a codec. 
+/**
+ * Structure for configuring bitrate mode of a codec.
  *
  * STRUCT MEMBERS:
  *  nSize          : Size of the struct in bytes
  *  nVersion       : OMX spec version info
  *  nPortIndex     : Port that this struct applies to
  *  eControlRate   : Control rate type enum
  *  nTargetBitrate : Target bitrate to encode with
  */
 typedef struct OMX_VIDEO_PARAM_BITRATETYPE {
-    OMX_U32 nSize;                          
-    OMX_VERSIONTYPE nVersion;               
-    OMX_U32 nPortIndex;                     
-    OMX_VIDEO_CONTROLRATETYPE eControlRate; 
-    OMX_U32 nTargetBitrate;                 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_VIDEO_CONTROLRATETYPE eControlRate;
+    OMX_U32 nTargetBitrate;
 } OMX_VIDEO_PARAM_BITRATETYPE;
 
 
-/** 
- * Enumeration of possible motion vector (MV) types 
+/**
+ * Enumeration of possible motion vector (MV) types
  */
 typedef enum OMX_VIDEO_MOTIONVECTORTYPE {
     OMX_Video_MotionVectorPixel,
     OMX_Video_MotionVectorHalfPel,
     OMX_Video_MotionVectorQuarterPel,
     OMX_Video_MotionVectorEighthPel,
-    OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_Video_MotionVectorMax = 0x7FFFFFFF
 } OMX_VIDEO_MOTIONVECTORTYPE;
 
 
 /**
  * Structure for configuring the number of motion vectors used as well
  * as their accuracy.
- * 
+ *
  * STRUCT MEMBERS:
  *  nSize            : Size of the struct in bytes
  *  nVersion         : OMX spec version info
  *  nPortIndex       : port that this structure applies to
  *  eAccuracy        : Enumerated MV accuracy
  *  bUnrestrictedMVs : Allow unrestricted MVs
  *  bFourMV          : Allow use of 4 MVs
  *  sXSearchRange    : Search range in horizontal direction for MVs
@@ -279,173 +279,173 @@ typedef struct OMX_VIDEO_PARAM_MOTIONVEC
     OMX_VIDEO_MOTIONVECTORTYPE eAccuracy;
     OMX_BOOL bUnrestrictedMVs;
     OMX_BOOL bFourMV;
     OMX_S32 sXSearchRange;
     OMX_S32 sYSearchRange;
 } OMX_VIDEO_PARAM_MOTIONVECTORTYPE;
 
 
-/** 
- * Enumeration of possible methods to use for Intra Refresh 
+/**
+ * Enumeration of possible methods to use for Intra Refresh
  */
 typedef enum OMX_VIDEO_INTRAREFRESHTYPE {
     OMX_VIDEO_IntraRefreshCyclic,
     OMX_VIDEO_IntraRefreshAdaptive,
     OMX_VIDEO_IntraRefreshBoth,
-    OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF
 } OMX_VIDEO_INTRAREFRESHTYPE;
 
 
 /**
- * Structure for configuring intra refresh mode 
- * 
+ * Structure for configuring intra refresh mode
+ *
  * STRUCT MEMBERS:
  *  nSize        : Size of the structure in bytes
  *  nVersion     : OMX specification version information
  *  nPortIndex   : Port that this structure applies to
  *  eRefreshMode : Cyclic, Adaptive, or Both
- *  nAirMBs      : Number of intra macroblocks to refresh in a frame when 
+ *  nAirMBs      : Number of intra macroblocks to refresh in a frame when
  *                 AIR is enabled
- *  nAirRef      : Number of times a motion marked macroblock has to be  
+ *  nAirRef      : Number of times a motion marked macroblock has to be
  *                 intra coded
- *  nCirMBs      : Number of consecutive macroblocks to be coded as "intra"  
+ *  nCirMBs      : Number of consecutive macroblocks to be coded as "intra"
  *                 when CIR is enabled
  */
 typedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode;
     OMX_U32 nAirMBs;
     OMX_U32 nAirRef;
     OMX_U32 nCirMBs;
 } OMX_VIDEO_PARAM_INTRAREFRESHTYPE;
 
 
 /**
- * Structure for enabling various error correction methods for video 
+ * Structure for enabling various error correction methods for video
  * compression.
  *
  * STRUCT MEMBERS:
  *  nSize                   : Size of the structure in bytes
- *  nVersion                : OMX specification version information 
- *  nPortIndex              : Port that this structure applies to 
+ *  nVersion                : OMX specification version information
+ *  nPortIndex              : Port that this structure applies to
  *  bEnableHEC              : Enable/disable header extension codes (HEC)
  *  bEnableResync           : Enable/disable resynchronization markers
- *  nResynchMarkerSpacing   : Resynch markers interval (in bits) to be 
- *                            applied in the stream 
- *  bEnableDataPartitioning : Enable/disable data partitioning 
- *  bEnableRVLC             : Enable/disable reversible variable length 
+ *  nResynchMarkerSpacing   : Resynch markers interval (in bits) to be
+ *                            applied in the stream
+ *  bEnableDataPartitioning : Enable/disable data partitioning
+ *  bEnableRVLC             : Enable/disable reversible variable length
  *                            coding
  */
 typedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_BOOL bEnableHEC;
     OMX_BOOL bEnableResync;
     OMX_U32  nResynchMarkerSpacing;
     OMX_BOOL bEnableDataPartitioning;
     OMX_BOOL bEnableRVLC;
 } OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE;
 
 
-/** 
- * Configuration of variable block-size motion compensation (VBSMC) 
- * 
+/**
+ * Configuration of variable block-size motion compensation (VBSMC)
+ *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
- *  nVersion   : OMX specification version information 
+ *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  b16x16     : Enable inter block search 16x16
  *  b16x8      : Enable inter block search 16x8
  *  b8x16      : Enable inter block search 8x16
  *  b8x8       : Enable inter block search 8x8
  *  b8x4       : Enable inter block search 8x4
  *  b4x8       : Enable inter block search 4x8
  *  b4x4       : Enable inter block search 4x4
  */
 typedef struct OMX_VIDEO_PARAM_VBSMCTYPE {
-    OMX_U32 nSize; 
-    OMX_VERSIONTYPE nVersion; 
-    OMX_U32 nPortIndex;       
-    OMX_BOOL b16x16; 
-    OMX_BOOL b16x8; 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL b16x16;
+    OMX_BOOL b16x8;
     OMX_BOOL b8x16;
     OMX_BOOL b8x8;
     OMX_BOOL b8x4;
     OMX_BOOL b4x8;
     OMX_BOOL b4x4;
 } OMX_VIDEO_PARAM_VBSMCTYPE;
 
 
-/** 
- * H.263 profile types, each profile indicates support for various 
+/**
+ * H.263 profile types, each profile indicates support for various
  * performance bounds and different annexes.
  *
  * ENUMS:
- *  Baseline           : Baseline Profile: H.263 (V1), no optional modes                                                    
- *  H320 Coding        : H.320 Coding Efficiency Backward Compatibility 
+ *  Baseline           : Baseline Profile: H.263 (V1), no optional modes
+ *  H320 Coding        : H.320 Coding Efficiency Backward Compatibility
  *                       Profile: H.263+ (V2), includes annexes I, J, L.4
  *                       and T
- *  BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 
- *                       includes annex F                                    
- *  ISWV2              : Interactive Streaming Wireless Profile: H.263+ 
- *                       (V2), includes annexes I, J, K and T                 
- *  ISWV3              : Interactive Streaming Wireless Profile: H.263++  
- *                       (V3), includes profile 3 and annexes V and W.6.3.8   
- *  HighCompression    : Conversational High Compression Profile: H.263++  
- *                       (V3), includes profiles 1 & 2 and annexes D and U   
- *  Internet           : Conversational Internet Profile: H.263++ (V3),  
- *                       includes profile 5 and annex K                       
- *  Interlace          : Conversational Interlace Profile: H.263++ (V3),  
- *                       includes profile 5 and annex W.6.3.11               
- *  HighLatency        : High Latency Profile: H.263++ (V3), includes  
- *                       profile 6 and annexes O.1 and P.5                       
+ *  BackwardCompatible : Backward Compatibility Profile: H.263 (V1),
+ *                       includes annex F
+ *  ISWV2              : Interactive Streaming Wireless Profile: H.263+
+ *                       (V2), includes annexes I, J, K and T
+ *  ISWV3              : Interactive Streaming Wireless Profile: H.263++
+ *                       (V3), includes profile 3 and annexes V and W.6.3.8
+ *  HighCompression    : Conversational High Compression Profile: H.263++
+ *                       (V3), includes profiles 1 & 2 and annexes D and U
+ *  Internet           : Conversational Internet Profile: H.263++ (V3),
+ *                       includes profile 5 and annex K
+ *  Interlace          : Conversational Interlace Profile: H.263++ (V3),
+ *                       includes profile 5 and annex W.6.3.11
+ *  HighLatency        : High Latency Profile: H.263++ (V3), includes
+ *                       profile 6 and annexes O.1 and P.5
  */
 typedef enum OMX_VIDEO_H263PROFILETYPE {
-    OMX_VIDEO_H263ProfileBaseline            = 0x01,        
-    OMX_VIDEO_H263ProfileH320Coding          = 0x02,          
-    OMX_VIDEO_H263ProfileBackwardCompatible  = 0x04,  
-    OMX_VIDEO_H263ProfileISWV2               = 0x08,               
-    OMX_VIDEO_H263ProfileISWV3               = 0x10,               
-    OMX_VIDEO_H263ProfileHighCompression     = 0x20,     
-    OMX_VIDEO_H263ProfileInternet            = 0x40,            
-    OMX_VIDEO_H263ProfileInterlace           = 0x80,           
-    OMX_VIDEO_H263ProfileHighLatency         = 0x100,         
-    OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_H263ProfileBaseline            = 0x01,
+    OMX_VIDEO_H263ProfileH320Coding          = 0x02,
+    OMX_VIDEO_H263ProfileBackwardCompatible  = 0x04,
+    OMX_VIDEO_H263ProfileISWV2               = 0x08,
+    OMX_VIDEO_H263ProfileISWV3               = 0x10,
+    OMX_VIDEO_H263ProfileHighCompression     = 0x20,
+    OMX_VIDEO_H263ProfileInternet            = 0x40,
+    OMX_VIDEO_H263ProfileInterlace           = 0x80,
+    OMX_VIDEO_H263ProfileHighLatency         = 0x100,
+    OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_H263ProfileMax                 = 0x7FFFFFFF  
+    OMX_VIDEO_H263ProfileMax                 = 0x7FFFFFFF
 } OMX_VIDEO_H263PROFILETYPE;
 
 
-/** 
- * H.263 level types, each level indicates support for various frame sizes, 
+/**
+ * H.263 level types, each level indicates support for various frame sizes,
  * bit rates, decoder frame rates.
  */
 typedef enum OMX_VIDEO_H263LEVELTYPE {
-    OMX_VIDEO_H263Level10  = 0x01,  
-    OMX_VIDEO_H263Level20  = 0x02,      
-    OMX_VIDEO_H263Level30  = 0x04,      
-    OMX_VIDEO_H263Level40  = 0x08,      
-    OMX_VIDEO_H263Level45  = 0x10,      
-    OMX_VIDEO_H263Level50  = 0x20,      
-    OMX_VIDEO_H263Level60  = 0x40,      
-    OMX_VIDEO_H263Level70  = 0x80, 
-    OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_H263Level10  = 0x01,
+    OMX_VIDEO_H263Level20  = 0x02,
+    OMX_VIDEO_H263Level30  = 0x04,
+    OMX_VIDEO_H263Level40  = 0x08,
+    OMX_VIDEO_H263Level45  = 0x10,
+    OMX_VIDEO_H263Level50  = 0x20,
+    OMX_VIDEO_H263Level60  = 0x40,
+    OMX_VIDEO_H263Level70  = 0x80,
+    OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_H263LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_H263LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_H263LEVELTYPE;
 
 
-/** 
- * Specifies the picture type. These values should be OR'd to signal all 
+/**
+ * Specifies the picture type. These values should be OR'd to signal all
  * pictures types which are allowed.
  *
  * ENUMS:
  *  Generic Picture Types:          I, P and B
  *  H.263 Specific Picture Types:   SI and SP
  *  H.264 Specific Picture Types:   EI and EP
  *  MPEG-4 Specific Picture Types:  S
  */
@@ -453,46 +453,46 @@ typedef enum OMX_VIDEO_PICTURETYPE {
     OMX_VIDEO_PictureTypeI   = 0x01,
     OMX_VIDEO_PictureTypeP   = 0x02,
     OMX_VIDEO_PictureTypeB   = 0x04,
     OMX_VIDEO_PictureTypeSI  = 0x08,
     OMX_VIDEO_PictureTypeSP  = 0x10,
     OMX_VIDEO_PictureTypeEI  = 0x11,
     OMX_VIDEO_PictureTypeEP  = 0x12,
     OMX_VIDEO_PictureTypeS   = 0x14,
-    OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF
 } OMX_VIDEO_PICTURETYPE;
 
 
-/** 
- * H.263 Params 
+/**
+ * H.263 Params
  *
  * STRUCT MEMBERS:
  *  nSize                    : Size of the structure in bytes
- *  nVersion                 : OMX specification version information 
+ *  nVersion                 : OMX specification version information
  *  nPortIndex               : Port that this structure applies to
  *  nPFrames                 : Number of P frames between each I frame
  *  nBFrames                 : Number of B frames between each I frame
  *  eProfile                 : H.263 profile(s) to use
  *  eLevel                   : H.263 level(s) to use
- *  bPLUSPTYPEAllowed        : Indicating that it is allowed to use PLUSPTYPE 
- *                             (specified in the 1998 version of H.263) to 
- *                             indicate custom picture sizes or clock 
- *                             frequencies 
- *  nAllowedPictureTypes     : Specifies the picture types allowed in the 
+ *  bPLUSPTYPEAllowed        : Indicating that it is allowed to use PLUSPTYPE
+ *                             (specified in the 1998 version of H.263) to
+ *                             indicate custom picture sizes or clock
+ *                             frequencies
+ *  nAllowedPictureTypes     : Specifies the picture types allowed in the
  *                             bitstream
- *  bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 
- *                             not constrained. It is recommended to change 
- *                             the value of the RTYPE bit for each reference 
+ *  bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is
+ *                             not constrained. It is recommended to change
+ *                             the value of the RTYPE bit for each reference
  *                             picture in error-free communication
- *  nPictureHeaderRepetition : Specifies the frequency of picture header 
+ *  nPictureHeaderRepetition : Specifies the frequency of picture header
  *                             repetition
- *  nGOBHeaderInterval       : Specifies the interval of non-empty GOB  
+ *  nGOBHeaderInterval       : Specifies the interval of non-empty GOB
  *                             headers in units of GOBs
  */
 typedef struct OMX_VIDEO_PARAM_H263TYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nPFrames;
     OMX_U32 nBFrames;
@@ -501,75 +501,75 @@ typedef struct OMX_VIDEO_PARAM_H263TYPE 
     OMX_BOOL bPLUSPTYPEAllowed;
     OMX_U32 nAllowedPictureTypes;
     OMX_BOOL bForceRoundingTypeToZero;
     OMX_U32 nPictureHeaderRepetition;
     OMX_U32 nGOBHeaderInterval;
 } OMX_VIDEO_PARAM_H263TYPE;
 
 
-/** 
- * MPEG-2 profile types, each profile indicates support for various 
+/**
+ * MPEG-2 profile types, each profile indicates support for various
  * performance bounds and different annexes.
  */
 typedef enum OMX_VIDEO_MPEG2PROFILETYPE {
     OMX_VIDEO_MPEG2ProfileSimple = 0,  /**< Simple Profile */
     OMX_VIDEO_MPEG2ProfileMain,        /**< Main Profile */
     OMX_VIDEO_MPEG2Profile422,         /**< 4:2:2 Profile */
     OMX_VIDEO_MPEG2ProfileSNR,         /**< SNR Profile */
     OMX_VIDEO_MPEG2ProfileSpatial,     /**< Spatial Profile */
     OMX_VIDEO_MPEG2ProfileHigh,        /**< High Profile */
-    OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG2PROFILETYPE;
 
 
-/** 
- * MPEG-2 level types, each level indicates support for various frame 
- * sizes, bit rates, decoder frame rates.  No need 
+/**
+ * MPEG-2 level types, each level indicates support for various frame
+ * sizes, bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_MPEG2LEVELTYPE {
-    OMX_VIDEO_MPEG2LevelLL = 0,  /**< Low Level */ 
-    OMX_VIDEO_MPEG2LevelML,      /**< Main Level */ 
-    OMX_VIDEO_MPEG2LevelH14,     /**< High 1440 */ 
-    OMX_VIDEO_MPEG2LevelHL,      /**< High Level */   
-    OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG2LevelLL = 0,  /**< Low Level */
+    OMX_VIDEO_MPEG2LevelML,      /**< Main Level */
+    OMX_VIDEO_MPEG2LevelH14,     /**< High 1440 */
+    OMX_VIDEO_MPEG2LevelHL,      /**< High Level */
+    OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG2LEVELTYPE;
 
 
-/** 
- * MPEG-2 params 
+/**
+ * MPEG-2 params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nPFrames   : Number of P frames between each I frame
  *  nBFrames   : Number of B frames between each I frame
  *  eProfile   : MPEG-2 profile(s) to use
  *  eLevel     : MPEG-2 levels(s) to use
  */
 typedef struct OMX_VIDEO_PARAM_MPEG2TYPE {
-    OMX_U32 nSize;           
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;      
-    OMX_U32 nPFrames;        
-    OMX_U32 nBFrames;        
+    OMX_U32 nPortIndex;
+    OMX_U32 nPFrames;
+    OMX_U32 nBFrames;
     OMX_VIDEO_MPEG2PROFILETYPE eProfile;
-	OMX_VIDEO_MPEG2LEVELTYPE eLevel;   
+	OMX_VIDEO_MPEG2LEVELTYPE eLevel;
 } OMX_VIDEO_PARAM_MPEG2TYPE;
 
 
-/** 
- * MPEG-4 profile types, each profile indicates support for various 
+/**
+ * MPEG-4 profile types, each profile indicates support for various
  * performance bounds and different annexes.
- * 
+ *
  * ENUMS:
  *  - Simple Profile, Levels 1-3
  *  - Simple Scalable Profile, Levels 1-2
  *  - Core Profile, Levels 1-2
  *  - Main Profile, Levels 2-4
  *  - N-bit Profile, Level 2
  *  - Scalable Texture Profile, Level 1
  *  - Simple Face Animation Profile, Levels 1-2
@@ -578,83 +578,83 @@ typedef struct OMX_VIDEO_PARAM_MPEG2TYPE
  *  - Hybrid Profile, Levels 1-2
  *  - Advanced Real Time Simple Profiles, Levels 1-4
  *  - Core Scalable Profile, Levels 1-3
  *  - Advanced Coding Efficiency Profile, Levels 1-4
  *  - Advanced Core Profile, Levels 1-2
  *  - Advanced Scalable Texture, Levels 2-3
  */
 typedef enum OMX_VIDEO_MPEG4PROFILETYPE {
-    OMX_VIDEO_MPEG4ProfileSimple           = 0x01,        
-    OMX_VIDEO_MPEG4ProfileSimpleScalable   = 0x02,    
-    OMX_VIDEO_MPEG4ProfileCore             = 0x04,              
-    OMX_VIDEO_MPEG4ProfileMain             = 0x08,             
-    OMX_VIDEO_MPEG4ProfileNbit             = 0x10,              
-    OMX_VIDEO_MPEG4ProfileScalableTexture  = 0x20,   
-    OMX_VIDEO_MPEG4ProfileSimpleFace       = 0x40,        
-    OMX_VIDEO_MPEG4ProfileSimpleFBA        = 0x80,         
-    OMX_VIDEO_MPEG4ProfileBasicAnimated    = 0x100,     
-    OMX_VIDEO_MPEG4ProfileHybrid           = 0x200,            
-    OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400,  
-    OMX_VIDEO_MPEG4ProfileCoreScalable     = 0x800,      
-    OMX_VIDEO_MPEG4ProfileAdvancedCoding   = 0x1000,    
-    OMX_VIDEO_MPEG4ProfileAdvancedCore     = 0x2000,      
+    OMX_VIDEO_MPEG4ProfileSimple           = 0x01,
+    OMX_VIDEO_MPEG4ProfileSimpleScalable   = 0x02,
+    OMX_VIDEO_MPEG4ProfileCore             = 0x04,
+    OMX_VIDEO_MPEG4ProfileMain             = 0x08,
+    OMX_VIDEO_MPEG4ProfileNbit             = 0x10,
+    OMX_VIDEO_MPEG4ProfileScalableTexture  = 0x20,
+    OMX_VIDEO_MPEG4ProfileSimpleFace       = 0x40,
+    OMX_VIDEO_MPEG4ProfileSimpleFBA        = 0x80,
+    OMX_VIDEO_MPEG4ProfileBasicAnimated    = 0x100,
+    OMX_VIDEO_MPEG4ProfileHybrid           = 0x200,
+    OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400,
+    OMX_VIDEO_MPEG4ProfileCoreScalable     = 0x800,
+    OMX_VIDEO_MPEG4ProfileAdvancedCoding   = 0x1000,
+    OMX_VIDEO_MPEG4ProfileAdvancedCore     = 0x2000,
     OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000,
     OMX_VIDEO_MPEG4ProfileAdvancedSimple   = 0x8000,
-    OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG4ProfileMax              = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG4ProfileMax              = 0x7FFFFFFF
 } OMX_VIDEO_MPEG4PROFILETYPE;
 
 
-/** 
- * MPEG-4 level types, each level indicates support for various frame 
- * sizes, bit rates, decoder frame rates.  No need 
+/**
+ * MPEG-4 level types, each level indicates support for various frame
+ * sizes, bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_MPEG4LEVELTYPE {
-    OMX_VIDEO_MPEG4Level0  = 0x01,   /**< Level 0 */   
-    OMX_VIDEO_MPEG4Level0b = 0x02,   /**< Level 0b */   
-    OMX_VIDEO_MPEG4Level1  = 0x04,   /**< Level 1 */ 
-    OMX_VIDEO_MPEG4Level2  = 0x08,   /**< Level 2 */ 
-    OMX_VIDEO_MPEG4Level3  = 0x10,   /**< Level 3 */ 
-    OMX_VIDEO_MPEG4Level4  = 0x20,   /**< Level 4 */  
-    OMX_VIDEO_MPEG4Level4a = 0x40,   /**< Level 4a */  
-    OMX_VIDEO_MPEG4Level5  = 0x80,   /**< Level 5 */  
-    OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_MPEG4Level0  = 0x01,   /**< Level 0 */
+    OMX_VIDEO_MPEG4Level0b = 0x02,   /**< Level 0b */
+    OMX_VIDEO_MPEG4Level1  = 0x04,   /**< Level 1 */
+    OMX_VIDEO_MPEG4Level2  = 0x08,   /**< Level 2 */
+    OMX_VIDEO_MPEG4Level3  = 0x10,   /**< Level 3 */
+    OMX_VIDEO_MPEG4Level4  = 0x20,   /**< Level 4 */
+    OMX_VIDEO_MPEG4Level4a = 0x40,   /**< Level 4a */
+    OMX_VIDEO_MPEG4Level5  = 0x80,   /**< Level 5 */
+    OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF
 } OMX_VIDEO_MPEG4LEVELTYPE;
 
 
-/** 
+/**
  * MPEG-4 configuration.  This structure handles configuration options
  * which are specific to MPEG4 algorithms
  *
  * STRUCT MEMBERS:
  *  nSize                : Size of the structure in bytes
  *  nVersion             : OMX specification version information
  *  nPortIndex           : Port that this structure applies to
- *  nSliceHeaderSpacing  : Number of macroblocks between slice header (H263+ 
+ *  nSliceHeaderSpacing  : Number of macroblocks between slice header (H263+
  *                         Annex K). Put zero if not used
  *  bSVH                 : Enable Short Video Header mode
  *  bGov                 : Flag to enable GOV
- *  nPFrames             : Number of P frames between each I frame (also called 
+ *  nPFrames             : Number of P frames between each I frame (also called
  *                         GOV period)
  *  nBFrames             : Number of B frames between each I frame
  *  nIDCVLCThreshold     : Value of intra DC VLC threshold
  *  bACPred              : Flag to use ac prediction
  *  nMaxPacketSize       : Maximum size of packet in bytes.
- *  nTimeIncRes          : Used to pass VOP time increment resolution for MPEG4. 
+ *  nTimeIncRes          : Used to pass VOP time increment resolution for MPEG4.
  *                         Interpreted as described in MPEG4 standard.
  *  eProfile             : MPEG-4 profile(s) to use.
  *  eLevel               : MPEG-4 level(s) to use.
  *  nAllowedPictureTypes : Specifies the picture types allowed in the bitstream
  *  nHeaderExtension     : Specifies the number of consecutive video packet
  *                         headers within a VOP
- *  bReversibleVLC       : Specifies whether reversible variable length coding 
+ *  bReversibleVLC       : Specifies whether reversible variable length coding
  *                         is in use
  */
 typedef struct OMX_VIDEO_PARAM_MPEG4TYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nSliceHeaderSpacing;
     OMX_BOOL bSVH;
@@ -668,83 +668,83 @@ typedef struct OMX_VIDEO_PARAM_MPEG4TYPE
     OMX_VIDEO_MPEG4PROFILETYPE eProfile;
     OMX_VIDEO_MPEG4LEVELTYPE eLevel;
     OMX_U32 nAllowedPictureTypes;
     OMX_U32 nHeaderExtension;
     OMX_BOOL bReversibleVLC;
 } OMX_VIDEO_PARAM_MPEG4TYPE;
 
 
-/** 
- * WMV Versions 
+/**
+ * WMV Versions
  */
 typedef enum OMX_VIDEO_WMVFORMATTYPE {
     OMX_VIDEO_WMVFormatUnused = 0x01,   /**< Format unused or unknown */
     OMX_VIDEO_WMVFormat7      = 0x02,   /**< Windows Media Video format 7 */
     OMX_VIDEO_WMVFormat8      = 0x04,   /**< Windows Media Video format 8 */
     OMX_VIDEO_WMVFormat9      = 0x08,   /**< Windows Media Video format 9 */
-    OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_WMVFormatMax    = 0x7FFFFFFF
 } OMX_VIDEO_WMVFORMATTYPE;
 
 
-/** 
- * WMV Params 
+/**
+ * WMV Params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  eFormat    : Version of WMV stream / data
  */
 typedef struct OMX_VIDEO_PARAM_WMVTYPE {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_WMVFORMATTYPE eFormat;
 } OMX_VIDEO_PARAM_WMVTYPE;
 
 
-/** 
- * Real Video Version 
+/**
+ * Real Video Version
  */
 typedef enum OMX_VIDEO_RVFORMATTYPE {
     OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */
     OMX_VIDEO_RVFormat8,          /**< Real Video format 8 */
     OMX_VIDEO_RVFormat9,          /**< Real Video format 9 */
     OMX_VIDEO_RVFormatG2,         /**< Real Video Format G2 */
-    OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_RVFormatMax = 0x7FFFFFFF
 } OMX_VIDEO_RVFORMATTYPE;
 
 
-/** 
- * Real Video Params 
+/**
+ * Real Video Params
  *
  * STUCT MEMBERS:
  *  nSize              : Size of the structure in bytes
- *  nVersion           : OMX specification version information 
+ *  nVersion           : OMX specification version information
  *  nPortIndex         : Port that this structure applies to
  *  eFormat            : Version of RV stream / data
  *  nBitsPerPixel      : Bits per pixel coded in the frame
  *  nPaddedWidth       : Padded width in pixel of a video frame
  *  nPaddedHeight      : Padded Height in pixels of a video frame
  *  nFrameRate         : Rate of video in frames per second
  *  nBitstreamFlags    : Flags which internal information about the bitstream
  *  nBitstreamVersion  : Bitstream version
  *  nMaxEncodeFrameSize: Max encoded frame size
  *  bEnablePostFilter  : Turn on/off post filter
  *  bEnableTemporalInterpolation : Turn on/off temporal interpolation
- *  bEnableLatencyMode : When enabled, the decoder does not display a decoded 
- *                       frame until it has detected that no enhancement layer 
- *  					 frames or dependent B frames will be coming. This 
- *  					 detection usually occurs when a subsequent non-B 
- *  					 frame is encountered 
+ *  bEnableLatencyMode : When enabled, the decoder does not display a decoded
+ *                       frame until it has detected that no enhancement layer
+ *  					 frames or dependent B frames will be coming. This
+ *  					 detection usually occurs when a subsequent non-B
+ *  					 frame is encountered
  */
 typedef struct OMX_VIDEO_PARAM_RVTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_VIDEO_RVFORMATTYPE eFormat;
     OMX_U16 nBitsPerPixel;
     OMX_U16 nPaddedWidth;
@@ -754,37 +754,37 @@ typedef struct OMX_VIDEO_PARAM_RVTYPE {
     OMX_U32 nBitstreamVersion;
     OMX_U32 nMaxEncodeFrameSize;
     OMX_BOOL bEnablePostFilter;
     OMX_BOOL bEnableTemporalInterpolation;
     OMX_BOOL bEnableLatencyMode;
 } OMX_VIDEO_PARAM_RVTYPE;
 
 
-/** 
- * AVC profile types, each profile indicates support for various 
+/**
+ * AVC profile types, each profile indicates support for various
  * performance bounds and different annexes.
  */
 typedef enum OMX_VIDEO_AVCPROFILETYPE {
     OMX_VIDEO_AVCProfileBaseline = 0x01,   /**< Baseline profile */
     OMX_VIDEO_AVCProfileMain     = 0x02,   /**< Main profile */
     OMX_VIDEO_AVCProfileExtended = 0x04,   /**< Extended profile */
     OMX_VIDEO_AVCProfileHigh     = 0x08,   /**< High profile */
     OMX_VIDEO_AVCProfileHigh10   = 0x10,   /**< High 10 profile */
     OMX_VIDEO_AVCProfileHigh422  = 0x20,   /**< High 4:2:2 profile */
     OMX_VIDEO_AVCProfileHigh444  = 0x40,   /**< High 4:4:4 profile */
-    OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_AVCProfileMax      = 0x7FFFFFFF  
+    OMX_VIDEO_AVCProfileMax      = 0x7FFFFFFF
 } OMX_VIDEO_AVCPROFILETYPE;
 
 
-/** 
- * AVC level types, each level indicates support for various frame sizes, 
- * bit rates, decoder frame rates.  No need 
+/**
+ * AVC level types, each level indicates support for various frame sizes,
+ * bit rates, decoder frame rates.  No need
  */
 typedef enum OMX_VIDEO_AVCLEVELTYPE {
     OMX_VIDEO_AVCLevel1   = 0x01,     /**< Level 1 */
     OMX_VIDEO_AVCLevel1b  = 0x02,     /**< Level 1b */
     OMX_VIDEO_AVCLevel11  = 0x04,     /**< Level 1.1 */
     OMX_VIDEO_AVCLevel12  = 0x08,     /**< Level 1.2 */
     OMX_VIDEO_AVCLevel13  = 0x10,     /**< Level 1.3 */
     OMX_VIDEO_AVCLevel2   = 0x20,     /**< Level 2 */
@@ -793,158 +793,158 @@ typedef enum OMX_VIDEO_AVCLEVELTYPE {
     OMX_VIDEO_AVCLevel3   = 0x100,    /**< Level 3 */
     OMX_VIDEO_AVCLevel31  = 0x200,    /**< Level 3.1 */
     OMX_VIDEO_AVCLevel32  = 0x400,    /**< Level 3.2 */
     OMX_VIDEO_AVCLevel4   = 0x800,    /**< Level 4 */
     OMX_VIDEO_AVCLevel41  = 0x1000,   /**< Level 4.1 */
     OMX_VIDEO_AVCLevel42  = 0x2000,   /**< Level 4.2 */
     OMX_VIDEO_AVCLevel5   = 0x4000,   /**< Level 5 */
     OMX_VIDEO_AVCLevel51  = 0x8000,   /**< Level 5.1 */
-    OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
-    OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF  
+    OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCLEVELTYPE;
 
 
-/** 
- * AVC loop filter modes 
+/**
+ * AVC loop filter modes
  *
  * OMX_VIDEO_AVCLoopFilterEnable               : Enable
  * OMX_VIDEO_AVCLoopFilterDisable              : Disable
  * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries
  */
 typedef enum OMX_VIDEO_AVCLOOPFILTERTYPE {
     OMX_VIDEO_AVCLoopFilterEnable = 0,
     OMX_VIDEO_AVCLoopFilterDisable,
     OMX_VIDEO_AVCLoopFilterDisableSliceBoundary,
-    OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCLOOPFILTERTYPE;
 
 
-/** 
- * AVC params 
+/**
+ * AVC params
  *
  * STRUCT MEMBERS:
  *  nSize                     : Size of the structure in bytes
  *  nVersion                  : OMX specification version information
  *  nPortIndex                : Port that this structure applies to
- *  nSliceHeaderSpacing       : Number of macroblocks between slice header, put  
+ *  nSliceHeaderSpacing       : Number of macroblocks between slice header, put
  *                              zero if not used
  *  nPFrames                  : Number of P frames between each I frame
  *  nBFrames                  : Number of B frames between each I frame
  *  bUseHadamard              : Enable/disable Hadamard transform
  *  nRefFrames                : Max number of reference frames to use for inter
  *                              motion search (1-16)
  *  nRefIdxTrailing           : Pic param set ref frame index (index into ref
  *                              frame buffer of trailing frames list), B frame
  *                              support
  *  nRefIdxForward            : Pic param set ref frame index (index into ref
  *                              frame buffer of forward frames list), B frame
  *                              support
- *  bEnableUEP                : Enable/disable unequal error protection. This 
+ *  bEnableUEP                : Enable/disable unequal error protection. This
  *                              is only valid of data partitioning is enabled.
  *  bEnableFMO                : Enable/disable flexible macroblock ordering
  *  bEnableASO                : Enable/disable arbitrary slice ordering
  *  bEnableRS                 : Enable/disable sending of redundant slices
  *  eProfile                  : AVC profile(s) to use
  *  eLevel                    : AVC level(s) to use
- *  nAllowedPictureTypes      : Specifies the picture types allowed in the 
+ *  nAllowedPictureTypes      : Specifies the picture types allowed in the
  *                              bitstream
- *  bFrameMBsOnly             : specifies that every coded picture of the 
- *                              coded video sequence is a coded frame 
+ *  bFrameMBsOnly             : specifies that every coded picture of the
+ *                              coded video sequence is a coded frame
  *                              containing only frame macroblocks
- *  bMBAFF                    : Enable/disable switching between frame and 
+ *  bMBAFF                    : Enable/disable switching between frame and
  *                              field macroblocks within a picture
- *  bEntropyCodingCABAC       : Entropy decoding method to be applied for the 
- *                              syntax elements for which two descriptors appear 
+ *  bEntropyCodingCABAC       : Entropy decoding method to be applied for the
+ *                              syntax elements for which two descriptors appear
  *                              in the syntax tables
- *  bWeightedPPrediction      : Enable/disable weighted prediction shall not 
+ *  bWeightedPPrediction      : Enable/disable weighted prediction shall not
  *                              be applied to P and SP slices
- *  nWeightedBipredicitonMode : Default weighted prediction is applied to B 
- *                              slices 
+ *  nWeightedBipredicitonMode : Default weighted prediction is applied to B
+ *                              slices
  *  bconstIpred               : Enable/disable intra prediction
- *  bDirect8x8Inference       : Specifies the method used in the derivation 
- *                              process for luma motion vectors for B_Skip, 
- *                              B_Direct_16x16 and B_Direct_8x8 as specified 
- *                              in subclause 8.4.1.2 of the AVC spec 
+ *  bDirect8x8Inference       : Specifies the method used in the derivation
+ *                              process for luma motion vectors for B_Skip,
+ *                              B_Direct_16x16 and B_Direct_8x8 as specified
+ *                              in subclause 8.4.1.2 of the AVC spec
  *  bDirectSpatialTemporal    : Flag indicating spatial or temporal direct
- *                              mode used in B slice coding (related to 
- *                              bDirect8x8Inference) . Spatial direct mode is 
+ *                              mode used in B slice coding (related to
+ *                              bDirect8x8Inference) . Spatial direct mode is
  *                              more common and should be the default.
  *  nCabacInitIdx             : Index used to init CABAC contexts
  *  eLoopFilterMode           : Enable/disable loop filter
  */
 typedef struct OMX_VIDEO_PARAM_AVCTYPE {
-    OMX_U32 nSize;                 
-    OMX_VERSIONTYPE nVersion;      
-    OMX_U32 nPortIndex;            
-    OMX_U32 nSliceHeaderSpacing;  
-    OMX_U32 nPFrames;     
-    OMX_U32 nBFrames;     
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nSliceHeaderSpacing;
+    OMX_U32 nPFrames;
+    OMX_U32 nBFrames;
     OMX_BOOL bUseHadamard;
-    OMX_U32 nRefFrames;  
+    OMX_U32 nRefFrames;
 	OMX_U32 nRefIdx10ActiveMinus1;
 	OMX_U32 nRefIdx11ActiveMinus1;
-    OMX_BOOL bEnableUEP;  
-    OMX_BOOL bEnableFMO;  
-    OMX_BOOL bEnableASO;  
-    OMX_BOOL bEnableRS;   
+    OMX_BOOL bEnableUEP;
+    OMX_BOOL bEnableFMO;
+    OMX_BOOL bEnableASO;
+    OMX_BOOL bEnableRS;
     OMX_VIDEO_AVCPROFILETYPE eProfile;
-	OMX_VIDEO_AVCLEVELTYPE eLevel; 
-    OMX_U32 nAllowedPictureTypes;  
-	OMX_BOOL bFrameMBsOnly;        									
-    OMX_BOOL bMBAFF;               
-    OMX_BOOL bEntropyCodingCABAC;  
-    OMX_BOOL bWeightedPPrediction; 
-    OMX_U32 nWeightedBipredicitonMode; 
+	OMX_VIDEO_AVCLEVELTYPE eLevel;
+    OMX_U32 nAllowedPictureTypes;
+	OMX_BOOL bFrameMBsOnly;
+    OMX_BOOL bMBAFF;
+    OMX_BOOL bEntropyCodingCABAC;
+    OMX_BOOL bWeightedPPrediction;
+    OMX_U32 nWeightedBipredicitonMode;
     OMX_BOOL bconstIpred ;
-    OMX_BOOL bDirect8x8Inference;  
+    OMX_BOOL bDirect8x8Inference;
 	OMX_BOOL bDirectSpatialTemporal;
 	OMX_U32 nCabacInitIdc;
 	OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode;
 } OMX_VIDEO_PARAM_AVCTYPE;
 
 typedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE {
-   OMX_U32 nSize;                 
-   OMX_VERSIONTYPE nVersion;      
-   OMX_U32 nPortIndex;            
-   OMX_U32 eProfile;      /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 
+   OMX_U32 nSize;
+   OMX_VERSIONTYPE nVersion;
+   OMX_U32 nPortIndex;
+   OMX_U32 eProfile;      /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE,
                                  or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
-   OMX_U32 eLevel;        /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 
+   OMX_U32 eLevel;        /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE,
                                  or OMX_VIDEO_MPEG4PROFILETYPE depending on context */
    OMX_U32 nProfileIndex; /**< Used to query for individual profile support information,
-                               This parameter is valid only for 
+                               This parameter is valid only for
                                OMX_IndexParamVideoProfileLevelQuerySupported index,
                                For all other indices this parameter is to be ignored. */
 } OMX_VIDEO_PARAM_PROFILELEVELTYPE;
 
-/** 
- * Structure for dynamically configuring bitrate mode of a codec. 
+/**
+ * Structure for dynamically configuring bitrate mode of a codec.
  *
  * STRUCT MEMBERS:
  *  nSize          : Size of the struct in bytes
  *  nVersion       : OMX spec version info
  *  nPortIndex     : Port that this struct applies to
  *  nEncodeBitrate : Target average bitrate to be generated in bps
  */
 typedef struct OMX_VIDEO_CONFIG_BITRATETYPE {
-    OMX_U32 nSize;                          
-    OMX_VERSIONTYPE nVersion;               
-    OMX_U32 nPortIndex;                     
-    OMX_U32 nEncodeBitrate;                 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nEncodeBitrate;
 } OMX_VIDEO_CONFIG_BITRATETYPE;
 
-/** 
+/**
  * Defines Encoder Frame Rate setting
  *
  * STRUCT MEMBERS:
  *  nSize            : Size of the structure in bytes
- *  nVersion         : OMX specification version information 
+ *  nVersion         : OMX specification version information
  *  nPortIndex       : Port that this structure applies to
  *  xEncodeFramerate : Encoding framerate represented in Q16 format
  */
 typedef struct OMX_CONFIG_FRAMERATETYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 xEncodeFramerate; /* Q16 format */
@@ -974,81 +974,81 @@ typedef struct OMX_CONFIG_MBERRORREPORTI
 
 typedef struct OMX_PARAM_MACROBLOCKSTYPE {
     OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nMacroblocks;
 } OMX_PARAM_MACROBLOCKSTYPE;
 
-/** 
- * AVC Slice Mode modes 
+/**
+ * AVC Slice Mode modes
  *
  * OMX_VIDEO_SLICEMODE_AVCDefault   : Normal frame encoding, one slice per frame
  * OMX_VIDEO_SLICEMODE_AVCMBSlice   : NAL mode, number of MBs per frame
  * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame
  */
 typedef enum OMX_VIDEO_AVCSLICEMODETYPE {
     OMX_VIDEO_SLICEMODE_AVCDefault = 0,
     OMX_VIDEO_SLICEMODE_AVCMBSlice,
     OMX_VIDEO_SLICEMODE_AVCByteSlice,
-    OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
+    OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
     OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
     OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF
 } OMX_VIDEO_AVCSLICEMODETYPE;
 
-/** 
- * AVC FMO Slice Mode Params 
+/**
+ * AVC FMO Slice Mode Params
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nNumSliceGroups : Specifies the number of slice groups
  *  nSliceGroupMapType : Specifies the type of slice groups
  *  eSliceMode : Specifies the type of slice
  */
 typedef struct OMX_VIDEO_PARAM_AVCSLICEFMO {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U8 nNumSliceGroups;
     OMX_U8 nSliceGroupMapType;
     OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
 } OMX_VIDEO_PARAM_AVCSLICEFMO;
 
-/** 
+/**
  * AVC IDR Period Configs
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nIDRPeriod : Specifies periodicity of IDR frames
  *  nPFrames : Specifies internal of coding Intra frames
  */
 typedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nIDRPeriod;
     OMX_U32 nPFrames;
 } OMX_VIDEO_CONFIG_AVCINTRAPERIOD;
 
-/** 
+/**
  * AVC NAL Size Configs
  *
  * STRUCT MEMBERS:
  *  nSize      : Size of the structure in bytes
  *  nVersion   : OMX specification version information
  *  nPortIndex : Port that this structure applies to
  *  nNaluBytes : Specifies the NAL unit size
  */
 typedef struct OMX_VIDEO_CONFIG_NALSIZE {
-    OMX_U32 nSize; 
+    OMX_U32 nSize;
     OMX_VERSIONTYPE nVersion;
     OMX_U32 nPortIndex;
     OMX_U32 nNaluBytes;
 } OMX_VIDEO_CONFIG_NALSIZE;
 
 /** @} */
 
 #ifdef __cplusplus
--- a/media/openmax_il/il112/OMX_VideoExt.h
+++ b/media/openmax_il/il112/OMX_VideoExt.h
@@ -1,123 +1,123 @@
-/*
- * Copyright (c) 2010 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject
- * to the following conditions:
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-/** OMX_VideoExt.h - OpenMax IL version 1.1.2
- * The OMX_VideoExt header file contains extensions to the
- * definitions used by both the application and the component to
- * access video items.
- */
-
-#ifndef OMX_VideoExt_h
-#define OMX_VideoExt_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Each OMX header shall include all required header files to allow the
- * header to compile without errors.  The includes below are required
- * for this header file to compile successfully
- */
-#include <OMX_Core.h>
-
-/** NALU Formats */
-typedef enum OMX_NALUFORMATSTYPE {
-    OMX_NaluFormatStartCodes = 1,
-    OMX_NaluFormatOneNaluPerBuffer = 2,
-    OMX_NaluFormatOneByteInterleaveLength = 4,
-    OMX_NaluFormatTwoByteInterleaveLength = 8,
-    OMX_NaluFormatFourByteInterleaveLength = 16,
-    OMX_NaluFormatCodingMax = 0x7FFFFFFF
-} OMX_NALUFORMATSTYPE;
-
-/** NAL Stream Format */
-typedef struct OMX_NALSTREAMFORMATTYPE{
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;
-    OMX_NALUFORMATSTYPE eNaluFormat;
-} OMX_NALSTREAMFORMATTYPE;
-
-/** Enum for standard video codingtype extensions */
-typedef enum OMX_VIDEO_CODINGEXTTYPE {
-    OMX_VIDEO_ExtCodingUnused = OMX_VIDEO_CodingKhronosExtensions,
-    OMX_VIDEO_CodingVP8,        /**< VP8/WebM */ 
-} OMX_VIDEO_CODINGEXTTYPE;
-
-/** VP8 profiles */
-typedef enum OMX_VIDEO_VP8PROFILETYPE {
-    OMX_VIDEO_VP8ProfileMain = 0x01,
-    OMX_VIDEO_VP8ProfileUnknown = 0x6EFFFFFF,
-    OMX_VIDEO_VP8ProfileMax = 0x7FFFFFFF
-} OMX_VIDEO_VP8PROFILETYPE;
-
-/** VP8 levels */
-typedef enum OMX_VIDEO_VP8LEVELTYPE {
-    OMX_VIDEO_VP8Level_Version0 = 0x01,
-    OMX_VIDEO_VP8Level_Version1 = 0x02,
-    OMX_VIDEO_VP8Level_Version2 = 0x04,
-    OMX_VIDEO_VP8Level_Version3 = 0x08,
-    OMX_VIDEO_VP8LevelUnknown = 0x6EFFFFFF,
-    OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF
-} OMX_VIDEO_VP8LEVELTYPE;
-
-/** VP8 Param */
-typedef struct OMX_VIDEO_PARAM_VP8TYPE {
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;
-    OMX_VIDEO_VP8PROFILETYPE eProfile;
-    OMX_VIDEO_VP8LEVELTYPE eLevel;
-    OMX_U32 nDCTPartitions;
-    OMX_BOOL bErrorResilientMode;
-} OMX_VIDEO_PARAM_VP8TYPE;
-
-/** Structure for configuring VP8 reference frames */
-typedef struct OMX_VIDEO_VP8REFERENCEFRAMETYPE {
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;
-    OMX_BOOL bPreviousFrameRefresh;
-    OMX_BOOL bGoldenFrameRefresh;
-    OMX_BOOL bAlternateFrameRefresh;
-    OMX_BOOL bUsePreviousFrame;
-    OMX_BOOL bUseGoldenFrame;
-    OMX_BOOL bUseAlternateFrame;
-} OMX_VIDEO_VP8REFERENCEFRAMETYPE;
-
-/** Structure for querying VP8 reference frame type */
-typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE {
-    OMX_U32 nSize;
-    OMX_VERSIONTYPE nVersion;
-    OMX_U32 nPortIndex;
-    OMX_BOOL bIsIntraFrame;
-    OMX_BOOL bIsGoldenOrAlternateFrame;
-} OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* OMX_VideoExt_h */
-/* File EOF */
+/*
+ * Copyright (c) 2010 The Khronos Group Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/** OMX_VideoExt.h - OpenMax IL version 1.1.2
+ * The OMX_VideoExt header file contains extensions to the
+ * definitions used by both the application and the component to
+ * access video items.
+ */
+
+#ifndef OMX_VideoExt_h
+#define OMX_VideoExt_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Each OMX header shall include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully
+ */
+#include <OMX_Core.h>
+
+/** NALU Formats */
+typedef enum OMX_NALUFORMATSTYPE {
+    OMX_NaluFormatStartCodes = 1,
+    OMX_NaluFormatOneNaluPerBuffer = 2,
+    OMX_NaluFormatOneByteInterleaveLength = 4,
+    OMX_NaluFormatTwoByteInterleaveLength = 8,
+    OMX_NaluFormatFourByteInterleaveLength = 16,
+    OMX_NaluFormatCodingMax = 0x7FFFFFFF
+} OMX_NALUFORMATSTYPE;
+
+/** NAL Stream Format */
+typedef struct OMX_NALSTREAMFORMATTYPE{
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_NALUFORMATSTYPE eNaluFormat;
+} OMX_NALSTREAMFORMATTYPE;
+
+/** Enum for standard video codingtype extensions */
+typedef enum OMX_VIDEO_CODINGEXTTYPE {
+    OMX_VIDEO_ExtCodingUnused = OMX_VIDEO_CodingKhronosExtensions,
+    OMX_VIDEO_CodingVP8,        /**< VP8/WebM */
+} OMX_VIDEO_CODINGEXTTYPE;
+
+/** VP8 profiles */
+typedef enum OMX_VIDEO_VP8PROFILETYPE {
+    OMX_VIDEO_VP8ProfileMain = 0x01,
+    OMX_VIDEO_VP8ProfileUnknown = 0x6EFFFFFF,
+    OMX_VIDEO_VP8ProfileMax = 0x7FFFFFFF
+} OMX_VIDEO_VP8PROFILETYPE;
+
+/** VP8 levels */
+typedef enum OMX_VIDEO_VP8LEVELTYPE {
+    OMX_VIDEO_VP8Level_Version0 = 0x01,
+    OMX_VIDEO_VP8Level_Version1 = 0x02,
+    OMX_VIDEO_VP8Level_Version2 = 0x04,
+    OMX_VIDEO_VP8Level_Version3 = 0x08,
+    OMX_VIDEO_VP8LevelUnknown = 0x6EFFFFFF,
+    OMX_VIDEO_VP8LevelMax = 0x7FFFFFFF
+} OMX_VIDEO_VP8LEVELTYPE;
+
+/** VP8 Param */
+typedef struct OMX_VIDEO_PARAM_VP8TYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_VIDEO_VP8PROFILETYPE eProfile;
+    OMX_VIDEO_VP8LEVELTYPE eLevel;
+    OMX_U32 nDCTPartitions;
+    OMX_BOOL bErrorResilientMode;
+} OMX_VIDEO_PARAM_VP8TYPE;
+
+/** Structure for configuring VP8 reference frames */
+typedef struct OMX_VIDEO_VP8REFERENCEFRAMETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bPreviousFrameRefresh;
+    OMX_BOOL bGoldenFrameRefresh;
+    OMX_BOOL bAlternateFrameRefresh;
+    OMX_BOOL bUsePreviousFrame;
+    OMX_BOOL bUseGoldenFrame;
+    OMX_BOOL bUseAlternateFrame;
+} OMX_VIDEO_VP8REFERENCEFRAMETYPE;
+
+/** Structure for querying VP8 reference frame type */
+typedef struct OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bIsIntraFrame;
+    OMX_BOOL bIsGoldenOrAlternateFrame;
+} OMX_VIDEO_VP8REFERENCEFRAMEINFOTYPE;
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_VideoExt_h */
+/* File EOF */
--- a/media/webrtc/signaling/src/common/YuvStamper.cpp
+++ b/media/webrtc/signaling/src/common/YuvStamper.cpp
@@ -40,17 +40,17 @@ static unsigned char DIGIT_0 [] =
   { ON_3 | ON_2,
     ON_4 | ON_1,
     ON_5 | ON_0,
     ON_5 | ON_0,
     ON_5 | ON_0,
     ON_4 | ON_1,
     ON_3 | ON_2
   };
-    
+
 /*
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
   0, 0, 0, 1, 0, 0,
--- a/media/webrtc/signaling/src/media-conduit/VideoConduit.h
+++ b/media/webrtc/signaling/src/media-conduit/VideoConduit.h
@@ -402,17 +402,17 @@ private:
   private:
     uint32_t mDiscardedPackets = 0;
   };
   /*
    * Stores encoder configuration information and produces
    * a VideoEncoderConfig from it.
    */
   class VideoStreamFactory;
-  
+
   class VideoEncoderConfigBuilder {
   public:
     /**
      * Stores extended data for Simulcast Streams
      */
     class SimulcastStreamConfig {
     public:
       int jsMaxBitrate; // user-controlled max bitrate
--- a/modules/libjar/nsJARInputStream.cpp
+++ b/modules/libjar/nsJARInputStream.cpp
@@ -1,11 +1,11 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* nsJARInputStream.cpp
- * 
+ *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsJARInputStream.h"
 #include "zipstruct.h"         // defines ZIP compression codes
 #ifdef MOZ_JAR_BROTLI
 #include "decode.h"  // brotli
@@ -36,24 +36,24 @@ nsJARInputStream::InitFile(nsJAR *aJar, 
     nsresult rv = NS_OK;
     MOZ_ASSERT(aJar, "Argument may not be null");
     MOZ_ASSERT(item, "Argument may not be null");
 
     // Mark it as closed, in case something fails in initialisation
     mMode = MODE_CLOSED;
     //-- prepare for the compression type
     switch (item->Compression()) {
-       case STORED: 
+       case STORED:
            mMode = MODE_COPY;
            break;
 
        case DEFLATED:
            rv = gZlibInit(&mZs);
            NS_ENSURE_SUCCESS(rv, rv);
-    
+
            mMode = MODE_INFLATE;
            mInCrc = item->CRC32();
            mOutCrc = crc32(0L, Z_NULL, 0);
            break;
 
 #ifdef MOZ_JAR_BROTLI
        case MOZ_JAR_BROTLI:
            mBrotliState = BrotliCreateState(nullptr, nullptr, nullptr);
@@ -61,17 +61,17 @@ nsJARInputStream::InitFile(nsJAR *aJar, 
            mInCrc = item->CRC32();
            mOutCrc = crc32(0L, Z_NULL, 0);
            break;
 #endif
 
        default:
            return NS_ERROR_NOT_IMPLEMENTED;
     }
-   
+
     // Must keep handle to filepointer and mmap structure as long as we need access to the mmapped data
     mFd = aJar->mZip->GetFD();
     mZs.next_in = (Bytef *)aJar->mZip->GetData(item);
     if (!mZs.next_in) {
         nsZipArchive::sFileCorruptedReason = "nsJARInputStream: !mZs.next_in";
         return NS_ERROR_FILE_CORRUPTED;
     }
     mZs.avail_in = item->Size();
@@ -85,17 +85,17 @@ nsJARInputStream::InitDirectory(nsJAR* a
                                 const nsACString& aJarDirSpec,
                                 const char* aDir)
 {
     MOZ_ASSERT(aJar, "Argument may not be null");
     MOZ_ASSERT(aDir, "Argument may not be null");
 
     // Mark it as closed, in case something fails in initialisation
     mMode = MODE_CLOSED;
-    
+
     // Keep the zipReader for getting the actual zipItems
     mJar = aJar;
     nsZipFind *find;
     nsresult rv;
     // We can get aDir's contents as strings via FindEntries
     // with the following pattern (see nsIZipReader.findEntries docs)
     // assuming dirName is properly escaped:
     //
@@ -154,17 +154,17 @@ nsJARInputStream::InitDirectory(nsJAR* a
 
     // Open for reading
     mMode = MODE_DIRECTORY;
     mZs.total_out = 0;
     mArrPos = 0;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARInputStream::Available(uint64_t *_retval)
 {
     // A lot of callers don't check the error code.
     // They just use the _retval value.
     *_retval = 0;
 
     switch (mMode) {
       case MODE_NOTINITED:
@@ -269,29 +269,29 @@ nsJARInputStream::Close()
         BrotliDestroyState(mBrotliState);
     }
 #endif
     mMode = MODE_CLOSED;
     mFd = nullptr;
     return NS_OK;
 }
 
-nsresult 
+nsresult
 nsJARInputStream::ContinueInflate(char* aBuffer, uint32_t aCount,
                                   uint32_t* aBytesRead)
 {
     bool finished = false;
 
     // No need to check the args, ::Read did that, but assert them at least
     NS_ASSERTION(aBuffer,"aBuffer parameter must not be null");
     NS_ASSERTION(aBytesRead,"aBytesRead parameter must not be null");
 
     // Keep old total_out count
     const uint32_t oldTotalOut = mZs.total_out;
-    
+
     // make sure we aren't reading too much
     mZs.avail_out = std::min(aCount, (mOutSize-oldTotalOut));
     mZs.next_out = (unsigned char*)aBuffer;
 
 #ifndef MOZ_JAR_BROTLI
     MOZ_ASSERT(mMode == MODE_INFLATE);
 #endif
     if (mMode == MODE_INFLATE) {
@@ -386,24 +386,24 @@ nsJARInputStream::ReadDirectory(char* aB
             // write a 201: line to the buffer for this item
             // 200: filename content-length last-modified file-type
             mBuffer.AppendLiteral("201: ");
 
             // Names must be escaped and relative, so use the pre-calculated length
             // of the directory name as the offset into the string
             // NS_EscapeURL adds the escaped URL to the give string buffer
             NS_EscapeURL(entryName + mNameLen,
-                         entryNameLen - mNameLen, 
+                         entryNameLen - mNameLen,
                          esc_Minimal | esc_AlwaysCopy,
                          mBuffer);
 
             mBuffer.Append(' ');
             mBuffer.AppendInt(ze->RealSize(), 10);
             mBuffer.Append(itemLastModTime); // starts/ends with ' '
-            if (ze->IsDirectory()) 
+            if (ze->IsDirectory())
                 mBuffer.AppendLiteral("DIRECTORY\n");
             else
                 mBuffer.AppendLiteral("FILE\n");
         }
 
         // Copy up to the desired amount of data to buffer
         numRead += CopyDataToBuffer(aBuffer, aCount);
     }
--- a/modules/libjar/nsJARInputStream.h
+++ b/modules/libjar/nsJARInputStream.h
@@ -1,10 +1,10 @@
 /* nsJARInputStream.h
- * 
+ *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsJARINPUTSTREAM_h__
 #define nsJARINPUTSTREAM_h__
 
 #include "nsIInputStream.h"
@@ -14,51 +14,51 @@
 
 #ifdef MOZ_JAR_BROTLI
 struct BrotliStateStruct;
 #endif
 
 /*-------------------------------------------------------------------------
  * Class nsJARInputStream declaration. This class defines the type of the
  * object returned by calls to nsJAR::GetInputStream(filename) for the
- * purpose of reading a file item out of a JAR file. 
+ * purpose of reading a file item out of a JAR file.
  *------------------------------------------------------------------------*/
 class nsJARInputStream final : public nsIInputStream
 {
   public:
     nsJARInputStream()
     : mOutSize(0)
     , mInCrc(0)
     , mOutCrc(0)
 #ifdef MOZ_JAR_BROTLI
     , mBrotliState(nullptr)
 #endif
     , mNameLen(0)
     , mCurPos(0)
     , mArrPos(0)
     , mMode(MODE_NOTINITED)
-    { 
+    {
       memset(&mZs, 0, sizeof(z_stream));
     }
 
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIINPUTSTREAM
-   
+
     // takes ownership of |fd|, even on failure
     nsresult InitFile(nsJAR *aJar, nsZipItem *item);
 
     nsresult InitDirectory(nsJAR *aJar,
                            const nsACString& aJarDirSpec,
                            const char* aDir);
-  
+
   private:
     ~nsJARInputStream() { Close(); }
 
     RefPtr<nsZipHandle>  mFd;         // handle for reading
-    uint32_t               mOutSize;    // inflated size 
+    uint32_t               mOutSize;    // inflated size
     uint32_t               mInCrc;      // CRC as provided by the zipentry
     uint32_t               mOutCrc;     // CRC as calculated by me
     z_stream               mZs;         // zip data structure
 #ifdef MOZ_JAR_BROTLI
     BrotliStateStruct*     mBrotliState; // Brotli decoder state
 #endif
 
     /* For directory reading */
--- a/modules/libjar/nsJARProtocolHandler.cpp
+++ b/modules/libjar/nsJARProtocolHandler.cpp
@@ -45,17 +45,17 @@ nsJARProtocolHandler::Init()
 
     mJARCache = do_CreateInstance(kZipReaderCacheCID, &rv);
     if (NS_FAILED(rv)) return rv;
 
     rv = mJARCache->Init(NS_JAR_CACHE_SIZE);
     return rv;
 }
 
-nsIMIMEService * 
+nsIMIMEService *
 nsJARProtocolHandler::MimeService()
 {
     if (!mMimeService)
         mMimeService = do_GetService("@mozilla.org/mime;1");
 
     return mMimeService.get();
 }
 
--- a/modules/libjar/nsJARProtocolHandler.h
+++ b/modules/libjar/nsJARProtocolHandler.h
@@ -24,17 +24,17 @@ public:
 
     // nsJARProtocolHandler methods:
     nsJARProtocolHandler();
 
     static nsJARProtocolHandler *GetSingleton();
 
     nsresult Init();
 
-    // returns non addref'ed pointer.  
+    // returns non addref'ed pointer.
     nsIMIMEService    *MimeService();
     nsIZipReaderCache *JarCache() { return mJARCache; }
 protected:
     virtual ~nsJARProtocolHandler();
 
     nsCOMPtr<nsIZipReaderCache> mJARCache;
     nsCOMPtr<nsIMIMEService> mMimeService;
 };
--- a/modules/libjar/nsJARURI.cpp
+++ b/modules/libjar/nsJARURI.cpp
@@ -21,21 +21,21 @@
 #include "nsIObjectOutputStream.h"
 #include "mozilla/ipc/URIUtils.h"
 
 using namespace mozilla::ipc;
 
 static NS_DEFINE_CID(kJARURICID, NS_JARURI_CID);
 
 ////////////////////////////////////////////////////////////////////////////////
- 
+
 nsJARURI::nsJARURI()
 {
 }
- 
+
 nsJARURI::~nsJARURI()
 {
 }
 
 // XXX Why is this threadsafe?
 NS_IMPL_ADDREF(nsJARURI)
 NS_IMPL_RELEASE(nsJARURI)
 NS_INTERFACE_MAP_BEGIN(nsJARURI)
@@ -105,17 +105,17 @@ nsJARURI::CreateEntryURL(const nsACStrin
     nsresult rv = stdURL->Init(nsIStandardURL::URLTYPE_NO_AUTHORITY, -1,
                                spec, charset, nullptr);
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     return CallQueryInterface(stdURL, url);
 }
-    
+
 ////////////////////////////////////////////////////////////////////////////////
 // nsISerializable methods:
 
 NS_IMETHODIMP
 nsJARURI::Read(nsIObjectInputStream* aInputStream)
 {
     nsresult rv;
 
@@ -135,79 +135,79 @@ nsJARURI::Read(nsIObjectInputStream* aIn
     rv = aInputStream->ReadCString(mCharsetHint);
     return rv;
 }
 
 NS_IMETHODIMP
 nsJARURI::Write(nsIObjectOutputStream* aOutputStream)
 {
     nsresult rv;
-    
+
     rv = aOutputStream->WriteCompoundObject(mJARFile, NS_GET_IID(nsIURI),
                                             true);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aOutputStream->WriteCompoundObject(mJAREntry, NS_GET_IID(nsIURL),
                                             true);
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = aOutputStream->WriteStringZ(mCharsetHint.get());
     return rv;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIClassInfo methods:
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetInterfaces(uint32_t *count, nsIID * **array)
 {
     *count = 0;
     *array = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetScriptableHelper(nsIXPCScriptable **_retval)
 {
     *_retval = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetContractID(char * *aContractID)
 {
     *aContractID = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetClassDescription(char * *aClassDescription)
 {
     *aClassDescription = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetClassID(nsCID * *aClassID)
 {
     *aClassID = (nsCID*) moz_xmalloc(sizeof(nsCID));
     if (!*aClassID)
         return NS_ERROR_OUT_OF_MEMORY;
     return GetClassIDNoAlloc(*aClassID);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetFlags(uint32_t *aFlags)
 {
     // XXX We implement THREADSAFE addref/release, but probably shouldn't.
     *aFlags = nsIClassInfo::MAIN_THREAD_ONLY;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsJARURI::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
 {
     *aClassIDNoAlloc = kJARURICID;
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIURI methods:
@@ -295,17 +295,17 @@ nsJARURI::SetSpecWithBase(const nsACStri
     if (frag != end) {
         // there was a fragment, mark that as the end of the URL to scan
         end = frag;
     }
 
     // Search backward from the end for the "!/" delimiter. Remember, jar URLs
     // can nest, e.g.:
     //    jar:jar:http://www.foo.com/bar.jar!/a.jar!/b.html
-    // This gets the b.html document from out of the a.jar file, that's 
+    // This gets the b.html document from out of the a.jar file, that's
     // contained within the bar.jar file.
     // Also, the outermost "inner" URI may be a relative URI:
     //   jar:../relative.jar!/a.html
 
     nsACString::const_iterator delim_begin (begin),
                                delim_end   (end);
 
     if (!RFindInReadable(NS_JAR_DELIMITER, delim_begin, delim_end))
@@ -412,17 +412,17 @@ nsJARURI::SetHost(const nsACString &aHos
     return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP
 nsJARURI::GetPort(int32_t *aPort)
 {
     return NS_ERROR_FAILURE;
 }
- 
+
 NS_IMETHODIMP
 nsJARURI::SetPort(int32_t aPort)
 {
     return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP
 nsJARURI::GetPath(nsACString &aPath)
@@ -571,17 +571,17 @@ nsJARURI::Resolve(const nsACString &rela
     if (NS_SUCCEEDED(rv)) {
         // then aSpec is absolute
         result = relativePath;
         return NS_OK;
     }
 
     nsAutoCString resolvedPath;
     mJAREntry->Resolve(relativePath, resolvedPath);
-    
+
     return FormatSpec(resolvedPath, result);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIURL methods:
 
 NS_IMETHODIMP
 nsJARURI::GetFilePath(nsACString& filePath)
@@ -668,17 +668,17 @@ nsJARURI::SetFileExtension(const nsACStr
 }
 
 NS_IMETHODIMP
 nsJARURI::GetCommonBaseSpec(nsIURI* uriToCompare, nsACString& commonSpec)
 {
     commonSpec.Truncate();
 
     NS_ENSURE_ARG_POINTER(uriToCompare);
-    
+
     commonSpec.Truncate();
     nsCOMPtr<nsIJARURI> otherJARURI(do_QueryInterface(uriToCompare));
     if (!otherJARURI) {
         // Nothing in common
         return NS_OK;
     }
 
     nsCOMPtr<nsIURI> otherJARFile;
@@ -697,19 +697,19 @@ nsJARURI::GetCommonBaseSpec(nsIURI* uriT
             return NS_OK;
         }
         nsAutoCString common;
         rv = ourJARFileURL->GetCommonBaseSpec(otherJARFile, common);
         if (NS_FAILED(rv)) return rv;
 
         commonSpec = NS_JAR_SCHEME + common;
         return NS_OK;
-        
+
     }
-    
+
     // At this point we have the same JAR file.  Compare the JAREntrys
     nsAutoCString otherEntry;
     rv = otherJARURI->GetJAREntry(otherEntry);
     if (NS_FAILED(rv)) return rv;
 
     nsAutoCString otherCharset;
     rv = uriToCompare->GetOriginCharset(otherCharset);
     if (NS_FAILED(rv)) return rv;
@@ -842,17 +842,17 @@ nsJARURI::CloneWithJARFileInternal(nsIUR
       rv = mJAREntry->CloneWithNewRef(newRef, getter_AddRefs(newJAREntryURI));
     } else {
       rv = mJAREntry->CloneIgnoringRef(getter_AddRefs(newJAREntryURI));
     }
     if (NS_FAILED(rv)) return rv;
 
     nsCOMPtr<nsIURL> newJAREntry(do_QueryInterface(newJAREntryURI));
     NS_ASSERTION(newJAREntry, "This had better QI to nsIURL!");
-    
+
     nsJARURI* uri = new nsJARURI();
     NS_ADDREF(uri);
     uri->mJARFile = newJARFile;
     uri->mJAREntry = newJAREntry;
     *result = uri;
 
     return NS_OK;
 }
--- a/modules/libjar/nsJARURI.h
+++ b/modules/libjar/nsJARURI.h
@@ -47,17 +47,17 @@ public:
     NS_DECL_NSICLASSINFO
     NS_DECL_NSINESTEDURI
     NS_DECL_NSIIPCSERIALIZABLEURI
 
     NS_DECLARE_STATIC_IID_ACCESSOR(NS_THIS_JARURI_IMPL_CID)
 
     // nsJARURI
     nsJARURI();
-   
+
     nsresult Init(const char *charsetHint);
     nsresult FormatSpec(const nsACString &entryPath, nsACString &result,
                         bool aIncludeScheme = true);
     nsresult CreateEntryURL(const nsACString& entryFilename,
                             const char* charset,
                             nsIURL** url);
     nsresult SetSpecWithBase(const nsACString& aSpec, nsIURI* aBaseURL);
 
--- a/modules/libjar/nsZipArchive.cpp
+++ b/modules/libjar/nsZipArchive.cpp
@@ -187,17 +187,17 @@ nsresult nsZipHandle::Init(nsIFile *file
 
   int64_t size = PR_Available64(fd);
   if (size >= INT32_MAX)
     return NS_ERROR_FILE_TOO_BIG;
 
   PRFileMap *map = PR_CreateFileMap(fd, size, PR_PROT_READONLY);
   if (!map)
     return NS_ERROR_FAILURE;
-  
+
   uint8_t *buf = (uint8_t*) PR_MemMap(map, 0, (uint32_t) size);
   // Bug 525755: PR_MemMap fails when fd points at something other than a normal file.
   if (!buf) {
     PR_CloseFileMap(map);
     return NS_ERROR_FAILURE;
   }
 
   RefPtr<nsZipHandle> handle = new nsZipHandle();
@@ -440,30 +440,30 @@ nsresult nsZipArchive::CloseArchive()
 
 //---------------------------------------------
 // nsZipArchive::GetItem
 //---------------------------------------------
 nsZipItem*  nsZipArchive::GetItem(const char * aEntryName)
 {
   if (aEntryName) {
     uint32_t len = strlen(aEntryName);
-    //-- If the request is for a directory, make sure that synthetic entries 
+    //-- If the request is for a directory, make sure that synthetic entries
     //-- are created for the directories without their own entry.
     if (!mBuiltSynthetics) {
         if ((len > 0) && (aEntryName[len-1] == '/')) {
             if (BuildSynthetics() != NS_OK)
                 return 0;
         }
     }
 MOZ_WIN_MEM_TRY_BEGIN
     nsZipItem* item = mFiles[ HashName(aEntryName, len) ];
     while (item) {
-      if ((len == item->nameLength) && 
+      if ((len == item->nameLength) &&
           (!memcmp(aEntryName, item->Name(), len))) {
-        
+
         // Successful GetItem() is a good indicator that the file is about to be read
         zipLog.Write(mURI, aEntryName);
         return item; //-- found it
       }
       item = item->next;
     }
 MOZ_WIN_MEM_TRY_CATCH(return nullptr)
   }
@@ -988,20 +988,20 @@ nsZipFind::~nsZipFind()
 
   MOZ_COUNT_DTOR(nsZipFind);
 }
 
 //------------------------------------------
 // helper functions
 //------------------------------------------
 
-/* 
- * HashName 
+/*
+ * HashName
  *
- * returns a hash key for the entry name 
+ * returns a hash key for the entry name
  */
 static uint32_t HashName(const char* aName, uint16_t len)
 {
   MOZ_ASSERT(aName != 0);
 
   const uint8_t* p = (const uint8_t*)aName;
   const uint8_t* endp = p + len;
   uint32_t val = 0;
@@ -1185,26 +1185,26 @@ nsZipCursor::nsZipCursor(nsZipItem *item
   if (mItem->Compression() == DEFLATED) {
 #ifdef DEBUG
     nsresult status =
 #endif
       gZlibInit(&mZs);
     NS_ASSERTION(status == NS_OK, "Zlib failed to initialize");
     NS_ASSERTION(aBuf, "Must pass in a buffer for DEFLATED nsZipItem");
   }
-  
+
   mZs.avail_in = item->Size();
   mZs.next_in = (Bytef*)aZip->GetData(item);
 
 #ifdef MOZ_JAR_BROTLI
   if (mItem->Compression() == MOZ_JAR_BROTLI) {
     mBrotliState = BrotliCreateState(nullptr, nullptr, nullptr);
   }
 #endif
-  
+
   if (doCRC)
     mCRC = crc32(0L, Z_NULL, 0);
 }
 
 nsZipCursor::~nsZipCursor()
 {
   if (mItem->Compression() == DEFLATED) {
     inflateEnd(&mZs);
@@ -1237,21 +1237,21 @@ MOZ_WIN_MEM_TRY_BEGIN
       mZs.avail_in -= *aBytesRead;
       mZs.next_in += *aBytesRead;
     }
     break;
   case DEFLATED:
     buf = mBuf;
     mZs.next_out = buf;
     mZs.avail_out = mBufSize;
-    
+
     zerr = inflate(&mZs, Z_PARTIAL_FLUSH);
     if (zerr != Z_OK && zerr != Z_STREAM_END)
       return nullptr;
-    
+
     *aBytesRead = mZs.next_out - buf;
     verifyCRC = (zerr == Z_STREAM_END);
     break;
 #ifdef MOZ_JAR_BROTLI
   case MOZ_JAR_BROTLI: {
     buf = mBuf;
     mZs.next_out = buf;
     /* The brotli library wants size_t, but z_stream only contains
--- a/modules/libjar/nsZipArchive.h
+++ b/modules/libjar/nsZipArchive.h
@@ -47,17 +47,17 @@ struct BrotliStateStruct;
  *
  * A few notes on the classes/structs:
  * nsZipArchive   represents a single Zip file, and maintains an index
  *                of all the items in the file.
  * nsZipItem      represents a single item (file) in the Zip archive.
  * nsZipFind      represents the metadata involved in doing a search,
  *                and current state of the iteration of found objects.
  * 'MT''safe' reading from the zipfile is performed through JARInputStream,
- * which maintains its own file descriptor, allowing for multiple reads 
+ * which maintains its own file descriptor, allowing for multiple reads
  * concurrently from the same zip file.
  */
 
 /**
  * nsZipItem -- a helper struct for nsZipArchive
  *
  * each nsZipItem represents one file in the archive and all the
  * information needed to manipulate it.
@@ -88,80 +88,80 @@ public:
   nsZipItem*         next;
   const ZipCentral*  central;
   uint16_t           nameLength;
   bool               isSynthetic;
 };
 
 class nsZipHandle;
 
-/** 
+/**
  * nsZipArchive -- a class for reading the PKZIP file format.
  *
  */
 class nsZipArchive final
 {
   friend class nsZipFind;
 
   /** destructing the object closes the archive */
   ~nsZipArchive();
 
 public:
   static const char* sFileCorruptedReason;
 
   /** constructing does not open the archive. See OpenArchive() */
   nsZipArchive();
 
-  /** 
-   * OpenArchive 
-   * 
+  /**
+   * OpenArchive
+   *
    * It's an error to call this more than once on the same nsZipArchive
-   * object. If we were allowed to use exceptions this would have been 
-   * part of the constructor 
+   * object. If we were allowed to use exceptions this would have been
+   * part of the constructor
    *
    * @param   aZipHandle  The nsZipHandle used to access the zip
    * @param   aFd         Optional PRFileDesc for Windows readahead optimization
    * @return  status code
    */
   nsresult OpenArchive(nsZipHandle *aZipHandle, PRFileDesc *aFd = nullptr);
 
-  /** 
-   * OpenArchive 
-   * 
+  /**
+   * OpenArchive
+   *
    * Convenience function that generates nsZipHandle
    *
    * @param   aFile         The file used to access the zip
    * @return  status code
    */
   nsresult OpenArchive(nsIFile *aFile);
 
   /**
    * Test the integrity of items in this archive by running
-   * a CRC check after extracting each item into a memory 
-   * buffer.  If an entry name is supplied only the 
+   * a CRC check after extracting each item into a memory
+   * buffer.  If an entry name is supplied only the
    * specified item is tested.  Else, if null is supplied
    * then all the items in the archive are tested.
    *
-   * @return  status code       
+   * @return  status code
    */
   nsresult Test(const char *aEntryName);
 
   /**
    * Closes an open archive.
    */
   nsresult CloseArchive();
 
-  /** 
+  /**
    * GetItem
    * @param   aEntryName Name of file in the archive
    * @return  pointer to nsZipItem
-   */  
+   */
   nsZipItem* GetItem(const char * aEntryName);
-  
-  /** 
+
+  /**
    * ExtractFile
    *
    * @param   zipEntry   Name of file in archive to extract
    * @param   outFD      Filedescriptor to write contents to
    * @param   outname    Name of file to write to
    * @return  status code
    */
   nsresult ExtractFile(nsZipItem * zipEntry, const char *outname, PRFileDesc * outFD);
@@ -239,18 +239,18 @@ private:
   nsZipItem*        CreateZipItem();
   nsresult          BuildFileList(PRFileDesc *aFd = nullptr);
   nsresult          BuildSynthetics();
 
   nsZipArchive& operator=(const nsZipArchive& rhs) = delete;
   nsZipArchive(const nsZipArchive& rhs) = delete;
 };
 
-/** 
- * nsZipFind 
+/**
+ * nsZipFind
  *
  * a helper class for nsZipArchive, representing a search
  */
 class nsZipFind final
 {
 public:
   nsZipFind(nsZipArchive* aZip, char* aPattern, bool regExp);
   ~nsZipFind();
@@ -263,17 +263,17 @@ private:
   nsZipItem*    mItem;
   uint16_t      mSlot;
   bool          mRegExp;
 
   nsZipFind& operator=(const nsZipFind& rhs) = delete;
   nsZipFind(const nsZipFind& rhs) = delete;
 };
 
-/** 
+/**
  * nsZipCursor -- a low-level class for reading the individual items in a zip.
  */
 class nsZipCursor final
 {
 public:
   /**
    * Initializes the cursor
    *
@@ -308,19 +308,19 @@ public:
   uint8_t* Copy(uint32_t *aBytesRead) {
     return ReadOrCopy(aBytesRead, true);
   }
 
 private:
   /* Actual implementation for both Read and Copy above */
   uint8_t* ReadOrCopy(uint32_t *aBytesRead, bool aCopy);
 
-  nsZipItem *mItem; 
-  uint8_t  *mBuf; 
-  uint32_t  mBufSize; 
+  nsZipItem *mItem;
+  uint8_t  *mBuf;
+  uint32_t  mBufSize;
   z_stream  mZs;
 #ifdef MOZ_JAR_BROTLI
   BrotliStateStruct* mBrotliState;
 #endif
   uint32_t mCRC;
   bool mDoCRC;
 };
 
--- a/modules/libjar/zipstruct.h
+++ b/modules/libjar/zipstruct.h
@@ -27,17 +27,17 @@ typedef struct ZipLocal_
   unsigned char filename_len [2];
   unsigned char extrafield_len [2];
 } ZipLocal;
 
 /*
  * 'sizeof(struct XXX)' includes padding on ARM (see bug 87965)
  * As the internals of a jar/zip file must not depend on the target
  * architecture (i386, ppc, ARM, ...), use a fixed value instead.
- */ 
+ */
 #define ZIPLOCAL_SIZE (4+2+2+2+2+2+4+4+4+2+2)
 
 typedef struct ZipCentral_
   {
   unsigned char signature [4];
   unsigned char version_made_by [2];
   unsigned char version [2];
   unsigned char bitflag [2];
@@ -55,17 +55,17 @@ typedef struct ZipCentral_
   unsigned char external_attributes [4];
   unsigned char localhdr_offset [4];
 } ZipCentral;
 
 /*
  * 'sizeof(struct XXX)' includes padding on ARM (see bug 87965)
  * As the internals of a jar/zip file must not depend on the target
  * architecture (i386, ppc, ARM, ...), use a fixed value instead.
- */ 
+ */
 #define ZIPCENTRAL_SIZE (4+2+2+2+2+2+2+4+4+4+2+2+2+2+2+4+4)
 
 typedef struct ZipEnd_
   {
   unsigned char signature [4];
   unsigned char disk_nr [2];
   unsigned char start_central_dir [2];
   unsigned char total_entries_disk [2];
@@ -74,17 +74,17 @@ typedef struct ZipEnd_
   unsigned char offset_central_dir [4];
   unsigned char commentfield_len [2];
 } ZipEnd;
 
 /*
  * 'sizeof(struct XXX)' includes padding on ARM (see bug 87965)
  * As the internals of a jar/zip file must not depend on the target
  * architecture (i386, ppc, ARM, ...), use a fixed value instead.
- */ 
+ */
 #define ZIPEND_SIZE (4+2+2+2+2+4+4+2)
 
 /* signatures */
 #define LOCALSIG    0x04034B50l
 #define CENTRALSIG  0x02014B50l
 #define ENDSIG      0x06054B50l
 
 /* extra fields */
--- a/modules/libjar/zipwriter/nsDeflateConverter.cpp
+++ b/modules/libjar/zipwriter/nsDeflateConverter.cpp
@@ -30,17 +30,17 @@ nsresult nsDeflateConverter::Init()
 {
     int zerr;
 
     mOffset = 0;
 
     mZstream.zalloc = Z_NULL;
     mZstream.zfree = Z_NULL;
     mZstream.opaque = Z_NULL;
-    
+
     int32_t window = MAX_WBITS;
     switch (mWrapMode) {
         case WRAP_NONE:
             window = -window;
             break;
         case WRAP_GZIP:
             window += 16;
             break;
--- a/modules/libjar/zipwriter/nsDeflateConverter.h
+++ b/modules/libjar/zipwriter/nsDeflateConverter.h
@@ -36,17 +36,17 @@ public:
         mLevel = level;
     }
 
 private:
 
     ~nsDeflateConverter()
     {
     }
-    
+
     enum WrapMode {
         WRAP_ZLIB,
         WRAP_GZIP,
         WRAP_NONE
     };
 
     WrapMode mWrapMode;
     uint64_t mOffset;
--- a/modules/libjar/zipwriter/nsZipWriter.cpp
+++ b/modules/libjar/zipwriter/nsZipWriter.cpp
@@ -28,24 +28,24 @@
 #define ZIP_EOCDR_HEADER_SIGNATURE 0x06054b50
 
 using namespace mozilla;
 
 /**
  * nsZipWriter is used to create and add to zip files.
  * It is based on the spec available at
  * http://www.pkware.com/documents/casestudies/APPNOTE.TXT.
- * 
+ *
  * The basic structure of a zip file created is slightly simpler than that
  * illustrated in the spec because certain features of the zip format are
  * unsupported:
- * 
+ *
  * [local file header 1]
  * [file data 1]
- * . 
+ * .
  * .
  * .
  * [local file header n]
  * [file data n]
  * [central directory]
  * [end of central directory record]
  */
 NS_IMPL_ISUPPORTS(nsZipWriter, nsIZipWriter,
@@ -233,17 +233,17 @@ NS_IMETHODIMP nsZipWriter::Open(nsIFile 
     if (mStream)
         return NS_ERROR_ALREADY_INITIALIZED;
 
     NS_ENSURE_ARG_POINTER(aFile);
 
     // Need to be able to write to the file
     if (aIoFlags & PR_RDONLY)
         return NS_ERROR_FAILURE;
-    
+
     nsresult rv = aFile->Clone(getter_AddRefs(mFile));
     NS_ENSURE_SUCCESS(rv, rv);
 
     bool exists;
     rv = mFile->Exists(&exists);
     NS_ENSURE_SUCCESS(rv, rv);
     if (!exists && !(aIoFlags & PR_CREATE_FILE))
         return NS_ERROR_FILE_NOT_FOUND;
--- a/modules/libpref/Preferences.cpp
+++ b/modules/libpref/Preferences.cpp
@@ -750,17 +750,17 @@ Preferences::Init()
    * all-ns.js (netscape 6), and if it exists we startup the pref config
    * category which will do the rest.
    */
 
   rv = PREF_CopyCharPref("general.config.filename", getter_Copies(lockFileName), false);
   if (NS_SUCCEEDED(rv))
     NS_CreateServicesFromCategory("pref-config-startup",
                                   static_cast<nsISupports *>(static_cast<void *>(this)),
-                                  "pref-config-startup");    
+                                  "pref-config-startup");
 
   nsCOMPtr<nsIObserverService> observerService =
     mozilla::services::GetObserverService();
   if (!observerService)
     return NS_ERROR_FAILURE;
 
   observerService->AddObserver(this, "profile-before-change-telemetry", true);
   rv = observerService->AddObserver(this, "profile-before-change", true);
@@ -1056,24 +1056,24 @@ NS_IMETHODIMP
 Preferences::GetDirty(bool *_retval) {
   *_retval = mDirty;
   return NS_OK;
 }
 
 nsresult
 Preferences::NotifyServiceObservers(const char *aTopic)
 {
-  nsCOMPtr<nsIObserverService> observerService = 
-    mozilla::services::GetObserverService();  
+  nsCOMPtr<nsIObserverService> observerService =
+    mozilla::services::GetObserverService();
   if (!observerService)
     return NS_ERROR_FAILURE;
 
   nsISupports *subject = (nsISupports *)((nsIPrefService *)this);
   observerService->NotifyObservers(subject, aTopic, nullptr);
-  
+
   return NS_OK;
 }
 
 nsresult
 Preferences::UseDefaultPrefFile()
 {
   nsCOMPtr<nsIFile> file;
   nsresult rv = NS_GetSpecialDirectory(NS_APP_PREFS_50_FILE,
@@ -1242,17 +1242,17 @@ Preferences::WritePrefFile(nsIFile* aFil
 }
 
 static nsresult openPrefFile(nsIFile* aFile)
 {
   nsCOMPtr<nsIInputStream> inStr;
 
   nsresult rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), aFile);
   if (NS_FAILED(rv))
-    return rv;        
+    return rv;
 
   int64_t fileSize64;
   rv = aFile->GetFileSize(&fileSize64);
   if (NS_FAILED(rv))
     return rv;
   NS_ENSURE_TRUE(fileSize64 <= UINT32_MAX, NS_ERROR_FILE_TOO_BIG);
 
   uint32_t fileSize = (uint32_t)fileSize64;
@@ -1368,17 +1368,17 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
     NS_WARNING("No default pref files found.");
     if (NS_SUCCEEDED(rv)) {
       rv = NS_SUCCESS_FILE_DIRECTORY_EMPTY;
     }
     return rv;
   }
 
   prefFiles.Sort(pref_CompareFileNames, nullptr);
-  
+
   uint32_t arrayCount = prefFiles.Count();
   uint32_t i;
   for (i = 0; i < arrayCount; ++i) {
     rv2 = openPrefFile(prefFiles[i]);
     if (NS_FAILED(rv2)) {
       NS_ERROR("Default pref file not parsed successfully.");
       rv = rv2;
     }
--- a/modules/libpref/nsPrefBranch.cpp
+++ b/modules/libpref/nsPrefBranch.cpp
@@ -372,34 +372,34 @@ NS_IMETHODIMP nsPrefBranch::GetComplexVa
   if (aType.Equals(NS_GET_IID(nsIRelativeFilePref))) {
     if (GetContentChild()) {
       NS_ERROR("cannot get nsIRelativeFilePref from content process");
       return NS_ERROR_NOT_AVAILABLE;
     }
 
     nsACString::const_iterator keyBegin, strEnd;
     utf8String.BeginReading(keyBegin);
-    utf8String.EndReading(strEnd);    
+    utf8String.EndReading(strEnd);
 
     // The pref has the format: [fromKey]a/b/c
-    if (*keyBegin++ != '[')        
+    if (*keyBegin++ != '[')
       return NS_ERROR_FAILURE;
     nsACString::const_iterator keyEnd(keyBegin);
     if (!FindCharInReadable(']', keyEnd, strEnd))
       return NS_ERROR_FAILURE;
     nsAutoCString key(Substring(keyBegin, keyEnd));
-    
+
     nsCOMPtr<nsIFile> fromFile;
     nsCOMPtr<nsIProperties> directoryService(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv));
     if (NS_FAILED(rv))
       return rv;
     rv = directoryService->Get(key.get(), NS_GET_IID(nsIFile), getter_AddRefs(fromFile));
     if (NS_FAILED(rv))
       return rv;
-    
+
     nsCOMPtr<nsIFile> theFile;
     rv = NS_NewNativeLocalFile(EmptyCString(), true, getter_AddRefs(theFile));
     if (NS_FAILED(rv))
       return rv;
     rv = theFile->SetRelativeDescriptor(fromFile, Substring(++keyEnd, strEnd));
     if (NS_FAILED(rv))
       return rv;
     nsCOMPtr<nsIRelativeFilePref> relativePref;
@@ -838,17 +838,17 @@ nsPrefBranch::RemoveExpiredCallback(Pref
   mObservers.Remove(aCallback);
 }
 
 nsresult nsPrefBranch::GetDefaultFromPropertiesFile(const char *aPrefName, char16_t **return_buf)
 {
   nsresult rv;
 
   // the default value contains a URL to a .properties file
-    
+
   nsXPIDLCString propertyFileURL;
   rv = PREF_CopyCharPref(aPrefName, getter_Copies(propertyFileURL), true);
   if (NS_FAILED(rv))
     return rv;
 
   nsCOMPtr<nsIStringBundleService> bundleService =
     mozilla::services::GetStringBundleService();
   if (!bundleService)
@@ -916,17 +916,17 @@ nsresult nsPrefLocalizedString::Init()
 NS_IMETHODIMP
 nsPrefLocalizedString::GetData(char16_t **_retval)
 {
   nsAutoString data;
 
   nsresult rv = GetData(data);
   if (NS_FAILED(rv))
     return rv;
-  
+
   *_retval = ToNewUnicode(data);
   if (!*_retval)
     return NS_ERROR_OUT_OF_MEMORY;
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
--- a/modules/libpref/nsPrefsFactory.cpp
+++ b/modules/libpref/nsPrefsFactory.cpp
@@ -13,17 +13,17 @@ using namespace mozilla;
 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(Preferences,
                                          Preferences::GetInstanceForService)
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrefLocalizedString, Init)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRelativeFilePref)
 
 static NS_DEFINE_CID(kPrefServiceCID, NS_PREFSERVICE_CID);
 static NS_DEFINE_CID(kPrefLocalizedStringCID, NS_PREFLOCALIZEDSTRING_CID);
 static NS_DEFINE_CID(kRelativeFilePrefCID, NS_RELATIVEFILEPREF_CID);
- 
+
 static mozilla::Module::CIDEntry kPrefCIDs[] = {
   { &kPrefServiceCID, true, nullptr, PreferencesConstructor },
   { &kPrefLocalizedStringCID, false, nullptr, nsPrefLocalizedStringConstructor },
   { &kRelativeFilePrefCID, false, nullptr, nsRelativeFilePrefConstructor },
   { nullptr }
 };
 
 static mozilla::Module::ContractIDEntry kPrefContracts[] = {
--- a/modules/libpref/prefread.cpp
+++ b/modules/libpref/prefread.cpp
@@ -45,30 +45,30 @@ enum {
 static const char kUserPref[] = "user_pref";
 static const char kPref[] = "pref";
 static const char kPrefSticky[] = "sticky_pref";
 static const char kTrue[] = "true";
 static const char kFalse[] = "false";
 
 /**
  * pref_GrowBuf
- * 
+ *
  * this function will increase the size of the buffer owned
  * by the given pref parse state.  We currently use a simple
  * doubling algorithm, but the only hard requirement is that
  * it increase the buffer by at least the size of the ps->esctmp
  * buffer used for escape processing (currently 6 bytes).
- * 
+ *
  * this buffer is used to store partial pref lines.  it is
  * freed when the parse state is destroyed.
  *
  * @param ps
  *        parse state instance
  *
- * this function updates all pointers that reference an 
+ * this function updates all pointers that reference an
  * address within lb since realloc may relocate the buffer.
  *
  * @return false if insufficient memory.
  */
 static bool
 pref_GrowBuf(PrefParseState *ps)
 {
     int bufLen, curPos, valPos;
@@ -599,17 +599,17 @@ PREF_ParseBuf(PrefParseState *ps, const 
     }
     ps->state = state;
     return true;
 }
 
 #ifdef TEST_PREFREAD
 
 static void
-pref_reader(void       *closure, 
+pref_reader(void       *closure,
             const char *pref,
             PrefValue   val,
             PrefType    type,
             bool        defPref)
 {
     printf("%spref(\"%s\", ", defPref ? "" : "user_", pref);
     switch (type) {
     case PREF_STRING:
--- a/modules/libpref/prefread.h
+++ b/modules/libpref/prefread.h
@@ -85,17 +85,17 @@ void PREF_InitParseState(PrefParseState 
 
 /**
  * PREF_FinalizeParseState
  *
  * Called to release any memory in use by the PrefParseState instance.
  *
  * @param ps
  *        PrefParseState instance.
- */        
+ */
 void PREF_FinalizeParseState(PrefParseState *ps);
 
 /**
  * PREF_ParseBuf
  *
  * Called to parse a buffer containing some portion of a preference file.  This
  * function may be called repeatedly as new data is made available.  The
  * PrefReader callback function passed PREF_InitParseState will be called as
--- a/mozglue/linker/ElfLoader.h
+++ b/mozglue/linker/ElfLoader.h
@@ -349,17 +349,17 @@ private:
    * at a later time.
    */
   void FinishInitialization();
 
   /**
    * SIGSEGV handler registered with __wrap_signal or __wrap_sigaction.
    */
   struct sigaction action;
-  
+
   /**
    * ElfLoader SIGSEGV handler.
    */
   static void handler(int signum, siginfo_t *info, void *context);
 
   /**
    * Temporary test handler.
    */
--- a/mozglue/linker/Mappable.h
+++ b/mozglue/linker/Mappable.h
@@ -122,17 +122,17 @@ private:
   /* Extracted file path */
   mozilla::UniquePtr<const char[]> path;
 };
 
 class _MappableBuffer;
 
 /**
  * Mappable implementation for deflated stream in a Zip archive.
- * Inflates the mapped bits in a temporary buffer. 
+ * Inflates the mapped bits in a temporary buffer.
  */
 class MappableDeflate: public Mappable
 {
 public:
   ~MappableDeflate();
 
   /**
    * Create a MappableDeflate instance for the given Zip stream. The name
--- a/mozglue/linker/Utils.h
+++ b/mozglue/linker/Utils.h
@@ -610,9 +610,9 @@ public:
     if (pthread_mutex_unlock(mutex))
       MOZ_CRASH("pthread_mutex_unlock failed");
   }
 private:
   pthread_mutex_t *mutex;
 };
 
 #endif /* Utils_h */
- 
+
--- a/netwerk/base/AutoClose.h
+++ b/netwerk/base/AutoClose.h
@@ -13,17 +13,17 @@ namespace mozilla { namespace net {
 
 // Like an nsAutoPtr for XPCOM streams (e.g. nsIAsyncInputStream) and other
 // refcounted classes that need to have the Close() method called explicitly
 // before they are destroyed.
 template <typename T>
 class AutoClose
 {
 public:
-  AutoClose() { } 
+  AutoClose() { }
   ~AutoClose(){
     Close();
   }
 
   explicit operator bool() const
   {
     return mPtr;
   }
--- a/netwerk/base/EventTokenBucket.cpp
+++ b/netwerk/base/EventTokenBucket.cpp
@@ -279,33 +279,33 @@ void
 EventTokenBucket::DispatchEvents()
 {
   MOZ_ASSERT(OnSocketThread(), "not on socket thread");
   SOCKET_LOG(("EventTokenBucket::DispatchEvents %p %d\n", this, mPaused));
   if (mPaused || mStopped)
     return;
 
   while (mEvents.GetSize() && mUnitCost <= mCredit) {
-    RefPtr<TokenBucketCancelable> cancelable = 
+    RefPtr<TokenBucketCancelable> cancelable =
       dont_AddRef(static_cast<TokenBucketCancelable *>(mEvents.PopFront()));
     if (cancelable->mEvent) {
       SOCKET_LOG(("EventTokenBucket::DispachEvents [%p] "
                   "Dispatching queue token bucket event cost=%" PRIu64 " credit=%" PRIu64 "\n",
                   this, mUnitCost, mCredit));
       mCredit -= mUnitCost;
       cancelable->Fire();
     }
   }
-  
+
 #ifdef XP_WIN
   if (!mEvents.GetSize())
     WantNormalTimers();
 #endif
 }
- 
+
 void
 EventTokenBucket::UpdateTimer()
 {
   MOZ_ASSERT(OnSocketThread(), "not on socket thread");
   if (mTimerArmed || mPaused || mStopped || !mEvents.GetSize() || !mTimer)
     return;
 
   if (mCredit >= mUnitCost)
@@ -417,17 +417,17 @@ EventTokenBucket::WantNormalTimers()
 
     TimeDuration elapsed(TimeStamp::Now() - mLastFineGrainTimerUse);
     static const TimeDuration fiveSeconds = TimeDuration::FromSeconds(5);
 
     if (elapsed >= fiveSeconds) {
       NormalTimers();
       return;
     }
-    
+
     if (!mFineGrainResetTimer)
       mFineGrainResetTimer = do_CreateInstance("@mozilla.org/timer;1");
 
     // if we can't delay the reset, just do it now
     if (!mFineGrainResetTimer) {
       NormalTimers();
       return;
     }
--- a/netwerk/base/EventTokenBucket.h
+++ b/netwerk/base/EventTokenBucket.h
@@ -20,17 +20,17 @@ namespace mozilla {
 namespace net {
 
 /* A token bucket is used to govern the maximum rate a series of events
    can be executed at. For instance if your event was "eat a piece of cake"
    then a token bucket configured to allow "1 piece per day" would spread
    the eating of a 8 piece cake over 8 days even if you tried to eat the
    whole thing up front. In a practical sense it 'costs' 1 token to execute
    an event and tokens are 'earned' at a particular rate as time goes by.
-   
+
    The token bucket can be perfectly smooth or allow a configurable amount of
    burstiness. A bursty token bucket allows you to save up unused credits, while
    a perfectly smooth one would not. A smooth "1 per day" cake token bucket
    would require 9 days to eat that cake if you skipped a slice on day 4
    (use the token or lose it), while a token bucket configured with a burst
    of 2 would just let you eat 2 slices on day 5 (the credits for day 4 and day
    5) and finish the cake in the usual 8 days.
 
@@ -40,17 +40,17 @@ namespace net {
     hz=20 means 1 event per 50 ms). Timers will be used to space things evenly down to
     5ms gaps (i.e. up to 200hz). Token buckets with rates greater than 200hz will admit
     multiple events with 5ms gaps between them. 10000hz is the maximum rate and 1hz is
     the minimum rate.
 
   + The burst size controls the limit of 'credits' that a token bucket can accumulate
     when idle. For our (20,5) example each event requires 50ms of credit (again, 20hz = 50ms
     per event). a burst size of 5 means that the token bucket can accumulate a
-    maximum of 250ms (5 * 50ms) for this bucket. If no events have been admitted for the 
+    maximum of 250ms (5 * 50ms) for this bucket. If no events have been admitted for the
     last full second the bucket can still only accumulate 250ms of credit - but that credit
     means that 5 events can be admitted without delay. A burst size of 1 is the minimum.
     The EventTokenBucket is created with maximum credits already applied, but they
     can be cleared with the ClearCredits() method. The maximum burst size is
     15 minutes worth of events.
 
   + An event is submitted to the token bucket asynchronously through SubmitEvent().
     The OnTokenBucketAdmitted() method of the submitted event is used as a callback
--- a/netwerk/base/nsASocketHandler.h
+++ b/netwerk/base/nsASocketHandler.h
@@ -42,17 +42,17 @@ public:
     // never reached.)
     //
     uint16_t mPollTimeout;
 
     bool mIsPrivate;
 
     //
     // called to service a socket
-    // 
+    //
     // params:
     //   socketRef - socket identifier
     //   fd        - socket file descriptor
     //   outFlags  - value of PR_PollDesc::out_flags after PR_Poll returns
     //               or -1 if a timeout occurred
     //
     virtual void OnSocketReady(PRFileDesc *fd, int16_t outFlags) = 0;
 
--- a/netwerk/base/nsAsyncRedirectVerifyHelper.cpp
+++ b/netwerk/base/nsAsyncRedirectVerifyHelper.cpp
@@ -211,17 +211,17 @@ nsAsyncRedirectVerifyHelper::ExplicitCal
     nsresult rv = mCallbackEventTarget->Dispatch(event, NS_DISPATCH_NORMAL);
     if (NS_FAILED(rv)) {
         NS_WARNING("nsAsyncRedirectVerifyHelper::ExplicitCallback() "
                    "failed dispatching callback event!");
     } else {
         LOG(("nsAsyncRedirectVerifyHelper::ExplicitCallback() "
              "dispatched callback event=%p", event.get()));
     }
-   
+
 }
 
 void
 nsAsyncRedirectVerifyHelper::InitCallback()
 {
     LOG(("nsAsyncRedirectVerifyHelper::InitCallback() "
          "expectedCBs=%d mResult=%" PRIx32, mExpectedCallbacks,
          static_cast<uint32_t>(mResult)));
--- a/netwerk/base/nsAsyncRedirectVerifyHelper.h
+++ b/netwerk/base/nsAsyncRedirectVerifyHelper.h
@@ -38,20 +38,20 @@ class nsAsyncRedirectVerifyHelper final 
 public:
     nsAsyncRedirectVerifyHelper();
 
     /*
      * Calls AsyncOnChannelRedirect() on the given sink with the given
      * channels and flags. Keeps track of number of async callbacks to expect.
      */
     nsresult DelegateOnChannelRedirect(nsIChannelEventSink *sink,
-                                       nsIChannel *oldChannel, 
+                                       nsIChannel *oldChannel,
                                        nsIChannel *newChannel,
                                        uint32_t flags);
- 
+
     /**
      * Initialize and run the chain of AsyncOnChannelRedirect calls. OldChannel
      * is QI'ed for nsIAsyncVerifyRedirectCallback. The result of the redirect
      * decision is passed through this interface back to the oldChannel.
      *
      * @param oldChan
      *    channel being redirected, MUST implement
      *    nsIAsyncVerifyRedirectCallback
@@ -77,25 +77,25 @@ protected:
     uint32_t mFlags;
     bool mWaitingForRedirectCallback;
     nsCOMPtr<nsIEventTarget> mCallbackEventTarget;
     bool                     mCallbackInitiated;
     int32_t                  mExpectedCallbacks;
     nsresult                 mResult; // value passed to callback
 
     void InitCallback();
-    
+
     /**
      * Calls back to |oldChan| as described in Init()
      */
     void ExplicitCallback(nsresult result);
 
 private:
     ~nsAsyncRedirectVerifyHelper();
-    
+
     bool IsOldChannelCanceled();
 };
 
 /*
  * Helper to make the call-stack handle some control-flow for us
  */
 class nsAsyncRedirectAutoCallback
 {
--- a/netwerk/base/nsBaseChannel.cpp
+++ b/netwerk/base/nsBaseChannel.cpp
@@ -539,17 +539,17 @@ nsBaseChannel::SetNotificationCallbacks(
   }
 
   mCallbacks = aCallbacks;
   CallbacksChanged();
   UpdatePrivateBrowsing();
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsBaseChannel::GetSecurityInfo(nsISupports **aSecurityInfo)
 {
   NS_IF_ADDREF(*aSecurityInfo = mSecurityInfo);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsBaseChannel::GetContentType(nsACString &aContentType)
@@ -793,17 +793,17 @@ nsBaseChannel::OnTransportStatus(nsITran
 
 //-----------------------------------------------------------------------------
 // nsBaseChannel::nsIInterfaceRequestor
 
 NS_IMETHODIMP
 nsBaseChannel::GetInterface(const nsIID &iid, void **result)
 {
   NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, iid, result);
-  return *result ? NS_OK : NS_ERROR_NO_INTERFACE; 
+  return *result ? NS_OK : NS_ERROR_NO_INTERFACE;
 }
 
 //-----------------------------------------------------------------------------
 // nsBaseChannel::nsIRequestObserver
 
 static void
 CallTypeSniffers(void *aClosure, const uint8_t *aData, uint32_t aCount)
 {
--- a/netwerk/base/nsBaseChannel.h
+++ b/netwerk/base/nsBaseChannel.h
@@ -57,17 +57,17 @@ public:
   NS_DECL_NSIREQUEST
   NS_DECL_NSICHANNEL
   NS_DECL_NSIINTERFACEREQUESTOR
   NS_DECL_NSITRANSPORTEVENTSINK
   NS_DECL_NSIASYNCVERIFYREDIRECTCALLBACK
   NS_DECL_NSITHREADRETARGETABLEREQUEST
   NS_DECL_NSITHREADRETARGETABLESTREAMLISTENER
 
-  nsBaseChannel(); 
+  nsBaseChannel();
 
   // This method must be called to initialize the basechannel instance.
   nsresult Init() {
     return NS_OK;
   }
 
 protected:
   // -----------------------------------------------
@@ -161,17 +161,17 @@ public:
   }
   nsIURI *OriginalURI() {
     return mOriginalURI;
   }
 
   // The security info is a property of the transport-layer, which should be
   // assigned by the subclass.
   nsISupports *SecurityInfo() {
-    return mSecurityInfo; 
+    return mSecurityInfo;
   }
   void SetSecurityInfo(nsISupports *info) {
     mSecurityInfo = info;
   }
 
   // Test the load flags
   bool HasLoadFlag(uint32_t flag) {
     return (mLoadFlags & flag) != 0;
--- a/netwerk/base/nsBaseContentStream.cpp
+++ b/netwerk/base/nsBaseContentStream.cpp
@@ -57,17 +57,17 @@ nsBaseContentStream::Available(uint64_t 
 {
   *result = 0;
   return mStatus;
 }
 
 NS_IMETHODIMP
 nsBaseContentStream::Read(char *buf, uint32_t count, uint32_t *result)
 {
-  return ReadSegments(NS_CopySegmentToBuffer, buf, count, result); 
+  return ReadSegments(NS_CopySegmentToBuffer, buf, count, result);
 }
 
 NS_IMETHODIMP
 nsBaseContentStream::ReadSegments(nsWriteSegmentFun fun, void *closure,
                                   uint32_t count, uint32_t *result)
 {
   *result = 0;
 
--- a/netwerk/base/nsBaseContentStream.h
+++ b/netwerk/base/nsBaseContentStream.h
@@ -10,17 +10,17 @@
 #include "nsIEventTarget.h"
 #include "nsCOMPtr.h"
 
 //-----------------------------------------------------------------------------
 // nsBaseContentStream is designed to be subclassed with the intention of being
 // used to satisfy the nsBaseChannel::OpenContentStream method.
 //
 // The subclass typically overrides the default Available, ReadSegments and
-// CloseWithStatus methods.  By default, Read is implemented in terms of 
+// CloseWithStatus methods.  By default, Read is implemented in terms of
 // ReadSegments, and Close is implemented in terms of CloseWithStatus.  If
 // CloseWithStatus is overriden, then the subclass will usually want to call
 // the base class' CloseWithStatus method before returning.
 //
 // If the stream is non-blocking, then readSegments may return the exception
 // NS_BASE_STREAM_WOULD_BLOCK if there is no data available and the stream is
 // not at the "end-of-file" or already closed.  This error code must not be
 // returned from the Available implementation.  When the caller receives this
@@ -30,17 +30,17 @@
 // callback if one exists (see DispatchCallback).  The implementation of the
 // base stream's CloseWithStatus (and Close) method will ensure that any
 // pending callback is dispatched.  It is the responsibility of the subclass
 // to ensure that the pending callback is dispatched when it wants to have its
 // ReadSegments method called again.
 
 class nsBaseContentStream : public nsIAsyncInputStream
 {
-public: 
+public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIINPUTSTREAM
   NS_DECL_NSIASYNCINPUTSTREAM
 
   explicit nsBaseContentStream(bool nonBlocking)
     : mStatus(NS_OK)
     , mNonBlocking(nonBlocking) {
   }
@@ -52,17 +52,17 @@ public:
   // Called to test if the stream has a pending callback.
   bool HasPendingCallback() { return mCallback != nullptr; }
 
   // The current dispatch target (may be null) for the pending callback if any.
   nsIEventTarget *CallbackTarget() { return mCallbackTarget; }
 
   // Called to dispatch a pending callback.  If there is no pending callback,
   // then this function does nothing.  Pass true to this function to cause the
-  // callback to occur asynchronously; otherwise, the callback will happen 
+  // callback to occur asynchronously; otherwise, the callback will happen
   // before this function returns.
   void DispatchCallback(bool async = true);
 
   // Helper function to make code more self-documenting.
   void DispatchCallbackSync() { DispatchCallback(false); }
 
 protected:
   virtual ~nsBaseContentStream() {}
--- a/netwerk/base/nsBufferedStreams.cpp
+++ b/netwerk/base/nsBufferedStreams.cpp
@@ -43,17 +43,17 @@ using mozilla::Nothing;
 using mozilla::Some;
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsBufferedStream
 
 nsBufferedStream::nsBufferedStream()
     : mBuffer(nullptr),
       mBufferStartOffset(0),
-      mCursor(0), 
+      mCursor(0),
       mFillPoint(0),
       mStream(nullptr),
       mBufferDisabled(false),
       mEOF(false),
       mGetBufferCount(0)
 {
 }
 
@@ -455,17 +455,17 @@ nsBufferedInputStream::Fill()
     rv = Source()->Read(mBuffer + mFillPoint, mBufferSize - mFillPoint, &amt);
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     if (amt == 0) {
         mEOF = true;
     }
-    
+
     mFillPoint += amt;
     return NS_OK;
 }
 
 NS_IMETHODIMP_(char*)
 nsBufferedInputStream::GetBuffer(uint32_t aLength, uint32_t aAlignMask)
 {
     NS_ASSERTION(mGetBufferCount == 0, "nested GetBuffer!");
@@ -891,17 +891,17 @@ nsBufferedOutputStream::Finish()
         return rv2;
     }
     return rv3;
 }
 
 static nsresult
 nsReadFromInputStream(nsIOutputStream* outStr,
                       void* closure,
-                      char* toRawSegment, 
+                      char* toRawSegment,
                       uint32_t offset,
                       uint32_t count,
                       uint32_t *readCount)
 {
     nsIInputStream* fromStream = (nsIInputStream*)closure;
     return fromStream->Read(toRawSegment, count, readCount);
 }
 
--- a/netwerk/base/nsBufferedStreams.h
+++ b/netwerk/base/nsBufferedStreams.h
@@ -76,17 +76,17 @@ public:
     NS_DECL_NSIASYNCINPUTSTREAM
     NS_DECL_NSIINPUTSTREAMCALLBACK
 
     nsBufferedInputStream() : nsBufferedStream() {}
 
     static nsresult
     Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);
 
-    nsIInputStream* Source() { 
+    nsIInputStream* Source() {
         return (nsIInputStream*)mStream;
     }
 
 protected:
     virtual ~nsBufferedInputStream() {}
 
     bool IsIPCSerializable() const;
     bool IsAsyncInputStream() const;
@@ -111,17 +111,17 @@ public:
     NS_DECL_NSIBUFFEREDOUTPUTSTREAM
     NS_DECL_NSISTREAMBUFFERACCESS
 
     nsBufferedOutputStream() : nsBufferedStream() {}
 
     static nsresult
     Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);
 
-    nsIOutputStream* Sink() { 
+    nsIOutputStream* Sink() {
         return (nsIOutputStream*)mStream;
     }
 
 protected:
     virtual ~nsBufferedOutputStream() { nsBufferedOutputStream::Close(); }
 
     NS_IMETHOD Fill() override { return NS_OK; } // no-op for output streams
 
--- a/netwerk/base/nsDNSPrefetch.cpp
+++ b/netwerk/base/nsDNSPrefetch.cpp
@@ -37,26 +37,26 @@ nsDNSPrefetch::nsDNSPrefetch(nsIURI *aUR
                              bool storeTiming)
     : mOriginAttributes(aOriginAttributes)
     , mStoreTiming(storeTiming)
     , mListener(do_GetWeakReference(aListener))
 {
     aURI->GetAsciiHost(mHostname);
 }
 
-nsresult 
+nsresult
 nsDNSPrefetch::Prefetch(uint16_t flags)
 {
     if (mHostname.IsEmpty())
         return NS_ERROR_NOT_AVAILABLE;
-  
+
     if (!sDNSService)
         return NS_ERROR_NOT_AVAILABLE;
-    
-    nsCOMPtr<nsICancelable> tmpOutstanding;  
+
+    nsCOMPtr<nsICancelable> tmpOutstanding;
 
     if (mStoreTiming)
         mStartTimestamp = mozilla::TimeStamp::Now();
     // If AsyncResolve fails, for example because prefetching is disabled,
     // then our timing will be useless. However, in such a case,
     // mEndTimestamp will be a null timestamp and callers should check
     // TimingsValid() before using the timing.
     nsCOMPtr<nsIEventTarget> main = mozilla::GetMainThreadEventTarget();
--- a/netwerk/base/nsDNSPrefetch.h
+++ b/netwerk/base/nsDNSPrefetch.h
@@ -19,38 +19,38 @@ class nsIDNSService;
 
 class nsDNSPrefetch final : public nsIDNSListener
 {
     ~nsDNSPrefetch() {}
 
 public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIDNSLISTENER
-  
+
     nsDNSPrefetch(nsIURI *aURI, mozilla::OriginAttributes& aOriginAttributes,
                   nsIDNSListener *aListener, bool storeTiming);
     bool TimingsValid() const {
         return !mStartTimestamp.IsNull() && !mEndTimestamp.IsNull();
     }
     // Only use the two timings if TimingsValid() returns true
     const mozilla::TimeStamp& StartTimestamp() const { return mStartTimestamp; }
     const mozilla::TimeStamp& EndTimestamp() const { return mEndTimestamp; }
 
     static nsresult Initialize(nsIDNSService *aDNSService);
     static nsresult Shutdown();
 
     // Call one of the following methods to start the Prefetch.
     nsresult PrefetchHigh(bool refreshDNS = false);
     nsresult PrefetchMedium(bool refreshDNS = false);
     nsresult PrefetchLow(bool refreshDNS = false);
-  
+
 private:
     nsCString mHostname;
     mozilla::OriginAttributes mOriginAttributes;
     bool mStoreTiming;
     mozilla::TimeStamp mStartTimestamp;
     mozilla::TimeStamp mEndTimestamp;
     nsWeakPtr mListener;
 
     nsresult Prefetch(uint16_t flags);
 };
 
-#endif 
+#endif
--- a/netwerk/base/nsDirectoryIndexStream.cpp
+++ b/netwerk/base/nsDirectoryIndexStream.cpp
@@ -300,24 +300,24 @@ nsDirectoryIndexStream::Read(char* aBuf,
             bool isFile = true;
             current->IsFile(&isFile);
             if (isFile) {
                 mBuf.AppendLiteral("FILE ");
             }
             else {
                 bool isDir;
                 rv = current->IsDirectory(&isDir);
-                if (NS_FAILED(rv)) return rv; 
+                if (NS_FAILED(rv)) return rv;
                 if (isDir) {
                     mBuf.AppendLiteral("DIRECTORY ");
                 }
                 else {
                     bool isLink;
                     rv = current->IsSymlink(&isLink);
-                    if (NS_FAILED(rv)) return rv; 
+                    if (NS_FAILED(rv)) return rv;
                     if (isLink) {
                         mBuf.AppendLiteral("SYMBOLIC-LINK ");
                     }
                 }
             }
 
             mBuf.Append('\n');
         }
--- a/netwerk/base/nsDirectoryIndexStream.h
+++ b/netwerk/base/nsDirectoryIndexStream.h
@@ -22,24 +22,24 @@ private:
     nsresult mStatus;
 
     int32_t             mPos;   // position within mArray
     nsCOMArray<nsIFile> mArray; // file objects within the directory
 
     nsDirectoryIndexStream();
     /**
      * aDir will only be used on the calling thread.
-     */ 
+     */
     nsresult Init(nsIFile* aDir);
     ~nsDirectoryIndexStream();
 
 public:
     /**
      * aDir will only be used on the calling thread.
-     */ 
+     */
     static nsresult
     Create(nsIFile* aDir, nsIInputStream** aStreamResult);
 
     // nsISupportsInterface
     NS_DECL_THREADSAFE_ISUPPORTS
 
     // nsIInputStream interface
     NS_DECL_NSIINPUTSTREAM
--- a/netwerk/base/nsDownloader.cpp
+++ b/netwerk/base/nsDownloader.cpp
@@ -35,17 +35,17 @@ NS_IMPL_ISUPPORTS(nsDownloader,
 NS_IMETHODIMP
 nsDownloader::Init(nsIDownloadObserver *observer, nsIFile *location)
 {
     mObserver = observer;
     mLocation = location;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDownloader::OnStartRequest(nsIRequest *request, nsISupports *ctxt)
 {
     nsresult rv;
     if (!mLocation) {
         nsCOMPtr<nsIFile> location;
         rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(location));
         if (NS_FAILED(rv)) return rv;
 
@@ -67,17 +67,17 @@ nsDownloader::OnStartRequest(nsIRequest 
 
     // we could wrap this output stream with a buffered output stream,
     // but it shouldn't be necessary since we will be writing large
     // chunks given to us via OnDataAvailable.
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDownloader::OnStopRequest(nsIRequest  *request,
                             nsISupports *ctxt,
                             nsresult     status)
 {
     if (mSink) {
         mSink->Close();
         mSink = nullptr;
     }
@@ -99,16 +99,16 @@ nsDownloader::ConsumeData(nsIInputStream
     nsDownloader *self = (nsDownloader *) closure;
     if (self->mSink)
         return self->mSink->Write(fromRawSegment, count, writeCount);
 
     *writeCount = count;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsDownloader::OnDataAvailable(nsIRequest *request, nsISupports *ctxt, 
-                              nsIInputStream *inStr, 
+NS_IMETHODIMP
+nsDownloader::OnDataAvailable(nsIRequest *request, nsISupports *ctxt,
+                              nsIInputStream *inStr,
                               uint64_t sourceOffset, uint32_t count)
 {
-    uint32_t n;  
+    uint32_t n;
     return inStr->ReadSegments(ConsumeData, this, count, &n);
 }
--- a/netwerk/base/nsFileStreams.h
+++ b/netwerk/base/nsFileStreams.h
@@ -274,17 +274,17 @@ class nsFileStream : public nsFileStream
                      public nsIFileStream
 {
 public:
     NS_DECL_ISUPPORTS_INHERITED
     NS_DECL_NSIFILESTREAM
     NS_FORWARD_NSIINPUTSTREAM(nsFileStreamBase::)
 
     // Can't use NS_FORWARD_NSIOUTPUTSTREAM due to overlapping methods
-    // Close() and IsNonBlocking() 
+    // Close() and IsNonBlocking()
     NS_IMETHOD Flush() override
     {
         return nsFileStreamBase::Flush();
     }
     NS_IMETHOD Write(const char* aBuf, uint32_t aCount, uint32_t* _retval) override
     {
         return nsFileStreamBase::Write(aBuf, aCount, _retval);
     }
--- a/netwerk/base/nsIOService.cpp
+++ b/netwerk/base/nsIOService.cpp
@@ -82,17 +82,17 @@ static bool gHasWarnedUploadChannel2;
 static bool gCaptivePortalEnabled = false;
 static LazyLogModule gIOServiceLog("nsIOService");
 #undef LOG
 #define LOG(args)     MOZ_LOG(gIOServiceLog, LogLevel::Debug, args)
 
 // A general port blacklist.  Connections to these ports will not be allowed
 // unless the protocol overrides.
 //
-// TODO: I am sure that there are more ports to be added.  
+// TODO: I am sure that there are more ports to be added.
 //       This cut is based on the classic mozilla codebase
 
 int16_t gBadPortList[] = {
   1,    // tcpmux
   7,    // echo
   9,    // discard
   11,   // systat
   13,   // daytime
@@ -133,17 +133,17 @@ int16_t gBadPortList[] = {
   512,  // print / exec
   513,  // login
   514,  // shell
   515,  // printer
   526,  // tempo
   530,  // courier
   531,  // Chat
   532,  // netnews
-  540,  // uucp   
+  540,  // uucp
   556,  // remotefs
   563,  // nntp+ssl
   587,  //
   601,  //
   636,  // ldap+ssl
   993,  // imap+ssl
   995,  // pop3+ssl
   2049, // nfs
@@ -229,17 +229,17 @@ nsIOService::Init()
         prefBranch->AddObserver(PORT_PREF_PREFIX, this, true);
         prefBranch->AddObserver(MANAGE_OFFLINE_STATUS_PREF, this, true);
         prefBranch->AddObserver(NECKO_BUFFER_CACHE_COUNT_PREF, this, true);
         prefBranch->AddObserver(NECKO_BUFFER_CACHE_SIZE_PREF, this, true);
         prefBranch->AddObserver(NETWORK_NOTIFY_CHANGED_PREF, this, true);
         prefBranch->AddObserver(NETWORK_CAPTIVE_PORTAL_PREF, this, true);
         PrefsChanged(prefBranch);
     }
-    
+
     // Register for profile change notifications
     nsCOMPtr<nsIObserverService> observerService = services::GetObserverService();
     if (observerService) {
         observerService->AddObserver(this, kProfileChangeNetTeardownTopic, true);
         observerService->AddObserver(this, kProfileChangeNetRestoreTopic, true);
         observerService->AddObserver(this, kProfileDoChange, true);
         observerService->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, true);
         observerService->AddObserver(this, NS_NETWORK_LINK_TOPIC, true);
@@ -308,18 +308,18 @@ nsresult
 nsIOService::InitializeNetworkLinkService()
 {
     nsresult rv = NS_OK;
 
     if (mNetworkLinkServiceInitialized)
         return rv;
 
     if (!NS_IsMainThread()) {
-        NS_WARNING("Network link service should be created on main thread"); 
-        return NS_ERROR_FAILURE; 
+        NS_WARNING("Network link service should be created on main thread");
+        return NS_ERROR_FAILURE;
     }
 
     // go into managed mode if we can, and chrome process
     if (XRE_IsParentProcess())
     {
         mNetworkLinkService = do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID, &rv);
     }
 
@@ -495,17 +495,17 @@ nsIOService::GetCachedProtocolHandler(co
                    && gScheme[i][len] == '\0')
                 : (!nsCRT::strcasecmp(scheme, gScheme[i])))
         {
             return CallQueryReferent(mWeakHandler[i].get(), result);
         }
     }
     return NS_ERROR_FAILURE;
 }
- 
+
 static bool
 UsesExternalProtocolHandler(const char* aScheme)
 {
     if (NS_LITERAL_CSTRING("file").Equals(aScheme) ||
         NS_LITERAL_CSTRING("chrome").Equals(aScheme) ||
         NS_LITERAL_CSTRING("resource").Equals(aScheme)) {
         // Don't allow file:, chrome: or resource: URIs to be handled with
         // nsExternalProtocolHandler, since internally we rely on being able to
@@ -520,17 +520,17 @@ UsesExternalProtocolHandler(const char* 
 }
 
 NS_IMETHODIMP
 nsIOService::GetProtocolHandler(const char* scheme, nsIProtocolHandler* *result)
 {
     nsresult rv;
 
     NS_ENSURE_ARG_POINTER(scheme);
-    // XXX we may want to speed this up by introducing our own protocol 
+    // XXX we may want to speed this up by introducing our own protocol
     // scheme -> protocol handler mapping, avoiding the string manipulation
     // and service manager stuff
 
     rv = GetCachedProtocolHandler(scheme, result);
     if (NS_SUCCEEDED(rv))
         return rv;
 
     if (!UsesExternalProtocolHandler(scheme)) {
@@ -611,17 +611,17 @@ nsIOService::HostnameIsLocalIPAddress(ns
     if (IsIPAddrLocal(&netAddr)) {
       *aResult = true;
     }
   }
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsIOService::GetProtocolFlags(const char* scheme, uint32_t *flags)
 {
     nsCOMPtr<nsIProtocolHandler> handler;
     nsresult rv = GetProtocolHandler(scheme, getter_AddRefs(handler));
     if (NS_FAILED(rv)) return rv;
 
     // We can't call DoGetProtocolFlags here because we don't have a URI. This
     // API is used by (and only used by) extensions, which is why it's still
@@ -680,30 +680,30 @@ nsIOService::NewURI(const nsACString &aS
     nsCOMPtr<nsIProtocolHandler> handler;
     rv = GetProtocolHandler(scheme.get(), getter_AddRefs(handler));
     if (NS_FAILED(rv)) return rv;
 
     return handler->NewURI(aSpec, aCharset, aBaseURI, result);
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsIOService::NewFileURI(nsIFile *file, nsIURI **result)
 {
     nsresult rv;
     NS_ENSURE_ARG_POINTER(file);
 
     nsCOMPtr<nsIProtocolHandler> handler;
 
     rv = GetProtocolHandler("file", getter_AddRefs(handler));
     if (NS_FAILED(rv)) return rv;
 
     nsCOMPtr<nsIFileProtocolHandler> fileHandler( do_QueryInterface(handler, &rv) );
     if (NS_FAILED(rv)) return rv;
-    
+
     return fileHandler->NewFileURI(file, result);
 }
 
 NS_IMETHODIMP
 nsIOService::NewChannelFromURI2(nsIURI* aURI,
                                 nsIDOMNode* aLoadingNode,
                                 nsIPrincipal* aLoadingPrincipal,
                                 nsIPrincipal* aTriggeringPrincipal,
@@ -1083,17 +1083,17 @@ nsIOService::SetOffline(bool offline)
 
     nsCOMPtr<nsIObserverService> observerService = services::GetObserverService();
 
     NS_ASSERTION(observerService, "The observer service should not be null");
 
     if (XRE_IsParentProcess()) {
         if (observerService) {
             (void)observerService->NotifyObservers(nullptr,
-                NS_IPC_IOSERVICE_SET_OFFLINE_TOPIC, offline ? 
+                NS_IPC_IOSERVICE_SET_OFFLINE_TOPIC, offline ?
                 u"true" :
                 u"false");
         }
     }
 
     nsIIOService *subject = static_cast<nsIIOService *>(this);
     while (mSetOfflineValue != mOffline) {
         offline = mSetOfflineValue;
@@ -1247,29 +1247,29 @@ nsIOService::AllowPort(int32_t inPort, c
         *_retval = true;
         return NS_OK;
     }
 
     if (port == 0) {
         *_retval = false;
         return NS_OK;
     }
-        
+
     // first check to see if the port is in our blacklist:
     int32_t badPortListCnt = mRestrictedPortList.Length();
     for (int i=0; i<badPortListCnt; i++)
     {
         if (port == mRestrictedPortList[i])
         {
             *_retval = false;
 
             // check to see if the protocol wants to override
             if (!scheme)
                 return NS_OK;
-            
+
             nsCOMPtr<nsIProtocolHandler> handler;
             nsresult rv = GetProtocolHandler(scheme, getter_AddRefs(handler));
             if (NS_FAILED(rv)) return rv;
 
             // let the protocol handler decide
             return handler->AllowPort(port, scheme, _retval);
         }
     }
@@ -1306,17 +1306,17 @@ nsIOService::PrefsChanged(nsIPrefBranch 
     if (!pref || strcmp(pref, NECKO_BUFFER_CACHE_COUNT_PREF) == 0) {
         int32_t count;
         if (NS_SUCCEEDED(prefs->GetIntPref(NECKO_BUFFER_CACHE_COUNT_PREF,
                                            &count)))
             /* check for bogus values and default if we find such a value */
             if (count > 0)
                 gDefaultSegmentCount = count;
     }
-    
+
     if (!pref || strcmp(pref, NECKO_BUFFER_CACHE_SIZE_PREF) == 0) {
         int32_t size;
         if (NS_SUCCEEDED(prefs->GetIntPref(NECKO_BUFFER_CACHE_SIZE_PREF,
                                            &size)))
             /* check for bogus values and default if we find such a value
              * the upper limit here is arbitrary. having a 1mb segment size
              * is pretty crazy.  if you remove this, consider adding some
              * integer rollover test.
@@ -1458,17 +1458,17 @@ nsIOService::Observe(nsISupports *subjec
             mOfflineForProfileChange = true;
             SetOffline(true);
         }
     } else if (!strcmp(topic, kProfileChangeNetRestoreTopic)) {
         if (mOfflineForProfileChange) {
             mOfflineForProfileChange = false;
             SetOffline(false);
         }
-    } else if (!strcmp(topic, kProfileDoChange)) { 
+    } else if (!strcmp(topic, kProfileDoChange)) {
         if (data && NS_LITERAL_STRING("startup").Equals(data)) {
             // Lazy initialization of network link service (see bug 620472)
             InitializeNetworkLinkService();
             // Set up the initilization flag regardless the actuall result.
             // If we fail here, we will fail always on.
             mNetworkLinkServiceInitialized = true;
 
             // And now reflect the preference setting
@@ -1693,32 +1693,32 @@ nsIOService::EscapeString(const nsACStri
   if (!NS_Escape(stringCopy, result, (nsEscapeMask) aEscapeType))
     return NS_ERROR_OUT_OF_MEMORY;
 
   aResult.Assign(result);
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsIOService::EscapeURL(const nsACString &aStr, 
+NS_IMETHODIMP
+nsIOService::EscapeURL(const nsACString &aStr,
                        uint32_t aFlags, nsACString &aResult)
 {
   aResult.Truncate();
-  NS_EscapeURL(aStr.BeginReading(), aStr.Length(), 
+  NS_EscapeURL(aStr.BeginReading(), aStr.Length(),
                aFlags | esc_AlwaysCopy, aResult);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsIOService::UnescapeString(const nsACString &aStr, 
+NS_IMETHODIMP
+nsIOService::UnescapeString(const nsACString &aStr,
                             uint32_t aFlags, nsACString &aResult)
 {
   aResult.Truncate();
-  NS_UnescapeURL(aStr.BeginReading(), aStr.Length(), 
+  NS_UnescapeURL(aStr.BeginReading(), aStr.Length(),
                  aFlags | esc_AlwaysCopy, aResult);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsIOService::ExtractCharsetFromContentType(const nsACString &aTypeHeader,
                                            nsACString &aCharset,
                                            int32_t *aCharsetStart,
--- a/netwerk/base/nsIncrementalDownload.cpp
+++ b/netwerk/base/nsIncrementalDownload.cpp
@@ -157,17 +157,17 @@ nsIncrementalDownload::nsIncrementalDown
   , mLoadFlags(LOAD_NORMAL)
   , mNonPartialCount(0)
   , mStatus(NS_OK)
   , mIsPending(false)
   , mDidOnStartRequest(false)
   , mLastProgressUpdate(0)
   , mRedirectCallback(nullptr)
   , mNewRedirectChannel(nullptr)
-  , mCacheBust(false)  
+  , mCacheBust(false)
 {
 }
 
 nsresult
 nsIncrementalDownload::FlushChunk()
 {
   NS_ASSERTION(mTotalSize != int64_t(-1), "total size should be known");
 
@@ -241,17 +241,17 @@ nsIncrementalDownload::ProcessTimeout()
 
   // Handle existing error conditions
   if (NS_FAILED(mStatus)) {
     CallOnStopRequest();
     return NS_OK;
   }
 
   // Fetch next chunk
-  
+
   nsCOMPtr<nsIChannel> channel;
   nsresult rv = NS_NewChannel(getter_AddRefs(channel),
                               mFinalURI,
                               nsContentUtils::GetSystemPrincipal(),
                               nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
                               nsIContentPolicy::TYPE_OTHER,
                               nullptr,   // loadGroup
                               this,      // aCallbacks
@@ -327,17 +327,17 @@ nsIncrementalDownload::ReadCurrentSize()
   if (rv == NS_ERROR_FILE_NOT_FOUND ||
       rv == NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) {
     mCurrentSize = 0;
     return NS_OK;
   }
   if (NS_FAILED(rv))
     return rv;
 
-  mCurrentSize = size; 
+  mCurrentSize = size;
   return NS_OK;
 }
 
 // nsISupports
 
 NS_IMPL_ISUPPORTS(nsIncrementalDownload,
                   nsIIncrementalDownload,
                   nsIRequest,
@@ -825,38 +825,38 @@ nsIncrementalDownload::GetInterface(cons
 
   nsCOMPtr<nsIInterfaceRequestor> ir = do_QueryInterface(mObserver);
   if (ir)
     return ir->GetInterface(iid, result);
 
   return NS_ERROR_NO_INTERFACE;
 }
 
-nsresult 
+nsresult
 nsIncrementalDownload::ClearRequestHeader(nsIHttpChannel *channel)
 {
   NS_ENSURE_ARG(channel);
-  
+
   // We don't support encodings -- they make the Content-Length not equal
-  // to the actual size of the data. 
+  // to the actual size of the data.
   return channel->SetRequestHeader(NS_LITERAL_CSTRING("Accept-Encoding"),
                                    NS_LITERAL_CSTRING(""), false);
 }
 
 // nsIChannelEventSink
 
 NS_IMETHODIMP
 nsIncrementalDownload::AsyncOnChannelRedirect(nsIChannel *oldChannel,
                                               nsIChannel *newChannel,
                                               uint32_t flags,
                                               nsIAsyncVerifyRedirectCallback *cb)
 {
   // In response to a redirect, we need to propagate the Range header.  See bug
   // 311595.  Any failure code returned from this function aborts the redirect.
- 
+
   nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(oldChannel);
   NS_ENSURE_STATE(http);
 
   nsCOMPtr<nsIHttpChannel> newHttpChannel = do_QueryInterface(newChannel);
   NS_ENSURE_STATE(newHttpChannel);
 
   NS_NAMED_LITERAL_CSTRING(rangeHdr, "Range");
 
@@ -928,14 +928,14 @@ extern nsresult
 net_NewIncrementalDownload(nsISupports *outer, const nsIID &iid, void **result)
 {
   if (outer)
     return NS_ERROR_NO_AGGREGATION;
 
   nsIncrementalDownload *d = new nsIncrementalDownload();
   if (!d)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   NS_ADDREF(d);
   nsresult rv = d->QueryInterface(iid, result);
   NS_RELEASE(d);
   return rv;
 }
--- a/netwerk/base/nsInputStreamChannel.cpp
+++ b/netwerk/base/nsInputStreamChannel.cpp
@@ -28,17 +28,17 @@ nsInputStreamChannel::OpenContentStream(
       avail = 0;
     } else if (NS_FAILED(rv)) {
       return rv;
     }
     mContentLength = avail;
   }
 
   EnableSynthesizedProgressEvents(true);
-  
+
   NS_ADDREF(*result = mContentStream);
   return NS_OK;
 }
 
 //-----------------------------------------------------------------------------
 // nsInputStreamChannel::nsISupports
 
 NS_IMPL_ISUPPORTS_INHERITED(nsInputStreamChannel,
--- a/netwerk/base/nsInputStreamPump.cpp
+++ b/netwerk/base/nsInputStreamPump.cpp
@@ -338,17 +338,17 @@ nsInputStreamPump::AsyncRead(nsIStreamLi
 
     if (nonBlocking) {
         mAsyncStream = do_QueryInterface(mStream);
         //
         // if the stream supports nsIAsyncInputStream, and if we need to seek
         // to a starting offset, then we must do so here.  in the non-async
         // stream case, the stream transport service will take care of seeking
         // for us.
-        // 
+        //
         if (mAsyncStream && (mStreamOffset != UINT64_MAX)) {
             nsCOMPtr<nsISeekableStream> seekable = do_QueryInterface(mStream);
             if (seekable)
                 seekable->Seek(nsISeekableStream::NS_SEEK_SET, mStreamOffset);
         }
     }
 
     if (!mAsyncStream) {
@@ -409,17 +409,17 @@ nsInputStreamPump::OnInputStreamReady(ns
     LOG(("nsInputStreamPump::OnInputStreamReady [this=%p]\n", this));
 
     AUTO_PROFILER_LABEL("nsInputStreamPump::OnInputStreamReady", NETWORK);
 
     // this function has been called from a PLEvent, so we can safely call
     // any listener or progress sink methods directly from here.
 
     for (;;) {
-        // There should only be one iteration of this loop happening at a time. 
+        // There should only be one iteration of this loop happening at a time.
         // To prevent AsyncWait() (called during callbacks or on other threads)
         // from creating a parallel OnInputStreamReady(), we use:
         // -- a monitor; and
         // -- a boolean mProcessingCallbacks to detect parallel loops
         //    when exiting the monitor for callbacks.
         ReentrantMonitorAutoEnter lock(mMonitor);
 
         // Prevent parallel execution during callbacks, while out of monitor.
@@ -462,17 +462,17 @@ nsInputStreamPump::OnInputStreamReady(ns
                          "Only OnStateTransfer can be called more than once.");
         }
         if (mRetargeting) {
             NS_ASSERTION(mState != STATE_STOP,
                          "Retargeting should not happen during OnStateStop.");
         }
 
         // Set mRetargeting so EnsureWaiting will be called. It ensures that
-        // OnStateStop is called on the main thread. 
+        // OnStateStop is called on the main thread.
         if (nextState == STATE_STOP && !NS_IsMainThread()) {
             mRetargeting = true;
         }
 
         // Unset mProcessingCallbacks here (while we have lock) so our own call to
         // EnsureWaiting isn't blocked by it.
         mProcessingCallbacks = false;
 
@@ -489,17 +489,17 @@ nsInputStreamPump::OnInputStreamReady(ns
         // Wait asynchronously if there is still data to transfer, or we're
         // switching event delivery to another thread.
         if (!mSuspendCount && (stillTransferring || mRetargeting)) {
             mState = nextState;
             mWaitingForInputStreamReady = false;
             nsresult rv = EnsureWaiting();
             if (NS_SUCCEEDED(rv))
                 break;
-            
+
             // Failure to start asynchronous wait: stop transfer.
             // Do not set mStatus if it was previously set to report a failure.
             if (NS_SUCCEEDED(mStatus)) {
                 mStatus = rv;
             }
             nextState = STATE_STOP;
         }
 
--- a/netwerk/base/nsInputStreamPump.h
+++ b/netwerk/base/nsInputStreamPump.h
@@ -26,17 +26,17 @@ class nsInputStreamPump final : public n
 public:
     typedef mozilla::ReentrantMonitorAutoEnter ReentrantMonitorAutoEnter;
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIREQUEST
     NS_DECL_NSIINPUTSTREAMPUMP
     NS_DECL_NSIINPUTSTREAMCALLBACK
     NS_DECL_NSITHREADRETARGETABLEREQUEST
 
-    nsInputStreamPump(); 
+    nsInputStreamPump();
 
     static nsresult
                       Create(nsInputStreamPump  **result,
                              nsIInputStream      *stream,
                              int64_t              streamPos = -1,
                              int64_t              streamLen = -1,
                              uint32_t             segsize = 0,
                              uint32_t             segcount = 0,
--- a/netwerk/base/nsLoadGroup.cpp
+++ b/netwerk/base/nsLoadGroup.cpp
@@ -221,17 +221,17 @@ nsLoadGroup::Cancel(nsresult status)
     uint32_t count = mRequests.EntryCount();
 
     AutoTArray<nsIRequest*, 8> requests;
 
     if (!AppendRequestsToArray(&mRequests, &requests)) {
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
-    // set the load group status to our cancel status while we cancel 
+    // set the load group status to our cancel status while we cancel
     // all our requests...once the cancel is done, we'll reset it...
     //
     mStatus = status;
 
     // Set the flag indicating that the loadgroup is being canceled...  This
     // prevents any new channels from being added during the operation.
     //
     mIsCanceling = true;
--- a/netwerk/base/nsMediaFragmentURIParser.cpp
+++ b/netwerk/base/nsMediaFragmentURIParser.cpp
@@ -100,17 +100,17 @@ static bool IsDigit(nsDependentSubstring
 // a numerical digit, starting from 'aStart'.
 static uint32_t FirstNonDigit(nsDependentSubstring& aString, uint32_t aStart)
 {
    while (aStart < aString.Length() && IsDigit(aString[aStart])) {
     ++aStart;
   }
   return aStart;
 }
- 
+
 bool nsMediaFragmentURIParser::ParseNPTSec(nsDependentSubstring& aString, double& aSec)
 {
   nsDependentSubstring original(aString);
   if (aString.Length() == 0) {
     return false;
   }
 
   uint32_t index = FirstNonDigit(aString, 0);
--- a/netwerk/base/nsNetAddr.cpp
+++ b/netwerk/base/nsNetAddr.cpp
@@ -1,9 +1,9 @@
-/* vim: et ts=2 sw=2 tw=80 
+/* vim: et ts=2 sw=2 tw=80
  */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsNetAddr.h"
 #include "nsString.h"
 #include "mozilla/net/DNS.h"
@@ -58,17 +58,17 @@ NS_IMETHODIMP nsNetAddr::GetAddress(nsAC
   case AF_LOCAL:
     aAddress.Assign(mAddr.local.path);
     break;
 #endif
   // PR_AF_LOCAL falls through to default when not XP_UNIX
   default:
     return NS_ERROR_UNEXPECTED;
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsNetAddr::GetPort(uint16_t *aPort)
 {
   switch(mAddr.raw.family) {
   case AF_INET:
     *aPort = ntohs(mAddr.inet.port);
--- a/netwerk/base/nsNetAddr.h
+++ b/netwerk/base/nsNetAddr.h
@@ -1,9 +1,9 @@
-/* vim: et ts=2 sw=2 tw=80 
+/* vim: et ts=2 sw=2 tw=80
  */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsNetAddr_h__
 #define nsNetAddr_h__
 
--- a/netwerk/base/nsPreloadedStream.cpp
+++ b/netwerk/base/nsPreloadedStream.cpp
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsPreloadedStream.h"
 #include "nsIRunnable.h"
 
 #include "nsThreadUtils.h"
 #include <algorithm>
-   
+
 namespace mozilla {
 namespace net {
 
 NS_IMPL_ISUPPORTS(nsPreloadedStream,
                   nsIInputStream,
                   nsIAsyncInputStream)
 
 nsPreloadedStream::nsPreloadedStream(nsIAsyncInputStream *aStream,
@@ -38,31 +38,31 @@ nsPreloadedStream::Close()
     return mStream->Close();
 }
 
 
 NS_IMETHODIMP
 nsPreloadedStream::Available(uint64_t *_retval)
 {
     uint64_t avail = 0;
-    
+
     nsresult rv = mStream->Available(&avail);
     if (NS_FAILED(rv))
         return rv;
     *_retval = avail + mLen;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsPreloadedStream::Read(char *aBuf, uint32_t aCount,
                         uint32_t *_retval)
 {
     if (!mLen)
         return mStream->Read(aBuf, aCount, _retval);
-    
+
     uint32_t toRead = std::min(mLen, aCount);
     memcpy(aBuf, mBuf + mOffset, toRead);
     mOffset += toRead;
     mLen -= toRead;
     *_retval = toRead;
     return NS_OK;
 }
 
--- a/netwerk/base/nsPreloadedStream.h
+++ b/netwerk/base/nsPreloadedStream.h
@@ -29,24 +29,24 @@ namespace net {
 
 class nsPreloadedStream final : public nsIAsyncInputStream
 {
  public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIINPUTSTREAM
     NS_DECL_NSIASYNCINPUTSTREAM
 
-    nsPreloadedStream(nsIAsyncInputStream *aStream, 
+    nsPreloadedStream(nsIAsyncInputStream *aStream,
                       const char *data, uint32_t datalen);
 private:
     ~nsPreloadedStream();
 
     nsCOMPtr<nsIAsyncInputStream> mStream;
 
     char *mBuf;
     uint32_t mOffset;
     uint32_t mLen;
 };
-        
+
 } // namespace net
 } // namespace mozilla
 
 #endif
--- a/netwerk/base/nsProtocolProxyService.h
+++ b/netwerk/base/nsProtocolProxyService.h
@@ -1,13 +1,13 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #ifndef nsProtocolProxyService_h__
 #define nsProtocolProxyService_h__
 
 #include "nsString.h"
 #include "nsCOMPtr.h"
 #include "nsAutoPtr.h"
 #include "nsTArray.h"
 #include "nsIProtocolProxyService2.h"
@@ -70,48 +70,48 @@ protected:
      *        be null, in which case all preferences will be initialized.
      */
     void PrefsChanged(nsIPrefBranch *prefs, const char *name);
 
     /**
      * This method is called to create a nsProxyInfo instance from the given
      * PAC-style proxy string.  It parses up to the end of the string, or to
      * the next ';' character.
-     * 
+     *
      * @param proxy
      *        The PAC-style proxy string to parse.  This must not be null.
      * @param aResolveFlags
-     *        The flags passed to Resolve or AsyncResolve that are stored in 
+     *        The flags passed to Resolve or AsyncResolve that are stored in
      *        proxyInfo.
      * @param result
      *        Upon return this points to a newly allocated nsProxyInfo or null
      *        if the proxy string was invalid.
      *
      * @return A pointer beyond the parsed proxy string (never null).
      */
     const char * ExtractProxyInfo(const char *proxy,
                                               uint32_t aResolveFlags,
                                               nsProxyInfo **result);
 
     /**
      * Load the specified PAC file.
-     * 
+     *
      * @param pacURI
      *        The URI spec of the PAC file to load.
      */
     nsresult ConfigureFromPAC(const nsCString &pacURI, bool forceReload);
 
     /**
      * This method builds a list of nsProxyInfo objects from the given PAC-
      * style string.
      *
      * @param pacString
      *        The PAC-style proxy string to parse.  This may be empty.
      * @param aResolveFlags
-     *        The flags passed to Resolve or AsyncResolve that are stored in 
+     *        The flags passed to Resolve or AsyncResolve that are stored in
      *        proxyInfo.
      * @param result
      *        The resulting list of proxy info objects.
      */
     void ProcessPACString(const nsCString &pacString,
                                       uint32_t aResolveFlags,
                                       nsIProxyInfo **result);
 
--- a/netwerk/base/nsProxyInfo.cpp
+++ b/netwerk/base/nsProxyInfo.cpp
@@ -6,17 +6,17 @@
 
 #include "nsProxyInfo.h"
 #include "nsCOMPtr.h"
 
 namespace mozilla {
 namespace net {
 
 // Yes, we support QI to nsProxyInfo
-NS_IMPL_ISUPPORTS(nsProxyInfo, nsProxyInfo, nsIProxyInfo) 
+NS_IMPL_ISUPPORTS(nsProxyInfo, nsProxyInfo, nsIProxyInfo)
 
 NS_IMETHODIMP
 nsProxyInfo::GetHost(nsACString &result)
 {
   result = mHost;
   return NS_OK;
 }
 
--- a/netwerk/base/nsRequestObserverProxy.cpp
+++ b/netwerk/base/nsRequestObserverProxy.cpp
@@ -119,50 +119,50 @@ public:
 NS_IMPL_ISUPPORTS(nsRequestObserverProxy,
                   nsIRequestObserver,
                   nsIRequestObserverProxy)
 
 //-----------------------------------------------------------------------------
 // nsRequestObserverProxy::nsIRequestObserver implementation...
 //-----------------------------------------------------------------------------
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsRequestObserverProxy::OnStartRequest(nsIRequest *request,
                                        nsISupports *context)
 {
     MOZ_ASSERT(!context || context == mContext);
     LOG(("nsRequestObserverProxy::OnStartRequest [this=%p req=%p]\n", this, request));
 
-    nsOnStartRequestEvent *ev = 
+    nsOnStartRequestEvent *ev =
         new nsOnStartRequestEvent(this, request);
     if (!ev)
         return NS_ERROR_OUT_OF_MEMORY;
 
     LOG(("post startevent=%p\n", ev));
     nsresult rv = FireEvent(ev);
     if (NS_FAILED(rv))
         delete ev;
     return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsRequestObserverProxy::OnStopRequest(nsIRequest *request,
                                       nsISupports *context,
                                       nsresult status)
 {
     MOZ_ASSERT(!context || context == mContext);
     LOG(("nsRequestObserverProxy: OnStopRequest [this=%p req=%p status=%" PRIx32 "]\n",
          this, request, static_cast<uint32_t>(status)));
 
     // The status argument is ignored because, by the time the OnStopRequestEvent
-    // is actually processed, the status of the request may have changed :-( 
+    // is actually processed, the status of the request may have changed :-(
     // To make sure that an accurate status code is always used, GetStatus() is
     // called when the OnStopRequestEvent is actually processed (see above).
 
-    nsOnStopRequestEvent *ev = 
+    nsOnStopRequestEvent *ev =
         new nsOnStopRequestEvent(this, request);
     if (!ev)
         return NS_ERROR_OUT_OF_MEMORY;
 
     LOG(("post stopevent=%p\n", ev));
     nsresult rv = FireEvent(ev);
     if (NS_FAILED(rv))
         delete ev;
--- a/netwerk/base/nsServerSocket.cpp
+++ b/netwerk/base/nsServerSocket.cpp
@@ -86,17 +86,17 @@ void
 nsServerSocket::OnMsgAttach()
 {
   SOCKET_LOG(("nsServerSocket::OnMsgAttach [this=%p]\n", this));
 
   if (NS_FAILED(mCondition))
     return;
 
   mCondition = TryAttach();
-  
+
   // if we hit an error while trying to attach then bail...
   if (NS_FAILED(mCondition))
   {
     NS_ASSERTION(!mAttached, "should not be attached already");
     OnSocketDetached(mFD);
   }
 }
 
@@ -438,17 +438,17 @@ public:
       const nsMainThreadPtrHandle<nsIServerSocketListener>& aListener,
       nsIServerSocket* aServ,
       nsISocketTransport* aTransport)
       : Runnable("net::ServerSocketListenerProxy::OnSocketAcceptedRunnable")
       , mListener(aListener)
       , mServ(aServ)
       , mTransport(aTransport)
     { }
-    
+
     NS_DECL_NSIRUNNABLE
 
   private:
     nsMainThreadPtrHandle<nsIServerSocketListener> mListener;
     nsCOMPtr<nsIServerSocket> mServ;
     nsCOMPtr<nsISocketTransport> mTransport;
   };
 
--- a/netwerk/base/nsSimpleNestedURI.cpp
+++ b/netwerk/base/nsSimpleNestedURI.cpp
@@ -19,17 +19,17 @@ namespace net {
 NS_IMPL_ISUPPORTS_INHERITED(nsSimpleNestedURI, nsSimpleURI, nsINestedURI)
 
 nsSimpleNestedURI::nsSimpleNestedURI(nsIURI* innerURI)
     : mInnerURI(innerURI)
 {
     NS_ASSERTION(innerURI, "Must have inner URI");
     NS_TryToSetImmutable(innerURI);
 }
-    
+
 // nsISerializable
 
 NS_IMETHODIMP
 nsSimpleNestedURI::Read(nsIObjectInputStream* aStream)
 {
     nsresult rv = nsSimpleURI::Read(aStream);
     if (NS_FAILED(rv)) return rv;
 
@@ -102,17 +102,17 @@ nsSimpleNestedURI::Deserialize(const moz
 }
 
 // nsINestedURI
 
 NS_IMETHODIMP
 nsSimpleNestedURI::GetInnerURI(nsIURI** uri)
 {
     NS_ENSURE_TRUE(mInnerURI, NS_ERROR_NOT_INITIALIZED);
-    
+
     return NS_EnsureSafeToReturn(mInnerURI, uri);
 }
 
 NS_IMETHODIMP
 nsSimpleNestedURI::GetInnermostURI(nsIURI** uri)
 {
     return NS_ImplGetInnermostURI(this, uri);
 }
@@ -120,17 +120,17 @@ nsSimpleNestedURI::GetInnermostURI(nsIUR
 // nsSimpleURI overrides
 /* virtual */ nsresult
 nsSimpleNestedURI::EqualsInternal(nsIURI* other,
                                   nsSimpleURI::RefHandlingEnum refHandlingMode,
                                   bool* result)
 {
     *result = false;
     NS_ENSURE_TRUE(mInnerURI, NS_ERROR_NOT_INITIALIZED);
-    
+
     if (other) {
         bool correctScheme;
         nsresult rv = other->SchemeIs(mScheme.get(), &correctScheme);
         NS_ENSURE_SUCCESS(rv, rv);
 
         if (correctScheme) {
             nsCOMPtr<nsINestedURI> nest = do_QueryInterface(other);
             if (nest) {
@@ -148,17 +148,17 @@ nsSimpleNestedURI::EqualsInternal(nsIURI
     return NS_OK;
 }
 
 /* virtual */ nsSimpleURI*
 nsSimpleNestedURI::StartClone(nsSimpleURI::RefHandlingEnum refHandlingMode,
                               const nsACString& newRef)
 {
     NS_ENSURE_TRUE(mInnerURI, nullptr);
-    
+
     nsCOMPtr<nsIURI> innerClone;
     nsresult rv;
     if (refHandlingMode == eHonorRef) {
         rv = mInnerURI->Clone(getter_AddRefs(innerClone));
     } else if (refHandlingMode == eReplaceRef) {
         rv = mInnerURI->CloneWithNewRef(newRef, getter_AddRefs(innerClone));
     } else {
         rv = mInnerURI->CloneIgnoringRef(getter_AddRefs(innerClone));
@@ -172,17 +172,17 @@ nsSimpleNestedURI::StartClone(nsSimpleUR
     SetRefOnClone(url, refHandlingMode, newRef);
     url->SetMutable(false);
 
     return url;
 }
 
 // nsIClassInfo overrides
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSimpleNestedURI::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
 {
     static NS_DEFINE_CID(kSimpleNestedURICID, NS_SIMPLENESTEDURI_CID);
 
     *aClassIDNoAlloc = kSimpleNestedURICID;
     return NS_OK;
 }
 
--- a/netwerk/base/nsSimpleNestedURI.h
+++ b/netwerk/base/nsSimpleNestedURI.h
@@ -41,34 +41,34 @@ public:
     // Constructor that should generally be used when constructing an object of
     // this class with |operator new|.
     explicit nsSimpleNestedURI(nsIURI* innerURI);
 
     NS_DECL_ISUPPORTS_INHERITED
     NS_DECL_NSINESTEDURI
 
     // Overrides for various methods nsSimpleURI implements follow.
-  
+
     // nsSimpleURI overrides
     virtual nsresult EqualsInternal(nsIURI* other,
                                     RefHandlingEnum refHandlingMode,
                                     bool* result) override;
     virtual nsSimpleURI* StartClone(RefHandlingEnum refHandlingMode,
                                     const nsACString& newRef) override;
 
     // nsISerializable overrides
     NS_IMETHOD Read(nsIObjectInputStream* aStream) override;
     NS_IMETHOD Write(nsIObjectOutputStream* aStream) override;
 
     // nsIIPCSerializableURI overrides
     NS_DECL_NSIIPCSERIALIZABLEURI
 
     // Override the nsIClassInfo method GetClassIDNoAlloc to make sure our
     // nsISerializable impl works right.
-    NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) override;  
+    NS_IMETHOD GetClassIDNoAlloc(nsCID *aClassIDNoAlloc) override;
 
 protected:
     nsCOMPtr<nsIURI> mInnerURI;
 };
 
 } // namespace net
 } // namespace mozilla
 
--- a/netwerk/base/nsSimpleURI.h
+++ b/netwerk/base/nsSimpleURI.h
@@ -87,17 +87,17 @@ protected:
     // its inner URI.
     virtual nsSimpleURI* StartClone(RefHandlingEnum refHandlingMode,
                                     const nsACString& newRef);
 
     // Helper to share code between Clone methods.
     virtual nsresult CloneInternal(RefHandlingEnum refHandlingMode,
                                    const nsACString &newRef,
                                    nsIURI** clone);
-    
+
     nsCString mScheme;
     nsCString mPath; // NOTE: mPath does not include ref, as an optimization
     nsCString mRef;  // so that URIs with different refs can share string data.
     nsCString mQuery;  // so that URLs with different querys can share string data.
     bool mMutable;
     bool mIsRefValid; // To distinguish between empty-ref and no-ref.
     bool mIsQueryValid; // To distinguish between empty-query and no-query.
 };
--- a/netwerk/base/nsSocketTransport2.cpp
+++ b/netwerk/base/nsSocketTransport2.cpp
@@ -110,17 +110,17 @@ static PRErrorCode RandomizeConnectError
     // To test out these errors, load http://www.yahoo.com/.  It should load
     // correctly despite the random occurrence of these errors.
     //
     int n = rand();
     if (n > RAND_MAX/2) {
         struct {
             PRErrorCode err_code;
             const char *err_name;
-        } 
+        }
         errors[] = {
             //
             // These errors should be recoverable provided there is another
             // IP address in mDNSRecord.
             //
             { PR_CONNECT_REFUSED_ERROR, "PR_CONNECT_REFUSED_ERROR" },
             { PR_CONNECT_TIMEOUT_ERROR, "PR_CONNECT_TIMEOUT_ERROR" },
             //
@@ -244,17 +244,17 @@ ErrorAccordingToNSPR(PRErrorCode errorCo
     //   This is so vague that NS_ERROR_FAILURE is just as good.
     }
     SOCKET_LOG(("ErrorAccordingToNSPR [in=%d out=%" PRIx32 "]\n", errorCode,
                 static_cast<uint32_t>(rv)));
     return rv;
 }
 
 //-----------------------------------------------------------------------------
-// socket input stream impl 
+// socket input stream impl
 //-----------------------------------------------------------------------------
 
 nsSocketInputStream::nsSocketInputStream(nsSocketTransport *trans)
     : mTransport(trans)
     , mReaderRefCnt(0)
     , mCondition(NS_OK)
     , mCallbackFlags(0)
     , mByteCount(0)
@@ -454,17 +454,17 @@ nsSocketInputStream::IsNonBlocking(bool 
 
 NS_IMETHODIMP
 nsSocketInputStream::CloseWithStatus(nsresult reason)
 {
     SOCKET_LOG(("nsSocketInputStream::CloseWithStatus [this=%p reason=%" PRIx32 "]\n", this,
                static_cast<uint32_t>(reason)));
 
     // may be called from any thread
- 
+
     nsresult rv;
     {
         MutexAutoLock lock(mTransport->mLock);
 
         if (NS_SUCCEEDED(mCondition))
             rv = mCondition = reason;
         else
             rv = NS_OK;
@@ -509,17 +509,17 @@ nsSocketInputStream::AsyncWait(nsIInputS
     } else {
         mTransport->OnInputPending();
     }
 
     return NS_OK;
 }
 
 //-----------------------------------------------------------------------------
-// socket output stream impl 
+// socket output stream impl
 //-----------------------------------------------------------------------------
 
 nsSocketOutputStream::nsSocketOutputStream(nsSocketTransport *trans)
     : mTransport(trans)
     , mWriterRefCnt(0)
     , mCondition(NS_OK)
     , mCallbackFlags(0)
     , mByteCount(0)
@@ -606,17 +606,17 @@ nsSocketOutputStream::Write(const char *
 
     PRFileDesc* fd = nullptr;
     bool fastOpenInProgress;
     {
         MutexAutoLock lock(mTransport->mLock);
 
         if (NS_FAILED(mCondition))
             return mCondition;
-        
+
         fd = mTransport->GetFD_LockedAlsoDuringFastOpen();
         if (!fd)
             return NS_BASE_STREAM_WOULD_BLOCK;
 
         fastOpenInProgress = mTransport->FastOpenInProgress();
     }
 
     if (fastOpenInProgress) {
@@ -715,17 +715,17 @@ nsSocketOutputStream::IsNonBlocking(bool
 
 NS_IMETHODIMP
 nsSocketOutputStream::CloseWithStatus(nsresult reason)
 {
     SOCKET_LOG(("nsSocketOutputStream::CloseWithStatus [this=%p reason=%" PRIx32 "]\n", this,
                 static_cast<uint32_t>(reason)));
 
     // may be called from any thread
- 
+
     nsresult rv;
     {
         MutexAutoLock lock(mTransport->mLock);
 
         if (NS_SUCCEEDED(mCondition))
             rv = mCondition = reason;
         else
             rv = NS_OK;
@@ -1051,17 +1051,17 @@ nsSocketTransport::SendStatus(nsresult s
         sink = mEventSink;
         switch (status) {
         case NS_NET_STATUS_SENDING_TO:
             progress = mOutput.ByteCount();
             // If Fast Open is used, we buffer some data in TCPFastOpenLayer,
             // This data can  be only tls data or application data as well.
             // socketTransport should send status only if it really has sent
             // application data. socketTransport cannot query transaction for
-            // that info but it can know if transaction has send data if 
+            // that info but it can know if transaction has send data if
             // mOutput.ByteCount() is > 0.
             if (progress == 0) {
                 return;
             }
             break;
         case NS_NET_STATUS_RECEIVING_FROM:
             progress = mInput.ByteCount();
             break;
@@ -1195,32 +1195,32 @@ nsSocketTransport::BuildSocket(PRFileDes
             SOCKET_LOG(("  pushing io layer [%u:%s]\n", i, mTypes[i]));
 
             rv = spserv->GetSocketProvider(mTypes[i], getter_AddRefs(provider));
             if (NS_FAILED(rv))
                 break;
 
             if (mProxyTransparentResolvesHost)
                 controlFlags |= nsISocketProvider::PROXY_RESOLVES_HOST;
-            
+
             if (mConnectionFlags & nsISocketTransport::ANONYMOUS_CONNECT)
                 controlFlags |= nsISocketProvider::ANONYMOUS_CONNECT;
 
             if (mConnectionFlags & nsISocketTransport::NO_PERMANENT_STORAGE)
                 controlFlags |= nsISocketProvider::NO_PERMANENT_STORAGE;
 
             if (mConnectionFlags & nsISocketTransport::MITM_OK)
                 controlFlags |= nsISocketProvider::MITM_OK;
 
             if (mConnectionFlags & nsISocketTransport::BE_CONSERVATIVE)
                 controlFlags |= nsISocketProvider::BE_CONSERVATIVE;
 
             nsCOMPtr<nsISupports> secinfo;
             if (i == 0) {
-                // if this is the first type, we'll want the 
+                // if this is the first type, we'll want the
                 // service to allocate a new socket
 
                 // when https proxying we want to just connect to the proxy as if
                 // it were the end host (i.e. expect the proxy's cert)
 
                 rv = provider->NewSocket(mNetAddr.raw.family,
                                          mHttpsProxy ? mProxyHost.get() : host,
                                          mHttpsProxy ? mProxyPort : port,
@@ -1229,17 +1229,17 @@ nsSocketTransport::BuildSocket(PRFileDes
                                          getter_AddRefs(secinfo));
 
                 if (NS_SUCCEEDED(rv) && !fd) {
                     NS_NOTREACHED("NewSocket succeeded but failed to create a PRFileDesc");
                     rv = NS_ERROR_UNEXPECTED;
                 }
             }
             else {
-                // the socket has already been allocated, 
+                // the socket has already been allocated,
                 // so we just want the service to add itself
                 // to the stack (such as pushing an io layer)
                 rv = provider->AddToSocket(mNetAddr.raw.family,
                                            host, port, proxyInfo,
                                            mOriginAttributes, controlFlags, fd,
                                            getter_AddRefs(secinfo));
             }
 
@@ -1617,17 +1617,17 @@ nsSocketTransport::InitiateSocket()
             Telemetry::PRCONNECT_BLOCKING_TIME_NORMAL,
             Telemetry::PRCONNECT_BLOCKING_TIME_SHUTDOWN,
             Telemetry::PRCONNECT_BLOCKING_TIME_CONNECTIVITY_CHANGE,
             Telemetry::PRCONNECT_BLOCKING_TIME_LINK_CHANGE,
             Telemetry::PRCONNECT_BLOCKING_TIME_OFFLINE);
     }
 
     if (status == PR_SUCCESS) {
-        // 
+        //
         // we are connected!
         //
         OnSocketConnected();
     }
     else {
 #if defined(TEST_CONNECT_ERRORS)
         code = RandomizeConnectError(code);
 #endif
@@ -2078,20 +2078,20 @@ nsSocketTransport::OnSocketEvent(uint32_
         SOCKET_LOG(("  MSG_DNS_LOOKUP_COMPLETE\n"));
         mDNSRequest = nullptr;
         if (param) {
             mDNSRecord = static_cast<nsIDNSRecord *>(param);
             mDNSRecord->GetNextAddr(SocketPort(), &mNetAddr);
         }
         // status contains DNS lookup status
         if (NS_FAILED(status)) {
-            // When using a HTTP proxy, NS_ERROR_UNKNOWN_HOST means the HTTP 
+            // When using a HTTP proxy, NS_ERROR_UNKNOWN_HOST means the HTTP
             // proxy host is not found, so we fixup the error code.
-            // For SOCKS proxies (mProxyTransparent == true), the socket 
-            // transport resolves the real host here, so there's no fixup 
+            // For SOCKS proxies (mProxyTransparent == true), the socket
+            // transport resolves the real host here, so there's no fixup
             // (see bug 226943).
             if ((status == NS_ERROR_UNKNOWN_HOST) && !mProxyTransparent &&
                 !mProxyHost.IsEmpty())
                 mCondition = NS_ERROR_UNKNOWN_PROXY_HOST;
             else
                 mCondition = status;
         }
         else if (mState == STATE_RESOLVING) {
@@ -2125,17 +2125,17 @@ nsSocketTransport::OnSocketEvent(uint32_
     case MSG_TIMEOUT_CHANGED:
         SOCKET_LOG(("  MSG_TIMEOUT_CHANGED\n"));
         mPollTimeout = mTimeouts[(mState == STATE_TRANSFERRING)
           ? TIMEOUT_READ_WRITE : TIMEOUT_CONNECT];
         break;
     default:
         SOCKET_LOG(("  unhandled event!\n"));
     }
-    
+
     if (NS_FAILED(mCondition)) {
         SOCKET_LOG(("  after event [this=%p cond=%"  PRIx32 "]\n", this,
                     static_cast<uint32_t>(mCondition)));
         if (!mAttached) // need to process this error ourselves...
             OnSocketDetached(nullptr);
     }
     else if (mPollFlags == PR_POLL_EXCEPT)
         mPollFlags = 0; // make idle
@@ -2365,25 +2365,25 @@ nsSocketTransport::OnSocketDetached(PRFi
     // holding the lock, and let the stack based objects' destuctors take
     // care of destroying it if needed.
     nsCOMPtr<nsIInterfaceRequestor> ourCallbacks;
     nsCOMPtr<nsITransportEventSink> ourEventSink;
     {
         MutexAutoLock lock(mLock);
         if (mFD.IsInitialized()) {
             ReleaseFD_Locked(mFD);
-            // flag mFD as unusable; this prevents other consumers from 
+            // flag mFD as unusable; this prevents other consumers from
             // acquiring a reference to mFD.
             mFDconnected = false;
             mFDFastOpenInProgress = false;
         }
 
         // We must release mCallbacks and mEventSink to avoid memory leak
         // but only when RecoverFromError() above failed. Otherwise we lose
-        // link with UI and security callbacks on next connection attempt 
+        // link with UI and security callbacks on next connection attempt
         // round. That would lead e.g. to a broken certificate exception page.
         if (NS_FAILED(mCondition)) {
             mCallbacks.swap(ourCallbacks);
             mEventSink.swap(ourEventSink);
         }
     }
 }
 
--- a/netwerk/base/nsSocketTransportService2.cpp
+++ b/netwerk/base/nsSocketTransportService2.cpp
@@ -267,17 +267,17 @@ nsSocketTransportService::DetachSocket(S
     NS_RELEASE(sock->mHandler);
 
     if (listHead == mActiveList)
         RemoveFromPollList(sock);
     else
         RemoveFromIdleList(sock);
 
     // NOTE: sock is now an invalid pointer
-    
+
     //
     // notify the first element on the pending socket queue...
     //
     nsCOMPtr<nsIRunnable> event;
     LinkedRunnableEvent *runnable = mPendingSocketQueue.getFirst();
     if (runnable) {
         event = runnable->TakeEvent();
         runnable->remove();
@@ -299,17 +299,17 @@ nsSocketTransportService::AddToPollList(
     SOCKET_LOG(("nsSocketTransportService::AddToPollList [handler=%p]\n", sock->mHandler));
     if (mActiveCount == mActiveListSize) {
         SOCKET_LOG(("  Active List size of %d met\n", mActiveCount));
         if (!GrowActiveList()) {
             NS_ERROR("too many active sockets");
             return NS_ERROR_OUT_OF_MEMORY;
         }
     }
-    
+
     uint32_t newSocketIndex = mActiveCount;
     if (ChaosMode::isActive(ChaosFeature::NetworkScheduling)) {
       newSocketIndex = ChaosMode::randomUint32LessThan(mActiveCount + 1);
       PodMove(mActiveList + newSocketIndex + 1, mActiveList + newSocketIndex,
               mActiveCount - newSocketIndex);
       PodMove(mPollList + newSocketIndex + 2, mPollList + newSocketIndex + 1,
               mActiveCount - newSocketIndex);
     }
@@ -507,17 +507,17 @@ nsSocketTransportService::Poll(uint32_t 
 
     PRIntervalTime passedInterval = PR_IntervalNow() - ts;
 
     if (mTelemetryEnabledPref && !pollStart.IsNull()) {
         *pollDuration = TimeStamp::NowLoRes() - pollStart;
     }
 
     SOCKET_LOG(("    ...returned after %i milliseconds\n",
-         PR_IntervalToMilliseconds(passedInterval))); 
+         PR_IntervalToMilliseconds(passedInterval)));
 
     *interval = PR_IntervalToSeconds(passedInterval);
     return rv;
 }
 
 //-----------------------------------------------------------------------------
 // xpcom api
 
@@ -543,17 +543,17 @@ nsSocketTransportService::Init()
         return NS_OK;
 
     if (mShuttingDown)
         return NS_ERROR_UNEXPECTED;
 
     nsCOMPtr<nsIThread> thread;
     nsresult rv = NS_NewNamedThread("Socket Thread", getter_AddRefs(thread), this);
     if (NS_FAILED(rv)) return rv;
-    
+
     {
         MutexAutoLock lock(mLock);
         // Install our mThread, protecting against concurrent readers
         thread.swap(mThread);
     }
 
     nsCOMPtr<nsIPrefBranch> tmpPrefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
     if (tmpPrefService) {
@@ -628,17 +628,17 @@ nsSocketTransportService::ShutdownThread
     {
         MutexAutoLock lock(mLock);
         // Drop our reference to mThread and make sure that any concurrent
         // readers are excluded
         mThread = nullptr;
     }
 
     nsCOMPtr<nsIPrefBranch> tmpPrefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
-    if (tmpPrefService) 
+    if (tmpPrefService)
         tmpPrefService->RemoveObserver(SEND_BUFFER_PREF, this);
 
     nsCOMPtr<nsIObserverService> obsSvc = services::GetObserverService();
     if (obsSvc) {
         obsSvc->RemoveObserver(this, "profile-initial-state");
         obsSvc->RemoveObserver(this, "last-pb-context-exited");
         obsSvc->RemoveObserver(this, NS_WIDGET_SLEEP_OBSERVER_TOPIC);
         obsSvc->RemoveObserver(this, NS_WIDGET_WAKE_OBSERVER_TOPIC);
@@ -1174,17 +1174,17 @@ nsSocketTransportService::DoPollIteratio
                 // which makes them fire signed/unsigned-comparison build
                 // warnings for the comparison against 'pollInterval'.)
                 if (MOZ_UNLIKELY(pollInterval >
                                 static_cast<uint32_t>(UINT16_MAX) -
                                 s.mElapsedTime))
                     s.mElapsedTime = UINT16_MAX;
                 else
                     s.mElapsedTime += uint16_t(pollInterval);
-                // check for timeout expiration 
+                // check for timeout expiration
                 if (s.mElapsedTime >= s.mHandler->mPollTimeout) {
 #ifdef MOZ_TASK_TRACER
 		    tasktracer::AutoSourceEvent taskTracerEvent(tasktracer::SourceEventType::SocketIO);
 #endif
                     s.mElapsedTime = 0;
                     s.mHandler->OnSocketReady(desc.fd, -1);
                     numberOfOnSocketReadyCalls++;
                 }
@@ -1492,17 +1492,17 @@ nsSocketTransportService::ProbeMaxCount(
         }
         ++numAllocated;
     }
 
     // Test
     static_assert(SOCKET_LIMIT_MIN >= 32U, "Minimum Socket Limit is >= 32");
     while (gMaxCount <= numAllocated) {
         int32_t rv = PR_Poll(pfd, gMaxCount, PR_MillisecondsToInterval(0));
-        
+
         SOCKET_LOG(("Socket Limit Test poll() size=%d rv=%d\n",
                     gMaxCount, rv));
 
         if (rv >= 0)
             break;
 
         SOCKET_LOG(("Socket Limit Test poll confirmationSize=%d rv=%d error=%d\n",
                     gMaxCount, rv, PR_GetError()));
--- a/netwerk/base/nsSocketTransportService2.h
+++ b/netwerk/base/nsSocketTransportService2.h
@@ -91,17 +91,17 @@ class nsSocketTransportService final : p
 public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSPISOCKETTRANSPORTSERVICE
     NS_DECL_NSISOCKETTRANSPORTSERVICE
     NS_DECL_NSIROUTEDSOCKETTRANSPORTSERVICE
     NS_DECL_NSIEVENTTARGET_FULL
     NS_DECL_NSITHREADOBSERVER
     NS_DECL_NSIRUNNABLE
-    NS_DECL_NSIOBSERVER 
+    NS_DECL_NSIOBSERVER
 
     nsSocketTransportService();
 
     // Max Socket count may need to get initialized/used by nsHttpHandler
     // before this class is initialized.
     static uint32_t gMaxCount;
     static PRCallOnceType gMaxCountInitOnce;
     static PRStatus DiscoverMaxCount();
--- a/netwerk/base/nsStandardURL.cpp
+++ b/netwerk/base/nsStandardURL.cpp
@@ -182,17 +182,17 @@ NS_IMETHODIMP nsStandardURL::
 nsPrefObserver::Observe(nsISupports *subject,
                         const char *topic,
                         const char16_t *data)
 {
     if (!strcmp(topic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID)) {
         nsCOMPtr<nsIPrefBranch> prefBranch( do_QueryInterface(subject) );
         if (prefBranch) {
             PrefsChanged(prefBranch, NS_ConvertUTF16toUTF8(data).get());
-        } 
+        }
     }
     return NS_OK;
 }
 
 //----------------------------------------------------------------------------
 // nsStandardURL::nsSegmentEncoder
 //----------------------------------------------------------------------------
 
@@ -208,17 +208,17 @@ nsStandardURL::nsSegmentEncoder::nsSegme
 int32_t nsStandardURL::
 nsSegmentEncoder::EncodeSegmentCount(const char *str,
                                      const URLSegment &seg,
                                      int16_t mask,
                                      nsCString& result,
                                      bool &appended,
                                      uint32_t extraLen)
 {
-    // extraLen is characters outside the segment that will be 
+    // extraLen is characters outside the segment that will be
     // added when the segment is not empty (like the @ following
     // a username).
     appended = false;
     if (!str)
         return 0;
     int32_t len = 0;
     if (seg.mLen > 0) {
         uint32_t pos = seg.mPos;
@@ -1014,17 +1014,17 @@ nsStandardURL::BuildNormalizedSpec(const
             && path[2] == '|') {
             buf[mPath.mPos + 2] = ':';
         }
     }
 
     if (mDirectory.mLen > 1) {
         netCoalesceFlags coalesceFlag = NET_COALESCE_NORMAL;
         if (SegmentIs(buf,mScheme,"ftp")) {
-            coalesceFlag = (netCoalesceFlags) (coalesceFlag 
+            coalesceFlag = (netCoalesceFlags) (coalesceFlag
                                         | NET_COALESCE_ALLOW_RELATIVE_ROOT
                                         | NET_COALESCE_DOUBLE_SLASH_IS_ROOT);
         }
         CoalescePath(coalesceFlag, buf + mDirectory.mPos);
     }
     mSpec.SetLength(strlen(buf));
     NS_ASSERTION(mSpec.Length() <= approxLen, "We've overflowed the mSpec buffer!");
     return NS_OK;
@@ -1071,19 +1071,19 @@ nsStandardURL::SegmentIs(const URLSegmen
 {
     if (seg1.mLen != seg2.mLen)
         return false;
     if (seg1.mLen == -1 || (!val && mSpec.IsEmpty()))
         return true; // both are empty
     if (!val)
         return false;
     if (ignoreCase)
-        return !PL_strncasecmp(mSpec.get() + seg1.mPos, val + seg2.mPos, seg1.mLen); 
+        return !PL_strncasecmp(mSpec.get() + seg1.mPos, val + seg2.mPos, seg1.mLen);
     else
-        return !strncmp(mSpec.get() + seg1.mPos, val + seg2.mPos, seg1.mLen); 
+        return !strncmp(mSpec.get() + seg1.mPos, val + seg2.mPos, seg1.mLen);
 }
 
 int32_t
 nsStandardURL::ReplaceSegment(uint32_t pos, uint32_t len, const char *val, uint32_t valLen)
 {
     if (val && valLen) {
         if (len == 0)
             mSpec.Insert(val, pos, valLen);
@@ -1126,17 +1126,17 @@ nsStandardURL::ParseURL(const char *spec
     if (NS_FAILED(rv)) return rv;
 
 #ifdef DEBUG
     if (mScheme.mLen <= 0) {
         printf("spec=%s\n", spec);
         NS_WARNING("malformed url: no scheme");
     }
 #endif
-     
+
     if (mAuthority.mLen > 0) {
         rv = mParser->ParseAuthority(spec + mAuthority.mPos, mAuthority.mLen,
                                      &mUsername.mPos, &mUsername.mLen,
                                      &mPassword.mPos, &mPassword.mLen,
                                      &mHost.mPos, &mHost.mLen,
                                      &mPort);
         if (NS_FAILED(rv)) return rv;
 
@@ -2309,17 +2309,17 @@ nsStandardURL::EqualsInternal(nsIURI *un
         return NS_OK;
     }
 
     if (refHandlingMode == eHonorRef &&
         !SegmentIs(mRef, other->mSpec.get(), other->mRef)) {
         *result = false;
         return NS_OK;
     }
-    
+
     // Then check for exact identity of URIs.  If we have it, they're equal
     if (SegmentIs(mDirectory, other->mSpec.get(), other->mDirectory) &&
         SegmentIs(mBasename, other->mSpec.get(), other->mBasename) &&
         SegmentIs(mExtension, other->mSpec.get(), other->mExtension)) {
         *result = true;
         return NS_OK;
     }
 
@@ -2330,19 +2330,19 @@ nsStandardURL::EqualsInternal(nsIURI *un
     if (mSupportsFileURL) {
         // Assume not equal for failure cases... but failures in GetFile are
         // really failures, more or less, so propagate them to caller.
         *result = false;
 
         rv = EnsureFile();
         nsresult rv2 = other->EnsureFile();
         // special case for resource:// urls that don't resolve to files
-        if (rv == NS_ERROR_NO_INTERFACE && rv == rv2) 
+        if (rv == NS_ERROR_NO_INTERFACE && rv == rv2)
             return NS_OK;
-        
+
         if (NS_FAILED(rv)) {
             LOG(("nsStandardURL::Equals [this=%p spec=%s] failed to ensure file",
                 this, mSpec.get()));
             return rv;
         }
         NS_ASSERTION(mFile, "EnsureFile() lied!");
         rv = rv2;
         if (NS_FAILED(rv)) {
@@ -2476,17 +2476,17 @@ nsStandardURL::Resolve(const nsACString 
     char *result = nullptr;
 
     LOG(("nsStandardURL::Resolve [this=%p spec=%s relpath=%s]\n",
         this, mSpec.get(), relpath));
 
     NS_ASSERTION(mParser, "no parser: unitialized");
 
     // NOTE: there is no need for this function to produce normalized
-    // output.  normalization will occur when the result is used to 
+    // output.  normalization will occur when the result is used to
     // initialize a nsStandardURL object.
 
     if (mScheme.mLen < 0) {
         NS_WARNING("unable to Resolve URL: this URL not initialized");
         return NS_ERROR_NOT_INITIALIZED;
     }
 
     nsresult rv;
@@ -2494,25 +2494,25 @@ nsStandardURL::Resolve(const nsACString 
     char *resultPath = nullptr;
     bool relative = false;
     uint32_t offset = 0;
     netCoalesceFlags coalesceFlag = NET_COALESCE_NORMAL;
 
     // relative urls should never contain a host, so we always want to use
     // the noauth url parser.
     // use it to extract a possible scheme
-    rv = mParser->ParseURL(relpath, 
+    rv = mParser->ParseURL(relpath,
                            relpathLen,
                            &scheme.mPos, &scheme.mLen,
                            nullptr, nullptr,
                            nullptr, nullptr);
 
     // if the parser fails (for example because there is no valid scheme)
     // reset the scheme and assume a relative url
-    if (NS_FAILED(rv)) scheme.Reset(); 
+    if (NS_FAILED(rv)) scheme.Reset();
 
     nsAutoCString protocol(Segment(scheme));
     nsAutoCString baseProtocol(Scheme());
 
     // We need to do backslash replacement for the following cases:
     // 1. The input is an absolute path with a http/https/ftp scheme
     // 2. The input is a relative path, and the base URL has a http/https/ftp scheme
     if ((protocol.IsEmpty() && IsSpecialProtocol(baseProtocol)) ||
@@ -2532,56 +2532,56 @@ nsStandardURL::Resolve(const nsACString 
             start++;
         }
     }
 
     if (scheme.mLen >= 0) {
         // add some flags to coalesceFlag if it is an ftp-url
         // need this later on when coalescing the resulting URL
         if (SegmentIs(relpath, scheme, "ftp", true)) {
-            coalesceFlag = (netCoalesceFlags) (coalesceFlag 
+            coalesceFlag = (netCoalesceFlags) (coalesceFlag
                                         | NET_COALESCE_ALLOW_RELATIVE_ROOT
                                         | NET_COALESCE_DOUBLE_SLASH_IS_ROOT);
 
         }
         // this URL appears to be absolute
         // but try to find out more
         if (SegmentIs(mScheme, relpath, scheme, true)) {
-            // mScheme and Scheme are the same 
+            // mScheme and Scheme are the same
             // but this can still be relative
             if (nsCRT::strncmp(relpath + scheme.mPos + scheme.mLen,
                                "://",3) == 0) {
                 // now this is really absolute
-                // because a :// follows the scheme 
+                // because a :// follows the scheme
                 result = NS_strdup(relpath);
-            } else {         
+            } else {
                 // This is a deprecated form of relative urls like
                 // http:file or http:/path/file
                 // we will support it for now ...
                 relative = true;
                 offset = scheme.mLen + 1;
             }
         } else {
             // the schemes are not the same, we are also done
-            // because we have to assume this is absolute 
+            // because we have to assume this is absolute
             result = NS_strdup(relpath);
-        }  
+        }
     } else {
         // add some flags to coalesceFlag if it is an ftp-url
         // need this later on when coalescing the resulting URL
         if (SegmentIs(mScheme,"ftp")) {
-            coalesceFlag = (netCoalesceFlags) (coalesceFlag 
+            coalesceFlag = (netCoalesceFlags) (coalesceFlag
                                         | NET_COALESCE_ALLOW_RELATIVE_ROOT
                                         | NET_COALESCE_DOUBLE_SLASH_IS_ROOT);
         }
         if (relpath[0] == '/' && relpath[1] == '/') {
             // this URL //host/path is almost absolute
             result = AppendToSubstring(mScheme.mPos, mScheme.mLen + 1, relpath);
         } else {
-            // then it must be relative 
+            // then it must be relative
             relative = true;
         }
     }
     if (relative) {
         uint32_t len = 0;
         const char *realrelpath = relpath + offset;
         switch (*realrelpath) {
         case '/':
@@ -2609,21 +2609,21 @@ nsStandardURL::Resolve(const nsACString 
             if (coalesceFlag & NET_COALESCE_DOUBLE_SLASH_IS_ROOT) {
                 if (Filename().Equals(NS_LITERAL_CSTRING("%2F"),
                                       nsCaseInsensitiveCStringComparator())) {
                     // if ftp URL ends with %2F then simply
                     // append relative part because %2F also
                     // marks the root directory with ftp-urls
                     len = mFilepath.mPos + mFilepath.mLen;
                 } else {
-                    // overwrite everything after the directory 
+                    // overwrite everything after the directory
                     len = mDirectory.mPos + mDirectory.mLen;
                 }
-            } else { 
-                // overwrite everything after the directory 
+            } else {
+                // overwrite everything after the directory
                 len = mDirectory.mPos + mDirectory.mLen;
             }
         }
         result = AppendToSubstring(0, len, realrelpath);
         // locate result path
         resultPath = result + mPath.mPos;
     }
     if (!result)
@@ -2656,17 +2656,17 @@ nsStandardURL::GetCommonBaseSpec(nsIURI 
         return GetSpec(aResult);
 
     aResult.Truncate();
 
     // check pre-path; if they don't match, then return empty string
     nsStandardURL *stdurl2;
     nsresult rv = uri2->QueryInterface(kThisImplCID, (void **) &stdurl2);
     isEquals = NS_SUCCEEDED(rv)
-            && SegmentIs(mScheme, stdurl2->mSpec.get(), stdurl2->mScheme)    
+            && SegmentIs(mScheme, stdurl2->mSpec.get(), stdurl2->mScheme)
             && SegmentIs(mHost, stdurl2->mSpec.get(), stdurl2->mHost)
             && SegmentIs(mUsername, stdurl2->mSpec.get(), stdurl2->mUsername)
             && SegmentIs(mPassword, stdurl2->mSpec.get(), stdurl2->mPassword)
             && (Port() == stdurl2->Port());
     if (!isEquals)
     {
         if (NS_SUCCEEDED(rv))
             NS_RELEASE(stdurl2);
@@ -2707,17 +2707,17 @@ nsStandardURL::GetRelativeSpec(nsIURI *u
     // if uri's are equal, then return empty string
     bool isEquals = false;
     if (NS_SUCCEEDED(Equals(uri2, &isEquals)) && isEquals)
         return NS_OK;
 
     nsStandardURL *stdurl2;
     nsresult rv = uri2->QueryInterface(kThisImplCID, (void **) &stdurl2);
     isEquals = NS_SUCCEEDED(rv)
-            && SegmentIs(mScheme, stdurl2->mSpec.get(), stdurl2->mScheme)    
+            && SegmentIs(mScheme, stdurl2->mSpec.get(), stdurl2->mScheme)
             && SegmentIs(mHost, stdurl2->mSpec.get(), stdurl2->mHost)
             && SegmentIs(mUsername, stdurl2->mSpec.get(), stdurl2->mUsername)
             && SegmentIs(mPassword, stdurl2->mSpec.get(), stdurl2->mPassword)
             && (Port() == stdurl2->Port());
     if (!isEquals)
     {
         if (NS_SUCCEEDED(rv))
             NS_RELEASE(stdurl2);
@@ -2777,17 +2777,17 @@ nsStandardURL::GetRelativeSpec(nsIURI *u
     for (; thisIndex <= limit && *thisIndex; ++thisIndex)
     {
         if (*thisIndex == '/')
             aResult.AppendLiteral("../");
     }
 
     // grab spec from thisIndex to end
     uint32_t startPos = stdurl2->mScheme.mPos + thatIndex - stdurl2->mSpec.get();
-    aResult.Append(Substring(stdurl2->mSpec, startPos, 
+    aResult.Append(Substring(stdurl2->mSpec, startPos,
                              stdurl2->mSpec.Length() - startPos));
 
     NS_RELEASE(stdurl2);
     return rv;
 }
 
 //----------------------------------------------------------------------------
 // nsStandardURL::nsIURL
@@ -3159,17 +3159,17 @@ nsStandardURL::SetFileName(const nsACStr
             else {
                 // replace existing filename
                 uint32_t oldLen = uint32_t(mBasename.mLen);
                 if (mExtension.mLen >= 0)
                     oldLen += (mExtension.mLen + 1);
                 mSpec.Replace(mBasename.mPos, oldLen, newFilename);
                 shift = newFilename.Length() - oldLen;
             }
-            
+
             mBasename.mLen = basename.mLen;
             mExtension.mLen = extension.mLen;
             if (mExtension.mLen >= 0)
                 mExtension.mPos = mBasename.mPos + mBasename.mLen + 1;
         }
     }
     if (shift) {
         ShiftFromQuery(shift);
@@ -3427,19 +3427,19 @@ nsStandardURL::SetMutable(bool value)
 //----------------------------------------------------------------------------
 
 NS_IMETHODIMP
 nsStandardURL::Read(nsIObjectInputStream *stream)
 {
     NS_PRECONDITION(!mHostA, "Shouldn't have cached ASCII host");
     NS_PRECONDITION(mSpecEncoding == eEncoding_Unknown,
                     "Shouldn't have spec encoding here");
-    
+
     nsresult rv;
-    
+
     uint32_t urlType;
     rv = stream->Read32(&urlType);
     if (NS_FAILED(rv)) return rv;
     mURLType = urlType;
     switch (mURLType) {
       case URLTYPE_STANDARD:
         mParser = net_GetStdURLParser();
         break;
@@ -3523,26 +3523,26 @@ nsStandardURL::Read(nsIObjectInputStream
     if (hostEncoding != eEncoding_ASCII && hostEncoding != eEncoding_UTF8) {
         NS_WARNING("Unexpected host encoding");
         return NS_ERROR_UNEXPECTED;
     }
     mHostEncoding = hostEncoding;
 
     // wait until object is set up, then modify path to include the param
     if (old_param.mLen >= 0) {  // note that mLen=0 is ";"
-        // If this wasn't empty, it marks characters between the end of the 
+        // If this wasn't empty, it marks characters between the end of the
         // file and start of the query - mPath should include the param,
-        // query and ref already.  Bump the mFilePath and 
+        // query and ref already.  Bump the mFilePath and
         // directory/basename/extension components to include this.
         mFilepath.Merge(mSpec,  ';', old_param);
         mDirectory.Merge(mSpec, ';', old_param);
         mBasename.Merge(mSpec,  ';', old_param);
         mExtension.Merge(mSpec, ';', old_param);
     }
-    
+
     CALL_RUST_SYNC;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsStandardURL::Write(nsIObjectOutputStream *stream)
 {
     MOZ_ASSERT(mSpec.Length() <= (uint32_t) net_GetURLMaxLength(),
@@ -3734,62 +3734,62 @@ nsStandardURL::Deserialize(const URIPara
     // mSpecEncoding and mHostA are just caches that can be recovered as needed.
     return true;
 }
 
 //----------------------------------------------------------------------------
 // nsStandardURL::nsIClassInfo
 //----------------------------------------------------------------------------
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetInterfaces(uint32_t *count, nsIID * **array)
 {
     *count = 0;
     *array = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetScriptableHelper(nsIXPCScriptable **_retval)
 {
     *_retval = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetContractID(char * *aContractID)
 {
     *aContractID = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetClassDescription(char * *aClassDescription)
 {
     *aClassDescription = nullptr;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetClassID(nsCID * *aClassID)
 {
     *aClassID = (nsCID*) moz_xmalloc(sizeof(nsCID));
     if (!*aClassID)
         return NS_ERROR_OUT_OF_MEMORY;
     return GetClassIDNoAlloc(*aClassID);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetFlags(uint32_t *aFlags)
 {
     *aFlags = nsIClassInfo::MAIN_THREAD_ONLY;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStandardURL::GetClassIDNoAlloc(nsCID *aClassIDNoAlloc)
 {
     *aClassIDNoAlloc = kStandardURLCID;
     return NS_OK;
 }
 
 //----------------------------------------------------------------------------
 // nsStandardURL::nsISizeOf
--- a/netwerk/base/nsStandardURL.h
+++ b/netwerk/base/nsStandardURL.h
@@ -88,17 +88,17 @@ public: /* internal -- HPUX compiler can
         URLSegment() : mPos(0), mLen(-1) {}
         URLSegment(uint32_t pos, int32_t len) : mPos(pos), mLen(len) {}
         URLSegment(const URLSegment& aCopy) : mPos(aCopy.mPos), mLen(aCopy.mLen) {}
         void Reset() { mPos = 0; mLen = -1; }
         // Merge another segment following this one to it if they're contiguous
         // Assumes we have something like "foo;bar" where this object is 'foo' and right
         // is 'bar'.
         void Merge(const nsCString &spec, const char separator, const URLSegment &right) {
-            if (mLen >= 0 && 
+            if (mLen >= 0 &&
                 *(spec.get() + mPos + mLen) == separator &&
                 mPos + mLen + 1 == right.mPos) {
                 mLen += 1 + right.mLen;
             }
         }
     };
 
     //
@@ -128,17 +128,17 @@ public: /* internal -- HPUX compiler can
         // the encoded segment.  The encoded segment is appended to |buf|
         // if and only if encoding is required.
         int32_t EncodeSegmentCount(const char *str,
                                    const URLSegment &segment,
                                    int16_t mask,
                                    nsCString& buf,
                                    bool& appended,
                                    uint32_t extraLen = 0);
-         
+
         // Encode the given string if necessary, and return a reference to
         // the encoded string.  Returns a reference to |buf| if encoding
         // is required.  Otherwise, a reference to |str| is returned.
         const nsACString& EncodeSegment(const nsACString& str,
                                         int16_t mask,
                                         nsCString& buf);
     private:
       const Encoding* mEncoding;
@@ -274,17 +274,17 @@ private:
     URLSegment mRef;
 
     nsCString              mOriginCharset;
     nsCOMPtr<nsIURLParser> mParser;
 
     // mFile is protected so subclasses can access it directly
 protected:
     nsCOMPtr<nsIFile>      mFile;  // cached result for nsIFileURL::GetFile
-    
+
 private:
     char                  *mHostA; // cached result for nsIURI::GetHostA
 
     enum {
         eEncoding_Unknown,
         eEncoding_ASCII,
         eEncoding_UTF8
     };
--- a/netwerk/base/nsStreamListenerTee.cpp
+++ b/netwerk/base/nsStreamListenerTee.cpp
@@ -18,17 +18,17 @@ NS_IMETHODIMP
 nsStreamListenerTee::OnStartRequest(nsIRequest *request,
                                     nsISupports *context)
 {
     NS_ENSURE_TRUE(mListener, NS_ERROR_NOT_INITIALIZED);
     nsresult rv1 = mListener->OnStartRequest(request, context);
     nsresult rv2 = NS_OK;
     if (mObserver)
         rv2 = mObserver->OnStartRequest(request, context);
-  
+
     // Preserve NS_SUCCESS_XXX in rv1 in case mObserver didn't throw
     return (NS_FAILED(rv2) && NS_SUCCEEDED(rv1)) ? rv2 : rv1;
 }
 
 NS_IMETHODIMP
 nsStreamListenerTee::OnStopRequest(nsIRequest *request,
                                    nsISupports *context,
                                    nsresult status)
--- a/netwerk/base/nsStreamLoader.cpp
+++ b/netwerk/base/nsStreamLoader.cpp
@@ -46,24 +46,24 @@ nsStreamLoader::Create(nsISupports *aOut
   NS_RELEASE(it);
   return rv;
 }
 
 NS_IMPL_ISUPPORTS(nsStreamLoader, nsIStreamLoader,
                   nsIRequestObserver, nsIStreamListener,
                   nsIThreadRetargetableStreamListener)
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStreamLoader::GetNumBytesRead(uint32_t* aNumBytes)
 {
   *aNumBytes = mData.length();
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsStreamLoader::GetRequest(nsIRequest **aRequest)
 {
   NS_IF_ADDREF(*aRequest = mRequest);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsStreamLoader::OnStartRequest(nsIRequest* request, nsISupports *ctxt)
@@ -138,19 +138,19 @@ nsStreamLoader::WriteSegmentFun(nsIInput
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   *writeCount = count;
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsStreamLoader::OnDataAvailable(nsIRequest* request, nsISupports *ctxt, 
-                                nsIInputStream *inStr, 
+NS_IMETHODIMP
+nsStreamLoader::OnDataAvailable(nsIRequest* request, nsISupports *ctxt,
+                                nsIInputStream *inStr,
                                 uint64_t sourceOffset, uint32_t count)
 {
   uint32_t countRead;
   return inStr->ReadSegments(WriteSegmentFun, this, count, &countRead);
 }
 
 void
 nsStreamLoader::ReleaseData()
--- a/netwerk/base/nsStreamTransportService.cpp
+++ b/netwerk/base/nsStreamTransportService.cpp
@@ -89,17 +89,17 @@ nsInputStreamTransport::OpenInputStream(
     nsresult rv;
     nsCOMPtr<nsIEventTarget> target =
             do_GetService(NS_STREAMTRANSPORTSERVICE_CONTRACTID, &rv);
     if (NS_FAILED(rv)) return rv;
 
     // XXX if the caller requests an unbuffered stream, then perhaps
     //     we'd want to simply return mSource; however, then we would
     //     not be reading mSource on a background thread.  is this ok?
- 
+
     bool nonblocking = !(flags & OPEN_BLOCKING);
 
     net_ResolveSegmentParams(segsize, segcount);
 
     nsCOMPtr<nsIAsyncOutputStream> pipeOut;
     rv = NS_NewPipe2(getter_AddRefs(mPipeIn),
                      getter_AddRefs(pipeOut),
                      nonblocking, true,
@@ -255,17 +255,17 @@ public:
     }
 
 private:
     virtual ~nsOutputStreamTransport()
     {
     }
 
     nsCOMPtr<nsIAsyncOutputStream>  mPipeOut;
- 
+
     // while the copy is active, these members may only be accessed from the
     // nsIOutputStream implementation.
     nsCOMPtr<nsITransportEventSink> mEventSink;
     nsCOMPtr<nsIOutputStream>       mSink;
     int64_t                         mOffset;
     int64_t                         mLimit;
     bool                            mCloseWhenDone;
     bool                            mFirstTime;
@@ -303,17 +303,17 @@ nsOutputStreamTransport::OpenOutputStrea
     nsresult rv;
     nsCOMPtr<nsIEventTarget> target =
             do_GetService(NS_STREAMTRANSPORTSERVICE_CONTRACTID, &rv);
     if (NS_FAILED(rv)) return rv;
 
     // XXX if the caller requests an unbuffered stream, then perhaps
     //     we'd want to simply return mSink; however, then we would
     //     not be writing to mSink on a background thread.  is this ok?
- 
+
     bool nonblocking = !(flags & OPEN_BLOCKING);
 
     net_ResolveSegmentParams(segsize, segcount);
 
     nsCOMPtr<nsIAsyncInputStream> pipeIn;
     rv = NS_NewPipe2(getter_AddRefs(pipeIn),
                      getter_AddRefs(mPipeOut),
                      true, nonblocking,
--- a/netwerk/base/nsSyncStreamListener.cpp
+++ b/netwerk/base/nsSyncStreamListener.cpp
@@ -80,17 +80,17 @@ nsSyncStreamListener::OnDataAvailable(ns
     // channel to be canceled, and as a result our OnStopRequest method
     // will be called immediately.  because of this we do not need to
     // set mStatus or mKeepWaiting here.
     if (NS_FAILED(rv))
         return rv;
 
     // we expect that all data will be written to the pipe because
     // the pipe was created to have "infinite" room.
-    NS_ASSERTION(bytesWritten == count, "did not write all data"); 
+    NS_ASSERTION(bytesWritten == count, "did not write all data");
 
     mKeepWaiting = false; // unblock Read
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsSyncStreamListener::OnStopRequest(nsIRequest  *request,
                                     nsISupports *context,
--- a/netwerk/base/nsTemporaryFileInputStream.cpp
+++ b/netwerk/base/nsTemporaryFileInputStream.cpp
@@ -20,17 +20,17 @@ NS_IMPL_ISUPPORTS(nsTemporaryFileInputSt
                   nsIIPCSerializableInputStream)
 
 nsTemporaryFileInputStream::nsTemporaryFileInputStream(FileDescOwner* aFileDescOwner, uint64_t aStartPos, uint64_t aEndPos)
   : mFileDescOwner(aFileDescOwner),
     mStartPos(aStartPos),
     mCurPos(aStartPos),
     mEndPos(aEndPos),
     mClosed(false)
-{ 
+{
   NS_ASSERTION(aStartPos <= aEndPos, "StartPos should less equal than EndPos!");
 }
 
 nsTemporaryFileInputStream::nsTemporaryFileInputStream()
   : mStartPos(0),
     mCurPos(0),
     mEndPos(0),
     mClosed(false)
--- a/netwerk/base/nsURLHelper.cpp
+++ b/netwerk/base/nsURLHelper.cpp
@@ -223,187 +223,187 @@ net_ParseFileURL(const nsACString &inURL
     return NS_OK;
 }
 
 //----------------------------------------------------------------------------
 // path manipulation functions
 //----------------------------------------------------------------------------
 
 // Replace all /./ with a / while resolving URLs
-// But only till #? 
-void 
+// But only till #?
+void
 net_CoalesceDirs(netCoalesceFlags flags, char* path)
 {
     /* Stolen from the old netlib's mkparse.c.
      *
      * modifies a url of the form   /foo/../foo1  ->  /foo1
      *                       and    /foo/./foo1   ->  /foo/foo1
      *                       and    /foo/foo1/..  ->  /foo/
      */
     char *fwdPtr = path;
     char *urlPtr = path;
     char *lastslash = path;
     uint32_t traversal = 0;
     uint32_t special_ftp_len = 0;
 
     /* Remember if this url is a special ftp one: */
-    if (flags & NET_COALESCE_DOUBLE_SLASH_IS_ROOT) 
+    if (flags & NET_COALESCE_DOUBLE_SLASH_IS_ROOT)
     {
-       /* some schemes (for example ftp) have the speciality that 
-          the path can begin // or /%2F to mark the root of the 
-          servers filesystem, a simple / only marks the root relative 
+       /* some schemes (for example ftp) have the speciality that
+          the path can begin // or /%2F to mark the root of the
+          servers filesystem, a simple / only marks the root relative
           to the user loging in. We remember the length of the marker */
         if (nsCRT::strncasecmp(path,"/%2F",4) == 0)
             special_ftp_len = 4;
         else if (nsCRT::strncmp(path,"//",2) == 0 )
-            special_ftp_len = 2; 
+            special_ftp_len = 2;
     }
 
     /* find the last slash before # or ? */
-    for(; (*fwdPtr != '\0') && 
-            (*fwdPtr != '?') && 
+    for(; (*fwdPtr != '\0') &&
+            (*fwdPtr != '?') &&
             (*fwdPtr != '#'); ++fwdPtr)
     {
     }
 
     /* found nothing, but go back one only */
     /* if there is something to go back to */
     if (fwdPtr != path && *fwdPtr == '\0')
     {
         --fwdPtr;
     }
 
     /* search the slash */
-    for(; (fwdPtr != path) && 
+    for(; (fwdPtr != path) &&
             (*fwdPtr != '/'); --fwdPtr)
     {
     }
     lastslash = fwdPtr;
     fwdPtr = path;
 
     /* replace all %2E or %2e with . in the path */
     /* but stop at lastchar if non null */
-    for(; (*fwdPtr != '\0') && 
-            (*fwdPtr != '?') && 
+    for(; (*fwdPtr != '\0') &&
+            (*fwdPtr != '?') &&
             (*fwdPtr != '#') &&
             (*lastslash == '\0' || fwdPtr != lastslash); ++fwdPtr)
     {
-        if (*fwdPtr == '%' && *(fwdPtr+1) == '2' && 
+        if (*fwdPtr == '%' && *(fwdPtr+1) == '2' &&
             (*(fwdPtr+2) == 'E' || *(fwdPtr+2) == 'e'))
         {
             *urlPtr++ = '.';
             ++fwdPtr;
             ++fwdPtr;
-        } 
-        else 
+        }
+        else
         {
             *urlPtr++ = *fwdPtr;
         }
     }
     // Copy remaining stuff past the #?;
     for (; *fwdPtr != '\0'; ++fwdPtr)
     {
         *urlPtr++ = *fwdPtr;
     }
-    *urlPtr = '\0';  // terminate the url 
+    *urlPtr = '\0';  // terminate the url
 
-    // start again, this time for real 
+    // start again, this time for real
     fwdPtr = path;
     urlPtr = path;
 
-    for(; (*fwdPtr != '\0') && 
-            (*fwdPtr != '?') && 
+    for(; (*fwdPtr != '\0') &&
+            (*fwdPtr != '?') &&
             (*fwdPtr != '#'); ++fwdPtr)
     {
         if (*fwdPtr == '/' && *(fwdPtr+1) == '.' && *(fwdPtr+2) == '/' )
         {
             // remove . followed by slash
             ++fwdPtr;
         }
-        else if(*fwdPtr == '/' && *(fwdPtr+1) == '.' && *(fwdPtr+2) == '.' && 
-                (*(fwdPtr+3) == '/' || 
-                    *(fwdPtr+3) == '\0' || // This will take care of 
+        else if(*fwdPtr == '/' && *(fwdPtr+1) == '.' && *(fwdPtr+2) == '.' &&
+                (*(fwdPtr+3) == '/' ||
+                    *(fwdPtr+3) == '\0' || // This will take care of
                     *(fwdPtr+3) == '?' ||  // something like foo/bar/..#sometag
                     *(fwdPtr+3) == '#'))
         {
-            // remove foo/.. 
+            // remove foo/..
             // reverse the urlPtr to the previous slash if possible
-            // if url does not allow relative root then drop .. above root 
-            // otherwise retain them in the path 
-            if(traversal > 0 || !(flags & 
+            // if url does not allow relative root then drop .. above root
+            // otherwise retain them in the path
+            if(traversal > 0 || !(flags &
                                   NET_COALESCE_ALLOW_RELATIVE_ROOT))
-            { 
+            {
                 if (urlPtr != path)
-                    urlPtr--; // we must be going back at least by one 
+                    urlPtr--; // we must be going back at least by one
                 for(;*urlPtr != '/' && urlPtr != path; urlPtr--)
-                    ;  // null body 
+                    ;  // null body
                 --traversal; // count back
                 // forward the fwdPtr past the ../
                 fwdPtr += 2;
                 // if we have reached the beginning of the path
                 // while searching for the previous / and we remember
                 // that it is an url that begins with /%2F then
-                // advance urlPtr again by 3 chars because /%2F already 
+                // advance urlPtr again by 3 chars because /%2F already
                 // marks the root of the path
-                if (urlPtr == path && special_ftp_len > 3) 
+                if (urlPtr == path && special_ftp_len > 3)
                 {
                     ++urlPtr;
                     ++urlPtr;
                     ++urlPtr;
                 }
-                // special case if we have reached the end 
+                // special case if we have reached the end
                 // to preserve the last /
                 if (*fwdPtr == '.' && *(fwdPtr+1) == '\0')
                     ++urlPtr;
-            } 
-            else 
+            }
+            else
             {
                 // there are to much /.. in this path, just copy them instead.
                 // forward the urlPtr past the /.. and copying it
 
                 // However if we remember it is an url that starts with
-                // /%2F and urlPtr just points at the "F" of "/%2F" then do 
+                // /%2F and urlPtr just points at the "F" of "/%2F" then do
                 // not overwrite it with the /, just copy .. and move forward
-                // urlPtr. 
+                // urlPtr.
                 if (special_ftp_len > 3 && urlPtr == path+special_ftp_len-1)
                     ++urlPtr;
-                else 
+                else
                     *urlPtr++ = *fwdPtr;
                 ++fwdPtr;
                 *urlPtr++ = *fwdPtr;
                 ++fwdPtr;
                 *urlPtr++ = *fwdPtr;
             }
         }
         else
         {
             // count the hierachie, but only if we do not have reached
-            // the root of some special urls with a special root marker 
+            // the root of some special urls with a special root marker
             if (*fwdPtr == '/' &&  *(fwdPtr+1) != '.' &&
                (special_ftp_len != 2 || *(fwdPtr+1) != '/'))
                 traversal++;
-            // copy the url incrementaly 
+            // copy the url incrementaly
             *urlPtr++ = *fwdPtr;
         }
     }
 
-    /* 
+    /*
      *  Now lets remove trailing . case
      *     /foo/foo1/.   ->  /foo/foo1/
      */
 
     if ((urlPtr > (path+1)) && (*(urlPtr-1) == '.') && (*(urlPtr-2) == '/'))
         urlPtr--;
 
     // Copy remaining stuff past the #?;
     for (; *fwdPtr != '\0'; ++fwdPtr)
     {
         *urlPtr++ = *fwdPtr;
     }
-    *urlPtr = '\0';  // terminate the url 
+    *urlPtr = '\0';  // terminate the url
 }
 
 nsresult
 net_ResolveRelativePath(const nsACString &relativePath,
                         const nsACString &basePath,
                         nsACString &result)
 {
     nsAutoCString name;
@@ -433,17 +433,17 @@ net_ResolveRelativePath(const nsACString
           case '/':
             // delimiter found
             if (name.EqualsLiteral("..")) {
                 // pop path
                 // If we already have the delim at end, then
                 //  skip over that when searching for next one to the left
                 int32_t offset = path.Length() - (needsDelim ? 1 : 2);
                 // First check for errors
-                if (offset < 0 ) 
+                if (offset < 0 )
                     return NS_ERROR_MALFORMED_URI;
                 int32_t pos = path.RFind("/", false, offset);
                 if (pos >= 0)
                     path.Truncate(pos + 1);
                 else
                     path.Truncate();
             }
             else if (name.IsEmpty() || name.EqualsLiteral(".")) {
@@ -742,17 +742,17 @@ net_FindStringEnd(const nsCString& flatS
                  flatStr.CharAt(stringStart) == stringDelim &&
                  (stringDelim == '"' || stringDelim == '\''),
                  "Invalid stringStart");
 
     const char set[] = { stringDelim, '\\', '\0' };
     do {
         // stringStart points to either the start quote or the last
         // escaped char (the char following a '\\')
-                
+
         // Write to searchStart here, so that when we get back to the
         // top of the loop right outside this one we search from the
         // right place.
         uint32_t stringEnd = flatStr.FindCharInSet(set, stringStart + 1);
         if (stringEnd == uint32_t(kNotFound))
             return flatStr.Length();
 
         if (flatStr.CharAt(stringEnd) == '\\') {
@@ -767,31 +767,31 @@ net_FindStringEnd(const nsCString& flatS
 
         return stringEnd;
 
     } while (true);
 
     NS_NOTREACHED("How did we get here?");
     return flatStr.Length();
 }
-                  
+
 
 static uint32_t
 net_FindMediaDelimiter(const nsCString& flatStr,
                        uint32_t searchStart,
                        char delimiter)
 {
     do {
         // searchStart points to the spot from which we should start looking
         // for the delimiter.
         const char delimStr[] = { delimiter, '"', '\0' };
         uint32_t curDelimPos = flatStr.FindCharInSet(delimStr, searchStart);
         if (curDelimPos == uint32_t(kNotFound))
             return flatStr.Length();
-            
+
         char ch = flatStr.CharAt(curDelimPos);
         if (ch == delimiter) {
             // Found delimiter
             return curDelimPos;
         }
 
         // We hit the start of a quoted string.  Look for its end.
         searchStart = net_FindStringEnd(flatStr, curDelimPos, ch);
@@ -908,17 +908,17 @@ net_ParseMediaType(const nsACString &aMe
             *aHadCharset = true;
             if (charsetNeedsQuotedStringUnescaping) {
                 // parameters using the "quoted-string" syntax need
                 // backslash-escapes to be unescaped (see RFC 2616 Section 2.2)
                 aContentCharset.Truncate();
                 for (const char *c = charset; c != charsetEnd; c++) {
                     if (*c == '\\' && c + 1 != charsetEnd) {
                         // eat escape
-                        c++;  
+                        c++;
                     }
                     aContentCharset.Append(*c);
                 }
             }
             else {
                 aContentCharset.Assign(charset, charsetEnd - charset);
             }
             if (typeHasCharset) {
@@ -966,41 +966,41 @@ net_ParseContentType(const nsACString &a
     //
     //   header-value = media-type *( LWS "," LWS media-type )
     //   media-type   = type "/" subtype *( LWS ";" LWS parameter )
     //   type         = token
     //   subtype      = token
     //   parameter    = attribute "=" value
     //   attribute    = token
     //   value        = token | quoted-string
-    //   
+    //
     //
     // Examples:
     //
     //   text/html
     //   text/html, text/html
     //   text/html,text/html; charset=ISO-8859-1
     //   text/html,text/html; charset="ISO-8859-1"
     //   text/html;charset=ISO-8859-1, text/html
     //   text/html;charset='ISO-8859-1', text/html
     //   application/octet-stream
     //
 
     *aHadCharset = false;
     const nsCString& flatStr = PromiseFlatCString(aHeaderStr);
-    
+
     // iterate over media-types.  Note that ',' characters can happen
     // inside quoted strings, so we need to watch out for that.
     uint32_t curTypeStart = 0;
     do {
         // curTypeStart points to the start of the current media-type.  We want
         // to look for its end.
         uint32_t curTypeEnd =
             net_FindMediaDelimiter(flatStr, curTypeStart, ',');
-        
+
         // At this point curTypeEnd points to the spot where the media-type
         // starting at curTypeEnd ends.  Time to parse that!
         net_ParseMediaType(Substring(flatStr, curTypeStart,
                                      curTypeEnd - curTypeStart),
                            aContentType, aContentCharset, curTypeStart,
                            aHadCharset, aCharsetStart, aCharsetEnd, false);
 
         // And let's move on to the next media-type
@@ -1060,17 +1060,17 @@ net_IsValidHostName(const nsACString& ho
     const char *end = host.EndReading();
     // Use explicit whitelists to select which characters we are
     // willing to send to lower-level DNS logic. This is more
     // self-documenting, and can also be slightly faster than the
     // blacklist approach, since DNS names are the common case, and
     // the commonest characters will tend to be near the start of
     // the list.
 
-    // Whitelist for DNS names (RFC 1035) with extra characters added 
+    // Whitelist for DNS names (RFC 1035) with extra characters added
     // for pragmatic reasons "$+_"
     // see https://bugzilla.mozilla.org/show_bug.cgi?id=355181#c2
     if (net_FindCharNotInSet(host.BeginReading(), end,
                              "abcdefghijklmnopqrstuvwxyz"
                              ".-0123456789"
                              "ABCDEFGHIJKLMNOPQRSTUVWXYZ$+_") == end)
         return true;
 
--- a/netwerk/base/nsURLHelper.h
+++ b/netwerk/base/nsURLHelper.h
@@ -39,17 +39,17 @@ void net_ShutdownURLHelper();
 void net_ShutdownURLHelperOSX();
 #endif
 
 /* access URL parsers */
 nsIURLParser * net_GetAuthURLParser();
 nsIURLParser * net_GetNoAuthURLParser();
 nsIURLParser * net_GetStdURLParser();
 
-/* convert between nsIFile and file:// URL spec 
+/* convert between nsIFile and file:// URL spec
  * net_GetURLSpecFromFile does an extra stat, so callers should
  * avoid it if possible in favor of net_GetURLSpecFromActualFile
  * and net_GetURLSpecFromDir */
 nsresult net_GetURLSpecFromFile(nsIFile *, nsACString &);
 nsresult net_GetURLSpecFromDir(nsIFile *, nsACString &);
 nsresult net_GetURLSpecFromActualFile(nsIFile *, nsACString &);
 nsresult net_GetFileFromURLSpec(const nsACString &, nsIFile **);
 
@@ -59,19 +59,19 @@ nsresult net_ParseFileURL(const nsACStri
                                       nsACString &outFileBaseName,
                                       nsACString &outFileExtension);
 
 /* handle .. in dirs while resolving URLs (path is UTF-8) */
 void net_CoalesceDirs(netCoalesceFlags flags, char* path);
 
 /**
  * Resolves a relative path string containing "." and ".."
- * with respect to a base path (assumed to already be resolved). 
+ * with respect to a base path (assumed to already be resolved).
  * For example, resolving "../../foo/./bar/../baz.html" w.r.t.
- * "/a/b/c/d/e/" yields "/a/b/c/foo/baz.html". Attempting to 
+ * "/a/b/c/d/e/" yields "/a/b/c/foo/baz.html". Attempting to
  * ascend above the base results in the NS_ERROR_MALFORMED_URI
  * exception. If basePath is null, it treats it as "/".
  *
  * @param relativePath  a relative URI
  * @param basePath      a base URI
  *
  * @return a new string, representing canonical uri
  */
@@ -118,17 +118,17 @@ void net_FilterURIString(const nsACStrin
 #if defined(XP_WIN)
 /**
  * On Win32 and OS/2 system's a back-slash in a file:// URL is equivalent to a
  * forward-slash.  This function maps any back-slashes to forward-slashes.
  *
  * @param aURL
  *        The URL string to normalize (UTF-8 encoded).  This can be a
  *        relative URL segment.
- * @param aResultBuf 
+ * @param aResultBuf
  *        The resulting string is appended to this string.  If the input URL
  *        is already normalized, then aResultBuf is unchanged.
  *
  * @returns false if aURL is already normalized.  Otherwise, returns true.
  */
 bool net_NormalizeFileURL(const nsACString &aURL,
                                         nsCString &aResultBuf);
 #endif
--- a/netwerk/base/nsURLHelperOSX.cpp
+++ b/netwerk/base/nsURLHelperOSX.cpp
@@ -15,52 +15,52 @@
 static nsTArray<nsCString> *gVolumeList = nullptr;
 
 static bool pathBeginsWithVolName(const nsACString& path, nsACString& firstPathComponent)
 {
   // Return whether the 1st path component in path (escaped) is equal to the name
   // of a mounted volume. Return the 1st path component (unescaped) in any case.
   // This needs to be done as quickly as possible, so we cache a list of volume names.
   // XXX Register an event handler to detect drives being mounted/unmounted?
-  
+
   if (!gVolumeList) {
     gVolumeList = new nsTArray<nsCString>;
     if (!gVolumeList) {
       return false; // out of memory
     }
   }
 
   // Cache a list of volume names
   if (!gVolumeList->Length()) {
     OSErr err;
     ItemCount volumeIndex = 1;
-    
+
     do {
       HFSUniStr255 volName;
       FSRef rootDirectory;
       err = ::FSGetVolumeInfo(0, volumeIndex, nullptr, kFSVolInfoNone, nullptr,
                               &volName, &rootDirectory);
       if (err == noErr) {
         NS_ConvertUTF16toUTF8 volNameStr(Substring((char16_t *)volName.unicode,
                                                    (char16_t *)volName.unicode + volName.length));
         gVolumeList->AppendElement(volNameStr);
         volumeIndex++;
       }
     } while (err == noErr);
   }
-  
+
   // Extract the first component of the path
   nsACString::const_iterator start;
   path.BeginReading(start);
   start.advance(1); // path begins with '/'
   nsACString::const_iterator directory_end;
   path.EndReading(directory_end);
   nsACString::const_iterator component_end(start);
   FindCharInReadable('/', component_end, directory_end);
-  
+
   nsAutoCString flatComponent((Substring(start, component_end)));
   NS_UnescapeURL(flatComponent);
   int32_t foundIndex = gVolumeList->IndexOf(flatComponent);
   firstPathComponent = flatComponent;
   return (foundIndex != -1);
 }
 
 void
@@ -103,41 +103,41 @@ static void SwapSlashColon(char *s)
 {
   while (*s) {
     if (*s == '/')
       *s = ':';
     else if (*s == ':')
       *s = '/';
     s++;
   }
-} 
+}
 
 nsresult
 net_GetURLSpecFromActualFile(nsIFile *aFile, nsACString &result)
 {
   // NOTE: This is identical to the implementation in nsURLHelperUnix.cpp
-  
+
   nsresult rv;
   nsAutoCString ePath;
 
   // construct URL spec from native file path
   rv = aFile->GetNativePath(ePath);
   if (NS_FAILED(rv))
     return rv;
 
   nsAutoCString escPath;
   NS_NAMED_LITERAL_CSTRING(prefix, "file://");
-      
+
   // Escape the path with the directory mask
   if (NS_EscapeURL(ePath.get(), ePath.Length(), esc_Directory+esc_Forced, escPath))
     escPath.Insert(prefix, 0);
   else
     escPath.Assign(prefix + ePath);
 
-  // esc_Directory does not escape the semicolons, so if a filename 
+  // esc_Directory does not escape the semicolons, so if a filename
   // contains semicolons we need to manually escape them.
   // This replacement should be removed in bug #473280
   escPath.ReplaceSubstring(";", "%3b");
 
   result = escPath;
   return NS_OK;
 }
 
@@ -148,34 +148,34 @@ net_GetFileFromURLSpec(const nsACString 
   // This matches it except for the HFS path handling.
 
   nsresult rv;
 
   nsCOMPtr<nsIFile> localFile;
   rv = NS_NewNativeLocalFile(EmptyCString(), true, getter_AddRefs(localFile));
   if (NS_FAILED(rv))
     return rv;
-  
+
   nsAutoCString directory, fileBaseName, fileExtension, path;
   bool bHFSPath = false;
 
   rv = net_ParseFileURL(aURL, directory, fileBaseName, fileExtension);
   if (NS_FAILED(rv))
     return rv;
 
   if (!directory.IsEmpty()) {
     NS_EscapeURL(directory, esc_Directory|esc_AlwaysCopy, path);
 
     // The canonical form of file URLs on OSX use POSIX paths:
     //   file:///path-name.
     // But, we still encounter file URLs that use HFS paths:
     //   file:///volume-name/path-name
     // Determine that here and normalize HFS paths to POSIX.
     nsAutoCString possibleVolName;
-    if (pathBeginsWithVolName(directory, possibleVolName)) {        
+    if (pathBeginsWithVolName(directory, possibleVolName)) {
       // Though we know it begins with a volume name, it could still
       // be a valid POSIX path if the boot drive is named "Mac HD"
       // and there is a directory "Mac HD" at its root. If such a
       // directory doesn't exist, we'll assume this is an HFS path.
       FSRef testRef;
       possibleVolName.Insert("/", 0);
       if (::FSPathMakeRef((UInt8*)possibleVolName.get(), &testRef, nullptr) != noErr)
         bHFSPath = true;
--- a/netwerk/base/nsURLHelperUnix.cpp
+++ b/netwerk/base/nsURLHelperUnix.cpp
@@ -5,17 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Unix-specific local file uri parsing */
 #include "nsURLHelper.h"
 #include "nsEscape.h"
 #include "nsIFile.h"
 #include "nsNativeCharsetUtils.h"
 
-nsresult 
+nsresult
 net_GetURLSpecFromActualFile(nsIFile *aFile, nsACString &result)
 {
     nsresult rv;
     nsAutoCString nativePath, ePath;
     nsAutoString path;
 
     rv = aFile->GetNativePath(nativePath);
     if (NS_FAILED(rv)) return rv;
@@ -24,27 +24,27 @@ net_GetURLSpecFromActualFile(nsIFile *aF
     NS_CopyNativeToUnicode(nativePath, path);
     NS_CopyUnicodeToNative(path, ePath);
 
     // Use UTF8 version if conversion was successful
     if (nativePath == ePath)
         CopyUTF16toUTF8(path, ePath);
     else
         ePath = nativePath;
-    
+
     nsAutoCString escPath;
     NS_NAMED_LITERAL_CSTRING(prefix, "file://");
-        
+
     // Escape the path with the directory mask
     if (NS_EscapeURL(ePath.get(), -1, esc_Directory+esc_Forced, escPath))
         escPath.Insert(prefix, 0);
     else
         escPath.Assign(prefix + ePath);
 
-    // esc_Directory does not escape the semicolons, so if a filename 
+    // esc_Directory does not escape the semicolons, so if a filename
     // contains semicolons we need to manually escape them.
     // This replacement should be removed in bug #473280
     escPath.ReplaceSubstring(";", "%3b");
     result = escPath;
     return NS_OK;
 }
 
 nsresult
@@ -54,17 +54,17 @@ net_GetFileFromURLSpec(const nsACString 
     // which is based on this.
 
     nsresult rv;
 
     nsCOMPtr<nsIFile> localFile;
     rv = NS_NewNativeLocalFile(EmptyCString(), true, getter_AddRefs(localFile));
     if (NS_FAILED(rv))
       return rv;
-    
+
     nsAutoCString directory, fileBaseName, fileExtension, path;
 
     rv = net_ParseFileURL(aURL, directory, fileBaseName, fileExtension);
     if (NS_FAILED(rv)) return rv;
 
     if (!directory.IsEmpty()) {
         rv = NS_EscapeURL(directory, esc_Directory|esc_AlwaysCopy, path,
                          mozilla::fallible);
@@ -79,34 +79,34 @@ net_GetFileFromURLSpec(const nsACString 
     }
     if (!fileExtension.IsEmpty()) {
         path += '.';
         rv = NS_EscapeURL(fileExtension, esc_FileExtension|esc_AlwaysCopy, path,
                           mozilla::fallible);
         if (NS_FAILED(rv))
           return rv;
     }
-    
+
     NS_UnescapeURL(path);
     if (path.Length() != strlen(path.get()))
         return NS_ERROR_FILE_INVALID_PATH;
 
     if (IsUTF8(path)) {
         // speed up the start-up where UTF-8 is the native charset
         // (e.g. on recent Linux distributions)
         if (NS_IsNativeUTF8())
             rv = localFile->InitWithNativePath(path);
         else
             rv = localFile->InitWithPath(NS_ConvertUTF8toUTF16(path));
-            // XXX In rare cases, a valid UTF-8 string can be valid as a native 
+            // XXX In rare cases, a valid UTF-8 string can be valid as a native
             // encoding (e.g. 0xC5 0x83 is valid both as UTF-8 and Windows-125x).
             // However, the chance is very low that a meaningful word in a legacy
             // encoding is valid as UTF-8.
     }
-    else 
+    else
         // if path is not in UTF-8, assume it is encoded in the native charset
         rv = localFile->InitWithNativePath(path);
 
     if (NS_FAILED(rv)) return rv;
 
     localFile.forget(result);
     return NS_OK;
 }
--- a/netwerk/base/nsURLHelperWin.cpp
+++ b/netwerk/base/nsURLHelperWin.cpp
@@ -10,21 +10,21 @@
 #include "nsIFile.h"
 #include <windows.h>
 
 nsresult
 net_GetURLSpecFromActualFile(nsIFile *aFile, nsACString &result)
 {
     nsresult rv;
     nsAutoString path;
-  
+
     // construct URL spec from file path
     rv = aFile->GetPath(path);
     if (NS_FAILED(rv)) return rv;
-  
+
     // Replace \ with / to convert to an url
     path.ReplaceChar(char16_t(0x5Cu), char16_t(0x2Fu));
 
     nsAutoCString escPath;
 
     // Windows Desktop paths begin with a drive letter, so need an 'extra'
     // slash at the begining
     // C:\Windows =>  file:///C:/Windows
@@ -32,17 +32,17 @@ net_GetURLSpecFromActualFile(nsIFile *aF
 
     // Escape the path with the directory mask
     NS_ConvertUTF16toUTF8 ePath(path);
     if (NS_EscapeURL(ePath.get(), -1, esc_Directory+esc_Forced, escPath))
         escPath.Insert(prefix, 0);
     else
         escPath.Assign(prefix + ePath);
 
-    // esc_Directory does not escape the semicolons, so if a filename 
+    // esc_Directory does not escape the semicolons, so if a filename
     // contains semicolons we need to manually escape them.
     // This replacement should be removed in bug #473280
     escPath.ReplaceSubstring(";", "%3b");
 
     result = escPath;
     return NS_OK;
 }
 
@@ -66,52 +66,52 @@ net_GetFileFromURLSpec(const nsACString 
 
     const nsACString *specPtr;
 
     nsAutoCString buf;
     if (net_NormalizeFileURL(aURL, buf))
         specPtr = &buf;
     else
         specPtr = &aURL;
-    
+
     nsAutoCString directory, fileBaseName, fileExtension;
-    
+
     rv = net_ParseFileURL(*specPtr, directory, fileBaseName, fileExtension);
     if (NS_FAILED(rv)) return rv;
 
     nsAutoCString path;
 
     if (!directory.IsEmpty()) {
         NS_EscapeURL(directory, esc_Directory|esc_AlwaysCopy, path);
         if (path.Length() > 2 && path.CharAt(2) == '|')
             path.SetCharAt(':', 2);
         path.ReplaceChar('/', '\\');
-    }    
+    }
     if (!fileBaseName.IsEmpty())
         NS_EscapeURL(fileBaseName, esc_FileBaseName|esc_AlwaysCopy, path);
     if (!fileExtension.IsEmpty()) {
         path += '.';
         NS_EscapeURL(fileExtension, esc_FileExtension|esc_AlwaysCopy, path);
     }
-    
+
     NS_UnescapeURL(path);
     if (path.Length() != strlen(path.get()))
         return NS_ERROR_FILE_INVALID_PATH;
 
     // remove leading '\'
     if (path.CharAt(0) == '\\')
         path.Cut(0, 1);
 
     if (IsUTF8(path))
         rv = localFile->InitWithPath(NS_ConvertUTF8toUTF16(path));
-        // XXX In rare cases, a valid UTF-8 string can be valid as a native 
+        // XXX In rare cases, a valid UTF-8 string can be valid as a native
         // encoding (e.g. 0xC5 0x83 is valid both as UTF-8 and Windows-125x).
         // However, the chance is very low that a meaningful word in a legacy
         // encoding is valid as UTF-8.
-    else 
+    else
         // if path is not in UTF-8, assume it is encoded in the native charset
         rv = localFile->InitWithNativePath(path);
 
     if (NS_FAILED(rv)) return rv;
 
     localFile.forget(result);
     return NS_OK;
 }
--- a/netwerk/base/nsURLParsers.cpp
+++ b/netwerk/base/nsURLParsers.cpp
@@ -132,17 +132,17 @@ nsBaseURLParser::ParseURL(const char *sp
             ParseAfterScheme(colon + 1, specLen - schemeLen,
                              authorityPos, authorityLen,
                              pathPos, pathLen);
             OFFSET_RESULT(authority, offset);
             OFFSET_RESULT(path, offset);
         }
     }
     else {
-        // 
+        //
         // spec = <authority-no-port-or-password>/<path>
         // spec = <path>
         //
         // or
         //
         // spec = <authority-no-port-or-password>/<path-with-colon>
         // spec = <path-with-colon>
         //
@@ -292,17 +292,17 @@ nsBaseURLParser::ParseFilePath(const cha
     const char *p;
     const char *end = filepath + filepathLen;
 
     // search backwards for filename
     for (p = end - 1; *p != '/' && p > filepath; --p)
         ;
     if (*p == '/') {
         // catch /.. and /.
-        if ((p+1 < end && *(p+1) == '.') && 
+        if ((p+1 < end && *(p+1) == '.') &&
            (p+2 == end || (*(p+2) == '.' && p+3 == end)))
             p = end - 1;
         // filepath = <directory><filename>.<extension>
         SET_RESULT(directory, 0, p - filepath + 1);
         ParseFileName(p + 1, end - (p + 1),
                       basenamePos, basenameLen,
                       extensionPos, extensionLen);
         OFFSET_RESULT(basename, p + 1 - filepath);
@@ -385,17 +385,17 @@ nsNoAuthURLParser::ParseAfterScheme(cons
                 // if the authority looks like a drive number then we
                 // really want to treat it as part of the path
                 // [a-zA-Z][:|]{/\}
                 // i.e one of:   c:   c:\foo  c:/foo  c|  c|\foo  c|/foo
                 if ((specLen > 3) && (spec[3] == ':' || spec[3] == '|') &&
                     nsCRT::IsAsciiAlpha(spec[2]) &&
                     ((specLen == 4) || (spec[4] == '/') || (spec[4] == '\\'))) {
                     pos = 1;
-                    break;  
+                    break;
                 }
                 // Ignore apparent authority; path is everything after it
                 for (p = spec + 2; p < spec + specLen; ++p) {
                     if (*p == '/' || *p == '?' || *p == '#')
                         break;
                 }
             }
             SET_RESULT(auth, 0, -1);
--- a/netwerk/base/nsURLParsers.h
+++ b/netwerk/base/nsURLParsers.h
@@ -110,15 +110,15 @@ public:
 //     http://www.foo.com/bar.html   (www.foo.com is authority)
 //     http:///www.foo.com/bar.html  (www.foo.com is part of file path)
 //----------------------------------------------------------------------------
 
 class nsStdURLParser : public nsAuthURLParser
 {
     virtual ~nsStdURLParser() {}
 
-public: 
+public:
     void ParseAfterScheme(const char *spec, int32_t specLen,
                           uint32_t *authPos, int32_t *authLen,
                           uint32_t *pathPos, int32_t *pathLen);
 };
 
 #endif // nsURLParsers_h__
--- a/netwerk/build/nsNetCID.h
+++ b/netwerk/build/nsNetCID.h
@@ -45,17 +45,17 @@
     0xe9b301c0,                                      \
     0xe0e4,                                          \
     0x11d3,                                          \
     {0xa1, 0xa8, 0x0, 0x50, 0x4, 0x1c, 0xaf, 0x44}   \
 }
 
 // service implementing nsIProxyAutoConfig.
 #define NS_PROXYAUTOCONFIG_CONTRACTID \
-    "@mozilla.org/network/proxy-auto-config;1" 
+    "@mozilla.org/network/proxy-auto-config;1"
 #define NS_PROXYAUTOCONFIG_CID                       \
 { /* 63ac8c66-1dd2-11b2-b070-84d00d3eaece */         \
     0x63ac8c66,                                      \
     0x1dd2,                                          \
     0x11b2,                                          \
     {0xb0, 0x70, 0x84, 0xd0, 0x0d, 0x3e, 0xae, 0xce} \
 }
 
@@ -835,17 +835,17 @@
     {0x85, 0x94, 0x5c, 0x4f, 0xf3, 0x00, 0x88, 0x8e} \
 }
 
 
 /******************************************************************************
  * netwerk/mime classes
  */
 
-// {1F4DBCF7-245C-4c8c-943D-8A1DA0495E8A} 
+// {1F4DBCF7-245C-4c8c-943D-8A1DA0495E8A}
 #define NS_MIMEHEADERPARAM_CID                         \
 {   0x1f4dbcf7,                                        \
     0x245c,                                            \
     0x4c8c,                                            \
     { 0x94, 0x3d, 0x8a, 0x1d, 0xa0, 0x49, 0x5e, 0x8a } \
 }
 
 #define NS_MIMEHEADERPARAM_CONTRACTID "@mozilla.org/network/mime-hdrparam;1"
--- a/netwerk/build/nsNetModule.cpp
+++ b/netwerk/build/nsNetModule.cpp
@@ -513,135 +513,135 @@ static const mozilla::Module::CategoryEn
 };
 
 #ifdef BUILD_BINHEX_DECODER
 typedef mozilla::net::nsBinHexDecoder nsBinHexDecoder;
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsBinHexDecoder)
 #endif
 
 static nsresult
-CreateNewStreamConvServiceFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
+CreateNewStreamConvServiceFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
 {
-    if (!aResult) {                                                  
-        return NS_ERROR_INVALID_POINTER;                             
+    if (!aResult) {
+        return NS_ERROR_INVALID_POINTER;
     }
-    if (aOuter) {                                                    
-        *aResult = nullptr;                                           
-        return NS_ERROR_NO_AGGREGATION;                              
-    }   
+    if (aOuter) {
+        *aResult = nullptr;
+        return NS_ERROR_NO_AGGREGATION;
+    }
     nsStreamConverterService* inst = nullptr;
     nsresult rv = NS_NewStreamConv(&inst);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-        return rv;                                                   
-    } 
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+        return rv;
+    }
     rv = inst->QueryInterface(aIID, aResult);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-    }                                                                
-    NS_RELEASE(inst);             /* get rid of extra refcnt */      
-    return rv;              
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+    }
+    NS_RELEASE(inst);             /* get rid of extra refcnt */
+    return rv;
 }
 
 #ifdef NECKO_PROTOCOL_ftp
 static nsresult
-CreateNewFTPDirListingConv(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
+CreateNewFTPDirListingConv(nsISupports* aOuter, REFNSIID aIID, void **aResult)
 {
-    if (!aResult) {                                                  
-        return NS_ERROR_INVALID_POINTER;                             
+    if (!aResult) {
+        return NS_ERROR_INVALID_POINTER;
     }
-    if (aOuter) {                                                    
-        *aResult = nullptr;                                           
-        return NS_ERROR_NO_AGGREGATION;                              
-    }   
+    if (aOuter) {
+        *aResult = nullptr;
+        return NS_ERROR_NO_AGGREGATION;
+    }
     nsFTPDirListingConv* inst = nullptr;
     nsresult rv = NS_NewFTPDirListingConv(&inst);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-        return rv;                                                   
-    } 
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+        return rv;
+    }
     rv = inst->QueryInterface(aIID, aResult);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-    }                                                                
-    NS_RELEASE(inst);             /* get rid of extra refcnt */      
-    return rv;              
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+    }
+    NS_RELEASE(inst);             /* get rid of extra refcnt */
+    return rv;
 }
 #endif
 
 static nsresult
-CreateNewMultiMixedConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
+CreateNewMultiMixedConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
 {
-    if (!aResult) {                                                  
-        return NS_ERROR_INVALID_POINTER;                             
+    if (!aResult) {
+        return NS_ERROR_INVALID_POINTER;
     }
-    if (aOuter) {                                                    
-        *aResult = nullptr;                                           
-        return NS_ERROR_NO_AGGREGATION;                              
-    }   
+    if (aOuter) {
+        *aResult = nullptr;
+        return NS_ERROR_NO_AGGREGATION;
+    }
     nsMultiMixedConv* inst = nullptr;
     nsresult rv = NS_NewMultiMixedConv(&inst);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-        return rv;                                                   
-    } 
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+        return rv;
+    }
     rv = inst->QueryInterface(aIID, aResult);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-    }                                                                
-    NS_RELEASE(inst);             /* get rid of extra refcnt */      
-    return rv;              
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+    }
+    NS_RELEASE(inst);             /* get rid of extra refcnt */
+    return rv;
 }
 
 static nsresult
-CreateNewTXTToHTMLConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult) 
+CreateNewTXTToHTMLConvFactory(nsISupports* aOuter, REFNSIID aIID, void **aResult)
 {
-    if (!aResult) {                                                  
-        return NS_ERROR_INVALID_POINTER;                             
+    if (!aResult) {
+        return NS_ERROR_INVALID_POINTER;
     }
-    if (aOuter) {                                                    
-        *aResult = nullptr;                                           
-        return NS_ERROR_NO_AGGREGATION;                              
-    }   
+    if (aOuter) {
+        *aResult = nullptr;
+        return NS_ERROR_NO_AGGREGATION;
+    }
     mozTXTToHTMLConv* inst = nullptr;
     nsresult rv = MOZ_NewTXTToHTMLConv(&inst);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-        return rv;                                                   
-    } 
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+        return rv;
+    }
     rv = inst->QueryInterface(aIID, aResult);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-    }                                                                
-    NS_RELEASE(inst);             /* get rid of extra refcnt */      
-    return rv;              
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+    }
+    NS_RELEASE(inst);             /* get rid of extra refcnt */
+    return rv;
 }
 
 static nsresult
-CreateNewHTTPCompressConvFactory (nsISupports* aOuter, REFNSIID aIID, void **aResult) 
+CreateNewHTTPCompressConvFactory (nsISupports* aOuter, REFNSIID aIID, void **aResult)
 {
-    if (!aResult) {                                                  
-        return NS_ERROR_INVALID_POINTER;                             
+    if (!aResult) {
+        return NS_ERROR_INVALID_POINTER;
     }
-    if (aOuter) {                                                    
-        *aResult = nullptr;                                           
-        return NS_ERROR_NO_AGGREGATION;                              
-    }   
+    if (aOuter) {
+        *aResult = nullptr;
+        return NS_ERROR_NO_AGGREGATION;
+    }
     mozilla::net::nsHTTPCompressConv* inst = nullptr;
     nsresult rv = NS_NewHTTPCompressConv (&inst);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-        return rv;                                                   
-    } 
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+        return rv;
+    }
     rv = inst->QueryInterface(aIID, aResult);
-    if (NS_FAILED(rv)) {                                             
-        *aResult = nullptr;                                           
-    }                                                                
-    NS_RELEASE(inst);             /* get rid of extra refcnt */      
-    return rv;              
+    if (NS_FAILED(rv)) {
+        *aResult = nullptr;
+    }
+    NS_RELEASE(inst);             /* get rid of extra refcnt */
+    return rv;
 }
 
 static nsresult
 CreateNewUnknownDecoderFactory(nsISupports *aOuter, REFNSIID aIID, void **aResult)
 {
   nsresult rv;
 
   if (!aResult) {
@@ -649,17 +649,17 @@ CreateNewUnknownDecoderFactory(nsISuppor
   }
   *aResult = nullptr;
 
   if (aOuter) {
     return NS_ERROR_NO_AGGREGATION;
   }
 
   nsUnknownDecoder *inst;
-  
+
   inst = new nsUnknownDecoder();
   if (!inst) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
   NS_ADDREF(inst);
   rv = inst->QueryInterface(aIID, aResult);
   NS_RELEASE(inst);
 
@@ -706,17 +706,17 @@ static void nsNetShutdown()
     // Release the url parser that the stdurl is holding.
     nsStandardURL::ShutdownGlobalObjects();
 
     // Release global state used by the URL helper module.
     net_ShutdownURLHelper();
 #ifdef XP_MACOSX
     net_ShutdownURLHelperOSX();
 #endif
-    
+
     // Release DNS service reference.
     nsDNSPrefetch::Shutdown();
 
 #ifdef NECKO_PROTOCOL_websocket
     // Release the Websocket Admission Manager
     mozilla::net::WebSocketChannel::Shutdown();
 #endif // NECKO_PROTOCOL_websocket
 
--- a/netwerk/cache/nsCache.cpp
+++ b/netwerk/cache/nsCache.cpp
@@ -51,23 +51,23 @@ PRTimeFromSeconds(uint32_t seconds)
 nsresult
 ClientIDFromCacheKey(const nsACString&  key, char ** result)
 {
     nsresult  rv = NS_OK;
     *result = nullptr;
 
     nsReadingIterator<char> colon;
     key.BeginReading(colon);
-        
+
     nsReadingIterator<char> start;
     key.BeginReading(start);
-        
+
     nsReadingIterator<char> end;
     key.EndReading(end);
-        
+
     if (FindCharInReadable(':', colon, end)) {
         *result = ToNewCString( Substring(start, colon));
         if (!*result) rv = NS_ERROR_OUT_OF_MEMORY;
     } else {
         NS_ASSERTION(false, "FindCharInRead failed to find ':'");
         rv = NS_ERROR_UNEXPECTED;
     }
     return rv;
@@ -76,20 +76,20 @@ ClientIDFromCacheKey(const nsACString&  
 
 nsresult
 ClientKeyFromCacheKey(const nsCString& key, nsACString &result)
 {
     nsresult  rv = NS_OK;
 
     nsReadingIterator<char> start;
     key.BeginReading(start);
-        
+
     nsReadingIterator<char> end;
     key.EndReading(end);
-        
+
     if (FindCharInReadable(':', start, end)) {
         ++start;  // advance past clientID ':' delimiter
         result.Assign(Substring(start, end));
     } else {
         NS_ASSERTION(false, "FindCharInRead failed to find ':'");
         rv = NS_ERROR_UNEXPECTED;
         result.Truncate(0);
     }
--- a/netwerk/cache/nsCacheEntry.cpp
+++ b/netwerk/cache/nsCacheEntry.cpp
@@ -45,17 +45,17 @@ nsCacheEntry::nsCacheEntry(const nsACStr
 
     MarkPublic();
 }
 
 
 nsCacheEntry::~nsCacheEntry()
 {
     MOZ_COUNT_DTOR(nsCacheEntry);
-    
+
     if (mData)
         nsCacheService::ReleaseObject_Locked(mData, mEventTarget);
 }
 
 
 nsresult
 nsCacheEntry::Create( const char *          key,
                       bool                  streamBased,
@@ -356,17 +356,17 @@ nsCacheEntryInfo::GetDataSize(uint32_t *
 }
 
 
 NS_IMETHODIMP
 nsCacheEntryInfo::IsStreamBased(bool * result)
 {
     NS_ENSURE_ARG_POINTER(result);
     if (!mCacheEntry)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     *result = mCacheEntry->IsStreamData();
     return NS_OK;
 }
 
 
 /******************************************************************************
  *  nsCacheEntryHashTable
  *****************************************************************************/
--- a/netwerk/cache/nsCacheEntry.h
+++ b/netwerk/cache/nsCacheEntry.h
@@ -38,33 +38,33 @@ public:
     ~nsCacheEntry();
 
 
     static nsresult  Create( const char *          key,
                              bool                  streamBased,
                              nsCacheStoragePolicy  storagePolicy,
                              nsCacheDevice *       device,
                              nsCacheEntry **       result);
-                                      
+
     nsCString *  Key()  { return &mKey; }
 
     int32_t  FetchCount()                              { return mFetchCount; }
     void     SetFetchCount( int32_t   count)           { mFetchCount = count; }
     void     Fetched();
 
     uint32_t LastFetched()                             { return mLastFetched; }
     void     SetLastFetched( uint32_t  lastFetched)    { mLastFetched = lastFetched; }
 
     uint32_t LastModified()                            { return mLastModified; }
     void     SetLastModified( uint32_t lastModified)   { mLastModified = lastModified; }
 
     uint32_t ExpirationTime()                     { return mExpirationTime; }
     void     SetExpirationTime( uint32_t expires) { mExpirationTime = expires; }
 
-    uint32_t Size()                               
+    uint32_t Size()
         { return mDataSize + mMetaData.Size() + mKey.Length() ; }
 
     nsCacheDevice * CacheDevice()                            { return mCacheDevice; }
     void            SetCacheDevice( nsCacheDevice * device)  { mCacheDevice = device; }
     void            SetCustomCacheDevice( nsCacheDevice * device )
                                                              { mCustomDevice = device; }
     nsCacheDevice * CustomCacheDevice()                      { return mCustomDevice; }
     const char *    GetDeviceID();
@@ -77,27 +77,27 @@ public:
 
     int64_t  PredictedDataSize()                  { return mPredictedDataSize; }
     void     SetPredictedDataSize(int64_t size)   { mPredictedDataSize = size; }
 
     uint32_t DataSize()                           { return mDataSize; }
     void     SetDataSize( uint32_t  size)         { mDataSize = size; }
 
     void     TouchData();
-    
+
     /**
      * Meta data accessors
      */
     const char * GetMetaDataElement( const char *  key) { return mMetaData.GetElement(key); }
     nsresult     SetMetaDataElement( const char *  key,
                                      const char *  value) { return mMetaData.SetElement(key, value); }
     nsresult VisitMetaDataElements( nsICacheMetaDataVisitor * visitor) { return mMetaData.VisitElements(visitor); }
     nsresult FlattenMetaData(char * buffer, uint32_t bufSize) { return mMetaData.FlattenMetaData(buffer, bufSize); }
     nsresult UnflattenMetaData(const char * buffer, uint32_t bufSize) { return mMetaData.UnflattenMetaData(buffer, bufSize); }
-    uint32_t MetaDataSize() { return mMetaData.Size(); }  
+    uint32_t MetaDataSize() { return mMetaData.Size(); }
 
     void     TouchMetaData();
 
 
     /**
      * Security Info accessors
      */
     nsISupports* SecurityInfo() { return mSecurityInfo; }
@@ -115,17 +115,17 @@ public:
         eMetaDataDirtyMask   = 0x00000800,
         eStreamDataMask      = 0x00001000,
         eActiveMask          = 0x00002000,
         eInitializedMask     = 0x00004000,
         eValidMask           = 0x00008000,
         eBindingMask         = 0x00010000,
         ePrivateMask         = 0x00020000
     };
-    
+
     void MarkBinding()         { mFlags |=  eBindingMask; }
     void ClearBinding()        { mFlags &= ~eBindingMask; }
     bool IsBinding()         { return (mFlags & eBindingMask) != 0; }
 
     void MarkEntryDirty()      { mFlags |=  eEntryDirtyMask; }
     void MarkEntryClean()      { mFlags &= ~eEntryDirtyMask; }
     void MarkDataDirty()       { mFlags |=  eDataDirtyMask; }
     void MarkDataClean()       { mFlags &= ~eDataDirtyMask; }
@@ -216,17 +216,17 @@ private:
     uint32_t                mLastModified;   // 4
     uint32_t                mLastValidated;  // 4
     uint32_t                mExpirationTime; // 4
     uint32_t                mFlags;          // 4
     int64_t                 mPredictedDataSize;  // Size given by ContentLength.
     uint32_t                mDataSize;       // 4
     nsCacheDevice *         mCacheDevice;    // 4
     nsCacheDevice *         mCustomDevice;   // 4
-    nsCOMPtr<nsISupports>   mSecurityInfo;   // 
+    nsCOMPtr<nsISupports>   mSecurityInfo;   //
     nsISupports *           mData;           // strong ref
     nsCOMPtr<nsIEventTarget> mEventTarget;
     nsCacheMetaData         mMetaData;       // 4
     PRCList                 mRequestQ;       // 8
     PRCList                 mDescriptorQ;    // 8
 };
 
 
--- a/netwerk/cache/nsCacheEntryDescriptor.cpp
+++ b/netwerk/cache/nsCacheEntryDescriptor.cpp
@@ -302,17 +302,17 @@ nsCacheEntryDescriptor::SetDataSize(uint
     if (NS_SUCCEEDED(rv)) {
         // XXX review for signed/unsigned math errors
         uint32_t  newDataSize = mCacheEntry->DataSize() + deltaSize;
         mCacheEntry->SetDataSize(newDataSize);
         mCacheEntry->TouchData();
     } else {
         NS_WARNING("failed SetDataSize() on memory cache object!");
     }
-    
+
     return rv;
 }
 
 
 NS_IMETHODIMP
 nsCacheEntryDescriptor::OpenInputStream(uint32_t offset, nsIInputStream ** result)
 {
     NS_ENSURE_ARG_POINTER(result);
@@ -422,42 +422,42 @@ nsCacheEntryDescriptor::GetAccessGranted
 
 
 NS_IMETHODIMP
 nsCacheEntryDescriptor::GetStoragePolicy(nsCacheStoragePolicy *result)
 {
     NS_ENSURE_ARG_POINTER(result);
     nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHEENTRYDESCRIPTOR_GETSTORAGEPOLICY));
     if (!mCacheEntry)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     *result = mCacheEntry->StoragePolicy();
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
 nsCacheEntryDescriptor::SetStoragePolicy(nsCacheStoragePolicy policy)
 {
     nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHEENTRYDESCRIPTOR_SETSTORAGEPOLICY));
     if (!mCacheEntry)  return NS_ERROR_NOT_AVAILABLE;
     // XXX validate policy against session?
-    
+
     bool        storageEnabled = false;
     storageEnabled = nsCacheService::IsStorageEnabledForPolicy_Locked(policy);
     if (!storageEnabled)    return NS_ERROR_FAILURE;
 
     // Don't change the storage policy of entries we can't write
     if (!(mAccessGranted & nsICache::ACCESS_WRITE))
         return NS_ERROR_NOT_AVAILABLE;
-    
+
     // Don't allow a cache entry to move from memory-only to anything else
     if (mCacheEntry->StoragePolicy() == nsICache::STORE_IN_MEMORY &&
         policy != nsICache::STORE_IN_MEMORY)
         return NS_ERROR_NOT_AVAILABLE;
-        
+
     mCacheEntry->SetStoragePolicy(policy);
     mCacheEntry->MarkEntryDirty();
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
 nsCacheEntryDescriptor::GetFile(nsIFile ** result)
@@ -636,17 +636,17 @@ nsCacheEntryDescriptor::SetMetaDataEleme
         mCacheEntry->TouchMetaData();
     return rv;
 }
 
 
 NS_IMETHODIMP
 nsCacheEntryDescriptor::VisitMetaData(nsICacheMetaDataVisitor * visitor)
 {
-    nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHEENTRYDESCRIPTOR_VISITMETADATA)); 
+    nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHEENTRYDESCRIPTOR_VISITMETADATA));
     // XXX check callers, we're calling out of module
     NS_ENSURE_ARG_POINTER(visitor);
     if (!mCacheEntry)  return NS_ERROR_NOT_AVAILABLE;
 
     return mCacheEntry->VisitMetaDataElements(visitor);
 }
 
 
@@ -893,18 +893,18 @@ nsCacheEntryDescriptor::nsDecompressInpu
 }
 
 NS_INTERFACE_MAP_BEGIN(nsCacheEntryDescriptor::nsDecompressInputStreamWrapper)
   NS_INTERFACE_MAP_ENTRY(nsIInputStream)
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END_THREADSAFE
 
 NS_IMETHODIMP nsCacheEntryDescriptor::
-nsDecompressInputStreamWrapper::Read(char *    buf, 
-                                     uint32_t  count, 
+nsDecompressInputStreamWrapper::Read(char *    buf,
+                                     uint32_t  count,
                                      uint32_t *countRead)
 {
     mozilla::MutexAutoLock lock(mLock);
 
     int zerr = Z_OK;
     nsresult rv = NS_OK;
 
     if (!mStreamInitialized) {
@@ -935,33 +935,33 @@ nsDecompressInputStreamWrapper::Read(cha
             mReadBufferLen = 0;
             return NS_ERROR_OUT_OF_MEMORY;
         }
     }
 
     // read and inflate data until the output buffer is full, or
     // there is no more data to read
     while (NS_SUCCEEDED(rv) &&
-           zerr == Z_OK && 
+           zerr == Z_OK &&
            mZstream.avail_out > 0 &&
            count > 0) {
         if (mZstream.avail_in == 0) {
             rv = nsInputStreamWrapper::Read_Locked((char*)mReadBuffer,
                                                    mReadBufferLen,
                                                    &mZstream.avail_in);
             if (NS_FAILED(rv) || !mZstream.avail_in) {
                 break;
             }
             mZstream.next_in = mReadBuffer;
         }
         zerr = inflate(&mZstream, Z_NO_FLUSH);
         if (zerr == Z_STREAM_END) {
             // The compressed data may have been stored in multiple
-            // chunks/streams. To allow for this case, re-initialize 
-            // the inflate stream and continue decompressing from 
+            // chunks/streams. To allow for this case, re-initialize
+            // the inflate stream and continue decompressing from
             // the next byte.
             Bytef * saveNextIn = mZstream.next_in;
             unsigned int saveAvailIn = mZstream.avail_in;
             Bytef * saveNextOut = mZstream.next_out;
             unsigned int saveAvailOut = mZstream.avail_out;
             inflateReset(&mZstream);
             mZstream.next_in = saveNextIn;
             mZstream.avail_in = saveAvailIn;
--- a/netwerk/cache/nsCacheEntryDescriptor.h
+++ b/netwerk/cache/nsCacheEntryDescriptor.h
@@ -27,22 +27,22 @@ public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSICACHEENTRYDESCRIPTOR
     NS_DECL_NSICACHEENTRYINFO
 
     friend class nsAsyncDoomEvent;
     friend class nsCacheService;
 
     nsCacheEntryDescriptor(nsCacheEntry * entry, nsCacheAccessMode  mode);
-    
+
     /**
      * utility method to attempt changing data size of associated entry
      */
     nsresult  RequestDataSizeChange(int32_t deltaSize);
-    
+
     /**
      * methods callbacks for nsCacheService
      */
     nsCacheEntry * CacheEntry(void)      { return mCacheEntry; }
     bool           ClearCacheEntry(void)
     {
       NS_ASSERTION(mInputWrappers.IsEmpty(), "Bad state");
       NS_ASSERTION(!mOutputWrapper, "Bad state");
@@ -193,31 +193,31 @@ private:
          uint32_t mWriteBufferLen;
          z_stream mZstream;
          bool mStreamInitialized;
          bool mStreamEnded;
          uint32_t mUncompressedCount;
      public:
          NS_DECL_ISUPPORTS_INHERITED
 
-         nsCompressOutputStreamWrapper(nsCacheEntryDescriptor * desc, 
+         nsCompressOutputStreamWrapper(nsCacheEntryDescriptor * desc,
                                        uint32_t off)
           : nsOutputStreamWrapper(desc, off)
           , mWriteBuffer(0)
           , mWriteBufferLen(0)
           , mStreamInitialized(false)
           , mStreamEnded(false)
           , mUncompressedCount(0)
          {
          }
          NS_IMETHOD Write(const char* buf, uint32_t count, uint32_t * result) override;
          NS_IMETHOD Close() override;
      private:
          virtual ~nsCompressOutputStreamWrapper()
-         { 
+         {
              Close();
          }
          nsresult InitZstream();
          nsresult WriteBuffer();
      };
 
  private:
      /**
--- a/netwerk/cache/nsCacheMetaData.cpp
+++ b/netwerk/cache/nsCacheMetaData.cpp
@@ -102,17 +102,17 @@ nsCacheMetaData::UnflattenMetaData(const
         if (data[size-1] != '\0') {
             NS_ERROR("Cache MetaData is not null terminated");
             return NS_ERROR_ILLEGAL_VALUE;
         }
         // Check that there are an even number of zero bytes
         // to match the pattern { key \0 value \0 }
         bool odd = false;
         for (uint32_t i = 0; i < size; i++) {
-            if (data[i] == '\0') 
+            if (data[i] == '\0')
                 odd = !odd;
         }
         if (odd) {
             NS_ERROR("Cache MetaData is malformed");
             return NS_ERROR_ILLEGAL_VALUE;
         }
 
         nsresult rv = EnsureBuffer(size);
@@ -154,9 +154,9 @@ nsCacheMetaData::EnsureBuffer(uint32_t b
         char * buf = (char *)realloc(mBuffer, bufSize);
         if (!buf) {
             return NS_ERROR_OUT_OF_MEMORY;
         }
         mBuffer = buf;
         mBufferSize = bufSize;
     }
     return NS_OK;
-}        
+}
--- a/netwerk/cache/nsCacheMetaData.h
+++ b/netwerk/cache/nsCacheMetaData.h
@@ -12,17 +12,17 @@
 
 class nsICacheMetaDataVisitor;
 
 class nsCacheMetaData {
 public:
     nsCacheMetaData() : mBuffer(nullptr), mBufferSize(0), mMetaSize(0) { }
 
     ~nsCacheMetaData() {
-        mBufferSize = mMetaSize = 0;  
+        mBufferSize = mMetaSize = 0;
         free(mBuffer);
         mBuffer = nullptr;
     }
 
     const char *  GetElement(const char * key);
 
     nsresult      SetElement(const char * key, const char * value);
 
--- a/netwerk/cache/nsCacheRequest.h
+++ b/netwerk/cache/nsCacheRequest.h
@@ -46,26 +46,26 @@ private:
         SetStoragePolicy(session->StoragePolicy());
         if (session->IsStreamBased())             MarkStreamBased();
         if (session->WillDoomEntriesIfExpired())  MarkDoomEntriesIfExpired();
         if (session->IsPrivate())                 MarkPrivate();
         if (blockingMode == nsICache::BLOCKING)    MarkBlockingMode();
         MarkWaitingForValidation();
         NS_IF_ADDREF(mListener);
     }
-    
+
     ~nsCacheRequest()
     {
         MOZ_COUNT_DTOR(nsCacheRequest);
         NS_ASSERTION(PR_CLIST_IS_EMPTY(this), "request still on a list");
 
         if (mListener)
             nsCacheService::ReleaseObject_Locked(mListener, mEventTarget);
     }
-    
+
     /**
      * Simple Accessors
      */
     enum CacheRequestInfo {
         eStoragePolicyMask         = 0x000000FF,
         eStreamBasedMask           = 0x00000100,
         ePrivateMask               = 0x00000200,
         eDoomEntriesIfExpiredMask  = 0x00001000,
@@ -87,17 +87,17 @@ private:
     }
 
     void MarkStreamBased()      { mInfo |=  eStreamBasedMask; }
     bool IsStreamBased()      { return (mInfo & eStreamBasedMask) != 0; }
 
 
     void   MarkDoomEntriesIfExpired()   { mInfo |=  eDoomEntriesIfExpiredMask; }
     bool WillDoomEntriesIfExpired()   { return (0 != (mInfo & eDoomEntriesIfExpiredMask)); }
-    
+
     void   MarkBlockingMode()           { mInfo |= eBlockingModeMask; }
     bool IsBlocking()                 { return (0 != (mInfo & eBlockingModeMask)); }
     bool IsNonBlocking()              { return !(mInfo & eBlockingModeMask); }
 
     void SetStoragePolicy(nsCacheStoragePolicy policy)
     {
         NS_ASSERTION(policy <= 0xFF, "too many bits in nsCacheStoragePolicy");
         mInfo &= ~eStoragePolicyMask;  // clear storage policy bits
@@ -128,17 +128,17 @@ private:
             return NS_OK;                // early exit;
         }
         {
             MutexAutoLock lock(mLock);
             while (WaitingForValidation()) {
                 mCondVar.Wait();
             }
             MarkWaitingForValidation();  // set up for next time
-        }       
+        }
         return NS_OK;
     }
 
     void WakeUp(void) {
         DoneWaitingForValidation();
         MutexAutoLock lock(mLock);
         mCondVar.Notify();
     }
--- a/netwerk/cache/nsCacheService.cpp
+++ b/netwerk/cache/nsCacheService.cpp
@@ -73,26 +73,26 @@ using namespace mozilla::net;
 #define MEMORY_CACHE_MAX_ENTRY_SIZE_PREF "browser.cache.memory.max_entry_size"
 
 #define CACHE_COMPRESSION_LEVEL_PREF "browser.cache.compression_level"
 #define CACHE_COMPRESSION_LEVEL     1
 
 #define SANITIZE_ON_SHUTDOWN_PREF   "privacy.sanitize.sanitizeOnShutdown"
 #define CLEAR_ON_SHUTDOWN_PREF      "privacy.clearOnShutdown.cache"
 
-static const char * observerList[] = { 
+static const char * observerList[] = {
     "profile-before-change",
     "profile-do-change",
     NS_XPCOM_SHUTDOWN_OBSERVER_ID,
     "last-pb-context-exited",
     "suspend_process_notification",
     "resume_process_notification"
 };
 
-static const char * prefList[] = { 
+static const char * prefList[] = {
     DISK_CACHE_ENABLE_PREF,
     DISK_CACHE_SMART_SIZE_ENABLED_PREF,
     DISK_CACHE_CAPACITY_PREF,
     DISK_CACHE_DIR_PREF,
     DISK_CACHE_MAX_ENTRY_SIZE_PREF,
     DISK_CACHE_USE_OLD_MAX_SMART_SIZE_PREF,
     OFFLINE_CACHE_ENABLE_PREF,
     OFFLINE_CACHE_CAPACITY_PREF,
@@ -137,64 +137,64 @@ public:
         , mMemoryCacheEnabled(true)
         , mMemoryCacheCapacity(-1)
         , mMemoryCacheMaxEntrySize(-1) // -1 means "no limit"
         , mCacheCompressionLevel(CACHE_COMPRESSION_LEVEL)
         , mSanitizeOnShutdown(false)
         , mClearCacheOnShutdown(false)
     {
     }
-    
+
     nsresult        Install();
     void            Remove();
     nsresult        ReadPrefs(nsIPrefBranch* branch);
-    
+
     bool            DiskCacheEnabled();
     int32_t         DiskCacheCapacity()         { return mDiskCacheCapacity; }
     void            SetDiskCacheCapacity(int32_t);
     int32_t         DiskCacheMaxEntrySize()     { return mDiskCacheMaxEntrySize; }
     nsIFile *       DiskCacheParentDirectory()  { return mDiskCacheParentDirectory; }
     bool            SmartSizeEnabled()          { return mSmartSizeEnabled; }
 
     bool            ShouldUseOldMaxSmartSize()        { return mShouldUseOldMaxSmartSize; }
     void            SetUseNewMaxSmartSize(bool useNew)     { mShouldUseOldMaxSmartSize = !useNew; }
 
     bool            OfflineCacheEnabled();
     int32_t         OfflineCacheCapacity()         { return mOfflineCacheCapacity; }
     nsIFile *       OfflineCacheParentDirectory()  { return mOfflineCacheParentDirectory; }
-    
+
     bool            MemoryCacheEnabled();
     int32_t         MemoryCacheCapacity();
     int32_t         MemoryCacheMaxEntrySize()     { return mMemoryCacheMaxEntrySize; }
 
     int32_t         CacheCompressionLevel();
 
     bool            SanitizeAtShutdown() { return mSanitizeOnShutdown && mClearCacheOnShutdown; }
 
     static uint32_t GetSmartCacheSize(const nsAString& cachePath,
                                       uint32_t currentSize,
                                       bool shouldUseOldMaxSmartSize);
 
     bool                    PermittedToSmartSize(nsIPrefBranch*, bool firstRun);
 
 private:
     bool                    mHaveProfile;
-    
+
     bool                    mDiskCacheEnabled;
     int32_t                 mDiskCacheCapacity; // in kilobytes
     int32_t                 mDiskCacheMaxEntrySize; // in kilobytes
     nsCOMPtr<nsIFile>       mDiskCacheParentDirectory;
     bool                    mSmartSizeEnabled;
 
     bool                    mShouldUseOldMaxSmartSize;
 
     bool                    mOfflineCacheEnabled;
     int32_t                 mOfflineCacheCapacity; // in kilobytes
     nsCOMPtr<nsIFile>       mOfflineCacheParentDirectory;
-    
+
     bool                    mMemoryCacheEnabled;
     int32_t                 mMemoryCacheCapacity; // in kilobytes
     int32_t                 mMemoryCacheMaxEntrySize; // in kilobytes
 
     int32_t                 mCacheCompressionLevel;
 
     bool                    mSanitizeOnShutdown;
     bool                    mClearCacheOnShutdown;
@@ -218,17 +218,17 @@ public:
         return NS_OK;
     }
 };
 
 NS_IMPL_ISUPPORTS(nsSetDiskSmartSizeCallback, nsITimerCallback)
 
 // Runnable sent to main thread after the cache IO thread calculates available
 // disk space, so that there is no race in setting mDiskCacheCapacity.
-class nsSetSmartSizeEvent: public Runnable 
+class nsSetSmartSizeEvent: public Runnable
 {
 public:
   explicit nsSetSmartSizeEvent(int32_t smartSize)
     : mozilla::Runnable("nsSetSmartSizeEvent")
     , mSmartSize(smartSize)
   {
   }
 
@@ -313,24 +313,24 @@ public:
 nsresult
 nsCacheProfilePrefObserver::Install()
 {
     // install profile-change observer
     nsCOMPtr<nsIObserverService> observerService =
         mozilla::services::GetObserverService();
     if (!observerService)
         return NS_ERROR_FAILURE;
-    
+
     nsresult rv, rv2 = NS_OK;
     for (unsigned int i=0; i<ArrayLength(observerList); i++) {
         rv = observerService->AddObserver(this, observerList[i], false);
-        if (NS_FAILED(rv)) 
+        if (NS_FAILED(rv))
             rv2 = rv;
     }
-    
+
     // install preferences observer
     nsCOMPtr<nsIPrefBranch> branch = do_GetService(NS_PREFSERVICE_CONTRACTID);
     if (!branch) return NS_ERROR_FAILURE;
 
     for (unsigned int i=0; i<ArrayLength(prefList); i++) {
         rv = branch->AddObserver(prefList[i], this, false);
         if (NS_FAILED(rv))
             rv2 = rv;
@@ -422,81 +422,81 @@ nsCacheProfilePrefObserver::Observe(nsIS
             return NS_ERROR_FAILURE;
         }
         (void)ReadPrefs(branch);
         nsCacheService::OnProfileChanged();
 
     } else if (!strcmp(NS_PREFBRANCH_PREFCHANGE_TOPIC_ID, topic)) {
 
         // ignore pref changes until we're done switch profiles
-        if (!mHaveProfile)  
+        if (!mHaveProfile)
             return NS_OK;
 
         nsCOMPtr<nsIPrefBranch> branch = do_QueryInterface(subject, &rv);
-        if (NS_FAILED(rv))  
+        if (NS_FAILED(rv))
             return rv;
 
         // which preference changed?
         if (!strcmp(DISK_CACHE_ENABLE_PREF, data.get())) {
 
             rv = branch->GetBoolPref(DISK_CACHE_ENABLE_PREF,
                                      &mDiskCacheEnabled);
-            if (NS_FAILED(rv))  
+            if (NS_FAILED(rv))
                 return rv;
             nsCacheService::SetDiskCacheEnabled(DiskCacheEnabled());
 
         } else if (!strcmp(DISK_CACHE_CAPACITY_PREF, data.get())) {
 
             int32_t capacity = 0;
             rv = branch->GetIntPref(DISK_CACHE_CAPACITY_PREF, &capacity);
-            if (NS_FAILED(rv))  
+            if (NS_FAILED(rv))
                 return rv;
             mDiskCacheCapacity = std::max(0, capacity);
             nsCacheService::SetDiskCacheCapacity(mDiskCacheCapacity);
-       
-        // Update the cache capacity when smart sizing is turned on/off 
+
+        // Update the cache capacity when smart sizing is turned on/off
         } else if (!strcmp(DISK_CACHE_SMART_SIZE_ENABLED_PREF, data.get())) {
             // Is the update because smartsizing was turned on, or off?
             rv = branch->GetBoolPref(DISK_CACHE_SMART_SIZE_ENABLED_PREF,
                                      &mSmartSizeEnabled);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
             int32_t newCapacity = 0;
             if (mSmartSizeEnabled) {
                 nsCacheService::SetDiskSmartSize();
             } else {
                 // Smart sizing switched off: use user specified size
                 rv = branch->GetIntPref(DISK_CACHE_CAPACITY_PREF, &newCapacity);
-                if (NS_FAILED(rv)) 
+                if (NS_FAILED(rv))
                     return rv;
                 mDiskCacheCapacity = std::max(0, newCapacity);
                 nsCacheService::SetDiskCacheCapacity(mDiskCacheCapacity);
             }
         } else if (!strcmp(DISK_CACHE_USE_OLD_MAX_SMART_SIZE_PREF, data.get())) {
             rv = branch->GetBoolPref(DISK_CACHE_USE_OLD_MAX_SMART_SIZE_PREF,
                                      &mShouldUseOldMaxSmartSize);
             if (NS_FAILED(rv))
                 return rv;
         } else if (!strcmp(DISK_CACHE_MAX_ENTRY_SIZE_PREF, data.get())) {
             int32_t newMaxSize;
             rv = branch->GetIntPref(DISK_CACHE_MAX_ENTRY_SIZE_PREF,
                                     &newMaxSize);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
 
             mDiskCacheMaxEntrySize = std::max(-1, newMaxSize);
             nsCacheService::SetDiskCacheMaxEntrySize(mDiskCacheMaxEntrySize);
-          
-#if 0            
+
+#if 0
         } else if (!strcmp(DISK_CACHE_DIR_PREF, data.get())) {
             // XXX We probaby don't want to respond to this pref except after
             // XXX profile changes.  Ideally, there should be somekind of user
             // XXX notification that the pref change won't take effect until
             // XXX the next time the profile changes (browser launch)
-#endif            
+#endif
         } else
 
         // which preference changed?
         if (!strcmp(OFFLINE_CACHE_ENABLE_PREF, data.get())) {
 
             rv = branch->GetBoolPref(OFFLINE_CACHE_ENABLE_PREF,
                                      &mOfflineCacheEnabled);
             if (NS_FAILED(rv))  return rv;
@@ -517,33 +517,33 @@ nsCacheProfilePrefObserver::Observe(nsIS
             // XXX the next time the profile changes (browser launch)
 #endif
         } else
 
         if (!strcmp(MEMORY_CACHE_ENABLE_PREF, data.get())) {
 
             rv = branch->GetBoolPref(MEMORY_CACHE_ENABLE_PREF,
                                      &mMemoryCacheEnabled);
-            if (NS_FAILED(rv))  
+            if (NS_FAILED(rv))
                 return rv;
             nsCacheService::SetMemoryCache();
-            
+
         } else if (!strcmp(MEMORY_CACHE_CAPACITY_PREF, data.get())) {
 
             mMemoryCacheCapacity = -1;
             (void) branch->GetIntPref(MEMORY_CACHE_CAPACITY_PREF,
                                       &mMemoryCacheCapacity);
             nsCacheService::SetMemoryCache();
         } else if (!strcmp(MEMORY_CACHE_MAX_ENTRY_SIZE_PREF, data.get())) {
             int32_t newMaxSize;
             rv = branch->GetIntPref(MEMORY_CACHE_MAX_ENTRY_SIZE_PREF,
                                      &newMaxSize);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 return rv;
-            
+
             mMemoryCacheMaxEntrySize = std::max(-1, newMaxSize);
             nsCacheService::SetMemoryCacheMaxEntrySize(mMemoryCacheMaxEntrySize);
         } else if (!strcmp(CACHE_COMPRESSION_LEVEL_PREF, data.get())) {
             mCacheCompressionLevel = CACHE_COMPRESSION_LEVEL;
             (void)branch->GetIntPref(CACHE_COMPRESSION_LEVEL_PREF,
                                      &mCacheCompressionLevel);
             mCacheCompressionLevel = std::max(0, mCacheCompressionLevel);
             mCacheCompressionLevel = std::min(9, mCacheCompressionLevel);
@@ -609,35 +609,35 @@ SmartCacheSize(const uint32_t availKB, b
 #else
     // 40% of space up to 500 MB (50 MB min)
     sz10MBs += std::max<uint32_t>(5, static_cast<uint32_t>(avail10MBs * .4));
 #endif
 
     return std::min<uint32_t>(maxSize, sz10MBs * 10 * 1024);
 }
 
- /* Computes our best guess for the default size of the user's disk cache, 
-  * based on the amount of space they have free on their hard drive. 
-  * We use a tiered scheme: the more space available, 
+ /* Computes our best guess for the default size of the user's disk cache,
+  * based on the amount of space they have free on their hard drive.
+  * We use a tiered scheme: the more space available,
   * the larger the disk cache will be. However, we do not want
   * to enable the disk cache to grow to an unbounded size, so the larger the
   * user's available space is, the smaller of a percentage we take. We set a
-  * lower bound of 50MB and an upper bound of 1GB.  
+  * lower bound of 50MB and an upper bound of 1GB.
   *
   *@param:  None.
   *@return: The size that the user's disk cache should default to, in kBytes.
   */
 uint32_t
 nsCacheProfilePrefObserver::GetSmartCacheSize(const nsAString& cachePath,
                                               uint32_t currentSize,
                                               bool shouldUseOldMaxSmartSize)
 {
     // Check for free space on device where cache directory lives
     nsresult rv;
-    nsCOMPtr<nsIFile> 
+    nsCOMPtr<nsIFile>
         cacheDirectory (do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
     if (NS_FAILED(rv) || !cacheDirectory)
         return DEFAULT_CACHE_SIZE;
     rv = cacheDirectory->InitWithPath(cachePath);
     if (NS_FAILED(rv))
         return DEFAULT_CACHE_SIZE;
     int64_t bytesAvailable;
     rv = cacheDirectory->GetDiskSpaceAvailable(&bytesAvailable);
@@ -645,17 +645,17 @@ nsCacheProfilePrefObserver::GetSmartCach
         return DEFAULT_CACHE_SIZE;
 
     return SmartCacheSize(static_cast<uint32_t>((bytesAvailable / 1024) +
                                                 currentSize),
                           shouldUseOldMaxSmartSize);
 }
 
 /* Determine if we are permitted to dynamically size the user's disk cache based
- * on their disk space available. We may do this so long as the pref 
+ * on their disk space available. We may do this so long as the pref
  * smart_size.enabled is true.
  */
 bool
 nsCacheProfilePrefObserver::PermittedToSmartSize(nsIPrefBranch* branch, bool
                                                  firstRun)
 {
     nsresult rv;
     if (firstRun) {
@@ -700,74 +700,74 @@ nsCacheProfilePrefObserver::ReadPrefs(ns
 
     mDiskCacheCapacity = DISK_CACHE_CAPACITY;
     (void)branch->GetIntPref(DISK_CACHE_CAPACITY_PREF, &mDiskCacheCapacity);
     mDiskCacheCapacity = std::max(0, mDiskCacheCapacity);
 
     (void) branch->GetIntPref(DISK_CACHE_MAX_ENTRY_SIZE_PREF,
                               &mDiskCacheMaxEntrySize);
     mDiskCacheMaxEntrySize = std::max(-1, mDiskCacheMaxEntrySize);
-    
+
     (void) branch->GetComplexValue(DISK_CACHE_DIR_PREF,     // ignore error
                                    NS_GET_IID(nsIFile),
                                    getter_AddRefs(mDiskCacheParentDirectory));
 
     (void) branch->GetBoolPref(DISK_CACHE_USE_OLD_MAX_SMART_SIZE_PREF,
                                &mShouldUseOldMaxSmartSize);
-    
+
     if (!mDiskCacheParentDirectory) {
         nsCOMPtr<nsIFile>  directory;
 
         // try to get the disk cache parent directory
         rv = NS_GetSpecialDirectory(NS_APP_CACHE_PARENT_DIR,
                                     getter_AddRefs(directory));
         if (NS_FAILED(rv)) {
             // try to get the profile directory (there may not be a profile yet)
             nsCOMPtr<nsIFile> profDir;
             NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR,
                                    getter_AddRefs(profDir));
             NS_GetSpecialDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR,
                                    getter_AddRefs(directory));
             if (!directory)
                 directory = profDir;
             else if (profDir) {
-                nsCacheService::MoveOrRemoveDiskCache(profDir, directory, 
+                nsCacheService::MoveOrRemoveDiskCache(profDir, directory,
                                                       "Cache");
             }
         }
         // use file cache in build tree only if asked, to avoid cache dir litter
         if (!directory && PR_GetEnv("NECKO_DEV_ENABLE_DISK_CACHE")) {
             rv = NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR,
                                         getter_AddRefs(directory));
         }
         if (directory)
             mDiskCacheParentDirectory = do_QueryInterface(directory, &rv);
     }
     if (mDiskCacheParentDirectory) {
         bool firstSmartSizeRun;
-        rv = branch->GetBoolPref(DISK_CACHE_SMART_SIZE_FIRST_RUN_PREF, 
-                                 &firstSmartSizeRun); 
-        if (NS_FAILED(rv)) 
+        rv = branch->GetBoolPref(DISK_CACHE_SMART_SIZE_FIRST_RUN_PREF,
+                                 &firstSmartSizeRun);
+        if (NS_FAILED(rv))
             firstSmartSizeRun = false;
         if (PermittedToSmartSize(branch, firstSmartSizeRun)) {
             // Avoid evictions: use previous cache size until smart size event
             // updates mDiskCacheCapacity
             rv = branch->GetIntPref(firstSmartSizeRun ?
                                     DISK_CACHE_CAPACITY_PREF :
                                     DISK_CACHE_SMART_SIZE_PREF,
                                     &mDiskCacheCapacity);
             if (NS_FAILED(rv))
                 mDiskCacheCapacity = DEFAULT_CACHE_SIZE;
         }
 
         if (firstSmartSizeRun) {
             // It is no longer our first run
-            rv = branch->SetBoolPref(DISK_CACHE_SMART_SIZE_FIRST_RUN_PREF, 
+            rv = branch->SetBoolPref(DISK_CACHE_SMART_SIZE_FIRST_RUN_PREF,
                                      false);
-            if (NS_FAILED(rv)) 
+            if (NS_FAILED(rv))
                 NS_WARNING("Failed setting first_run pref in ReadPrefs.");
         }
     }
 
     // read offline cache device prefs
     mOfflineCacheEnabled = true;  // presume offline cache is enabled
     (void) branch->GetBoolPref(OFFLINE_CACHE_ENABLE_PREF,
                               &mOfflineCacheEnabled);
@@ -792,17 +792,17 @@ nsCacheProfilePrefObserver::ReadPrefs(ns
             nsCOMPtr<nsIFile> profDir;
             NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR,
                                    getter_AddRefs(profDir));
             NS_GetSpecialDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR,
                                    getter_AddRefs(directory));
             if (!directory)
                 directory = profDir;
             else if (profDir) {
-                nsCacheService::MoveOrRemoveDiskCache(profDir, directory, 
+                nsCacheService::MoveOrRemoveDiskCache(profDir, directory,
                                                       "OfflineCache");
             }
         }
 #if DEBUG
         if (!directory) {
             // use current process directory during development
             rv = NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR,
                                         getter_AddRefs(directory));
@@ -900,19 +900,19 @@ nsCacheProfilePrefObserver::MemoryCacheE
 
 /**
  * MemoryCacheCapacity
  *
  * If the browser.cache.memory.capacity preference is positive, we use that
  * value for the amount of memory available for the cache.
  *
  * If browser.cache.memory.capacity is zero, the memory cache is disabled.
- * 
+ *
  * If browser.cache.memory.capacity is negative or not present, we use a
- * formula that grows less than linearly with the amount of system memory, 
+ * formula that grows less than linearly with the amount of system memory,
  * with an upper limit on the cache size. No matter how much physical RAM is
  * present, the default cache size would not exceed 32 MB. This maximum would
  * apply only to systems with more than 4 GB of RAM (e.g. terminal servers)
  *
  *   RAM   Cache
  *   ---   -----
  *   32 Mb   2 Mb
  *   64 Mb   4 Mb
@@ -1297,17 +1297,17 @@ nsCacheService::Create(nsISupports* aOut
     }
     NS_RELEASE(cacheService);
     return rv;
 }
 
 
 NS_IMETHODIMP
 nsCacheService::CreateSession(const char *          clientID,
-                              nsCacheStoragePolicy  storagePolicy, 
+                              nsCacheStoragePolicy  storagePolicy,
                               bool                  streamBased,
                               nsICacheSession     **result)
 {
     *result = nullptr;
 
     if (net::CacheObserver::UseNewCache())
         return NS_ERROR_NOT_IMPLEMENTED;
 
@@ -1415,17 +1415,17 @@ nsCacheService::EvictEntriesForClient(co
                 res = rv;
         }
     }
 
     return res;
 }
 
 
-nsresult        
+nsresult
 nsCacheService::IsStorageEnabledForPolicy(nsCacheStoragePolicy  storagePolicy,
                                           bool *              result)
 {
     if (gService == nullptr) return NS_ERROR_NOT_AVAILABLE;
     nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ISSTORAGEENABLEDFORPOLICY));
 
     *result = gService->IsStorageEnabledForPolicy_Locked(storagePolicy);
     return NS_OK;
@@ -1441,34 +1441,34 @@ nsCacheService::DoomEntry(nsCacheSession
                      session, PromiseFlatCString(key).get()));
     if (!gService || !gService->mInitialized)
         return NS_ERROR_NOT_INITIALIZED;
 
     return DispatchToCacheIOThread(new nsDoomEvent(session, key, listener));
 }
 
 
-bool          
+bool
 nsCacheService::IsStorageEnabledForPolicy_Locked(nsCacheStoragePolicy  storagePolicy)
 {
     if (gService->mEnableMemoryDevice &&
         (storagePolicy == nsICache::STORE_ANYWHERE ||
          storagePolicy == nsICache::STORE_IN_MEMORY)) {
         return true;
     }
     if (gService->mEnableDiskDevice &&
         (storagePolicy == nsICache::STORE_ANYWHERE ||
          storagePolicy == nsICache::STORE_ON_DISK)) {
         return true;
     }
     if (gService->mEnableOfflineDevice &&
         storagePolicy == nsICache::STORE_OFFLINE) {
         return true;
     }
-    
+
     return false;
 }
 
 NS_IMETHODIMP nsCacheService::VisitEntries(nsICacheVisitor *visitor)
 {
     if (net::CacheObserver::UseNewCache())
         return NS_ERROR_NOT_IMPLEMENTED;
 
@@ -1479,19 +1479,19 @@ nsresult nsCacheService::VisitEntriesInt
 {
     NS_ENSURE_ARG_POINTER(visitor);
 
     nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_VISITENTRIES));
 
     if (!(mEnableDiskDevice || mEnableMemoryDevice))
         return NS_ERROR_NOT_AVAILABLE;
 
-    // XXX record the fact that a visitation is in progress, 
+    // XXX record the fact that a visitation is in progress,
     // XXX i.e. keep list of visitors in progress.
-    
+
     nsresult rv = NS_OK;
     // If there is no memory device, there are then also no entries to visit...
     if (mMemoryDevice) {
         rv = mMemoryDevice->Visit(visitor);
         if (NS_FAILED(rv)) return rv;
     }
 
     if (mEnableDiskDevice) {
@@ -1544,17 +1544,17 @@ nsresult nsCacheService::EvictEntriesInt
         if (!NS_IsMainThread()) {
           nsCOMPtr<nsIRunnable> event = NewRunnableMethod(
             "nsCacheService::FireClearNetworkCacheStoredAnywhereNotification",
             this,
             &nsCacheService::FireClearNetworkCacheStoredAnywhereNotification);
           NS_DispatchToMainThread(event);
         } else {
             // else you're already on main thread - notify observers
-            FireClearNetworkCacheStoredAnywhereNotification(); 
+            FireClearNetworkCacheStoredAnywhereNotification();
         }
     }
     return EvictEntriesForClient(nullptr, storagePolicy);
 }
 
 NS_IMETHODIMP nsCacheService::GetCacheIOTarget(nsIEventTarget * *aCacheIOTarget)
 {
     NS_ENSURE_ARG_POINTER(aCacheIOTarget);
@@ -1585,17 +1585,17 @@ NS_IMETHODIMP nsCacheService::GetCacheIO
 NS_IMETHODIMP nsCacheService::GetLockHeldTime(double *aLockHeldTime)
 {
     MutexAutoLock lock(mTimeStampLock);
 
     if (mLockAcquiredTimeStamp.IsNull()) {
         *aLockHeldTime = 0.0;
     }
     else {
-        *aLockHeldTime = 
+        *aLockHeldTime =
             (TimeStamp::Now() - mLockAcquiredTimeStamp).ToMilliseconds();
     }
 
     return NS_OK;
 }
 
 /**
  * Internal Methods
@@ -1804,17 +1804,17 @@ nsresult
 nsCacheService::CreateMemoryDevice()
 {
     if (!mInitialized)        return NS_ERROR_NOT_AVAILABLE;
     if (!mEnableMemoryDevice) return NS_ERROR_NOT_AVAILABLE;
     if (mMemoryDevice)        return NS_OK;
 
     mMemoryDevice = new nsMemoryCacheDevice;
     if (!mMemoryDevice)       return NS_ERROR_OUT_OF_MEMORY;
-    
+
     // set preference
     int32_t capacity = mObserver->MemoryCacheCapacity();
     CACHE_LOG_DEBUG(("Creating memory device with capacity %d\n", capacity));
     mMemoryDevice->SetCapacity(capacity);
     mMemoryDevice->SetMaxEntrySize(mObserver->MemoryCacheMaxEntrySize());
 
     nsresult rv = mMemoryDevice->Init();
     if (NS_FAILED(rv)) {
@@ -1845,32 +1845,32 @@ nsresult
 nsCacheService::CreateRequest(nsCacheSession *   session,
                               const nsACString & clientKey,
                               nsCacheAccessMode  accessRequested,
                               bool               blockingMode,
                               nsICacheListener * listener,
                               nsCacheRequest **  request)
 {
     NS_ASSERTION(request, "CreateRequest: request is null");
-     
+
     nsAutoCString key(*session->ClientID());
     key.Append(':');
     key.Append(clientKey);
 
     if (mMaxKeyLength < key.Length()) mMaxKeyLength = key.Length();
 
     // create request
     *request = new nsCacheRequest(key, listener, accessRequested,
                                   blockingMode, session);
 
     if (!listener)  return NS_OK;  // we're sync, we're done.
 
     // get the request's thread
     (*request)->mEventTarget = GetCurrentThreadEventTarget();
-    
+
     return NS_OK;
 }
 
 
 class nsCacheListenerEvent : public Runnable
 {
 public:
   nsCacheListenerEvent(nsICacheListener* listener,
@@ -1989,17 +1989,17 @@ nsCacheService::ProcessRequest(nsCacheRe
             rv = GetCustomOfflineDevice(request->mProfileDir, -1,
                                         getter_AddRefs(customCacheDevice));
             if (NS_SUCCEEDED(rv))
                 entry->SetCustomCacheDevice(customCacheDevice);
         }
     }
 
     nsICacheEntryDescriptor *descriptor = nullptr;
-    
+
     if (NS_SUCCEEDED(rv))
         rv = entry->CreateDescriptor(request, accessGranted, &descriptor);
 
     // If doomedEntry is set, ActivatEntry() doomed an existing entry and
     // created a new one for that cache-key. However, any pending requests
     // on the doomed entry were not processed and we need to do that here.
     // This must be done after adding the created entry to list of active
     // entries (which is done in ActivateEntry()) otherwise the hashkeys crash
@@ -2012,20 +2012,20 @@ nsCacheService::ProcessRequest(nsCacheRe
     if (doomedEntry) {
         (void) ProcessPendingRequests(doomedEntry);
         if (doomedEntry->IsNotInUse())
             DeactivateEntry(doomedEntry);
         doomedEntry = nullptr;
     }
 
     if (request->mListener) {  // Asynchronous
-    
+
         if (NS_FAILED(rv) && calledFromOpenCacheEntry && request->IsBlocking())
             return rv;  // skip notifying listener, just return rv to caller
-            
+
         // call listener to report error or descriptor
         nsresult rv2 = NotifyListener(request, descriptor, accessGranted, rv);
         if (NS_FAILED(rv2) && NS_SUCCEEDED(rv)) {
             rv = rv2;  // trigger delete request
         }
     } else {        // Synchronous
         *result = descriptor;
     }
@@ -2084,17 +2084,17 @@ nsCacheService::OpenCacheEntry(nsCacheSe
             delete request;
     }
 
     return rv;
 }
 
 
 nsresult
-nsCacheService::ActivateEntry(nsCacheRequest * request, 
+nsCacheService::ActivateEntry(nsCacheRequest * request,
                               nsCacheEntry ** result,
                               nsCacheEntry ** doomedEntry)
 {
     CACHE_LOG_DEBUG(("Activate entry for request %p\n", request));
     if (!mInitialized || mClearingEntries)
         return NS_ERROR_NOT_AVAILABLE;
 
     nsresult        rv = NS_OK;
@@ -2164,32 +2164,32 @@ nsCacheService::ActivateEntry(nsCacheReq
         entry = new nsCacheEntry(request->mKey,
                                  request->IsStreamBased(),
                                  request->StoragePolicy());
         if (!entry)
             return NS_ERROR_OUT_OF_MEMORY;
 
         if (request->IsPrivate())
             entry->MarkPrivate();
-        
+
         entry->Fetched();
         ++mTotalEntries;
 
         // XXX  we could perform an early bind in some cases based on storage policy
     }
 
     if (!entry->IsActive()) {
         rv = mActiveEntries.AddEntry(entry);
         if (NS_FAILED(rv)) goto error;
         CACHE_LOG_DEBUG(("Added entry %p to mActiveEntries\n", entry));
         entry->MarkActive();  // mark entry active, because it's now in mActiveEntries
     }
     *result = entry;
     return NS_OK;
-    
+
  error:
     *result = nullptr;
     delete entry;
     return rv;
 }
 
 
 nsCacheEntry *
@@ -2205,26 +2205,26 @@ nsCacheService::SearchCacheDevices(nsCSt
         // If there is no memory device, then there is nothing to search...
         if (mMemoryDevice) {
             entry = mMemoryDevice->FindEntry(key, collision);
             CACHE_LOG_DEBUG(("Searching mMemoryDevice for key %s found: 0x%p, "
                              "collision: %d\n", key->get(), entry, *collision));
         }
     }
 
-    if (!entry && 
+    if (!entry &&
         ((policy == nsICache::STORE_ANYWHERE) || (policy == nsICache::STORE_ON_DISK))) {
 
         if (mEnableDiskDevice) {
             if (!mDiskDevice) {
                 nsresult rv = CreateDiskDevice();
                 if (NS_FAILED(rv))
                     return nullptr;
             }
-            
+
             entry = mDiskDevice->FindEntry(key, collision);
         }
     }
 
     if (!entry && (policy == nsICache::STORE_OFFLINE ||
                    (policy == nsICache::STORE_ANYWHERE &&
                     gIOService->IsOffline()))) {
 
@@ -2271,17 +2271,17 @@ nsCacheService::EnsureEntryHasDevice(nsC
             nsresult rv = mDiskDevice->BindEntry(entry);
             entry->ClearBinding(); // exit state of binding
             if (NS_SUCCEEDED(rv))
                 device = mDiskDevice;
         }
     }
 
     // if we can't use mDiskDevice, try mMemoryDevice
-    if (!device && mEnableMemoryDevice && entry->IsAllowedInMemory()) {        
+    if (!device && mEnableMemoryDevice && entry->IsAllowedInMemory()) {
         if (!mMemoryDevice) {
             (void)CreateMemoryDevice();  // ignore the error (check for mMemoryDevice instead)
         }
         if (mMemoryDevice) {
             // Bypass the cache if Content-Length says entry will be too big
             if (predictedDataSize != -1 &&
                 mMemoryDevice->EntryIsTooBig(predictedDataSize)) {
                 DebugOnly<nsresult> rv = nsCacheService::DoomEntry(entry);
@@ -2311,38 +2311,38 @@ nsCacheService::EnsureEntryHasDevice(nsC
             entry->MarkBinding();
             nsresult rv = device->BindEntry(entry);
             entry->ClearBinding();
             if (NS_FAILED(rv))
                 device = nullptr;
         }
     }
 
-    if (device) 
+    if (device)
         entry->SetCacheDevice(device);
     return device;
 }
 
 nsresult
 nsCacheService::DoomEntry(nsCacheEntry * entry)
 {
     return gService->DoomEntry_Internal(entry, true);
 }
 
 
 nsresult
 nsCacheService::DoomEntry_Internal(nsCacheEntry * entry,
                                    bool doProcessPendingRequests)
 {
     if (entry->IsDoomed())  return NS_OK;
-    
+
     CACHE_LOG_DEBUG(("Dooming entry %p\n", entry));
     nsresult  rv = NS_OK;
     entry->MarkDoomed();
-    
+
     NS_ASSERTION(!entry->IsBinding(), "Dooming entry while binding device.");
     nsCacheDevice * device = entry->CacheDevice();
     if (device)  device->DoomEntry(entry);
 
     if (entry->IsActive()) {
         // remove from active entries
         mActiveEntries.RemoveEntry(entry);
         CACHE_LOG_DEBUG(("Removed entry %p from mActiveEntries\n", entry));
@@ -2417,19 +2417,19 @@ nsCacheService::OnProfileShutdown()
 
 
 void
 nsCacheService::OnProfileChanged()
 {
     if (!gService)  return;
 
     CACHE_LOG_DEBUG(("nsCacheService::OnProfileChanged"));
- 
+
     nsCacheServiceAutoLock lock(LOCK_TELEM(NSCACHESERVICE_ONPROFILECHANGED));
-    
+
     gService->mEnableDiskDevice    = gService->mObserver->DiskCacheEnabled();
     gService->mEnableOfflineDevice = gService->mObserver->OfflineCacheEnabled();
     gService->mEnableMemoryDevice  = gService->mObserver->MemoryCacheEnabled();
 
     if (gService->mDiskDevice) {
         gService->mDiskDevice->SetCacheParentDirectory(gService->mObserver->DiskCacheParentDirectory());
         gService->mDiskDevice->SetCapacity(gService->mObserver->DiskCacheCapacity());
 
@@ -2590,23 +2590,23 @@ nsCacheService::CloseDescriptor(nsCacheE
     }
 
     if (!stillActive) {
         gService->DeactivateEntry(entry);
     }
 }
 
 
-nsresult        
+nsresult
 nsCacheService::GetFileForEntry(nsCacheEntry *         entry,
                                 nsIFile **             result)
 {
     nsCacheDevice * device = gService->EnsureEntryHasDevice(entry);
     if (!device)  return  NS_ERROR_UNEXPECTED;
-    
+
     return device->GetFileForEntry(entry, result);
 }
 
 
 nsresult
 nsCacheService::OpenInputStreamForEntry(nsCacheEntry *     entry,
                                         nsCacheAccessMode  mode,
                                         uint32_t           offset,
@@ -2677,17 +2677,17 @@ nsCacheService::Lock(mozilla::Telemetry:
 
     TimeStamp start(TimeStamp::Now());
 
     nsCacheService::Lock();
 
     TimeStamp stop(TimeStamp::Now());
 
     // Telemetry isn't thread safe on its own, but this is OK because we're
-    // protecting it with the cache lock. 
+    // protecting it with the cache lock.
     if (lockerID != mozilla::Telemetry::HistogramCount) {
         mozilla::Telemetry::AccumulateTimeDelta(lockerID, start, stop);
     }
     mozilla::Telemetry::AccumulateTimeDelta(generalID, start, stop);
 }
 
 void
 nsCacheService::Unlock()
@@ -2769,17 +2769,17 @@ nsCacheService::DeactivateEntry(nsCacheE
     } else if (entry->IsActive()) {
         // remove from active entries
         mActiveEntries.RemoveEntry(entry);
         CACHE_LOG_DEBUG(("Removed deactivated entry %p from mActiveEntries\n",
                          entry));
         entry->MarkInactive();
 
         // bind entry if necessary to store meta-data
-        device = EnsureEntryHasDevice(entry); 
+        device = EnsureEntryHasDevice(entry);
         if (!device) {
             CACHE_LOG_DEBUG(("DeactivateEntry: unable to bind active "
                              "entry %p\n",
                              entry));
             NS_WARNING("DeactivateEntry: unable to bind active entry\n");
             return;
         }
     } else {
@@ -2805,17 +2805,17 @@ nsCacheService::DeactivateEntry(nsCacheE
 
 nsresult
 nsCacheService::ProcessPendingRequests(nsCacheEntry * entry)
 {
     nsresult            rv = NS_OK;
     nsCacheRequest *    request = (nsCacheRequest *)PR_LIST_HEAD(&entry->mRequestQ);
     nsCacheRequest *    nextRequest;
     bool                newWriter = false;
-    
+
     CACHE_LOG_DEBUG(("ProcessPendingRequests for %sinitialized %s %salid entry %p\n",
                     (entry->IsInitialized()?"" : "Un"),
                     (entry->IsDoomed()?"DOOMED" : ""),
                     (entry->IsValid()? "V":"Inv"), entry));
 
     if (request == &entry->mRequestQ)  return NS_OK;    // no queued requests
 
     if (!entry->IsDoomed() && entry->IsInvalid()) {
@@ -2824,32 +2824,32 @@ nsCacheService::ProcessPendingRequests(n
 
 #if DEBUG
         // verify no ACCESS_WRITE requests(shouldn't have any of these)
         while (request != &entry->mRequestQ) {
             NS_ASSERTION(request->AccessRequested() != nsICache::ACCESS_WRITE,
                          "ACCESS_WRITE request should have been given a new entry");
             request = (nsCacheRequest *)PR_NEXT_LINK(request);
         }
-        request = (nsCacheRequest *)PR_LIST_HEAD(&entry->mRequestQ);        
+        request = (nsCacheRequest *)PR_LIST_HEAD(&entry->mRequestQ);
 #endif
         // find first request with ACCESS_READ_WRITE (if any) and promote it to 1st writer
         while (request != &entry->mRequestQ) {
             if (request->AccessRequested() == nsICache::ACCESS_READ_WRITE) {
                 newWriter = true;
                 CACHE_LOG_DEBUG(("  promoting request %p to 1st writer\n", request));
                 break;
             }
 
             request = (nsCacheRequest *)PR_NEXT_LINK(request);
         }
-        
+
         if (request == &entry->mRequestQ)   // no requests asked for ACCESS_READ_WRITE, back to top
             request = (nsCacheRequest *)PR_LIST_HEAD(&entry->mRequestQ);
-        
+
         // XXX what should we do if there are only READ requests in queue?
         // XXX serialize their accesses, give them only read access, but force them to check validate flag?
         // XXX or do readers simply presume the entry is valid
         // See fix for bug #467392 below
     }
 
     nsCacheAccessMode  accessGranted = nsICache::ACCESS_NONE;
 
@@ -2886,17 +2886,17 @@ nsCacheService::ProcessPendingRequests(n
                                              &descriptor);
 
                 // post call to listener to report error or descriptor
                 rv = NotifyListener(request, descriptor, accessGranted, rv);
                 delete request;
                 if (NS_FAILED(rv)) {
                     // XXX what to do?
                 }
-                
+
             } else {
                 // read-only request to an invalid entry - need to wait for
                 // the entry to become valid so we post an event to process
                 // the request again later (bug #467392)
                 nsCOMPtr<nsIRunnable> ev =
                     new nsProcessRequestEvent(request);
                 rv = DispatchToCacheIOThread(ev);
                 if (NS_FAILED(rv)) {
@@ -3127,17 +3127,17 @@ nsCacheService::SetDiskSmartSize_Locked(
     } else {
         return NS_ERROR_FAILURE;
     }
 
     return NS_OK;
 }
 
 void
-nsCacheService::MoveOrRemoveDiskCache(nsIFile *aOldCacheDir, 
+nsCacheService::MoveOrRemoveDiskCache(nsIFile *aOldCacheDir,
                                       nsIFile *aNewCacheDir,
                                       const char *aCacheSubdir)
 {
     bool same;
     if (NS_FAILED(aOldCacheDir->Equals(aNewCacheDir, &same)) || same)
         return;
 
     nsCOMPtr<nsIFile> aOldCacheSubdir;
@@ -3153,38 +3153,38 @@ nsCacheService::MoveOrRemoveDiskCache(ns
         return;
 
     nsCOMPtr<nsIFile> aNewCacheSubdir;
     aNewCacheDir->Clone(getter_AddRefs(aNewCacheSubdir));
 
     rv = aNewCacheSubdir->AppendNative(nsDependentCString(aCacheSubdir));
     if (NS_FAILED(rv))
         return;
-    
+
     nsAutoCString newPath;
     rv = aNewCacheSubdir->GetNativePath(newPath);
     if (NS_FAILED(rv))
         return;
-        
+
     if (NS_SUCCEEDED(aNewCacheSubdir->Exists(&exists)) && !exists) {
         // New cache directory does not exist, try to move the old one here
         // rename needs an empty target directory
 
         // Make sure the parent of the target sub-dir exists
         rv = aNewCacheDir->Create(nsIFile::DIRECTORY_TYPE, 0777);
         if (NS_SUCCEEDED(rv) || NS_ERROR_FILE_ALREADY_EXISTS == rv) {
             nsAutoCString oldPath;
             rv = aOldCacheSubdir->GetNativePath(oldPath);
             if (NS_FAILED(rv))
                 return;
             if (rename(oldPath.get(), newPath.get()) == 0)
                 return;
         }
     }
-    
+
     // Delay delete by 1 minute to avoid IO thrash on startup.
     nsDeleteDir::DeleteDir(aOldCacheSubdir, false, 60000);
 }
 
 static bool
 IsEntryPrivate(nsCacheEntry* entry)
 {
     return entry->IsPrivate();
--- a/netwerk/cache/nsCacheSession.cpp
+++ b/netwerk/cache/nsCacheSession.cpp
@@ -71,17 +71,17 @@ NS_IMETHODIMP nsCacheSession::SetDoomEnt
 {
     if (doomEntriesIfExpired)  MarkDoomEntriesIfExpired();
     else                       ClearDoomEntriesIfExpired();
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
-nsCacheSession::OpenCacheEntry(const nsACString &         key, 
+nsCacheSession::OpenCacheEntry(const nsACString &         key,
                                nsCacheAccessMode          accessRequested,
                                bool                       blockingMode,
                                nsICacheEntryDescriptor ** result)
 {
     nsresult rv;
 
     if (NS_IsMainThread())
         rv = NS_ERROR_NOT_AVAILABLE;
--- a/netwerk/cache/nsCacheSession.h
+++ b/netwerk/cache/nsCacheSession.h
@@ -16,19 +16,19 @@
 
 class nsCacheSession : public nsICacheSession
 {
     virtual ~nsCacheSession();
 
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSICACHESESSION
-    
+
     nsCacheSession(const char * clientID, nsCacheStoragePolicy storagePolicy, bool streamBased);
-    
+
     nsCString *           ClientID()      { return &mClientID; }
 
     enum SessionInfo {
         eStoragePolicyMask        = 0x000000FF,
         eStreamBasedMask          = 0x00000100,
         eDoomEntriesIfExpiredMask = 0x00001000,
         ePrivateMask              = 0x00010000
     };
--- a/netwerk/cache/nsDiskCache.h
+++ b/netwerk/cache/nsDiskCache.h
@@ -52,21 +52,21 @@ public:
       kFlushHeaderError = 22,
       kCacheCleanFilePathError = 23,
       kCacheCleanOpenFileError = 24,
       kCacheCleanTimerError = 25
     };
 
     // Parameter initval initializes internal state of hash function. Hash values are different
     // for the same text when different initval is used. It can be any random number.
-    // 
+    //
     // It can be used for generating 64-bit hash value:
     //   (uint64_t(Hash(key, initval1)) << 32) | Hash(key, initval2)
     //
     // It can be also used to hash multiple strings:
     //   h = Hash(string1, 0);
     //   h = Hash(string2, h);
-    //   ... 
+    //   ...
     static PLDHashNumber    Hash(const char* key, PLDHashNumber initval=0);
     static nsresult         Truncate(PRFileDesc *  fd, uint32_t  newEOF);
 };
 
 #endif // _nsDiskCache_h_
--- a/netwerk/cache/nsDiskCacheBinding.cpp
+++ b/netwerk/cache/nsDiskCacheBinding.cpp
@@ -88,17 +88,17 @@ nsDiskCacheBinding::~nsDiskCacheBinding(
     // Grab the cache lock since the binding is stored in nsCacheEntry::mData
     // and it is released using nsCacheService::ReleaseObject_Locked() which
     // releases the object outside the cache lock.
     nsCacheServiceAutoLock lock;
 
     NS_ASSERTION(PR_CLIST_IS_EMPTY(this), "binding deleted while still on list");
     if (!PR_CLIST_IS_EMPTY(this))
         PR_REMOVE_LINK(this);       // XXX why are we still on a list?
-    
+
     // sever streamIO/binding link
     if (mStreamIO) {
         if (NS_FAILED(mStreamIO->ClearBinding()))
             nsCacheService::DoomEntry(mCacheEntry);
         NS_RELEASE(mStreamIO);
     }
 }
 
@@ -165,23 +165,23 @@ nsDiskCacheBindery::CreateBinding(nsCach
                                   nsDiskCacheRecord *  record)
 {
     NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized");
     nsCOMPtr<nsISupports> data = entry->Data();
     if (data) {
         NS_ERROR("cache entry already has bind data");
         return nullptr;
     }
-    
+
     nsDiskCacheBinding * binding = new nsDiskCacheBinding(entry, record);
     if (!binding)  return nullptr;
-        
+
     // give ownership of the binding to the entry
     entry->SetData(binding);
-    
+
     // add binding to collision detection system
     nsresult rv = AddBinding(binding);
     if (NS_FAILED(rv)) {
         entry->SetData(nullptr);
         return nullptr;
     }
 
     return binding;
@@ -227,40 +227,40 @@ nsDiskCacheBindery::AddBinding(nsDiskCac
     NS_ENSURE_ARG_POINTER(binding);
     NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized");
 
     // find hash entry for key
     auto hashEntry = static_cast<HashTableEntry*>
         (table.Add((void*)(uintptr_t)binding->mRecord.HashNumber(), fallible));
     if (!hashEntry)
         return NS_ERROR_OUT_OF_MEMORY;
-    
+
     if (hashEntry->mBinding == nullptr) {
         hashEntry->mBinding = binding;
         if (binding->mGeneration == 0)
             binding->mGeneration = 1;   // if generation uninitialized, set it to 1
-            
+
         return NS_OK;
     }
-    
-    
+
+
     // insert binding in generation order
     nsDiskCacheBinding * p  = hashEntry->mBinding;
     bool     calcGeneration = (binding->mGeneration == 0);  // do we need to calculate generation?
     if (calcGeneration)  binding->mGeneration = 1;          // initialize to 1 if uninitialized
     while (1) {
-    
+
         if (binding->mGeneration < p->mGeneration) {
             // here we are
             PR_INSERT_BEFORE(binding, p);
             if (hashEntry->mBinding == p)
                 hashEntry->mBinding = binding;
             break;
         }
-        
+
         if (binding->mGeneration == p->mGeneration) {
             if (calcGeneration)  ++binding->mGeneration;    // try the next generation
             else {
                 NS_ERROR("### disk cache: generations collide!");
                 return NS_ERROR_UNEXPECTED;
             }
         }
 
@@ -283,31 +283,31 @@ nsDiskCacheBindery::AddBinding(nsDiskCac
 /**
  *  RemoveBinding :  remove binding from collision detection on deactivation
  */
 void
 nsDiskCacheBindery::RemoveBinding(nsDiskCacheBinding * binding)
 {
     NS_ASSERTION(initialized, "nsDiskCacheBindery not initialized");
     if (!initialized)   return;
-    
+
     void* key = (void *)(uintptr_t)binding->mRecord.HashNumber();
     auto hashEntry =
         static_cast<HashTableEntry*>(table.Search((void*)(uintptr_t) key));
     if (!hashEntry) {
         NS_WARNING("### disk cache: binding not in hashtable!");
         return;
     }
-    
+
     if (binding == hashEntry->mBinding) {
         if (PR_CLIST_IS_EMPTY(binding)) {
             // remove this hash entry
             table.Remove((void*)(uintptr_t) binding->mRecord.HashNumber());
             return;
-            
+
         } else {
             // promote next binding to head, and unlink this binding
             hashEntry->mBinding = (nsDiskCacheBinding *)PR_NEXT_LINK(binding);
         }
     }
     PR_REMOVE_AND_INIT_LINK(binding);
 }
 
--- a/netwerk/cache/nsDiskCacheBlockFile.cpp
+++ b/netwerk/cache/nsDiskCacheBlockFile.cpp
@@ -10,17 +10,17 @@
 #include "mozilla/FileUtils.h"
 #include "mozilla/IntegerPrintfMacros.h"
 #include "mozilla/MemoryReporting.h"
 #include <algorithm>
 
 using namespace mozilla;
 
 /******************************************************************************
- * nsDiskCacheBlockFile - 
+ * nsDiskCacheBlockFile -
  *****************************************************************************/
 
 /******************************************************************************
  *  Open
  *****************************************************************************/
 nsresult
 nsDiskCacheBlockFile::Open(nsIFile * blockFile,
                            uint32_t  blockSize,
@@ -33,66 +33,66 @@ nsDiskCacheBlockFile::Open(nsIFile * blo
     if (bitMapSize % 32) {
         *corruptInfo = nsDiskCache::kInvalidArgPointer;
         return NS_ERROR_INVALID_ARG;
     }
 
     mBlockSize = blockSize;
     mBitMapWords = bitMapSize / 32;
     uint32_t bitMapBytes = mBitMapWords * 4;
-    
+
     // open the file - restricted to user, the data could be confidential
     nsresult rv = blockFile->OpenNSPRFileDesc(PR_RDWR | PR_CREATE_FILE, 00600, &mFD);
     if (NS_FAILED(rv)) {
         *corruptInfo = nsDiskCache::kCouldNotCreateBlockFile;
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheBlockFile::Open "
                          "[this=%p] unable to open or create file: %" PRId32,
                          this, static_cast<uint32_t>(rv)));
         return rv;  // unable to open or create file
     }
-    
+
     // allocate bit map buffer
     mBitMap = new uint32_t[mBitMapWords];
-    
+
     // check if we just creating the file
     mFileSize = PR_Available(mFD);
     if (mFileSize < 0) {
         // XXX an error occurred. We could call PR_GetError(), but how would that help?
         *corruptInfo = nsDiskCache::kBlockFileSizeError;
         rv = NS_ERROR_UNEXPECTED;
         goto error_exit;
     }
     if (mFileSize == 0) {
         // initialize bit map and write it
         memset(mBitMap, 0, bitMapBytes);
         if (!Write(0, mBitMap, bitMapBytes)) {
             *corruptInfo = nsDiskCache::kBlockFileBitMapWriteError;
             goto error_exit;
         }
-        
+
     } else if ((uint32_t)mFileSize < bitMapBytes) {
         *corruptInfo = nsDiskCache::kBlockFileSizeLessThanBitMap;
         rv = NS_ERROR_UNEXPECTED;  // XXX NS_ERROR_CACHE_INVALID;
         goto error_exit;
-        
+
     } else {
         // read the bit map
         const int32_t bytesRead = PR_Read(mFD, mBitMap, bitMapBytes);
         if ((bytesRead < 0) || ((uint32_t)bytesRead < bitMapBytes)) {
             *corruptInfo = nsDiskCache::kBlockFileBitMapReadError;
             rv = NS_ERROR_UNEXPECTED;
             goto error_exit;
         }
 #if defined(IS_LITTLE_ENDIAN)
         // Swap from network format
         for (unsigned int i = 0; i < mBitMapWords; ++i)
             mBitMap[i] = ntohl(mBitMap[i]);
 #endif
         // validate block file size
-        // Because not whole blocks are written, the size may be a 
+        // Because not whole blocks are written, the size may be a
         // little bit smaller than used blocks times blocksize,
         // because the last block will generally not be 'whole'.
         const uint32_t  estimatedSize = CalcBlockFileSize();
         if ((uint32_t)mFileSize + blockSize < estimatedSize) {
             *corruptInfo = nsDiskCache::kBlockFileEstimatedSizeError;
             rv = NS_ERROR_UNEXPECTED;
             goto error_exit;
         }
@@ -125,17 +125,17 @@ nsDiskCacheBlockFile::Close(bool flush)
             rv = NS_ERROR_UNEXPECTED;
         mFD = nullptr;
     }
 
      if (mBitMap) {
          delete [] mBitMap;
          mBitMap = nullptr;
      }
-        
+
     return rv;
 }
 
 
 /******************************************************************************
  *  AllocateBlocks
  *
  *  Allocates 1-4 blocks, using a first fit strategy,
@@ -158,47 +158,47 @@ nsDiskCacheBlockFile::AllocateBlocks(int
             if ((mapWord & 0x000FF) == 0) { bit |= 8;  mapWord >>= 8;  }
             if ((mapWord & 0x0000F) == 0) { bit |= 4;  mapWord >>= 4;  }
             if ((mapWord & 0x00003) == 0) { bit |= 2;  mapWord >>= 2;  }
             if ((mapWord & 0x00001) == 0) { bit |= 1;  mapWord >>= 1;  }
             // Find first fit for mask
             for (; bit <= maxPos; ++bit) {
                 // all bits selected by mask are 1, so free
                 if ((mask & mapWord) == mask) {
-                    mBitMap[i] |= mask << bit; 
+                    mBitMap[i] |= mask << bit;
                     mBitMapDirty = true;
                     return (int32_t)i * 32 + bit;
                 }
             }
         }
     }
-    
+
     return -1;
 }
 
 
 /******************************************************************************
  *  DeallocateBlocks
  *****************************************************************************/
 nsresult
 nsDiskCacheBlockFile::DeallocateBlocks( int32_t  startBlock, int32_t  numBlocks)
 {
     if (!mFD)  return NS_ERROR_NOT_AVAILABLE;
 
     if ((startBlock < 0) || ((uint32_t)startBlock > mBitMapWords * 32 - 1) ||
         (numBlocks < 1)  || (numBlocks > 4))
        return NS_ERROR_ILLEGAL_VALUE;
-           
+
     const int32_t startWord = startBlock >> 5;      // Divide by 32
-    const uint32_t startBit = startBlock & 31;      // Modulo by 32 
-      
+    const uint32_t startBit = startBlock & 31;      // Modulo by 32
+
     // make sure requested deallocation doesn't span a word boundary
     if (startBit + numBlocks > 32)  return NS_ERROR_UNEXPECTED;
     uint32_t mask = ((0x01 << numBlocks) - 1) << startBit;
-    
+
     // make sure requested deallocation is currently allocated
     if ((mBitMap[startWord] & mask) != mask)    return NS_ERROR_ABORT;
 
     mBitMap[startWord] ^= mask;    // flips the bits off;
     mBitMapDirty = true;
     // XXX rv = FlushBitMap();  // coherency vs. performance
     return NS_OK;
 }
@@ -218,17 +218,17 @@ nsDiskCacheBlockFile::WriteBlocks( void 
 
     // allocate some blocks in the cache block file
     *startBlock = AllocateBlocks(numBlocks);
     if (*startBlock < 0)
         return NS_ERROR_NOT_AVAILABLE;
 
     // seek to block position
     int32_t blockPos = mBitMapWords * 4 + *startBlock * mBlockSize;
-    
+
     // write the blocks
     return Write(blockPos, buffer, size) ? NS_OK : NS_ERROR_FAILURE;
 }
 
 
 /******************************************************************************
  *  ReadBlocks
  *****************************************************************************/
@@ -238,44 +238,44 @@ nsDiskCacheBlockFile::ReadBlocks( void *
                                   int32_t   numBlocks,
                                   int32_t * bytesRead)
 {
     // presume buffer != nullptr and bytesRead != bytesRead
 
     if (!mFD)  return NS_ERROR_NOT_AVAILABLE;
     nsresult rv = VerifyAllocation(startBlock, numBlocks);
     if (NS_FAILED(rv))  return rv;
-    
+
     // seek to block position
     int32_t blockPos = mBitMapWords * 4 + startBlock * mBlockSize;
     int32_t filePos = PR_Seek(mFD, blockPos, PR_SEEK_SET);
     if (filePos != blockPos)  return NS_ERROR_UNEXPECTED;
 
     // read the blocks
     int32_t bytesToRead = *bytesRead;
     if ((bytesToRead <= 0) || ((uint32_t)bytesToRead > mBlockSize * numBlocks)) {
         bytesToRead = mBlockSize * numBlocks;
     }
     *bytesRead = PR_Read(mFD, buffer, bytesToRead);
-    
+
     CACHE_LOG_DEBUG(("CACHE: nsDiskCacheBlockFile::Read [this=%p] "
                      "returned %d / %d bytes", this, *bytesRead, bytesToRead));
 
     return NS_OK;
 }
 
 
 /******************************************************************************
  *  FlushBitMap
  *****************************************************************************/
 nsresult
 nsDiskCacheBlockFile::FlushBitMap()
 {
     if (!mBitMapDirty)  return NS_OK;
-    
+
 #if defined(IS_LITTLE_ENDIAN)
     uint32_t *bitmap = new uint32_t[mBitMapWords];
     // Copy and swap to network format
     uint32_t *p = bitmap;
     for (unsigned int i = 0; i < mBitMapWords; ++i, ++p)
       *p = htonl(mBitMap[i]);
 #else
     uint32_t *bitmap = mBitMap;
@@ -307,27 +307,27 @@ nsDiskCacheBlockFile::FlushBitMap()
  *
  *****************************************************************************/
 nsresult
 nsDiskCacheBlockFile::VerifyAllocation( int32_t  startBlock, int32_t  numBlocks)
 {
     if ((startBlock < 0) || ((uint32_t)startBlock > mBitMapWords * 32 - 1) ||
         (numBlocks < 1)  || (numBlocks > 4))
        return NS_ERROR_ILLEGAL_VALUE;
-    
+
     const int32_t startWord = startBlock >> 5;      // Divide by 32
-    const uint32_t startBit = startBlock & 31;      // Modulo by 32 
-      
+    const uint32_t startBit = startBlock & 31;      // Modulo by 32
+
     // make sure requested deallocation doesn't span a word boundary
     if (startBit + numBlocks > 32)  return NS_ERROR_ILLEGAL_VALUE;
     uint32_t mask = ((0x01 << numBlocks) - 1) << startBit;
-    
+
     // check if all specified blocks are currently allocated
     if ((mBitMap[startWord] & mask) != mask)    return NS_ERROR_FAILURE;
-    
+
     return NS_OK;
 }
 
 
 /******************************************************************************
  *  CalcBlockFileSize
  *
  *  Return size of the block file according to the bits set in mBitmap
--- a/netwerk/cache/nsDiskCacheBlockFile.h
+++ b/netwerk/cache/nsDiskCacheBlockFile.h
@@ -25,30 +25,30 @@ public:
            : mFD(nullptr)
            , mBitMap(nullptr)
            , mBlockSize(0)
            , mBitMapWords(0)
            , mFileSize(0)
            , mBitMapDirty(false)
             {}
     ~nsDiskCacheBlockFile() { (void) Close(true); }
-    
+
     nsresult  Open( nsIFile *  blockFile, uint32_t  blockSize,
                     uint32_t  bitMapSize, nsDiskCache::CorruptCacheInfo *  corruptInfo);
     nsresult  Close(bool flush);
 
     /*
      * Trim
      * Truncates the block file to the end of the last allocated block.
      */
     nsresult  Trim() { return nsDiskCache::Truncate(mFD, CalcBlockFileSize()); }
     nsresult  DeallocateBlocks( int32_t  startBlock, int32_t  numBlocks);
-    nsresult  WriteBlocks( void * buffer, uint32_t size, int32_t  numBlocks, 
+    nsresult  WriteBlocks( void * buffer, uint32_t size, int32_t  numBlocks,
                            int32_t * startBlock);
-    nsresult  ReadBlocks( void * buffer, int32_t  startBlock, int32_t  numBlocks, 
+    nsresult  ReadBlocks( void * buffer, int32_t  startBlock, int32_t  numBlocks,
                           int32_t * bytesRead);
 
     size_t   SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf);
 
 private:
     nsresult  FlushBitMap();
     int32_t   AllocateBlocks( int32_t  numBlocks);
     nsresult  VerifyAllocation( int32_t startBlock, int32_t numBLocks);
--- a/netwerk/cache/nsDiskCacheDevice.cpp
+++ b/netwerk/cache/nsDiskCacheDevice.cpp
@@ -113,51 +113,51 @@ public:
     nsDiskCacheEvictor( nsDiskCacheMap *      cacheMap,
                         nsDiskCacheBindery *  cacheBindery,
                         uint32_t              targetSize,
                         const char *          clientID)
         : mCacheMap(cacheMap)
         , mBindery(cacheBindery)
         , mTargetSize(targetSize)
         , mClientID(clientID)
-    { 
+    {
         mClientIDSize = clientID ? strlen(clientID) : 0;
     }
-    
+
     virtual int32_t  VisitRecord(nsDiskCacheRecord *  mapRecord);
- 
+
 private:
         nsDiskCacheMap *     mCacheMap;
         nsDiskCacheBindery * mBindery;
         uint32_t             mTargetSize;
         const char *         mClientID;
         uint32_t             mClientIDSize;
 };
 
 
 int32_t
 nsDiskCacheEvictor::VisitRecord(nsDiskCacheRecord *  mapRecord)
 {
     if (mCacheMap->TotalSize() < mTargetSize)
         return kStopVisitingRecords;
-    
+
     if (mClientID) {
         // we're just evicting records for a specific client
         nsDiskCacheEntry * diskEntry = mCacheMap->ReadDiskCacheEntry(mapRecord);
         if (!diskEntry)
             return kVisitNextRecord;  // XXX or delete record?
-    
+
         // Compare clientID's without malloc
         if ((diskEntry->mKeySize <= mClientIDSize) ||
             (diskEntry->Key()[mClientIDSize] != ':') ||
             (memcmp(diskEntry->Key(), mClientID, mClientIDSize) != 0)) {
             return kVisitNextRecord;  // clientID doesn't match, skip it
         }
     }
-    
+
     nsDiskCacheBinding * binding = mBindery->FindActiveBinding(mapRecord->HashNumber());
     if (binding) {
         // If the entry is pending deactivation, cancel deactivation and doom
         // the entry
         if (binding->mDeactivateEvent) {
             binding->mDeactivateEvent->CancelEvent();
             binding->mDeactivateEvent = nullptr;
         }
@@ -203,23 +203,23 @@ NS_IMETHODIMP nsDiskCacheDeviceInfo::Get
     *aDescription = NS_strdup("Disk cache device");
     return *aDescription ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
 
 NS_IMETHODIMP nsDiskCacheDeviceInfo::GetUsageReport(char ** usageReport)
 {
     NS_ENSURE_ARG_POINTER(usageReport);
     nsCString buffer;
-    
+
     buffer.AssignLiteral("  <tr>\n"
                          "    <th>Cache Directory:</th>\n"
                          "    <td>");
     nsCOMPtr<nsIFile> cacheDir;
     nsAutoString path;
-    mDevice->getCacheDirectory(getter_AddRefs(cacheDir)); 
+    mDevice->getCacheDirectory(getter_AddRefs(cacheDir));
     nsresult rv = cacheDir->GetPath(path);
     if (NS_SUCCEEDED(rv)) {
         AppendUTF16toUTF8(path, buffer);
     } else {
         buffer.AppendLiteral("directory unavailable");
     }
     buffer.AppendLiteral("</td>\n"
                          "  </tr>\n");
@@ -270,17 +270,17 @@ NS_IMETHODIMP nsDiskCacheDeviceInfo::Get
  *  to be revised.
  */
 
 static inline void hashmix(uint32_t& a, uint32_t& b, uint32_t& c)
 {
   a -= b; a -= c; a ^= (c>>13);
   b -= c; b -= a; b ^= (a<<8);
   c -= a; c -= b; c ^= (b>>13);
-  a -= b; a -= c; a ^= (c>>12); 
+  a -= b; a -= c; a ^= (c>>12);
   b -= c; b -= a; b ^= (a<<16);
   c -= a; c -= b; c ^= (b>>5);
   a -= b; a -= c; a ^= (c>>3);
   b -= c; b -= a; b ^= (a<<10);
   c -= a; c -= b; c ^= (b>>15);
 }
 
 PLDHashNumber
@@ -486,40 +486,40 @@ nsDiskCacheDevice::FindEntry(nsCString *
                                      // FindActiveBinding() does not return
                                      // bindings to doomed entries
     }
     binding = nullptr;
 
     // lookup hash number in cache map
     nsresult rv = mCacheMap.FindRecord(hashNumber, &record);
     if (NS_FAILED(rv))  return nullptr;  // XXX log error?
-    
+
     nsDiskCacheEntry * diskEntry = mCacheMap.ReadDiskCacheEntry(&record);
     if (!diskEntry) return nullptr;
-    
+
     // compare key to be sure
     if (!key->Equals(diskEntry->Key())) {
         *collision = true;
         return nullptr;
     }
-    
+
     nsCacheEntry * entry = diskEntry->CreateCacheEntry(this);
     if (entry) {
         binding = mBindery.CreateBinding(entry, &record);
         if (!binding) {
             delete entry;
             entry = nullptr;
         }
     }
 
     if (!entry) {
       (void) mCacheMap.DeleteStorage(&record);
       (void) mCacheMap.DeleteRecord(&record);
     }
-    
+
     return entry;
 }
 
 
 /**
  *  NOTE: called while holding the cache service lock
  */
 nsresult
@@ -576,17 +576,17 @@ nsDiskCacheDevice::DeactivateEntry_Priva
 /**
  * BindEntry()
  *      no hash number collision -> no problem
  *      collision
  *          record not active -> evict, no problem
  *          record is active
  *              record is already doomed -> record shouldn't have been in map, no problem
  *              record is not doomed -> doom, and replace record in map
- *              
+ *
  *              walk matching hashnumber list to find lowest generation number
  *              take generation number from other (data/meta) location,
  *                  or walk active list
  *
  *  NOTE: called while holding the cache service lock
  */
 nsresult
 nsDiskCacheDevice::BindEntry(nsCacheEntry * entry)
@@ -638,17 +638,17 @@ nsDiskCacheDevice::BindEntry(nsCacheEntr
 
     CACHE_LOG_DEBUG(("CACHE: disk BindEntry [%p %x]\n",
         entry, record.HashNumber()));
 
     if (!entry->IsDoomed()) {
         // if entry isn't doomed, add it to the cache map
         rv = mCacheMap.AddRecord(&record, &oldRecord); // deletes old record, if any
         if (NS_FAILED(rv))  return rv;
-        
+
         uint32_t    oldHashNumber = oldRecord.HashNumber();
         if (oldHashNumber) {
             // gotta evict this one first
             nsDiskCacheBinding * oldBinding = mBindery.FindActiveBinding(oldHashNumber);
             if (oldBinding) {
                 // XXX if debug : compare keys for hashNumber collision
 
                 if (!oldBinding->mCacheEntry->IsDoomed()) {
@@ -664,17 +664,17 @@ nsDiskCacheDevice::BindEntry(nsCacheEntr
             } else {
                 // delete storage
                 // XXX if debug : compare keys for hashNumber collision
                 rv = mCacheMap.DeleteStorage(&oldRecord);
                 if (NS_FAILED(rv))  return rv;  // XXX delete record we just added?
             }
         }
     }
-    
+
     // Make sure this entry has its associated nsDiskCacheBinding attached.
     binding = mBindery.CreateBinding(entry, &record);
     NS_ASSERTION(binding, "nsDiskCacheDevice::BindEntry");
     if (!binding) return NS_ERROR_OUT_OF_MEMORY;
     NS_ASSERTION(binding->mRecord.ValidRecord(), "bad cache map record");
 
     return NS_OK;
 }
@@ -705,17 +705,17 @@ nsDiskCacheDevice::DoomEntry(nsCacheEntr
 }
 
 
 /**
  *  NOTE: called while holding the cache service lock
  */
 nsresult
 nsDiskCacheDevice::OpenInputStreamForEntry(nsCacheEntry *      entry,
-                                           nsCacheAccessMode   mode, 
+                                           nsCacheAccessMode   mode,
                                            uint32_t            offset,
                                            nsIInputStream **   result)
 {
     CACHE_LOG_DEBUG(("CACHE: disk OpenInputStreamForEntry [%p %x %u]\n",
         entry, mode, offset));
 
     NS_ENSURE_ARG_POINTER(entry);
     NS_ENSURE_ARG_POINTER(result);
@@ -734,31 +734,31 @@ nsDiskCacheDevice::OpenInputStreamForEnt
 }
 
 
 /**
  *  NOTE: called while holding the cache service lock
  */
 nsresult
 nsDiskCacheDevice::OpenOutputStreamForEntry(nsCacheEntry *      entry,
-                                            nsCacheAccessMode   mode, 
+                                            nsCacheAccessMode   mode,
                                             uint32_t            offset,
                                             nsIOutputStream **  result)
 {
     CACHE_LOG_DEBUG(("CACHE: disk OpenOutputStreamForEntry [%p %x %u]\n",
         entry, mode, offset));
- 
+
     NS_ENSURE_ARG_POINTER(entry);
     NS_ENSURE_ARG_POINTER(result);
 
     nsresult             rv;
     nsDiskCacheBinding * binding = GetCacheEntryBinding(entry);
     if (!IsValidBinding(binding))
         return NS_ERROR_UNEXPECTED;
-    
+
     NS_ASSERTION(binding->mCacheEntry == entry, "binding & entry don't point to each other");
 
     rv = binding->EnsureStreamIO();
     if (NS_FAILED(rv)) return rv;
 
     return binding->mStreamIO->GetOutputStream(offset, result);
 }
 
@@ -769,17 +769,17 @@ nsDiskCacheDevice::OpenOutputStreamForEn
 nsresult
 nsDiskCacheDevice::GetFileForEntry(nsCacheEntry *    entry,
                                    nsIFile **        result)
 {
     NS_ENSURE_ARG_POINTER(result);
     *result = nullptr;
 
     nsresult             rv;
-        
+
     nsDiskCacheBinding * binding = GetCacheEntryBinding(entry);
     if (!IsValidBinding(binding))
         return NS_ERROR_UNEXPECTED;
 
     // check/set binding->mRecord for separate file, sync w/mCacheMap
     if (binding->mRecord.DataLocationInitialized()) {
         if (binding->mRecord.DataFile() != 0)
             return NS_ERROR_NOT_AVAILABLE;  // data not stored as separate file
@@ -789,24 +789,24 @@ nsDiskCacheDevice::GetFileForEntry(nsCac
         binding->mRecord.SetDataFileGeneration(binding->mGeneration);
         binding->mRecord.SetDataFileSize(0);    // 1k minimum
         if (!binding->mDoomed) {
             // record stored in cache map, so update it
             rv = mCacheMap.UpdateRecord(&binding->mRecord);
             if (NS_FAILED(rv))  return rv;
         }
     }
-    
+
     nsCOMPtr<nsIFile>  file;
     rv = mCacheMap.GetFileForDiskCacheRecord(&binding->mRecord,
                                              nsDiskCache::kData,
                                              false,
                                              getter_AddRefs(file));
     if (NS_FAILED(rv))  return rv;
-    
+
     NS_IF_ADDREF(*result = file);
     return NS_OK;
 }
 
 
 /**
  *  This routine will get called every time an open descriptor is written to.
  *
@@ -849,87 +849,87 @@ nsDiskCacheDevice::OnDataSizeChange(nsCa
     if (sizeK > kMaxDataSizeK) sizeK = kMaxDataSizeK;
     if (newSizeK > kMaxDataSizeK) newSizeK = kMaxDataSizeK;
 
     // pre-evict entries to make space for new data
     uint32_t  targetCapacity = mCacheCapacity > (newSizeK - sizeK)
                              ? mCacheCapacity - (newSizeK - sizeK)
                              : 0;
     EvictDiskCacheEntries(targetCapacity);
-    
+
     return NS_OK;
 }
 
 
 /******************************************************************************
  *  EntryInfoVisitor
  *****************************************************************************/
 class EntryInfoVisitor : public nsDiskCacheRecordVisitor
 {
 public:
     EntryInfoVisitor(nsDiskCacheMap *    cacheMap,
                      nsICacheVisitor *   visitor)
         : mCacheMap(cacheMap)
         , mVisitor(visitor)
     {}
-    
+
     virtual int32_t  VisitRecord(nsDiskCacheRecord *  mapRecord)
     {
         // XXX optimization: do we have this record in memory?
-        
+
         // read in the entry (metadata)
         nsDiskCacheEntry * diskEntry = mCacheMap->ReadDiskCacheEntry(mapRecord);
         if (!diskEntry) {
             return kVisitNextRecord;
         }
 
         // create nsICacheEntryInfo
         nsDiskCacheEntryInfo * entryInfo = new nsDiskCacheEntryInfo(DISK_CACHE_DEVICE_ID, diskEntry);
         if (!entryInfo) {
             return kStopVisitingRecords;
         }
         nsCOMPtr<nsICacheEntryInfo> ref(entryInfo);
-        
+
         bool    keepGoing;
         (void)mVisitor->VisitEntry(DISK_CACHE_DEVICE_ID, entryInfo, &keepGoing);
         return keepGoing ? kVisitNextRecord : kStopVisitingRecords;
     }
- 
+
 private:
         nsDiskCacheMap *    mCacheMap;
         nsICacheVisitor *   mVisitor;
 };
 
 
 nsresult
 nsDiskCacheDevice::Visit(nsICacheVisitor * visitor)
 {
     if (!Initialized())  return NS_ERROR_NOT_INITIALIZED;
     nsDiskCacheDeviceInfo* deviceInfo = new nsDiskCacheDeviceInfo(this);
     nsCOMPtr<nsICacheDeviceInfo> ref(deviceInfo);
-    
+
     bool keepGoing;
     nsresult rv = visitor->VisitDevice(DISK_CACHE_DEVICE_ID, deviceInfo, &keepGoing);
     if (NS_FAILED(rv)) return rv;
-    
+
     if (keepGoing) {
         EntryInfoVisitor  infoVisitor(&mCacheMap, visitor);
         return mCacheMap.VisitRecords(&infoVisitor);
     }
 
     return NS_OK;
 }
 
 // Max allowed size for an entry is currently MIN(mMaxEntrySize, 1/8 CacheCapacity)
 bool
 nsDiskCacheDevice::EntryIsTooBig(int64_t entrySize)
 {
     if (mMaxEntrySize == -1) // no limit
         return entrySize > (static_cast<int64_t>(mCacheCapacity) * 1024 / 8);
-    else 
+    else
         return entrySize > mMaxEntrySize ||
                entrySize > (static_cast<int64_t>(mCacheCapacity) * 1024 / 8);
 }
 
 nsresult
 nsDiskCacheDevice::EvictEntries(const char * clientID)
 {
     CACHE_LOG_DEBUG(("CACHE: disk EvictEntries [%s]\n", clientID));
@@ -941,17 +941,17 @@ nsDiskCacheDevice::EvictEntries(const ch
         // we're clearing the entire disk cache
         rv = ClearDiskCache();
         if (rv != NS_ERROR_CACHE_IN_USE)
             return rv;
     }
 
     nsDiskCacheEvictor  evictor(&mCacheMap, &mBindery, 0, clientID);
     rv = mCacheMap.VisitRecords(&evictor);
-    
+
     if (clientID == nullptr)     // we tried to clear the entire cache
         rv = mCacheMap.Trim(); // so trim cache block files (if possible)
     return rv;
 }
 
 
 /**
  *  private methods
@@ -988,18 +988,18 @@ nsDiskCacheDevice::OpenDiskCache()
     if (!exists) {
         nsCacheService::MarkStartingFresh();
         rv = mCacheDirectory->Create(nsIFile::DIRECTORY_TYPE, 0777);
         CACHE_LOG_PATH(LogLevel::Info, "\ncreate cache directory: %s\n", mCacheDirectory);
         CACHE_LOG_INFO(("mCacheDirectory->Create() = %" PRIx32 "\n",
                         static_cast<uint32_t>(rv)));
         if (NS_FAILED(rv))
             return rv;
-    
-        // reopen the cache map     
+
+        // reopen the cache map
         nsDiskCache::CorruptCacheInfo corruptInfo;
         rv = mCacheMap.Open(mCacheDirectory, &corruptInfo);
         if (NS_FAILED(rv))
             return rv;
     }
 
     return NS_OK;
 }
@@ -1069,22 +1069,22 @@ nsDiskCacheDevice::SetCacheParentDirecto
     // ensure parent directory exists
     rv = parentDir->Exists(&exists);
     if (NS_SUCCEEDED(rv) && !exists)
         rv = parentDir->Create(nsIFile::DIRECTORY_TYPE, 0700);
     if (NS_FAILED(rv))  return;
 
     // ensure cache directory exists
     nsCOMPtr<nsIFile> directory;
-    
+
     rv = parentDir->Clone(getter_AddRefs(directory));
     if (NS_FAILED(rv))  return;
     rv = directory->AppendNative(NS_LITERAL_CSTRING("Cache"));
     if (NS_FAILED(rv))  return;
-    
+
     mCacheDirectory = do_QueryInterface(directory);
 }
 
 
 void
 nsDiskCacheDevice::getCacheDirectory(nsIFile ** result)
 {
     *result = mCacheDirectory;
--- a/netwerk/cache/nsDiskCacheDevice.h
+++ b/netwerk/cache/nsDiskCacheDevice.h
@@ -43,17 +43,17 @@ public:
                                               nsCacheAccessMode  mode,
                                               uint32_t           offset,
                                               nsIOutputStream ** result);
 
     virtual nsresult        GetFileForEntry(nsCacheEntry *    entry,
                                             nsIFile **        result);
 
     virtual nsresult        OnDataSizeChange(nsCacheEntry * entry, int32_t deltaSize);
-    
+
     virtual nsresult        Visit(nsICacheVisitor * visitor);
 
     virtual nsresult        EvictEntries(const char * clientID);
 
     bool                    EntryIsTooBig(int64_t entrySize);
 
     size_t                 SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf);
 
@@ -65,20 +65,20 @@ public:
     void                    SetMaxEntrySize(int32_t  maxSizeInKilobytes);
 
 /* private: */
 
     void                    getCacheDirectory(nsIFile ** result);
     uint32_t                getCacheCapacity();
     uint32_t                getCacheSize();
     uint32_t                getEntryCount();
-    
+
     nsDiskCacheMap *        CacheMap()    { return &mCacheMap; }
-    
-private:    
+
+private:
     friend class nsDiskCacheDeviceDeactivateEntryEvent;
     friend class nsEvictDiskCacheEntriesEvent;
     friend class nsDiskCacheMap;
     /**
      *  Private methods
      */
 
     inline bool IsValidBinding(nsDiskCacheBinding *binding)
@@ -94,17 +94,17 @@ private:
     nsresult                Shutdown_Private(bool flush);
     nsresult                DeactivateEntry_Private(nsCacheEntry * entry,
                                                     nsDiskCacheBinding * binding);
 
     nsresult                OpenDiskCache();
     nsresult                ClearDiskCache();
 
     nsresult                EvictDiskCacheEntries(uint32_t  targetCapacity);
-    
+
     /**
      *  Member variables
      */
     nsCOMPtr<nsIFile>       mCacheDirectory;
     nsDiskCacheBindery      mBindery;
     uint32_t                mCacheCapacity;     // Unit is KiB's
     int32_t                 mMaxEntrySize;      // Unit is bytes internally
     // XXX need soft/hard limits, currentTotal
--- a/netwerk/cache/nsDiskCacheDeviceSQL.cpp
+++ b/netwerk/cache/nsDiskCacheDeviceSQL.cpp
@@ -366,17 +366,17 @@ nsOfflineCacheDeviceInfo::GetUsageReport
     return NS_OK;
 
   nsAutoString path;
   nsresult rv = cacheDir->GetPath(path);
   if (NS_SUCCEEDED(rv))
     AppendUTF16toUTF8(path, buffer);
   else
     buffer.AppendLiteral("directory unavailable");
-  
+
   buffer.AppendLiteral("</td>\n"
                        "  </tr>\n");
 
   *usageReport = ToNewCString(buffer);
   if (!*usageReport)
     return NS_ERROR_OUT_OF_MEMORY;
 
   return NS_OK;
@@ -522,17 +522,17 @@ CreateCacheEntry(nsOfflineCacheDevice *d
                  const nsCString *fullKey,
                  const nsOfflineCacheRecord &rec)
 {
   nsCacheEntry *entry;
 
   if (device->IsLocked(*fullKey)) {
       return nullptr;
   }
-  
+
   nsresult rv = nsCacheEntry::Create(fullKey->get(), // XXX enable sharing
                                      nsICache::STREAM_BASED,
                                      nsICache::STORE_OFFLINE,
                                      device, &entry);
   if (NS_FAILED(rv))
     return nullptr;
 
   entry->SetFetchCount((uint32_t) rec.fetchCount);
@@ -981,17 +981,17 @@ nsOfflineCacheDevice::CacheSize()
 {
   NS_ENSURE_TRUE(Initialized(), 0);
 
   AutoResetStatement statement(mStatement_CacheSize);
 
   bool hasRows;
   nsresult rv = statement->ExecuteStep(&hasRows);
   NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && hasRows, 0);
-  
+
   return (uint32_t) statement->AsInt32(0);
 }
 
 uint32_t
 nsOfflineCacheDevice::EntryCount()
 {
   NS_ENSURE_TRUE(Initialized(), 0);
 
@@ -1192,17 +1192,17 @@ nsOfflineCacheDevice::InitWithSqlite(moz
   // SetCacheParentDirectory must have been called
   NS_ENSURE_TRUE(mCacheDirectory, NS_ERROR_UNEXPECTED);
 
   // make sure the cache directory exists
   nsresult rv = EnsureDir(mCacheDirectory);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // build path to index file
-  nsCOMPtr<nsIFile> indexFile; 
+  nsCOMPtr<nsIFile> indexFile;
   rv = mCacheDirectory->Clone(getter_AddRefs(indexFile));
   NS_ENSURE_SUCCESS(rv, rv);
   rv = indexFile->AppendNative(NS_LITERAL_CSTRING("index.sqlite"));
   NS_ENSURE_SUCCESS(rv, rv);
 
   MOZ_ASSERT(ss, "nsOfflineCacheDevice::InitWithSqlite called before nsCacheService::Init() ?");
   NS_ENSURE_TRUE(ss, NS_ERROR_UNEXPECTED);
 
@@ -1706,17 +1706,17 @@ nsOfflineCacheDevice::BindEntry(nsCacheE
   if (NS_FAILED(tmp)) {
     rv = tmp;
   }
   tmp = statement->BindInt64ByIndex(8, rec.expirationTime);
   if (NS_FAILED(tmp)) {
     rv = tmp;
   }
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   bool hasRows;
   rv = statement->ExecuteStep(&hasRows);
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ASSERTION(!hasRows, "INSERT should not result in output");
 
   entry->SetData(binding);
 
   // lock the entry
@@ -1732,17 +1732,17 @@ nsOfflineCacheDevice::DoomEntry(nsCacheE
 
   // This method is called to inform us that we should mark the entry to be
   // deleted when it is no longer in use.
 
   // We can go ahead and delete the corresponding row in our table,
   // but we must not delete the file on disk until we are deactivated.
   // In another word, the file should be deleted if the entry had been
   // deactivated.
-  
+
   DeleteEntry(entry, !entry->IsActive());
 }
 
 nsresult
 nsOfflineCacheDevice::OpenInputStreamForEntry(nsCacheEntry      *entry,
                                               nsCacheAccessMode  mode,
                                               uint32_t           offset,
                                               nsIInputStream   **result)
@@ -1882,17 +1882,17 @@ nsOfflineCacheDevice::Visit(nsICacheVisi
   nsCOMPtr<nsICacheDeviceInfo> deviceInfo =
       new nsOfflineCacheDeviceInfo(this);
 
   bool keepGoing;
   nsresult rv = visitor->VisitDevice(OFFLINE_CACHE_DEVICE_ID, deviceInfo,
                                      &keepGoing);
   if (NS_FAILED(rv))
     return rv;
-  
+
   if (!keepGoing)
     return NS_OK;
 
   // SELECT * from moz_cache;
 
   nsOfflineCacheRecord rec;
   RefPtr<nsOfflineCacheEntryInfo> info = new nsOfflineCacheEntryInfo;
   if (!info)
--- a/netwerk/cache/nsDiskCacheDeviceSQL.h
+++ b/netwerk/cache/nsDiskCacheDeviceSQL.h
@@ -93,17 +93,17 @@ public:
                                             nsCacheAccessMode  mode,
                                             uint32_t           offset,
                                             nsIOutputStream ** result) override;
 
   virtual nsresult        GetFileForEntry(nsCacheEntry *    entry,
                                           nsIFile **        result) override;
 
   virtual nsresult        OnDataSizeChange(nsCacheEntry * entry, int32_t deltaSize) override;
-  
+
   virtual nsresult        Visit(nsICacheVisitor * visitor) override;
 
   virtual nsresult        EvictEntries(const char * clientID) override;
 
   /* Entry ownership */
   nsresult                GetOwnerDomains(const char *        clientID,
                                           uint32_t *          count,
                                           char ***            domains);
--- a/netwerk/cache/nsDiskCacheEntry.cpp
+++ b/netwerk/cache/nsDiskCacheEntry.cpp
@@ -27,25 +27,25 @@ nsDiskCacheEntry::CreateCacheEntry(nsCac
 {
     nsCacheEntry * entry = nullptr;
     nsresult       rv = nsCacheEntry::Create(Key(),
                                              nsICache::STREAM_BASED,
                                              nsICache::STORE_ON_DISK,
                                              device,
                                              &entry);
     if (NS_FAILED(rv) || !entry) return nullptr;
-    
+
     entry->SetFetchCount(mFetchCount);
     entry->SetLastFetched(mLastFetched);
     entry->SetLastModified(mLastModified);
     entry->SetExpirationTime(mExpirationTime);
     entry->SetCacheDevice(device);
     // XXX why does nsCacheService have to fill out device in BindEntry()?
     entry->SetDataSize(mDataSize);
-    
+
     rv = entry->UnflattenMetaData(MetaData(), mMetaDataSize);
     if (NS_FAILED(rv)) {
         delete entry;
         return nullptr;
     }
 
     // Restore security info, if present
     const char* info = entry->GetMetaDataElement("security-info");
@@ -55,17 +55,17 @@ nsDiskCacheEntry::CreateCacheEntry(nsCac
                                   getter_AddRefs(infoObj));
         if (NS_FAILED(rv)) {
             delete entry;
             return nullptr;
         }
         entry->SetSecurityInfo(infoObj);
     }
 
-    return entry;                      
+    return entry;
 }
 
 
 /******************************************************************************
  *  nsDiskCacheEntryInfo
  *****************************************************************************/
 
 NS_IMPL_ISUPPORTS(nsDiskCacheEntryInfo, nsICacheEntryInfo)
--- a/netwerk/cache/nsDiskCacheEntry.h
+++ b/netwerk/cache/nsDiskCacheEntry.h
@@ -23,44 +23,44 @@ struct nsDiskCacheEntry {
     uint32_t        mLastModified;
     uint32_t        mExpirationTime;
     uint32_t        mDataSize;
     uint32_t        mKeySize;       // includes terminating null byte
     uint32_t        mMetaDataSize;  // includes terminating null byte
     // followed by key data (mKeySize bytes)
     // followed by meta data (mMetaDataSize bytes)
 
-    uint32_t        Size()    { return sizeof(nsDiskCacheEntry) + 
+    uint32_t        Size()    { return sizeof(nsDiskCacheEntry) +
                                     mKeySize + mMetaDataSize;
                               }
 
-    char*           Key()     { return reinterpret_cast<char*const>(this) + 
+    char*           Key()     { return reinterpret_cast<char*const>(this) +
                                     sizeof(nsDiskCacheEntry);
                               }
 
     char*           MetaData()
                               { return Key() + mKeySize; }
 
     nsCacheEntry *  CreateCacheEntry(nsCacheDevice *  device);
 
     void Swap()         // host to network (memory to disk)
     {
-#if defined(IS_LITTLE_ENDIAN)   
+#if defined(IS_LITTLE_ENDIAN)
         mHeaderVersion      = htonl(mHeaderVersion);
         mMetaLocation       = htonl(mMetaLocation);
         mFetchCount         = htonl(mFetchCount);
         mLastFetched        = htonl(mLastFetched);
         mLastModified       = htonl(mLastModified);
         mExpirationTime     = htonl(mExpirationTime);
         mDataSize           = htonl(mDataSize);
         mKeySize            = htonl(mKeySize);
         mMetaDataSize       = htonl(mMetaDataSize);
 #endif
     }
-    
+
     void Unswap()       // network to host (disk to memory)
     {
 #if defined(IS_LITTLE_ENDIAN)
         mHeaderVersion      = ntohl(mHeaderVersion);
         mMetaLocation       = ntohl(mMetaLocation);
         mFetchCount         = ntohl(mFetchCount);
         mLastFetched        = ntohl(mLastFetched);
         mLastModified       = ntohl(mLastModified);
@@ -81,19 +81,19 @@ public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSICACHEENTRYINFO
 
     nsDiskCacheEntryInfo(const char * deviceID, nsDiskCacheEntry * diskEntry)
         : mDeviceID(deviceID)
         , mDiskEntry(diskEntry)
     {
     }
-    
+
     const char* Key() { return mDiskEntry->Key(); }
-    
+
 private:
     virtual ~nsDiskCacheEntryInfo() {}
 
     const char *        mDeviceID;
     nsDiskCacheEntry *  mDiskEntry;
 };
 
 
--- a/netwerk/cache/nsDiskCacheMap.cpp
+++ b/netwerk/cache/nsDiskCacheMap.cpp
@@ -39,17 +39,17 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
     NS_ENSURE_ARG_POINTER(corruptInfo);
 
     // Assume we have an unexpected error until we find otherwise.
     *corruptInfo = nsDiskCache::kUnexpectedError;
     NS_ENSURE_ARG_POINTER(cacheDirectory);
     if (mMapFD)  return NS_ERROR_ALREADY_INITIALIZED;
 
     mCacheDirectory = cacheDirectory;   // save a reference for ourselves
-    
+
     // create nsIFile for _CACHE_MAP_
     nsresult rv;
     nsCOMPtr<nsIFile> file;
     rv = cacheDirectory->Clone(getter_AddRefs(file));
     rv = file->AppendNative(NS_LITERAL_CSTRING("_CACHE_MAP_"));
     NS_ENSURE_SUCCESS(rv, rv);
 
     // open the file - restricted to user, the data could be confidential
@@ -57,31 +57,31 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
     if (NS_FAILED(rv)) {
         *corruptInfo = nsDiskCache::kOpenCacheMapError;
         NS_WARNING("Could not open cache map file");
         return NS_ERROR_FILE_CORRUPTED;
     }
 
     bool cacheFilesExist = CacheFilesExist();
     rv = NS_ERROR_FILE_CORRUPTED;  // presume the worst
-    uint32_t mapSize = PR_Available(mMapFD);    
+    uint32_t mapSize = PR_Available(mMapFD);
 
     if (NS_FAILED(InitCacheClean(cacheDirectory,
                                  corruptInfo))) {
         // corruptInfo is set in the call to InitCacheClean
         goto error_exit;
     }
 
     // check size of map file
     if (mapSize == 0) {  // creating a new _CACHE_MAP_
 
         // block files shouldn't exist if we're creating the _CACHE_MAP_
         if (cacheFilesExist) {
             *corruptInfo = nsDiskCache::kBlockFilesShouldNotExist;
-            goto error_exit; 
+            goto error_exit;
         }
 
         if (NS_FAILED(CreateCacheSubDirectories())) {
             *corruptInfo = nsDiskCache::kCreateCacheSubdirectories;
             goto error_exit;
         }
 
         // create the file - initialize in memory
@@ -91,17 +91,17 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
         mRecordArray = (nsDiskCacheRecord*)
             calloc(mHeader.mRecordCount, sizeof(nsDiskCacheRecord));
         if (!mRecordArray) {
             *corruptInfo = nsDiskCache::kOutOfMemory;
             rv = NS_ERROR_OUT_OF_MEMORY;
             goto error_exit;
         }
     } else if (mapSize >= sizeof(nsDiskCacheHeader)) {  // read existing _CACHE_MAP_
-        
+
         // if _CACHE_MAP_ exists, so should the block files
         if (!cacheFilesExist) {
             *corruptInfo = nsDiskCache::kBlockFilesShouldExist;
             goto error_exit;
         }
 
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheMap::Open [this=%p] reading map", this));
 
@@ -112,17 +112,17 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
             goto error_exit;
         }
         mHeader.Unswap();
 
         if (mHeader.mIsDirty) {
             *corruptInfo = nsDiskCache::kHeaderIsDirty;
             goto error_exit;
         }
-        
+
         if (mHeader.mVersion != nsDiskCache::kCurrentVersion) {
             *corruptInfo = nsDiskCache::kVersionMismatch;
             goto error_exit;
         }
 
         uint32_t recordArraySize =
                 mHeader.mRecordCount * sizeof(nsDiskCacheRecord);
         if (mapSize < recordArraySize + sizeof(nsDiskCacheHeader)) {
@@ -150,17 +150,17 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
         for (int32_t i = 0; i < mHeader.mRecordCount; ++i) {
             if (mRecordArray[i].HashNumber()) {
 #if defined(IS_LITTLE_ENDIAN)
                 mRecordArray[i].Unswap();
 #endif
                 total ++;
             }
         }
-        
+
         // verify entry count
         if (total != mHeader.mEntryCount) {
             *corruptInfo = nsDiskCache::kEntryCountIncorrect;
             goto error_exit;
         }
 
     } else {
         *corruptInfo = nsDiskCache::kHeaderIncomplete;
@@ -175,26 +175,26 @@ nsDiskCacheMap::Open(nsIFile *  cacheDir
 
     // set dirty bit and flush header
     mHeader.mIsDirty    = true;
     rv = FlushHeader();
     if (NS_FAILED(rv)) {
         *corruptInfo = nsDiskCache::kFlushHeaderError;
         goto error_exit;
     }
-    
+
     Telemetry::Accumulate(Telemetry::HTTP_DISK_CACHE_OVERHEAD,
                           (uint32_t)SizeOfExcludingThis(moz_malloc_size_of));
 
     *corruptInfo = nsDiskCache::kNotCorrupt;
     return NS_OK;
-    
+
 error_exit:
     (void) Close(false);
-       
+
     return rv;
 }
 
 
 nsresult
 nsDiskCacheMap::Close(bool flush)
 {
     nsCacheService::AssertOwnsLock();
@@ -253,21 +253,21 @@ nsDiskCacheMap::Trim()
     return rv2;
 }
 
 
 nsresult
 nsDiskCacheMap::FlushHeader()
 {
     if (!mMapFD)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     // seek to beginning of cache map
     int32_t filePos = PR_Seek(mMapFD, 0, PR_SEEK_SET);
     if (filePos != 0)  return NS_ERROR_UNEXPECTED;
-    
+
     // write the header
     mHeader.Swap();
     int32_t bytesWritten = PR_Write(mMapFD, &mHeader, sizeof(nsDiskCacheHeader));
     mHeader.Unswap();
     if (sizeof(nsDiskCacheHeader) != bytesWritten) {
         return NS_ERROR_UNEXPECTED;
     }
 
@@ -282,61 +282,61 @@ nsDiskCacheMap::FlushHeader()
     return NS_OK;
 }
 
 
 nsresult
 nsDiskCacheMap::FlushRecords(bool unswap)
 {
     if (!mMapFD)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     // seek to beginning of buckets
     int32_t filePos = PR_Seek(mMapFD, sizeof(nsDiskCacheHeader), PR_SEEK_SET);
     if (filePos != sizeof(nsDiskCacheHeader))
         return NS_ERROR_UNEXPECTED;
-    
+
 #if defined(IS_LITTLE_ENDIAN)
     // Swap each record
     for (int32_t i = 0; i < mHeader.mRecordCount; ++i) {
-        if (mRecordArray[i].HashNumber())   
+        if (mRecordArray[i].HashNumber())
             mRecordArray[i].Swap();
     }
 #endif
-    
+
     int32_t recordArraySize = sizeof(nsDiskCacheRecord) * mHeader.mRecordCount;
 
     int32_t bytesWritten = PR_Write(mMapFD, mRecordArray, recordArraySize);
     if (bytesWritten != recordArraySize)
         return NS_ERROR_UNEXPECTED;
 
 #if defined(IS_LITTLE_ENDIAN)
     if (unswap) {
         // Unswap each record
         for (int32_t i = 0; i < mHeader.mRecordCount; ++i) {
-            if (mRecordArray[i].HashNumber())   
+            if (mRecordArray[i].HashNumber())
                 mRecordArray[i].Unswap();
         }
     }
 #endif
-    
+
     return NS_OK;
 }
 
 
 /**
  *  Record operations
  */
 
 uint32_t
 nsDiskCacheMap::GetBucketRank(uint32_t bucketIndex, uint32_t targetRank)
 {
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
     uint32_t            rank = 0;
 
-    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {          
+    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {
         if ((rank < records[i].EvictionRank()) &&
             ((targetRank == 0) || (records[i].EvictionRank() < targetRank)))
                 rank = records[i].EvictionRank();
     }
     return rank;
 }
 
 nsresult
@@ -440,40 +440,40 @@ nsDiskCacheMap::AddRecord( nsDiskCacheRe
     const uint32_t      count = mHeader.mBucketUsage[bucketIndex];
 
     oldRecord->SetHashNumber(0);  // signify no record
 
     if (count == GetRecordsPerBucket()) {
         // Ignore failure to grow the record space, we will then reuse old records
         GrowRecords();
     }
-    
+
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
     if (count < GetRecordsPerBucket()) {
         // stick the new record at the end
         records[count] = *mapRecord;
         mHeader.mEntryCount++;
-        mHeader.mBucketUsage[bucketIndex]++;           
+        mHeader.mBucketUsage[bucketIndex]++;
         if (mHeader.mEvictionRank[bucketIndex] < mapRecord->EvictionRank())
             mHeader.mEvictionRank[bucketIndex] = mapRecord->EvictionRank();
         InvalidateCache();
     } else {
         // Find the record with the highest eviction rank
         nsDiskCacheRecord * mostEvictable = &records[0];
         for (int i = count-1; i > 0; i--) {
             if (records[i].EvictionRank() > mostEvictable->EvictionRank())
                 mostEvictable = &records[i];
         }
         *oldRecord     = *mostEvictable;    // i == GetRecordsPerBucket(), so
                                             // evict the mostEvictable
         *mostEvictable = *mapRecord;        // replace it with the new record
         // check if we need to update mostEvictable entry in header
         if (mHeader.mEvictionRank[bucketIndex] < mapRecord->EvictionRank())
             mHeader.mEvictionRank[bucketIndex] = mapRecord->EvictionRank();
-        if (oldRecord->EvictionRank() >= mHeader.mEvictionRank[bucketIndex]) 
+        if (oldRecord->EvictionRank() >= mHeader.mEvictionRank[bucketIndex])
             mHeader.mEvictionRank[bucketIndex] = GetBucketRank(bucketIndex, 0);
         InvalidateCache();
     }
 
     NS_ASSERTION(mHeader.mEvictionRank[bucketIndex] == GetBucketRank(bucketIndex, 0),
                  "eviction rank out of sync");
     return NS_OK;
 }
@@ -483,21 +483,21 @@ nsresult
 nsDiskCacheMap::UpdateRecord( nsDiskCacheRecord *  mapRecord)
 {
     CACHE_LOG_DEBUG(("CACHE: UpdateRecord [%x]\n", mapRecord->HashNumber()));
 
     const uint32_t      hashNumber = mapRecord->HashNumber();
     const uint32_t      bucketIndex = GetBucketIndex(hashNumber);
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
 
-    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {          
+    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {
         if (records[i].HashNumber() == hashNumber) {
             const uint32_t oldRank = records[i].EvictionRank();
 
-            // stick the new record here            
+            // stick the new record here
             records[i] = *mapRecord;
 
             // update eviction rank in header if necessary
             if (mHeader.mEvictionRank[bucketIndex] < mapRecord->EvictionRank())
                 mHeader.mEvictionRank[bucketIndex] = mapRecord->EvictionRank();
             else if (mHeader.mEvictionRank[bucketIndex] == oldRank)
                 mHeader.mEvictionRank[bucketIndex] = GetBucketRank(bucketIndex, 0);
 
@@ -514,17 +514,17 @@ NS_ASSERTION(mHeader.mEvictionRank[bucke
 
 
 nsresult
 nsDiskCacheMap::FindRecord( uint32_t  hashNumber, nsDiskCacheRecord *  result)
 {
     const uint32_t      bucketIndex = GetBucketIndex(hashNumber);
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
 
-    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {          
+    for (int i = mHeader.mBucketUsage[bucketIndex]-1; i >= 0; i--) {
         if (records[i].HashNumber() == hashNumber) {
             *result = records[i];    // copy the record
             NS_ASSERTION(result->ValidRecord(), "bad cache map record");
             return NS_OK;
         }
     }
     return NS_ERROR_CACHE_KEY_NOT_FOUND;
 }
@@ -535,17 +535,17 @@ nsDiskCacheMap::DeleteRecord( nsDiskCach
 {
     CACHE_LOG_DEBUG(("CACHE: DeleteRecord [%x]\n", mapRecord->HashNumber()));
 
     const uint32_t      hashNumber = mapRecord->HashNumber();
     const uint32_t      bucketIndex = GetBucketIndex(hashNumber);
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
     uint32_t            last = mHeader.mBucketUsage[bucketIndex]-1;
 
-    for (int i = last; i >= 0; i--) {          
+    for (int i = last; i >= 0; i--) {
         if (records[i].HashNumber() == hashNumber) {
             // found it, now delete it.
             uint32_t  evictionRank = records[i].EvictionRank();
             NS_ASSERTION(evictionRank == mapRecord->EvictionRank(),
                          "evictionRank out of sync");
             // if not the last record, shift last record into opening
             records[i] = records[last];
             records[last].SetHashNumber(0); // clear last record
@@ -578,19 +578,19 @@ nsDiskCacheMap::VisitEachRecord(uint32_t
     uint32_t            count = mHeader.mBucketUsage[bucketIndex];
     nsDiskCacheRecord * records = GetFirstRecordInBucket(bucketIndex);
 
     // call visitor for each entry (matching any eviction rank)
     for (int i = count-1; i >= 0; i--) {
         if (evictionRank > records[i].EvictionRank()) continue;
 
         rv = visitor->VisitRecord(&records[i]);
-        if (rv == kStopVisitingRecords) 
+        if (rv == kStopVisitingRecords)
             break;    // Stop visiting records
-        
+
         if (rv == kDeleteRecordAndContinue) {
             --count;
             records[i] = records[count];
             records[count].SetHashNumber(0);
             InvalidateCache();
         }
     }
 
@@ -613,51 +613,51 @@ nsDiskCacheMap::VisitEachRecord(uint32_t
  *  Visit every record in cache map in the most convenient order
  */
 nsresult
 nsDiskCacheMap::VisitRecords( nsDiskCacheRecordVisitor *  visitor)
 {
     for (int bucketIndex = 0; bucketIndex < kBuckets; ++bucketIndex) {
         if (VisitEachRecord(bucketIndex, visitor, 0) == kStopVisitingRecords)
             break;
-    }   
+    }
     return NS_OK;
 }
 
 
 /**
  *  EvictRecords
  *
  *  Just like VisitRecords, but visits the records in order of their eviction rank
  */
 nsresult
 nsDiskCacheMap::EvictRecords( nsDiskCacheRecordVisitor * visitor)
 {
     uint32_t  tempRank[kBuckets];
     int       bucketIndex = 0;
-    
+
     // copy eviction rank array
     for (bucketIndex = 0; bucketIndex < kBuckets; ++bucketIndex)
         tempRank[bucketIndex] = mHeader.mEvictionRank[bucketIndex];
 
     // Maximum number of iterations determined by number of records
     // as a safety limiter for the loop. Use a copy of mHeader.mEntryCount since
     // the value could decrease if some entry is evicted.
     int32_t entryCount = mHeader.mEntryCount;
     for (int n = 0; n < entryCount; ++n) {
-    
+
         // find bucket with highest eviction rank
         uint32_t    rank  = 0;
         for (int i = 0; i < kBuckets; ++i) {
             if (rank < tempRank[i]) {
                 rank = tempRank[i];
                 bucketIndex = i;
             }
         }
-        
+
         if (rank == 0) break;  // we've examined all the records
 
         // visit records in bucket with eviction ranks >= target eviction rank
         if (VisitEachRecord(bucketIndex, visitor, rank) == kStopVisitingRecords)
             break;
 
         // find greatest rank less than 'rank'
         tempRank[bucketIndex] = GetBucketRank(bucketIndex, rank);
@@ -671,24 +671,24 @@ nsresult
 nsDiskCacheMap::OpenBlockFiles(nsDiskCache::CorruptCacheInfo *  corruptInfo)
 {
     NS_ENSURE_ARG_POINTER(corruptInfo);
 
     // create nsIFile for block file
     nsCOMPtr<nsIFile> blockFile;
     nsresult rv = NS_OK;
     *corruptInfo = nsDiskCache::kUnexpectedError;
-    
+
     for (int i = 0; i < kNumBlockFiles; ++i) {
         rv = GetBlockFileForIndex(i, getter_AddRefs(blockFile));
         if (NS_FAILED(rv)) {
             *corruptInfo = nsDiskCache::kCouldNotGetBlockFileForIndex;
             break;
         }
-    
+
         uint32_t blockSize = GetBlockSizeForIndex(i+1); // +1 to match file selectors 1,2,3
         uint32_t bitMapSize = GetBitMapSizeForIndex(i+1);
         rv = mBlockFile[i].Open(blockFile, blockSize, bitMapSize, corruptInfo);
         if (NS_FAILED(rv)) {
             // corruptInfo was set inside the call to mBlockFile[i].Open
             break;
         }
     }
@@ -712,17 +712,17 @@ nsDiskCacheMap::CloseBlockFiles(bool flu
 }
 
 
 bool
 nsDiskCacheMap::CacheFilesExist()
 {
     nsCOMPtr<nsIFile> blockFile;
     nsresult rv;
-    
+
     for (int i = 0; i < kNumBlockFiles; ++i) {
         bool exists;
         rv = GetBlockFileForIndex(i, getter_AddRefs(blockFile));
         if (NS_FAILED(rv))  return false;
 
         rv = blockFile->Exists(&exists);
         if (NS_FAILED(rv) || !exists)  return false;
     }
@@ -760,19 +760,19 @@ nsDiskCacheEntry *
 nsDiskCacheMap::ReadDiskCacheEntry(nsDiskCacheRecord * record)
 {
     CACHE_LOG_DEBUG(("CACHE: ReadDiskCacheEntry [%x]\n", record->HashNumber()));
 
     nsresult            rv         = NS_ERROR_UNEXPECTED;
     nsDiskCacheEntry *  diskEntry  = nullptr;
     uint32_t            metaFile   = record->MetaFile();
     int32_t             bytesRead  = 0;
-    
+
     if (!record->MetaLocationInitialized())  return nullptr;
-    
+
     if (metaFile == 0) {  // entry/metadata stored in separate file
         // open and read the file
         nsCOMPtr<nsIFile> file;
         rv = GetLocalFileForDiskCacheRecord(record,
                                             nsDiskCache::kMetaData,
                                             false,
                                             getter_AddRefs(file));
         NS_ENSURE_SUCCESS(rv, nullptr);
@@ -780,17 +780,17 @@ nsDiskCacheMap::ReadDiskCacheEntry(nsDis
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheMap::ReadDiskCacheEntry"
                          "[this=%p] reading disk cache entry", this));
 
         PRFileDesc * fd = nullptr;
 
         // open the file - restricted to user, the data could be confidential
         rv = file->OpenNSPRFileDesc(PR_RDONLY, 00600, &fd);
         NS_ENSURE_SUCCESS(rv, nullptr);
-        
+
         int32_t fileSize = PR_Available(fd);
         if (fileSize < 0) {
             // an error occurred. We could call PR_GetError(), but how would that help?
             rv = NS_ERROR_UNEXPECTED;
         } else {
             rv = EnsureBuffer(fileSize);
             if (NS_SUCCEEDED(rv)) {
                 bytesRead = PR_Read(fd, mBuffer, fileSize);
@@ -799,30 +799,30 @@ nsDiskCacheMap::ReadDiskCacheEntry(nsDis
                 }
             }
         }
         PR_Close(fd);
         NS_ENSURE_SUCCESS(rv, nullptr);
 
     } else if (metaFile < (kNumBlockFiles + 1)) {
         // entry/metadata stored in cache block file
-        
+
         // allocate buffer
         uint32_t blockCount = record->MetaBlockCount();
         bytesRead = blockCount * GetBlockSizeForIndex(metaFile);
 
         rv = EnsureBuffer(bytesRead);
         NS_ENSURE_SUCCESS(rv, nullptr);
-        
-        // read diskEntry, note when the blocks are at the end of file, 
+
+        // read diskEntry, note when the blocks are at the end of file,
         // bytesRead may be less than blockSize*blockCount.
         // But the bytesRead should at least agree with the real disk entry size.
         rv = mBlockFile[metaFile - 1].ReadBlocks(mBuffer,
                                                  record->MetaStartBlock(),
-                                                 blockCount, 
+                                                 blockCount,
                                                  &bytesRead);
         NS_ENSURE_SUCCESS(rv, nullptr);
     }
     diskEntry = (nsDiskCacheEntry *)mBuffer;
     diskEntry->Unswap();    // disk to memory
     // Check if calculated size agrees with bytesRead
     if (bytesRead < 0 || (uint32_t)bytesRead < diskEntry->Size())
         return nullptr;
@@ -838,72 +838,72 @@ nsDiskCacheMap::ReadDiskCacheEntry(nsDis
  *  Prepare an nsCacheEntry for writing to disk
  */
 nsDiskCacheEntry *
 nsDiskCacheMap::CreateDiskCacheEntry(nsDiskCacheBinding *  binding,
                                      uint32_t * aSize)
 {
     nsCacheEntry * entry = binding->mCacheEntry;
     if (!entry)  return nullptr;
-    
+
     // Store security info, if it is serializable
     nsCOMPtr<nsISupports> infoObj = entry->SecurityInfo();
     nsCOMPtr<nsISerializable> serializable = do_QueryInterface(infoObj);
     if (infoObj && !serializable) return nullptr;
     if (serializable) {
         nsCString info;
         nsresult rv = NS_SerializeToString(serializable, info);
         if (NS_FAILED(rv)) return nullptr;
         rv = entry->SetMetaDataElement("security-info", info.get());
         if (NS_FAILED(rv)) return nullptr;
     }
 
     uint32_t  keySize  = entry->Key()->Length() + 1;
     uint32_t  metaSize = entry->MetaDataSize();
     uint32_t  size     = sizeof(nsDiskCacheEntry) + keySize + metaSize;
-    
+
     if (aSize) *aSize = size;
-    
+
     nsresult rv = EnsureBuffer(size);
     if (NS_FAILED(rv)) return nullptr;
 
     nsDiskCacheEntry *diskEntry = (nsDiskCacheEntry *)mBuffer;
     diskEntry->mHeaderVersion   = nsDiskCache::kCurrentVersion;
     diskEntry->mMetaLocation    = binding->mRecord.MetaLocation();
     diskEntry->mFetchCount      = entry->FetchCount();
     diskEntry->mLastFetched     = entry->LastFetched();
     diskEntry->mLastModified    = entry->LastModified();
     diskEntry->mExpirationTime  = entry->ExpirationTime();
     diskEntry->mDataSize        = entry->DataSize();
     diskEntry->mKeySize         = keySize;
     diskEntry->mMetaDataSize    = metaSize;
-    
+
     memcpy(diskEntry->Key(), entry->Key()->get(), keySize);
-    
+
     rv = entry->FlattenMetaData(diskEntry->MetaData(), metaSize);
     if (NS_FAILED(rv)) return nullptr;
-    
+
     return diskEntry;
 }
 
 
 nsresult
 nsDiskCacheMap::WriteDiskCacheEntry(nsDiskCacheBinding *  binding)
 {
     CACHE_LOG_DEBUG(("CACHE: WriteDiskCacheEntry [%x]\n",
         binding->mRecord.HashNumber()));
 
     nsresult            rv        = NS_OK;
     uint32_t            size;
     nsDiskCacheEntry *  diskEntry =  CreateDiskCacheEntry(binding, &size);
     if (!diskEntry)  return NS_ERROR_UNEXPECTED;
-    
+
     uint32_t  fileIndex = CalculateFileIndex(size);
 
-    // Deallocate old storage if necessary    
+    // Deallocate old storage if necessary
     if (binding->mRecord.MetaLocationInitialized()) {
         // we have existing storage
 
         if ((binding->mRecord.MetaFile() == 0) &&
             (fileIndex == 0)) {  // keeping the separate file
             // just decrement total
             DecrementTotalSize(binding->mRecord.MetaFileSize());
             NS_ASSERTION(binding->mRecord.MetaFileGeneration() == binding->mGeneration,
@@ -961,26 +961,26 @@ nsDiskCacheMap::WriteDiskCacheEntry(nsDi
         NS_ENSURE_SUCCESS(rv, rv);
 
         nsCOMPtr<nsIFile> localFile;
         rv = GetLocalFileForDiskCacheRecord(&binding->mRecord,
                                             nsDiskCache::kMetaData,
                                             true,
                                             getter_AddRefs(localFile));
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         // open the file
         PRFileDesc * fd;
         // open the file - restricted to user, the data could be confidential
         rv = localFile->OpenNSPRFileDesc(PR_RDWR | PR_TRUNCATE | PR_CREATE_FILE, 00600, &fd);
         NS_ENSURE_SUCCESS(rv, rv);
 
         // write the file
         int32_t bytesWritten = PR_Write(fd, diskEntry, size);
-        
+
         PRStatus err = PR_Close(fd);
         if ((bytesWritten != (int32_t)size) || (err != PR_SUCCESS)) {
             return NS_ERROR_UNEXPECTED;
         }
 
         IncrementTotalSize(metaFileSizeK);
     }
 
@@ -991,37 +991,37 @@ nsDiskCacheMap::WriteDiskCacheEntry(nsDi
 nsresult
 nsDiskCacheMap::ReadDataCacheBlocks(nsDiskCacheBinding * binding, char * buffer, uint32_t size)
 {
     CACHE_LOG_DEBUG(("CACHE: ReadDataCacheBlocks [%x size=%u]\n",
         binding->mRecord.HashNumber(), size));
 
     uint32_t  fileIndex = binding->mRecord.DataFile();
     int32_t   readSize = size;
-    
+
     nsresult rv = mBlockFile[fileIndex - 1].ReadBlocks(buffer,
                                                        binding->mRecord.DataStartBlock(),
                                                        binding->mRecord.DataBlockCount(),
                                                        &readSize);
     NS_ENSURE_SUCCESS(rv, rv);
     if (readSize < (int32_t)size) {
         rv = NS_ERROR_UNEXPECTED;
-    } 
+    }
     return rv;
 }
 
 
 nsresult
 nsDiskCacheMap::WriteDataCacheBlocks(nsDiskCacheBinding * binding, char * buffer, uint32_t size)
 {
     CACHE_LOG_DEBUG(("CACHE: WriteDataCacheBlocks [%x size=%u]\n",
         binding->mRecord.HashNumber(), size));
 
     nsresult  rv = NS_OK;
-    
+
     // determine block file & number of blocks
     uint32_t  fileIndex  = CalculateFileIndex(size);
     uint32_t  blockCount = 0;
     int32_t   startBlock = 0;
 
     if (size > 0) {
         // if fileIndex is 0, bad things happen below, which makes gcc 4.7
         // complain, but it's not supposed to happen. See bug 854105.
@@ -1066,51 +1066,51 @@ nsresult
 nsDiskCacheMap::DeleteStorage(nsDiskCacheRecord * record, bool metaData)
 {
     CACHE_LOG_DEBUG(("CACHE: DeleteStorage [%x %u]\n", record->HashNumber(),
         metaData));
 
     nsresult    rv = NS_ERROR_UNEXPECTED;
     uint32_t    fileIndex = metaData ? record->MetaFile() : record->DataFile();
     nsCOMPtr<nsIFile> file;
-    
+
     if (fileIndex == 0) {
         // delete the file
         uint32_t  sizeK = metaData ? record->MetaFileSize() : record->DataFileSize();
         // XXX if sizeK == USHRT_MAX, stat file for actual size
 
         rv = GetFileForDiskCacheRecord(record, metaData, false, getter_AddRefs(file));
         if (NS_SUCCEEDED(rv)) {
             rv = file->Remove(false);    // false == non-recursive
         }
         DecrementTotalSize(sizeK);
-        
+
     } else if (fileIndex < (kNumBlockFiles + 1)) {
         // deallocate blocks
         uint32_t  startBlock = metaData ? record->MetaStartBlock() : record->DataStartBlock();
         uint32_t  blockCount = metaData ? record->MetaBlockCount() : record->DataBlockCount();
-        
+
         rv = mBlockFile[fileIndex - 1].DeallocateBlocks(startBlock, blockCount);
         DecrementTotalSize(blockCount, GetBlockSizeForIndex(fileIndex));
     }
     if (metaData)  record->ClearMetaLocation();
     else           record->ClearDataLocation();
-    
+
     return rv;
 }
 
 
 nsresult
 nsDiskCacheMap::GetFileForDiskCacheRecord(nsDiskCacheRecord * record,
                                           bool                meta,
                                           bool                createPath,
                                           nsIFile **          result)
 {
     if (!mCacheDirectory)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     nsCOMPtr<nsIFile> file;
     nsresult rv = mCacheDirectory->Clone(getter_AddRefs(file));
     if (NS_FAILED(rv))  return rv;
 
     uint32_t hash = record->HashNumber();
 
     // The file is stored under subdirectories according to the hash number:
     // 0x01234567 -> 0/12/
@@ -1127,17 +1127,17 @@ nsDiskCacheMap::GetFileForDiskCacheRecor
 
     int16_t generation = record->Generation();
     char name[32];
     // Cut the beginning of the hash that was used in the path
     ::SprintfLiteral(name, "%05X%c%02X", hash & 0xFFFFF, (meta ? 'm' : 'd'),
                      generation);
     rv = file->AppendNative(nsDependentCString(name));
     if (NS_FAILED(rv))  return rv;
-    
+
     NS_IF_ADDREF(*result = file);
     return rv;
 }
 
 
 nsresult
 nsDiskCacheMap::GetLocalFileForDiskCacheRecord(nsDiskCacheRecord * record,
                                                bool                meta,
@@ -1145,36 +1145,36 @@ nsDiskCacheMap::GetLocalFileForDiskCache
                                                nsIFile **          result)
 {
     nsCOMPtr<nsIFile> file;
     nsresult rv = GetFileForDiskCacheRecord(record,
                                             meta,
                                             createPath,
                                             getter_AddRefs(file));
     if (NS_FAILED(rv))  return rv;
-    
+
     NS_IF_ADDREF(*result = file);
     return rv;
 }
 
 
 nsresult
 nsDiskCacheMap::GetBlockFileForIndex(uint32_t index, nsIFile ** result)
 {
     if (!mCacheDirectory)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     nsCOMPtr<nsIFile> file;
     nsresult rv = mCacheDirectory->Clone(getter_AddRefs(file));
     if (NS_FAILED(rv))  return rv;
-    
+
     char name[32];
     ::SprintfLiteral(name, "_CACHE_%03d_", index + 1);
     rv = file->AppendNative(nsDependentCString(name));
     if (NS_FAILED(rv))  return rv;
-    
+
     NS_IF_ADDREF(*result = file);
 
     return rv;
 }
 
 
 uint32_t
 nsDiskCacheMap::CalculateFileIndex(uint32_t size)
@@ -1197,17 +1197,17 @@ nsDiskCacheMap::EnsureBuffer(uint32_t bu
         if (!buf) {
             mBufferSize = 0;
             return NS_ERROR_OUT_OF_MEMORY;
         }
         mBuffer = buf;
         mBufferSize = bufSize;
     }
     return NS_OK;
-}        
+}
 
 void
 nsDiskCacheMap::NotifyCapacityChange(uint32_t capacity)
 {
   // Heuristic 1. average cache entry size is probably around 1KB
   // Heuristic 2. we don't want more than 32MB reserved to store the record
   //              map in memory.
   const int32_t RECORD_COUNT_LIMIT = 32 * 1024 * 1024 / sizeof(nsDiskCacheRecord);
@@ -1236,17 +1236,17 @@ nsDiskCacheMap::SizeOfExcludingThis(Mall
   return usage;
 }
 
 nsresult
 nsDiskCacheMap::InitCacheClean(nsIFile *  cacheDirectory,
                                nsDiskCache::CorruptCacheInfo *  corruptInfo)
 {
     // The _CACHE_CLEAN_ file will be used in the future to determine
-    // if the cache is clean or not. 
+    // if the cache is clean or not.
     bool cacheCleanFileExists = false;
     nsCOMPtr<nsIFile> cacheCleanFile;
     nsresult rv = cacheDirectory->GetParent(getter_AddRefs(cacheCleanFile));
     if (NS_SUCCEEDED(rv)) {
         rv = cacheCleanFile->AppendNative(
                  NS_LITERAL_CSTRING("_CACHE_CLEAN_"));
         if (NS_SUCCEEDED(rv)) {
             // Check if the file already exists, if it does, we will later read the
@@ -1327,17 +1327,17 @@ nsDiskCacheMap::WriteCacheClean(bool cle
 }
 
 nsresult
 nsDiskCacheMap::InvalidateCache()
 {
     nsCacheService::AssertOwnsLock();
     CACHE_LOG_DEBUG(("CACHE: InvalidateCache\n"));
     nsresult rv;
-  
+
     if (!mIsDirtyCacheFlushed) {
         rv = WriteCacheClean(false);
         if (NS_FAILED(rv)) {
           return rv;
         }
 
         mIsDirtyCacheFlushed = true;
     }
@@ -1416,17 +1416,17 @@ nsDiskCacheMap::RevalidateCache()
         // the doom list sometimes gets an entry 'stuck' and doens't clear it
         // until browser shutdown.  So we allow revalidation for the time being
         // to get proper telemetry data of how much the cache corruption plan
         // would help.
     }
 
     // If telemetry data shows it is worth it, we'll be flushing headers and
     // records before flushing the clean cache file.
-  
+
     // Write out the _CACHE_CLEAN_ file with '1'
     rv = WriteCacheClean(true);
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     mIsDirtyCacheFlushed = false;
 
--- a/netwerk/cache/nsDiskCacheMap.h
+++ b/netwerk/cache/nsDiskCacheMap.h
@@ -13,18 +13,18 @@
 #include "prnetdb.h"
 #include "nsDebug.h"
 #include "nsError.h"
 #include "nsIFile.h"
 #include "nsITimer.h"
 
 #include "nsDiskCache.h"
 #include "nsDiskCacheBlockFile.h"
- 
- 
+
+
 class nsDiskCacheBinding;
 struct nsDiskCacheEntry;
 
 /******************************************************************************
  *  nsDiskCacheRecord
  *
  *   Cache Location Format
  *
@@ -87,104 +87,104 @@ struct nsDiskCacheEntry;
 
 class nsDiskCacheRecord {
 
 private:
     uint32_t    mHashNumber;
     uint32_t    mEvictionRank;
     uint32_t    mDataLocation;
     uint32_t    mMetaLocation;
- 
+
     enum {
         eLocationInitializedMask = 0x80000000,
-        
+
         eLocationSelectorMask    = 0x30000000,
         eLocationSelectorOffset  = 28,
-        
+
         eExtraBlocksMask         = 0x03000000,
         eExtraBlocksOffset       = 24,
-        
+
         eReservedMask            = 0x4C000000,
-        
+
         eBlockNumberMask         = 0x00FFFFFF,
 
         eFileSizeMask            = 0x00FFFF00,
         eFileSizeOffset          = 8,
         eFileGenerationMask      = 0x000000FF,
         eFileReservedMask        = 0x4F000000
-        
+
     };
 
 public:
     nsDiskCacheRecord()
         :   mHashNumber(0), mEvictionRank(0), mDataLocation(0), mMetaLocation(0)
     {
     }
-    
+
     bool    ValidRecord()
     {
         if ((mDataLocation & eReservedMask) || (mMetaLocation & eReservedMask))
             return false;
         return true;
     }
-    
+
     // HashNumber accessors
     uint32_t  HashNumber() const                  { return mHashNumber; }
     void      SetHashNumber( uint32_t hashNumber) { mHashNumber = hashNumber; }
 
     // EvictionRank accessors
     uint32_t  EvictionRank() const              { return mEvictionRank; }
     void      SetEvictionRank( uint32_t rank)   { mEvictionRank = rank ? rank : 1; }
 
     // DataLocation accessors
     bool      DataLocationInitialized() const { return 0 != (mDataLocation & eLocationInitializedMask); }
     void      ClearDataLocation()       { mDataLocation = 0; }
-    
+
     uint32_t  DataFile() const
     {
         return (uint32_t)(mDataLocation & eLocationSelectorMask) >> eLocationSelectorOffset;
     }
 
     void      SetDataBlocks( uint32_t index, uint32_t startBlock, uint32_t blockCount)
     {
         // clear everything
         mDataLocation = 0;
-        
+
         // set file index
         NS_ASSERTION( index < (kNumBlockFiles + 1), "invalid location index");
         NS_ASSERTION( index > 0,"invalid location index");
         mDataLocation |= (index << eLocationSelectorOffset) & eLocationSelectorMask;
 
         // set startBlock
         NS_ASSERTION(startBlock == (startBlock & eBlockNumberMask), "invalid block number");
         mDataLocation |= startBlock & eBlockNumberMask;
-        
+
         // set blockCount
         NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count");
         --blockCount;
         mDataLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask;
-        
+
         mDataLocation |= eLocationInitializedMask;
     }
 
     uint32_t   DataBlockCount() const
     {
         return (uint32_t)((mDataLocation & eExtraBlocksMask) >> eExtraBlocksOffset) + 1;
     }
 
     uint32_t   DataStartBlock() const
     {
         return (mDataLocation & eBlockNumberMask);
     }
-    
+
     uint32_t   DataBlockSize() const
     {
         return BLOCK_SIZE_FOR_INDEX(DataFile());
     }
-    
+
     uint32_t   DataFileSize() const  { return (mDataLocation & eFileSizeMask) >> eFileSizeOffset; }
     void       SetDataFileSize(uint32_t  size)
     {
         NS_ASSERTION((mDataLocation & eFileReservedMask) == 0, "bad location");
         mDataLocation &= ~eFileSizeMask;    // clear eFileSizeMask
         mDataLocation |= (size << eFileSizeOffset) & eFileSizeMask;
     }
 
@@ -198,43 +198,43 @@ public:
         // clear everything, (separate file index = 0)
         mDataLocation = 0;
         mDataLocation |= generation & eFileGenerationMask;
         mDataLocation |= eLocationInitializedMask;
     }
 
     // MetaLocation accessors
     bool      MetaLocationInitialized() const { return 0 != (mMetaLocation & eLocationInitializedMask); }
-    void      ClearMetaLocation()             { mMetaLocation = 0; }   
+    void      ClearMetaLocation()             { mMetaLocation = 0; }
     uint32_t  MetaLocation() const            { return mMetaLocation; }
-    
+
     uint32_t  MetaFile() const
     {
         return (uint32_t)(mMetaLocation & eLocationSelectorMask) >> eLocationSelectorOffset;
     }
 
     void      SetMetaBlocks( uint32_t index, uint32_t startBlock, uint32_t blockCount)
     {
         // clear everything
         mMetaLocation = 0;
-        
+
         // set file index
         NS_ASSERTION( index < (kNumBlockFiles + 1), "invalid location index");
         NS_ASSERTION( index > 0, "invalid location index");
         mMetaLocation |= (index << eLocationSelectorOffset) & eLocationSelectorMask;
 
         // set startBlock
         NS_ASSERTION(startBlock == (startBlock & eBlockNumberMask), "invalid block number");
         mMetaLocation |= startBlock & eBlockNumberMask;
-        
+
         // set blockCount
         NS_ASSERTION( (blockCount>=1) && (blockCount<=4),"invalid block count");
         --blockCount;
         mMetaLocation |= (blockCount << eExtraBlocksOffset) & eExtraBlocksMask;
-        
+
         mMetaLocation |= eLocationInitializedMask;
     }
 
     uint32_t   MetaBlockCount() const
     {
         return (uint32_t)((mMetaLocation & eExtraBlocksMask) >> eExtraBlocksOffset) + 1;
     }
 
@@ -242,17 +242,17 @@ public:
     {
         return (mMetaLocation & eBlockNumberMask);
     }
 
     uint32_t   MetaBlockSize() const
     {
         return BLOCK_SIZE_FOR_INDEX(MetaFile());
     }
-    
+
     uint32_t   MetaFileSize() const  { return (mMetaLocation & eFileSizeMask) >> eFileSizeOffset; }
     void       SetMetaFileSize(uint32_t  size)
     {
         mMetaLocation &= ~eFileSizeMask;    // clear eFileSizeMask
         mMetaLocation |= (size << eFileSizeOffset) & eFileSizeMask;
     }
 
     uint8_t   MetaFileGeneration() const
@@ -268,34 +268,34 @@ public:
         mMetaLocation |= eLocationInitializedMask;
     }
 
     uint8_t   Generation() const
     {
         if ((mDataLocation & eLocationInitializedMask)  &&
             (DataFile() == 0))
             return DataFileGeneration();
-            
+
         if ((mMetaLocation & eLocationInitializedMask)  &&
             (MetaFile() == 0))
             return MetaFileGeneration();
-        
+
         return 0;  // no generation
     }
 
 #if defined(IS_LITTLE_ENDIAN)
     void        Swap()
     {
         mHashNumber   = htonl(mHashNumber);
         mEvictionRank = htonl(mEvictionRank);
         mDataLocation = htonl(mDataLocation);
         mMetaLocation = htonl(mMetaLocation);
     }
 #endif
-    
+
 #if defined(IS_LITTLE_ENDIAN)
     void        Unswap()
     {
         mHashNumber   = ntohl(mHashNumber);
         mEvictionRank = ntohl(mEvictionRank);
         mDataLocation = ntohl(mDataLocation);
         mMetaLocation = ntohl(mMetaLocation);
     }
@@ -327,17 +327,17 @@ class nsDiskCacheRecordVisitor {
 struct nsDiskCacheHeader {
     uint32_t    mVersion;                           // cache version.
     uint32_t    mDataSize;                          // size of cache in units of 1024bytes.
     int32_t     mEntryCount;                        // number of entries stored in cache.
     uint32_t    mIsDirty;                           // dirty flag.
     int32_t     mRecordCount;                       // Number of records
     uint32_t    mEvictionRank[kBuckets];            // Highest EvictionRank of the bucket
     uint32_t    mBucketUsage[kBuckets];             // Number of used entries in the bucket
-  
+
     nsDiskCacheHeader()
         : mVersion(nsDiskCache::kCurrentVersion)
         , mDataSize(0)
         , mEntryCount(0)
         , mIsDirty(true)
         , mRecordCount(0)
     {}
 
@@ -351,17 +351,17 @@ struct nsDiskCacheHeader {
         mRecordCount = htonl(mRecordCount);
 
         for (uint32_t i = 0; i < kBuckets ; i++) {
             mEvictionRank[i] = htonl(mEvictionRank[i]);
             mBucketUsage[i]  = htonl(mBucketUsage[i]);
         }
 #endif
     }
-    
+
     void        Unswap()
     {
 #if defined(IS_LITTLE_ENDIAN)
         mVersion     = ntohl(mVersion);
         mDataSize    = ntohl(mDataSize);
         mEntryCount  = ntohl(mEntryCount);
         mIsDirty     = ntohl(mIsDirty);
         mRecordCount = ntohl(mRecordCount);
@@ -377,17 +377,17 @@ struct nsDiskCacheHeader {
 
 /******************************************************************************
  *  nsDiskCacheMap
  *****************************************************************************/
 
 class nsDiskCacheMap {
 public:
 
-     nsDiskCacheMap() : 
+     nsDiskCacheMap() :
         mCacheDirectory(nullptr),
         mMapFD(nullptr),
         mCleanFD(nullptr),
         mRecordArray(nullptr),
         mBufferSize(0),
         mBuffer(nullptr),
         mMaxRecordCount(16384), // this default value won't matter
         mIsDirtyCacheFlushed(false),
@@ -431,62 +431,62 @@ public:
  *  Disk Entry operations
  */
     nsresult    DeleteStorage( nsDiskCacheRecord *  record);
 
     nsresult    GetFileForDiskCacheRecord( nsDiskCacheRecord * record,
                                            bool                meta,
                                            bool                createPath,
                                            nsIFile **          result);
-                                          
+
     nsresult    GetLocalFileForDiskCacheRecord( nsDiskCacheRecord *  record,
                                                 bool                 meta,
                                                 bool                 createPath,
                                                 nsIFile **           result);
 
     // On success, this returns the buffer owned by nsDiskCacheMap,
     // so it must not be deleted by the caller.
     nsDiskCacheEntry * ReadDiskCacheEntry( nsDiskCacheRecord *  record);
 
     nsresult    WriteDiskCacheEntry( nsDiskCacheBinding *  binding);
-    
+
     nsresult    ReadDataCacheBlocks(nsDiskCacheBinding * binding, char * buffer, uint32_t size);
     nsresult    WriteDataCacheBlocks(nsDiskCacheBinding * binding, char * buffer, uint32_t size);
     nsresult    DeleteStorage( nsDiskCacheRecord * record, bool metaData);
-    
+
     /**
      *  Statistical Operations
      */
     void     IncrementTotalSize( uint32_t  delta)
              {
                 mHeader.mDataSize += delta;
                 mHeader.mIsDirty   = true;
              }
-             
+
     void     DecrementTotalSize( uint32_t  delta)
              {
                 NS_ASSERTION(mHeader.mDataSize >= delta, "disk cache size negative?");
-                mHeader.mDataSize  = mHeader.mDataSize > delta ? mHeader.mDataSize - delta : 0;               
+                mHeader.mDataSize  = mHeader.mDataSize > delta ? mHeader.mDataSize - delta : 0;
                 mHeader.mIsDirty   = true;
              }
-    
+
     inline void IncrementTotalSize( uint32_t  blocks, uint32_t blockSize)
              {
                 // Round up to nearest K
                 IncrementTotalSize(((blocks*blockSize) + 0x03FF) >> 10);
              }
 
     inline void DecrementTotalSize( uint32_t  blocks, uint32_t blockSize)
              {
                 // Round up to nearest K
                 DecrementTotalSize(((blocks*blockSize) + 0x03FF) >> 10);
              }
-                 
+
     uint32_t TotalSize()   { return mHeader.mDataSize; }
-    
+
     int32_t  EntryCount()  { return mHeader.mEntryCount; }
 
     size_t  SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf);
 
 
 private:
 
     /**
@@ -502,22 +502,22 @@ private:
 
     nsresult    GetBlockFileForIndex( uint32_t index, nsIFile ** result);
     uint32_t    GetBlockSizeForIndex( uint32_t index) const {
         return BLOCK_SIZE_FOR_INDEX(index);
     }
     uint32_t    GetBitMapSizeForIndex( uint32_t index) const {
         return BITMAP_SIZE_FOR_INDEX(index);
     }
-    
-    // returns the bucket number    
+
+    // returns the bucket number
     uint32_t GetBucketIndex( uint32_t hashNumber) const {
         return (hashNumber & (kBuckets - 1));
     }
-    
+
     // Gets the size of the bucket (in number of records)
     uint32_t GetRecordsPerBucket() const {
         return mHeader.mRecordCount / kBuckets;
     }
 
     // Gets the first record in the bucket
     nsDiskCacheRecord *GetFirstRecordInBucket(uint32_t bucket) const {
         return mRecordArray + bucket * GetRecordsPerBucket();
@@ -529,17 +529,17 @@ private:
                              nsDiskCacheRecordVisitor *  visitor,
                              uint32_t                    evictionRank);
 
     nsresult GrowRecords();
     nsresult ShrinkRecords();
 
     nsresult EnsureBuffer(uint32_t bufSize);
 
-    // The returned structure will point to the buffer owned by nsDiskCacheMap, 
+    // The returned structure will point to the buffer owned by nsDiskCacheMap,
     // so it must not be deleted by the caller.
     nsDiskCacheEntry *  CreateDiskCacheEntry(nsDiskCacheBinding *  binding,
                                              uint32_t * size);
 
     // Initializes the _CACHE_CLEAN_ related functionality
     nsresult InitCacheClean(nsIFile *  cacheDirectory,
                             nsDiskCache::CorruptCacheInfo *  corruptInfo);
     // Writes out a value of '0' or '1' in the _CACHE_CLEAN_ file
@@ -551,17 +551,17 @@ private:
     // Determines if the cache is in a safe state
     bool IsCacheInSafeState();
     // Revalidates the cache by writting out the header, records, and finally
     // by calling WriteCacheClean(true).
     nsresult RevalidateCache();
     // Timer which revalidates the cache
     static void RevalidateTimerCallback(nsITimer *aTimer, void *arg);
 
-/** 
+/**
  *  data members
  */
 private:
     nsCOMPtr<nsITimer>      mCleanCacheTimer;
     nsCOMPtr<nsIFile>       mCacheDirectory;
     PRFileDesc *            mMapFD;
     PRFileDesc *            mCleanFD;
     nsDiskCacheRecord *     mRecordArray;
--- a/netwerk/cache/nsDiskCacheStreams.cpp
+++ b/netwerk/cache/nsDiskCacheStreams.cpp
@@ -97,64 +97,64 @@ nsDiskCacheInputStream::Close()
 }
 
 
 NS_IMETHODIMP
 nsDiskCacheInputStream::Available(uint64_t * bytesAvailable)
 {
     if (mClosed)  return NS_BASE_STREAM_CLOSED;
     if (mStreamEnd < mPos)  return NS_ERROR_UNEXPECTED;
-    
+
     *bytesAvailable = mStreamEnd - mPos;
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
 nsDiskCacheInputStream::Read(char * buffer, uint32_t count, uint32_t * bytesRead)
 {
     *bytesRead = 0;
 
     if (mClosed) {
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheInputStream::Read "
                          "[stream=%p] stream was closed",
                          this));
         return NS_OK;
     }
-    
+
     if (mPos == mStreamEnd) {
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheInputStream::Read "
                          "[stream=%p] stream at end of file",
                          this));
         return NS_OK;
     }
     if (mPos > mStreamEnd) {
         CACHE_LOG_DEBUG(("CACHE: nsDiskCacheInputStream::Read "
                          "[stream=%p] stream past end of file (!)",
                          this));
         return NS_ERROR_UNEXPECTED;
     }
-    
+
     if (count > mStreamEnd - mPos)
         count = mStreamEnd - mPos;
 
     if (mFD) {
         // just read from file
         int32_t  result = PR_Read(mFD, buffer, count);
         if (result < 0) {
             nsresult rv = NS_ErrorAccordingToNSPR();
             CACHE_LOG_DEBUG(("CACHE: nsDiskCacheInputStream::Read PR_Read failed"
                              "[stream=%p, rv=%d, NSPR error %s",
                              this, int(rv), PR_ErrorToName(PR_GetError())));
             return rv;
         }
-        
+
         mPos += (uint32_t)result;
         *bytesRead = (uint32_t)result;
-        
+
     } else if (mBuffer) {
         // read data from mBuffer
         memcpy(buffer, mBuffer + mPos, count);
         mPos += count;
         *bytesRead = count;
     } else {
         // no data source for input stream
     }
@@ -233,17 +233,17 @@ nsDiskCacheStreamIO::~nsDiskCacheStreamI
 // NOTE: called with service lock held
 nsresult
 nsDiskCacheStreamIO::GetInputStream(uint32_t offset, nsIInputStream ** inputStream)
 {
     NS_ENSURE_ARG_POINTER(inputStream);
     NS_ENSURE_TRUE(offset == 0, NS_ERROR_NOT_IMPLEMENTED);
 
     *inputStream = nullptr;
-    
+
     if (!mBinding)  return NS_ERROR_NOT_AVAILABLE;
 
     if (mOutputStreamIsOpen) {
         NS_WARNING("already have an output stream open");
         return NS_ERROR_NOT_AVAILABLE;
     }
 
     nsresult            rv;
@@ -251,51 +251,51 @@ nsDiskCacheStreamIO::GetInputStream(uint
 
     mStreamEnd = mBinding->mCacheEntry->DataSize();
     if (mStreamEnd == 0) {
         // there's no data to read
         NS_ASSERTION(!mBinding->mRecord.DataLocationInitialized(), "storage allocated for zero data size");
     } else if (mBinding->mRecord.DataFile() == 0) {
         // open file desc for data
         rv = OpenCacheFile(PR_RDONLY, &fd);
-        if (NS_FAILED(rv))  return rv;  // unable to open file        
+        if (NS_FAILED(rv))  return rv;  // unable to open file
         NS_ASSERTION(fd, "cache stream lacking open file.");
-            
+
     } else if (!mBuffer) {
         // read block file for data
         rv = ReadCacheBlocks(mStreamEnd);
         if (NS_FAILED(rv))  return rv;
     }
     // else, mBuffer already contains all of the data (left over from a
     // previous block-file read or write).
 
     NS_ASSERTION(!(fd && mBuffer), "ambiguous data sources for input stream");
 
     // create a new input stream
     nsDiskCacheInputStream * inStream = new nsDiskCacheInputStream(this, fd, mBuffer, mStreamEnd);
     if (!inStream)  return NS_ERROR_OUT_OF_MEMORY;
-    
+
     NS_ADDREF(*inputStream = inStream);
     return NS_OK;
 }
 
 
 // NOTE: called with service lock held
 nsresult
 nsDiskCacheStreamIO::GetOutputStream(uint32_t offset, nsIOutputStream ** outputStream)
 {
     NS_ENSURE_ARG_POINTER(outputStream);
     *outputStream = nullptr;
 
     if (!mBinding)  return NS_ERROR_NOT_AVAILABLE;
-        
+
     NS_ASSERTION(!mOutputStreamIsOpen, "already have an output stream open");
     NS_ASSERTION(mInStreamCount == 0, "we already have input streams open");
     if (mOutputStreamIsOpen || mInStreamCount)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     mStreamEnd = mBinding->mCacheEntry->DataSize();
 
     // Inits file or buffer and truncate at the desired offset
     nsresult rv = SeekAndTruncate(offset);
     if (NS_FAILED(rv)) return rv;
 
     mOutputStreamIsOpen = true;
     NS_ADDREF(*outputStream = this);
@@ -367,35 +367,35 @@ nsDiskCacheStreamIO::CloseOutputStream()
         if ((mStreamEnd == 0) && (!mBinding->mDoomed)) {
             rv = cacheMap->UpdateRecord(record);
             if (NS_FAILED(rv)) {
                 NS_WARNING("cacheMap->UpdateRecord() failed.");
                 return rv;   // XXX doom cache entry
             }
         }
     }
-  
+
     if (mStreamEnd == 0) return NS_OK;     // nothing to write
- 
+
     // try to write to the cache blocks
     rv = cacheMap->WriteDataCacheBlocks(mBinding, mBuffer, mStreamEnd);
     if (NS_FAILED(rv)) {
         NS_WARNING("WriteDataCacheBlocks() failed.");
 
         // failed to store in cacheblocks, save as separate file
         rv = FlushBufferToFile(); // initializes DataFileLocation() if necessary
         if (mFD) {
             UpdateFileSize();
             (void) PR_Close(mFD);
             mFD = nullptr;
         }
         else
             NS_WARNING("no file descriptor");
     }
-   
+
     return rv;
 }
 
 
 // assumptions:
 //      only one thread writing at a time
 //      never have both output and input streams open
 //      OnDataSizeChanged() will have already been called to update entry->DataSize()
@@ -468,61 +468,61 @@ nsDiskCacheStreamIO::Write( const char *
     return NS_OK;
 }
 
 
 void
 nsDiskCacheStreamIO::UpdateFileSize()
 {
     NS_ASSERTION(mFD, "nsDiskCacheStreamIO::UpdateFileSize should not have been called");
-    
+
     nsDiskCacheRecord * record = &mBinding->mRecord;
     const uint32_t      oldSizeK  = record->DataFileSize();
     uint32_t            newSizeK  = (mStreamEnd + 0x03FF) >> 10;
 
     // make sure the size won't overflow (bug #651100)
     if (newSizeK > kMaxDataSizeK)
         newSizeK = kMaxDataSizeK;
 
     if (newSizeK == oldSizeK)  return;
-    
+
     record->SetDataFileSize(newSizeK);
 
     // update cache size totals
     nsDiskCacheMap * cacheMap = mDevice->CacheMap();
     cacheMap->DecrementTotalSize(oldSizeK);       // decrement old size
     cacheMap->IncrementTotalSize(newSizeK);       // increment new size
-    
+
     if (!mBinding->mDoomed) {
         nsresult rv = cacheMap->UpdateRecord(record);
         if (NS_FAILED(rv)) {
             NS_WARNING("cacheMap->UpdateRecord() failed.");
             // XXX doom cache entry?
         }
     }
 }
 
 
 nsresult
 nsDiskCacheStreamIO::OpenCacheFile(int flags, PRFileDesc ** fd)
 {
     NS_ENSURE_ARG_POINTER(fd);
-    
+
     CACHE_LOG_DEBUG(("nsDiskCacheStreamIO::OpenCacheFile"));
 
     nsresult         rv;
     nsDiskCacheMap * cacheMap = mDevice->CacheMap();
     nsCOMPtr<nsIFile>           localFile;
-    
+
     rv = cacheMap->GetLocalFileForDiskCacheRecord(&mBinding->mRecord,
                                                   nsDiskCache::kData,
                                                   !!(flags & PR_CREATE_FILE),
                                                   getter_AddRefs(localFile));
     if (NS_FAILED(rv))  return rv;
-    
+
     // create PRFileDesc for input stream - the 00600 is just for consistency
     return localFile->OpenNSPRFileDesc(flags, 00600, fd);
 }
 
 
 nsresult
 nsDiskCacheStreamIO::ReadCacheBlocks(uint32_t bufferSize)
 {
@@ -534,61 +534,61 @@ nsDiskCacheStreamIO::ReadCacheBlocks(uin
     if (!record->DataLocationInitialized()) return NS_OK;
 
     NS_ASSERTION(record->DataFile() != kSeparateFile, "attempt to read cache blocks on separate file");
 
     if (!mBuffer) {
         mBuffer = (char *) moz_xmalloc(bufferSize);
         mBufSize = bufferSize;
     }
-    
+
     // read data stored in cache block files
     nsDiskCacheMap *map = mDevice->CacheMap();  // get map reference
     return map->ReadDataCacheBlocks(mBinding, mBuffer, mStreamEnd);
 }
 
 
 nsresult
 nsDiskCacheStreamIO::FlushBufferToFile()
 {
     nsresult  rv;
     nsDiskCacheRecord * record = &mBinding->mRecord;
-    
+
     if (!mFD) {
         if (record->DataLocationInitialized() && (record->DataFile() > 0)) {
             // remove cache block storage
             nsDiskCacheMap * cacheMap = mDevice->CacheMap();
             rv = cacheMap->DeleteStorage(record, nsDiskCache::kData);
             if (NS_FAILED(rv))  return rv;
         }
         record->SetDataFileGeneration(mBinding->mGeneration);
-        
+
         // allocate file
         rv = OpenCacheFile(PR_RDWR | PR_CREATE_FILE, &mFD);
         if (NS_FAILED(rv))  return rv;
 
         int64_t dataSize = mBinding->mCacheEntry->PredictedDataSize();
         if (dataSize != -1)
             mozilla::fallocate(mFD, std::min<int64_t>(dataSize, kPreallocateLimit));
     }
-    
+
     // write buffer to the file when there is data in it
     if (mStreamEnd > 0) {
         if (!mBuffer) {
             MOZ_CRASH("Fix me!");
         }
         if (PR_Write(mFD, mBuffer, mStreamEnd) != (int32_t)mStreamEnd) {
             NS_WARNING("failed to flush all data");
             return NS_ERROR_UNEXPECTED;     // NS_ErrorAccordingToNSPR()
         }
     }
 
     // buffer is no longer valid
     DeleteBuffer();
-   
+
     return NS_OK;
 }
 
 
 void
 nsDiskCacheStreamIO::DeleteBuffer()
 {
     if (mBuffer) {
@@ -608,49 +608,49 @@ nsDiskCacheStreamIO::SizeOfIncludingThis
 
     return usage;
 }
 
 nsresult
 nsDiskCacheStreamIO::SeekAndTruncate(uint32_t offset)
 {
     if (!mBinding)  return NS_ERROR_NOT_AVAILABLE;
-    
+
     if (uint32_t(offset) > mStreamEnd)  return NS_ERROR_FAILURE;
-    
+
     // Set the current end to the desired offset
     mStreamEnd = offset;
 
     // Currently stored in file?
-    if (mBinding->mRecord.DataLocationInitialized() && 
+    if (mBinding->mRecord.DataLocationInitialized() &&
         (mBinding->mRecord.DataFile() == 0)) {
         if (!mFD) {
             // we need an mFD, we better open it now
             nsresult rv = OpenCacheFile(PR_RDWR | PR_CREATE_FILE, &mFD);
             if (NS_FAILED(rv))  return rv;
         }
         if (offset) {
             if (PR_Seek(mFD, offset, PR_SEEK_SET) == -1)
                 return NS_ErrorAccordingToNSPR();
         }
         nsDiskCache::Truncate(mFD, offset);
         UpdateFileSize();
 
         // When we starting at zero again, close file and start with buffer.
         // If offset is non-zero (and within buffer) an option would be
-        // to read the file into the buffer, but chance is high that it is 
+        // to read the file into the buffer, but chance is high that it is
         // rewritten to the file anyway.
         if (offset == 0) {
             // close file descriptor
             (void) PR_Close(mFD);
             mFD = nullptr;
         }
         return NS_OK;
     }
-    
+
     // read data into mBuffer if not read yet.
     if (offset && !mBuffer) {
         nsresult rv = ReadCacheBlocks(kMaxBufferSize);
         if (NS_FAILED(rv))  return rv;
     }
 
     // stream buffer sanity check
     NS_ASSERTION(mStreamEnd <= kMaxBufferSize, "bad stream");
--- a/netwerk/cache/nsDiskCacheStreams.h
+++ b/netwerk/cache/nsDiskCacheStreams.h
@@ -18,25 +18,25 @@
 
 #include "mozilla/Atomics.h"
 
 class nsDiskCacheDevice;
 
 class nsDiskCacheStreamIO : public nsIOutputStream {
 public:
     explicit nsDiskCacheStreamIO(nsDiskCacheBinding *   binding);
-    
+
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIOUTPUTSTREAM
 
     nsresult    GetInputStream(uint32_t offset, nsIInputStream ** inputStream);
     nsresult    GetOutputStream(uint32_t offset, nsIOutputStream ** outputStream);
 
     nsresult    ClearBinding();
-    
+
     void        IncrementInputStreamCount() { mInStreamCount++; }
     void        DecrementInputStreamCount()
                 {
                     mInStreamCount--;
                     NS_ASSERTION(mInStreamCount >= 0, "mInStreamCount has gone negative");
                 }
 
     size_t     SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf);
--- a/netwerk/cache/nsMemoryCacheDevice.cpp
+++ b/netwerk/cache/nsMemoryCacheDevice.cpp
@@ -62,47 +62,47 @@ nsMemoryCacheDevice::Init()
 }
 
 
 nsresult
 nsMemoryCacheDevice::Shutdown()
 {
     NS_ASSERTION(mInitialized, "### attempting shutdown while not initialized");
     NS_ENSURE_TRUE(mInitialized, NS_ERROR_NOT_INITIALIZED);
-    
+
     mMemCacheEntries.Shutdown();
 
     // evict all entries
     nsCacheEntry * entry, * next;
 
     for (int i = kQueueCount - 1; i >= 0; --i) {
         entry = (nsCacheEntry *)PR_LIST_HEAD(&mEvictionList[i]);
         while (entry != &mEvictionList[i]) {
             NS_ASSERTION(!entry->IsInUse(), "### shutting down with active entries");
             next = (nsCacheEntry *)PR_NEXT_LINK(entry);
             PR_REMOVE_AND_INIT_LINK(entry);
-        
+
             // update statistics
             int32_t memoryRecovered = (int32_t)entry->DataSize();
             mTotalSize    -= memoryRecovered;
             mInactiveSize -= memoryRecovered;
             --mEntryCount;
 
             delete entry;
             entry = next;
         }
     }
 
 /*
- * we're not factoring in changes to meta data yet...    
+ * we're not factoring in changes to meta data yet...
  *  NS_ASSERTION(mTotalSize == 0, "### mem cache leaking entries?");
  */
     NS_ASSERTION(mInactiveSize == 0, "### mem cache leaking entries?");
     NS_ASSERTION(mEntryCount == 0, "### mem cache leaking entries?");
-    
+
     mInitialized = false;
 
     return NS_OK;
 }
 
 
 const char *
 nsMemoryCacheDevice::GetDeviceID()
@@ -116,17 +116,17 @@ nsMemoryCacheDevice::FindEntry(nsCString
 {
     mozilla::Telemetry::AutoTimer<mozilla::Telemetry::CACHE_MEMORY_SEARCH_2> timer;
     nsCacheEntry * entry = mMemCacheEntries.GetEntry(key);
     if (!entry)  return nullptr;
 
     // move entry to the tail of an eviction list
     PR_REMOVE_AND_INIT_LINK(entry);
     PR_APPEND_LINK(entry, &mEvictionList[EvictionList(entry, 0)]);
-    
+
     mInactiveSize -= entry->DataSize();
 
     return entry;
 }
 
 
 nsresult
 nsMemoryCacheDevice::DeactivateEntry(nsCacheEntry * entry)
@@ -295,17 +295,17 @@ nsMemoryCacheDevice::OnDataSizeChange( n
                 nsCacheService::DoomEntry(entry);
             NS_ASSERTION(NS_SUCCEEDED(rv),"DoomEntry() failed.");
             return NS_ERROR_ABORT;
         }
     }
 
     // adjust our totals
     mTotalSize    += deltaSize;
-    
+
     if (!entry->IsDoomed()) {
         // move entry to the tail of the appropriate eviction list
         PR_REMOVE_AND_INIT_LINK(entry);
         PR_APPEND_LINK(entry, &mEvictionList[EvictionList(entry, deltaSize)]);
     }
 
     EvictEntriesIfNecessary();
     return NS_OK;
@@ -325,40 +325,40 @@ nsMemoryCacheDevice::AdjustMemoryLimits(
 
 void
 nsMemoryCacheDevice::EvictEntry(nsCacheEntry * entry, bool deleteEntry)
 {
     CACHE_LOG_DEBUG(("Evicting entry 0x%p from memory cache, deleting: %d\n",
                      entry, deleteEntry));
     // remove entry from our hashtable
     mMemCacheEntries.RemoveEntry(entry);
-    
+
     // remove entry from the eviction list
     PR_REMOVE_AND_INIT_LINK(entry);
-    
+
     // update statistics
     int32_t memoryRecovered = (int32_t)entry->DataSize();
     mTotalSize    -= memoryRecovered;
     if (!entry->IsDoomed())
         mInactiveSize -= memoryRecovered;
     --mEntryCount;
-    
+
     if (deleteEntry)  delete entry;
 }
 
 
 void
 nsMemoryCacheDevice::EvictEntriesIfNecessary(void)
 {
     nsCacheEntry * entry;
     nsCacheEntry * maxEntry;
     CACHE_LOG_DEBUG(("EvictEntriesIfNecessary.  mTotalSize: %d, mHardLimit: %d,"
                      "mInactiveSize: %d, mSoftLimit: %d\n",
                      mTotalSize, mHardLimit, mInactiveSize, mSoftLimit));
-    
+
     if ((mTotalSize < mHardLimit) && (mInactiveSize < mSoftLimit))
         return;
 
     uint32_t now = SecondsFromPRTime(PR_Now());
     uint64_t entryCost = 0;
     uint64_t maxCost = 0;
     do {
         // LRU-SP eviction selection: Check the head of each segment (each
@@ -371,17 +371,17 @@ nsMemoryCacheDevice::EvictEntriesIfNeces
             // If the head of a list is in use, check the next available entry
             while ((entry != &mEvictionList[i]) &&
                    (entry->IsInUse())) {
                 entry = (nsCacheEntry *)PR_NEXT_LINK(entry);
             }
 
             if (entry != &mEvictionList[i]) {
                 entryCost = (uint64_t)
-                    (now - entry->LastFetched()) * entry->DataSize() / 
+                    (now - entry->LastFetched()) * entry->DataSize() /
                     std::max(1, entry->FetchCount());
                 if (!maxEntry || (entryCost > maxCost)) {
                     maxEntry = entry;
                     maxCost = entryCost;
                 }
             }
         }
         if (maxEntry) {
@@ -474,17 +474,17 @@ nsMemoryCacheDevice::DoEvictEntries(bool
     for (int i = kQueueCount - 1; i >= 0; --i) {
         PRCList * elem = PR_LIST_HEAD(&mEvictionList[i]);
         while (elem != &mEvictionList[i]) {
             entry = (nsCacheEntry *)elem;
             elem = PR_NEXT_LINK(elem);
 
             if (!matchFn(entry, args))
                 continue;
-            
+
             if (entry->IsInUse()) {
                 nsresult rv = nsCacheService::DoomEntry(entry);
                 if (NS_FAILED(rv)) {
                     CACHE_LOG_WARNING(("memCache->DoEvictEntries() aborted: rv =%" PRIx32,
                                        static_cast<uint32_t>(rv)));
                     return rv;
                 }
             } else {
--- a/netwerk/cache/nsMemoryCacheDevice.h
+++ b/netwerk/cache/nsMemoryCacheDevice.h
@@ -47,17 +47,17 @@ public:
                                       nsIFile **        result );
 
     virtual nsresult OnDataSizeChange( nsCacheEntry * entry, int32_t deltaSize );
 
     virtual nsresult Visit( nsICacheVisitor * visitor );
 
     virtual nsresult EvictEntries(const char * clientID);
     nsresult EvictPrivateEntries();
-    
+
     void             SetCapacity(int32_t  capacity);
     void             SetMaxEntrySize(int32_t  maxSizeInKilobytes);
 
     bool             EntryIsTooBig(int64_t entrySize);
 
     size_t           TotalSize();
 
 private:
--- a/netwerk/cache2/CacheEntry.cpp
+++ b/netwerk/cache2/CacheEntry.cpp
@@ -1779,17 +1779,17 @@ void CacheEntry::DoomFile()
     }
 
     // Always calls the callback asynchronously.
     rv = mFile->Doom(mDoomCallback ? this : nullptr);
     if (NS_SUCCEEDED(rv)) {
       LOG(("  file doomed"));
       return;
     }
-    
+
     if (NS_ERROR_FILE_NOT_FOUND == rv) {
       // File is set to be just memory-only, notify the callbacks
       // and pretend dooming has succeeded.  From point of view of
       // the entry it actually did - the data is gone and cannot be
       // reused.
       rv = NS_OK;
     }
   }
--- a/netwerk/cache2/CacheFile.cpp
+++ b/netwerk/cache2/CacheFile.cpp
@@ -766,17 +766,17 @@ CacheFile::OpenInputStream(nsICacheEntry
   if (NS_FAILED(mStatus)) {
     LOG(("CacheFile::OpenInputStream() - CacheFile is in a failure state "
          "[this=%p, status=0x%08" PRIx32 "]", this, static_cast<uint32_t>(mStatus)));
 
     // Don't allow opening the input stream when this CacheFile is in
     // a failed state.  This is the only way to protect consumers correctly
     // from reading a broken entry.  When the file is in the failed state,
     // it's also doomed, so reopening the entry won't make any difference -
-    // data will still be inaccessible anymore.  Note that for just doomed 
+    // data will still be inaccessible anymore.  Note that for just doomed
     // files, we must allow reading the data.
     return mStatus;
   }
 
   // Once we open input stream we no longer allow preloading of chunks without
   // input stream, i.e. we will no longer keep first few chunks preloaded when
   // the last input stream is closed.
   mPreloadWithoutInputStreams = false;
@@ -820,17 +820,17 @@ CacheFile::OpenAlternativeInputStream(ns
   if (NS_FAILED(mStatus)) {
     LOG(("CacheFile::OpenAlternativeInputStream() - CacheFile is in a failure "
          "state [this=%p, status=0x%08" PRIx32 "]", this, static_cast<uint32_t>(mStatus)));
 
     // Don't allow opening the input stream when this CacheFile is in
     // a failed state.  This is the only way to protect consumers correctly
     // from reading a broken entry.  When the file is in the failed state,
     // it's also doomed, so reopening the entry won't make any difference -
-    // data will still be inaccessible anymore.  Note that for just doomed 
+    // data will still be inaccessible anymore.  Note that for just doomed
     // files, we must allow reading the data.
     return mStatus;
   }
 
   const char *altData = mMetadata->GetElement(CacheFileUtils::kAltDataKey);
   MOZ_ASSERT(altData, "alt-metadata should exist but was not found!");
   if (NS_WARN_IF(!altData)) {
     LOG(("CacheFile::OpenAlternativeInputStream() - alt-metadata not found but "
--- a/netwerk/cache2/CacheFileUtils.h
+++ b/netwerk/cache2/CacheFileUtils.h
@@ -138,17 +138,17 @@ private:
   // 10-%15%, ...
   static const uint32_t kHitRateBuckets = 20;
 
   // Protects sRecordCnt, sHitStats and Telemetry::Accumulated() calls.
   static StaticMutex sLock;
 
   // Counter of samples that is compared against kTotalSamplesReportLimit.
   static uint32_t sRecordCnt;
- 
+
   // Hit rate statistics for every cache size range.
   static HitRate sHRStats[kNumOfRanges];
 };
 
 class CachePerfStats {
 public:
   // perfStatTypes in displayRcwnStats() in toolkit/content/aboutNetworking.js
   // must match EDataType
--- a/netwerk/cache2/CacheIOThread.cpp
+++ b/netwerk/cache2/CacheIOThread.cpp
@@ -31,17 +31,17 @@ class CacheIOTelemetry
 public:
   typedef CacheIOThread::EventQueue::size_type size_type;
   static size_type mMinLengthToReport[CacheIOThread::LAST_LEVEL];
   static void Report(uint32_t aLevel, size_type aLength);
 };
 
 static CacheIOTelemetry::size_type const kGranularity = 30;
 
-CacheIOTelemetry::size_type 
+CacheIOTelemetry::size_type
 CacheIOTelemetry::mMinLengthToReport[CacheIOThread::LAST_LEVEL] = {
   kGranularity, kGranularity, kGranularity, kGranularity,
   kGranularity, kGranularity, kGranularity, kGranularity
 };
 
 // static
 void CacheIOTelemetry::Report(uint32_t aLevel, CacheIOTelemetry::size_type aLength)
 {
--- a/netwerk/cookie/CookieServiceChild.cpp
+++ b/netwerk/cookie/CookieServiceChild.cpp
@@ -233,17 +233,17 @@ CookieServiceChild::SetCookieString(nsIU
 }
 
 NS_IMETHODIMP
 CookieServiceChild::SetCookieStringFromHttp(nsIURI     *aHostURI,
                                             nsIURI     *aFirstURI,
                                             nsIPrompt  *aPrompt,
                                             const char *aCookieString,
                                             const char *aServerTime,
-                                            nsIChannel *aChannel) 
+                                            nsIChannel *aChannel)
 {
   return SetCookieStringInternal(aHostURI, aChannel, aCookieString,
                                  aServerTime, true);
 }
 
 NS_IMETHODIMP
 CookieServiceChild::RunInTransaction(nsICookieTransactionCallback* aCallback)
 {
--- a/netwerk/cookie/nsCookie.h
+++ b/netwerk/cookie/nsCookie.h
@@ -11,17 +11,17 @@
 #include "nsString.h"
 
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/BasePrincipal.h"
 #include "mozilla/Preferences.h"
 
 using mozilla::OriginAttributes;
 
-/** 
+/**
  * The nsCookie class is the main cookie storage medium for use within cookie
  * code. It implements nsICookie2, which extends nsICookie, a frozen interface
  * for xpcom access of cookie objects.
  */
 
 /******************************************************************************
  * nsCookie:
  * implementation
--- a/netwerk/dns/nameprep.c
+++ b/netwerk/dns/nameprep.c
@@ -1,38 +1,38 @@
 /*
  * Copyright (c) 2001,2002 Japan Network Information Center.
  * All rights reserved.
- *  
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
- * 
+ *
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@@ -193,28 +193,28 @@ idn_nameprep_isprohibited(idn_nameprep_t
 			  const uint32_t **found) {
 	assert(handle != NULL && str != NULL && found != NULL);
 
 	TRACE(("idn_nameprep_isprohibited(ctx=%s, str=\"%s\")\n",
 	       handle->version, idn__debug_ucs4xstring(str, 50)));
 
 	return (idn_nameprep_check(handle->prohibited_proc, str, found));
 }
-		
+
 idn_result_t
 idn_nameprep_isunassigned(idn_nameprep_t handle, const uint32_t *str,
 			  const uint32_t **found) {
 	assert(handle != NULL && str != NULL && found != NULL);
 
 	TRACE(("idn_nameprep_isunassigned(handle->version, str=\"%s\")\n",
 	       handle->version, idn__debug_ucs4xstring(str, 50)));
 
 	return (idn_nameprep_check(handle->unassigned_proc, str, found));
 }
-		
+
 static idn_result_t
 idn_nameprep_check(nameprep_checkproc proc, const uint32_t *str,
 		   const uint32_t **found) {
 	uint32_t v;
 
 	while (*str != '\0') {
 		v = *str;
 
@@ -279,17 +279,17 @@ idn_nameprep_isvalidbidi(idn_nameprep_t 
 
 		if (v > UCS_MAX) {
 			/* This cannot happen, but just in case.. */
 			return (idn_invalid_codepoint);
 		} else if (v > UNICODE_MAX) {
 			/* It is invalid.. */
 			*found = str;
 			return (idn_success);
-		} else { 
+		} else {
 			last_char = (*(handle->biditype_proc))(v);
 			if (found_r_al && last_char == idn_biditype_l) {
 				*found = str;
 				return (idn_success);
 			}
 			if (first_char != idn_biditype_r_al && last_char == idn_biditype_r_al) {
 				*found = str;
 				return (idn_success);
--- a/netwerk/dns/nameprep_template.c
+++ b/netwerk/dns/nameprep_template.c
@@ -1,37 +1,37 @@
 /*
  * Copyright (c) 2001 Japan Network Information Center.  All rights reserved.
- *  
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
- * 
+ *
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
--- a/netwerk/dns/nameprepdata.c
+++ b/netwerk/dns/nameprepdata.c
@@ -1,38 +1,38 @@
 /*
  * Copyright (c) 2001,2002 Japan Network Information Center.
  * All rights reserved.
- *  
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
- * 
+ *
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@@ -59,1021 +59,1021 @@
 #define UNAS_BITS_2	7
 
 #define BIDI_BITS_0	9
 #define BIDI_BITS_1	7
 #define BIDI_BITS_2	5
 
 
 static const unsigned short nameprep_id11_map_imap[] = {
-	  272,   400,   528,   656,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   912, 
-	 1040,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,  1168,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	  784,   784,   784,   784,   784,   784,   784,   784, 
-	    0,     0,     1,     0,     0,     2,     3,     0, 
-	    4,     5,     6,     7,     8,     9,    10,    11, 
-	   12,    13,     0,     0,     0,     0,     0,     0, 
-	    0,     0,    14,    15,    16,    17,    18,    19, 
-	   20,    21,     0,    22,    23,    24,    25,    26, 
-	   27,    28,    29,     0,    30,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   31,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   32,    33,    34,    35,    36,    37,    38,    39, 
-	   40,    41,    42,    43,    44,    45,    46,    47, 
-	   48,     0,     0,    49,     0,    50,     0,     0, 
-	   51,    52,    53,    54,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,    55,    56,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    57,    58,    59,    60,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   61,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   62,     0,     0,     0,     0,     0,     0,    63, 
-	    0,    64,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   65,    66,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   67,    68,    69,    70,    71,    72,    73,    74, 
-	   75,    76,    77,    78,    79,    67,    68,    69, 
-	   70,    80,    81,    73,    74,    82,    83,    84, 
-	   85,    86,    87,    88,    89,    90,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
+	  272,   400,   528,   656,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   912,
+	 1040,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,  1168,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	  784,   784,   784,   784,   784,   784,   784,   784,
+	    0,     0,     1,     0,     0,     2,     3,     0,
+	    4,     5,     6,     7,     8,     9,    10,    11,
+	   12,    13,     0,     0,     0,     0,     0,     0,
+	    0,     0,    14,    15,    16,    17,    18,    19,
+	   20,    21,     0,    22,    23,    24,    25,    26,
+	   27,    28,    29,     0,    30,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   31,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   32,    33,    34,    35,    36,    37,    38,    39,
+	   40,    41,    42,    43,    44,    45,    46,    47,
+	   48,     0,     0,    49,     0,    50,     0,     0,
+	   51,    52,    53,    54,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,    55,    56,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    57,    58,    59,    60,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   61,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   62,     0,     0,     0,     0,     0,     0,    63,
+	    0,    64,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   65,    66,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   67,    68,    69,    70,    71,    72,    73,    74,
+	   75,    76,    77,    78,    79,    67,    68,    69,
+	   70,    80,    81,    73,    74,    82,    83,    84,
+	   85,    86,    87,    88,    89,    90,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
 };
 
 static const struct {
 	unsigned short tbl[32];
 } nameprep_id11_map_table[] = {
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20, 
-	  22,   24,   26,   28,   30,   32,   34,   36,   38,   40,   42, 
-	  44,   46,   48,   50,   52,    0,    0,    0,    0,    0, 
+	   0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20,
+	  22,   24,   26,   28,   30,   32,   34,   36,   38,   40,   42,
+	  44,   46,   48,   50,   52,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    1,    0,    0,    0,    0,    0,    0,    0,   54, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    1,    0,    0,    0,    0,    0,    0,    0,   54,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	  57,   59,   61,   63,   65,   67,   69,   71,   73,   75,   77, 
-	  79,   81,   83,   85,   87,   89,   91,   93,   95,   97,   99, 
-	 101,    0,  103,  105,  107,  109,  111,  113,  115,  117, 
+	  57,   59,   61,   63,   65,   67,   69,   71,   73,   75,   77,
+	  79,   81,   83,   85,   87,   89,   91,   93,   95,   97,   99,
+	 101,    0,  103,  105,  107,  109,  111,  113,  115,  117,
 	}},
 	{{
-	 123,    0,  126,    0,  129,    0,  132,    0,  135,    0,  138, 
-	   0,  141,    0,  144,    0,  147,    0,  150,    0,  153,    0, 
-	 156,    0,  159,    0,  162,    0,  165,    0,  168,    0, 
+	 123,    0,  126,    0,  129,    0,  132,    0,  135,    0,  138,
+	   0,  141,    0,  144,    0,  147,    0,  150,    0,  153,    0,
+	 156,    0,  159,    0,  162,    0,  165,    0,  168,    0,
 	}},
 	{{
-	 171,    0,  174,    0,  177,    0,  180,    0,  183,    0,  186, 
-	   0,  189,    0,  192,    0,  195,    0,  202,    0,  205,    0, 
-	 208,    0,    0,  211,    0,  214,    0,  217,    0,  220, 
+	 171,    0,  174,    0,  177,    0,  180,    0,  183,    0,  186,
+	   0,  189,    0,  192,    0,  195,    0,  202,    0,  205,    0,
+	 208,    0,    0,  211,    0,  214,    0,  217,    0,  220,
 	}},
 	{{
-	   0,  223,    0,  226,    0,  229,    0,  232,    0,  235,  241, 
-	   0,  244,    0,  247,    0,  250,    0,  253,    0,  256,    0, 
-	 259,    0,  262,    0,  265,    0,  268,    0,  271,    0, 
+	   0,  223,    0,  226,    0,  229,    0,  232,    0,  235,  241,
+	   0,  244,    0,  247,    0,  250,    0,  253,    0,  256,    0,
+	 259,    0,  262,    0,  265,    0,  268,    0,  271,    0,
 	}},
 	{{
-	 274,    0,  277,    0,  280,    0,  283,    0,  286,    0,  289, 
-	   0,  292,    0,  295,    0,  298,    0,  301,    0,  304,    0, 
-	 307,    0,  310,  312,    0,  315,    0,  318,    0,   38, 
+	 274,    0,  277,    0,  280,    0,  283,    0,  286,    0,  289,
+	   0,  292,    0,  295,    0,  298,    0,  301,    0,  304,    0,
+	 307,    0,  310,  312,    0,  315,    0,  318,    0,   38,
 	}},
 	{{
-	   0,  321,  324,    0,  327,    0,  330,  333,    0,  336,  339, 
-	 342,    0,    0,  345,  348,  351,  354,    0,  357,  360,    0, 
-	 363,  366,  369,    0,    0,    0,  372,  375,    0,  378, 
+	   0,  321,  324,    0,  327,    0,  330,  333,    0,  336,  339,
+	 342,    0,    0,  345,  348,  351,  354,    0,  357,  360,    0,
+	 363,  366,  369,    0,    0,    0,  372,  375,    0,  378,
 	}},
 	{{
-	 381,    0,  384,    0,  387,    0,  390,  393,    0,  396,    0, 
-	   0,  399,    0,  402,  405,    0,  408,  411,  414,    0,  417, 
-	   0,  420,  423,    0,    0,    0,  426,    0,    0,    0, 
+	 381,    0,  384,    0,  387,    0,  390,  393,    0,  396,    0,
+	   0,  399,    0,  402,  405,    0,  408,  411,  414,    0,  417,
+	   0,  420,  423,    0,    0,    0,  426,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,  429,  429,    0,  432,  432,    0,  435, 
-	 435,    0,  438,    0,  441,    0,  444,    0,  447,    0,  450, 
-	   0,  453,    0,  456,    0,  459,    0,    0,  462,    0, 
+	   0,    0,    0,    0,  429,  429,    0,  432,  432,    0,  435,
+	 435,    0,  438,    0,  441,    0,  444,    0,  447,    0,  450,
+	   0,  453,    0,  456,    0,  459,    0,    0,  462,    0,
 	}},
 	{{
-	 465,    0,  468,    0,  471,    0,  474,    0,  477,    0,  480, 
-	   0,  483,    0,  486,    0,  489,  496,  496,    0,  499,    0, 
-	 502,  505,  508,    0,  511,    0,  514,    0,  517,    0, 
+	 465,    0,  468,    0,  471,    0,  474,    0,  477,    0,  480,
+	   0,  483,    0,  486,    0,  489,  496,  496,    0,  499,    0,
+	 502,  505,  508,    0,  511,    0,  514,    0,  517,    0,
 	}},
 	{{
-	 520,    0,  523,    0,  526,    0,  529,    0,  532,    0,  535, 
-	   0,  538,    0,  541,    0,  544,    0,  547,    0,  550,    0, 
-	 553,    0,  556,    0,  559,    0,  562,    0,  565,    0, 
+	 520,    0,  523,    0,  526,    0,  529,    0,  532,    0,  535,
+	   0,  538,    0,  541,    0,  544,    0,  547,    0,  550,    0,
+	 553,    0,  556,    0,  559,    0,  562,    0,  565,    0,
 	}},
 	{{
-	 568,    0,  571,    0,  574,    0,  577,    0,  580,    0,  583, 
-	   0,  586,    0,  589,    0,  592,    0,  595,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 568,    0,  571,    0,  574,    0,  577,    0,  580,    0,  583,
+	   0,  586,    0,  589,    0,  592,    0,  595,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,  598,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    1,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,  598,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,  601,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,  601,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,  608,    0,  611,  614,  617, 
-	   0,  620,    0,  623,  626,  629,  640,  643,  646,  649,  652, 
-	 655,  658,  661,  598,  664,  667,   54,  670,  673,  676, 
+	   0,    0,    0,    0,    0,    0,  608,    0,  611,  614,  617,
+	   0,  620,    0,  623,  626,  629,  640,  643,  646,  649,  652,
+	 655,  658,  661,  598,  664,  667,   54,  670,  673,  676,
 	}},
 	{{
-	 679,  682,    0,  685,  688,  691,  694,  697,  700,  703,  706, 
-	 709,    0,    0,    0,    0,  712,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 679,  682,    0,  685,  688,  691,  694,  697,  700,  703,  706,
+	 709,    0,    0,    0,    0,  712,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,  685,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  643,  661,  691,  623,  709,  694, 
-	 679,    0,  723,    0,  726,    0,  729,    0,  732,    0, 
+	   0,    0,  685,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  643,  661,  691,  623,  709,  694,
+	 679,    0,  723,    0,  726,    0,  729,    0,  732,    0,
 	}},
 	{{
-	 735,    0,  738,    0,  741,    0,  744,    0,  747,    0,  750, 
-	   0,  753,    0,  756,    0,  664,  682,  685,    0,  661,  652, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 735,    0,  738,    0,  741,    0,  744,    0,  747,    0,  750,
+	   0,  753,    0,  756,    0,  664,  682,  685,    0,  661,  652,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	 759,  762,  765,  768,  771,  774,  777,  780,  783,  786,  789, 
-	 792,  795,  798,  801,  804,  807,  810,  813,  816,  819,  822, 
-	 825,  828,  831,  834,  837,  840,  843,  846,  849,  852, 
+	 759,  762,  765,  768,  771,  774,  777,  780,  783,  786,  789,
+	 792,  795,  798,  801,  804,  807,  810,  813,  816,  819,  822,
+	 825,  828,  831,  834,  837,  840,  843,  846,  849,  852,
 	}},
 	{{
-	 855,  858,  861,  864,  867,  870,  873,  876,  879,  882,  885, 
-	 888,  891,  894,  897,  900,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 855,  858,  861,  864,  867,  870,  873,  876,  879,  882,  885,
+	 888,  891,  894,  897,  900,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	 903,    0,  906,    0,  909,    0,  912,    0,  915,    0,  918, 
-	   0,  921,    0,  924,    0,  927,    0,  930,    0,  933,    0, 
-	 936,    0,  939,    0,  942,    0,  945,    0,  948,    0, 
+	 903,    0,  906,    0,  909,    0,  912,    0,  915,    0,  918,
+	   0,  921,    0,  924,    0,  927,    0,  930,    0,  933,    0,
+	 936,    0,  939,    0,  942,    0,  945,    0,  948,    0,
 	}},
 	{{
-	 951,    0,    0,    0,    0,    0,    0,    0,    0,    0,  954, 
-	   0,  957,    0,  960,    0,  963,    0,  966,    0,  969,    0, 
-	 972,    0,  975,    0,  978,    0,  981,    0,  984,    0, 
+	 951,    0,    0,    0,    0,    0,    0,    0,    0,    0,  954,
+	   0,  957,    0,  960,    0,  963,    0,  966,    0,  969,    0,
+	 972,    0,  975,    0,  978,    0,  981,    0,  984,    0,
 	}},
 	{{
-	 987,    0,  990,    0,  993,    0,  996,    0,  999,    0, 1002, 
-	   0, 1005,    0, 1008,    0, 1011,    0, 1014,    0, 1017,    0, 
-	1020,    0, 1023,    0, 1026,    0, 1029,    0, 1032,    0, 
+	 987,    0,  990,    0,  993,    0,  996,    0,  999,    0, 1002,
+	   0, 1005,    0, 1008,    0, 1011,    0, 1014,    0, 1017,    0,
+	1020,    0, 1023,    0, 1026,    0, 1029,    0, 1032,    0,
 	}},
 	{{
-	   0, 1035,    0, 1038,    0, 1041,    0, 1044,    0, 1047,    0, 
-	1050,    0, 1053,    0,    0, 1056,    0, 1059,    0, 1062,    0, 
-	1065,    0, 1068,    0, 1071,    0, 1074,    0, 1077,    0, 
+	   0, 1035,    0, 1038,    0, 1041,    0, 1044,    0, 1047,    0,
+	1050,    0, 1053,    0,    0, 1056,    0, 1059,    0, 1062,    0,
+	1065,    0, 1068,    0, 1071,    0, 1074,    0, 1077,    0,
 	}},
 	{{
-	1080,    0, 1083,    0, 1086,    0, 1089,    0, 1092,    0, 1095, 
-	   0, 1098,    0, 1101,    0, 1104,    0, 1107,    0, 1110,    0, 
-	   0,    0, 1113,    0,    0,    0,    0,    0,    0,    0, 
+	1080,    0, 1083,    0, 1086,    0, 1089,    0, 1092,    0, 1095,
+	   0, 1098,    0, 1101,    0, 1104,    0, 1107,    0, 1110,    0,
+	   0,    0, 1113,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	1116,    0, 1119,    0, 1122,    0, 1125,    0, 1128,    0, 1131, 
-	   0, 1134,    0, 1137,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	1116,    0, 1119,    0, 1122,    0, 1125,    0, 1128,    0, 1131,
+	   0, 1134,    0, 1137,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0, 1140, 1143, 1146, 1149, 1152, 
-	1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0, 1140, 1143, 1146, 1149, 1152,
+	1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182,
 	}},
 	{{
-	1185, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215, 
-	1218, 1221, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, 
-	1251,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	1185, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215,
+	1218, 1221, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248,
+	1251,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0, 1254,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0, 1254,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    1,    0,    0,    0,    0, 
-	   1,    1,    1,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    1,    0,    0,    0,    0,
+	   1,    1,    1,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	1261,    0, 1264,    0, 1267,    0, 1270,    0, 1273,    0, 1276, 
-	   0, 1279,    0, 1282,    0, 1285,    0, 1288,    0, 1291,    0, 
-	1294,    0, 1297,    0, 1300,    0, 1303,    0, 1306,    0, 
+	1261,    0, 1264,    0, 1267,    0, 1270,    0, 1273,    0, 1276,
+	   0, 1279,    0, 1282,    0, 1285,    0, 1288,    0, 1291,    0,
+	1294,    0, 1297,    0, 1300,    0, 1303,    0, 1306,    0,
 	}},
 	{{
-	1309,    0, 1312,    0, 1315,    0, 1318,    0, 1321,    0, 1324, 
-	   0, 1327,    0, 1330,    0, 1333,    0, 1336,    0, 1339,    0, 
-	1342,    0, 1345,    0, 1348,    0, 1351,    0, 1354,    0, 
+	1309,    0, 1312,    0, 1315,    0, 1318,    0, 1321,    0, 1324,
+	   0, 1327,    0, 1330,    0, 1333,    0, 1336,    0, 1339,    0,
+	1342,    0, 1345,    0, 1348,    0, 1351,    0, 1354,    0,
 	}},
 	{{
-	1357,    0, 1360,    0, 1363,    0, 1366,    0, 1369,    0, 1372, 
-	   0, 1375,    0, 1378,    0, 1381,    0, 1384,    0, 1387,    0, 
-	1390,    0, 1393,    0, 1396,    0, 1399,    0, 1402,    0, 
+	1357,    0, 1360,    0, 1363,    0, 1366,    0, 1369,    0, 1372,
+	   0, 1375,    0, 1378,    0, 1381,    0, 1384,    0, 1387,    0,
+	1390,    0, 1393,    0, 1396,    0, 1399,    0, 1402,    0,
 	}},
 	{{
-	1405,    0, 1408,    0, 1411,    0, 1414,    0, 1417,    0, 1420, 
-	   0, 1423,    0, 1426,    0, 1429,    0, 1432,    0, 1435,    0, 
-	1438,    0, 1441,    0, 1444,    0, 1447,    0, 1450,    0, 
+	1405,    0, 1408,    0, 1411,    0, 1414,    0, 1417,    0, 1420,
+	   0, 1423,    0, 1426,    0, 1429,    0, 1432,    0, 1435,    0,
+	1438,    0, 1441,    0, 1444,    0, 1447,    0, 1450,    0,
 	}},
 	{{
-	1453,    0, 1456,    0, 1459,    0, 1462,    0, 1465,    0, 1468, 
-	   0, 1471,    0, 1474,    0, 1477,    0, 1480,    0, 1483,    0, 
-	1486, 1493, 1500, 1507, 1514, 1405,    0,    0,    0,    0, 
+	1453,    0, 1456,    0, 1459,    0, 1462,    0, 1465,    0, 1468,
+	   0, 1471,    0, 1474,    0, 1477,    0, 1480,    0, 1483,    0,
+	1486, 1493, 1500, 1507, 1514, 1405,    0,    0,    0,    0,
 	}},
 	{{
-	1521,    0, 1524,    0, 1527,    0, 1530,    0, 1533,    0, 1536, 
-	   0, 1539,    0, 1542,    0, 1545,    0, 1548,    0, 1551,    0, 
-	1554,    0, 1557,    0, 1560,    0, 1563,    0, 1566,    0, 
+	1521,    0, 1524,    0, 1527,    0, 1530,    0, 1533,    0, 1536,
+	   0, 1539,    0, 1542,    0, 1545,    0, 1548,    0, 1551,    0,
+	1554,    0, 1557,    0, 1560,    0, 1563,    0, 1566,    0,
 	}},
 	{{
-	1569,    0, 1572,    0, 1575,    0, 1578,    0, 1581,    0, 1584, 
-	   0, 1587,    0, 1590,    0, 1593,    0, 1596,    0, 1599,    0, 
-	1602,    0, 1605,    0, 1608,    0, 1611,    0, 1614,    0, 
+	1569,    0, 1572,    0, 1575,    0, 1578,    0, 1581,    0, 1584,
+	   0, 1587,    0, 1590,    0, 1593,    0, 1596,    0, 1599,    0,
+	1602,    0, 1605,    0, 1608,    0, 1611,    0, 1614,    0,
 	}},
 	{{
-	1617,    0, 1620,    0, 1623,    0, 1626,    0, 1629,    0, 1632, 
-	   0, 1635,    0, 1638,    0, 1641,    0, 1644,    0, 1647,    0, 
-	1650,    0, 1653,    0,    0,    0,    0,    0,    0,    0, 
+	1617,    0, 1620,    0, 1623,    0, 1626,    0, 1629,    0, 1632,
+	   0, 1635,    0, 1638,    0, 1641,    0, 1644,    0, 1647,    0,
+	1650,    0, 1653,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0, 1656, 1659, 1662, 
-	1665, 1668, 1671, 1674, 1677,    0,    0,    0,    0,    0,    0, 
-	   0,    0, 1680, 1683, 1686, 1689, 1692, 1695,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0, 1656, 1659, 1662,
+	1665, 1668, 1671, 1674, 1677,    0,    0,    0,    0,    0,    0,
+	   0,    0, 1680, 1683, 1686, 1689, 1692, 1695,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0, 1698, 1701, 1704, 
-	1707, 1710, 1713, 1716, 1719,    0,    0,    0,    0,    0,    0, 
-	   0,    0, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 
+	   0,    0,    0,    0,    0,    0,    0,    0, 1698, 1701, 1704,
+	1707, 1710, 1713, 1716, 1719,    0,    0,    0,    0,    0,    0,
+	   0,    0, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0, 1746, 1749, 1752, 
-	1755, 1758, 1761,    0,    0, 1764,    0, 1771,    0, 1782,    0, 
-	1793,    0,    0, 1804,    0, 1807,    0, 1810,    0, 1813, 
+	   0,    0,    0,    0,    0,    0,    0,    0, 1746, 1749, 1752,
+	1755, 1758, 1761,    0,    0, 1764,    0, 1771,    0, 1782,    0,
+	1793,    0,    0, 1804,    0, 1807,    0, 1810,    0, 1813,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0, 1816, 1819, 1822, 
-	1825, 1828, 1831, 1834, 1837,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0, 1816, 1819, 1822,
+	1825, 1828, 1831, 1834, 1837,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	1840, 1847, 1854, 1861, 1868, 1875, 1882, 1889, 1840, 1847, 1854, 
-	1861, 1868, 1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931, 
-	1938, 1945, 1896, 1903, 1910, 1917, 1924, 1931, 1938, 1945, 
+	1840, 1847, 1854, 1861, 1868, 1875, 1882, 1889, 1840, 1847, 1854,
+	1861, 1868, 1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931,
+	1938, 1945, 1896, 1903, 1910, 1917, 1924, 1931, 1938, 1945,
 	}},
 	{{
-	1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 1952, 1959, 1966, 
-	1973, 1980, 1987, 1994, 2001,    0,    0, 2008, 2015, 2022,    0, 
-	2029, 2036, 2047, 2050, 2053, 2056, 2015,    0,  598,    0, 
+	1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 1952, 1959, 1966,
+	1973, 1980, 1987, 1994, 2001,    0,    0, 2008, 2015, 2022,    0,
+	2029, 2036, 2047, 2050, 2053, 2056, 2015,    0,  598,    0,
 	}},
 	{{
-	   0,    0, 2059, 2066, 2073,    0, 2080, 2087, 2098, 2101, 2104, 
-	2107, 2066,    0,    0,    0,    0,    0, 2110,  629,    0,    0, 
-	2121, 2128, 2139, 2142, 2145, 2148,    0,    0,    0,    0, 
+	   0,    0, 2059, 2066, 2073,    0, 2080, 2087, 2098, 2101, 2104,
+	2107, 2066,    0,    0,    0,    0,    0, 2110,  629,    0,    0,
+	2121, 2128, 2139, 2142, 2145, 2148,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0, 2151,  712, 2162,    0, 2169, 2176, 2187, 2190, 2193, 
-	2196, 2199,    0,    0,    0,    0,    0, 2202, 2209, 2216,    0, 
-	2223, 2230, 2241, 2244, 2247, 2250, 2209,    0,    0,    0, 
+	   0,    0, 2151,  712, 2162,    0, 2169, 2176, 2187, 2190, 2193,
+	2196, 2199,    0,    0,    0,    0,    0, 2202, 2209, 2216,    0,
+	2223, 2230, 2241, 2244, 2247, 2250, 2209,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   1,    1,    1,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   1,    1,    1,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0, 2253,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0, 2253,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    6, 2259,    0,    0,    0,  351,    0, 2265,    0, 
-	  16,   16,   16,    0,    0,   18,   18,   24,    0,    0,   28, 
-	2271,    0,    0,   32,   34,   36,   36,   36,    0,    0, 
+	   0,    0,    6, 2259,    0,    0,    0,  351,    0, 2265,    0,
+	  16,   16,   16,    0,    0,   18,   18,   24,    0,    0,   28,
+	2271,    0,    0,   32,   34,   36,   36,   36,    0,    0,
 	}},
 	{{
-	2277, 2283, 2293,    0,   52,    0,  703,    0,   52,    0,   22, 
-	  67,    4,    6,    0,    0,   10,   12,    0,   26,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,  646,  679, 
+	2277, 2283, 2293,    0,   52,    0,  703,    0,   52,    0,   22,
+	  67,    4,    6,    0,    0,   10,   12,    0,   26,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,  646,  679,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    8,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    8,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	2299, 2302, 2305, 2308, 2311, 2314, 2317, 2320, 2323, 2326, 2329, 
-	2332, 2335, 2338, 2341, 2344,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	2299, 2302, 2305, 2308, 2311, 2314, 2317, 2320, 2323, 2326, 2329,
+	2332, 2335, 2338, 2341, 2344,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374,
 	}},
 	{{
-	2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, 
-	2410, 2413, 2416, 2419, 2422,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407,
+	2410, 2413, 2416, 2419, 2422,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0, 2425,    0, 2435,    0, 2441, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0, 2425,    0, 2435,    0, 2441,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	2447, 2453, 2459, 2465, 2471, 2477, 2483, 2489,    0,    0, 2495, 
-	2501, 2507,    0,    0,    0, 2513, 2519, 2529, 2539, 2549,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	2447, 2453, 2459, 2465, 2471, 2477, 2483, 2489,    0,    0, 2495,
+	2501, 2507,    0,    0,    0, 2513, 2519, 2529, 2539, 2549,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0, 2447, 2559, 
-	2569, 2579,    0,    0,    0,    0,    0,    0,    0, 2589, 2595, 
-	2601, 2607, 2613, 2607, 2619, 2625, 2631, 2637, 2643, 2637, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0, 2447, 2559,
+	2569, 2579,    0,    0,    0,    0,    0,    0,    0, 2589, 2595,
+	2601, 2607, 2613, 2607, 2619, 2625, 2631, 2637, 2643, 2637,
 	}},
 	{{
-	2649, 2656,    0, 2663,    0,    0, 2669, 2683, 2693, 2699,    0, 
-	2705,    0, 2711, 2717,    0,    0,    0,    0,    0,    0,    0, 
-	   0, 2723,    0, 2729, 2739,    0, 2745, 2751,    0,    0, 
+	2649, 2656,    0, 2663,    0,    0, 2669, 2683, 2693, 2699,    0,
+	2705,    0, 2711, 2717,    0,    0,    0,    0,    0,    0,    0,
+	   0, 2723,    0, 2729, 2739,    0, 2745, 2751,    0,    0,
 	}},
 	{{
-	2757, 2763, 2769, 2775, 2785, 2795, 2795,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0, 2801, 2808, 2815, 
-	2822, 2829,    0,    0,    0,    0,    0,    0,    0,    0, 
+	2757, 2763, 2769, 2775, 2785, 2795, 2795,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0, 2801, 2808, 2815,
+	2822, 2829,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
-	   1,    1,    1,    1,    1,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+	   1,    1,    1,    1,    1,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    1, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
 	}},
 	{{
-	   0, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, 2863, 
-	2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, 
-	2899, 2902, 2905, 2908, 2911,    0,    0,    0,    0,    0, 
+	   0, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, 2863,
+	2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896,
+	2899, 2902, 2905, 2908, 2911,    0,    0,    0,    0,    0,
 	}},
 	{{
-	2914, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954, 
-	2958, 2962, 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998, 
-	3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034, 3038, 
+	2914, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954,
+	2958, 2962, 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998,
+	3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034, 3038,
 	}},
 	{{
-	3042, 3046, 3050, 3054, 3058, 3062,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	3042, 3046, 3050, 3054, 3058, 3062,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   2,    4,    6,    8,   10,   12,   14,   16,   18,   20,   22, 
-	  24,   26,   28,   30,   32,   34,   36,   38,   40,   42,   44, 
-	  46,   48,   50,   52,    0,    0,    0,    0,    0,    0, 
+	   2,    4,    6,    8,   10,   12,   14,   16,   18,   20,   22,
+	  24,   26,   28,   30,   32,   34,   36,   38,   40,   42,   44,
+	  46,   48,   50,   52,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    2,    4, 
-	   6,    8,   10,   12,   14,   16,   18,   20,   22,   24, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    2,    4,
+	   6,    8,   10,   12,   14,   16,   18,   20,   22,   24,
 	}},
 	{{
-	  26,   28,   30,   32,   34,   36,   38,   40,   42,   44,   46, 
-	  48,   50,   52,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	  26,   28,   30,   32,   34,   36,   38,   40,   42,   44,   46,
+	  48,   50,   52,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    2,    4,    6, 
-	   8,   10,   12,   14,   16,   18,   20,   22,   24,   26,   28, 
-	  30,   32,   34,   36,   38,   40,   42,   44,   46,   48, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    2,    4,    6,
+	   8,   10,   12,   14,   16,   18,   20,   22,   24,   26,   28,
+	  30,   32,   34,   36,   38,   40,   42,   44,   46,   48,
 	}},
 	{{
-	  50,   52,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    2,    0,    6,    8, 
+	  50,   52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    2,    0,    6,    8,
 	}},
 	{{
-	   0,    0,   14,    0,    0,   20,   22,    0,    0,   28,   30, 
-	  32,   34,    0,   38,   40,   42,   44,   46,   48,   50,   52, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	   0,    0,   14,    0,    0,   20,   22,    0,    0,   28,   30,
+	  32,   34,    0,   38,   40,   42,   44,   46,   48,   50,   52,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    2,    4,    6,    8,   10,   12, 
-	  14,   16,   18,   20,   22,   24,   26,   28,   30,   32, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    2,    4,    6,    8,   10,   12,
+	  14,   16,   18,   20,   22,   24,   26,   28,   30,   32,
 	}},
 	{{
-	  34,   36,   38,   40,   42,   44,   46,   48,   50,   52,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	  34,   36,   38,   40,   42,   44,   46,   48,   50,   52,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    2,    4,    0,    8,   10,   12,   14, 
-	   0,    0,   20,   22,   24,   26,   28,   30,   32,   34,    0, 
-	  38,   40,   42,   44,   46,   48,   50,    0,    0,    0, 
+	   0,    0,    0,    0,    2,    4,    0,    8,   10,   12,   14,
+	   0,    0,   20,   22,   24,   26,   28,   30,   32,   34,    0,
+	  38,   40,   42,   44,   46,   48,   50,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    2,    4,    0,    8,   10,   12,   14,    0, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    2,    4,    0,    8,   10,   12,   14,    0,
 	}},
 	{{
-	  18,   20,   22,   24,   26,    0,   30,    0,    0,    0,   38, 
-	  40,   42,   44,   46,   48,   50,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	  18,   20,   22,   24,   26,    0,   30,    0,    0,    0,   38,
+	  40,   42,   44,   46,   48,   50,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20, 
-	  22,   24,   26,   28,   30,   32,   34,   36,   38,   40, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20,
+	  22,   24,   26,   28,   30,   32,   34,   36,   38,   40,
 	}},
 	{{
-	  42,   44,   46,   48,   50,   52,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	  42,   44,   46,   48,   50,   52,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	  50,   52,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    2,    4,    6,    8, 
+	  50,   52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    2,    4,    6,    8,
 	}},
 	{{
-	  10,   12,   14,   16,   18,   20,   22,   24,   26,   28,   30, 
-	  32,   34,   36,   38,   40,   42,   44,   46,   48,   50,   52, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	  10,   12,   14,   16,   18,   20,   22,   24,   26,   28,   30,
+	  32,   34,   36,   38,   40,   42,   44,   46,   48,   50,   52,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,  640,  643,  646, 
-	 649,  652,  655,  658,  661,  598,  664,  667,   54,  670,  673, 
-	 676,  679,  682,  661,  685,  688,  691,  694,  697,  700, 
+	   0,    0,    0,    0,    0,    0,    0,    0,  640,  643,  646,
+	 649,  652,  655,  658,  661,  598,  664,  667,   54,  670,  673,
+	 676,  679,  682,  661,  685,  688,  691,  694,  697,  700,
 	}},
 	{{
-	 703,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,  685,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 703,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,  685,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,  640,  643,  646,  649,  652,  655,  658,  661,  598, 
-	 664,  667,   54,  670,  673,  676,  679,  682,  661,  685,  688, 
-	 691,  694,  697,  700,  703,    0,    0,    0,    0,    0, 
+	   0,    0,  640,  643,  646,  649,  652,  655,  658,  661,  598,
+	 664,  667,   54,  670,  673,  676,  679,  682,  661,  685,  688,
+	 691,  694,  697,  700,  703,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,  685,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,  640,  643,  646,  649, 
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,  685,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,  640,  643,  646,  649,
 	}},
 	{{
-	 652,  655,  658,  661,  598,  664,  667,   54,  670,  673,  676, 
-	 679,  682,  661,  685,  688,  691,  694,  697,  700,  703,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 652,  655,  658,  661,  598,  664,  667,   54,  670,  673,  676,
+	 679,  682,  661,  685,  688,  691,  694,  697,  700,  703,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,    0,    0,    0,    0,    0,    0,  685,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	 640,  643,  646,  649,  652,  655,  658,  661,  598,  664, 
+	   0,    0,    0,    0,    0,    0,    0,  685,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	 640,  643,  646,  649,  652,  655,  658,  661,  598,  664,
 	}},
 	{{
-	 667,   54,  670,  673,  676,  679,  682,  661,  685,  688,  691, 
-	 694,  697,  700,  703,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
+	 667,   54,  670,  673,  676,  679,  682,  661,  685,  688,  691,
+	 694,  697,  700,  703,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 	}},
 	{{
-	   0,  685,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  640,  643,  646,  649,  652,  655, 
-	 658,  661,  598,  664,  667,   54,  670,  673,  676,  679, 
+	   0,  685,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  640,  643,  646,  649,  652,  655,
+	 658,  661,  598,  664,  667,   54,  670,  673,  676,  679,
 	}},
 	{{
-	 682,  661,  685,  688,  691,  694,  697,  700,  703,    0,    0, 
-	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
-	   0,    0,    0,    0,    0,  685,    0,    0,    0,    0, 
+	 682,  661,  685,  688,  691,  694,  697,  700,  703,    0,    0,
+	   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+	   0,    0,    0,    0,    0,  685,    0,    0,    0,    0,
 	}},
 };
 
 static const unsigned char nameprep_id11_map_data[] = {
-	  0,   0,   1,  97,   1,  98,   1,  99,   1, 100,   1, 101, 
-	  1, 102,   1, 103,   1, 104,   1, 105,   1, 106,   1, 107, 
-	  1, 108,   1, 109,   1, 110,   1, 111,   1, 112,   1, 113, 
-	  1, 114,   1, 115,   1, 116,   1, 117,   1, 118,   1, 119, 
-	  1, 120,   1, 121,   1, 122,   2, 188,   3,   1, 224,   1, 
-	225,   1, 226,   1, 227,   1, 228,   1, 229,   1, 230,   1, 
-	231,   1, 232,   1, 233,   1, 234,   1, 235,   1, 236,   1, 
-	237,   1, 238,   1, 239,   1, 240,   1, 241,   1, 242,   1, 
-	243,   1, 244,   1, 245,   1, 246,   1, 248,   1, 249,   1, 
-	250,   1, 251,   1, 252,   1, 253,   1, 254,   5, 115,   0, 
-	  0,   0, 115,   2,   1,   1,   2,   3,   1,   2,   5,   1, 
-	  2,   7,   1,   2,   9,   1,   2,  11,   1,   2,  13,   1, 
-	  2,  15,   1,   2,  17,   1,   2,  19,   1,   2,  21,   1, 
-	  2,  23,   1,   2,  25,   1,   2,  27,   1,   2,  29,   1, 
-	  2,  31,   1,   2,  33,   1,   2,  35,   1,   2,  37,   1, 
-	  2,  39,   1,   2,  41,   1,   2,  43,   1,   2,  45,   1, 
-	  2,  47,   1,   6, 105,   0,   0,   0,   7,   3,   2,  51, 
-	  1,   2,  53,   1,   2,  55,   1,   2,  58,   1,   2,  60, 
-	  1,   2,  62,   1,   2,  64,   1,   2,  66,   1,   2,  68, 
-	  1,   2,  70,   1,   2,  72,   1,   5, 188,   2,   0,   0, 
-	110,   2,  75,   1,   2,  77,   1,   2,  79,   1,   2,  81, 
-	  1,   2,  83,   1,   2,  85,   1,   2,  87,   1,   2,  89, 
-	  1,   2,  91,   1,   2,  93,   1,   2,  95,   1,   2,  97, 
-	  1,   2,  99,   1,   2, 101,   1,   2, 103,   1,   2, 105, 
-	  1,   2, 107,   1,   2, 109,   1,   2, 111,   1,   2, 113, 
-	  1,   2, 115,   1,   2, 117,   1,   2, 119,   1,   1, 255, 
-	  2, 122,   1,   2, 124,   1,   2, 126,   1,   2,  83,   2, 
-	  2, 131,   1,   2, 133,   1,   2,  84,   2,   2, 136,   1, 
-	  2,  86,   2,   2,  87,   2,   2, 140,   1,   2, 221,   1, 
-	  2,  89,   2,   2,  91,   2,   2, 146,   1,   2,  96,   2, 
-	  2,  99,   2,   2, 105,   2,   2, 104,   2,   2, 153,   1, 
-	  2, 111,   2,   2, 114,   2,   2, 117,   2,   2, 161,   1, 
-	  2, 163,   1,   2, 165,   1,   2, 128,   2,   2, 168,   1, 
-	  2, 131,   2,   2, 173,   1,   2, 136,   2,   2, 176,   1, 
-	  2, 138,   2,   2, 139,   2,   2, 180,   1,   2, 182,   1, 
-	  2, 146,   2,   2, 185,   1,   2, 189,   1,   2, 198,   1, 
-	  2, 201,   1,   2, 204,   1,   2, 206,   1,   2, 208,   1, 
-	  2, 210,   1,   2, 212,   1,   2, 214,   1,   2, 216,   1, 
-	  2, 218,   1,   2, 220,   1,   2, 223,   1,   2, 225,   1, 
-	  2, 227,   1,   2, 229,   1,   2, 231,   1,   2, 233,   1, 
-	  2, 235,   1,   2, 237,   1,   2, 239,   1,   6, 106,   0, 
-	  0,   0,  12,   3,   2, 243,   1,   2, 245,   1,   2, 149, 
-	  1,   2, 191,   1,   2, 249,   1,   2, 251,   1,   2, 253, 
-	  1,   2, 255,   1,   2,   1,   2,   2,   3,   2,   2,   5, 
-	  2,   2,   7,   2,   2,   9,   2,   2,  11,   2,   2,  13, 
-	  2,   2,  15,   2,   2,  17,   2,   2,  19,   2,   2,  21, 
-	  2,   2,  23,   2,   2,  25,   2,   2,  27,   2,   2,  29, 
-	  2,   2,  31,   2,   2, 158,   1,   2,  35,   2,   2,  37, 
-	  2,   2,  39,   2,   2,  41,   2,   2,  43,   2,   2,  45, 
-	  2,   2,  47,   2,   2,  49,   2,   2,  51,   2,   2, 185, 
-	  3,   6,  32,   0,   0,   0, 185,   3,   2, 172,   3,   2, 
-	173,   3,   2, 174,   3,   2, 175,   3,   2, 204,   3,   2, 
-	205,   3,   2, 206,   3,  10, 185,   3,   0,   0,   8,   3, 
-	  0,   0,   1,   3,   2, 177,   3,   2, 178,   3,   2, 179, 
-	  3,   2, 180,   3,   2, 181,   3,   2, 182,   3,   2, 183, 
-	  3,   2, 184,   3,   2, 186,   3,   2, 187,   3,   2, 189, 
-	  3,   2, 190,   3,   2, 191,   3,   2, 192,   3,   2, 193, 
-	  3,   2, 195,   3,   2, 196,   3,   2, 197,   3,   2, 198, 
-	  3,   2, 199,   3,   2, 200,   3,   2, 201,   3,   2, 202, 
-	  3,   2, 203,   3,  10, 197,   3,   0,   0,   8,   3,   0, 
-	  0,   1,   3,   2, 217,   3,   2, 219,   3,   2, 221,   3, 
-	  2, 223,   3,   2, 225,   3,   2, 227,   3,   2, 229,   3, 
-	  2, 231,   3,   2, 233,   3,   2, 235,   3,   2, 237,   3, 
-	  2, 239,   3,   2,  80,   4,   2,  81,   4,   2,  82,   4, 
-	  2,  83,   4,   2,  84,   4,   2,  85,   4,   2,  86,   4, 
-	  2,  87,   4,   2,  88,   4,   2,  89,   4,   2,  90,   4, 
-	  2,  91,   4,   2,  92,   4,   2,  93,   4,   2,  94,   4, 
-	  2,  95,   4,   2,  48,   4,   2,  49,   4,   2,  50,   4, 
-	  2,  51,   4,   2,  52,   4,   2,  53,   4,   2,  54,   4, 
-	  2,  55,   4,   2,  56,   4,   2,  57,   4,   2,  58,   4, 
-	  2,  59,   4,   2,  60,   4,   2,  61,   4,   2,  62,   4, 
-	  2,  63,   4,   2,  64,   4,   2,  65,   4,   2,  66,   4, 
-	  2,  67,   4,   2,  68,   4,   2,  69,   4,   2,  70,   4, 
-	  2,  71,   4,   2,  72,   4,   2,  73,   4,   2,  74,   4, 
-	  2,  75,   4,   2,  76,   4,   2,  77,   4,   2,  78,   4, 
-	  2,  79,   4,   2,  97,   4,   2,  99,   4,   2, 101,   4, 
-	  2, 103,   4,   2, 105,   4,   2, 107,   4,   2, 109,   4, 
-	  2, 111,   4,   2, 113,   4,   2, 115,   4,   2, 117,   4, 
-	  2, 119,   4,   2, 121,   4,   2, 123,   4,   2, 125,   4, 
-	  2, 127,   4,   2, 129,   4,   2, 139,   4,   2, 141,   4, 
-	  2, 143,   4,   2, 145,   4,   2, 147,   4,   2, 149,   4, 
-	  2, 151,   4,   2, 153,   4,   2, 155,   4,   2, 157,   4, 
-	  2, 159,   4,   2, 161,   4,   2, 163,   4,   2, 165,   4, 
-	  2, 167,   4,   2, 169,   4,   2, 171,   4,   2, 173,   4, 
-	  2, 175,   4,   2, 177,   4,   2, 179,   4,   2, 181,   4, 
-	  2, 183,   4,   2, 185,   4,   2, 187,   4,   2, 189,   4, 
-	  2, 191,   4,   2, 194,   4,   2, 196,   4,   2, 198,   4, 
-	  2, 200,   4,   2, 202,   4,   2, 204,   4,   2, 206,   4, 
-	  2, 209,   4,   2, 211,   4,   2, 213,   4,   2, 215,   4, 
-	  2, 217,   4,   2, 219,   4,   2, 221,   4,   2, 223,   4, 
-	  2, 225,   4,   2, 227,   4,   2, 229,   4,   2, 231,   4, 
-	  2, 233,   4,   2, 235,   4,   2, 237,   4,   2, 239,   4, 
-	  2, 241,   4,   2, 243,   4,   2, 245,   4,   2, 249,   4, 
-	  2,   1,   5,   2,   3,   5,   2,   5,   5,   2,   7,   5, 
-	  2,   9,   5,   2,  11,   5,   2,  13,   5,   2,  15,   5, 
-	  2,  97,   5,   2,  98,   5,   2,  99,   5,   2, 100,   5, 
-	  2, 101,   5,   2, 102,   5,   2, 103,   5,   2, 104,   5, 
-	  2, 105,   5,   2, 106,   5,   2, 107,   5,   2, 108,   5, 
-	  2, 109,   5,   2, 110,   5,   2, 111,   5,   2, 112,   5, 
-	  2, 113,   5,   2, 114,   5,   2, 115,   5,   2, 116,   5, 
-	  2, 117,   5,   2, 118,   5,   2, 119,   5,   2, 120,   5, 
-	  2, 121,   5,   2, 122,   5,   2, 123,   5,   2, 124,   5, 
-	  2, 125,   5,   2, 126,   5,   2, 127,   5,   2, 128,   5, 
-	  2, 129,   5,   2, 130,   5,   2, 131,   5,   2, 132,   5, 
-	  2, 133,   5,   2, 134,   5,   6, 101,   5,   0,   0, 130, 
-	  5,   2,   1,  30,   2,   3,  30,   2,   5,  30,   2,   7, 
-	 30,   2,   9,  30,   2,  11,  30,   2,  13,  30,   2,  15, 
-	 30,   2,  17,  30,   2,  19,  30,   2,  21,  30,   2,  23, 
-	 30,   2,  25,  30,   2,  27,  30,   2,  29,  30,   2,  31, 
-	 30,   2,  33,  30,   2,  35,  30,   2,  37,  30,   2,  39, 
-	 30,   2,  41,  30,   2,  43,  30,   2,  45,  30,   2,  47, 
-	 30,   2,  49,  30,   2,  51,  30,   2,  53,  30,   2,  55, 
-	 30,   2,  57,  30,   2,  59,  30,   2,  61,  30,   2,  63, 
-	 30,   2,  65,  30,   2,  67,  30,   2,  69,  30,   2,  71, 
-	 30,   2,  73,  30,   2,  75,  30,   2,  77,  30,   2,  79, 
-	 30,   2,  81,  30,   2,  83,  30,   2,  85,  30,   2,  87, 
-	 30,   2,  89,  30,   2,  91,  30,   2,  93,  30,   2,  95, 
-	 30,   2,  97,  30,   2,  99,  30,   2, 101,  30,   2, 103, 
-	 30,   2, 105,  30,   2, 107,  30,   2, 109,  30,   2, 111, 
-	 30,   2, 113,  30,   2, 115,  30,   2, 117,  30,   2, 119, 
-	 30,   2, 121,  30,   2, 123,  30,   2, 125,  30,   2, 127, 
-	 30,   2, 129,  30,   2, 131,  30,   2, 133,  30,   2, 135, 
-	 30,   2, 137,  30,   2, 139,  30,   2, 141,  30,   2, 143, 
-	 30,   2, 145,  30,   2, 147,  30,   2, 149,  30,   6, 104, 
-	  0,   0,   0,  49,   3,   6, 116,   0,   0,   0,   8,   3, 
-	  6, 119,   0,   0,   0,  10,   3,   6, 121,   0,   0,   0, 
-	 10,   3,   6,  97,   0,   0,   0, 190,   2,   2, 161,  30, 
-	  2, 163,  30,   2, 165,  30,   2, 167,  30,   2, 169,  30, 
-	  2, 171,  30,   2, 173,  30,   2, 175,  30,   2, 177,  30, 
-	  2, 179,  30,   2, 181,  30,   2, 183,  30,   2, 185,  30, 
-	  2, 187,  30,   2, 189,  30,   2, 191,  30,   2, 193,  30, 
-	  2, 195,  30,   2, 197,  30,   2, 199,  30,   2, 201,  30, 
-	  2, 203,  30,   2, 205,  30,   2, 207,  30,   2, 209,  30, 
-	  2, 211,  30,   2, 213,  30,   2, 215,  30,   2, 217,  30, 
-	  2, 219,  30,   2, 221,  30,   2, 223,  30,   2, 225,  30, 
-	  2, 227,  30,   2, 229,  30,   2, 231,  30,   2, 233,  30, 
-	  2, 235,  30,   2, 237,  30,   2, 239,  30,   2, 241,  30, 
-	  2, 243,  30,   2, 245,  30,   2, 247,  30,   2, 249,  30, 
-	  2,   0,  31,   2,   1,  31,   2,   2,  31,   2,   3,  31, 
-	  2,   4,  31,   2,   5,  31,   2,   6,  31,   2,   7,  31, 
-	  2,  16,  31,   2,  17,  31,   2,  18,  31,   2,  19,  31, 
-	  2,  20,  31,   2,  21,  31,   2,  32,  31,   2,  33,  31, 
-	  2,  34,  31,   2,  35,  31,   2,  36,  31,   2,  37,  31, 
-	  2,  38,  31,   2,  39,  31,   2,  48,  31,   2,  49,  31, 
-	  2,  50,  31,   2,  51,  31,   2,  52,  31,   2,  53,  31, 
-	  2,  54,  31,   2,  55,  31,   2,  64,  31,   2,  65,  31, 
-	  2,  66,  31,   2,  67,  31,   2,  68,  31,   2,  69,  31, 
-	  6, 197,   3,   0,   0,  19,   3,  10, 197,   3,   0,   0, 
-	 19,   3,   0,   0,   0,   3,  10, 197,   3,   0,   0,  19, 
-	  3,   0,   0,   1,   3,  10, 197,   3,   0,   0,  19,   3, 
-	  0,   0,  66,   3,   2,  81,  31,   2,  83,  31,   2,  85, 
-	 31,   2,  87,  31,   2,  96,  31,   2,  97,  31,   2,  98, 
-	 31,   2,  99,  31,   2, 100,  31,   2, 101,  31,   2, 102, 
-	 31,   2, 103,  31,   6,   0,  31,   0,   0, 185,   3,   6, 
-	  1,  31,   0,   0, 185,   3,   6,   2,  31,   0,   0, 185, 
-	  3,   6,   3,  31,   0,   0, 185,   3,   6,   4,  31,   0, 
-	  0, 185,   3,   6,   5,  31,   0,   0, 185,   3,   6,   6, 
-	 31,   0,   0, 185,   3,   6,   7,  31,   0,   0, 185,   3, 
-	  6,  32,  31,   0,   0, 185,   3,   6,  33,  31,   0,   0, 
-	185,   3,   6,  34,  31,   0,   0, 185,   3,   6,  35,  31, 
-	  0,   0, 185,   3,   6,  36,  31,   0,   0, 185,   3,   6, 
-	 37,  31,   0,   0, 185,   3,   6,  38,  31,   0,   0, 185, 
-	  3,   6,  39,  31,   0,   0, 185,   3,   6,  96,  31,   0, 
-	  0, 185,   3,   6,  97,  31,   0,   0, 185,   3,   6,  98, 
-	 31,   0,   0, 185,   3,   6,  99,  31,   0,   0, 185,   3, 
-	  6, 100,  31,   0,   0, 185,   3,   6, 101,  31,   0,   0, 
-	185,   3,   6, 102,  31,   0,   0, 185,   3,   6, 103,  31, 
-	  0,   0, 185,   3,   6, 112,  31,   0,   0, 185,   3,   6, 
-	177,   3,   0,   0, 185,   3,   6, 172,   3,   0,   0, 185, 
-	  3,   6, 177,   3,   0,   0,  66,   3,  10, 177,   3,   0, 
-	  0,  66,   3,   0,   0, 185,   3,   2, 176,  31,   2, 177, 
-	 31,   2, 112,  31,   2, 113,  31,   6, 116,  31,   0,   0, 
-	185,   3,   6, 183,   3,   0,   0, 185,   3,   6, 174,   3, 
-	  0,   0, 185,   3,   6, 183,   3,   0,   0,  66,   3,  10, 
-	183,   3,   0,   0,  66,   3,   0,   0, 185,   3,   2, 114, 
-	 31,   2, 115,  31,   2, 116,  31,   2, 117,  31,  10, 185, 
-	  3,   0,   0,   8,   3,   0,   0,   0,   3,   6, 185,   3, 
-	  0,   0,  66,   3,  10, 185,   3,   0,   0,   8,   3,   0, 
-	  0,  66,   3,   2, 208,  31,   2, 209,  31,   2, 118,  31, 
-	  2, 119,  31,  10, 197,   3,   0,   0,   8,   3,   0,   0, 
-	  0,   3,   6, 193,   3,   0,   0,  19,   3,   6, 197,   3, 
-	  0,   0,  66,   3,  10, 197,   3,   0,   0,   8,   3,   0, 
-	  0,  66,   3,   2, 224,  31,   2, 225,  31,   2, 122,  31, 
-	  2, 123,  31,   2, 229,  31,   6, 124,  31,   0,   0, 185, 
-	  3,   6, 201,   3,   0,   0, 185,   3,   6, 206,   3,   0, 
-	  0, 185,   3,   6, 201,   3,   0,   0,  66,   3,  10, 201, 
-	  3,   0,   0,  66,   3,   0,   0, 185,   3,   2, 120,  31, 
-	  2, 121,  31,   2, 124,  31,   2, 125,  31,   5, 114,   0, 
-	  0,   0, 115,   5, 176,   0,   0,   0,  99,   5, 176,   0, 
-	  0,   0, 102,   5, 110,   0,   0,   0, 111,   5, 115,   0, 
-	  0,   0, 109,   9, 116,   0,   0,   0, 101,   0,   0,   0, 
-	108,   5, 116,   0,   0,   0, 109,   2, 112,  33,   2, 113, 
-	 33,   2, 114,  33,   2, 115,  33,   2, 116,  33,   2, 117, 
-	 33,   2, 118,  33,   2, 119,  33,   2, 120,  33,   2, 121, 
-	 33,   2, 122,  33,   2, 123,  33,   2, 124,  33,   2, 125, 
-	 33,   2, 126,  33,   2, 127,  33,   2, 208,  36,   2, 209, 
-	 36,   2, 210,  36,   2, 211,  36,   2, 212,  36,   2, 213, 
-	 36,   2, 214,  36,   2, 215,  36,   2, 216,  36,   2, 217, 
-	 36,   2, 218,  36,   2, 219,  36,   2, 220,  36,   2, 221, 
-	 36,   2, 222,  36,   2, 223,  36,   2, 224,  36,   2, 225, 
-	 36,   2, 226,  36,   2, 227,  36,   2, 228,  36,   2, 229, 
-	 36,   2, 230,  36,   2, 231,  36,   2, 232,  36,   2, 233, 
-	 36,   9, 104,   0,   0,   0, 112,   0,   0,   0,  97,   5, 
-	 97,   0,   0,   0, 117,   5, 111,   0,   0,   0, 118,   5, 
-	112,   0,   0,   0,  97,   5, 110,   0,   0,   0,  97,   5, 
-	188,   3,   0,   0,  97,   5, 109,   0,   0,   0,  97,   5, 
-	107,   0,   0,   0,  97,   5, 107,   0,   0,   0,  98,   5, 
-	109,   0,   0,   0,  98,   5, 103,   0,   0,   0,  98,   5, 
-	112,   0,   0,   0, 102,   5, 110,   0,   0,   0, 102,   5, 
-	188,   3,   0,   0, 102,   5, 104,   0,   0,   0, 122,   9, 
-	107,   0,   0,   0, 104,   0,   0,   0, 122,   9, 109,   0, 
-	  0,   0, 104,   0,   0,   0, 122,   9, 103,   0,   0,   0, 
-	104,   0,   0,   0, 122,   9, 116,   0,   0,   0, 104,   0, 
-	  0,   0, 122,   9, 107,   0,   0,   0, 112,   0,   0,   0, 
-	 97,   9, 109,   0,   0,   0, 112,   0,   0,   0,  97,   9, 
-	103,   0,   0,   0, 112,   0,   0,   0,  97,   5, 112,   0, 
-	  0,   0, 118,   5, 110,   0,   0,   0, 118,   5, 188,   3, 
-	  0,   0, 118,   5, 109,   0,   0,   0, 118,   5, 107,   0, 
-	  0,   0, 118,   5, 112,   0,   0,   0, 119,   5, 110,   0, 
-	  0,   0, 119,   5, 188,   3,   0,   0, 119,   5, 109,   0, 
-	  0,   0, 119,   5, 107,   0,   0,   0, 119,   6, 107,   0, 
-	  0,   0, 201,   3,   6, 109,   0,   0,   0, 201,   3,   5, 
-	 98,   0,   0,   0, 113,  13,  99,   0,   0,   0,  21,  34, 
-	  0,   0, 107,   0,   0,   0, 103,   9,  99,   0,   0,   0, 
-	111,   0,   0,   0,  46,   5, 100,   0,   0,   0,  98,   5, 
-	103,   0,   0,   0, 121,   5, 104,   0,   0,   0, 112,   5, 
-	107,   0,   0,   0, 107,   5, 107,   0,   0,   0, 109,   5, 
-	112,   0,   0,   0, 104,   9, 112,   0,   0,   0, 112,   0, 
-	  0,   0, 109,   5, 112,   0,   0,   0, 114,   5, 115,   0, 
-	  0,   0, 118,   5, 119,   0,   0,   0,  98,   5, 102,   0, 
-	  0,   0, 102,   5, 102,   0,   0,   0, 105,   5, 102,   0, 
-	  0,   0, 108,   9, 102,   0,   0,   0, 102,   0,   0,   0, 
-	105,   9, 102,   0,   0,   0, 102,   0,   0,   0, 108,   5, 
-	115,   0,   0,   0, 116,   6, 116,   5,   0,   0, 118,   5, 
-	  6, 116,   5,   0,   0, 101,   5,   6, 116,   5,   0,   0, 
-	107,   5,   6, 126,   5,   0,   0, 118,   5,   6, 116,   5, 
-	  0,   0, 109,   5,   2,  65, 255,   2,  66, 255,   2,  67, 
-	255,   2,  68, 255,   2,  69, 255,   2,  70, 255,   2,  71, 
-	255,   2,  72, 255,   2,  73, 255,   2,  74, 255,   2,  75, 
-	255,   2,  76, 255,   2,  77, 255,   2,  78, 255,   2,  79, 
-	255,   2,  80, 255,   2,  81, 255,   2,  82, 255,   2,  83, 
-	255,   2,  84, 255,   2,  85, 255,   2,  86, 255,   2,  87, 
-	255,   2,  88, 255,   2,  89, 255,   2,  90, 255,   3,  40, 
-	  4,   1,   3,  41,   4,   1,   3,  42,   4,   1,   3,  43, 
-	  4,   1,   3,  44,   4,   1,   3,  45,   4,   1,   3,  46, 
-	  4,   1,   3,  47,   4,   1,   3,  48,   4,   1,   3,  49, 
-	  4,   1,   3,  50,   4,   1,   3,  51,   4,   1,   3,  52, 
-	  4,   1,   3,  53,   4,   1,   3,  54,   4,   1,   3,  55, 
-	  4,   1,   3,  56,   4,   1,   3,  57,   4,   1,   3,  58, 
-	  4,   1,   3,  59,   4,   1,   3,  60,   4,   1,   3,  61, 
-	  4,   1,   3,  62,   4,   1,   3,  63,   4,   1,   3,  64, 
-	  4,   1,   3,  65,   4,   1,   3,  66,   4,   1,   3,  67, 
-	  4,   1,   3,  68,   4,   1,   3,  69,   4,   1,   3,  70, 
-	  4,   1,   3,  71,   4,   1,   3,  72,   4,   1,   3,  73, 
-	  4,   1,   3,  74,   4,   1,   3,  75,   4,   1,   3,  76, 
-	  4,   1,   3,  77,   4,   1, 
+	  0,   0,   1,  97,   1,  98,   1,  99,   1, 100,   1, 101,
+	  1, 102,   1, 103,   1, 104,   1, 105,   1, 106,   1, 107,
+	  1, 108,   1, 109,   1, 110,   1, 111,   1, 112,   1, 113,
+	  1, 114,   1, 115,   1, 116,   1, 117,   1, 118,   1, 119,
+	  1, 120,   1, 121,   1, 122,   2, 188,   3,   1, 224,   1,
+	225,   1, 226,   1, 227,   1, 228,   1, 229,   1, 230,   1,
+	231,   1, 232,   1, 233,   1, 234,   1, 235,   1, 236,   1,
+	237,   1, 238,   1, 239,   1, 240,   1, 241,   1, 242,   1,
+	243,   1, 244,   1, 245,   1, 246,   1, 248,   1, 249,   1,
+	250,   1, 251,   1, 252,   1, 253,   1, 254,   5, 115,   0,
+	  0,   0, 115,   2,   1,   1,   2,   3,   1,   2,   5,   1,
+	  2,   7,   1,   2,   9,   1,   2,  11,   1,   2,  13,   1,
+	  2,  15,   1,   2,  17,   1,   2,  19,   1,   2,  21,   1,
+	  2,  23,   1,   2,  25,   1,   2,  27,   1,   2,  29,   1,
+	  2,  31,   1,   2,  33,   1,   2,  35,   1,   2,  37,   1,
+	  2,  39,   1,   2,  41,   1,   2,  43,   1,   2,  45,   1,
+	  2,  47,   1,   6, 105,   0,   0,   0,   7,   3,   2,  51,
+	  1,   2,  53,   1,   2,  55,   1,   2,  58,   1,   2,  60,
+	  1,   2,  62,   1,   2,  64,   1,   2,  66,   1,   2,  68,
+	  1,   2,  70,   1,   2,  72,   1,   5, 188,   2,   0,   0,
+	110,   2,  75,   1,   2,  77,   1,   2,  79,   1,   2,  81,
+	  1,   2,  83,   1,   2,  85,   1,   2,  87,   1,   2,  89,
+	  1,   2,  91,   1,   2,  93,   1,   2,  95,   1,   2,  97,
+	  1,   2,  99,   1,   2, 101,   1,   2, 103,   1,   2, 105,
+	  1,   2, 107,   1,   2, 109,   1,   2, 111,   1,   2, 113,
+	  1,   2, 115,   1,   2, 117,   1,   2, 119,   1,   1, 255,
+	  2, 122,   1,   2, 124,   1,   2, 126,   1,   2,  83,   2,
+	  2, 131,   1,   2, 133,   1,   2,  84,   2,   2, 136,   1,
+	  2,  86,   2,   2,  87,   2,   2, 140,   1,   2, 221,   1,
+	  2,  89,   2,   2,  91,   2,   2, 146,   1,   2,  96,   2,
+	  2,  99,   2,   2, 105,   2,   2, 104,   2,   2, 153,   1,
+	  2, 111,   2,   2, 114,   2,   2, 117,   2,   2, 161,   1,
+	  2, 163,   1,   2, 165,   1,   2, 128,   2,   2, 168,   1,
+	  2, 131,   2,   2, 173,   1,   2, 136,   2,   2, 176,   1,
+	  2, 138,   2,   2, 139,   2,   2, 180,   1,   2, 182,   1,
+	  2, 146,   2,   2, 185,   1,   2, 189,   1,   2, 198,   1,
+	  2, 201,   1,   2, 204,   1,   2, 206,   1,   2, 208,   1,
+	  2, 210,   1,   2, 212,   1,   2, 214,   1,   2, 216,   1,
+	  2, 218,   1,   2, 220,   1,   2, 223,   1,   2, 225,   1,
+	  2, 227,   1,   2, 229,   1,   2, 231,   1,   2, 233,   1,
+	  2, 235,   1,   2, 237,   1,   2, 239,   1,   6, 106,   0,
+	  0,   0,  12,   3,   2, 243,   1,   2, 245,   1,   2, 149,
+	  1,   2, 191,   1,   2, 249,   1,   2, 251,   1,   2, 253,
+	  1,   2, 255,   1,   2,   1,   2,   2,   3,   2,   2,   5,
+	  2,   2,   7,   2,   2,   9,   2,   2,  11,   2,   2,  13,
+	  2,   2,  15,   2,   2,  17,   2,   2,  19,   2,   2,  21,
+	  2,   2,  23,   2,   2,  25,   2,   2,  27,   2,   2,  29,
+	  2,   2,  31,   2,   2, 158,   1,   2,  35,   2,   2,  37,
+	  2,   2,  39,   2,   2,  41,   2,   2,  43,   2,   2,  45,
+	  2,   2,  47,   2,   2,  49,   2,   2,  51,   2,   2, 185,
+	  3,   6,  32,   0,   0,   0, 185,   3,   2, 172,   3,   2,
+	173,   3,   2, 174,   3,   2, 175,   3,   2, 204,   3,   2,
+	205,   3,   2, 206,   3,  10, 185,   3,   0,   0,   8,   3,
+	  0,   0,   1,   3,   2, 177,   3,   2, 178,   3,   2, 179,
+	  3,   2, 180,   3,   2, 181,   3,   2, 182,   3,   2, 183,
+	  3,   2, 184,   3,   2, 186,   3,   2, 187,   3,   2, 189,
+	  3,   2, 190,   3,   2, 191,   3,   2, 192,   3,   2, 193,
+	  3,   2, 195,   3,   2, 196,   3,   2, 197,   3,   2, 198,
+	  3,   2, 199,   3,   2, 200,   3,   2, 201,   3,   2, 202,
+	  3,   2, 203,   3,  10, 197,   3,   0,   0,   8,   3,   0,
+	  0,   1,   3,   2, 217,   3,   2, 219,   3,   2, 221,   3,
+	  2, 223,   3,   2, 225,   3,   2, 227,   3,   2, 229,   3,
+	  2, 231,   3,   2, 233,   3,   2, 235,   3,   2, 237,   3,
+	  2, 239,   3,   2,  80,   4,   2,  81,   4,   2,  82,   4,
+	  2,  83,   4,   2,  84,   4,   2,  85,   4,   2,  86,   4,
+	  2,  87,   4,   2,  88,   4,   2,  89,   4,   2,  90,   4,
+	  2,  91,   4,   2,  92,   4,   2,  93,   4,   2,  94,   4,
+	  2,  95,   4,   2,  48,   4,   2,  49,   4,   2,  50,   4,
+	  2,  51,   4,   2,  52,   4,   2,  53,   4,   2,  54,   4,
+	  2,  55,   4,   2,  56,   4,   2,  57,   4,   2,  58,   4,
+	  2,  59,   4,   2,  60,   4,   2,  61,   4,   2,  62,   4,
+	  2,  63,   4,   2,  64,   4,   2,  65,   4,   2,  66,   4,
+	  2,  67,   4,   2,  68,   4,   2,  69,   4,   2,  70,   4,
+	  2,  71,   4,   2,  72,   4,   2,  73,   4,   2,  74,   4,
+	  2,  75,   4,   2,  76,   4,   2,  77,   4,   2,  78,   4,
+	  2,  79,   4,   2,  97,   4,   2,  99,   4,   2, 101,   4,
+	  2, 103,   4,   2, 105,   4,   2, 107,   4,   2, 109,   4,
+	  2, 111,   4,   2, 113,   4,   2, 115,   4,   2, 117,   4,
+	  2, 119,   4,   2, 121,   4,   2, 123,   4,   2, 125,   4,
+	  2, 127,   4,   2, 129,   4,   2, 139,   4,   2, 141,   4,
+	  2, 143,   4,   2, 145,   4,   2, 147,   4,   2, 149,   4,
+	  2, 151,   4,   2, 153,   4,   2, 155,   4,   2, 157,   4,
+	  2, 159,   4,   2, 161,   4,   2, 163,   4,   2, 165,   4,
+	  2, 167,   4,   2, 169,   4,   2, 171,   4,   2, 173,   4,
+	  2, 175,   4,   2, 177,   4,   2, 179,   4,   2, 181,   4,
+	  2, 183,   4,   2, 185,   4,   2, 187,   4,   2, 189,   4,
+	  2, 191,   4,   2, 194,   4,   2, 196,   4,   2, 198,   4,
+	  2, 200,   4,   2, 202,   4,   2, 204,   4,   2, 206,   4,
+	  2, 209,   4,   2, 211,   4,   2, 213,   4,   2, 215,   4,
+	  2, 217,   4,   2, 219,   4,   2, 221,   4,   2, 223,   4,
+	  2, 225,   4,   2, 227,   4,   2, 229,   4,   2, 231,   4,
+	  2, 233,   4,   2, 235,   4,   2, 237,   4,   2, 239,   4,
+	  2, 241,   4,   2, 243,   4,   2, 245,   4,   2, 249,   4,
+	  2,   1,   5,   2,   3,   5,   2,   5,   5,   2,   7,   5,
+	  2,   9,   5,   2,  11,   5,   2,  13,   5,   2,  15,   5,
+	  2,  97,   5,   2,  98,   5,   2,  99,   5,   2, 100,   5,
+	  2, 101,   5,   2, 102,   5,   2, 103,   5,   2, 104,   5,
+	  2, 105,   5,   2, 106,   5,   2, 107,   5,   2, 108,   5,
+	  2, 109,   5,   2, 110,   5,   2, 111,   5,   2, 112,   5,
+	  2, 113,   5,   2, 114,   5,   2, 115,   5,   2, 116,   5,
+	  2, 117,   5,   2, 118,   5,   2, 119,   5,   2, 120,   5,
+	  2, 121,   5,   2, 122,   5,   2, 123,   5,   2, 124,   5,
+	  2, 125,   5,   2, 126,   5,   2, 127,   5,   2, 128,   5,
+	  2, 129,   5,   2, 130,   5,   2, 131,   5,   2, 132,   5,
+	  2, 133,   5,   2, 134,   5,   6, 101,   5,   0,   0, 130,
+	  5,   2,   1,  30,   2,   3,  30,   2,   5,  30,   2,   7,
+	 30,   2,   9,  30,   2,  11,  30,   2,  13,  30,   2,  15,
+	 30,   2,  17,  30,   2,  19,  30,   2,  21,  30,   2,  23,
+	 30,   2,  25,  30,   2,  27,  30,   2,  29,  30,   2,  31,
+	 30,   2,  33,  30,   2,  35,  30,   2,  37,  30,   2,  39,
+	 30,   2,  41,  30,   2,  43,  30,   2,  45,  30,   2,  47,
+	 30,   2,  49,  30,   2,  51,  30,   2,  53,  30,   2,  55,
+	 30,   2,  57,  30,   2,  59,  30,   2,  61,  30,   2,  63,
+	 30,   2,  65,  30,   2,  67,  30,   2,  69,  30,   2,  71,
+	 30,   2,  73,  30,   2,  75,  30,   2,  77,  30,   2,  79,
+	 30,   2,  81,  30,   2,  83,  30,   2,  85,  30,   2,  87,
+	 30,   2,  89,  30,   2,  91,  30,   2,  93,  30,   2,  95,
+	 30,   2,  97,  30,   2,  99,  30,   2, 101,  30,   2, 103,
+	 30,   2, 105,  30,   2, 107,  30,   2, 109,  30,   2, 111,
+	 30,   2, 113,  30,   2, 115,  30,   2, 117,  30,   2, 119,
+	 30,   2, 121,  30,   2, 123,  30,   2, 125,  30,   2, 127,
+	 30,   2, 129,  30,   2, 131,  30,   2, 133,  30,   2, 135,
+	 30,   2, 137,  30,   2, 139,  30,   2, 141,  30,   2, 143,
+	 30,   2, 145,  30,   2, 147,  30,   2, 149,  30,   6, 104,
+	  0,   0,   0,  49,   3,   6, 116,   0,   0,   0,   8,   3,
+	  6, 119,   0,   0,   0,  10,   3,   6, 121,   0,   0,   0,
+	 10,   3,   6,  97,   0,   0,   0, 190,   2,   2, 161,  30,
+	  2, 163,  30,   2, 165,  30,   2, 167,  30,   2, 169,  30,
+	  2, 171,  30,   2, 173,  30,   2, 175,  30,   2, 177,  30,
+	  2, 179,  30,   2, 181,  30,   2, 183,  30,   2, 185,  30,
+	  2, 187,  30,   2, 189,  30,   2, 191,  30,   2, 193,  30,
+	  2, 195,  30,   2, 197,  30,   2, 199,  30,   2, 201,  30,
+	  2, 203,  30,   2, 205,  30,   2, 207,  30,   2, 209,  30,
+	  2, 211,  30,   2, 213,  30,   2, 215,  30,   2, 217,  30,
+	  2, 219,  30,   2, 221,  30,   2, 223,  30,   2, 225,  30,
+	  2, 227,  30,   2, 229,  30,   2, 231,  30,   2, 233,  30,
+	  2, 235,  30,   2, 237,  30,   2, 239,  30,   2, 241,  30,
+	  2, 243,  30,   2, 245,  30,   2, 247,  30,   2, 249,  30,
+	  2,   0,  31,   2,   1,  31,   2,   2,  31,   2,   3,  31,
+	  2,   4,  31,   2,   5,  31,   2,   6,  31,   2,   7,  31,
+	  2,  16,  31,   2,  17,  31,   2,  18,  31,   2,  19,  31,
+	  2,  20,  31,   2,  21,  31,   2,  32,  31,   2,  33,  31,
+	  2,  34,  31,   2,  35,  31,   2,  36,  31,   2,  37,  31,
+	  2,  38,  31,   2,  39,  31,   2,  48,  31,   2,  49,  31,
+	  2,  50,  31,   2,  51,  31,   2,  52,  31,   2,  53,  31,
+	  2,  54,  31,   2,  55,  31,   2,  64,  31,   2,  65,  31,
+	  2,  66,  31,   2,  67,  31,   2,  68,  31,   2,  69,  31,
+	  6, 197,   3,   0,   0,  19,   3,  10, 197,   3,   0,   0,
+	 19,   3,   0,   0,   0,   3,  10, 197,   3,   0,   0,  19,
+	  3,   0,   0,   1,   3,  10, 197,   3,   0,   0,  19,   3,
+	  0,   0,  66,   3,   2,  81,  31,   2,  83,  31,   2,  85,
+	 31,   2,  87,  31,   2,  96,  31,   2,  97,  31,   2,  98,
+	 31,   2,  99,  31,   2, 100,  31,   2, 101,  31,   2, 102,
+	 31,   2, 103,  31,   6,   0,  31,   0,   0, 185,   3,   6,
+	  1,  31,   0,   0, 185,   3,   6,   2,  31,   0,   0, 185,
+	  3,   6,   3,  31,   0,   0, 185,   3,   6,   4,  31,   0,
+	  0, 185,   3,   6,   5,  31,   0,   0, 185,   3,   6,   6,
+	 31,   0,   0, 185,   3,   6,   7,  31,   0,   0, 185,   3,
+	  6,  32,  31,   0,   0, 185,   3,   6,  33,  31,   0,   0,
+	185,   3,   6,  34,  31,   0,   0, 185,   3,   6,  35,  31,
+	  0,   0, 185,   3,   6,  36,  31,   0,   0, 185,   3,   6,
+	 37,  31,   0,   0, 185,   3,   6,  38,  31,   0,   0, 185,
+	  3,   6,  39,  31,   0,   0, 185,   3,   6,  96,  31,   0,
+	  0, 185,   3,   6,  97,  31,   0,   0, 185,   3,   6,  98,
+	 31,   0,   0, 185,   3,   6,  99,  31,   0,   0, 185,   3,
+	  6, 100,  31,   0,   0, 185,   3,   6, 101,  31,   0,   0,
+	185,   3,   6, 102,  31,   0,   0, 185,   3,   6, 103,  31,
+	  0,   0, 185,   3,   6, 112,  31,   0,   0, 185,   3,   6,
+	177,   3,   0,   0, 185,   3,   6, 172,   3,   0,   0, 185,
+	  3,   6, 177,   3,   0,   0,  66,   3,  10, 177,   3,   0,
+	  0,  66,   3,   0,   0, 185,   3,   2, 176,  31,   2, 177,
+	 31,   2, 112,  31,   2, 113,  31,   6, 116,  31,   0,   0,
+	185,   3,   6, 183,   3,   0,   0, 185,   3,   6, 174,   3,
+	  0,   0, 185,   3,   6, 183,   3,   0,   0,  66,   3,  10,
+	183,   3,   0,   0,  66,   3,   0,   0, 185,   3,   2, 114,
+	 31,   2, 115,  31,   2, 116,  31,   2, 117,  31,  10, 185,
+	  3,   0,   0,   8,   3,   0,   0,   0,   3,   6, 185,   3,
+	  0,   0,  66,   3,  10, 185,   3,   0,   0,   8,   3,   0,
+	  0,  66,   3,   2, 208,  31,   2, 209,  31,   2, 118,  31,
+	  2, 119,  31,  10, 197,   3,   0,   0,   8,   3,   0,   0,
+	  0,   3,   6, 193,   3,   0,   0,  19,   3,   6, 197,   3,
+	  0,   0,  66,   3,  10, 197,   3,   0,   0,   8,   3,   0,
+	  0,  66,   3,   2, 224,  31,   2, 225,  31,   2, 122,  31,
+	  2, 123,  31,   2, 229,  31,   6, 124,  31,   0,   0, 185,
+	  3,   6, 201,   3,   0,   0, 185,   3,   6, 206,   3,   0,
+	  0, 185,   3,   6, 201,   3,   0,   0,  66,   3,  10, 201,
+	  3,   0,   0,  66,   3,   0,   0, 185,   3,   2, 120,  31,
+	  2, 121,  31,   2, 124,  31,   2, 125,  31,   5, 114,   0,
+	  0,   0, 115,   5, 176,   0,   0,   0,  99,   5, 176,   0,
+	  0,   0, 102,   5, 110,   0,   0,   0, 111,   5, 115,   0,
+	  0,   0, 109,   9, 116,   0,   0,   0, 101,   0,   0,   0,
+	108,   5, 116,   0,   0,   0, 109,   2, 112,  33,   2, 113,
+	 33,   2, 114,  33,   2, 115,  33,   2, 116,  33,   2, 117,
+	 33,   2, 118,  33,   2, 119,  33,   2, 120,  33,   2, 121,
+	 33,   2, 122,  33,   2, 123,  33,   2, 124,  33,   2, 125,
+	 33,   2, 126,  33,   2, 127,  33,   2, 208,  36,   2, 209,
+	 36,   2, 210,  36,   2, 211,  36,   2, 212,  36,   2, 213,
+	 36,   2, 214,  36,   2, 215,  36,   2, 216,  36,   2, 217,
+	 36,   2, 218,  36,   2, 219,  36,   2, 220,  36,   2, 221,
+	 36,   2, 222,  36,   2, 223,  36,   2, 224,  36,   2, 225,
+	 36,   2, 226,  36,   2, 227,  36,   2, 228,  36,   2, 229,
+	 36,   2, 230,  36,   2, 231,  36,   2, 232,  36,   2, 233,
+	 36,   9, 104,   0,   0,   0, 112,   0,   0,   0,  97,   5,
+	 97,   0,   0,   0, 117,   5, 111,   0,   0,   0, 118,   5,
+	112,   0,   0,   0,  97,   5, 110,   0,   0,   0,  97,   5,
+	188,   3,   0,   0,  97,   5, 109,   0,   0,   0,  97,   5,
+	107,   0,   0,   0,  97,   5, 107,   0,   0,   0,  98,   5,
+	109,   0,   0,   0,  98,   5, 103,   0,   0,   0,  98,   5,
+	112,   0,   0,   0, 102,   5, 110,   0,   0,   0, 102,   5,
+	188,   3,   0,   0, 102,   5, 104,   0,   0,   0, 122,   9,
+	107,   0,   0,   0, 104,   0,   0,   0, 122,   9, 109,   0,
+	  0,   0, 104,   0,   0,   0, 122,   9, 103,   0,   0,   0,
+	104,   0,   0,   0, 122,   9, 116,   0,   0,   0, 104,   0,
+	  0,   0, 122,   9, 107,   0,   0,   0, 112,   0,   0,   0,
+	 97,   9, 109,   0,   0,   0, 112,   0,   0,   0,  97,   9,
+	103,   0,   0,   0, 112,   0,   0,   0,  97,   5, 112,   0,
+	  0,   0, 118,   5, 110,   0,   0,   0, 118,   5, 188,   3,
+	  0,   0, 118,   5, 109,   0,   0,   0, 118,   5, 107,   0,
+	  0,   0, 118,   5, 112,   0,   0,   0, 119,   5, 110,   0,
+	  0,   0, 119,   5, 188,   3,   0,   0, 119,   5, 109,   0,
+	  0,   0, 119,   5, 107,   0,   0,   0, 119,   6, 107,   0,
+	  0,   0, 201,   3,   6, 109,   0,   0,   0, 201,   3,   5,
+	 98,   0,   0,   0, 113,  13,  99,   0,   0,   0,  21,  34,
+	  0,   0, 107,   0,   0,   0, 103,   9,  99,   0,   0,   0,
+	111,   0,   0,   0,  46,   5, 100,   0,   0,   0,  98,   5,
+	103,   0,   0,   0, 121,   5, 104,   0,   0,   0, 112,   5,
+	107,   0,   0,   0, 107,   5, 107,   0,   0,   0, 109,   5,
+	112,   0,   0,   0, 104,   9, 112,   0,   0,   0, 112,   0,
+	  0,   0, 109,   5, 112,   0,   0,   0, 114,   5, 115,   0,
+	  0,   0, 118,   5, 119,   0,   0,   0,  98,   5, 102,   0,
+	  0,   0, 102,   5, 102,   0,   0,   0, 105,   5, 102,   0,
+	  0,   0, 108,   9, 102,   0,   0,   0, 102,   0,   0,   0,
+	105,   9, 102,   0,   0,   0, 102,   0,   0,   0, 108,   5,
+	115,   0,   0,   0, 116,   6, 116,   5,   0,   0, 118,   5,
+	  6, 116,   5,   0,   0, 101,   5,   6, 116,   5,   0,   0,
+	107,   5,   6, 126,   5,   0,   0, 118,   5,   6, 116,   5,
+	  0,   0, 109,   5,   2,  65, 255,   2,  66, 255,   2,  67,
+	255,   2,  68, 255,   2,  69, 255,   2,  70, 255,   2,  71,
+	255,   2,  72, 255,   2,  73, 255,   2,  74, 255,   2,  75,
+	255,   2,  76, 255,   2,  77, 255,   2,  78, 255,   2,  79,
+	255,   2,  80, 255,   2,  81, 255,   2,  82, 255,   2,  83,
+	255,   2,  84, 255,   2,  85, 255,   2,  86, 255,   2,  87,
+	255,   2,  88, 255,   2,  89, 255,   2,  90, 255,   3,  40,
+	  4,   1,   3,  41,   4,   1,   3,  42,   4,   1,   3,  43,
+	  4,   1,   3,  44,   4,   1,   3,  45,   4,   1,   3,  46,
+	  4,   1,   3,  47,   4,   1,   3,  48,   4,   1,   3,  49,
+	  4,   1,   3,  50,   4,   1,   3,  51,   4,   1,   3,  52,
+	  4,   1,   3,  53,   4,   1,   3,  54,   4,   1,   3,  55,
+	  4,   1,   3,  56,   4,   1,   3,  57,   4,   1,   3,  58,
+	  4,   1,   3,  59,   4,   1,   3,  60,   4,   1,   3,  61,
+	  4,   1,   3,  62,   4,   1,   3,  63,   4,   1,   3,  64,
+	  4,   1,   3,  65,   4,   1,   3,  66,   4,   1,   3,  67,
+	  4,   1,   3,  68,   4,   1,   3,  69,   4,   1,   3,  70,
+	  4,   1,   3,  71,   4,   1,   3,  72,   4,   1,   3,  73,
+	  4,   1,   3,  74,   4,   1,   3,  75,   4,   1,   3,  76,
+	  4,   1,   3,  77,   4,   1,
 };
 
 static const unsigned short nameprep_id11_prohibited_imap[] = {
-	   68,   196,   196,   324,   196,   196,   196,   452, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  196,   196,   196,   580,   196,   196,   196,   580, 
-	  708,   196,   196,   580,   836,   836,   836,   836, 
-	  836,   836,   836,   836,     0,     1,     0,     0, 
-	    0,     0,     2,     0,     0,     0,     0,     0, 
-	    0,     3,     4,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     5,     0,     0,     6,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     7,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     8,     5,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,    10, 
-	    0,     0,     0,    11,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,    12,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    13,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    13,    14,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9,     9,     9,     9,     9, 
-	    9,     9,     9,     9, 
+	   68,   196,   196,   324,   196,   196,   196,   452,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  196,   196,   196,   580,   196,   196,   196,   580,
+	  708,   196,   196,   580,   836,   836,   836,   836,
+	  836,   836,   836,   836,     0,     1,     0,     0,
+	    0,     0,     2,     0,     0,     0,     0,     0,
+	    0,     3,     4,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     5,     0,     0,     6,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     7,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     8,     5,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,    10,
+	    0,     0,     0,    11,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,    12,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    13,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    13,    14,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,     9,     9,     9,     9,
+	    9,     9,     9,     9,
 };
 
 static const struct {
 	unsigned char bm[16];
 } nameprep_id11_prohibited_bitmap[] = {
 	{{
 	  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
@@ -1117,217 +1117,217 @@ static const struct {
 	  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,
 	}},
 	{{
 	  2,  0,  0,  0,255,255,255,255,255,255,255,255,255,255,255,255,
 	}},
 };
 
 static const unsigned short nameprep_id11_unassigned_imap[] = {
-	   68,   196,   324,   452,   580,   708,   708,   836, 
-	  964,   964,  1092,  1220,   708,   708,   708,  1348, 
-	  708,   708,   708,  1348,   708,   708,   708,  1348, 
-	  708,   708,   708,  1348,   708,   708,   708,  1348, 
-	  708,   708,   708,  1348,   708,   708,   708,  1348, 
-	  708,   708,   708,  1348,   708,   708,   708,  1348, 
-	  708,   708,   708,  1348,   708,   708,   708,  1348, 
-	 1476,   708,   708,  1348,   964,   964,   964,   964, 
-	  964,   964,   964,   964,     0,     0,     0,     0, 
-	    1,     2,     3,     4,     0,     5,     6,     7, 
-	    8,     9,    10,    11,    12,    12,    13,    14, 
-	   15,    16,    17,    18,    19,    20,    21,    22, 
-	   23,    24,    25,    26,    27,    28,    29,    30, 
-	   31,    32,    33,    34,    35,     0,     0,     0, 
-	   36,    37,    38,    39,    40,    41,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	    0,    42,    43,    44,    45,    46,    47,    48, 
-	    0,     0,     0,    49,    50,    51,     0,     0, 
-	   52,    53,    54,    55,     0,     0,     0,     0, 
-	    0,     0,    12,    12,    12,    12,    12,    12, 
-	   12,    56,     0,    57,    58,    59,    60,    61, 
-	   62,    63,    64,    65,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,    66, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    67,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,    68,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,    69,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   70,    12,    71,    72,     0,     0,    73,    74, 
-	   75,    76,    35,    77,    12,    12,    12,    12, 
-	   12,    12,    78,    12,    79,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,     0,    80,    81,    82, 
-	   12,    12,    12,    12,    83,    84,    85,     0, 
-	    0,    86,     0,    87,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    88,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,    89,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,     0,     0,     0,     0, 
-	   90,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    88,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    88,    91,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12,    12,    12,    12,    12, 
-	   12,    12,    12,    12, 
+	   68,   196,   324,   452,   580,   708,   708,   836,
+	  964,   964,  1092,  1220,   708,   708,   708,  1348,
+	  708,   708,   708,  1348,   708,   708,   708,  1348,
+	  708,   708,   708,  1348,   708,   708,   708,  1348,
+	  708,   708,   708,  1348,   708,   708,   708,  1348,
+	  708,   708,   708,  1348,   708,   708,   708,  1348,
+	  708,   708,   708,  1348,   708,   708,   708,  1348,
+	 1476,   708,   708,  1348,   964,   964,   964,   964,
+	  964,   964,   964,   964,     0,     0,     0,     0,
+	    1,     2,     3,     4,     0,     5,     6,     7,
+	    8,     9,    10,    11,    12,    12,    13,    14,
+	   15,    16,    17,    18,    19,    20,    21,    22,
+	   23,    24,    25,    26,    27,    28,    29,    30,
+	   31,    32,    33,    34,    35,     0,     0,     0,
+	   36,    37,    38,    39,    40,    41,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	    0,    42,    43,    44,    45,    46,    47,    48,
+	    0,     0,     0,    49,    50,    51,     0,     0,
+	   52,    53,    54,    55,     0,     0,     0,     0,
+	    0,     0,    12,    12,    12,    12,    12,    12,
+	   12,    56,     0,    57,    58,    59,    60,    61,
+	   62,    63,    64,    65,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,    66,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    67,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,    68,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,    69,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   70,    12,    71,    72,     0,     0,    73,    74,
+	   75,    76,    35,    77,    12,    12,    12,    12,
+	   12,    12,    78,    12,    79,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,     0,    80,    81,    82,
+	   12,    12,    12,    12,    83,    84,    85,     0,
+	    0,    86,     0,    87,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    88,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,    89,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,     0,     0,     0,     0,
+	   90,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    88,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    88,    91,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,    12,    12,    12,    12,
+	   12,    12,    12,    12,
 };
 
 static const struct {
 	unsigned char bm[16];
 } nameprep_id11_unassigned_bitmap[] = {
 	{{
 	  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
@@ -1602,987 +1602,987 @@ static const struct {
 	  0,  0,  0,192,255,255,255,255,255,255,255,255,255,255,255,255,
 	}},
 	{{
 	253,255,255,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 };
 
 static const unsigned short nameprep_id11_bidi_imap[] = {
-	  272,   400,   528,   656,   784,   912,   912,   912, 
-	  912,  1040,  1168,   912,   912,  1296,   912,  1424, 
-	 1552,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1808,  1680,  1680, 
-	  912,   912,   912,   912,   912,   912,   912,   912, 
-	  912,   912,  1936,  1680,  1680,  1680,  1680,  2064, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680, 
-	  912,   912,   912,   912,   912,   912,   912,   912, 
-	  912,   912,   912,   912,   912,   912,   912,  2192, 
-	  912,   912,   912,   912,   912,   912,   912,   912, 
-	  912,   912,   912,   912,   912,   912,   912,  2192, 
-	    0,     0,     1,     1,     0,     2,     3,     3, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     5,     6,     4,     4,     7,     8,     9, 
-	    0,     0,     0,    10,    11,    12,    13,    14, 
-	    4,     4,     4,     4,    15,     4,    13,    16, 
-	   17,    18,    19,    20,    21,    22,    23,    24, 
-	   25,    26,    27,    28,    29,    29,    30,    31, 
-	   32,    33,     0,     0,    29,    34,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	   35,    36,    37,    38,    39,    40,    41,    42, 
-	   43,    44,    45,    46,    47,    48,    49,    50, 
-	   39,    51,    41,    52,    53,    54,    55,    56, 
-	   57,    58,    59,    60,    61,    62,    63,    60, 
-	   61,    64,    65,    60,    66,    67,    68,    69, 
-	   20,    70,    71,     0,    72,    73,    74,     0, 
-	   75,    76,    77,    78,    79,    80,    81,     0, 
-	    4,    82,    83,     0,     0,     4,    84,    85, 
-	    4,     4,    86,     4,     4,    87,     4,    88, 
-	   89,     4,    90,     4,    91,    92,    93,    13, 
-	   92,     4,    94,    95,     0,     4,     4,    96, 
-	   20,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,    97,     1,     4,     4,    98, 
-	   99,   100,   101,   102,     4,   103,   104,   105, 
-	  106,     4,     4,    83,     4,   107,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,   108,     4,     4,    88, 
-	  109,     4,   110,   111,     4,   112,   113,   114, 
-	  115,     0,     0,   116,     0,     0,     0,     0, 
-	  117,   118,   119,     4,   120,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,   121,     4,   122,   123,     0,     0,     0, 
-	    0,     0,     0,     0,   124,     4,     4,   105, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  125,   126,    20,     4,   127,    20,     4,   128, 
-	  129,   130,     4,     4,    13,    83,     0,     6, 
-	  131,     4,   120,   132,     4,    98,   133,   134, 
-	    4,     4,     4,   135,     4,     4,   111,   134, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,    14,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,   136,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,   137,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,   120,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,   138,     4,   139,     0,     0,     0,     0, 
-	  140,   141,   142,    29,    29,   143,   144,    29, 
-	   29,    29,    29,    29,    29,    29,    29,    29, 
-	   29,   145,   146,    29,   147,    29,   148,   149, 
-	    0,     0,     0,   150,    29,    29,    29,   151, 
-	    0,     1,     1,   152,     4,   134,   153,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	  134,   154,   139,     0,     0,     0,     0,     0, 
-	    4,   155,   156,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,    14, 
-	    4,   157,     4,   158,   159,   160,   111,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,   161,     4,   162,   163,   164,     4, 
-	  165,   166,   167,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,   168,     4,     4, 
-	    4,     4,     4,     4,     4,     4,   105,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,    97,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	  111,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    0,     0,     0,     0,     0,     0,     0,     0, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,     4, 
-	    4,     4,     4,     4,     4,     4,     4,   111, 
+	  272,   400,   528,   656,   784,   912,   912,   912,
+	  912,  1040,  1168,   912,   912,  1296,   912,  1424,
+	 1552,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1808,  1680,  1680,
+	  912,   912,   912,   912,   912,   912,   912,   912,
+	  912,   912,  1936,  1680,  1680,  1680,  1680,  2064,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	 1680,  1680,  1680,  1680,  1680,  1680,  1680,  1680,
+	  912,   912,   912,   912,   912,   912,   912,   912,
+	  912,   912,   912,   912,   912,   912,   912,  2192,
+	  912,   912,   912,   912,   912,   912,   912,   912,
+	  912,   912,   912,   912,   912,   912,   912,  2192,
+	    0,     0,     1,     1,     0,     2,     3,     3,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     5,     6,     4,     4,     7,     8,     9,
+	    0,     0,     0,    10,    11,    12,    13,    14,
+	    4,     4,     4,     4,    15,     4,    13,    16,
+	   17,    18,    19,    20,    21,    22,    23,    24,
+	   25,    26,    27,    28,    29,    29,    30,    31,
+	   32,    33,     0,     0,    29,    34,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	   35,    36,    37,    38,    39,    40,    41,    42,
+	   43,    44,    45,    46,    47,    48,    49,    50,
+	   39,    51,    41,    52,    53,    54,    55,    56,
+	   57,    58,    59,    60,    61,    62,    63,    60,
+	   61,    64,    65,    60,    66,    67,    68,    69,
+	   20,    70,    71,     0,    72,    73,    74,     0,
+	   75,    76,    77,    78,    79,    80,    81,     0,
+	    4,    82,    83,     0,     0,     4,    84,    85,
+	    4,     4,    86,     4,     4,    87,     4,    88,
+	   89,     4,    90,     4,    91,    92,    93,    13,
+	   92,     4,    94,    95,     0,     4,     4,    96,
+	   20,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,    97,     1,     4,     4,    98,
+	   99,   100,   101,   102,     4,   103,   104,   105,
+	  106,     4,     4,    83,     4,   107,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,   108,     4,     4,    88,
+	  109,     4,   110,   111,     4,   112,   113,   114,
+	  115,     0,     0,   116,     0,     0,     0,     0,
+	  117,   118,   119,     4,   120,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,   121,     4,   122,   123,     0,     0,     0,
+	    0,     0,     0,     0,   124,     4,     4,   105,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  125,   126,    20,     4,   127,    20,     4,   128,
+	  129,   130,     4,     4,    13,    83,     0,     6,
+	  131,     4,   120,   132,     4,    98,   133,   134,
+	    4,     4,     4,   135,     4,     4,   111,   134,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,    14,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,   136,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,   137,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,   120,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,   138,     4,   139,     0,     0,     0,     0,
+	  140,   141,   142,    29,    29,   143,   144,    29,
+	   29,    29,    29,    29,    29,    29,    29,    29,
+	   29,   145,   146,    29,   147,    29,   148,   149,
+	    0,     0,     0,   150,    29,    29,    29,   151,
+	    0,     1,     1,   152,     4,   134,   153,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	  134,   154,   139,     0,     0,     0,     0,     0,
+	    4,   155,   156,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,    14,
+	    4,   157,     4,   158,   159,   160,   111,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,   161,     4,   162,   163,   164,     4,
+	  165,   166,   167,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,   168,     4,     4,
+	    4,     4,     4,     4,     4,     4,   105,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,    97,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	  111,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    0,     0,     0,     0,     0,     0,     0,     0,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,     4,
+	    4,     4,     4,     4,     4,     4,     4,   111,
 };
 
 static const struct {
 	unsigned char tbl[32];
 } nameprep_id11_bidi_table[] = {
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0, 
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  2,  0,  2,  2,  2,  0,  2,  0,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  2,  0,  2,  2,  2,  0,  2,  0,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,
 	}},
 	{{
-	 1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 1,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  1, 
-	 1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  1,
+	 1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1,
 	}},
 	{{
-	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0, 
+	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  0,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0, 
+	 0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1, 
-	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,
+	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  0,  0,  0,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  0,  0,  0,  2,
+	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2, 
-	 0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,
+	 0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  0,  0,  0,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  0,  0,  0,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  2,  2,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  2,  0,  2, 
+	 2,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  2,  2,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  2,  0,  2,
 	}},
 	{{
-	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2, 
-	 0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,
+	 0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  2,  0,  2,  2,  0,  2,  2,  0,  0,  0,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  2,  0,  2,  2,  0,  2,  2,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  0,  2,  0, 
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  0,  2,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0, 
-	 0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
+	 0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2, 
-	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,
+	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  2,  0,  0,  0,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  2,  0,  0,  0,  2,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  2,  0,  0,  2,  2,  2,  2,  0,  0,  0,  2,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  2,  0,  0,  2,  2,  2,  2,  0,  0,  0,  2,  2,  0,
 	}},
 	{{
-	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2, 
-	 0,  2,  2,  2,  2,  0,  0,  0,  2,  2,  0,  2,  0,  2,  2, 
+	 0,  0,  0,  2,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,
+	 0,  2,  2,  2,  2,  0,  0,  0,  2,  2,  0,  2,  0,  2,  2,
 	}},
 	{{
-	 0,  0,  0,  2,  2,  0,  0,  0,  2,  2,  2,  0,  0,  0,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0,  2,  2, 
+	 0,  0,  0,  2,  2,  0,  0,  0,  2,  2,  2,  0,  0,  0,  2,  2,  2,
+	 2,  2,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 0,  2,  2,  0,  0,  0,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  2,  2,  0,  0,  0,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2, 
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2, 
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  2,  2,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  0, 
+	 2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  2,  2,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  0,  0,  0,  0,  0,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  0,  0,  0,  0,  0,  2,  2,  2,  0,  2,  2,  2,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2, 
-	 2,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,
+	 2,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  0,  2,  0,  0,  2,  2,  0,  2,  0,  0,  2,  0,  0,  0, 
-	 0,  0,  0,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  2,  2,  0,  2,  0,  0,  2,  2,  0,  2,  0,  0,  2,  0,  0,  0,
+	 0,  0,  0,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  2,  2,  2,  0,  2,  0,  2,  0,  0,  2,  2,  0,  2,  2,  2,  2, 
-	 0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 
+	 0,  2,  2,  2,  0,  2,  0,  2,  0,  0,  2,  2,  0,  2,  2,  2,  2,
+	 0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  0, 
+	 2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  0,  2,  0,  2,  0,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  2,  0,  0,  2,  2,  2,  2,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  2,  0,  0,  2,  2,  2,  2,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  0,  2,  2,  2,  2,  2,  0,  2,  2,  0,  2,  0,  0,  0,  0, 
-	 2,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  0,  2,  2,  2,  2,  2,  0,  2,  2,  0,  2,  0,  0,  0,  0,
+	 2,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  2,
 	}},
 	{{
-	 2,  2,  2,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,  2,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2, 
-	 0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,
+	 0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,
 	}},
 	{{
-	 2,  0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,
+	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0, 
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2, 
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  0,  2,  0,  2, 
+	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  0,  2,  0,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,
 	}},
 	{{
-	 0,  0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2, 
-	 2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
+	 0,  0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,
+	 2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
-	 0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
+	 0,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  1,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  1,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
 	}},
 	{{
-	 0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  0,  2,  0,  0,  0,  2,  2,  2,  2,  2,  0,  0, 
+	 0,  0,  2,  0,  0,  0,  0,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  0,  2,  0,  0,  0,  2,  2,  2,  2,  2,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  2,  2,  2,  0,  2,  2, 
-	 2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2, 
+	 0,  0,  0,  0,  2,  0,  2,  0,  2,  0,  2,  2,  2,  2,  0,  2,  2,
+	 2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0, 
-	 2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  0,  0,  0, 
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,
+	 2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  1,  0,  1, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  1,  0,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  0,  1,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  0,  1,  0,
 	}},
 	{{
-	 1,  1,  0,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 1,  1,  0,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0, 
-	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,
+	 0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 
-	 1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,
+	 1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 	}},
 	{{
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0, 
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0, 
-	 0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  0,  0,  0, 
+	 0,  0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  0,
+	 0,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0, 
-	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,
+	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 	}},
 	{{
-	 0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,
 	}},
 	{{
-	 0,  0,  2,  0,  0,  2,  2,  0,  0,  2,  2,  2,  2,  0,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2, 
+	 0,  0,  2,  0,  0,  2,  2,  0,  0,  2,  2,  2,  2,  0,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  0,  2,  2,  2,
 	}},
 	{{
-	 2,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  0,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2, 
+	 2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  0,  0,  2,  2,  2,  2,
+	 2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  0, 
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  0,
 	}},
 	{{
-	 2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2, 
-	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  2,  0,  2,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,
+	 0,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 	{{
-	 2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
-	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 
+	 2,  2,  2,  2,  0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 	}},
 };
 
 static const unsigned char nameprep_id11_bidi_data[] = {
-	idn_biditype_others, 
-	idn_biditype_r_al, 
-	idn_biditype_l, 
+	idn_biditype_others,
+	idn_biditype_r_al,
+	idn_biditype_l,
 };
 
--- a/netwerk/dns/nsDNSService2.cpp
+++ b/netwerk/dns/nsDNSService2.cpp
@@ -620,17 +620,17 @@ nsDNSService::Init()
         mIDN = idn;
         mIPv4OnlyDomains = ipv4OnlyDomains; // exchanges buffer ownership
         mOfflineLocalhost = offlineLocalhost;
         mDisableIPv6 = disableIPv6;
         mBlockDotOnion = blockDotOnion;
         mForceResolve = forceResolve;
         mForceResolveOn = !mForceResolve.IsEmpty();
 
-        // Disable prefetching either by explicit preference or if a manual proxy is configured 
+        // Disable prefetching either by explicit preference or if a manual proxy is configured
         mDisablePrefetch = disablePrefetch || (proxyType == nsIProtocolProxyService::PROXYCONFIG_MANUAL);
 
         mLocalDomains.Clear();
         if (localDomains) {
             nsCCharSeparatedTokenizer tokenizer(localDomains, ',',
                                                 nsCCharSeparatedTokenizer::SEPARATOR_OPTIONAL);
 
             while (tokenizer.hasMoreTokens()) {
@@ -1023,17 +1023,17 @@ nsDNSService::ResolveNative(const nsACSt
 
     //
     // sync resolve: since the host resolver only works asynchronously, we need
     // to use a mutex and a condvar to wait for the result.  however, since the
     // result may be in the resolvers cache, we might get called back recursively
     // on the same thread.  so, our mutex needs to be re-entrant.  in other words,
     // we need to use a monitor! ;-)
     //
-    
+
     PRMonitor *mon = PR_NewMonitor();
     if (!mon)
         return NS_ERROR_OUT_OF_MEMORY;
 
     PR_EnterMonitor(mon);
     nsDNSSyncRequest syncReq(mon);
 
     uint16_t af = GetAFForLookup(hostname, flags);
@@ -1123,17 +1123,17 @@ nsDNSService::GetAFForLookup(const nsACS
     uint16_t af = PR_AF_UNSPEC;
 
     if (!mIPv4OnlyDomains.IsEmpty()) {
         const char *domain, *domainEnd, *end;
         uint32_t hostLen, domainLen;
 
         // see if host is in one of the IPv4-only domains
         domain = mIPv4OnlyDomains.BeginReading();
-        domainEnd = mIPv4OnlyDomains.EndReading(); 
+        domainEnd = mIPv4OnlyDomains.EndReading();
 
         nsACString::const_iterator hostStart;
         host.BeginReading(hostStart);
         hostLen = host.Length();
 
         do {
             // skip any whitespace
             while (*domain == ' ' || *domain == '\t')
--- a/netwerk/dns/nsHostResolver.cpp
+++ b/netwerk/dns/nsHostResolver.cpp
@@ -42,28 +42,28 @@ using namespace mozilla::net;
 
 // None of our implementations expose a TTL for negative responses, so we use a
 // constant always.
 static const unsigned int NEGATIVE_RECORD_LIFETIME = 60;
 
 //----------------------------------------------------------------------------
 
 // Use a persistent thread pool in order to avoid spinning up new threads all the time.
-// In particular, thread creation results in a res_init() call from libc which is 
+// In particular, thread creation results in a res_init() call from libc which is
 // quite expensive.
 //
 // The pool dynamically grows between 0 and MAX_RESOLVER_THREADS in size. New requests
 // go first to an idle thread. If that cannot be found and there are fewer than MAX_RESOLVER_THREADS
 // currently in the pool a new thread is created for high priority requests. If
-// the new request is at a lower priority a new thread will only be created if 
+// the new request is at a lower priority a new thread will only be created if
 // there are fewer than HighThreadThreshold currently outstanding. If a thread cannot be
 // created or an idle thread located for the request it is queued.
 //
 // When the pool is greater than HighThreadThreshold in size a thread will be destroyed after
-// ShortIdleTimeoutSeconds of idle time. Smaller pools use LongIdleTimeoutSeconds for a 
+// ShortIdleTimeoutSeconds of idle time. Smaller pools use LongIdleTimeoutSeconds for a
 // timeout period.
 
 #define HighThreadThreshold     MAX_RESOLVER_THREADS_FOR_ANY_PRIORITY
 #define LongIdleTimeoutSeconds  300           // for threads 1 -> HighThreadThreshold
 #define ShortIdleTimeoutSeconds 60            // for threads HighThreadThreshold+1 -> MAX_RESOLVER_THREADS
 
 static_assert(HighThreadThreshold <= MAX_RESOLVER_THREADS,
               "High Thread Threshold should be less equal Maximum allowed thread");
@@ -84,17 +84,17 @@ static inline void
 MoveCList(PRCList &from, PRCList &to)
 {
     if (!PR_CLIST_IS_EMPTY(&from)) {
         to.next = from.next;
         to.prev = from.prev;
         to.next->prev = &to;
         to.prev->next = &to;
         PR_INIT_CLIST(&from);
-    }             
+    }
 }
 
 //----------------------------------------------------------------------------
 
 #if defined(RES_RETRY_ON_FAILURE)
 
 // this class represents the resolver state for a given thread.  if we
 // encounter a lookup failure, then we can invoke the Reset method on an
@@ -410,17 +410,17 @@ HostDB_HashKey(const void *key)
                      HashString(hk->netInterface), HashString(hk->originSuffix));
 }
 
 static bool
 HostDB_MatchEntry(const PLDHashEntryHdr *entry,
                   const void *key)
 {
     const nsHostDBEnt *he = static_cast<const nsHostDBEnt *>(entry);
-    const nsHostKey *hk = static_cast<const nsHostKey *>(key); 
+    const nsHostKey *hk = static_cast<const nsHostKey *>(key);
 
     return !strcmp(he->rec->host ? he->rec->host : "",
                    hk->host ? hk->host : "") &&
             RES_KEY_FLAGS (he->rec->flags) == RES_KEY_FLAGS(hk->flags) &&
             he->rec->af == hk->af &&
             !strcmp(he->rec->netInterface, hk->netInterface) &&
             !strcmp(he->rec->originSuffix, hk->originSuffix);
 }
@@ -691,42 +691,42 @@ nsHostResolver::Shutdown()
         while (node != &evictionQ) {
             nsHostRecord *rec = static_cast<nsHostRecord *>(node);
             node = node->next;
             NS_RELEASE(rec);
         }
     }
 
 #ifdef NS_BUILD_REFCNT_LOGGING
-    
+
     // Logically join the outstanding worker threads with a timeout.
-    // Use this approach instead of PR_JoinThread() because that does 
-    // not allow a timeout which may be necessary for a semi-responsive 
+    // Use this approach instead of PR_JoinThread() because that does
+    // not allow a timeout which may be necessary for a semi-responsive
     // shutdown if the thread is blocked on a very slow DNS resolution.
-    // mThreadCount is read outside of mLock, but the worst case 
+    // mThreadCount is read outside of mLock, but the worst case
     // scenario for that race is one extra 25ms sleep.
 
     PRIntervalTime delay = PR_MillisecondsToInterval(25);
     PRIntervalTime stopTime = PR_IntervalNow() + PR_SecondsToInterval(20);
     while (mThreadCount && PR_IntervalNow() < stopTime)
         PR_Sleep(delay);
 #endif
 
     {
         mozilla::DebugOnly<nsresult> rv = GetAddrInfoShutdown();
         NS_WARNING_ASSERTION(NS_SUCCEEDED(rv),
                              "Failed to shutdown GetAddrInfo");
     }
 }
 
-void 
+void
 nsHostResolver::MoveQueue(nsHostRecord *aRec, PRCList &aDestQ)
 {
     NS_ASSERTION(aRec->onQueue, "Moving Host Record Not Currently Queued");
-    
+
     PR_REMOVE_LINK(aRec);
     PR_APPEND_LINK(aRec, &aDestQ);
 }
 
 nsresult
 nsHostResolver::ResolveHost(const char             *host,
                             const OriginAttributes &aOriginAttributes,
                             uint16_t                flags,
@@ -755,17 +755,17 @@ nsHostResolver::ResolveHost(const char  
         if (mShutdown)
             rv = NS_ERROR_NOT_INITIALIZED;
         else {
             // Used to try to parse to an IP address literal.
             PRNetAddr tempAddr;
             // Unfortunately, PR_StringToNetAddr does not properly initialize
             // the output buffer in the case of IPv6 input. See bug 223145.
             memset(&tempAddr, 0, sizeof(PRNetAddr));
-            
+
             // check to see if there is already an entry for this |host|
             // in the hash table.  if so, then check to see if we can't
             // just reuse the lookup result.  otherwise, if there are
             // any pending callbacks, then add to pending callbacks queue,
             // and return.  otherwise, add ourselves as first pending
             // callback, and proceed to do the lookup.
             nsAutoCString originSuffix;
             aOriginAttributes.CreateSuffix(originSuffix);
@@ -787,17 +787,17 @@ nsHostResolver::ResolveHost(const char  
                 // put reference to host record on stack...
                 result = he->rec;
                 Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2, METHOD_HIT);
 
                 // For entries that are in the grace period
                 // or all cached negative entries, use the cache but start a new
                 // lookup in the background
                 ConditionallyRefreshRecord(he->rec, host);
-                
+
                 if (he->rec->negative) {
                     LOG(("  Negative cache entry for host [%s%s%s].\n",
                          LOG_HOST(host, netInterface)));
                     Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
                                           METHOD_NEGATIVE_HIT);
                     status = NS_ERROR_UNKNOWN_HOST;
                 }
             }
@@ -1057,37 +1057,37 @@ nsHostResolver::IssueLookup(nsHostRecord
     // If rec is on mEvictionQ, then we can just move the owning
     // reference over to the new active queue.
     if (rec->next == rec)
         NS_ADDREF(rec);
     else {
         PR_REMOVE_LINK(rec);
         mEvictionQSize--;
     }
-    
+
     switch (nsHostRecord::GetPriority(rec->flags)) {
         case nsHostRecord::DNS_PRIORITY_HIGH:
             PR_APPEND_LINK(rec, &mHighQ);
             break;
 
         case nsHostRecord::DNS_PRIORITY_MEDIUM:
             PR_APPEND_LINK(rec, &mMediumQ);
             break;
 
         case nsHostRecord::DNS_PRIORITY_LOW:
             PR_APPEND_LINK(rec, &mLowQ);
             break;
     }
     mPendingCount++;
-    
+
     rec->resolving = true;
     rec->onQueue = true;
 
     rv = ConditionallyCreateThread(rec);
-    
+
     LOG (("  DNS thread counters: total=%d any-live=%d idle=%d pending=%d\n",
           static_cast<uint32_t>(mThreadCount),
           static_cast<uint32_t>(mActiveAnyThreadCount),
           static_cast<uint32_t>(mNumIdleThreads),
           static_cast<uint32_t>(mPendingCount)));
 
     return rv;
 }
@@ -1128,17 +1128,17 @@ nsHostResolver::GetHostToLookup(nsHostRe
 
     MutexAutoLock lock(mLock);
 
     timeout = (mNumIdleThreads >= HighThreadThreshold) ? mShortIdleTimeout : mLongIdleTimeout;
     epoch = PR_IntervalNow();
 
     while (!mShutdown) {
         // remove next record from Q; hand over owning reference. Check high, then med, then low
-        
+
 #if TTL_AVAILABLE
         #define SET_GET_TTL(var, val) \
             (var)->mGetTtl = sGetTtlEnabled && (val)
 #else
         #define SET_GET_TTL(var, val)
 #endif
 
         if (!PR_CLIST_IS_EMPTY(&mHighQ)) {
@@ -1150,53 +1150,53 @@ nsHostResolver::GetHostToLookup(nsHostRe
         if (mActiveAnyThreadCount < HighThreadThreshold) {
             if (!PR_CLIST_IS_EMPTY(&mMediumQ)) {
                 DeQueue (mMediumQ, result);
                 mActiveAnyThreadCount++;
                 (*result)->usingAnyThread = true;
                 SET_GET_TTL(*result, true);
                 return true;
             }
-            
+
             if (!PR_CLIST_IS_EMPTY(&mLowQ)) {
                 DeQueue (mLowQ, result);
                 mActiveAnyThreadCount++;
                 (*result)->usingAnyThread = true;
                 SET_GET_TTL(*result, true);
                 return true;
             }
         }
-        
+
         // Determining timeout is racy, so allow one cycle through checking the queues
         // before exiting.
         if (timedOut)
             break;
 
         // wait for one or more of the following to occur:
         //  (1) the pending queue has a host record to process
         //  (2) the shutdown flag has been set
         //  (3) the thread has been idle for too long
-        
+
         mNumIdleThreads++;
         mIdleThreadCV.Wait(timeout);
         mNumIdleThreads--;
-        
+
         now = PR_IntervalNow();
-        
+
         if ((PRIntervalTime)(now - epoch) >= timeout)
             timedOut = true;
         else {
             // It is possible that PR_WaitCondVar() was interrupted and returned early,
             // in which case we will loop back and re-enter it. In that case we want to
             // do so with the new timeout reduced to reflect time already spent waiting.
             timeout -= (PRIntervalTime)(now - epoch);
             epoch = now;
         }
     }
-    
+
     // tell thread to exit...
     return false;
 }
 
 void
 nsHostResolver::PrepareRecordExpiration(nsHostRecord* rec) const
 {
     MOZ_ASSERT(((bool)rec->addr_info) != rec->negative);
@@ -1317,17 +1317,17 @@ nsHostResolver::OnLookupComplete(nsHostR
                 old_addr_info = newRRSet;
             }
         }
         delete old_addr_info;
 
         rec->negative = !rec->addr_info;
         PrepareRecordExpiration(rec);
         rec->resolving = false;
-        
+
         if (rec->usingAnyThread) {
             mActiveAnyThreadCount--;
             rec->usingAnyThread = false;
         }
 
         if (!mShutdown) {
             // add to mEvictionQ
             PR_APPEND_LINK(rec, &mEvictionQ);
--- a/netwerk/dns/nsHostResolver.h
+++ b/netwerk/dns/nsHostResolver.h
@@ -165,21 +165,21 @@ private:
  * ResolveHost callback object.  It's PRCList members are used by
  * the nsHostResolver and should not be used by anything else.
  */
 class NS_NO_VTABLE nsResolveHostCallback : public PRCList
 {
 public:
     /**
      * OnLookupComplete
-     * 
+     *
      * this function is called to complete a host lookup initiated by
      * nsHostResolver::ResolveHost.  it may be invoked recursively from
      * ResolveHost or on an unspecified background thread.
-     * 
+     *
      * NOTE: it is the responsibility of the implementor of this method
      * to handle the callback in a thread safe manner.
      *
      * @param resolver
      *        nsHostResolver object associated with this result
      * @param record
      *        the host record containing the results of the lookup
      * @param status
@@ -222,17 +222,17 @@ public:
 
     /**
      * creates an addref'd instance of a nsHostResolver object.
      */
     static nsresult Create(uint32_t maxCacheEntries, // zero disables cache
                            uint32_t defaultCacheEntryLifetime, // seconds
                            uint32_t defaultGracePeriod, // seconds
                            nsHostResolver **resolver);
-    
+
     /**
      * puts the resolver in the shutdown state, which will cause any pending
      * callbacks to be detached.  any future calls to ResolveHost will fail.
      */
     void Shutdown();
 
     /**
      * resolve the given hostname and originAttributes asynchronously.  the caller
@@ -262,17 +262,17 @@ public:
                         nsResolveHostCallback           *callback,
                         nsresult                         status);
 
     /**
      * Cancels an async request associated with the hostname, originAttributes, flags,
      * address family and listener.  Cancels first callback found which matches
      * these criteria.  These parameters should correspond to the parameters
      * passed to ResolveHost.  If this is the last callback associated with the
-     * host record, it is removed from any request queues it might be on. 
+     * host record, it is removed from any request queues it might be on.
      */
     void CancelAsyncRequest(const char                      *host,
                             const mozilla::OriginAttributes &aOriginAttributes,
                             uint16_t                         flags,
                             uint16_t                         af,
                             const char                      *netInterface,
                             nsIDNSListener                  *aListener,
                             nsresult                         status);
@@ -324,17 +324,17 @@ private:
 
     /**
      * Starts a new lookup in the background for entries that are in the grace
      * period with a failed connect or all cached entries are negative.
      */
     nsresult ConditionallyRefreshRecord(nsHostRecord *rec, const char *host);
 
     static void  MoveQueue(nsHostRecord *aRec, PRCList &aDestQ);
-    
+
     static void ThreadFunc(void *);
 
     enum {
         METHOD_HIT = 1,
         METHOD_RENEWAL = 2,
         METHOD_NEGATIVE_HIT = 3,
         METHOD_LITERAL = 4,
         METHOD_OVERFLOW = 5,
--- a/netwerk/dns/nsIDNKitInterface.h
+++ b/netwerk/dns/nsIDNKitInterface.h
@@ -1,37 +1,37 @@
 /*
  * Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved.
- * 
+ *
  * By using this file, you agree to the terms and conditions set forth bellow.
- * 
- * 			LICENSE TERMS AND CONDITIONS 
- * 
+ *
+ * 			LICENSE TERMS AND CONDITIONS
+ *
  * The following License Terms and Conditions apply, unless a different
  * license is obtained from Japan Network Information Center ("JPNIC"),
  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
  * Chiyoda-ku, Tokyo 101-0047, Japan.
 
  * 1. Use, Modification and Redistribution (including distribution of any
  *    modified or derived work) in source and/or binary forms is permitted
  *    under this License Terms and Conditions.
- * 
+ *
  * 2. Redistribution of source code must retain the copyright notices as they
  *    appear in each source code file, this License Terms and Conditions.
- * 
+ *
  * 3. Redistribution in binary form must reproduce the Copyright Notice,
  *    this License Terms and Conditions, in the documentation and/or other
  *    materials provided with the distribution.  For the purposes of binary
  *    distribution the "Copyright Notice" refers to the following language:
  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
- * 
+ *
  * 4. The name of JPNIC may not be used to endorse or promote products
  *    derived from this Software without specific prior written approval of
  *    JPNIC.
- * 
+ *
  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@@ -69,17 +69,17 @@ typedef enum {
 	idn_nomapping,
 	idn_context_required,
 	idn_prohibited,
 	idn_failure	/* !!This must be the last one!! */
 } idn_result_t;
 
 /*
  * BIDI type codes.
- */      
+ */
 typedef enum {
 	idn_biditype_r_al,
 	idn_biditype_l,
 	idn_biditype_others
 } idn_biditype_t;
 
 /*
  * A Handle for nameprep operations.
--- a/netwerk/dns/nsIDNService.cpp
+++ b/netwerk/dns/nsIDNService.cpp
@@ -286,18 +286,18 @@ nsresult nsIDNService::ACEtoUTF8(const n
   // RFC 3490 - 4.2 ToUnicode
   // ToUnicode never fails.  If any step fails, then the original input
   // sequence is returned immediately in that step.
 
   uint32_t len = 0, offset = 0;
   nsAutoCString decodedBuf;
 
   nsACString::const_iterator start, end;
-  input.BeginReading(start); 
-  input.EndReading(end); 
+  input.BeginReading(start);
+  input.EndReading(end);
   _retval.Truncate();
 
   // loop and decode nodes
   while (start != end) {
     len++;
     if (*start++ == '.') {
       if (NS_FAILED(decodeACE(Substring(input, offset, len - 1), decodedBuf,
                               flag))) {
@@ -357,17 +357,17 @@ NS_IMETHODIMP nsIDNService::Normalize(co
   inUTF16.EndReading(end);
 
   while (start != end) {
     len++;
     if (*start++ == char16_t('.')) {
       rv = stringPrep(Substring(inUTF16, offset, len - 1), outLabel,
                       eStringPrepIgnoreErrors);
       NS_ENSURE_SUCCESS(rv, rv);
-   
+
       outUTF16.Append(outLabel);
       outUTF16.Append(char16_t('.'));
       offset += len;
       len = 0;
     }
   }
   if (len) {
     rv = stringPrep(Substring(inUTF16, offset, len), outLabel,
@@ -453,26 +453,26 @@ NS_IMETHODIMP nsIDNService::ConvertToDis
 
 static nsresult utf16ToUcs4(const nsAString& in,
                             uint32_t *out,
                             uint32_t outBufLen,
                             uint32_t *outLen)
 {
   uint32_t i = 0;
   nsAString::const_iterator start, end;
-  in.BeginReading(start); 
-  in.EndReading(end); 
+  in.BeginReading(start);
+  in.EndReading(end);
 
   while (start != end) {
     char16_t curChar;
 
     curChar= *start++;
 
     if (start != end &&
-        NS_IS_HIGH_SURROGATE(curChar) && 
+        NS_IS_HIGH_SURROGATE(curChar) &&
         NS_IS_LOW_SURROGATE(*start)) {
       out[i] = SURROGATE_TO_UCS4(curChar, *start);
       ++start;
     }
     else
       out[i] = curChar;
 
     i++;
@@ -503,17 +503,17 @@ static nsresult punycode(const nsAString
 {
   uint32_t ucs4Buf[kMaxDNSNodeLen + 1];
   uint32_t ucs4Len = 0u;
   nsresult rv = utf16ToUcs4(in, ucs4Buf, kMaxDNSNodeLen, &ucs4Len);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // need maximum 20 bits to encode 16 bit Unicode character
   // (include null terminator)
-  const uint32_t kEncodedBufSize = kMaxDNSNodeLen * 20 / 8 + 1 + 1;  
+  const uint32_t kEncodedBufSize = kMaxDNSNodeLen * 20 / 8 + 1 + 1;
   char encodedBuf[kEncodedBufSize];
   punycode_uint encodedLength = kEncodedBufSize;
 
   enum punycode_status status = punycode_encode(ucs4Len,
                                                 ucs4Buf,
                                                 nullptr,
                                                 &encodedLength,
                                                 encodedBuf);
@@ -672,18 +672,18 @@ nsresult nsIDNService::stringPrepAndACE(
 // 1) Whenever dots are used as label separators, the following characters
 //    MUST be recognized as dots: U+002E (full stop), U+3002 (ideographic full
 //    stop), U+FF0E (fullwidth full stop), U+FF61 (halfwidth ideographic full
 //    stop).
 
 void nsIDNService::normalizeFullStops(nsAString& s)
 {
   nsAString::const_iterator start, end;
-  s.BeginReading(start); 
-  s.EndReading(end); 
+  s.BeginReading(start);
+  s.EndReading(end);
   int32_t index = 0;
 
   while (start != end) {
     switch (*start) {
       case 0x3002:
       case 0xFF0E:
       case 0xFF61:
         s.Replace(index, 1, NS_LITERAL_STRING("."));
--- a/netwerk/ipc/NeckoChild.cpp
+++ b/netwerk/ipc/NeckoChild.cpp
@@ -59,39 +59,39 @@ NeckoChild::~NeckoChild()
   gNeckoChild = nullptr;
 }
 
 void NeckoChild::InitNeckoChild()
 {
   MOZ_ASSERT(IsNeckoChild(), "InitNeckoChild called by non-child!");
 
   if (!gNeckoChild) {
-    mozilla::dom::ContentChild * cpc = 
+    mozilla::dom::ContentChild * cpc =
       mozilla::dom::ContentChild::GetSingleton();
     NS_ASSERTION(cpc, "Content Protocol is NULL!");
     if (NS_WARN_IF(cpc->IsShuttingDown())) {
       return;
     }
-    gNeckoChild = cpc->SendPNeckoConstructor(); 
+    gNeckoChild = cpc->SendPNeckoConstructor();
     NS_ASSERTION(gNeckoChild, "PNecko Protocol init failed!");
   }
 }
 
 PHttpChannelChild*
 NeckoChild::AllocPHttpChannelChild(const PBrowserOrId& browser,
                                    const SerializedLoadContext& loadContext,
                                    const HttpChannelCreationArgs& aOpenArgs)
 {
   // We don't allocate here: instead we always use IPDL constructor that takes
   // an existing HttpChildChannel
   NS_NOTREACHED("AllocPHttpChannelChild should not be called on child");
   return nullptr;
 }
 
-bool 
+bool
 NeckoChild::DeallocPHttpChannelChild(PHttpChannelChild* channel)
 {
   MOZ_ASSERT(IsNeckoChild(), "DeallocPHttpChannelChild called by non-child!");
 
   HttpChannelChild* child = static_cast<HttpChannelChild*>(channel);
   child->ReleaseIPDLReference();
   return true;
 }
--- a/netwerk/ipc/NeckoCommon.h
+++ b/netwerk/ipc/NeckoCommon.h
@@ -17,17 +17,17 @@ namespace mozilla { namespace dom {
 class TabChild;
 } // namespace dom
 } // namespace mozilla
 
 #if defined(DEBUG)
 # define NECKO_ERRORS_ARE_FATAL_DEFAULT true
 #else
 # define NECKO_ERRORS_ARE_FATAL_DEFAULT false
-#endif 
+#endif
 
 // TODO: Eventually remove NECKO_MAYBE_ABORT and DROP_DEAD (bug 575494).
 // Still useful for catching listener interfaces we don't yet support across
 // processes, etc.
 
 #define NECKO_MAYBE_ABORT(msg)                                                 \
   do {                                                                         \
     bool abort = NECKO_ERRORS_ARE_FATAL_DEFAULT;                               \
@@ -78,18 +78,18 @@ class TabChild;
       MOZ_ASSERT(mWasOpened);                                                  \
       return NS_ERROR_ALREADY_OPENED;                                          \
     }                                                                          \
   } while (0)
 
 namespace mozilla {
 namespace net {
 
-inline bool 
-IsNeckoChild() 
+inline bool
+IsNeckoChild()
 {
   static bool didCheck = false;
   static bool amChild = false;
 
   if (!didCheck) {
     didCheck = true;
     amChild = (XRE_GetProcessType() == GeckoProcessType_Content);
   }
--- a/netwerk/mime/nsMIMEHeaderParamImpl.cpp
+++ b/netwerk/mime/nsMIMEHeaderParamImpl.cpp
@@ -20,110 +20,110 @@
 #include "nsReadableUtils.h"
 #include "nsNativeCharsetUtils.h"
 #include "nsError.h"
 #include "mozilla/Encoding.h"
 
 using mozilla::Encoding;
 
 // static functions declared below are moved from mailnews/mime/src/comi18n.cpp
-  
+
 static char *DecodeQ(const char *, uint32_t);
 static bool Is7bitNonAsciiString(const char *, uint32_t);
 static void CopyRawHeader(const char *, uint32_t, const char *, nsACString &);
 static nsresult DecodeRFC2047Str(const char *, const char *, bool, nsACString&);
 static nsresult internalDecodeParameter(const nsACString&, const char*,
                                         const char*, bool, bool, nsACString&);
 
 // XXX The chance of UTF-7 being used in the message header is really
-// low, but in theory it's possible. 
+// low, but in theory it's possible.
 #define IS_7BIT_NON_ASCII_CHARSET(cset)            \
     (!nsCRT::strncasecmp((cset), "ISO-2022", 8) || \
      !nsCRT::strncasecmp((cset), "HZ-GB", 5)    || \
-     !nsCRT::strncasecmp((cset), "UTF-7", 5))   
+     !nsCRT::strncasecmp((cset), "UTF-7", 5))
 
 NS_IMPL_ISUPPORTS(nsMIMEHeaderParamImpl, nsIMIMEHeaderParam)
 
-NS_IMETHODIMP 
-nsMIMEHeaderParamImpl::GetParameter(const nsACString& aHeaderVal, 
+NS_IMETHODIMP
+nsMIMEHeaderParamImpl::GetParameter(const nsACString& aHeaderVal,
                                     const char *aParamName,
-                                    const nsACString& aFallbackCharset, 
-                                    bool aTryLocaleCharset, 
+                                    const nsACString& aFallbackCharset,
+                                    bool aTryLocaleCharset,
                                     char **aLang, nsAString& aResult)
 {
   return DoGetParameter(aHeaderVal, aParamName, MIME_FIELD_ENCODING,
                         aFallbackCharset, aTryLocaleCharset, aLang, aResult);
 }
 
-NS_IMETHODIMP 
-nsMIMEHeaderParamImpl::GetParameterHTTP(const nsACString& aHeaderVal, 
+NS_IMETHODIMP
+nsMIMEHeaderParamImpl::GetParameterHTTP(const nsACString& aHeaderVal,
                                         const char *aParamName,
-                                        const nsACString& aFallbackCharset, 
-                                        bool aTryLocaleCharset, 
+                                        const nsACString& aFallbackCharset,
+                                        bool aTryLocaleCharset,
                                         char **aLang, nsAString& aResult)
 {
   return DoGetParameter(aHeaderVal, aParamName, HTTP_FIELD_ENCODING,
                         aFallbackCharset, aTryLocaleCharset, aLang, aResult);
 }
 
 // XXX : aTryLocaleCharset is not yet effective.
-nsresult 
-nsMIMEHeaderParamImpl::DoGetParameter(const nsACString& aHeaderVal, 
+nsresult
+nsMIMEHeaderParamImpl::DoGetParameter(const nsACString& aHeaderVal,
                                       const char *aParamName,
                                       ParamDecoding aDecoding,
-                                      const nsACString& aFallbackCharset, 
-                                      bool aTryLocaleCharset, 
+                                      const nsACString& aFallbackCharset,
+                                      bool aTryLocaleCharset,
                                       char **aLang, nsAString& aResult)
 {
     aResult.Truncate();
     nsresult rv;
 
     // get parameter (decode RFC 2231/5987 when applicable, as specified by
     // aDecoding (5987 being a subset of 2231) and return charset.)
     nsXPIDLCString med;
     nsXPIDLCString charset;
-    rv = DoParameterInternal(PromiseFlatCString(aHeaderVal).get(), aParamName, 
-                             aDecoding, getter_Copies(charset), aLang, 
+    rv = DoParameterInternal(PromiseFlatCString(aHeaderVal).get(), aParamName,
+                             aDecoding, getter_Copies(charset), aLang,
                              getter_Copies(med));
     if (NS_FAILED(rv))
-        return rv; 
+        return rv;
 
-    // convert to UTF-8 after charset conversion and RFC 2047 decoding 
+    // convert to UTF-8 after charset conversion and RFC 2047 decoding
     // if necessary.
-    
+
     nsAutoCString str1;
     rv = internalDecodeParameter(med, charset.get(), nullptr, false,
                                  // was aDecoding == MIME_FIELD_ENCODING
                                  // see bug 875615
                                  true,
                                  str1);
     NS_ENSURE_SUCCESS(rv, rv);
 
     if (!aFallbackCharset.IsEmpty())
     {
         const Encoding* encoding = Encoding::ForLabel(aFallbackCharset);
         nsAutoCString str2;
-        nsCOMPtr<nsIUTF8ConverterService> 
+        nsCOMPtr<nsIUTF8ConverterService>
           cvtUTF8(do_GetService(NS_UTF8CONVERTERSERVICE_CONTRACTID));
         if (cvtUTF8 &&
-            NS_SUCCEEDED(cvtUTF8->ConvertStringToUTF8(str1, 
+            NS_SUCCEEDED(cvtUTF8->ConvertStringToUTF8(str1,
                 PromiseFlatCString(aFallbackCharset).get(), false,
                                    encoding != UTF_8_ENCODING,
                                    1, str2))) {
           CopyUTF8toUTF16(str2, aResult);
           return NS_OK;
         }
     }
 
     if (IsUTF8(str1)) {
       CopyUTF8toUTF16(str1, aResult);
       return NS_OK;
     }
 
-    if (aTryLocaleCharset && !NS_IsNativeUTF8()) 
+    if (aTryLocaleCharset && !NS_IsNativeUTF8())
       return NS_CopyNativeToUnicode(str1, aResult);
 
     CopyASCIItoUTF16(str1, aResult);
     return NS_OK;
 }
 
 // remove backslash-encoded sequences from quoted-strings
 // modifies string in place, potentially shortening it
@@ -193,17 +193,17 @@ class Continuation {
 
     const char *value;
     uint32_t length;
     bool needsPercentDecoding;
     bool wasQuotedString;
 };
 
 // combine segments into a single string, returning the allocated string
-// (or nullptr) while emptying the list 
+// (or nullptr) while emptying the list
 char *combineContinuations(nsTArray<Continuation>& aArray)
 {
   // Sanity check
   if (aArray.Length() == 0)
     return nullptr;
 
   // Get an upper bound for the length
   uint32_t length = 0;
@@ -338,30 +338,30 @@ bool IsValidOctetSequenceForCharset(nsAC
 
 // moved almost verbatim from mimehdrs.cpp
 // char *
 // MimeHeaders_get_parameter (const char *header_value, const char *parm_name,
 //                            char **charset, char **language)
 //
 // The format of these header lines  is
 // <token> [ ';' <token> '=' <token-or-quoted-string> ]*
-NS_IMETHODIMP 
-nsMIMEHeaderParamImpl::GetParameterInternal(const char *aHeaderValue, 
+NS_IMETHODIMP
+nsMIMEHeaderParamImpl::GetParameterInternal(const char *aHeaderValue,
                                             const char *aParamName,
                                             char **aCharset,
                                             char **aLang,
                                             char **aResult)
 {
   return DoParameterInternal(aHeaderValue, aParamName, MIME_FIELD_ENCODING,
                              aCharset, aLang, aResult);
 }
 
 
-nsresult 
-nsMIMEHeaderParamImpl::DoParameterInternal(const char *aHeaderValue, 
+nsresult
+nsMIMEHeaderParamImpl::DoParameterInternal(const char *aHeaderValue,
                                            const char *aParamName,
                                            ParamDecoding aDecoding,
                                            char **aCharset,
                                            char **aLang,
                                            char **aResult)
 {
 
   if (!aHeaderValue ||  !*aHeaderValue || !aResult)
@@ -379,21 +379,21 @@ nsMIMEHeaderParamImpl::DoParameterIntern
   bool acceptContinuations = true;
 
   const char *str = aHeaderValue;
 
   // skip leading white space.
   for (; *str &&  nsCRT::IsAsciiSpace(*str); ++str)
     ;
   const char *start = str;
-  
+
   // aParamName is empty. return the first (possibly) _unnamed_ 'parameter'
   // For instance, return 'inline' in the following case:
   // Content-Disposition: inline; filename=.....
-  if (!aParamName || !*aParamName) 
+  if (!aParamName || !*aParamName)
     {
       for (; *str && *str != ';' && !nsCRT::IsAsciiSpace(*str); ++str)
         ;
       if (str == start)
         return NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY;
 
       *aResult = (char *) nsMemory::Clone(start, (str - start) + 1);
       NS_ENSURE_TRUE(*aResult, NS_ERROR_OUT_OF_MEMORY);
@@ -409,30 +409,30 @@ nsMIMEHeaderParamImpl::DoParameterIntern
   /* Skip over following whitespace */
   for (; *str && nsCRT::IsAsciiSpace(*str); ++str)
     ;
 
   // Some broken http servers just specify parameters
   // like 'filename' without specifying disposition
   // method. Rewind to the first non-white-space
   // character.
-  
+
   if (!*str)
     str = start;
 
   // RFC2231 - The legitimate parm format can be:
-  // A. title=ThisIsTitle 
+  // A. title=ThisIsTitle
   // B. title*=us-ascii'en-us'This%20is%20wierd.
   // C. title*0*=us-ascii'en'This%20is%20wierd.%20We
   //    title*1*=have%20to%20support%20this.
   //    title*2="Else..."
   // D. title*0="Hey, what you think you are doing?"
   //    title*1="There is no charset and lang info."
   // RFC5987: only A and B
-  
+
   // collect results for the different algorithms (plain filename,
   // RFC5987/2231-encoded filename, + continuations) separately and decide
   // which to use at the end
   char *caseAResult = nullptr;
   char *caseBResult = nullptr;
   char *caseCDResult = nullptr;
 
   // collect continuation segments
@@ -453,17 +453,17 @@ nsMIMEHeaderParamImpl::DoParameterIntern
     const char *nameStart = str;
     const char *nameEnd = nullptr;
     const char *valueStart = str;
     const char *valueEnd = nullptr;
     bool isQuotedString = false;
 
     NS_ASSERTION(!nsCRT::IsAsciiSpace(*str), "should be after whitespace.");
 
-    // Skip forward to the end of this token. 
+    // Skip forward to the end of this token.
     for (; *str && !nsCRT::IsAsciiSpace(*str) && *str != '=' && *str != ';'; str++)
       ;
     nameEnd = str;
 
     int32_t nameLen = nameEnd - nameStart;
 
     // Skip over whitespace, '=', and whitespace
     while (nsCRT::IsAsciiSpace(*str)) ++str;
@@ -481,17 +481,17 @@ nsMIMEHeaderParamImpl::DoParameterIntern
       valueStart = str;
       for (valueEnd = str;
            *valueEnd && !nsCRT::IsAsciiSpace (*valueEnd) && *valueEnd != ';';
            valueEnd++)
         ;
       str = valueEnd;
     } else {
       isQuotedString = true;
-      
+
       ++str;
       valueStart = str;
       for (valueEnd = str; *valueEnd; ++valueEnd) {
         if (*valueEnd == '\\' && *(valueEnd + 1))
           ++valueEnd;
         else if (*valueEnd == '"')
           break;
       }
@@ -508,38 +508,38 @@ nsMIMEHeaderParamImpl::DoParameterIntern
         !nsCRT::strncasecmp(nameStart, aParamName, paramLen)) {
 
       if (caseAResult) {
         // we already have one caseA result, ignore subsequent ones
         goto increment_str;
       }
 
       // if the parameter spans across multiple lines we have to strip out the
-      //     line continuation -- jht 4/29/98 
+      //     line continuation -- jht 4/29/98
       nsAutoCString tempStr(valueStart, valueEnd - valueStart);
       tempStr.StripCRLF();
       char *res = ToNewCString(tempStr);
       NS_ENSURE_TRUE(res, NS_ERROR_OUT_OF_MEMORY);
-      
+
       if (isQuotedString)
         RemoveQuotedStringEscapes(res);
 
       caseAResult = res;
       // keep going, we may find a RFC 2231/5987 encoded alternative
     }
     // case B, C, and D
     else if (nameLen > paramLen &&
              !nsCRT::strncasecmp(nameStart, aParamName, paramLen) &&
              *(nameStart + paramLen) == '*') {
 
-      // 1st char past '*'       
-      const char *cp = nameStart + paramLen + 1; 
+      // 1st char past '*'
+      const char *cp = nameStart + paramLen + 1;
 
       // if param name ends in "*" we need do to RFC5987 "ext-value" decoding
-      bool needExtDecoding = *(nameEnd - 1) == '*';      
+      bool needExtDecoding = *(nameEnd - 1) == '*';
 
       bool caseB = nameLen == paramLen + 1;
       bool caseCStart = (*cp == '0') && needExtDecoding;
 
       // parse the segment number
       int32_t segmentNumber = -1;
       if (!caseB) {
         int32_t segLen = (nameEnd - cp) - (needExtDecoding ? 1 : 0);
@@ -554,17 +554,17 @@ nsMIMEHeaderParamImpl::DoParameterIntern
       // CaseB and start of CaseC: requires charset and optional language
       // in quotes (quotes required even if lang is blank)
       if (caseB || (caseCStart && acceptContinuations)) {
         // look for single quotation mark(')
         const char *sQuote1 = PL_strchr(valueStart, 0x27);
         const char *sQuote2 = sQuote1 ? PL_strchr(sQuote1 + 1, 0x27) : nullptr;
 
         // Two single quotation marks must be present even in
-        // absence of charset and lang. 
+        // absence of charset and lang.
         if (!sQuote1 || !sQuote2) {
           NS_WARNING("Mandatory two single quotes are missing in header parameter\n");
         }
 
         const char *charsetStart = nullptr;
         int32_t charsetLength = 0;
         const char *langStart = nullptr;
         int32_t langLength = 0;
@@ -631,36 +631,36 @@ nsMIMEHeaderParamImpl::DoParameterIntern
                                          isQuotedString);
 
             if (!added) {
               // continuation not added, stop processing them
               acceptContinuations = false;
             }
           }
         }
-      }  // end of if-block :  title*0*=  or  title*= 
+      }  // end of if-block :  title*0*=  or  title*=
       // caseD: a line of multiline param with no need for unescaping : title*[0-9]=
-      // or 2nd or later lines of a caseC param : title*[1-9]*= 
+      // or 2nd or later lines of a caseC param : title*[1-9]*=
       else if (acceptContinuations && segmentNumber != -1) {
         uint32_t valueLength = valueEnd - valueStart;
 
         bool added = addContinuation(segments, segmentNumber, valueStart,
                                      valueLength, needExtDecoding,
                                      isQuotedString);
 
         if (!added) {
           // continuation not added, stop processing them
           acceptContinuations = false;
         }
       } // end of if-block :  title*[0-9]= or title*[1-9]*=
     }
 
     // str now points after the end of the value.
     //   skip over whitespace, ';', whitespace.
-increment_str:      
+increment_str:
     while (nsCRT::IsAsciiSpace(*str)) ++str;
     if (*str == ';') {
       ++str;
     } else {
       // stop processing the header field; either we are done or the
       // separator was missing
       break;
     }
@@ -736,22 +736,22 @@ internalDecodeRFC2047Header(const char* 
   if (!aHeaderVal)
     return NS_ERROR_INVALID_ARG;
   if (!*aHeaderVal)
     return NS_OK;
 
 
   // If aHeaderVal is RFC 2047 encoded or is not a UTF-8 string  but
   // aDefaultCharset is specified, decodes RFC 2047 encoding and converts
-  // to UTF-8. Otherwise, just strips away CRLF. 
-  if (PL_strstr(aHeaderVal, "=?") || 
-      (aDefaultCharset && (!IsUTF8(nsDependentCString(aHeaderVal)) || 
+  // to UTF-8. Otherwise, just strips away CRLF.
+  if (PL_strstr(aHeaderVal, "=?") ||
+      (aDefaultCharset && (!IsUTF8(nsDependentCString(aHeaderVal)) ||
       Is7bitNonAsciiString(aHeaderVal, strlen(aHeaderVal))))) {
     DecodeRFC2047Str(aHeaderVal, aDefaultCharset, aOverrideCharset, aResult);
-  } else if (aEatContinuations && 
+  } else if (aEatContinuations &&
              (PL_strchr(aHeaderVal, '\n') || PL_strchr(aHeaderVal, '\r'))) {
     aResult = aHeaderVal;
   } else {
     aEatContinuations = false;
     aResult = aHeaderVal;
   }
 
   if (aEatContinuations) {
@@ -761,19 +761,19 @@ internalDecodeRFC2047Header(const char* 
     temp.StripCRLF();
     aResult = temp;
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsMIMEHeaderParamImpl::DecodeRFC2047Header(const char* aHeaderVal, 
-                                           const char* aDefaultCharset, 
-                                           bool aOverrideCharset, 
+nsMIMEHeaderParamImpl::DecodeRFC2047Header(const char* aHeaderVal,
+                                           const char* aDefaultCharset,
+                                           bool aOverrideCharset,
                                            bool aEatContinuations,
                                            nsACString& aResult)
 {
   return internalDecodeRFC2047Header(aHeaderVal, aDefaultCharset,
                                      aOverrideCharset, aEatContinuations,
                                      aResult);
 }
 
@@ -804,19 +804,19 @@ bool PercentDecode(nsACString& aValue)
   nsUnescape(c);
   aValue.Assign(c);
   free(c);
 
   return true;
 }
 
 // Decode a parameter value using the encoding defined in RFC 5987
-// 
+//
 // charset  "'" [ language ] "'" value-chars
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsMIMEHeaderParamImpl::DecodeRFC5987Param(const nsACString& aParamVal,
                                           nsACString& aLang,
                                           nsAString& aResult)
 {
   nsAutoCString charset;
   nsAutoCString language;
   nsAutoCString value;
 
@@ -853,17 +853,17 @@ nsMIMEHeaderParamImpl::DecodeRFC5987Para
           value.Append(tc);
           // we consume two more
           value.Append(*c++);
           value.Append(*c++);
         } else {
           // character not allowed here
           NS_WARNING("invalid character in RFC5987-encoded param");
           return NS_ERROR_INVALID_ARG;
-        }      
+        }
       }
     }
   }
 
   if (delimiters != 2) {
     NS_WARNING("missing delimiters in RFC5987-encoded param");
     return NS_ERROR_INVALID_ARG;
   }
@@ -891,23 +891,23 @@ nsMIMEHeaderParamImpl::DecodeRFC5987Para
   nsAutoCString utf8;
   rv = cvtUTF8->ConvertStringToUTF8(value, charset.get(), true, false, 1, utf8);
   NS_ENSURE_SUCCESS(rv, rv);
 
   CopyUTF8toUTF16(utf8, aResult);
   return NS_OK;
 }
 
-nsresult 
+nsresult
 internalDecodeParameter(const nsACString& aParamValue, const char* aCharset,
                         const char* aDefaultCharset, bool aOverrideCharset,
                         bool aDecode2047, nsACString& aResult)
 {
   aResult.Truncate();
-  // If aCharset is given, aParamValue was obtained from RFC2231/5987 
+  // If aCharset is given, aParamValue was obtained from RFC2231/5987
   // encoding and we're pretty sure that it's in aCharset.
   if (aCharset && *aCharset)
   {
     nsCOMPtr<nsIUTF8ConverterService> cvtUTF8(do_GetService(NS_UTF8CONVERTERSERVICE_CONTRACTID));
     if (cvtUTF8)
       return cvtUTF8->ConvertStringToUTF8(aParamValue, aCharset,
           true, true, 1, aResult);
   }
@@ -929,28 +929,28 @@ internalDecodeParameter(const nsACString
       }
       // else : skip '\' and append the quoted character.
     }
     unQuoted.Append(*s);
   }
 
   aResult = unQuoted;
   nsresult rv = NS_OK;
-  
+
   if (aDecode2047) {
     nsAutoCString decoded;
 
     // Try RFC 2047 encoding, instead.
     rv = internalDecodeRFC2047Header(unQuoted.get(), aDefaultCharset,
                                      aOverrideCharset, true, decoded);
 
     if (NS_SUCCEEDED(rv) && !decoded.IsEmpty())
       aResult = decoded;
   }
-    
+
   return rv;
 }
 
 NS_IMETHODIMP
 nsMIMEHeaderParamImpl::DecodeParameter(const nsACString& aParamValue,
                                        const char* aCharset,
                                        const char* aDefaultCharset,
                                        bool aOverrideCharset,
@@ -1008,27 +1008,27 @@ char *DecodeQ(const char *in, uint32_t l
 
   return dest;
 
  badsyntax:
   free(dest);
   return nullptr;
 }
 
-// check if input is HZ (a 7bit encoding for simplified Chinese : RFC 1842)) 
-// or has  ESC which may be an  indication that  it's in one of many ISO 
+// check if input is HZ (a 7bit encoding for simplified Chinese : RFC 1842))
+// or has  ESC which may be an  indication that  it's in one of many ISO
 // 2022 7bit  encodings (e.g. ISO-2022-JP(-2)/CN : see RFC 1468, 1922, 1554).
 // static
 bool Is7bitNonAsciiString(const char *input, uint32_t len)
 {
   int32_t c;
 
   enum { hz_initial, // No HZ seen yet
-         hz_escaped, // Inside an HZ ~{ escape sequence 
-         hz_seen, // Have seen at least one complete HZ sequence 
+         hz_escaped, // Inside an HZ ~{ escape sequence
+         hz_seen, // Have seen at least one complete HZ sequence
          hz_notpresent // Have seen something that is not legal HZ
   } hz_state;
 
   hz_state = hz_initial;
   while (len) {
     c = uint8_t(*input++);
     len--;
     if (c & 0x80) return false;
@@ -1064,17 +1064,17 @@ bool Is7bitNonAsciiString(const char *in
 
 // copy 'raw' sequences of octets in aInput to aOutput.
 // If aDefaultCharset is specified, the input is assumed to be in the
 // charset and converted to UTF-8. Otherwise, a blind copy is made.
 // If aDefaultCharset is specified, but the conversion to UTF-8
 // is not successful, each octet is replaced by Unicode replacement
 // chars. *aOutput is advanced by the number of output octets.
 // static
-void CopyRawHeader(const char *aInput, uint32_t aLen, 
+void CopyRawHeader(const char *aInput, uint32_t aLen,
                    const char *aDefaultCharset, nsACString &aOutput)
 {
   int32_t c;
 
   // If aDefaultCharset is not specified, make a blind copy.
   if (!aDefaultCharset || !*aDefaultCharset) {
     aOutput.Append(aInput, aLen);
     return;
@@ -1088,26 +1088,26 @@ void CopyRawHeader(const char *aInput, u
   }
   if (!aLen) {
     return;
   }
   aInput--;
 
   // skip ASCIIness/UTF8ness test if aInput is supected to be a 7bit non-ascii
   // string and aDefaultCharset is a 7bit non-ascii charset.
-  bool skipCheck = (c == 0x1B || c == '~') && 
+  bool skipCheck = (c == 0x1B || c == '~') &&
                      IS_7BIT_NON_ASCII_CHARSET(aDefaultCharset);
 
   // If not UTF-8, treat as default charset
-  nsCOMPtr<nsIUTF8ConverterService> 
+  nsCOMPtr<nsIUTF8ConverterService>
     cvtUTF8(do_GetService(NS_UTF8CONVERTERSERVICE_CONTRACTID));
   nsAutoCString utf8Text;
   if (cvtUTF8 &&
       NS_SUCCEEDED(
-      cvtUTF8->ConvertStringToUTF8(Substring(aInput, aInput + aLen), 
+      cvtUTF8->ConvertStringToUTF8(Substring(aInput, aInput + aLen),
                                    aDefaultCharset, skipCheck, true, 1,
                                    utf8Text))) {
     aOutput.Append(utf8Text);
   } else { // replace each octet with Unicode replacement char in UTF-8.
     for (uint32_t i = 0; i < aLen; i++) {
       c = uint8_t(*aInput++);
       if (c & 0x80)
         aOutput.Append(REPLACEMENT_CHAR);
@@ -1153,38 +1153,38 @@ nsresult DecodeQOrBase64Str(const char *
 
   return NS_OK;
 }
 
 static const char especials[] = R"(()<>@,;:\"/[]?.=)";
 
 // |decode_mime_part2_str| taken from comi18n.c
 // Decode RFC2047-encoded words in the input and convert the result to UTF-8.
-// If aOverrideCharset is true, charset in RFC2047-encoded words is 
+// If aOverrideCharset is true, charset in RFC2047-encoded words is
 // ignored and aDefaultCharset is assumed, instead. aDefaultCharset
 // is also used to convert raw octets (without RFC 2047 encoding) to UTF-8.
 //static
-nsresult DecodeRFC2047Str(const char *aHeader, const char *aDefaultCharset, 
+nsresult DecodeRFC2047Str(const char *aHeader, const char *aDefaultCharset,
                           bool aOverrideCharset, nsACString &aResult)
 {
   const char *p, *q = nullptr, *r;
   const char *begin; // tracking pointer for where we are in the input buffer
   int32_t isLastEncodedWord = 0;
   const char *charsetStart, *charsetEnd;
   nsAutoCString prevCharset, curCharset;
   nsAutoCString encodedText;
   char prevEncoding = '\0', curEncoding;
   nsresult rv;
 
   begin = aHeader;
 
-  // To avoid buffer realloc, if possible, set capacity in advance. No 
+  // To avoid buffer realloc, if possible, set capacity in advance. No
   // matter what,  more than 3x expansion can never happen for all charsets
   // supported by Mozilla. SCSU/BCSU with the sliding window set to a
-  // non-BMP block may be exceptions, but Mozilla does not support them. 
+  // non-BMP block may be exceptions, but Mozilla does not support them.
   // Neither any known mail/news program use them. Even if there's, we're
   // safe because we don't use a raw *char any more.
   aResult.SetCapacity(3 * strlen(aHeader));
 
   while ((p = PL_strstr(begin, "=?")) != nullptr) {
     if (isLastEncodedWord) {
       // See if it's all whitespace.
       for (q = begin; q < p; ++q) {
@@ -1215,17 +1215,17 @@ nsresult DecodeRFC2047Str(const char *aH
     charsetEnd = nullptr;
     for (q = p; *q != '?'; q++) {
       if (*q <= ' ' || PL_strchr(especials, *q)) {
         goto badsyntax;
       }
 
       // RFC 2231 section 5
       if (!charsetEnd && *q == '*') {
-        charsetEnd = q; 
+        charsetEnd = q;
       }
     }
     if (!charsetEnd) {
       charsetEnd = q;
     }
 
     q++;
     curEncoding = nsCRT::ToUpper(*q);
--- a/netwerk/mime/nsMIMEHeaderParamImpl.h
+++ b/netwerk/mime/nsMIMEHeaderParamImpl.h
@@ -14,29 +14,29 @@ public:
   NS_DECL_NSIMIMEHEADERPARAM
 
   nsMIMEHeaderParamImpl() {}
 private:
   virtual ~nsMIMEHeaderParamImpl() {}
   enum ParamDecoding {
     MIME_FIELD_ENCODING = 1,
     HTTP_FIELD_ENCODING
-  }; 
+  };
 
-  nsresult DoGetParameter(const nsACString& aHeaderVal, 
+  nsresult DoGetParameter(const nsACString& aHeaderVal,
                           const char *aParamName,
                           ParamDecoding aDecoding,
-                          const nsACString& aFallbackCharset, 
-                          bool aTryLocaleCharset, 
-                          char **aLang, 
+                          const nsACString& aFallbackCharset,
+                          bool aTryLocaleCharset,
+                          char **aLang,
                           nsAString& aResult);
 
-  nsresult DoParameterInternal(const char *aHeaderValue, 
+  nsresult DoParameterInternal(const char *aHeaderValue,
                                const char *aParamName,
                                ParamDecoding aDecoding,
                                char **aCharset,
                                char **aLang,
                                char **aResult);
 
 };
 
-#endif 
+#endif
 
--- a/netwerk/mime/nsMimeTypes.h
+++ b/netwerk/mime/nsMimeTypes.h
@@ -1,15 +1,15 @@
 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
- * This interface allows any module to access the encoder/decoder 
+ * This interface allows any module to access the encoder/decoder
  * routines for RFC822 headers. This will allow any mail/news module
  * to call on these routines.
  */
 #ifndef nsMimeTypes_h_
 #define nsMimeTypes_h_
 
 /* Defines for various MIME content-types and encodings.
    Whenever you type in a content-type, you should use one of these defines
--- a/netwerk/protocol/about/nsAboutBlank.h
+++ b/netwerk/protocol/about/nsAboutBlank.h
@@ -3,17 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsAboutBlank_h__
 #define nsAboutBlank_h__
 
 #include "nsIAboutModule.h"
 
-class nsAboutBlank : public nsIAboutModule 
+class nsAboutBlank : public nsIAboutModule
 {
 public:
     NS_DECL_ISUPPORTS
 
     NS_DECL_NSIABOUTMODULE
 
     nsAboutBlank() {}
 
--- a/netwerk/protocol/about/nsAboutProtocolHandler.cpp
+++ b/netwerk/protocol/about/nsAboutProtocolHandler.cpp
@@ -121,32 +121,32 @@ nsAboutProtocolHandler::NewURI(const nsA
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     // Unfortunately, people create random about: URIs that don't correspond to
     // about: modules...  Since those URIs will never open a channel, might as
     // well consider them unsafe for better perf, and just in case.
     bool isSafe = false;
-    
+
     nsCOMPtr<nsIAboutModule> aboutMod;
     rv = NS_GetAboutModule(url, getter_AddRefs(aboutMod));
     if (NS_SUCCEEDED(rv)) {
         isSafe = IsSafeToLinkForUntrustedContent(aboutMod, url);
     }
 
     if (isSafe) {
         // We need to indicate that this baby is safe.  Use an inner URI that
         // no one but the security manager will see.  Make sure to preserve our
         // path, in case someone decides to hardcode checks for particular
         // about: URIs somewhere.
         nsAutoCString spec;
         rv = url->GetPath(spec);
         NS_ENSURE_SUCCESS(rv, rv);
-        
+
         spec.Insert("moz-safe-about:", 0);
 
         nsCOMPtr<nsIURI> inner;
         rv = NS_NewURI(getter_AddRefs(inner), spec);
         NS_ENSURE_SUCCESS(rv, rv);
 
         nsSimpleNestedURI* outer = new nsNestedAboutURI(inner, aBaseURI);
         NS_ENSURE_TRUE(outer, NS_ERROR_OUT_OF_MEMORY);
@@ -174,17 +174,17 @@ nsAboutProtocolHandler::NewChannel2(nsIU
 
     // about:what you ask?
     nsCOMPtr<nsIAboutModule> aboutMod;
     nsresult rv = NS_GetAboutModule(uri, getter_AddRefs(aboutMod));
 
     nsAutoCString path;
     nsresult rv2 = NS_GetAboutModuleName(uri, path);
     if (NS_SUCCEEDED(rv2) && path.EqualsLiteral("srcdoc")) {
-        // about:srcdoc is meant to be unresolvable, yet is included in the 
+        // about:srcdoc is meant to be unresolvable, yet is included in the
         // about lookup tables so that it can pass security checks when used in
         // a srcdoc iframe.  To ensure that it stays unresolvable, we pretend
         // that it doesn't exist.
       rv = NS_ERROR_FACTORY_NOT_REGISTERED;
     }
 
     if (NS_SUCCEEDED(rv)) {
         // The standard return case:
@@ -251,20 +251,20 @@ nsAboutProtocolHandler::NewChannel2(nsIU
 }
 
 NS_IMETHODIMP
 nsAboutProtocolHandler::NewChannel(nsIURI* uri, nsIChannel* *result)
 {
     return NewChannel2(uri, nullptr, result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsAboutProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
-    // don't override anything.  
+    // don't override anything.
     *_retval = false;
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Safe about protocol handler impl
 
 NS_IMPL_ISUPPORTS(nsSafeAboutProtocolHandler, nsIProtocolHandler, nsISupportsWeakReference)
@@ -304,17 +304,17 @@ nsSafeAboutProtocolHandler::NewURI(const
     if (NS_FAILED(rv)) return rv;
 
     rv = url->SetSpec(aSpec);
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     NS_TryToSetImmutable(url);
-    
+
     *result = nullptr;
     url.swap(*result);
     return rv;
 }
 
 NS_IMETHODIMP
 nsSafeAboutProtocolHandler::NewChannel2(nsIURI* uri,
                                         nsILoadInfo* aLoadInfo,
@@ -326,20 +326,20 @@ nsSafeAboutProtocolHandler::NewChannel2(
 
 NS_IMETHODIMP
 nsSafeAboutProtocolHandler::NewChannel(nsIURI* uri, nsIChannel* *result)
 {
     *result = nullptr;
     return NS_ERROR_NOT_AVAILABLE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSafeAboutProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
-    // don't override anything.  
+    // don't override anything.
     *_retval = false;
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////
 // nsNestedAboutURI implementation
 NS_INTERFACE_MAP_BEGIN(nsNestedAboutURI)
   if (aIID.Equals(kNestedAboutURICID))
--- a/netwerk/protocol/data/nsDataChannel.cpp
+++ b/netwerk/protocol/data/nsDataChannel.cpp
@@ -39,20 +39,20 @@ nsDataChannel::OpenContentStream(bool as
     NS_UnescapeURL(dataBuffer);
 
     if (lBase64) {
         // Don't allow spaces in base64-encoded content. This is only
         // relevant for escaped spaces; other spaces are stripped in
         // NewURI.
         dataBuffer.StripWhitespace();
     }
-    
+
     nsCOMPtr<nsIInputStream> bufInStream;
     nsCOMPtr<nsIOutputStream> bufOutStream;
-    
+
     // create an unbounded pipe.
     rv = NS_NewPipe(getter_AddRefs(bufInStream),
                     getter_AddRefs(bufOutStream),
                     nsIOService::gDefaultSegmentSize,
                     UINT32_MAX,
                     async, true);
     if (NS_FAILED(rv))
         return rv;
--- a/netwerk/protocol/data/nsDataHandler.cpp
+++ b/netwerk/protocol/data/nsDataHandler.cpp
@@ -28,17 +28,17 @@ nsDataHandler::Create(nsISupports* aOute
     nsDataHandler* ph = new nsDataHandler();
     if (ph == nullptr)
         return NS_ERROR_OUT_OF_MEMORY;
     NS_ADDREF(ph);
     nsresult rv = ph->QueryInterface(aIID, aResult);
     NS_RELEASE(ph);
     return rv;
 }
-    
+
 ////////////////////////////////////////////////////////////////////////////////
 // nsIProtocolHandler methods:
 
 NS_IMETHODIMP
 nsDataHandler::GetScheme(nsACString &result) {
     result.AssignLiteral("data");
     return NS_OK;
 }
@@ -145,19 +145,19 @@ nsDataHandler::NewChannel2(nsIURI* uri,
 }
 
 NS_IMETHODIMP
 nsDataHandler::NewChannel(nsIURI* uri, nsIChannel* *result)
 {
     return NewChannel2(uri, nullptr, result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDataHandler::AllowPort(int32_t port, const char *scheme, bool *_retval) {
-    // don't override anything.  
+    // don't override anything.
     *_retval = false;
     return NS_OK;
 }
 
 #define BASE64_EXTENSION ";base64"
 
 nsresult
 nsDataHandler::ParseURI(nsCString& spec,
--- a/netwerk/protocol/data/nsDataModule.cpp
+++ b/netwerk/protocol/data/nsDataModule.cpp
@@ -4,18 +4,18 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsIModule.h"
 #include "nsIGenericFactory.h"
 #include "nsDataHandler.h"
 
 // The list of components we register
 static const nsModuleComponentInfo components[] = {
-    { "Data Protocol Handler", 
+    { "Data Protocol Handler",
       NS_DATAHANDLER_CID,
-      NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "data", 
+      NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "data",
       nsDataHandler::Create},
 };
 
 NS_IMPL_NSGETMODULE(nsDataProtocolModule, components)
 
 
 
--- a/netwerk/protocol/device/AndroidCaptureProvider.cpp
+++ b/netwerk/protocol/device/AndroidCaptureProvider.cpp
@@ -39,17 +39,17 @@ AndroidCameraInputStream::Init(nsACStrin
 {
   if (!XRE_IsParentProcess())
     return NS_ERROR_NOT_IMPLEMENTED;
 
   mContentType = aContentType;
   mWidth = aParams->width;
   mHeight = aParams->height;
   mCamera = aParams->camera;
-  
+
   CameraStreamImpl *impl = CameraStreamImpl::GetInstance(0);
   if (!impl)
     return NS_ERROR_OUT_OF_MEMORY;
   if (impl->Init(mContentType, mCamera, mWidth, mHeight, this)) {
     mWidth = impl->GetWidth();
     mHeight = impl->GetHeight();
     mClosed = false;
   }
@@ -59,43 +59,43 @@ AndroidCameraInputStream::Init(nsACStrin
 void AndroidCameraInputStream::ReceiveFrame(char* frame, uint32_t length) {
   {
     mozilla::ReentrantMonitorAutoEnter autoMonitor(mMonitor);
     if (mFrameQueue->GetSize() > MAX_FRAMES_QUEUED) {
       free(mFrameQueue->PopFront());
       mAvailable -= mFrameSize;
     }
   }
-  
+
   mFrameSize = sizeof(RawPacketHeader) + length;
-  
+
   char* fullFrame = (char*)moz_xmalloc(mFrameSize);
 
   if (!fullFrame)
     return;
-  
+
   RawPacketHeader* header = (RawPacketHeader*) fullFrame;
   header->packetID = 0xFF;
   header->codecID = 0x595556; // "YUV"
-  
+
   // we copy the Y plane, and de-interlace the CrCb
-  
+
   uint32_t yFrameSize = mWidth * mHeight;
   uint32_t uvFrameSize = yFrameSize / 4;
 
   memcpy(fullFrame + sizeof(RawPacketHeader), frame, yFrameSize);
-  
+
   char* uFrame = fullFrame + yFrameSize;
   char* vFrame = fullFrame + yFrameSize + uvFrameSize;
   char* yFrame = frame + yFrameSize;
   for (uint32_t i = 0; i < uvFrameSize; i++) {
     uFrame[i] = yFrame[2 * i + 1];
     vFrame[i] = yFrame[2 * i];
   }
-  
+
   {
     mozilla::ReentrantMonitorAutoEnter autoMonitor(mMonitor);
     mAvailable += mFrameSize;
     mFrameQueue->Push((void*)fullFrame);
   }
 
   NotifyListeners();
 }
@@ -116,22 +116,22 @@ NS_IMETHODIMP AndroidCameraInputStream::
 }
 
 NS_IMETHODIMP AndroidCameraInputStream::Read(char *aBuffer, uint32_t aCount, uint32_t *aRead) {
   return ReadSegments(NS_CopySegmentToBuffer, aBuffer, aCount, aRead);
 }
 
 NS_IMETHODIMP AndroidCameraInputStream::ReadSegments(nsWriteSegmentFun aWriter, void *aClosure, uint32_t aCount, uint32_t *aRead) {
   *aRead = 0;
-  
+
   nsresult rv;
 
   if (mAvailable == 0)
     return NS_BASE_STREAM_WOULD_BLOCK;
-  
+
   if (aCount > mAvailable)
     aCount = mAvailable;
 
   if (!mHeaderSent) {
     CameraStreamImpl *impl = CameraStreamImpl::GetInstance(0);
     RawVideoHeader header;
     header.headerPacketID = 0;
     header.codecID = 0x595556; // "YUV"
@@ -148,41 +148,41 @@ NS_IMETHODIMP AndroidCameraInputStream::
     header.frameHeight = mHeight;
     header.aspectNumerator = 1;
     header.aspectDenominator = 1;
 
     header.framerateNumerator = impl->GetFps();
     header.framerateDenominator = 1;
 
     rv = aWriter(this, aClosure, (const char*)&header, 0, sizeof(RawVideoHeader), aRead);
-   
+
     if (NS_FAILED(rv))
       return NS_OK;
-    
+
     mHeaderSent = true;
     aCount -= sizeof(RawVideoHeader);
     mAvailable -= sizeof(RawVideoHeader);
   }
-  
+
   {
     mozilla::ReentrantMonitorAutoEnter autoMonitor(mMonitor);
     while ((mAvailable > 0) && (aCount >= mFrameSize)) {
       uint32_t readThisTime = 0;
 
       char* frame = (char*)mFrameQueue->PopFront();
       rv = aWriter(this, aClosure, (const char*)frame, *aRead, mFrameSize, &readThisTime);
 
       if (readThisTime != mFrameSize) {
         mFrameQueue->PushFront((void*)frame);
         return NS_OK;
       }
-  
+
       // RawReader does a copy when calling VideoData::Create()
       free(frame);
-  
+
       if (NS_FAILED(rv))
         return NS_OK;
 
       aCount -= readThisTime;
       mAvailable -= readThisTime;
       *aRead += readThisTime;
     }
   }
@@ -203,17 +203,17 @@ void AndroidCameraInputStream::doClose()
   CameraStreamImpl *impl = CameraStreamImpl::GetInstance(0);
   impl->Close();
   mClosed = true;
 }
 
 
 void AndroidCameraInputStream::NotifyListeners() {
   mozilla::ReentrantMonitorAutoEnter autoMonitor(mMonitor);
-  
+
   if (mCallback && (mAvailable > sizeof(RawVideoHeader))) {
     nsCOMPtr<nsIInputStreamCallback> callback;
     if (mCallbackTarget) {
       callback = NS_NewInputStreamReadyEvent("AndroidCameraInputStream::NotifyListeners",
                                              mCallback, mCallbackTarget);
     } else {
       callback = mCallback;
     }
--- a/netwerk/protocol/device/nsDeviceChannel.cpp
+++ b/netwerk/protocol/device/nsDeviceChannel.cpp
@@ -49,17 +49,17 @@ NS_IMPL_ISUPPORTS_INHERITED(nsDeviceChan
                             nsIChannel)
 
 // nsDeviceChannel methods
 nsDeviceChannel::nsDeviceChannel()
 {
   SetContentType(NS_LITERAL_CSTRING("image/png"));
 }
 
-nsDeviceChannel::~nsDeviceChannel() 
+nsDeviceChannel::~nsDeviceChannel()
 {
 }
 
 nsresult
 nsDeviceChannel::Init(nsIURI* aUri)
 {
   nsBaseChannel::Init();
   nsBaseChannel::SetURI(aUri);
--- a/netwerk/protocol/device/nsDeviceProtocolHandler.cpp
+++ b/netwerk/protocol/device/nsDeviceProtocolHandler.cpp
@@ -74,20 +74,20 @@ nsDeviceProtocolHandler::NewChannel2(nsI
 }
 
 NS_IMETHODIMP
 nsDeviceProtocolHandler::NewChannel(nsIURI* aURI, nsIChannel **aResult)
 {
   return NewChannel2(aURI, nullptr, aResult);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsDeviceProtocolHandler::AllowPort(int32_t port,
                                    const char *scheme,
                                    bool *aResult)
 {
-  // don't override anything.  
+  // don't override anything.
   *aResult = false;
   return NS_OK;
 }
 
 } // namespace net
 } // namespace mozilla
--- a/netwerk/protocol/file/nsFileChannel.cpp
+++ b/netwerk/protocol/file/nsFileChannel.cpp
@@ -42,17 +42,17 @@ public:
     , mLen(len)
     , mStatus(NS_OK)
     , mInterruptStatus(NS_OK)
   {
   }
 
   // Read the current status of the file copy operation.
   nsresult Status() { return mStatus; }
-  
+
   // Call this method to perform the file copy synchronously.
   void DoCopy();
 
   // Call this method to perform the file copy on a background thread.  The
   // callback is dispatched when the file copy completes.
   nsresult Dispatch(nsIRunnable *callback,
                     nsITransportEventSink *sink,
                     nsIEventTarget *target);
@@ -109,17 +109,17 @@ nsFileCopyEvent::DoCopy()
     }
 
     // Dispatch progress notification
     if (mSink) {
       progress += num;
       mSink->OnTransportStatus(nullptr, NS_NET_STATUS_WRITING, progress,
                                mLen);
     }
-                               
+
     len -= num;
   }
 
   if (NS_FAILED(rv))
     mStatus = rv;
 
   // Close the output stream before notifying our callback so that others may
   // freely "play" with the file.
@@ -209,17 +209,17 @@ nsFileUploadContentStream::ReadSegments(
 
   if (IsClosed())
     return NS_OK;
 
   if (IsNonBlocking()) {
     // Inform the caller that they will have to wait for the copy operation to
     // complete asynchronously.  We'll kick of the copy operation once they
     // call AsyncWait.
-    return NS_BASE_STREAM_WOULD_BLOCK;  
+    return NS_BASE_STREAM_WOULD_BLOCK;
   }
 
   // Perform copy synchronously, and then close out the stream.
   mCopyEvent->DoCopy();
   nsresult status = mCopyEvent->Status();
   CloseWithStatus(NS_FAILED(status) ? status : NS_BASE_STREAM_CLOSED);
   return status;
 }
@@ -250,17 +250,17 @@ nsFileUploadContentStream::OnCopyComplet
   // This method is being called to indicate that we are done copying.
   nsresult status = mCopyEvent->Status();
 
   CloseWithStatus(NS_FAILED(status) ? status : NS_BASE_STREAM_CLOSED);
 }
 
 //-----------------------------------------------------------------------------
 
-nsFileChannel::nsFileChannel(nsIURI *uri) 
+nsFileChannel::nsFileChannel(nsIURI *uri)
   : mFileURI(uri)
 {
 }
 
 nsresult
 nsFileChannel::Init()
 {
   NS_ENSURE_STATE(mLoadInfo);
@@ -371,17 +371,17 @@ nsFileChannel::OpenContentStream(bool as
   nsresult rv = GetFile(getter_AddRefs(file));
   if (NS_FAILED(rv))
     return rv;
 
   nsCOMPtr<nsIFileProtocolHandler> fileHandler;
   rv = NS_GetFileProtocolHandler(getter_AddRefs(fileHandler));
   if (NS_FAILED(rv))
     return rv;
-    
+
   nsCOMPtr<nsIURI> newURI;
   rv = fileHandler->ReadURLFile(file, getter_AddRefs(newURI));
   if (NS_SUCCEEDED(rv)) {
     nsCOMPtr<nsIChannel> newChannel;
     rv = NS_NewChannel(getter_AddRefs(newChannel),
                        newURI,
                        nsContentUtils::GetSystemPrincipal(),
                        nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
@@ -433,17 +433,17 @@ nsFileChannel::OpenContentStream(bool as
 
     EnableSynthesizedProgressEvents(true);
 
     // fixup content length and type
     if (mContentLength < 0) {
       int64_t size;
       rv = file->GetFileSize(&size);
       if (NS_FAILED(rv)) {
-        if (async && 
+        if (async &&
             (NS_ERROR_FILE_NOT_FOUND == rv ||
              NS_ERROR_FILE_TARGET_DOES_NOT_EXIST == rv)) {
           size = 0;
         } else {
           return rv;
         }
       }
       mContentLength = size;
--- a/netwerk/protocol/file/nsFileChannel.h
+++ b/netwerk/protocol/file/nsFileChannel.h
@@ -10,17 +10,17 @@
 #include "nsBaseChannel.h"
 #include "nsIFileChannel.h"
 #include "nsIUploadChannel.h"
 
 class nsFileChannel : public nsBaseChannel
                     , public nsIFileChannel
                     , public nsIUploadChannel
 {
-public: 
+public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_NSIFILECHANNEL
   NS_DECL_NSIUPLOADCHANNEL
 
   explicit nsFileChannel(nsIURI *uri);
 
   nsresult Init();
 
--- a/netwerk/protocol/file/nsFileProtocolHandler.cpp
+++ b/netwerk/protocol/file/nsFileProtocolHandler.cpp
@@ -222,20 +222,20 @@ nsFileProtocolHandler::NewChannel2(nsIUR
 }
 
 NS_IMETHODIMP
 nsFileProtocolHandler::NewChannel(nsIURI *uri, nsIChannel **result)
 {
     return NewChannel2(uri, nullptr, result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsFileProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *result)
 {
-    // don't override anything.  
+    // don't override anything.
     *result = false;
     return NS_OK;
 }
 
 //-----------------------------------------------------------------------------
 // nsIFileProtocolHandler methods:
 
 NS_IMETHODIMP
@@ -259,17 +259,17 @@ nsFileProtocolHandler::NewFileURI(nsIFil
 NS_IMETHODIMP
 nsFileProtocolHandler::GetURLSpecFromFile(nsIFile *file, nsACString &result)
 {
     NS_ENSURE_ARG_POINTER(file);
     return net_GetURLSpecFromFile(file, result);
 }
 
 NS_IMETHODIMP
-nsFileProtocolHandler::GetURLSpecFromActualFile(nsIFile *file, 
+nsFileProtocolHandler::GetURLSpecFromActualFile(nsIFile *file,
                                                 nsACString &result)
 {
     NS_ENSURE_ARG_POINTER(file);
     return net_GetURLSpecFromActualFile(file, result);
 }
 
 NS_IMETHODIMP
 nsFileProtocolHandler::GetURLSpecFromDir(nsIFile *file, nsACString &result)
--- a/netwerk/protocol/ftp/FTPChannelChild.cpp
+++ b/netwerk/protocol/ftp/FTPChannelChild.cpp
@@ -179,17 +179,17 @@ FTPChannelChild::AsyncOpen(::nsIStreamLi
   }
   if (MissingRequiredTabChild(tabChild, "ftp")) {
     return NS_ERROR_ILLEGAL_VALUE;
   }
 
   mListener = listener;
   mListenerContext = aContext;
 
-  // add ourselves to the load group. 
+  // add ourselves to the load group.
   if (mLoadGroup)
     mLoadGroup->AddRequest(this, nullptr);
 
   mozilla::ipc::AutoIPCStream autoStream;
   autoStream.Serialize(mUploadStream,
                        static_cast<ContentChild*>(gNeckoChild->Manager()));
 
   FTPChannelOpenArgs openArgs;
@@ -230,17 +230,17 @@ FTPChannelChild::IsPending(bool* result)
 nsresult
 FTPChannelChild::OpenContentStream(bool async,
                                    nsIInputStream** stream,
                                    nsIChannel** channel)
 {
   MOZ_CRASH("FTPChannel*Child* should never have OpenContentStream called!");
   return NS_OK;
 }
-  
+
 //-----------------------------------------------------------------------------
 // FTPChannelChild::PFTPChannelChild
 //-----------------------------------------------------------------------------
 
 class FTPStartRequestEvent : public NeckoTargetChannelEvent<FTPChannelChild>
 {
 public:
   FTPStartRequestEvent(FTPChannelChild* aChild,
--- a/netwerk/protocol/ftp/FTPChannelParent.cpp
+++ b/netwerk/protocol/ftp/FTPChannelParent.cpp
@@ -709,17 +709,17 @@ FTPChannelParent::ResumeForDiversion()
     }
     mSuspendedForDiversion = false;
   }
 
   // Delete() will tear down IPDL, but ref from underlying nsFTPChannel will
   // keep us alive if there's more data to be delivered to listener.
   if (NS_WARN_IF(NS_FAILED(Delete()))) {
     FailDiversion(NS_ERROR_UNEXPECTED);
-    return NS_ERROR_UNEXPECTED;   
+    return NS_ERROR_UNEXPECTED;
   }
   return NS_OK;
 }
 
 nsresult
 FTPChannelParent::SuspendMessageDiversion()
 {
   // This only need to suspend message queue.
@@ -897,21 +897,21 @@ FTPChannelParent::AsyncOnChannelRedirect
                             uint32_t redirectFlags,
                             nsIAsyncVerifyRedirectCallback* callback)
 {
   nsCOMPtr<nsIFTPChannel> ftpChan = do_QueryInterface(newChannel);
   if (!ftpChan) {
     // when FTP is set to use HTTP proxying, we wind up getting redirected to an HTTP channel.
     nsCOMPtr<nsIHttpChannel> httpChan = do_QueryInterface(newChannel);
     if (!httpChan)
-      return NS_ERROR_UNEXPECTED; 
+      return NS_ERROR_UNEXPECTED;
   }
   mChannel = newChannel;
   callback->OnRedirectVerifyCallback(NS_OK);
-  return NS_OK; 
+  return NS_OK;
 }
 
 NS_IMETHODIMP
 FTPChannelParent::SetErrorMsg(const char *aMsg, bool aUseUTF8)
 {
   mErrorMsg = aMsg;
   mUseUTF8 = aUseUTF8;
   return NS_OK;
--- a/netwerk/protocol/ftp/nsFTPChannel.cpp
+++ b/netwerk/protocol/ftp/nsFTPChannel.cpp
@@ -9,17 +9,17 @@
 
 #include "nsThreadUtils.h"
 #include "mozilla/Attributes.h"
 
 using namespace mozilla;
 using namespace mozilla::net;
 extern LazyLogModule gFTPLog;
 
-// There are two transport connections established for an 
+// There are two transport connections established for an
 // ftp connection. One is used for the command channel , and
 // the other for the data channel. The command channel is the first
 // connection made and is used to negotiate the second, data, channel.
 // The data channel is driven by the command channel and is either
 // initiated by the server (PORT command) or by the client (PASV command).
 // Client initiation is the most common case and is attempted first.
 
 //-----------------------------------------------------------------------------
@@ -40,17 +40,17 @@ nsFtpChannel::SetUploadStream(nsIInputSt
                               const nsACString &contentType,
                               int64_t contentLength)
 {
     NS_ENSURE_TRUE(!Pending(), NS_ERROR_IN_PROGRESS);
 
     mUploadStream = stream;
 
     // NOTE: contentLength is intentionally ignored here.
- 
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFtpChannel::GetUploadStream(nsIInputStream **stream)
 {
     NS_ENSURE_ARG_POINTER(stream);
     *stream = mUploadStream;
@@ -136,17 +136,17 @@ class FTPEventSinkProxy final : public n
 {
     ~FTPEventSinkProxy() {}
 
 public:
     explicit FTPEventSinkProxy(nsIFTPEventSink* aTarget)
         : mTarget(aTarget)
         , mEventTarget(GetCurrentThreadEventTarget())
     { }
-        
+
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIFTPEVENTSINK
 
     class OnFTPControlLogRunnable : public Runnable
     {
     public:
       OnFTPControlLogRunnable(nsIFTPEventSink* aTarget,
                               bool aServer,
--- a/netwerk/protocol/ftp/nsFtpConnectionThread.cpp
+++ b/netwerk/protocol/ftp/nsFtpConnectionThread.cpp
@@ -59,17 +59,17 @@ removeParamsFromPath(nsCString& path)
   int32_t index = path.FindChar(';');
   if (index >= 0) {
     path.SetLength(index);
   }
 }
 
 NS_IMPL_ISUPPORTS_INHERITED(nsFtpState,
                             nsBaseContentStream,
-                            nsIInputStreamCallback, 
+                            nsIInputStreamCallback,
                             nsITransportEventSink,
                             nsIRequestObserver,
                             nsIProtocolProxyCallback)
 
 nsFtpState::nsFtpState()
     : nsBaseContentStream(true)
     , mState(FTP_INIT)
     , mNextState(FTP_S_USER)
@@ -94,17 +94,17 @@ nsFtpState::nsFtpState()
     , mDeferredCallbackPending(false)
 {
     LOG_INFO(("FTP:(%p) nsFtpState created", this));
 
     // make sure handler stays around
     NS_ADDREF(gFtpHandler);
 }
 
-nsFtpState::~nsFtpState() 
+nsFtpState::~nsFtpState()
 {
     LOG_INFO(("FTP:(%p) nsFtpState destroyed", this));
 
     if (mProxyRequest)
         mProxyRequest->Cancel(NS_ERROR_FAILURE);
 
     // release reference to handler
     nsFtpProtocolHandler *handler = gFtpHandler;
@@ -168,36 +168,36 @@ nsFtpState::OnControlDataAvailable(const
 
         // Append the current segment, including the LF
         nsAutoCString line;
         int32_t crlfLength = 0;
 
         if ((currLineLength > eolLength) &&
             (currLine[eolLength] == nsCRT::CR) &&
             (currLine[eolLength+1] == nsCRT::LF)) {
-            crlfLength = 2; // CR +LF 
+            crlfLength = 2; // CR +LF
         } else {
             crlfLength = 1; // + LF or CR
         }
 
         line.Assign(currLine, eolLength + crlfLength);
-        
+
         // Does this start with a response code?
         bool startNum = (line.Length() >= 3 &&
                            isdigit(line[0]) &&
                            isdigit(line[1]) &&
                            isdigit(line[2]));
 
         if (mResponseMsg.IsEmpty()) {
             // If we get here, then we know that we have a complete line, and
             // that it is the first one
 
             NS_ASSERTION(line.Length() > 4 && startNum,
                          "Read buffer doesn't include response code");
-            
+
             mResponseCode = atoi(PromiseFlatCString(Substring(line,0,3)).get());
         }
 
         mResponseMsg.Append(line);
 
         // This is the last line if its 3 numbers followed by a space
         if (startNum && line[3] == ' ') {
             // yup. last line, let's move on.
@@ -208,17 +208,17 @@ nsFtpState::OnControlDataAvailable(const
             } else {
                 mState = mNextState;
             }
 
             nsCOMPtr<nsIFTPEventSink> ftpSink;
             mChannel->GetFTPEventSink(ftpSink);
             if (ftpSink)
                 ftpSink->OnFTPControlLog(true, mResponseMsg.get());
-            
+
             nsresult rv = Process();
             mResponseMsg.Truncate();
             if (NS_FAILED(rv)) {
                 CloseWithStatus(rv);
                 return;
             }
         }
 
@@ -248,45 +248,45 @@ nsFtpState::OnControlError(nsresult stat
         CloseWithStatus(status);
     }
 }
 
 nsresult
 nsFtpState::EstablishControlConnection()
 {
     NS_ASSERTION(!mControlConnection, "we already have a control connection");
-            
+
     nsresult rv;
 
     LOG(("FTP:(%p) trying cached control\n", this));
-        
+
     // Look to see if we can use a cached control connection:
     RefPtr<nsFtpControlConnection> connection;
     // Don't use cached control if anonymous (bug #473371)
     if (!mChannel->HasLoadFlag(nsIRequest::LOAD_ANONYMOUS))
         gFtpHandler->RemoveConnection(mChannel->URI(), getter_AddRefs(connection));
 
     if (connection) {
         mControlConnection.swap(connection);
         if (mControlConnection->IsAlive())
         {
-            // set stream listener of the control connection to be us.        
+            // set stream listener of the control connection to be us.
             mControlConnection->WaitData(this);
-            
-            // read cached variables into us. 
-            mServerType = mControlConnection->mServerType;           
+
+            // read cached variables into us.
+            mServerType = mControlConnection->mServerType;
             mPassword   = mControlConnection->mPassword;
             mPwd        = mControlConnection->mPwd;
             mUseUTF8    = mControlConnection->mUseUTF8;
             mTryingCachedControl = true;
 
             // we have to set charset to connection if server supports utf-8
             if (mUseUTF8)
                 mChannel->SetContentCharset(NS_LITERAL_CSTRING("UTF-8"));
-            
+
             // we're already connected to this server, skip login.
             mState = FTP_S_PASV;
             mResponseCode = 530;  // assume the control connection was dropped.
             mControlStatus = NS_OK;
             mReceivedControlData = false;  // For this request, we have not.
 
             // if we succeed, return.  Otherwise, we need to create a transport
             rv = mControlConnection->Connect(mChannel->ProxyInfo(), this);
@@ -296,20 +296,20 @@ nsFtpState::EstablishControlConnection()
         LOG(("FTP:(%p) cached CC(%p) is unusable\n", this,
             mControlConnection.get()));
 
         mControlConnection->WaitData(nullptr);
         mControlConnection = nullptr;
     }
 
     LOG(("FTP:(%p) creating CC\n", this));
-        
+
     mState = FTP_READ_BUF;
     mNextState = FTP_S_USER;
-    
+
     nsAutoCString host;
     rv = mChannel->URI()->GetAsciiHost(host);
     if (NS_FAILED(rv))
         return rv;
 
     mControlConnection = new nsFtpControlConnection(host, mPort);
     if (!mControlConnection)
         return NS_ERROR_OUT_OF_MEMORY;
@@ -320,338 +320,338 @@ nsFtpState::EstablishControlConnection()
              mControlConnection.get(), static_cast<uint32_t>(rv)));
         mControlConnection = nullptr;
         return rv;
     }
 
     return mControlConnection->WaitData(this);
 }
 
-void 
+void
 nsFtpState::MoveToNextState(FTP_STATE nextState)
 {
     if (NS_FAILED(mInternalError)) {
         mState = FTP_ERROR;
         LOG(("FTP:(%p) FAILED (%" PRIx32 ")\n", this, static_cast<uint32_t>(mInternalError)));
     } else {
         mState = FTP_READ_BUF;
         mNextState = nextState;
-    }  
+    }
 }
 
 nsresult
-nsFtpState::Process() 
+nsFtpState::Process()
 {
     nsresult    rv = NS_OK;
     bool        processingRead = true;
-    
+
     while (mKeepRunning && processingRead) {
         switch (mState) {
           case FTP_COMMAND_CONNECT:
             KillControlConnection();
             LOG(("FTP:(%p) establishing CC", this));
             mInternalError = EstablishControlConnection();  // sets mState
             if (NS_FAILED(mInternalError)) {
                 mState = FTP_ERROR;
                 LOG(("FTP:(%p) FAILED\n", this));
             } else {
                 LOG(("FTP:(%p) SUCCEEDED\n", this));
             }
             break;
-    
+
           case FTP_READ_BUF:
             LOG(("FTP:(%p) Waiting for CC(%p)\n", this,
                 mControlConnection.get()));
             processingRead = false;
             break;
-          
+
           case FTP_ERROR: // xx needs more work to handle dropped control connection cases
             if ((mTryingCachedControl && mResponseCode == 530 &&
                 mInternalError == NS_ERROR_FTP_PASV) ||
                 (mResponseCode == 425 &&
                 mInternalError == NS_ERROR_FTP_PASV)) {
                 // The user was logged out during an pasv operation
                 // we want to restart this request with a new control
                 // channel.
                 mState = FTP_COMMAND_CONNECT;
-            } else if (mResponseCode == 421 && 
+            } else if (mResponseCode == 421 &&
                        mInternalError != NS_ERROR_FTP_LOGIN) {
                 // The command channel dropped for some reason.
                 // Fire it back up, unless we were trying to login
                 // in which case the server might just be telling us
                 // that the max number of users has been reached...
                 mState = FTP_COMMAND_CONNECT;
-            } else if (mAnonymous && 
+            } else if (mAnonymous &&
                        mInternalError == NS_ERROR_FTP_LOGIN) {
                 // If the login was anonymous, and it failed, try again with a username
                 // Don't reuse old control connection, see #386167
                 mAnonymous = false;
                 mState = FTP_COMMAND_CONNECT;
             } else {
                 LOG(("FTP:(%p) FTP_ERROR - calling StopProcessing\n", this));
                 rv = StopProcessing();
                 NS_ASSERTION(NS_SUCCEEDED(rv), "StopProcessing failed.");
                 processingRead = false;
             }
             break;
-          
+
           case FTP_COMPLETE:
             LOG(("FTP:(%p) COMPLETE\n", this));
             rv = StopProcessing();
             NS_ASSERTION(NS_SUCCEEDED(rv), "StopProcessing failed.");
             processingRead = false;
             break;
 
-// USER           
+// USER
           case FTP_S_USER:
             rv = S_user();
-            
+
             if (NS_FAILED(rv))
                 mInternalError = NS_ERROR_FTP_LOGIN;
-            
+
             MoveToNextState(FTP_R_USER);
             break;
-            
+
           case FTP_R_USER:
             mState = R_user();
-            
-            if (FTP_ERROR == mState)
-                mInternalError = NS_ERROR_FTP_LOGIN;
-            
-            break;
-// PASS            
-          case FTP_S_PASS:
-            rv = S_pass();
-            
-            if (NS_FAILED(rv))
-                mInternalError = NS_ERROR_FTP_LOGIN;
-            
-            MoveToNextState(FTP_R_PASS);
-            break;
-            
-          case FTP_R_PASS:
-            mState = R_pass();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_LOGIN;
-            
+
             break;
-// ACCT            
-          case FTP_S_ACCT:
-            rv = S_acct();
-            
+// PASS
+          case FTP_S_PASS:
+            rv = S_pass();
+
             if (NS_FAILED(rv))
                 mInternalError = NS_ERROR_FTP_LOGIN;
-            
-            MoveToNextState(FTP_R_ACCT);
+
+            MoveToNextState(FTP_R_PASS);
             break;
-            
-          case FTP_R_ACCT:
-            mState = R_acct();
-            
+
+          case FTP_R_PASS:
+            mState = R_pass();
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_LOGIN;
-            
+
+            break;
+// ACCT
+          case FTP_S_ACCT:
+            rv = S_acct();
+
+            if (NS_FAILED(rv))
+                mInternalError = NS_ERROR_FTP_LOGIN;
+
+            MoveToNextState(FTP_R_ACCT);
             break;
 
-// SYST            
-          case FTP_S_SYST:
-            rv = S_syst();
-            
-            if (NS_FAILED(rv))
-                mInternalError = NS_ERROR_FTP_LOGIN;
-            
-            MoveToNextState(FTP_R_SYST);
-            break;
-            
-          case FTP_R_SYST:
-            mState = R_syst();
-            
+          case FTP_R_ACCT:
+            mState = R_acct();
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_LOGIN;
 
             break;
 
-// TYPE            
+// SYST
+          case FTP_S_SYST:
+            rv = S_syst();
+
+            if (NS_FAILED(rv))
+                mInternalError = NS_ERROR_FTP_LOGIN;
+
+            MoveToNextState(FTP_R_SYST);
+            break;
+
+          case FTP_R_SYST:
+            mState = R_syst();
+
+            if (FTP_ERROR == mState)
+                mInternalError = NS_ERROR_FTP_LOGIN;
+
+            break;
+
+// TYPE
           case FTP_S_TYPE:
             rv = S_type();
-            
+
             if (NS_FAILED(rv))
                 mInternalError = rv;
-            
+
             MoveToNextState(FTP_R_TYPE);
             break;
-            
+
           case FTP_R_TYPE:
             mState = R_type();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
-            
+
             break;
-// CWD            
+// CWD
           case FTP_S_CWD:
             rv = S_cwd();
-            
+
             if (NS_FAILED(rv))
                 mInternalError = NS_ERROR_FTP_CWD;
-            
+
             MoveToNextState(FTP_R_CWD);
             break;
-            
+
           case FTP_R_CWD:
             mState = R_cwd();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_CWD;
             break;
-       
+
 // LIST
           case FTP_S_LIST:
             rv = S_list();
 
             if (rv == NS_ERROR_NOT_RESUMABLE) {
                 mInternalError = rv;
             } else if (NS_FAILED(rv)) {
                 mInternalError = NS_ERROR_FTP_CWD;
             }
-            
+
             MoveToNextState(FTP_R_LIST);
             break;
 
-          case FTP_R_LIST:        
+          case FTP_R_LIST:
             mState = R_list();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
 
             break;
 
-// SIZE            
+// SIZE
           case FTP_S_SIZE:
             rv = S_size();
-            
+
             if (NS_FAILED(rv))
                 mInternalError = rv;
-            
+
             MoveToNextState(FTP_R_SIZE);
             break;
-            
-          case FTP_R_SIZE: 
+
+          case FTP_R_SIZE:
             mState = R_size();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
-            
+
             break;
 
-// REST        
+// REST
           case FTP_S_REST:
             rv = S_rest();
-            
+
             if (NS_FAILED(rv))
                 mInternalError = rv;
-            
+
             MoveToNextState(FTP_R_REST);
             break;
-            
+
           case FTP_R_REST:
             mState = R_rest();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
-            
+
             break;
 
 // MDTM
           case FTP_S_MDTM:
             rv = S_mdtm();
             if (NS_FAILED(rv))
                 mInternalError = rv;
             MoveToNextState(FTP_R_MDTM);
             break;
 
           case FTP_R_MDTM:
             mState = R_mdtm();
 
             // Don't want to overwrite a more explicit status code
             if (FTP_ERROR == mState && NS_SUCCEEDED(mInternalError))
                 mInternalError = NS_ERROR_FAILURE;
-            
+
             break;
-            
-// RETR        
+
+// RETR
           case FTP_S_RETR:
             rv = S_retr();
-            
-            if (NS_FAILED(rv)) 
+
+            if (NS_FAILED(rv))
                 mInternalError = rv;
-            
+
             MoveToNextState(FTP_R_RETR);
             break;
-            
+
           case FTP_R_RETR:
 
             mState = R_retr();
-            
+
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
-            
+
             break;
-            
-// STOR        
+
+// STOR
           case FTP_S_STOR:
             rv = S_stor();
 
             if (NS_FAILED(rv))
                 mInternalError = rv;
-            
+
             MoveToNextState(FTP_R_STOR);
             break;
-            
+
           case FTP_R_STOR:
             mState = R_stor();
 
             if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FAILURE;
 
             break;
-            
-// PASV        
+
+// PASV
           case FTP_S_PASV:
             rv = S_pasv();
 
             if (NS_FAILED(rv))
                 mInternalError = NS_ERROR_FTP_PASV;
-            
+
             MoveToNextState(FTP_R_PASV);
             break;
-            
+
           case FTP_R_PASV:
             mState = R_pasv();
 
-            if (FTP_ERROR == mState) 
+            if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_PASV;
 
             break;
-            
-// PWD        
+
+// PWD
           case FTP_S_PWD:
             rv = S_pwd();
 
             if (NS_FAILED(rv))
                 mInternalError = NS_ERROR_FTP_PWD;
-            
+
             MoveToNextState(FTP_R_PWD);
             break;
-            
+
           case FTP_R_PWD:
             mState = R_pwd();
 
-            if (FTP_ERROR == mState) 
+            if (FTP_ERROR == mState)
                 mInternalError = NS_ERROR_FTP_PWD;
 
             break;
 
 // FEAT for RFC2640 support
           case FTP_S_FEAT:
             rv = S_feat();
 
@@ -684,17 +684,17 @@ nsFtpState::Process()
 
             // Don't want to overwrite a more explicit status code
             if (FTP_ERROR == mState && NS_SUCCEEDED(mInternalError))
                 mInternalError = NS_ERROR_FAILURE;
             break;
 
           default:
             ;
-            
+
         }
     }
 
     return rv;
 }
 
 ///////////////////////////////////
 // STATE METHODS
@@ -800,17 +800,17 @@ nsFtpState::S_pass() {
             } else {
                 // We need to default to a valid email address - bug 101027
                 // example.com is reserved (rfc2606), so use that
                 passwordStr.AppendLiteral("mozilla@example.com");
             }
         }
     } else {
         if (mPassword.IsEmpty() || mRetryPass) {
-            
+
             // No prompt for anonymous requests (bug #473371)
             if (mChannel->HasLoadFlag(nsIRequest::LOAD_ANONYMOUS))
                 return NS_ERROR_FAILURE;
 
             nsCOMPtr<nsIAuthPrompt2> prompter;
             NS_QueryAuthPrompt2(static_cast<nsIChannel*>(mChannel),
                                 getter_AddRefs(prompter));
             if (!prompter)
@@ -904,18 +904,18 @@ nsFtpState::R_pwd() {
 nsresult
 nsFtpState::S_syst() {
     return SendFTPCommand(NS_LITERAL_CSTRING("SYST" CRLF));
 }
 
 FTP_STATE
 nsFtpState::R_syst() {
     if (mResponseCode/100 == 2) {
-        if (( mResponseMsg.Find("L8") > -1) || 
-            ( mResponseMsg.Find("UNIX") > -1) || 
+        if (( mResponseMsg.Find("L8") > -1) ||
+            ( mResponseMsg.Find("UNIX") > -1) ||
             ( mResponseMsg.Find("BSD") > -1) ||
             ( mResponseMsg.Find("MACOS Peter's Server") > -1) ||
             ( mResponseMsg.Find("MACOS WebSTAR FTP") > -1) ||
             ( mResponseMsg.Find("MVS") > -1) ||
             ( mResponseMsg.Find("OS/390") > -1) ||
             ( mResponseMsg.Find("OS/400") > -1)) {
             mServerType = FTP_UNIX_TYPE;
         } else if (( mResponseMsg.Find("WIN32", true) > -1) ||
@@ -934,43 +934,43 @@ nsFtpState::R_syst() {
             if (!bundleService)
                 return FTP_ERROR;
 
             nsCOMPtr<nsIStringBundle> bundle;
             nsresult rv = bundleService->CreateBundle(NECKO_MSGS_URL,
                                                       getter_AddRefs(bundle));
             if (NS_FAILED(rv))
                 return FTP_ERROR;
-            
+
             char16_t* ucs2Response = ToNewUnicode(mResponseMsg);
             const char16_t *formatStrings[1] = { ucs2Response };
 
             nsXPIDLString formattedString;
             rv = bundle->FormatStringFromName(u"UnsupportedFTPServer", formatStrings, 1,
                                               getter_Copies(formattedString));
             free(ucs2Response);
             if (NS_FAILED(rv))
                 return FTP_ERROR;
 
             // TODO(darin): this code should not be dictating UI like this!
             nsCOMPtr<nsIPrompt> prompter;
             mChannel->GetCallback(prompter);
             if (prompter)
                 prompter->Alert(nullptr, formattedString.get());
-            
+
             // since we just alerted the user, clear mResponseMsg,
             // which is displayed to the user.
             mResponseMsg = "";
             return FTP_ERROR;
         }
-        
+
         return FTP_S_FEAT;
     }
 
-    if (mResponseCode/100 == 5) {   
+    if (mResponseCode/100 == 5) {
         // server didn't like the SYST command.  Probably (500, 501, 502)
         // No clue.  We will just hope it is UNIX type server.
         mServerType = FTP_UNIX_TYPE;
 
         return FTP_S_FEAT;
     }
     return FTP_ERROR;
 }
@@ -990,19 +990,19 @@ nsFtpState::R_acct() {
 
 nsresult
 nsFtpState::S_type() {
     return SendFTPCommand(NS_LITERAL_CSTRING("TYPE I" CRLF));
 }
 
 FTP_STATE
 nsFtpState::R_type() {
-    if (mResponseCode/100 != 2) 
+    if (mResponseCode/100 != 2)
         return FTP_ERROR;
-    
+
     return FTP_S_PASV;
 }
 
 nsresult
 nsFtpState::S_cwd() {
     // Don't cache the connection if PWD command failed
     if (mPwd.IsEmpty())
         mCacheConnection = false;
@@ -1020,20 +1020,20 @@ nsFtpState::S_cwd() {
     return SendFTPCommand(cwdStr);
 }
 
 FTP_STATE
 nsFtpState::R_cwd() {
     if (mResponseCode/100 == 2) {
         if (mAction == PUT)
             return FTP_S_STOR;
-        
+
         return FTP_S_LIST;
     }
-    
+
     return FTP_ERROR;
 }
 
 nsresult
 nsFtpState::S_size() {
     nsAutoCString sizeBuf(mPath);
     if (sizeBuf.IsEmpty() || sizeBuf.First() != '/')
         sizeBuf.Insert(mPwd,0);
@@ -1125,17 +1125,17 @@ nsFtpState::R_mdtm() {
     if (mSuppliedEntityID.IsEmpty() || entityID.Equals(mSuppliedEntityID))
         return FTP_S_REST;
 
     mInternalError = NS_ERROR_ENTITY_CHANGED;
     mResponseMsg.Truncate();
     return FTP_ERROR;
 }
 
-nsresult 
+nsresult
 nsFtpState::SetContentType()
 {
     // FTP directory URLs don't always end in a slash.  Make sure they do.
     // This check needs to be here rather than a more obvious place
     // (e.g. LIST command processing) so that it ensures the terminating
     // slash is appended for the new request case.
 
     if (!mPath.IsEmpty() && mPath.Last() != '/') {
@@ -1148,17 +1148,17 @@ nsFtpState::SetContentType()
     }
     return mChannel->SetContentType(
         NS_LITERAL_CSTRING(APPLICATION_HTTP_INDEX_FORMAT));
 }
 
 nsresult
 nsFtpState::S_list() {
     nsresult rv = SetContentType();
-    if (NS_FAILED(rv)) 
+    if (NS_FAILED(rv))
         // XXX Invalid cast of FTP_STATE to nsresult -- FTP_ERROR has
         // value < 0x80000000 and will pass NS_SUCCEEDED() (bug 778109)
         return (nsresult)FTP_ERROR;
 
     rv = mChannel->PushStreamConverter("text/ftp-dir",
                                        APPLICATION_HTTP_INDEX_FORMAT);
     if (NS_FAILED(rv)) {
         // clear mResponseMsg which is displayed to the user.
@@ -1219,34 +1219,34 @@ nsFtpState::R_retr() {
         return FTP_COMPLETE;
     }
 
     if (mResponseCode/100 == 1) {
         if (mDataStream && HasPendingCallback())
             mDataStream->AsyncWait(this, 0, 0, CallbackTarget());
         return FTP_READ_BUF;
     }
-    
-    // These error codes are related to problems with the connection.  
+
+    // These error codes are related to problems with the connection.
     // If we encounter any at this point, do not try CWD and abort.
     if (mResponseCode == 421 || mResponseCode == 425 || mResponseCode == 426)
         return FTP_ERROR;
 
     if (mResponseCode/100 == 5) {
         mRETRFailed = true;
         return FTP_S_PASV;
     }
 
     return FTP_S_CWD;
 }
 
 
 nsresult
 nsFtpState::S_rest() {
-    
+
     nsAutoCString restString("REST ");
     // The int64_t cast is needed to avoid ambiguity
     restString.AppendInt(int64_t(mChannel->StartPos()), 10);
     restString.Append(CRLF);
 
     return SendFTPCommand(restString);
 }
 
@@ -1256,33 +1256,33 @@ nsFtpState::R_rest() {
         // If REST fails, then we can't resume
         mChannel->SetEntityID(EmptyCString());
 
         mInternalError = NS_ERROR_NOT_RESUMABLE;
         mResponseMsg.Truncate();
 
         return FTP_ERROR;
     }
-   
-    return FTP_S_RETR; 
+
+    return FTP_S_RETR;
 }
 
 nsresult
 nsFtpState::S_stor() {
     NS_ENSURE_STATE(mChannel->UploadStream());
 
     NS_ASSERTION(mAction == PUT, "Wrong state to be here");
-    
+
     nsCOMPtr<nsIURL> url = do_QueryInterface(mChannel->URI());
     NS_ASSERTION(url, "I thought you were a nsStandardURL");
 
     nsAutoCString storStr;
     url->GetFilePath(storStr);
     NS_ASSERTION(!storStr.IsEmpty(), "What does it mean to store a empty path");
-        
+
     // kill the first slash since we want to be relative to CWD.
     if (storStr.First() == '/')
         storStr.Cut(0,1);
 
     if (mServerType == FTP_VMS_TYPE)
         ConvertFilespecToVMS(storStr);
 
     NS_UnescapeURL(storStr);
@@ -1359,17 +1359,17 @@ nsFtpState::S_pasv() {
     const char *string;
     if (mServerIsIPv6) {
         string = "EPSV" CRLF;
     } else {
         string = "PASV" CRLF;
     }
 
     return SendFTPCommand(nsDependentCString(string));
-    
+
 }
 
 FTP_STATE
 nsFtpState::R_pasv() {
     if (mResponseCode/100 != 2)
         return FTP_ERROR;
 
     nsresult rv;
@@ -1388,17 +1388,17 @@ nsFtpState::R_pasv() {
         // Where '|' can be any single character
         char delim;
         while (*ptr && *ptr != '(')
             ptr++;
         if (*ptr++ != '(')
             return FTP_ERROR;
         delim = *ptr++;
         if (!delim || *ptr++ != delim ||
-                      *ptr++ != delim || 
+                      *ptr++ != delim ||
                       *ptr < '0' || *ptr > '9')
             return FTP_ERROR;
         port = 0;
         do {
             port = port * 10 + *ptr++ - '0';
         } while (*ptr >= '0' && *ptr <= '9');
         if (*ptr++ != delim || *ptr != ')')
             return FTP_ERROR;
@@ -1409,32 +1409,32 @@ nsFtpState::R_pasv() {
         int32_t h0, h1, h2, h3, p0, p1;
 
         int32_t fields = 0;
         // First try with parens
         while (*ptr && *ptr != '(')
             ++ptr;
         if (*ptr) {
             ++ptr;
-            fields = PR_sscanf(ptr, 
+            fields = PR_sscanf(ptr,
                                "%ld,%ld,%ld,%ld,%ld,%ld",
                                &h0, &h1, &h2, &h3, &p0, &p1);
         }
         if (!*ptr || fields < 6) {
             // OK, lets try w/o parens
             ptr = response;
             while (*ptr && *ptr != ',')
                 ++ptr;
             if (*ptr) {
                 // backup to the start of the digits
                 do {
                     ptr--;
                 } while ((ptr >=response) && (*ptr >= '0') && (*ptr <= '9'));
                 ptr++; // get back onto the numbers
-                fields = PR_sscanf(ptr, 
+                fields = PR_sscanf(ptr,
                                    "%ld,%ld,%ld,%ld,%ld,%ld",
                                    &h0, &h1, &h2, &h3, &p0, &p1);
             }
         }
 
         NS_ASSERTION(fields == 6, "Can't parse PASV response");
         if (fields < 6)
             return FTP_ERROR;
@@ -1467,17 +1467,17 @@ nsFtpState::R_pasv() {
     }
 
     if (newDataConn) {
         // now we know where to connect our data channel
         nsCOMPtr<nsISocketTransportService> sts =
             do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID);
         if (!sts)
             return FTP_ERROR;
-       
+
         nsCOMPtr<nsISocketTransport> strans;
 
         nsAutoCString host;
         if (!IsIPAddrAny(&mServerAddress)) {
             char buf[kIPv6CStrBufSize];
             NetAddrToString(&mServerAddress, buf, sizeof(buf));
             host.Assign(buf);
         } else {
@@ -1495,19 +1495,19 @@ nsFtpState::R_pasv() {
         rv =  sts->CreateTransport(nullptr, 0, host,
                                    port, mChannel->ProxyInfo(),
                                    getter_AddRefs(strans)); // the data socket
         if (NS_FAILED(rv))
             return FTP_ERROR;
         mDataTransport = strans;
 
         strans->SetQoSBits(gFtpHandler->GetDataQoSBits());
-        
+
         LOG(("FTP:(%p) created DT (%s:%x)\n", this, host.get(), port));
-        
+
         // hook ourself up as a proxy for status notifications
         rv = mDataTransport->SetEventSink(this, GetCurrentThreadEventTarget());
         NS_ENSURE_SUCCESS(rv, FTP_ERROR);
 
         if (mAction == PUT) {
             NS_ASSERTION(!mRETRFailed, "Failed before uploading");
 
             // nsIUploadChannel requires the upload stream to support ReadSegments.
@@ -1520,27 +1520,27 @@ nsFtpState::R_pasv() {
 
             // perform the data copy on the socket transport thread.  we do this
             // because "output" is a socket output stream, so the result is that
             // all work will be done on the socket transport thread.
             nsCOMPtr<nsIEventTarget> stEventTarget =
                 do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID);
             if (!stEventTarget)
                 return FTP_ERROR;
-            
+
             nsCOMPtr<nsIAsyncStreamCopier> copier;
             rv = NS_NewAsyncStreamCopier(getter_AddRefs(copier),
                                          mChannel->UploadStream(),
                                          output,
                                          stEventTarget,
                                          true,   // upload stream is buffered
                                          false); // output is NOT buffered
             if (NS_FAILED(rv))
                 return FTP_ERROR;
-        
+
             rv = copier->AsyncCopy(this, nullptr);
             if (NS_FAILED(rv))
                 return FTP_ERROR;
 
             // hold a reference to the copier so we can cancel it if necessary.
             mUploadRequest = copier;
 
             // update the current working directory before sending the STOR
@@ -1636,24 +1636,24 @@ nsFtpState::Init(nsFtpChannel *channel)
         rv = url->GetFilePath(path);
     } else {
         rv = mChannel->URI()->GetPath(path);
     }
     if (NS_FAILED(rv))
         return rv;
 
     removeParamsFromPath(path);
-    
+
     // FTP parameters such as type=i are ignored
     if (url) {
         url->SetFilePath(path);
     } else {
         mChannel->URI()->SetPath(path);
     }
-        
+
     // Skip leading slash
     char *fwdPtr = path.BeginWriting();
     if (!fwdPtr)
         return NS_ERROR_OUT_OF_MEMORY;
     if (*fwdPtr == '/')
         fwdPtr++;
     if (*fwdPtr != '\0') {
         // now unescape it... %xx reduced inline to resulting character
@@ -1670,17 +1670,17 @@ nsFtpState::Init(nsFtpChannel *channel)
     nsAutoCString uname;
     rv = mChannel->URI()->GetUsername(uname);
     if (NS_FAILED(rv))
         return rv;
 
     if (!uname.IsEmpty() && !uname.EqualsLiteral("anonymous")) {
         mAnonymous = false;
         CopyUTF8toUTF16(NS_UnescapeURL(uname), mUsername);
-        
+
         // return an error if we find a CR or LF in the username
         if (uname.FindCharInSet(CRLF) >= 0)
             return NS_ERROR_MALFORMED_URI;
     }
 
     nsAutoCString password;
     rv = mChannel->URI()->GetPassword(password);
     if (NS_FAILED(rv))
@@ -1733,17 +1733,17 @@ nsFtpState::Connect()
 void
 nsFtpState::KillControlConnection()
 {
     mControlReadCarryOverBuf.Truncate(0);
 
     mAddressChecked = false;
     mServerIsIPv6 = false;
 
-    // if everything went okay, save the connection. 
+    // if everything went okay, save the connection.
     // FIX: need a better way to determine if we can cache the connections.
     //      there are some errors which do not mean that we need to kill the connection
     //      e.g. fnf.
 
     if (!mControlConnection)
         return;
 
     // kill the reference to ourselves in the control connection.
@@ -1752,31 +1752,31 @@ nsFtpState::KillControlConnection()
     if (NS_SUCCEEDED(mInternalError) &&
         NS_SUCCEEDED(mControlStatus) &&
         mControlConnection->IsAlive() &&
         mCacheConnection) {
 
         LOG_INFO(("FTP:(%p) caching CC(%p)", this, mControlConnection.get()));
 
         // Store connection persistent data
-        mControlConnection->mServerType = mServerType;           
+        mControlConnection->mServerType = mServerType;
         mControlConnection->mPassword = mPassword;
         mControlConnection->mPwd = mPwd;
         mControlConnection->mUseUTF8 = mUseUTF8;
-        
+
         nsresult rv = NS_OK;
         // Don't cache controlconnection if anonymous (bug #473371)
         if (!mChannel->HasLoadFlag(nsIRequest::LOAD_ANONYMOUS))
             rv = gFtpHandler->InsertConnection(mChannel->URI(),
                                                mControlConnection);
-        // Can't cache it?  Kill it then.  
+        // Can't cache it?  Kill it then.
         mControlConnection->Disconnect(rv);
     } else {
         mControlConnection->Disconnect(NS_BINDING_ABORTED);
-    }     
+    }
 
     mControlConnection = nullptr;
 }
 
 class nsFtpAsyncAlert : public Runnable
 {
 public:
   nsFtpAsyncAlert(nsIPrompt* aPrompter, nsString aResponseMsg)
@@ -1850,33 +1850,33 @@ nsFtpState::StopProcessing()
     OnTransportStatus(nullptr, NS_NET_STATUS_END_FTP_TRANSACTION, 0, 0);
 
     if (NS_FAILED(broadcastErrorCode))
         CloseWithStatus(broadcastErrorCode);
 
     return NS_OK;
 }
 
-nsresult 
+nsresult
 nsFtpState::SendFTPCommand(const nsACString& command)
 {
-    NS_ASSERTION(mControlConnection, "null control connection");        
-    
+    NS_ASSERTION(mControlConnection, "null control connection");
+
     // we don't want to log the password:
     nsAutoCString logcmd(command);
-    if (StringBeginsWith(command, NS_LITERAL_CSTRING("PASS "))) 
+    if (StringBeginsWith(command, NS_LITERAL_CSTRING("PASS ")))
         logcmd = "PASS xxxxx";
-    
+
     LOG(("FTP:(%p) writing \"%s\"\n", this, logcmd.get()));
 
     nsCOMPtr<nsIFTPEventSink> ftpSink;
     mChannel->GetFTPEventSink(ftpSink);
     if (ftpSink)
         ftpSink->OnFTPControlLog(false, logcmd.get());
-    
+
     if (mControlConnection)
         return mControlConnection->Write(command);
 
     return NS_ERROR_FAILURE;
 }
 
 // Convert a unix-style filespec to VMS format
 // /foo/fred/barney/file.txt -> foo:[fred.barney]file.txt
@@ -1914,17 +1914,17 @@ nsFtpState::ConvertFilespecToVMS(nsCStri
                 fileStringCopy = fileString;
                 fileString = Substring(fileStringCopy, 1,
                                        fileStringCopy.Length()-1);
             }
         } else {
             // Get another copy since the last one was written to.
             fileStringCopy = fileString;
             fileString.Truncate();
-            fileString.Append(nsCRT::strtok(fileStringCopy.BeginWriting(), 
+            fileString.Append(nsCRT::strtok(fileStringCopy.BeginWriting(),
                               "/", &nextToken));
             fileString.AppendLiteral(":[");
             if (ntok > 2) {
                 for (int i=2; i<ntok; i++) {
                     if (i > 2) fileString.Append('.');
                     fileString.Append(nsCRT::strtok(nextToken,
                                       "/", &nextToken));
                 }
--- a/netwerk/protocol/ftp/nsFtpConnectionThread.h
+++ b/netwerk/protocol/ftp/nsFtpConnectionThread.h
@@ -152,19 +152,19 @@ private:
 
         // ****** state machine vars
     FTP_STATE           mState;             // the current state
     FTP_STATE           mNextState;         // the next state
     bool                mKeepRunning;       // thread event loop boolean
     int32_t             mResponseCode;      // the last command response code
     nsCString           mResponseMsg;       // the last command response text
 
-        // ****** channel/transport/stream vars 
+        // ****** channel/transport/stream vars
     RefPtr<nsFtpControlConnection> mControlConnection;       // cacheable control connection (owns mCPipe)
-    bool                            mReceivedControlData;  
+    bool                            mReceivedControlData;
     bool                            mTryingCachedControl;     // retrying the password
     bool                            mRETRFailed;              // Did we already try a RETR and it failed?
     uint64_t                        mFileSize;
     nsCString                       mModTime;
 
         // ****** consumer vars
     RefPtr<nsFtpChannel>          mChannel;         // our owning FTP channel we pass through our events
     nsCOMPtr<nsIProxyInfo>          mProxyInfo;
--- a/netwerk/protocol/ftp/nsFtpControlConnection.cpp
+++ b/netwerk/protocol/ftp/nsFtpControlConnection.cpp
@@ -67,32 +67,32 @@ nsFtpControlConnection::OnInputStreamRea
 nsFtpControlConnection::nsFtpControlConnection(const nsACString& host,
                                                uint32_t port)
     : mServerType(0), mSessionId(gFtpHandler->GetSessionId())
     , mUseUTF8(false), mHost(host), mPort(port)
 {
     LOG_INFO(("FTP:CC created @%p", this));
 }
 
-nsFtpControlConnection::~nsFtpControlConnection() 
+nsFtpControlConnection::~nsFtpControlConnection()
 {
     LOG_INFO(("FTP:CC destroyed @%p", this));
 }
 
 bool
 nsFtpControlConnection::IsAlive()
 {
-    if (!mSocket) 
+    if (!mSocket)
         return false;
 
     bool isAlive = false;
     mSocket->IsAlive(&isAlive);
     return isAlive;
 }
-nsresult 
+nsresult
 nsFtpControlConnection::Connect(nsIProxyInfo* proxyInfo,
                                 nsITransportEventSink* eventSink)
 {
     if (mSocket)
         return NS_OK;
 
     // build our own
     nsresult rv;
@@ -123,17 +123,17 @@ nsFtpControlConnection::Connect(nsIProxy
     // open buffered, non-blocking/asynchronous input stream to socket.
     nsCOMPtr<nsIInputStream> inStream;
     rv = mSocket->OpenInputStream(0,
                                   nsIOService::gDefaultSegmentSize,
                                   nsIOService::gDefaultSegmentCount,
                                   getter_AddRefs(inStream));
     if (NS_SUCCEEDED(rv))
         mSocketInput = do_QueryInterface(inStream);
-    
+
     return rv;
 }
 
 nsresult
 nsFtpControlConnection::WaitData(nsFtpControlConnectionListener *listener)
 {
     LOG(("FTP:(%p) wait data [listener=%p]\n", this, listener));
 
@@ -145,46 +145,46 @@ nsFtpControlConnection::WaitData(nsFtpCo
     }
 
     NS_ENSURE_STATE(mSocketInput);
 
     mListener = listener;
     return mSocketInput->AsyncWait(this, 0, 0, GetCurrentThreadEventTarget());
 }
 
-nsresult 
+nsresult
 nsFtpControlConnection::Disconnect(nsresult status)
 {
     if (!mSocket)
         return NS_OK;  // already disconnected
-    
+
     LOG_INFO(("FTP:(%p) CC disconnecting (%" PRIx32 ")", this,
               static_cast<uint32_t>(status)));
 
     if (NS_FAILED(status)) {
         // break cyclic reference!
         mSocket->Close(status);
         mSocket = nullptr;
         mSocketInput->AsyncWait(nullptr, 0, 0, nullptr);  // clear any observer
         mSocketInput = nullptr;
         mSocketOutput = nullptr;
     }
 
     return NS_OK;
 }
 
-nsresult 
+nsresult
 nsFtpControlConnection::Write(const nsACString& command)
 {
     NS_ENSURE_STATE(mSocketOutput);
 
     uint32_t len = command.Length();
     uint32_t cnt;
     nsresult rv = mSocketOutput->Write(command.Data(), len, &cnt);
 
     if (NS_FAILED(rv))
         return rv;
 
     if (len != cnt)
         return NS_ERROR_FAILURE;
-    
+
     return NS_OK;
 }
--- a/netwerk/protocol/ftp/nsFtpProtocolHandler.cpp
+++ b/netwerk/protocol/ftp/nsFtpProtocolHandler.cpp
@@ -131,39 +131,39 @@ nsFtpProtocolHandler::Init()
         observerService->AddObserver(this,
                                      "net:clear-active-logins",
                                      true);
     }
 
     return NS_OK;
 }
 
-    
+
 //-----------------------------------------------------------------------------
 // nsIProtocolHandler methods:
 
 NS_IMETHODIMP
 nsFtpProtocolHandler::GetScheme(nsACString &result)
 {
     result.AssignLiteral("ftp");
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFtpProtocolHandler::GetDefaultPort(int32_t *result)
 {
-    *result = 21; 
+    *result = 21;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFtpProtocolHandler::GetProtocolFlags(uint32_t *result)
 {
     *result = URI_STD | ALLOWS_PROXY | ALLOWS_PROXY_HTTP |
-        URI_LOADABLE_BY_ANYONE; 
+        URI_LOADABLE_BY_ANYONE;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFtpProtocolHandler::NewURI(const nsACString &aSpec,
                              const char *aCharset,
                              nsIURI *aBaseURI,
                              nsIURI **result)
@@ -244,17 +244,17 @@ nsFtpProtocolHandler::NewProxiedChannel(
                                         nsIURI *proxyURI,
                                         nsIChannel* *result)
 {
   return NewProxiedChannel2(uri, proxyInfo, proxyResolveFlags,
                             proxyURI, nullptr /*loadinfo*/,
                             result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsFtpProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
     *_retval = (port == 21 || port == 22);
     return NS_OK;
 }
 
 // connection cache methods
 
@@ -273,28 +273,28 @@ nsFtpProtocolHandler::Timeout(nsITimer *
     delete s;
 }
 
 nsresult
 nsFtpProtocolHandler::RemoveConnection(nsIURI *aKey, nsFtpControlConnection* *_retval)
 {
     NS_ASSERTION(_retval, "null pointer");
     NS_ASSERTION(aKey, "null pointer");
-    
+
     *_retval = nullptr;
 
     nsAutoCString spec;
     aKey->GetPrePath(spec);
-    
+
     LOG(("FTP:removing connection for %s\n", spec.get()));
-   
+
     timerStruct* ts = nullptr;
     uint32_t i;
     bool found = false;
-    
+
     for (i=0;i<mRootConnectionList.Length();++i) {
         ts = mRootConnectionList[i];
         if (strcmp(spec.get(), ts->key) == 0) {
             found = true;
             mRootConnectionList.RemoveElementAt(i);
             break;
         }
     }
@@ -321,32 +321,32 @@ nsFtpProtocolHandler::InsertConnection(n
     nsAutoCString spec;
     aKey->GetPrePath(spec);
 
     LOG(("FTP:inserting connection for %s\n", spec.get()));
 
     nsresult rv;
     nsCOMPtr<nsITimer> timer = do_CreateInstance("@mozilla.org/timer;1", &rv);
     if (NS_FAILED(rv)) return rv;
-    
+
     timerStruct* ts = new timerStruct();
     if (!ts)
         return NS_ERROR_OUT_OF_MEMORY;
 
     rv = timer->InitWithNamedFuncCallback(
       nsFtpProtocolHandler::Timeout,
       ts,
       mIdleTimeout * 1000,
       nsITimer::TYPE_REPEATING_SLACK,
       "nsFtpProtocolHandler::InsertConnection");
     if (NS_FAILED(rv)) {
         delete ts;
         return rv;
     }
-    
+
     ts->key = ToNewCString(spec);
     if (!ts->key) {
         delete ts;
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     // ts->conn is a RefPtr
     ts->conn = aConn;
--- a/netwerk/protocol/ftp/nsFtpProtocolHandler.h
+++ b/netwerk/protocol/ftp/nsFtpProtocolHandler.h
@@ -19,19 +19,19 @@ class nsFtpProtocolHandler final : publi
                                  , public nsIObserver
                                  , public nsSupportsWeakReference
 {
 public:
     NS_DECL_THREADSAFE_ISUPPORTS
     NS_DECL_NSIPROTOCOLHANDLER
     NS_DECL_NSIPROXIEDPROTOCOLHANDLER
     NS_DECL_NSIOBSERVER
-    
+
     nsFtpProtocolHandler();
-    
+
     nsresult Init();
 
     // FTP Connection list access
     nsresult InsertConnection(nsIURI *aKey, nsFtpControlConnection *aConn);
     nsresult RemoveConnection(nsIURI *aKey, nsFtpControlConnection **aConn);
     uint32_t GetSessionId() { return mSessionId; }
 
     uint8_t GetDataQoSBits() { return mDataQoSBits; }
@@ -40,19 +40,19 @@ public:
 private:
     virtual ~nsFtpProtocolHandler();
 
     // Stuff for the timer callback function
     struct timerStruct {
         nsCOMPtr<nsITimer> timer;
         RefPtr<nsFtpControlConnection> conn;
         char *key;
-        
+
         timerStruct() : key(nullptr) {}
-        
+
         ~timerStruct() {
             if (timer)
                 timer->Cancel();
             if (key)
                 free(key);
             if (conn) {
                 conn->Disconnect(NS_ERROR_ABORT);
             }
--- a/netwerk/protocol/gio/nsGIOProtocolHandler.cpp
+++ b/netwerk/protocol/gio/nsGIOProtocolHandler.cpp
@@ -38,17 +38,17 @@
 
 // NSPR_LOG_MODULES=gio:5
 static mozilla::LazyLogModule sGIOLog("gio");
 #define LOG(args) MOZ_LOG(sGIOLog, mozilla::LogLevel::Debug, args)
 
 
 //-----------------------------------------------------------------------------
 static nsresult
-MapGIOResult(gint code) 
+MapGIOResult(gint code)
 {
   switch (code)
   {
      case G_IO_ERROR_NOT_FOUND:                  return NS_ERROR_FILE_NOT_FOUND; // shows error
      case G_IO_ERROR_INVALID_ARGUMENT:           return NS_ERROR_INVALID_ARG;
      case G_IO_ERROR_NOT_SUPPORTED:              return NS_ERROR_NOT_AVAILABLE;
      case G_IO_ERROR_NO_SPACE:                   return NS_ERROR_FILE_NO_DEVICE_SPACE;
      case G_IO_ERROR_READ_ONLY:                  return NS_ERROR_FILE_READ_ONLY;
@@ -180,17 +180,17 @@ class nsGIOInputStream final : public ns
     }
     void           SetMountResult(MountOperationResult result, gint error_code);
   private:
     nsresult       DoOpen();
     nsresult       DoRead(char *aBuf, uint32_t aCount, uint32_t *aCountRead);
     nsresult       SetContentTypeOfChannel(const char *contentType);
     nsresult       MountVolume();
     nsresult       DoOpenDirectory();
-    nsresult       DoOpenFile(GFileInfo *info);        
+    nsresult       DoOpenFile(GFileInfo *info);
     nsCString             mSpec;
     nsIChannel           *mChannel; // manually refcounted
     GFile                *mHandle;
     GFileInputStream     *mStream;
     uint64_t              mBytesRemaining;
     nsresult              mStatus;
     GList                *mDirList;
     GList                *mDirListPtr;
@@ -198,41 +198,41 @@ class nsGIOInputStream final : public ns
     uint32_t              mDirBufCursor;
     bool                  mDirOpen;
     MountOperationResult  mMountRes;
     mozilla::Monitor      mMonitorMountInProgress;
     gint                  mMountErrorCode;
 };
 /**
  * Set result of mount operation and notify monitor waiting for results.
- * This method is called in main thread as long as it is used only 
+ * This method is called in main thread as long as it is used only
  * in mount_enclosing_volume_finished function.
  * @param result Result of mount operation
- */ 
+ */
 void
 nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
 {
   mozilla::MonitorAutoLock mon(mMonitorMountInProgress);
   mMountRes = result;
   mMountErrorCode = error_code;
   mon.Notify();
 }
 
 /**
- * Start mount operation and wait in loop until it is finished. This method is 
+ * Start mount operation and wait in loop until it is finished. This method is
  * called from thread which is trying to read from location.
  */
 nsresult
 nsGIOInputStream::MountVolume() {
   GMountOperation* mount_op = g_mount_operation_new();
   g_signal_connect (mount_op, "ask-password",
                     G_CALLBACK (mount_operation_ask_password), mChannel);
   mMountRes = MOUNT_OPERATION_IN_PROGRESS;
   /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
-     Callback mount_enclosing_volume_finished is called in main thread 
+     Callback mount_enclosing_volume_finished is called in main thread
      (not this thread on which this method is called). */
   g_file_mount_enclosing_volume(mHandle,
                                 G_MOUNT_MOUNT_NONE,
                                 mount_op,
                                 nullptr,
                                 mount_enclosing_volume_finished,
                                 this);
   mozilla::MonitorAutoLock mon(mMonitorMountInProgress);
@@ -364,17 +364,17 @@ nsGIOInputStream::DoOpen()
                                       G_FILE_QUERY_INFO_NONE,
                                       nullptr,
                                       &error);
 
   if (error) {
     if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
       // location is not yet mounted, try to mount
       g_error_free(error);
-      if (NS_IsMainThread()) 
+      if (NS_IsMainThread())
         return NS_ERROR_NOT_CONNECTED;
       error = nullptr;
       rv = MountVolume();
       if (rv != NS_OK) {
         return rv;
       }
       // get info again
       info = g_file_query_info(mHandle,
@@ -422,17 +422,17 @@ nsGIOInputStream::DoOpen()
  *         error code otherwise
  */
 nsresult
 nsGIOInputStream::DoRead(char *aBuf, uint32_t aCount, uint32_t *aCountRead)
 {
   nsresult rv = NS_ERROR_NOT_AVAILABLE;
   if (mStream) {
     // file read
-    GError *error = nullptr;    
+    GError *error = nullptr;
     uint32_t bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
                                               aBuf,
                                               aCount,
                                               nullptr,
                                               &error);
     if (error) {
       rv = MapGIOResult(error);
       *aCountRead = 0;
@@ -465,17 +465,17 @@ nsGIOInputStream::DoRead(char *aBuf, uin
         rv = NS_BASE_STREAM_CLOSED;
       }
       else if (aCount)     // Do we need more data?
       {
         GFileInfo *info = (GFileInfo *) mDirListPtr->data;
 
         // Prune '.' and '..' from directory listing.
         const char * fname = g_file_info_get_name(info);
-        if (fname && fname[0] == '.' && 
+        if (fname && fname[0] == '.' &&
             (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
         {
           mDirListPtr = mDirListPtr->next;
           continue;
         }
 
         mDirBuf.AssignLiteral("201: ");
 
@@ -693,34 +693,34 @@ nsGIOInputStream::IsNonBlocking(bool *aR
 {
   *aResult = false;
   return NS_OK;
 }
 
 //-----------------------------------------------------------------------------
 
 /**
- * Called when finishing mount operation. Result of operation is set in 
- * nsGIOInputStream. This function is called in main thread as an async request 
+ * Called when finishing mount operation. Result of operation is set in
+ * nsGIOInputStream. This function is called in main thread as an async request
  * typically from dbus.
  * @param source_object GFile object which requested the mount
  * @param res result object
  * @param user_data pointer to nsGIOInputStream
  */
 static void
 mount_enclosing_volume_finished (GObject *source_object,
                                  GAsyncResult *res,
                                  gpointer user_data)
 {
   GError *error = nullptr;
 
   nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
-  
+
   g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
-  
+
   if (error) {
     g_warning("Mount failed: %s %d", error->message, error->code);
     istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
     g_error_free(error);
   } else {
     istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
   }
 }
--- a/netwerk/protocol/http/Http2Session.cpp
+++ b/netwerk/protocol/http/Http2Session.cpp
@@ -2215,17 +2215,17 @@ Http2Session::RecvAltSvc(Http2Session *s
   if (self->mInputFrameID & 1) {
     // pulled streams apply to the origin of the pulled stream.
     // If the origin field is filled in the frame, the frame should be ignored
     if (!origin.IsEmpty()) {
       LOG(("Http2Session %p Alt-Svc pulled stream has non empty origin\n", self));
       self->ResetDownstreamState();
       return NS_OK;
     }
-    
+
     if (NS_FAILED(self->SetInputFrameDataStream(self->mInputFrameID)) ||
         !self->mInputFrameDataStream->Transaction() ||
         !self->mInputFrameDataStream->Transaction()->RequestHead()) {
       LOG3(("Http2Session::RecvAltSvc %p got frame w/o origin on invalid stream", self));
       self->ResetDownstreamState();
       return NS_OK;
     }
 
--- a/netwerk/protocol/http/HttpChannelChild.cpp
+++ b/netwerk/protocol/http/HttpChannelChild.cpp
@@ -2282,17 +2282,17 @@ HttpChannelChild::AsyncOpen(nsIStreamLis
   if (tasktracer::IsStartLogging()) {
     nsCOMPtr<nsIURI> uri;
     GetURI(getter_AddRefs(uri));
     nsAutoCString urispec;
     uri->GetSpec(urispec);
     tasktracer::AddLabel("HttpChannelChild::AsyncOpen %s", urispec.get());
   }
 #endif
-  
+
 
   // Port checked in parent, but duplicate here so we can return with error
   // immediately
   nsresult rv;
   rv = NS_CheckPortSafety(mURI);
   if (NS_FAILED(rv))
     return rv;
 
@@ -2482,17 +2482,17 @@ HttpChannelChild::ContinueAsyncOpen()
   mRequestHead.Method(openArgs.requestMethod());
   openArgs.preferredAlternativeType() = mPreferredCachedAltDataType;
 
   AutoIPCStream autoStream(openArgs.uploadStream());
   if (mUploadStream) {
     autoStream.Serialize(mUploadStream, ContentChild::GetSingleton());
     autoStream.TakeOptionalValue();
   }
-  
+
   if (mResponseHead) {
     openArgs.synthesizedResponseHead() = *mResponseHead;
     openArgs.suspendAfterSynthesizeResponse() =
       mSuspendParentAfterSynthesizeResponse;
   } else {
     openArgs.synthesizedResponseHead() = mozilla::void_t();
     openArgs.suspendAfterSynthesizeResponse() = false;
   }
--- a/netwerk/protocol/http/nsHttpAuthManager.cpp
+++ b/netwerk/protocol/http/nsHttpAuthManager.cpp
@@ -34,17 +34,17 @@ nsresult nsHttpAuthManager::Init()
     nsCOMPtr<nsIProtocolHandler> handler;
     rv = ios->GetProtocolHandler("http", getter_AddRefs(handler));
     if (NS_FAILED(rv))
       return rv;
 
     // maybe someone is overriding our HTTP handler implementation?
     NS_ENSURE_TRUE(gHttpHandler, NS_ERROR_UNEXPECTED);
   }
-	
+
   mAuthCache = gHttpHandler->AuthCache(false);
   mPrivateAuthCache = gHttpHandler->AuthCache(true);
   NS_ENSURE_TRUE(mAuthCache, NS_ERROR_FAILURE);
   NS_ENSURE_TRUE(mPrivateAuthCache, NS_ERROR_FAILURE);
   return NS_OK;
 }
 
 nsHttpAuthManager::~nsHttpAuthManager()
--- a/netwerk/protocol/http/nsHttpConnectionMgr.cpp
+++ b/netwerk/protocol/http/nsHttpConnectionMgr.cpp
@@ -949,17 +949,17 @@ nsHttpConnectionMgr::DispatchPendingQ(ns
                  "[trans=%p, activeConn=%p]\n",
                  pendingTransInfo->mTransaction.get(), activeConn.get()));
             // Check if this transaction claimed a connection that is still
             // performing tls handshake with a NullHttpTransaction or it is between
             // finishing tls and reclaiming (When nullTrans finishes tls handshake,
             // httpConnection does not have a transaction any more and a
             // ReclaimConnection is dispatched). But if an error occurred the
             // connection will be closed, it will exist but CanReused will be
-            // false. 
+            // false.
             if (activeConn &&
                 ((activeConn->Transaction() &&
                   activeConn->Transaction()->IsNullTransaction()) ||
                  (!activeConn->Transaction() && activeConn->CanReuse()))) {
                 alreadyHalfOpenOrWaitingForTLS = true;
             } else {
                 // If we have not found the connection, remove the pointer.
                 pendingTransInfo->mActiveConn = nullptr;
--- a/netwerk/protocol/http/nsHttpNTLMAuth.cpp
+++ b/netwerk/protocol/http/nsHttpNTLMAuth.cpp
@@ -217,17 +217,17 @@ nsHttpNTLMAuth::ChallengeReceived(nsIHtt
                     return NS_ERROR_OUT_OF_MEMORY;
                 NS_ADDREF(*sessionState);
             }
 
             // Use our internal NTLM implementation. Note, this is less secure,
             // see bug 520607 for details.
             LOG(("Trying to fall back on internal ntlm auth.\n"));
             module = do_CreateInstance(NS_AUTH_MODULE_CONTRACTID_PREFIX "ntlm");
-	
+
             mUseNative = false;
 
             // Prompt user for domain, username, and password.
             *identityInvalid = true;
         }
 
         // If this fails, then it means that we cannot do NTLM auth.
         if (!module) {
@@ -346,18 +346,18 @@ nsHttpNTLMAuth::GenerateCredentials(nsIH
 
             nsCOMPtr<nsIX509Cert> cert;
             rv = status->GetServerCert(getter_AddRefs(cert));
             if (NS_FAILED(rv))
                 return rv;
 
             uint32_t length;
             uint8_t* certArray;
-            cert->GetRawDER(&length, &certArray);						
-			
+            cert->GetRawDER(&length, &certArray);
+
             // If there is a server certificate, we pass it along the
             // first time we call GetNextToken().
             inBufLen = length;
             inBuf = certArray;
         } else {
             // If there is no server certificate, we don't pass anything.
             inBufLen = 0;
             inBuf = nullptr;
--- a/netwerk/protocol/http/nsHttpTransaction.cpp
+++ b/netwerk/protocol/http/nsHttpTransaction.cpp
@@ -612,17 +612,17 @@ nsHttpTransaction::OnTransportStatus(nsI
             static_cast<uint32_t>(status),
             PR_Now(),
             progress,
             EmptyCString());
         if (NS_FAILED(rv)) {
             LOG3(("ObserveActivity failed (%08x)", static_cast<uint32_t>(rv)));
         }
     }
-    
+
     // nsHttpChannel synthesizes progress events in OnDataAvailable
     if (status == NS_NET_STATUS_RECEIVING_FROM)
         return;
 
     int64_t progressMax;
 
     if (status == NS_NET_STATUS_SENDING_TO) {
         // suppress progress when only writing request headers
--- a/netwerk/protocol/viewsource/nsViewSourceChannel.cpp
+++ b/netwerk/protocol/viewsource/nsViewSourceChannel.cpp
@@ -85,31 +85,31 @@ nsViewSourceChannel::Init(nsIURI* uri)
     mChannel->SetOriginalURI(mOriginalURI);
     mHttpChannel = do_QueryInterface(mChannel);
     mHttpChannelInternal = do_QueryInterface(mChannel);
     mCachingChannel = do_QueryInterface(mChannel);
     mCacheInfoChannel = do_QueryInterface(mChannel);
     mApplicationCacheChannel = do_QueryInterface(mChannel);
     mUploadChannel = do_QueryInterface(mChannel);
     mPostChannel = do_QueryInterface(mChannel);
-    
+
     return NS_OK;
 }
 
 nsresult
 nsViewSourceChannel::InitSrcdoc(nsIURI* aURI,
                                 nsIURI* aBaseURI,
                                 const nsAString &aSrcdoc,
                                 nsILoadInfo* aLoadInfo)
 {
     nsresult rv;
 
     nsCOMPtr<nsIURI> inStreamURI;
     // Need to strip view-source: from the URI.  Hardcoded to
-    // about:srcdoc as this is the only permissible URI for srcdoc 
+    // about:srcdoc as this is the only permissible URI for srcdoc
     // loads
     rv = NS_NewURI(getter_AddRefs(inStreamURI),
                    NS_LITERAL_STRING("about:srcdoc"));
     NS_ENSURE_SUCCESS(rv, rv);
 
     rv = NS_NewInputStreamChannelInternal(getter_AddRefs(mChannel),
                                           inStreamURI,
                                           aSrcdoc,
@@ -293,23 +293,23 @@ nsViewSourceChannel::AsyncOpen(nsIStream
 
     mListener = aListener;
 
     /*
      * We want to add ourselves to the loadgroup before opening
      * mChannel, since we want to make sure we're in the loadgroup
      * when mChannel finishes and fires OnStopRequest()
      */
-    
+
     nsCOMPtr<nsILoadGroup> loadGroup;
     mChannel->GetLoadGroup(getter_AddRefs(loadGroup));
     if (loadGroup)
         loadGroup->AddRequest(static_cast<nsIViewSourceChannel*>
                                          (this), nullptr);
-    
+
     nsresult rv = NS_OK;
     nsCOMPtr<nsILoadInfo> loadInfo = mChannel->GetLoadInfo();
     if (loadInfo && loadInfo->GetEnforceSecurity()) {
         rv = mChannel->AsyncOpen2(this);
     }
     else {
         rv = mChannel->AsyncOpen(this, ctxt);
     }
@@ -317,17 +317,17 @@ nsViewSourceChannel::AsyncOpen(nsIStream
     if (NS_FAILED(rv) && loadGroup)
         loadGroup->RemoveRequest(static_cast<nsIViewSourceChannel*>
                                             (this),
                                  nullptr, rv);
 
     if (NS_SUCCEEDED(rv)) {
         mOpened = true;
     }
-    
+
     return rv;
 }
 
 NS_IMETHODIMP
 nsViewSourceChannel::AsyncOpen2(nsIStreamListener *aListener)
 {
   nsCOMPtr<nsILoadInfo> loadInfo = mChannel->GetLoadInfo();
   if(!loadInfo) {
@@ -373,18 +373,18 @@ nsViewSourceChannel::GetLoadFlags(uint32
 
 NS_IMETHODIMP
 nsViewSourceChannel::SetLoadFlags(uint32_t aLoadFlags)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
 
     // "View source" always wants the currently cached content.
     // We also want to have _this_ channel, not mChannel to be the
-    // 'document' channel in the loadgroup. 
- 
+    // 'document' channel in the loadgroup.
+
     // These should actually be just LOAD_FROM_CACHE and LOAD_DOCUMENT_URI but
     // the win32 compiler fails to deal due to amiguous inheritance.
     // nsIChannel::LOAD_DOCUMENT_URI/nsIRequest::LOAD_FROM_CACHE also fails; the
     // Win32 compiler thinks that's supposed to be a method.
     mIsDocument = (aLoadFlags & ::nsIChannel::LOAD_DOCUMENT_URI) ? true : false;
 
     nsresult rv = mChannel->SetLoadFlags((aLoadFlags |
                                           ::nsIRequest::LOAD_FROM_CACHE) &
@@ -397,17 +397,17 @@ nsViewSourceChannel::SetLoadFlags(uint32
        rv = mHttpChannel->SetIsMainDocumentChannel(aLoadFlags & ::nsIChannel::LOAD_DOCUMENT_URI);
        MOZ_ASSERT(NS_SUCCEEDED(rv));
     }
 
     return NS_OK;
 }
 
 NS_IMETHODIMP
-nsViewSourceChannel::GetContentType(nsACString &aContentType) 
+nsViewSourceChannel::GetContentType(nsACString &aContentType)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
 
     aContentType.Truncate();
 
     if (mContentType.IsEmpty())
     {
         // Get the current content type
@@ -451,17 +451,17 @@ nsViewSourceChannel::SetContentType(cons
     // our channel's GetContentType() and it will get the original
     // content type, such as, text/html and everything is kosher from
     // then on.
 
     if (!mOpened) {
         // We do not take hints
         return NS_ERROR_NOT_AVAILABLE;
     }
-    
+
     mContentType = aContentType;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsViewSourceChannel::GetContentCharset(nsACString &aContentCharset)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
@@ -592,27 +592,27 @@ nsViewSourceChannel::GetNotificationCall
 NS_IMETHODIMP
 nsViewSourceChannel::SetNotificationCallbacks(nsIInterfaceRequestor* aNotificationCallbacks)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
 
     return mChannel->SetNotificationCallbacks(aNotificationCallbacks);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsViewSourceChannel::GetSecurityInfo(nsISupports * *aSecurityInfo)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
 
     return mChannel->GetSecurityInfo(aSecurityInfo);
 }
 
 // nsIViewSourceChannel methods
 NS_IMETHODIMP
-nsViewSourceChannel::GetOriginalContentType(nsACString &aContentType) 
+nsViewSourceChannel::GetOriginalContentType(nsACString &aContentType)
 {
     NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE);
 
     return mChannel->GetContentType(aContentType);
 }
 
 NS_IMETHODIMP
 nsViewSourceChannel::SetOriginalContentType(const nsACString &aContentType)
@@ -665,17 +665,17 @@ nsViewSourceChannel::OnStartRequest(nsIR
 {
     NS_ENSURE_TRUE(mListener, NS_ERROR_FAILURE);
     // The channel may have gotten redirected... Time to update our info
     mChannel = do_QueryInterface(aRequest);
     mHttpChannel = do_QueryInterface(aRequest);
     mCachingChannel = do_QueryInterface(aRequest);
     mCacheInfoChannel = do_QueryInterface(mChannel);
     mUploadChannel = do_QueryInterface(aRequest);
-    
+
     return mListener->OnStartRequest(static_cast<nsIViewSourceChannel*>
                                                 (this),
                                      aContext);
 }
 
 
 NS_IMETHODIMP
 nsViewSourceChannel::OnStopRequest(nsIRequest *aRequest, nsISupports* aContext,
@@ -699,17 +699,17 @@ nsViewSourceChannel::OnStopRequest(nsIRe
 }
 
 
 // nsIStreamListener methods
 NS_IMETHODIMP
 nsViewSourceChannel::OnDataAvailable(nsIRequest *aRequest, nsISupports* aContext,
                                      nsIInputStream *aInputStream,
                                      uint64_t aSourceOffset,
-                                     uint32_t aLength) 
+                                     uint32_t aLength)
 {
     NS_ENSURE_TRUE(mListener, NS_ERROR_FAILURE);
     return mListener->OnDataAvailable(static_cast<nsIViewSourceChannel*>
                                                  (this),
                                       aContext, aInputStream,
                                       aSourceOffset, aLength);
 }
 
--- a/netwerk/protocol/viewsource/nsViewSourceHandler.cpp
+++ b/netwerk/protocol/viewsource/nsViewSourceHandler.cpp
@@ -140,20 +140,20 @@ nsViewSourceHandler::NewSrcdocChannel(ns
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     *outChannel = static_cast<nsIViewSourceChannel*>(channel.forget().take());
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsViewSourceHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
-    // don't override anything.  
+    // don't override anything.
     *_retval = false;
     return NS_OK;
 }
 
 nsViewSourceHandler::nsViewSourceHandler()
 {
     gInstance = this;
 }
--- a/netwerk/protocol/websocket/BaseWebSocketChannel.cpp
+++ b/netwerk/protocol/websocket/BaseWebSocketChannel.cpp
@@ -285,17 +285,17 @@ BaseWebSocketChannel::GetDefaultPort(int
   return NS_OK;
 }
 
 NS_IMETHODIMP
 BaseWebSocketChannel::GetProtocolFlags(uint32_t *aProtocolFlags)
 {
   LOG(("BaseWebSocketChannel::GetProtocolFlags() %p\n", this));
 
-  *aProtocolFlags = URI_NORELATIVE | URI_NON_PERSISTABLE | ALLOWS_PROXY | 
+  *aProtocolFlags = URI_NORELATIVE | URI_NON_PERSISTABLE | ALLOWS_PROXY |
       ALLOWS_PROXY_HTTP | URI_DOES_NOT_RETURN_DATA | URI_DANGEROUS_TO_LOAD;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 BaseWebSocketChannel::NewURI(const nsACString & aSpec, const char *aOriginCharset,
                              nsIURI *aBaseURI, nsIURI **_retval)
 {
--- a/netwerk/protocol/websocket/WebSocketChannel.cpp
+++ b/netwerk/protocol/websocket/WebSocketChannel.cpp
@@ -1466,17 +1466,17 @@ WebSocketChannel::UpdateReadBuffer(uint8
 
   MOZ_ASSERT(IsPersistentFramePtr(), "update read buffer bad mFramePtr");
   MOZ_ASSERT(mFramePtr - accumulatedFragments >= mBuffer,
              "reserved FramePtr bad");
 
   if (mBuffered + count <= mBufferSize) {
     // append to existing buffer
     LOG(("WebSocketChannel: update read buffer absorbed %u\n", count));
-  } else if (mBuffered + count - 
+  } else if (mBuffered + count -
              (mFramePtr - accumulatedFragments - mBuffer) <= mBufferSize) {
     // make room in existing buffer by shifting unused data to start
     mBuffered -= (mFramePtr - mBuffer - accumulatedFragments);
     LOG(("WebSocketChannel: update read buffer shifted %u\n", mBuffered));
     ::memmove(mBuffer, mFramePtr - accumulatedFragments, mBuffered);
     mFramePtr = mBuffer + accumulatedFragments;
   } else {
     // existing buffer is not sufficient, extend it
@@ -1965,17 +1965,17 @@ WebSocketChannel::ApplyMask(uint32_t mas
   NetworkEndian::writeUint32(&mask, mask);
   for (; iData < end; iData++)
     *iData ^= mask;
   mask = NetworkEndian::readUint32(&mask);
   data = (uint8_t *)iData;
   len  = len % 4;
 
   // There maybe up to 3 trailing bytes that need to be dealt with
-  // individually 
+  // individually
 
   while (len) {
     *data ^= mask >> 24;
     mask = RotateLeft(mask, 8);
     data++;
     len--;
   }
 }
@@ -3018,17 +3018,17 @@ WebSocketChannel::StartPinging()
   }
 
   return NS_OK;
 }
 
 
 void
 WebSocketChannel::ReportConnectionTelemetry()
-{ 
+{
   // 3 bits are used. high bit is for wss, middle bit for failed,
   // and low bit for proxy..
   // 0 - 7 : ws-ok-plain, ws-ok-proxy, ws-failed-plain, ws-failed-proxy,
   //         wss-ok-plain, wss-ok-proxy, wss-failed-plain, wss-failed-proxy
 
   bool didProxy = false;
 
   nsCOMPtr<nsIProxyInfo> pi;
@@ -3038,17 +3038,17 @@ WebSocketChannel::ReportConnectionTeleme
   if (pi) {
     nsAutoCString proxyType;
     pi->GetType(proxyType);
     if (!proxyType.IsEmpty() &&
         !proxyType.EqualsLiteral("direct"))
       didProxy = true;
   }
 
-  uint8_t value = (mEncrypted ? (1 << 2) : 0) | 
+  uint8_t value = (mEncrypted ? (1 << 2) : 0) |
     (!mGotUpgradeOK ? (1 << 1) : 0) |
     (didProxy ? (1 << 0) : 0);
 
   LOG(("WebSocketChannel::ReportConnectionTelemetry() %p %d", this, value));
   Telemetry::Accumulate(Telemetry::WEBSOCKETS_HANDSHAKE_TYPE, value);
 }
 
 // nsIDNSListener
@@ -3365,17 +3365,17 @@ WebSocketChannel::AsyncOpen(nsIURI *aURI
   }
 
   nsCOMPtr<nsIPrefBranch> prefService;
   prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
 
   if (prefService) {
     int32_t intpref;
     bool boolpref;
-    rv = prefService->GetIntPref("network.websocket.max-message-size", 
+    rv = prefService->GetIntPref("network.websocket.max-message-size",
                                  &intpref);
     if (NS_SUCCEEDED(rv)) {
       mMaxMessageSize = clamped(intpref, 1024, INT32_MAX);
     }
     rv = prefService->GetIntPref("network.websocket.timeout.close", &intpref);
     if (NS_SUCCEEDED(rv)) {
       mCloseTimeout = clamped(intpref, 1, 1800) * 1000;
     }
@@ -3862,17 +3862,17 @@ WebSocketChannel::OnStartRequest(nsIRequ
 
   // If we sent a sub protocol header, verify the response matches.
   // If response contains protocol that was not in request, fail.
   // If response contained no protocol header, set to "" so the protocol
   // attribute of the WebSocket JS object reflects that
   if (!mProtocol.IsEmpty()) {
     nsAutoCString respProtocol;
     rv = mHttpChannel->GetResponseHeader(
-                         NS_LITERAL_CSTRING("Sec-WebSocket-Protocol"), 
+                         NS_LITERAL_CSTRING("Sec-WebSocket-Protocol"),
                          respProtocol);
     if (NS_SUCCEEDED(rv)) {
       rv = NS_ERROR_ILLEGAL_VALUE;
       val = mProtocol.BeginWriting();
       while ((token = nsCRT::strtok(val, ", \t", &val))) {
         if (PL_strcmp(token, respProtocol.get()) == 0) {
           rv = NS_OK;
           break;
--- a/netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp
+++ b/netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp
@@ -253,17 +253,17 @@ WyciwygChannelChild::OnDataAvailable(con
                                       data.Length(),
                                       NS_ASSIGNMENT_DEPEND);
   if (NS_FAILED(rv)) {
     Cancel(rv);
     return;
   }
 
   AutoEventEnqueuer ensureSerialDispatch(mEventQ);
-  
+
   rv = mListener->OnDataAvailable(this, mListenerContext,
                                   stringStream, offset, data.Length());
   if (NS_FAILED(rv))
     Cancel(rv);
 
   if (mProgressSink && NS_SUCCEEDED(rv)) {
     mProgressSink->OnProgress(this, nullptr, offset + data.Length(),
                               mContentLength);
@@ -340,23 +340,23 @@ WyciwygChannelChild::RecvCancelEarly(con
 {
   mEventQ->RunOrEnqueue(new WyciwygCancelEvent(this, statusCode));
   return IPC_OK();
 }
 
 void WyciwygChannelChild::CancelEarly(const nsresult& statusCode)
 {
   LOG(("WyciwygChannelChild::CancelEarly [this=%p]\n", this));
-  
+
   if (mCanceled)
     return;
 
   mCanceled = true;
   mStatus = statusCode;
-  
+
   mIsPending = false;
   if (mLoadGroup)
     mLoadGroup->RemoveRequest(this, nullptr, mStatus);
 
   if (mListener) {
     mListener->OnStartRequest(this, mListenerContext);
     mListener->OnStopRequest(this, mListenerContext, mStatus);
   }
--- a/netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp
+++ b/netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp
@@ -26,30 +26,30 @@
 #include "mozilla/Unused.h"
 #include "mozilla/BasePrincipal.h"
 #include "nsProxyRelease.h"
 #include "nsContentSecurityManager.h"
 #include "nsContentUtils.h"
 
 typedef mozilla::net::LoadContextInfo LoadContextInfo;
 
-// nsWyciwygChannel methods 
+// nsWyciwygChannel methods
 nsWyciwygChannel::nsWyciwygChannel()
   : mMode(NONE),
     mStatus(NS_OK),
     mIsPending(false),
     mNeedToWriteCharset(false),
     mCharsetSource(kCharsetUninitialized),
     mContentLength(-1),
     mLoadFlags(LOAD_NORMAL),
     mNeedToSetSecurityInfo(false)
 {
 }
 
-nsWyciwygChannel::~nsWyciwygChannel() 
+nsWyciwygChannel::~nsWyciwygChannel()
 {
   if (mLoadInfo) {
     NS_ReleaseOnMainThread(
       "nsWyciwygChannel::mLoadInfo", mLoadInfo.forget(), false);
   }
 }
 
 NS_IMPL_ISUPPORTS(nsWyciwygChannel,
@@ -76,17 +76,17 @@ nsWyciwygChannel::Init(nsIURI* uri)
 // nsIRequest methods:
 ///////////////////////////////////////////////////////////////////////////////
 
 NS_IMETHODIMP
 nsWyciwygChannel::GetName(nsACString &aName)
 {
   return mURI->GetSpec(aName);
 }
- 
+
 NS_IMETHODIMP
 nsWyciwygChannel::IsPending(bool *aIsPending)
 {
   *aIsPending = mIsPending;
   return NS_OK;
 }
 
 NS_IMETHODIMP
@@ -103,26 +103,26 @@ NS_IMETHODIMP
 nsWyciwygChannel::Cancel(nsresult status)
 {
   mStatus = status;
   if (mPump)
     mPump->Cancel(status);
   // else we're waiting for OnCacheEntryAvailable
   return NS_OK;
 }
- 
+
 NS_IMETHODIMP
 nsWyciwygChannel::Suspend()
 {
   if (mPump)
     mPump->Suspend();
   // XXX else, we'll ignore this ... and that's probably bad!
   return NS_OK;
 }
- 
+
 NS_IMETHODIMP
 nsWyciwygChannel::Resume()
 {
   if (mPump)
     mPump->Resume();
   // XXX else, we'll ignore this ... and that's probably bad!
   return NS_OK;
 }
@@ -251,17 +251,17 @@ nsWyciwygChannel::SetNotificationCallbac
                                 getter_AddRefs(mProgressSink));
 
   UpdatePrivateBrowsing();
   NS_GetOriginAttributes(this, mOriginAttributes);
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsWyciwygChannel::GetSecurityInfo(nsISupports * *aSecurityInfo)
 {
   NS_IF_ADDREF(*aSecurityInfo = mSecurityInfo);
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
@@ -574,17 +574,17 @@ nsWyciwygChannel::OnCacheEntryAvailable(
                                         nsresult aStatus)
 {
   LOG(("nsWyciwygChannel::OnCacheEntryAvailable [this=%p entry=%p "
        "new=%d status=%" PRIx32 "]\n", this, aCacheEntry, aNew, static_cast<uint32_t>(aStatus)));
 
   MOZ_RELEASE_ASSERT(!aNew, "New entry must not be returned when flag "
                             "OPEN_READONLY is used!");
 
-  // if the channel's already fired onStopRequest, 
+  // if the channel's already fired onStopRequest,
   // then we should ignore this event.
   if (!mIsPending)
     return NS_OK;
 
   if (NS_SUCCEEDED(mStatus)) {
     if (NS_SUCCEEDED(aStatus)) {
       MOZ_ASSERT(aCacheEntry);
       mCacheEntry = aCacheEntry;
--- a/netwerk/protocol/wyciwyg/nsWyciwygChannel.h
+++ b/netwerk/protocol/wyciwyg/nsWyciwygChannel.h
@@ -87,18 +87,18 @@ protected:
     nsCOMPtr<nsIInterfaceRequestor>     mCallbacks;
     nsCOMPtr<nsIProgressEventSink>      mProgressSink;
     nsCOMPtr<nsILoadGroup>              mLoadGroup;
     nsCOMPtr<nsIStreamListener>         mListener;
     nsCOMPtr<nsISupports>               mListenerContext;
 
     // reuse as much of this channel implementation as we can
     nsCOMPtr<nsIInputStreamPump>        mPump;
-    
-    // Cache related stuff    
+
+    // Cache related stuff
     nsCOMPtr<nsICacheEntry>             mCacheEntry;
     nsCOMPtr<nsIOutputStream>           mCacheOutputStream;
     nsCOMPtr<nsIInputStream>            mCacheInputStream;
 
     bool                                mNeedToSetSecurityInfo;
     nsCOMPtr<nsISupports>               mSecurityInfo;
 };
 
--- a/netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.cpp
+++ b/netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.cpp
@@ -16,22 +16,22 @@
 
 #include "mozilla/net/NeckoChild.h"
 
 using namespace mozilla::net;
 #include "mozilla/net/WyciwygChannelChild.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
-nsWyciwygProtocolHandler::nsWyciwygProtocolHandler() 
+nsWyciwygProtocolHandler::nsWyciwygProtocolHandler()
 {
   LOG(("Creating nsWyciwygProtocolHandler [this=%p].\n", this));
 }
 
-nsWyciwygProtocolHandler::~nsWyciwygProtocolHandler() 
+nsWyciwygProtocolHandler::~nsWyciwygProtocolHandler()
 {
   LOG(("Deleting nsWyciwygProtocolHandler [this=%p]\n", this));
 }
 
 NS_IMPL_ISUPPORTS(nsWyciwygProtocolHandler,
                   nsIProtocolHandler)
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -41,34 +41,34 @@ NS_IMPL_ISUPPORTS(nsWyciwygProtocolHandl
 NS_IMETHODIMP
 nsWyciwygProtocolHandler::GetScheme(nsACString &result)
 {
   result = "wyciwyg";
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsWyciwygProtocolHandler::GetDefaultPort(int32_t *result) 
+nsWyciwygProtocolHandler::GetDefaultPort(int32_t *result)
 {
   return NS_ERROR_NOT_AVAILABLE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsWyciwygProtocolHandler::AllowPort(int32_t port, const char *scheme, bool *_retval)
 {
-  // don't override anything.  
+  // don't override anything.
   *_retval = false;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsWyciwygProtocolHandler::NewURI(const nsACString &aSpec,
                                  const char *aCharset, // ignored
                                  nsIURI *aBaseURI,
-                                 nsIURI **result) 
+                                 nsIURI **result)
 {
   nsresult rv;
 
   nsCOMPtr<nsIURI> url = do_CreateInstance(NS_SIMPLEURI_CONTRACTID, &rv);
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = url->SetSpec(aSpec);
   NS_ENSURE_SUCCESS(rv, rv);
@@ -145,17 +145,17 @@ nsWyciwygProtocolHandler::NewChannel2(ns
 
 NS_IMETHODIMP
 nsWyciwygProtocolHandler::NewChannel(nsIURI* url, nsIChannel* *result)
 {
   return NewChannel2(url, nullptr, result);
 }
 
 NS_IMETHODIMP
-nsWyciwygProtocolHandler::GetProtocolFlags(uint32_t *result) 
+nsWyciwygProtocolHandler::GetProtocolFlags(uint32_t *result)
 {
   // Should this be an an nsINestedURI?  We don't really want random webpages
   // loading these URIs...
 
   // Note that using URI_INHERITS_SECURITY_CONTEXT here is OK -- untrusted code
   // is not allowed to link to wyciwyg URIs and users shouldn't be able to get
   // at them, and nsDocShell::InternalLoad forbids non-history loads of these
   // URIs.  And when loading from history we end up using the principal from
--- a/netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.h
+++ b/netwerk/protocol/wyciwyg/nsWyciwygProtocolHandler.h
@@ -3,17 +3,17 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsWyciwygProtocolHandler_h___
 #define nsWyciwygProtocolHandler_h___
 
 #include "nsIProtocolHandler.h"
-            
+
 class nsWyciwygProtocolHandler : public nsIProtocolHandler
 {
     virtual ~nsWyciwygProtocolHandler();
 
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSIPROTOCOLHANDLER
 
--- a/netwerk/sctp/datachannel/DataChannelProtocol.h
+++ b/netwerk/sctp/datachannel/DataChannelProtocol.h
@@ -39,17 +39,17 @@
 #define DATA_CHANNEL_FLAGS_WAITING_ACK          0x00000100
 
 #define INVALID_STREAM (0xFFFF)
 // max is 0xFFFF: Streams 0 to 0xFFFE = 0xFFFF streams
 #define MAX_NUM_STREAMS (2048)
 
 struct rtcweb_datachannel_open_request {
   uint8_t  msg_type; // DATA_CHANNEL_OPEN
-  uint8_t  channel_type;  
+  uint8_t  channel_type;
   int16_t  priority;
   uint32_t reliability_param;
   uint16_t label_length;
   uint16_t protocol_length;
   char     label[1]; // (and protocol) keep VC++ happy...
 } SCTP_PACKED;
 
 struct rtcweb_datachannel_ack {
--- a/netwerk/socket/nsSOCKSIOLayer.cpp
+++ b/netwerk/socket/nsSOCKSIOLayer.cpp
@@ -366,52 +366,52 @@ nsSOCKSSocketInfo::Init(int32_t version,
     mProxy           = proxy;
     mDestinationHost = host;
     mFlags           = flags;
     mProxy->GetUsername(mProxyUsername); // cache
 }
 
 NS_IMPL_ISUPPORTS(nsSOCKSSocketInfo, nsISOCKSSocketInfo, nsIDNSListener)
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::GetExternalProxyAddr(NetAddr * *aExternalProxyAddr)
 {
     memcpy(*aExternalProxyAddr, &mExternalProxyAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::SetExternalProxyAddr(NetAddr *aExternalProxyAddr)
 {
     memcpy(&mExternalProxyAddr, aExternalProxyAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::GetDestinationAddr(NetAddr * *aDestinationAddr)
 {
     memcpy(*aDestinationAddr, &mDestinationAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::SetDestinationAddr(NetAddr *aDestinationAddr)
 {
     memcpy(&mDestinationAddr, aDestinationAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::GetInternalProxyAddr(NetAddr * *aInternalProxyAddr)
 {
     memcpy(*aInternalProxyAddr, &mInternalProxyAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsSOCKSSocketInfo::SetInternalProxyAddr(NetAddr *aInternalProxyAddr)
 {
     memcpy(&mInternalProxyAddr, aInternalProxyAddr, sizeof(NetAddr));
     return NS_OK;
 }
 
 // There needs to be a means of distinguishing between connection errors
 // that the SOCKS server reports when it rejects a connection request, and
@@ -691,17 +691,17 @@ nsSOCKSSocketInfo::WriteV4ConnectRequest
         return PR_FAILURE;
     }
 
     NetAddr *addr = &mDestinationAddr;
     int32_t proxy_resolve;
 
     MOZ_ASSERT(mState == SOCKS_CONNECTING_TO_PROXY,
                "Invalid state!");
-    
+
     proxy_resolve = mFlags & nsISocketProvider::PROXY_RESOLVES_HOST;
 
     mDataLength = 0;
     mState = SOCKS4_WRITE_CONNECT_REQUEST;
 
     LOGDEBUG(("socks4: sending connection request (socks4a resolve? %s)",
              proxy_resolve? "yes" : "no"));
 
@@ -903,17 +903,17 @@ nsSOCKSSocketInfo::WriteV5ConnectRequest
 
     mDataLength = 0;
     mState = SOCKS5_WRITE_CONNECT_REQUEST;
 
     auto buf = Buffer<BUFFER_SIZE>(mData)
                .WriteUint8(0x05) // version -- 5
                .WriteUint8(0x01) // command -- connect
                .WriteUint8(0x00); // reserved
-   
+
     // We're writing a net port after the if, so we need a buffer allowing
     // to write that much.
     Buffer<sizeof(uint16_t)> buf2;
     // Add the address to the SOCKS 5 request. SOCKS 5 supports several
     // address types, so we pick the one that works best for us.
     if (proxy_resolve) {
         // Add the host name. Only a single byte is used to store the length,
         // so we must prevent long names from being used.
@@ -946,20 +946,20 @@ nsSOCKSSocketInfo::WriteV5ConnectRequest
 PRStatus
 nsSOCKSSocketInfo::ReadV5AddrTypeAndLength(uint8_t *type, uint32_t *len)
 {
     MOZ_ASSERT(mState == SOCKS5_READ_CONNECT_RESPONSE_TOP ||
                mState == SOCKS5_READ_CONNECT_RESPONSE_BOTTOM,
                "Invalid state!");
     MOZ_ASSERT(mDataLength >= 5,
                "SOCKS 5 connection reply must be at least 5 bytes!");
- 
-    // Seek to the address location 
+
+    // Seek to the address location
     mReadOffset = 3;
-   
+
     *type = ReadUint8();
 
     switch (*type) {
         case 0x01: // ipv4
             *len = 4 - 1;
             break;
         case 0x04: // ipv6
             *len = 16 - 1;
@@ -1015,17 +1015,17 @@ nsSOCKSSocketInfo::ReadV5ConnectResponse
                 break;
             case 0x04:
                 LOGERROR(("socks5: connect failed: 04, Host unreachable."));
                 c = PR_BAD_ADDRESS_ERROR;
                 break;
             case 0x05:
                 LOGERROR(("socks5: connect failed: 05, Connection refused."));
                 break;
-            case 0x06:  
+            case 0x06:
                 LOGERROR(("socks5: connect failed: 06, TTL expired."));
                 c = PR_CONNECT_TIMEOUT_ERROR;
                 break;
             case 0x07:
                 LOGERROR(("socks5: connect failed: "
                           "07, Command not supported."));
                 break;
             case 0x08:
@@ -1347,27 +1347,27 @@ nsSOCKSSocketInfo::WriteToSocket(PRFileD
     while (mDataIoPtr < end) {
         rc = PR_Write(fd, mDataIoPtr, end - mDataIoPtr);
         if (rc < 0) {
             if (PR_GetError() == PR_WOULD_BLOCK_ERROR) {
                 LOGDEBUG(("socks: WriteToSocket(), want write"));
             }
             break;
         }
-        
+
         mDataIoPtr += rc;
     }
 
     if (mDataIoPtr == end) {
         mDataIoPtr = nullptr;
         mDataLength = 0;
         mReadOffset = 0;
         return PR_SUCCESS;
     }
-    
+
     return PR_FAILURE;
 }
 
 static PRStatus
 nsSOCKSIOLayerConnect(PRFileDesc *fd, const PRNetAddr *addr, PRIntervalTime to)
 {
     PRStatus status;
     NetAddr dst;
@@ -1406,17 +1406,17 @@ nsSOCKSIOLayerConnect(PRFileDesc *fd, co
 static PRStatus
 nsSOCKSIOLayerConnectContinue(PRFileDesc *fd, int16_t oflags)
 {
     PRStatus status;
 
     nsSOCKSSocketInfo * info = (nsSOCKSSocketInfo*) fd->secret;
     if (info == nullptr) return PR_FAILURE;
 
-    do { 
+    do {
         status = info->DoHandshake(fd, oflags);
     } while (status == PR_SUCCESS && !info->IsConnected());
 
     return status;
 }
 
 static int16_t
 nsSOCKSIOLayerPoll(PRFileDesc *fd, int16_t in_flags, int16_t *out_flags)
@@ -1468,17 +1468,17 @@ nsSOCKSIOLayerBind(PRFileDesc *fd, const
     // TODO: implement SOCKS support for bind (very similar to connect)
     return fd->lower->methods->bind(fd->lower, addr);
 }
 
 static PRStatus
 nsSOCKSIOLayerGetName(PRFileDesc *fd, PRNetAddr *addr)
 {
     nsSOCKSSocketInfo * info = (nsSOCKSSocketInfo*) fd->secret;
-    
+
     if (info != nullptr && addr != nullptr) {
         NetAddr temp;
         NetAddr *tempPtr = &temp;
         if (info->GetExternalProxyAddr(&tempPtr) == NS_OK) {
             NetAddrToPRNetAddr(tempPtr, addr);
             return PR_SUCCESS;
         }
     }
@@ -1508,22 +1508,22 @@ nsSOCKSIOLayerListen(PRFileDesc *fd, int
 {
     // TODO: implement SOCKS support for listen
     return fd->lower->methods->listen(fd->lower, backlog);
 }
 
 // add SOCKS IO layer to an existing socket
 nsresult
 nsSOCKSIOLayerAddToSocket(int32_t family,
-                          const char *host, 
+                          const char *host,
                           int32_t port,
                           nsIProxyInfo *proxy,
                           int32_t socksVersion,
                           uint32_t flags,
-                          PRFileDesc *fd, 
+                          PRFileDesc *fd,
                           nsISupports** info)
 {
     NS_ENSURE_TRUE((socksVersion == 4) || (socksVersion == 5), NS_ERROR_NOT_INITIALIZED);
 
 
     if (firstTime)
     {
         //XXX hack until NSPR provides an official way to detect system IPv6
--- a/netwerk/socket/nsSOCKSIOLayer.h
+++ b/netwerk/socket/nsSOCKSIOLayer.h
@@ -7,19 +7,19 @@
 #ifndef nsSOCKSIOLayer_h__
 #define nsSOCKSIOLayer_h__
 
 #include "prio.h"
 #include "nscore.h"
 #include "nsIProxyInfo.h"
 
 nsresult nsSOCKSIOLayerAddToSocket(int32_t       family,
-                                   const char   *host, 
+                                   const char   *host,
                                    int32_t       port,
                                    nsIProxyInfo *proxyInfo,
                                    int32_t       socksVersion,
                                    uint32_t      flags,
-                                   PRFileDesc   *fd, 
+                                   PRFileDesc   *fd,
                                    nsISupports **info);
 
 bool IsHostLocalTarget(const nsACString& aHost);
 
 #endif /* nsSOCKSIOLayer_h__ */
--- a/netwerk/socket/nsSOCKSSocketProvider.cpp
+++ b/netwerk/socket/nsSOCKSSocketProvider.cpp
@@ -21,36 +21,36 @@ nsresult
 nsSOCKSSocketProvider::CreateV4(nsISupports *aOuter, REFNSIID aIID, void **aResult)
 {
     nsresult rv;
     nsCOMPtr<nsISocketProvider> inst =
             new nsSOCKSSocketProvider(NS_SOCKS_VERSION_4);
     if (!inst)
         rv = NS_ERROR_OUT_OF_MEMORY;
     else
-        rv = inst->QueryInterface(aIID, aResult); 
+        rv = inst->QueryInterface(aIID, aResult);
     return rv;
 }
 
 nsresult
 nsSOCKSSocketProvider::CreateV5(nsISupports *aOuter, REFNSIID aIID, void **aResult)
 {
     nsresult rv;
     nsCOMPtr<nsISocketProvider> inst =
             new nsSOCKSSocketProvider(NS_SOCKS_VERSION_5);
     if (!inst)
         rv = NS_ERROR_OUT_OF_MEMORY;
     else
-        rv = inst->QueryInterface(aIID, aResult); 
+        rv = inst->QueryInterface(aIID, aResult);
     return rv;
 }
 
 NS_IMETHODIMP
 nsSOCKSSocketProvider::NewSocket(int32_t family,
-                                 const char *host, 
+                                 const char *host,
                                  int32_t port,
                                  nsIProxyInfo *proxy,
                                  const OriginAttributes &originAttributes,
                                  uint32_t flags,
                                  PRFileDesc **result,
                                  nsISupports **socksInfo)
 {
     PRFileDesc *sock;
@@ -65,22 +65,22 @@ nsSOCKSSocketProvider::NewSocket(int32_t
     {
         sock = PR_OpenTCPSocket(family);
         if (!sock) {
             return NS_ERROR_OUT_OF_MEMORY;
         }
     }
 
     nsresult rv = nsSOCKSIOLayerAddToSocket(family,
-                                            host, 
+                                            host,
                                             port,
                                             proxy,
                                             mVersion,
                                             flags,
-                                            sock, 
+                                            sock,
                                             socksInfo);
     if (NS_SUCCEEDED(rv)) {
         *result = sock;
         return NS_OK;
     }
 
     return NS_ERROR_SOCKET_CREATE_FAILED;
 }
@@ -91,20 +91,20 @@ nsSOCKSSocketProvider::AddToSocket(int32
                                    int32_t port,
                                    nsIProxyInfo *proxy,
                                    const OriginAttributes &originAttributes,
                                    uint32_t flags,
                                    PRFileDesc *sock,
                                    nsISupports **socksInfo)
 {
     nsresult rv = nsSOCKSIOLayerAddToSocket(family,
-                                            host, 
+                                            host,
                                             port,
                                             proxy,
                                             mVersion,
                                             flags,
-                                            sock, 
+                                            sock,
                                             socksInfo);
-    
+
     if (NS_FAILED(rv))
         rv = NS_ERROR_SOCKET_CREATE_FAILED;
     return rv;
 }
--- a/netwerk/socket/nsSocketProviderService.cpp
+++ b/netwerk/socket/nsSocketProviderService.cpp
@@ -32,14 +32,14 @@ nsSocketProviderService::GetSocketProvid
                                            nsISocketProvider **result)
 {
   nsresult rv;
   nsAutoCString contractID(
           NS_LITERAL_CSTRING(NS_NETWORK_SOCKET_CONTRACTID_PREFIX) +
           nsDependentCString(type));
 
   rv = CallGetService(contractID.get(), result);
-  if (NS_FAILED(rv)) 
+  if (NS_FAILED(rv))
       rv = NS_ERROR_UNKNOWN_SOCKET_TYPE;
   return rv;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
--- a/netwerk/socket/nsUDPSocketProvider.cpp
+++ b/netwerk/socket/nsUDPSocketProvider.cpp
@@ -9,37 +9,37 @@
 using mozilla::OriginAttributes;
 
 NS_IMPL_ISUPPORTS(nsUDPSocketProvider, nsISocketProvider)
 
 nsUDPSocketProvider::~nsUDPSocketProvider()
 {
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsUDPSocketProvider::NewSocket(int32_t aFamily,
-                               const char *aHost, 
-                               int32_t aPort, 
+                               const char *aHost,
+                               int32_t aPort,
                                nsIProxyInfo *aProxy,
                                const OriginAttributes &originAttributes,
                                uint32_t aFlags,
-                               PRFileDesc * *aFileDesc, 
+                               PRFileDesc * *aFileDesc,
                                nsISupports **aSecurityInfo)
 {
     NS_ENSURE_ARG_POINTER(aFileDesc);
-  
+
     PRFileDesc* udpFD = PR_OpenUDPSocket(aFamily);
     if (!udpFD)
         return NS_ERROR_FAILURE;
-  
+
     *aFileDesc = udpFD;
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsUDPSocketProvider::AddToSocket(int32_t aFamily,
                                  const char *aHost,
                                  int32_t aPort,
                                  nsIProxyInfo *aProxy,
                                  const OriginAttributes &originAttributes,
                                  uint32_t aFlags,
                                  struct PRFileDesc * aFileDesc,
                                  nsISupports **aSecurityInfo)
--- a/netwerk/streamconv/converters/ParseFTPList.cpp
+++ b/netwerk/streamconv/converters/ParseFTPList.cpp
@@ -37,17 +37,17 @@ int ParseFTPList(const char *line, struc
 
   /* carry buffer is only valid from one line to the next */
   carry_buf_len = state->carry_buf_len;
   state->carry_buf_len = 0;
 
   /* strip leading whitespace */
   while (*line == ' ' || *line == '\t')
     line++;
-    
+
   /* line is terminated at first '\0' or '\n' */
   p = line;
   while (*p && *p != '\n')
     p++;
   unsigned int linelen = p - line;
 
   if (linelen > 0 && *p == '\n' && *(p-1) == '\r')
     linelen--;
@@ -71,32 +71,32 @@ int ParseFTPList(const char *line, struc
       tokens[0] = state->carry_buf;
       toklen[0] = carry_buf_len;
       numtoks++;
     }
 
     pos = 0;
     while (pos < linelen && numtoks < (sizeof(tokens)/sizeof(tokens[0])) )
     {
-      while (pos < linelen && 
+      while (pos < linelen &&
             (line[pos] == ' ' || line[pos] == '\t' || line[pos] == '\r'))
         pos++;
       if (pos < linelen)
       {
         tokens[numtoks] = &line[pos];
-        while (pos < linelen && 
+        while (pos < linelen &&
            (line[pos] != ' ' && line[pos] != '\t' && line[pos] != '\r'))
           pos++;
         if (tokens[numtoks] != &line[pos])
         {
           toklen[numtoks] = (&line[pos] - tokens[numtoks]);
-          numtoks++;  
+          numtoks++;
         }
       }
-    }    
+    }
 
     if (!numtoks)
       return ParsingFailed(state);
 
     linelen_sans_wsp = &(tokens[numtoks-1][toklen[numtoks-1]]) - tokens[0];
     if (numtoks == (sizeof(tokens)/sizeof(tokens[0])) )
     {
       pos = linelen;
@@ -112,17 +112,17 @@ int ParseFTPList(const char *line, struc
     if (!lstyle && (!state->lstyle || state->lstyle == 'E'))
     {
       if (*line == '+' && linelen > 4 && numtoks >= 2)
       {
         pos = 1;
         while (pos < (linelen-1))
         {
           p = &line[pos++];
-          if (*p == '/') 
+          if (*p == '/')
             result->fe_type = 'd'; /* its a dir */
           else if (*p == 'r')
             result->fe_type = 'f'; /* its a file */
           else if (*p == 'm')
           {
             if (isdigit(line[pos]))
             {
               while (pos < linelen && isdigit(line[pos]))
@@ -187,32 +187,32 @@ int ParseFTPList(const char *line, struc
 
     /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
 
 #if defined(SUPPORT_VMS)
     if (!lstyle && (!state->lstyle || state->lstyle == 'V'))
     {                          /* try VMS Multinet/UCX/CMS server */
       /*
        * Legal characters in a VMS file/dir spec are [A-Z0-9$.-_~].
-       * '$' cannot begin a filename and `-' cannot be used as the first 
-       * or last character. '.' is only valid as a directory separator 
-       * and <file>.<type> separator. A canonical filename spec might look 
+       * '$' cannot begin a filename and `-' cannot be used as the first
+       * or last character. '.' is only valid as a directory separator
+       * and <file>.<type> separator. A canonical filename spec might look
        * like this: DISK$VOL:[DIR1.DIR2.DIR3]FILE.TYPE;123
        * All VMS FTP servers LIST in uppercase.
        *
        * We need to be picky about this in order to support
        * multi-line listings correctly.
       */
       if (!state->parsed_one &&
           (numtoks == 1 || (numtoks == 2 && toklen[0] == 9 &&
                             memcmp(tokens[0], "Directory", 9)==0 )))
       {
-        /* If no dirstyle has been detected yet, and this line is a 
+        /* If no dirstyle has been detected yet, and this line is a
          * VMS list's dirname, then turn on VMS dirstyle.
-         * eg "ACA:[ANONYMOUS]", "DISK$FTP:[ANONYMOUS]", "SYS$ANONFTP:" 
+         * eg "ACA:[ANONYMOUS]", "DISK$FTP:[ANONYMOUS]", "SYS$ANONFTP:"
         */
         p = tokens[0];
         pos = toklen[0];
         if (numtoks == 2)
         {
           p = tokens[1];
           pos = toklen[1];
         }
@@ -223,17 +223,17 @@ int ParseFTPList(const char *line, struc
           {
             pos--;
             if (p[pos] == '-' || p[pos] == '$')
             {
               if (pos == 0 || p[pos-1] == '[' || p[pos-1] == '.' ||
                   (p[pos] == '-' && (p[pos+1] == ']' || p[pos+1] == '.')))
                 break;
             }
-            else if (p[pos] != '.' && p[pos] != '~' && 
+            else if (p[pos] != '.' && p[pos] != '~' &&
                      !isdigit(p[pos]) && !isalpha(p[pos]))
               break;
             else if (isalpha(p[pos]) && p[pos] != toupper(p[pos]))
               break;
           }
           if (pos > 0)
           {
             pos--;
@@ -248,22 +248,22 @@ int ParseFTPList(const char *line, struc
             pos--;
             if (p[pos] != '$' && p[pos] != '_' && p[pos] != '-' &&
                 p[pos] != '~' && !isdigit(p[pos]) && !isalpha(p[pos]))
               break;
             else if (isalpha(p[pos]) && p[pos] != toupper(p[pos]))
               break;
           }
           if (pos == 0)
-          {  
+          {
             state->lstyle = 'V';
             return '?'; /* its junk */
           }
         }
-        /* fallthrough */ 
+        /* fallthrough */
       }
       else if ((tokens[0][toklen[0]-1]) != ';')
       {
         if (numtoks == 1 && (state->lstyle == 'V' && !carry_buf_len))
           lstyle = 'V';
         else if (numtoks < 4)
           ;
         else if (toklen[1] >= 10 && memcmp(tokens[1], "%RMS-E-PRV", 10) == 0)
@@ -272,64 +272,64 @@ int ParseFTPList(const char *line, struc
                   memcmp(tokens[1], "insufficient privilege", 22) == 0)
           lstyle = 'V';
         else if (numtoks != 4 && numtoks != 6)
           ;
         else if (numtoks == 6 && (
                  toklen[5] < 4 || *tokens[5] != '(' ||        /* perms */
                            (tokens[5][toklen[5]-1]) != ')'  ))
           ;
-        else if (  (toklen[2] == 10 || toklen[2] == 11) &&      
+        else if (  (toklen[2] == 10 || toklen[2] == 11) &&
                         (tokens[2][toklen[2]-5]) == '-' &&
                         (tokens[2][toklen[2]-9]) == '-' &&
         (((toklen[3]==4 || toklen[3]==5 || toklen[3]==7 || toklen[3]==8) &&
                         (tokens[3][toklen[3]-3]) == ':' ) ||
          ((toklen[3]==10 || toklen[3]==11 ) &&
                         (tokens[3][toklen[3]-3]) == '.' )
         ) &&  /* time in [H]H:MM[:SS[.CC]] format */
                                     isdigit(*tokens[1]) && /* size */
                                     isdigit(*tokens[2]) && /* date */
                                     isdigit(*tokens[3])    /* time */
                 )
         {
           lstyle = 'V';
         }
         if (lstyle == 'V')
         {
-          /* 
+          /*
           * MultiNet FTP:
           *   LOGIN.COM;2                 1   4-NOV-1994 04:09 [ANONYMOUS] (RWE,RWE,,)
           *   PUB.DIR;1                   1  27-JAN-1994 14:46 [ANONYMOUS] (RWE,RWE,RE,RWE)
           *   README.FTP;1        %RMS-E-PRV, insufficient privilege or file protection violation
           *   ROUSSOS.DIR;1               1  27-JAN-1994 14:48 [CS,ROUSSOS] (RWE,RWE,RE,R)
           *   S67-50903.JPG;1           328  22-SEP-1998 16:19 [ANONYMOUS] (RWED,RWED,,)
-          * UCX FTP: 
+          * UCX FTP:
           *   CII-MANUAL.TEX;1  213/216  29-JAN-1996 03:33:12  [ANONYMOU,ANONYMOUS] (RWED,RWED,,)
           * CMU/VMS-IP FTP
           *   [VMSSERV.FILES]ALARM.DIR;1 1/3 5-MAR-1993 18:09
           * TCPware FTP
           *   FOO.BAR;1 4 5-MAR-1993 18:09:01.12
           * Long filename example:
           *   THIS-IS-A-LONG-VMS-FILENAME.AND-THIS-IS-A-LONG-VMS-FILETYPE\r\n
           *                    213[/nnn]  29-JAN-1996 03:33[:nn]  [ANONYMOU,ANONYMOUS] (RWED,RWED,,)
           */
           tokmarker = 0;
           p = tokens[0];
           pos = 0;
           if (*p == '[' && toklen[0] >= 4) /* CMU style */
           {
-            if (p[1] != ']') 
+            if (p[1] != ']')
             {
               p++;
               pos++;
             }
             while (lstyle && pos < toklen[0] && *p != ']')
             {
               if (*p != '$' && *p != '.' && *p != '_' && *p != '-' &&
-                  *p != '~' && !isdigit(*p) && !isalpha(*p))              
+                  *p != '~' && !isdigit(*p) && !isalpha(*p))
                 lstyle = 0;
               pos++;
               p++;
             }
             if (lstyle && pos < (toklen[0]-1))
             {
               /* ']' was found and there is at least one character after it */
               NS_ASSERTION(*p == ']', "unexpected state");
@@ -365,18 +365,18 @@ int ParseFTPList(const char *line, struc
           pos -= tokmarker;      /* => fnlength sans "[DIR1.DIR2.etc]" */
           p = &(tokens[0][tokmarker]); /* offset of basename */
 
           if (!lstyle || pos == 0 || pos > 80) /* VMS filenames can't be longer than that */
           {
             lstyle = 0;
           }
           else if (numtoks == 1)
-          { 
-            /* if VMS has been detected and there is only one token and that 
+          {
+            /* if VMS has been detected and there is only one token and that
              * token was a VMS filename then this is a multiline VMS LIST entry.
             */
             if (pos >= (sizeof(state->carry_buf)-1))
               pos = (sizeof(state->carry_buf)-1); /* shouldn't happen */
             memcpy( state->carry_buf, p, pos );
             state->carry_buf_len = pos;
             return '?'; /* tell caller to treat as junk */
           }
@@ -393,17 +393,17 @@ int ParseFTPList(const char *line, struc
               {
                 p = &(tokens[5][pos]);
                 if (*p!='R' && *p!='W' && *p!='E' && *p!='D' && *p!=',')
                   lstyle = 0;
               }
             }
           }
         } /* passed initial tests */
-      } /* else if ((tokens[0][toklen[0]-1]) != ';') */    
+      } /* else if ((tokens[0][toklen[0]-1]) != ';') */
 
       if (lstyle == 'V')
       {
         state->parsed_one = 1;
         state->lstyle = lstyle;
 
         if (isdigit(*tokens[1]))  /* not permission denied etc */
         {
@@ -418,17 +418,17 @@ int ParseFTPList(const char *line, struc
               pos--;
             }
             toklen[0] = --pos;
             tokens[0] = ++p;
           }
           pos = 0;
           while (pos < toklen[0] && (tokens[0][pos]) != ';')
             pos++;
-       
+
           result->fe_cinfs = 1;
           result->fe_type = 'f';
           result->fe_fname = tokens[0];
           result->fe_fnlen = pos;
 
           if (pos > 4)
           {
             p = &(tokens[0][pos-4]);
@@ -444,70 +444,70 @@ int ParseFTPList(const char *line, struc
             /* #### or used/allocated form. If used/allocated form, then
              * 'used' is the size in bytes if and only if 'used'<=allocated.
              * If 'used' is size in bytes then it can be > 2^32
              * If 'used' is not size in bytes then it is size in blocks.
             */
             pos = 0;
             while (pos < toklen[1] && (tokens[1][pos]) != '/')
               pos++;
-            
+
 /*
- * I've never seen size come back in bytes, its always in blocks, and 
+ * I've never seen size come back in bytes, its always in blocks, and
  * the following test fails. So, always perform the "size in blocks".
  * I'm leaving the "size in bytes" code if'd out in case we ever need
  * to re-instate it.
 */
 #if 0
             if (pos < toklen[1] && ( (pos<<1) > (toklen[1]-1) ||
-                 (strtoul(tokens[1], (char **)0, 10) > 
+                 (strtoul(tokens[1], (char **)0, 10) >
                   strtoul(tokens[1]+pos+1, (char **)0, 10))        ))
             {                                   /* size is in bytes */
               if (pos > (sizeof(result->fe_size)-1))
                 pos = sizeof(result->fe_size)-1;
               memcpy( result->fe_size, tokens[1], pos );
               result->fe_size[pos] = '\0';
             }
             else /* size is in blocks */
 #endif
             {
-              /* size requires multiplication by blocksize. 
+              /* size requires multiplication by blocksize.
                *
                * We could assume blocksize is 512 (like Lynx does) and
-               * shift by 9, but that might not be right. Even if it 
-               * were, doing that wouldn't reflect what the file's 
+               * shift by 9, but that might not be right. Even if it
+               * were, doing that wouldn't reflect what the file's
                * real size was. The sanest thing to do is not use the
                * LISTing's filesize, so we won't (like ftpmirror).
                *
                * ulltoa(((unsigned long long)fsz)<<9, result->fe_size, 10);
                *
                * A block is always 512 bytes on OpenVMS, compute size.
                * So its rounded up to the next block, so what, its better
                * than not showing the size at all.
                * A block is always 512 bytes on OpenVMS, compute size.
                * So its rounded up to the next block, so what, its better
                * than not showing the size at all.
               */
               uint64_t fsz = uint64_t(strtoul(tokens[1], (char **)0, 10) * 512);
               SprintfLiteral(result->fe_size, "%" PRId64, fsz);
-            } 
+            }
 
           } /* if (result->fe_type != 'd') */
 
           p = tokens[2] + 2;
           if (*p == '-')
             p++;
           tbuf[0] = p[0];
           tbuf[1] = tolower(p[1]);
           tbuf[2] = tolower(p[2]);
           month_num = 0;
           for (pos = 0; pos < (12*3); pos+=3)
           {
-            if (tbuf[0] == month_names[pos+0] && 
-                tbuf[1] == month_names[pos+1] && 
+            if (tbuf[0] == month_names[pos+0] &&
+                tbuf[1] == month_names[pos+1] &&
                 tbuf[2] == month_names[pos+2])
               break;
             month_num++;
           }
           if (month_num >= 12)
             month_num = 0;
           result->fe_time.tm_month = month_num;
           result->fe_time.tm_mday = atoi(tokens[2]);
@@ -515,17 +515,17 @@ int ParseFTPList(const char *line, struc
 
           p = tokens[3] + 2;
           if (*p == ':')
             p++;
           if (p[2] == ':')
             result->fe_time.tm_sec = atoi(p+3);
           result->fe_time.tm_hour = atoi(tokens[3]);
           result->fe_time.tm_min  = atoi(p);
-      
+
           return result->fe_type;
 
         } /* if (isdigit(*tokens[1])) */
 
         return '?'; /* junk */
 
       } /* if (lstyle == 'V') */
     } /* if (!lstyle && (!state->lstyle || state->lstyle == 'V')) */
@@ -567,18 +567,18 @@ int ParseFTPList(const char *line, struc
           if ((toklen[pos] == 1 && (*p == 'F' || *p == 'V')) ||
               (toklen[pos] == 3 && *p == 'D' && p[1] == 'I' && p[2] == 'R'))
           {
             if (toklen[pos+5] == 8 && (tokens[pos+5][2]) == ':' &&
                                       (tokens[pos+5][5]) == ':'   )
             {
               p = tokens[pos+4];
               if ((toklen[pos+4] == 10 && p[4] == '-' && p[7] == '-') ||
-                  (toklen[pos+4] >= 7 && toklen[pos+4] <= 9 && 
-                            p[((p[1]!='/')?(2):(1))] == '/' && 
+                  (toklen[pos+4] >= 7 && toklen[pos+4] <= 9 &&
+                            p[((p[1]!='/')?(2):(1))] == '/' &&
                             p[((p[1]!='/')?(5):(4))] == '/'))
                /* Y2K bugs possible ("7/06/102" or "13/02/101") */
               {
                 if ( (*tokens[pos+1] == '-' &&
                       *tokens[pos+2] == '-' &&
                       *tokens[pos+3] == '-')  ||
                       (isdigit(*tokens[pos+1]) &&
                        isdigit(*tokens[pos+2]) &&
@@ -589,56 +589,56 @@ int ParseFTPList(const char *line, struc
                 }
               }
             }
           }
         } /* for (pos = 1; !lstyle && (pos+5) < numtoks; pos++) */
       } /* if (numtoks >= 7) */
 
       /* extra checking if first pass */
-      if (lstyle && !state->lstyle) 
+      if (lstyle && !state->lstyle)
       {
         for (pos = 0, p = tokens[0]; lstyle && pos < toklen[0]; pos++, p++)
-        {  
+        {
           if (isalpha(*p) && toupper(*p) != *p)
             lstyle = 0;
-        } 
+        }
         for (pos = tokmarker+1; pos <= tokmarker+3; pos++)
         {
           if (!(toklen[pos] == 1 && *tokens[pos] == '-'))
           {
             for (p = tokens[pos]; lstyle && p<(tokens[pos]+toklen[pos]); p++)
             {
               if (!isdigit(*p))
                 lstyle = 0;
             }
           }
         }
-        for (pos = 0, p = tokens[tokmarker+4]; 
+        for (pos = 0, p = tokens[tokmarker+4];
              lstyle && pos < toklen[tokmarker+4]; pos++, p++)
         {
           if (*p == '/')
-          { 
+          {
             /* There may be Y2K bugs in the date. Don't simplify to
              * pos != (len-3) && pos != (len-6) like time is done.
-            */             
+            */
             if ((tokens[tokmarker+4][1]) == '/')
             {
               if (pos != 1 && pos != 4)
                 lstyle = 0;
             }
             else if (pos != 2 && pos != 5)
               lstyle = 0;
           }
           else if (*p != '-' && !isdigit(*p))
             lstyle = 0;
           else if (*p == '-' && pos != 4 && pos != 7)
             lstyle = 0;
         }
-        for (pos = 0, p = tokens[tokmarker+5]; 
+        for (pos = 0, p = tokens[tokmarker+5];
              lstyle && pos < toklen[tokmarker+5]; pos++, p++)
         {
           if (*p != ':' && !isdigit(*p))
             lstyle = 0;
           else if (*p == ':' && pos != (toklen[tokmarker+5]-3)
                              && pos != (toklen[tokmarker+5]-6))
             lstyle = 0;
         }
@@ -689,23 +689,23 @@ int ParseFTPList(const char *line, struc
           memcpy( &dot, &p, sizeof(dot) ); /* NASTY! */
           *dot++ = '.';
           p = tokens[1];
           for (pos = 0; pos < toklen[1]; pos++)
             *dot++ = *p++;
           result->fe_fnlen += 1 + toklen[1];
         }
 
-        /* oldstyle LISTING: 
-         * files/dirs not on the 'A' minidisk are not RETRievable/CHDIRable 
+        /* oldstyle LISTING:
+         * files/dirs not on the 'A' minidisk are not RETRievable/CHDIRable
         if (toklen[tokmarker+4] != 10 && *tokens[tokmarker-1] != 'A')
           return '?';
         */
-        
-        /* VM/CMS LISTings have no usable filesize field. 
+
+        /* VM/CMS LISTings have no usable filesize field.
          * Have to use the 'SIZE' command for that.
         */
         return result->fe_type;
 
       } /* if (lstyle == 'C' && (!state->lstyle || state->lstyle == lstyle)) */
     } /* VM/CMS */
 #endif
 
@@ -727,29 +727,29 @@ int ParseFTPList(const char *line, struc
       // "10-10-2014  10:10AM       <DIR>        FTP"
       // Windows CE FTP server returns time in 24-hour format:
       // "05-03-13  22:01       <DIR>          APPS"
       if ((numtoks >= 4) && (toklen[0] == 8 || toklen[0] == 10) &&
           (toklen[1] == 5 || toklen[1] == 7) &&
           (*tokens[2] == '<' || isdigit(*tokens[2])) )
       {
         p = tokens[0];
-        if ( isdigit(p[0]) && isdigit(p[1]) && p[2]=='-' && 
+        if ( isdigit(p[0]) && isdigit(p[1]) && p[2]=='-' &&
              isdigit(p[3]) && isdigit(p[4]) && p[5]=='-' &&
              isdigit(p[6]) && isdigit(p[7]) )
         {
           p = tokens[1];
-          if ( isdigit(p[0]) && isdigit(p[1]) && p[2]==':' && 
-               isdigit(p[3]) && isdigit(p[4]) && 
+          if ( isdigit(p[0]) && isdigit(p[1]) && p[2]==':' &&
+               isdigit(p[3]) && isdigit(p[4]) &&
                (toklen[1] == 5 || (toklen[1] == 7 &&
                                   (p[5]=='A' || p[5]=='P') && p[6]=='M')))
           {
             lstyle = 'W';
             if (!state->lstyle)
-            {            
+            {
               p = tokens[2];
               /* <DIR> or <JUNCTION> */
               if (*p != '<' || p[toklen[2]-1] != '>')
               {
                 for (pos = 1; (lstyle && pos < toklen[2]); pos++)
                 {
                   if (!isdigit(*++p))
                     lstyle = 0;
@@ -805,17 +805,17 @@ int ParseFTPList(const char *line, struc
               for (pos = result->fe_fnlen - 4; pos > 0; pos--)
               {
                 if (p[0] == ' ' && p[3] == ' ' && p[2] == '>' &&
                     (p[1] == '=' || p[1] == '-'))
                 {
                   result->fe_type = 'l';
                   result->fe_fnlen = p - result->fe_fname;
                   result->fe_lname = p + 4;
-                  result->fe_lnlen = &(line[linelen]) 
+                  result->fe_lnlen = &(line[linelen])
                                      - result->fe_lname;
                   break;
                 }
                 p++;
               }
             }
           }
         }
@@ -847,30 +847,30 @@ int ParseFTPList(const char *line, struc
 
         /* the caller should do this (if dropping "." and ".." is desired)
         if (result->fe_type == 'd' && result->fe_fname[0] == '.' &&
             (result->fe_fnlen == 1 || (result->fe_fnlen == 2 &&
                                       result->fe_fname[1] == '.')))
           return '?';
         */
 
-        return result->fe_type;  
+        return result->fe_type;
       } /* if (lstyle == 'W' && (!state->lstyle || state->lstyle == lstyle)) */
     } /* if (!lstyle && (!state->lstyle || state->lstyle == 'W')) */
 #endif
 
     /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
 
 #if defined(SUPPORT_OS2)
     if (!lstyle && (!state->lstyle || state->lstyle == 'O')) /* OS/2 test */
     {
       /* 220 server IBM TCP/IP for OS/2 - FTP Server ver 23:04:36 on Jan 15 1997 ready.
-      * fixed position, space padded columns. I have only a vague idea 
+      * fixed position, space padded columns. I have only a vague idea
       * of what the contents between col 18 and 34 might be: All I can infer
-      * is that there may be attribute flags in there and there may be 
+      * is that there may be attribute flags in there and there may be
       * a " DIR" in there.
       *
       *          1         2         3         4         5         6
       *0123456789012345678901234567890123456789012345678901234567890123456789
       *----- size -------|??????????????? MM-DD-YY|  HH:MM| nnnnnnnnn....
       *                 0  DIR            04-11-95   16:26  .
       *                 0  DIR            04-11-95   16:26  ..
       *                 0  DIR            04-11-95   16:26  ADDRESS
@@ -894,17 +894,17 @@ int ParseFTPList(const char *line, struc
          isdigit(p[38-18]) && isdigit(p[39-18])                  &&
          isdigit(p[41-18]) && isdigit(p[42-18])                  &&
          isdigit(p[46-18]) && isdigit(p[47-18])                  &&
          isdigit(p[49-18]) && isdigit(p[50-18])
       )
       {
         lstyle = 'O'; /* OS/2 */
         if (!state->lstyle)
-        {            
+        {
           for (pos = 1; lstyle && pos < toklen[0]; pos++)
           {
             if (!isdigit(tokens[0][pos]))
               lstyle = 0;
           }
         }
       }
 
@@ -919,56 +919,56 @@ int ParseFTPList(const char *line, struc
         result->fe_fname = &p[53-18];
         result->fe_fnlen = (&(line[linelen_sans_wsp]))
                            - (result->fe_fname);
         result->fe_type = 'f';
 
         /* I don't have a real listing to determine exact pos, so scan. */
         for (pos = (18-18); pos < ((35-18)-4); pos++)
         {
-          if (p[pos+0] == ' ' && p[pos+1] == 'D' && 
+          if (p[pos+0] == ' ' && p[pos+1] == 'D' &&
               p[pos+2] == 'I' && p[pos+3] == 'R')
           {
             result->fe_type = 'd';
             break;
           }
         }
-    
+
         if (result->fe_type != 'd')
         {
           pos = toklen[0];
           if (pos > (sizeof(result->fe_size)-1))
             pos = (sizeof(result->fe_size)-1);
           memcpy( result->fe_size, tokens[0], pos );
           result->fe_size[pos] = '\0';
-        }  
-    
+        }
+
         result->fe_time.tm_month = atoi(&p[35-18]) - 1;
         result->fe_time.tm_mday = atoi(&p[38-18]);
         result->fe_time.tm_year = atoi(&p[41-18]);
         if (result->fe_time.tm_year < 80)
           result->fe_time.tm_year += 100;
         result->fe_time.tm_hour = atoi(&p[46-18]);
         result->fe_time.tm_min = atoi(&p[49-18]);
-   
+
         /* the caller should do this (if dropping "." and ".." is desired)
         if (result->fe_type == 'd' && result->fe_fname[0] == '.' &&
             (result->fe_fnlen == 1 || (result->fe_fnlen == 2 &&
                                       result->fe_fname[1] == '.')))
           return '?';
         */
 
         return result->fe_type;
       } /* if (lstyle == 'O') */
 
     } /* if (!lstyle && (!state->lstyle || state->lstyle == 'O')) */
 #endif
 
     /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-    
+
 #if defined(SUPPORT_LSL)
     if (!lstyle && (!state->lstyle || state->lstyle == 'U')) /* /bin/ls & co. */
     {
       /* UNIX-style listing, without inum and without blocks
        * "-rw-r--r--   1 root     other        531 Jan 29 03:26 README"
        * "dr-xr-xr-x   2 root     other        512 Apr  8  1994 etc"
        * "dr-xr-xr-x   2 root     512 Apr  8  1994 etc"
        * "lrwxrwxrwx   1 root     other          7 Jan 25 00:17 bin -> usr/bin"
@@ -986,50 +986,50 @@ int ParseFTPList(const char *line, struc
        * Also NetPresenz for the Mac:
        * "-------r--         326  1391972  1392298 Nov 22  1995 MegaPhone.sit"
        * "drwxrwxr-x               folder        2 May 10  1996 network"
        * Protected directory:
        * "drwx-wx-wt  2 root  wheel  512 Jul  1 02:15 incoming"
        * uid/gid instead of username/groupname:
        * "drwxr-xr-x  2 0  0  512 May 28 22:17 etc"
       */
-    
+
       bool is_old_Hellsoft = false;
-    
+
       if (numtoks >= 6)
       {
         /* there are two perm formats (Hellsoft/NetWare and *IX strmode(3)).
          * Scan for size column only if the perm format is one or the other.
          */
         if (toklen[0] == 1 || (tokens[0][1]) == '[')
         {
           if (*tokens[0] == 'd' || *tokens[0] == '-')
           {
             pos = toklen[0]-1;
             p = tokens[0] + 1;
             if (pos == 0)
             {
               p = tokens[1];
               pos = toklen[1];
             }
-            if ((pos == 9 || pos == 10)        && 
+            if ((pos == 9 || pos == 10)        &&
                 (*p == '[' && p[pos-1] == ']') &&
                 (p[1] == 'R' || p[1] == '-')   &&
                 (p[2] == 'W' || p[2] == '-')   &&
                 (p[3] == 'C' || p[3] == '-')   &&
                 (p[4] == 'E' || p[4] == '-'))
             {
               /* rest is FMA[S] or AFM[S] */
               lstyle = 'U'; /* very likely one of the NetWare servers */
               if (toklen[0] == 10)
                 is_old_Hellsoft = true;
             }
           }
         }
-        else if ((toklen[0] == 10 || toklen[0] == 11) 
+        else if ((toklen[0] == 10 || toklen[0] == 11)
                    && strchr("-bcdlpsw?DFam", *tokens[0]))
         {
           p = &(tokens[0][1]);
           if ((p[0] == 'r' || p[0] == '-') &&
               (p[1] == 'w' || p[1] == '-') &&
               (p[3] == 'r' || p[3] == '-') &&
               (p[4] == 'w' || p[4] == '-') &&
               (p[6] == 'r' || p[6] == '-') &&
@@ -1050,38 +1050,38 @@ int ParseFTPList(const char *line, struc
            *  \s+(.+)$
           */
           if (isdigit(*tokens[pos]) /* size */
               /* (\w\w\w) */
            && toklen[pos+1] == 3 && isalpha(*tokens[pos+1]) &&
               isalpha(tokens[pos+1][1]) && isalpha(tokens[pos+1][2])
               /* (\d|\d\d) */
            && isdigit(*tokens[pos+2]) &&
-                (toklen[pos+2] == 1 || 
+                (toklen[pos+2] == 1 ||
                   (toklen[pos+2] == 2 && isdigit(tokens[pos+2][1])))
-           && toklen[pos+3] >= 4 && isdigit(*tokens[pos+3]) 
+           && toklen[pos+3] >= 4 && isdigit(*tokens[pos+3])
               /* (\d\:\d\d\:\d\d|\d\d\:\d\d\:\d\d) */
            && (toklen[pos+3] <= 5 || (
                (toklen[pos+3] == 7 || toklen[pos+3] == 8) &&
                (tokens[pos+3][toklen[pos+3]-3]) == ':'))
            && isdigit(tokens[pos+3][toklen[pos+3]-2])
            && isdigit(tokens[pos+3][toklen[pos+3]-1])
            && (
               /* (\d\d\d\d) */
                  ((toklen[pos+3] == 4 || toklen[pos+3] == 5) &&
                   isdigit(tokens[pos+3][1]) &&
                   isdigit(tokens[pos+3][2])  )
               /* (\d\:\d\d|\d\:\d\d\:\d\d) */
-              || ((toklen[pos+3] == 4 || toklen[pos+3] == 7) && 
+              || ((toklen[pos+3] == 4 || toklen[pos+3] == 7) &&
                   (tokens[pos+3][1]) == ':' &&
                   isdigit(tokens[pos+3][2]) && isdigit(tokens[pos+3][3]))
               /* (\d\d\:\d\d|\d\d\:\d\d\:\d\d) */
-              || ((toklen[pos+3] == 5 || toklen[pos+3] == 8) && 
+              || ((toklen[pos+3] == 5 || toklen[pos+3] == 8) &&
                   isdigit(tokens[pos+3][1]) && (tokens[pos+3][2]) == ':' &&
-                  isdigit(tokens[pos+3][3]) && isdigit(tokens[pos+3][4])) 
+                  isdigit(tokens[pos+3][3]) && isdigit(tokens[pos+3][4]))
               )
            )
           {
             lstyle = 'U'; /* assume /bin/ls or variant format */
             tokmarker = pos;
 
             /* check that size is numeric */
             p = tokens[tokmarker];
@@ -1095,34 +1095,34 @@ int ParseFTPList(const char *line, struc
               }
             }
             if (lstyle)
             {
               month_num = 0;
               p = tokens[tokmarker+1];
               for (i = 0; i < (12*3); i+=3)
               {
-                if (p[0] == month_names[i+0] && 
-                    p[1] == month_names[i+1] && 
+                if (p[0] == month_names[i+0] &&
+                    p[1] == month_names[i+1] &&
                     p[2] == month_names[i+2])
                   break;
                 month_num++;
               }
               if (month_num >= 12)
                 lstyle = 0;
             }
           } /* relative position test */
         } /* for (pos = (numtoks-5); !lstyle && pos > 1; pos--) */
       } /* if (lstyle == 'U') */
 
       if (lstyle == 'U')
       {
         state->parsed_one = 1;
         state->lstyle = lstyle;
-    
+
         result->fe_cinfs = 0;
         result->fe_type = '?';
         if (*tokens[0] == 'd' || *tokens[0] == 'l')
           result->fe_type = *tokens[0];
         else if (*tokens[0] == 'D')
           result->fe_type = 'd';
         else if (*tokens[0] == '-' || *tokens[0] == 'F')
           result->fe_type = 'f'; /* (hopefully a regular file) */
@@ -1150,30 +1150,30 @@ int ParseFTPList(const char *line, struc
           result->fe_time.tm_year = pos;
         }
         else
         {
           result->fe_time.tm_hour = pos;
           result->fe_time.tm_min  = atoi(p+3);
           if (p[5] == ':')
             result->fe_time.tm_sec = atoi(p+6);
-       
+
           if (!state->now_time)
           {
             state->now_time = PR_Now();
             PR_ExplodeTime((state->now_time), PR_LocalTimeParameters, &(state->now_tm) );
           }
 
           result->fe_time.tm_year = state->now_tm.tm_year;
           if ( (( state->now_tm.tm_month << 5) + state->now_tm.tm_mday) <
                ((result->fe_time.tm_month << 5) + result->fe_time.tm_mday) )
             result->fe_time.tm_year--;
-       
+
         } /* time/year */
-        
+
         // The length of the whole date string should be 12. On AIX the length
         // is only 11 when the year is present in the date string and there is
         // 1 padding space at the end of the string. In both cases the filename
         // starts at offset 13 from the start of the date string.
         // Don't care about leading spaces when the date string has different
         // format or when old Hellsoft output was detected.
         {
           const char *date_start = tokens[tokmarker+1];
@@ -1224,36 +1224,36 @@ int ParseFTPList(const char *line, struc
           }
         }
 
 #if defined(SUPPORT_LSLF) /* some (very rare) servers return ls -lF */
         if (result->fe_fnlen > 1)
         {
           p = result->fe_fname[result->fe_fnlen-1];
           pos = result->fe_type;
-          if (pos == 'd') { 
+          if (pos == 'd') {
              if (*p == '/') result->fe_fnlen--; /* directory */
-          } else if (pos == 'l') { 
+          } else if (pos == 'l') {
              if (*p == '@') result->fe_fnlen--; /* symlink */
-          } else if (pos == 'f') { 
+          } else if (pos == 'f') {
              if (*p == '*') result->fe_fnlen--; /* executable */
           } else if (*p == '=' || *p == '%' || *p == '|') {
             result->fe_fnlen--; /* socket, whiteout, fifo */
           }
         }
 #endif
-     
+
         /* the caller should do this (if dropping "." and ".." is desired)
         if (result->fe_type == 'd' && result->fe_fname[0] == '.' &&
             (result->fe_fnlen == 1 || (result->fe_fnlen == 2 &&
                                       result->fe_fname[1] == '.')))
           return '?';
         */
 
-        return result->fe_type;  
+        return result->fe_type;
 
       } /* if (lstyle == 'U') */
 
     } /* if (!lstyle && (!state->lstyle || state->lstyle == 'U')) */
 #endif
 
     /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
 
@@ -1269,40 +1269,40 @@ int ParseFTPList(const char *line, struc
       * INSTALL         <DIR>           11-16-94        17:17
       * CMT             <DIR>           11-21-94        10:17
       * DESIGN1.DOC          11264      05-11-95        14:20
       * README.TXT            1045      05-10-95        11:01
       * WPKIT1.EXE          960338      06-21-95        17:01
       * CMT.CSV                  0      07-06-95        14:56
       *
       * Chameleon dirlist guessed from lynx
-      * .               <DIR>      Nov 16 1994 17:16   
-      * ..              <DIR>      Nov 16 1994 17:16   
+      * .               <DIR>      Nov 16 1994 17:16
+      * ..              <DIR>      Nov 16 1994 17:16
       * INSTALL         <DIR>      Nov 16 1994 17:17
       * CMT             <DIR>      Nov 21 1994 10:17
       * DESIGN1.DOC     11264      May 11 1995 14:20   A
       * README.TXT       1045      May 10 1995 11:01
       * WPKIT1.EXE     960338      Jun 21 1995 17:01   R
       * CMT.CSV             0      Jul 06 1995 14:56   RHA
       */
-      if (numtoks >= 4 && toklen[0] < 13 && 
+      if (numtoks >= 4 && toklen[0] < 13 &&
           ((toklen[1] == 5 && *tokens[1] == '<') || isdigit(*tokens[1])) )
       {
         if (numtoks == 4
          && (toklen[2] == 8 || toklen[2] == 9)
          && (((tokens[2][2]) == '/' && (tokens[2][5]) == '/') ||
              ((tokens[2][2]) == '-' && (tokens[2][5]) == '-'))
          && (toklen[3] == 4 || toklen[3] == 5)
          && (tokens[3][toklen[3]-3]) == ':'
          && isdigit(tokens[2][0]) && isdigit(tokens[2][1])
          && isdigit(tokens[2][3]) && isdigit(tokens[2][4])
          && isdigit(tokens[2][6]) && isdigit(tokens[2][7])
          && (toklen[2] < 9 || isdigit(tokens[2][8]))
          && isdigit(tokens[3][toklen[3]-1]) && isdigit(tokens[3][toklen[3]-2])
-         && isdigit(tokens[3][toklen[3]-4]) && isdigit(*tokens[3]) 
+         && isdigit(tokens[3][toklen[3]-4]) && isdigit(*tokens[3])
          )
         {
           lstyle = 'w';
         }
         else if ((numtoks == 6 || numtoks == 7)
          && toklen[2] == 3 && toklen[3] == 2
          && toklen[4] == 4 && toklen[5] == 5
          && (tokens[5][2]) == ':'
@@ -1315,18 +1315,18 @@ int ParseFTPList(const char *line, struc
          && isdigit(tokens[5][3]) && isdigit(tokens[5][4])
          /* could also check that (&(tokens[5][5]) - tokens[2]) == 17 */
         )
         {
           lstyle = 'w';
         }
         if (lstyle && state->lstyle != lstyle) /* first time */
         {
-          p = tokens[1];   
-          if (toklen[1] != 5 || p[0] != '<' || p[1] != 'D' || 
+          p = tokens[1];
+          if (toklen[1] != 5 || p[0] != '<' || p[1] != 'D' ||
                  p[2] != 'I' || p[3] != 'R' || p[4] != '>')
           {
             for (pos = 0; lstyle && pos < toklen[1]; pos++)
             {
               if (!isdigit(*p++))
                 lstyle = 0;
             }
           } /* not <DIR> */
@@ -1358,25 +1358,25 @@ int ParseFTPList(const char *line, struc
         if (toklen[2] == 3) /* Chameleon */
         {
           tbuf[0] = toupper(p[0]);
           tbuf[1] = tolower(p[1]);
           tbuf[2] = tolower(p[2]);
           for (pos = 0; pos < (12*3); pos+=3)
           {
             if (tbuf[0] == month_names[pos+0] &&
-                tbuf[1] == month_names[pos+1] && 
+                tbuf[1] == month_names[pos+1] &&
                 tbuf[2] == month_names[pos+2])
             {
               result->fe_time.tm_month = pos/3;
               result->fe_time.tm_mday = atoi(tokens[3]);
               result->fe_time.tm_year = atoi(tokens[4]) - 1900;
               break;
             }
-          }          
+          }
           pos = 5; /* Chameleon toknum of date field */
         }
         else
         {
           result->fe_time.tm_month = atoi(p+0)-1;
           result->fe_time.tm_mday = atoi(p+3);
           result->fe_time.tm_year = atoi(p+6);
           if (result->fe_time.tm_year < 80) /* SuperTCP */
@@ -1399,17 +1399,17 @@ int ParseFTPList(const char *line, struc
       } /* (lstyle == 'w') */
 
     } /* if (!lstyle && (!state->lstyle || state->lstyle == 'w'))  */
 #endif
 
     /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
 
 #if defined(SUPPORT_DLS) /* dls -dtR */
-    if (!lstyle && 
+    if (!lstyle &&
        (state->lstyle == 'D' || (!state->lstyle && state->numlines == 1)))
        /* /bin/dls lines have to be immediately recognizable (first line) */
     {
       /* I haven't seen an FTP server that delivers a /bin/dls listing,
        * but can infer the format from the lynx and mirror.pl projects.
        * Both formats are supported.
        *
        * Lynx says:
@@ -1424,32 +1424,32 @@ int ParseFTPList(const char *line, struc
        * TIMIT.mostlikely.Z\0
        *                   79215  \0
        *
        * mirror.pl says:
        * filename:  ^(\S*)\s+
        * size:      (\-|\=|\d+)\s+
        * month/day: ((\w\w\w\s+\d+|\d+\s+\w\w\w)\s+
        * time/year: (\d+:\d+|\d\d\d\d))\s+
-       * rest:      (.+) 
+       * rest:      (.+)
        *
        * README              763  Jul 11 21:05  Information about this server
        * bin/                  -  Apr 28  1994
        * etc/                  =  11 Jul 21:04
        * ls-lR                 0   6 Aug 17:14
        * ls-lR.Z               3  05 Sep 1994
        * pub/                  =  Jul 11 21:04  Public area
        * usr/                  -  Sep  7 09:39
        * morgan               14  Apr 18 09:39  -> ../real/morgan
        * TIMIT.mostlikely.Z
        *                   79215  Jul 11 21:04
       */
-      if (!state->lstyle && line[linelen-1] == ':' && 
+      if (!state->lstyle && line[linelen-1] == ':' &&
           linelen >= 2 && toklen[numtoks-1] != 1)
-      { 
+      {
         /* code in mirror.pl suggests that a listing may be preceded
          * by a PWD line in the form "/some/dir/names/here:"
          * but does not necessarily begin with '/'. *sigh*
         */
         pos = 0;
         p = line;
         while (pos < (linelen-1))
         {
@@ -1474,53 +1474,53 @@ int ParseFTPList(const char *line, struc
         pos = 22; /* pos of (\d+|-|=) if this is not part of a multiline */
         if (state->lstyle && carry_buf_len) /* first is from previous line */
           pos = toklen[1]-1; /* and is 'as-is' (may contain whitespace) */
 
         if (linelen > pos)
         {
           p = &line[pos];
           if ((*p == '-' || *p == '=' || isdigit(*p)) &&
-              ((linelen == (pos+1)) || 
+              ((linelen == (pos+1)) ||
                (linelen >= (pos+3) && p[1] == ' ' && p[2] == ' ')) )
           {
             tokmarker = 1;
             if (!carry_buf_len)
             {
               pos = 1;
               while (pos < numtoks && (tokens[pos]+toklen[pos]) < (&line[23]))
                 pos++;
               tokmarker = 0;
               if ((tokens[pos]+toklen[pos]) == (&line[23]))
                 tokmarker = pos;
             }
-            if (tokmarker)  
+            if (tokmarker)
             {
               lstyle = 'D';
               if (*tokens[tokmarker] == '-' || *tokens[tokmarker] == '=')
               {
                 if (toklen[tokmarker] != 1 ||
                    (tokens[tokmarker-1][toklen[tokmarker-1]-1]) != '/')
                   lstyle = 0;
-              }              
+              }
               else
               {
-                for (pos = 0; lstyle && pos < toklen[tokmarker]; pos++) 
+                for (pos = 0; lstyle && pos < toklen[tokmarker]; pos++)
                 {
                   if (!isdigit(tokens[tokmarker][pos]))
-                    lstyle = 0; 
+                    lstyle = 0;
                 }
               }
               if (lstyle && !state->lstyle) /* first time */
               {
                 /* scan for illegal (or incredibly unusual) chars in fname */
                 for (p = tokens[0]; lstyle &&
                      p < &(tokens[tokmarker-1][toklen[tokmarker-1]]); p++)
                 {
-                  if (*p == '<' || *p == '|' || *p == '>' || 
+                  if (*p == '<' || *p == '|' || *p == '>' ||
                       *p == '?' || *p == '*' || *p == '/' || *p == '\\')
                     lstyle = 0;
                 }
               }
 
             } /* size token found */
           } /* expected chars behind expected size token */
         } /* if (linelen > pos) */
@@ -1566,40 +1566,40 @@ int ParseFTPList(const char *line, struc
         {
           pos = toklen[tokmarker];
           if (pos > (sizeof(result->fe_size)-1))
             pos = sizeof(result->fe_size)-1;
           memcpy( result->fe_size, tokens[tokmarker], pos );
           result->fe_size[pos] = '\0';
         }
 
-        if ((tokmarker+3) < numtoks && 
-              (&(tokens[numtoks-1][toklen[numtoks-1]]) - 
+        if ((tokmarker+3) < numtoks &&
+              (&(tokens[numtoks-1][toklen[numtoks-1]]) -
                tokens[tokmarker+1]) >= (1+1+3+1+4) )
         {
           pos = (tokmarker+3);
           p = tokens[pos];
           pos = toklen[pos];
 
           if ((pos == 4 || pos == 5)
           &&  isdigit(*p) && isdigit(p[pos-1]) && isdigit(p[pos-2])
-          &&  ((pos == 5 && p[2] == ':') ||  
+          &&  ((pos == 5 && p[2] == ':') ||
                (pos == 4 && (isdigit(p[1]) || p[1] == ':')))
              )
           {
             month_num = tokmarker+1; /* assumed position of month field */
             pos = tokmarker+2;       /* assumed position of mday field */
             if (isdigit(*tokens[month_num])) /* positions are reversed */
             {
               month_num++;
               pos--;
             }
             p = tokens[month_num];
-            if (isdigit(*tokens[pos]) 
-            && (toklen[pos] == 1 || 
+            if (isdigit(*tokens[pos])
+            && (toklen[pos] == 1 ||
                   (toklen[pos] == 2 && isdigit(tokens[pos][1])))
             && toklen[month_num] == 3
             && isalpha(*p) && isalpha(p[1]) && isalpha(p[2])  )
             {
               pos = atoi(tokens[pos]);
               if (pos > 0 && pos <= 31)
               {
                 result->fe_time.tm_mday = pos;
@@ -1684,17 +1684,17 @@ int ParseFTPList(const char *line, struc
 
 /* ==================================================================== */
 /* standalone testing                                                   */
 /* ==================================================================== */
 #if 0
 
 #include <stdio.h>
 
-static int do_it(FILE *outfile, 
+static int do_it(FILE *outfile,
                  char *line, size_t linelen, struct list_state *state,
                  char **cmnt_buf, unsigned int *cmnt_buf_sz,
                  char **list_buf, unsigned int *list_buf_sz )
 {
   struct list_result result;
   char *p;
   int rc;
 
@@ -1703,66 +1703,66 @@ static int do_it(FILE *outfile,
   if (!outfile)
   {
     outfile = stdout;
     if (rc == '?')
       fprintf(outfile, "junk: %.*s\n", (int)linelen, line );
     else if (rc == '"')
       fprintf(outfile, "cmnt: %.*s\n", (int)linelen, line );
     else
-      fprintf(outfile, 
+      fprintf(outfile,
               "list: %02u-%02u-%02u  %02u:%02u%cM %20s %.*s%s%.*s\n",
               (result.fe_time.tm_mday ? (result.fe_time.tm_month + 1) : 0),
               result.fe_time.tm_mday,
               (result.fe_time.tm_mday ? (result.fe_time.tm_year % 100) : 0),
-              result.fe_time.tm_hour - 
+              result.fe_time.tm_hour -
                 ((result.fe_time.tm_hour > 12)?(12):(0)),
               result.fe_time.tm_min,
               ((result.fe_time.tm_hour >= 12) ? 'P' : 'A'),
-              (rc == 'd' ? "<DIR>         " : 
+              (rc == 'd' ? "<DIR>         " :
               (rc == 'l' ? "<JUNCTION>    " : result.fe_size)),
               (int)result.fe_fnlen, result.fe_fname,
               ((rc == 'l' && result.fe_lnlen) ? " -> " : ""),
               (int)((rc == 'l' && result.fe_lnlen) ? result.fe_lnlen : 0),
               ((rc == 'l' && result.fe_lnlen) ? result.fe_lname : "") );
   }
   else if (rc != '?') /* NOT junk */
-  { 
+  {
     char **bufp = list_buf;
     unsigned int *bufz = list_buf_sz;
-    
+
     if (rc == '"') /* comment - make it a 'result' */
     {
       memset( &result, 0, sizeof(result));
       result.fe_fname = line;
       result.fe_fnlen = linelen;
       result.fe_type = 'f';
       if (line[linelen-1] == '/')
       {
         result.fe_type = 'd';
-        result.fe_fnlen--; 
+        result.fe_fnlen--;
       }
       bufp = cmnt_buf;
       bufz = cmnt_buf_sz;
       rc = result.fe_type;
-    }  
+    }
 
     linelen = 80 + result.fe_fnlen + result.fe_lnlen;
     p = (char *)realloc( *bufp, *bufz + linelen );
     if (!p)
       return -1;
-    sprintf( &p[*bufz], 
+    sprintf( &p[*bufz],
              "%02u-%02u-%04u  %02u:%02u:%02u %20s %.*s%s%.*s\n",
               (result.fe_time.tm_mday ? (result.fe_time.tm_month + 1) : 0),
               result.fe_time.tm_mday,
               (result.fe_time.tm_mday ? (result.fe_time.tm_year + 1900) : 0),
               result.fe_time.tm_hour,
               result.fe_time.tm_min,
               result.fe_time.tm_sec,
-              (rc == 'd' ? "<DIR>         " : 
+              (rc == 'd' ? "<DIR>         " :
               (rc == 'l' ? "<JUNCTION>    " : result.fe_size)),
               (int)result.fe_fnlen, result.fe_fname,
               ((rc == 'l' && result.fe_lnlen) ? " -> " : ""),
               (int)((rc == 'l' && result.fe_lnlen) ? result.fe_lnlen : 0),
               ((rc == 'l' && result.fe_lnlen) ? result.fe_lname : "") );
     linelen = strlen(&p[*bufz]);
     *bufp = p;
     *bufz = *bufz + linelen;
@@ -1807,19 +1807,19 @@ int main(int argc, char *argv[])
     char *appname = &(argv[0][strlen(argv[0])]);
     while (appname > argv[0])
     {
       appname--;
       if (*appname == '/' || *appname == '\\' || *appname == ':')
       {
         appname++;
         break;
-      } 
+      }
     }
-    fprintf(stderr, 
+    fprintf(stderr,
         "Usage: %s <inputfilename> [<outputfilename>]\n"
         "\nIf an outout file is specified the results will be"
         "\nbe post-processed, and only the file entries will appear"
         "\n(or all comments if there are no file entries)."
         "\nNot specifying an output file causes %s to run in \"debug\""
         "\nmode, ie results are printed as lines are parsed."
         "\nIf a filename is a single dash ('-'), stdin/stdout is used."
         "\n", appname, appname );
@@ -1837,47 +1837,47 @@ int main(int argc, char *argv[])
     memset( &state, 0, sizeof(state) );
     while (fgets(line, sizeof(line), infile))
     {
       size_t linelen = strlen(line);
       if (linelen < (sizeof(line)-1))
       {
         if (linelen > 0 && line[linelen-1] == '\n')
           linelen--;
-        if (do_it( outfile, line, linelen, &state, 
+        if (do_it( outfile, line, linelen, &state,
                    &cmnt_buf, &cmnt_buf_sz, &list_buf, &list_buf_sz) != 0)
         {
-          fprintf(stderr, "Insufficient memory. Listing may be incomplete.\n"); 
+          fprintf(stderr, "Insufficient memory. Listing may be incomplete.\n");
           break;
         }
       }
       else
       {
         /* no '\n' found. drop this and everything up to the next '\n' */
         fprintf(stderr, "drop: %.*s", (int)linelen, line );
         while (linelen == sizeof(line))
         {
           if (!fgets(line, sizeof(line), infile))
             break;
           linelen = 0;
           while (linelen < sizeof(line) && line[linelen] != '\n')
             linelen++;
           fprintf(stderr, "%.*s", (int)linelen, line );
-        }  
+        }
         fprintf(stderr, "\n");
       }
     }
     if (outfile)
     {
       if (list_buf)
         fwrite( list_buf, 1, list_buf_sz, outfile );
       else if (cmnt_buf)
         fwrite( cmnt_buf, 1, cmnt_buf_sz, outfile );
     }
-    if (list_buf) 
+    if (list_buf)
       free(list_buf);
     if (cmnt_buf)
       free(cmnt_buf);
 
     if (need_close_in)
       fclose(infile);
     if (outfile && need_close_out)
       fclose(outfile);
--- a/netwerk/streamconv/converters/ParseFTPList.h
+++ b/netwerk/streamconv/converters/ParseFTPList.h
@@ -12,50 +12,50 @@
 
 /* ParseFTPList() parses lines from an FTP LIST command.
 **
 ** Written July 2002 by Cyrus Patel <cyp@fb14.uni-mainz.de>
 ** with acknowledgements to squid, lynx, wget and ftpmirror.
 **
 ** Arguments:
 **   'line':       line of FTP data connection output. The line is assumed
-**                 to end at the first '\0' or '\n' or '\r\n'. 
-**   'state':      a structure used internally to track state between 
+**                 to end at the first '\0' or '\n' or '\r\n'.
+**   'state':      a structure used internally to track state between
 **                 lines. Needs to be bzero()'d at LIST begin.
 **   'result':     where ParseFTPList will store the results of the parse
 **                 if 'line' is not a comment and is not junk.
 **
 ** Returns one of the following:
 **    'd' - LIST line is a directory entry ('result' is valid)
 **    'f' - LIST line is a file's entry ('result' is valid)
 **    'l' - LIST line is a symlink's entry ('result' is valid)
 **    '?' - LIST line is junk. (cwd, non-file/dir/link, etc)
 **    '"' - its not a LIST line (its a "comment")
 **
-** It may be advisable to let the end-user see "comments" (particularly when 
+** It may be advisable to let the end-user see "comments" (particularly when
 ** the listing results in ONLY such lines) because such a listing may be:
 ** - an unknown LIST format (NLST or "custom" format for example)
 ** - an error msg (EPERM,ENOENT,ENFILE,EMFILE,ENOTDIR,ENOTBLK,EEXDEV etc).
 ** - an empty directory and the 'comment' is a "total 0" line or similar.
 **   (warning: a "total 0" can also mean the total size is unknown).
 **
 ** ParseFTPList() supports all known FTP LISTing formats:
-** - '/bin/ls -l' and all variants (including Hellsoft FTP for NetWare); 
-** - EPLF (Easily Parsable List Format); 
+** - '/bin/ls -l' and all variants (including Hellsoft FTP for NetWare);
+** - EPLF (Easily Parsable List Format);
 ** - Windows NT's default "DOS-dirstyle";
-** - OS/2 basic server format LIST format;  
+** - OS/2 basic server format LIST format;
 ** - VMS (MultiNet, UCX, and CMU) LIST format (including multi-line format);
-** - IBM VM/CMS, VM/ESA LIST format (two known variants);  
-** - SuperTCP FTP Server for Win16 LIST format;  
-** - NetManage Chameleon (NEWT) for Win16 LIST format;  
+** - IBM VM/CMS, VM/ESA LIST format (two known variants);
+** - SuperTCP FTP Server for Win16 LIST format;
+** - NetManage Chameleon (NEWT) for Win16 LIST format;
 ** - '/bin/dls' (two known variants, plus multi-line) LIST format;
 ** If there are others, then I'd like to hear about them (send me a sample).
 **
-** NLSTings are not supported explicitely because they cannot be machine 
-** parsed consistently: NLSTings do not have unique characteristics - even 
+** NLSTings are not supported explicitely because they cannot be machine
+** parsed consistently: NLSTings do not have unique characteristics - even
 ** the assumption that there won't be whitespace on the line does not hold
 ** because some nlistings have more than one filename per line and/or
 ** may have filenames that have spaces in them. Moreover, distinguishing
 ** between an error message and an NLST line would require ParseList() to
 ** recognize all the possible strerror() messages in the world.
 */
 
 
--- a/netwerk/streamconv/converters/mozTXTToHTMLConv.cpp
+++ b/netwerk/streamconv/converters/mozTXTToHTMLConv.cpp
@@ -24,17 +24,17 @@ const double growthRate = 1.2;
 // 0xA0's and a single ending space, so need to treat 0xA0's as spaces.
 // 0xA0 is the Latin1/Unicode character for "non-breaking space (nbsp)"
 // Also recognize the Japanese ideographic space 0x3000 as a space.
 static inline bool IsSpace(const char16_t aChar)
 {
   return (nsCRT::IsAsciiSpace(aChar) || aChar == 0xA0 || aChar == 0x3000);
 }
 
-// Escape Char will take ch, escape it and append the result to 
+// Escape Char will take ch, escape it and append the result to
 // aStringToAppendTo
 void
 mozTXTToHTMLConv::EscapeChar(const char16_t ch, nsString& aStringToAppendTo,
                              bool inAttribute)
 {
     switch (ch)
     {
     case '<':
@@ -103,17 +103,17 @@ mozTXTToHTMLConv::EscapeStr(nsString& aI
       // else fall through
       MOZ_FALLTHROUGH;
     default:
       i++;
     }
   }
 }
 
-void 
+void
 mozTXTToHTMLConv::UnescapeStr(const char16_t * aInString, int32_t aStartPos, int32_t aLength, nsString& aOutString)
 {
   const char16_t * subString = nullptr;
   for (uint32_t i = aStartPos; int32_t(i) - aStartPos < aLength;)
   {
     int32_t remainingChars = i - aStartPos;
     if (aInString[i] == '&')
     {
@@ -148,17 +148,17 @@ mozTXTToHTMLConv::UnescapeStr(const char
     {
       aOutString += aInString[i];
       i++;
     }
   }
 }
 
 void
-mozTXTToHTMLConv::CompleteAbbreviatedURL(const char16_t * aInString, int32_t aInLength, 
+mozTXTToHTMLConv::CompleteAbbreviatedURL(const char16_t * aInString, int32_t aInLength,
                                          const uint32_t pos, nsString& aOutString)
 {
   NS_ASSERTION(int32_t(pos) < aInLength, "bad args to CompleteAbbreviatedURL, see bug #190851");
   if (int32_t(pos) >= aInLength)
     return;
 
   if (aInString[pos] == '@')
   {
@@ -175,17 +175,17 @@ mozTXTToHTMLConv::CompleteAbbreviatedURL
   {
     if (ItMatchesDelimited(aInString, aInLength,
                            u"www.", 4, LT_IGNORE, LT_IGNORE))
     {
       aOutString.AssignLiteral("http://");
       aOutString += aInString;
     }
     else if (ItMatchesDelimited(aInString,aInLength, u"ftp.", 4, LT_IGNORE, LT_IGNORE))
-    { 
+    {
       aOutString.AssignLiteral("ftp://");
       aOutString += aInString;
     }
   }
 }
 
 bool
 mozTXTToHTMLConv::FindURLStart(const char16_t * aInString, int32_t aInLength,
@@ -342,17 +342,17 @@ mozTXTToHTMLConv::FindURLEnd(const char1
     return false;
   }
   default:
     return false;
   } //switch
 }
 
 void
-mozTXTToHTMLConv::CalculateURLBoundaries(const char16_t * aInString, int32_t aInStringLength, 
+mozTXTToHTMLConv::CalculateURLBoundaries(const char16_t * aInString, int32_t aInStringLength,
      const uint32_t pos, const uint32_t whathasbeendone,
      const modetype check, const uint32_t start, const uint32_t end,
      nsString& txtURL, nsString& desc,
      int32_t& replaceBefore, int32_t& replaceAfter)
 {
   uint32_t descstart = start;
   switch(check)
   {
@@ -367,17 +367,17 @@ mozTXTToHTMLConv::CalculateURLBoundaries
     descstart = start - 1;
     desc.Append(&aInString[descstart], end - descstart + 2); // include brackets
     replaceAfter = end - pos + 1;
   } break;
   case freetext:
   case abbreviated:
   {
     descstart = start;
-    desc.Append(&aInString[descstart], end - start + 1); // don't include brackets  
+    desc.Append(&aInString[descstart], end - start + 1); // don't include brackets
     replaceAfter = end - pos;
   } break;
   default: break;
   } //switch
 
   EscapeStr(desc, false);
 
   txtURL.Append(&aInString[start], end - start + 1);
@@ -396,17 +396,17 @@ bool mozTXTToHTMLConv::ShouldLinkify(con
     return false;
 
   nsAutoCString scheme;
   nsresult rv = mIOService->ExtractScheme(aURL, scheme);
   if(NS_FAILED(rv))
     return false;
 
   // Get the handler for this scheme.
-  nsCOMPtr<nsIProtocolHandler> handler;    
+  nsCOMPtr<nsIProtocolHandler> handler;
   rv = mIOService->GetProtocolHandler(scheme.get(), getter_AddRefs(handler));
   if(NS_FAILED(rv))
     return false;
 
   // Is it an external protocol handler? If not, linkify it.
   nsCOMPtr<nsIExternalProtocolHandler> externalHandler = do_QueryInterface(handler);
   if (!externalHandler)
    return true; // handler is built-in, linkify it!
@@ -627,17 +627,17 @@ mozTXTToHTMLConv::ItMatchesDelimited(con
                                    nsCaseInsensitiveStringComparator())
     )
     return false;
 
   return true;
 }
 
 uint32_t
-mozTXTToHTMLConv::NumberOfMatches(const char16_t * aInString, int32_t aInStringLength, 
+mozTXTToHTMLConv::NumberOfMatches(const char16_t * aInString, int32_t aInStringLength,
      const char16_t* rep, int32_t aRepLen, LIMTYPE before, LIMTYPE after)
 {
   uint32_t result = 0;
 
   for (int32_t i = 0; i < aInStringLength; i++)
   {
     const char16_t * indexIntoString = &aInString[i];
     if (ItMatchesDelimited(indexIntoString, aInStringLength - i, rep, aRepLen, before, after))
@@ -646,17 +646,17 @@ mozTXTToHTMLConv::NumberOfMatches(const 
   return result;
 }
 
 
 // NOTE: the converted html for the phrase is appended to aOutString
 // tagHTML and attributeHTML are plain ASCII (literal strings, in fact)
 bool
 mozTXTToHTMLConv::StructPhraseHit(const char16_t * aInString, int32_t aInStringLength, bool col0,
-     const char16_t* tagTXT, int32_t aTagTXTLen, 
+     const char16_t* tagTXT, int32_t aTagTXTLen,
      const char* tagHTML, const char* attributeHTML,
      nsString& aOutString, uint32_t& openTags)
 {
   /* We're searching for the following pattern:
      LT_DELIMITER - "*" - ALPHA -
      [ some text (maybe more "*"-pairs) - ALPHA ] "*" - LT_DELIMITER.
      <strong> is only inserted, if existence of a pair could be verified
      We use the first opening/closing tag, if we can choose */
@@ -667,19 +667,19 @@ mozTXTToHTMLConv::StructPhraseHit(const 
   {
     newOffset = &aInString[1];
     newLength = aInStringLength - 1;
   }
 
   // opening tag
   if
     (
-      ItMatchesDelimited(aInString, aInStringLength, tagTXT, aTagTXTLen, 
+      ItMatchesDelimited(aInString, aInStringLength, tagTXT, aTagTXTLen,
            (col0 ? LT_IGNORE : LT_DELIMITER), LT_ALPHA) // is opening tag
-        && NumberOfMatches(newOffset, newLength, tagTXT, aTagTXTLen, 
+        && NumberOfMatches(newOffset, newLength, tagTXT, aTagTXTLen,
               LT_ALPHA, LT_DELIMITER)  // remaining closing tags
               > openTags
     )
   {
     openTags++;
     aOutString.Append('<');
     aOutString.AppendASCII(tagHTML);
     aOutString.Append(char16_t(' '));
@@ -711,17 +711,17 @@ bool
 mozTXTToHTMLConv::SmilyHit(const char16_t * aInString, int32_t aLength, bool col0,
          const char* tagTXT, const char* imageName,
          nsString& outputHTML, int32_t& glyphTextLen)
 {
   if ( !aInString || !tagTXT || !imageName )
       return false;
 
   int32_t tagLen = strlen(tagTXT);
- 
+
   uint32_t delim = (col0 ? 0 : 1) + tagLen;
 
   if
     (
       (col0 || IsSpace(aInString[0]))
         &&
         (
           aLength <= int32_t(delim) ||
@@ -734,47 +734,47 @@ mozTXTToHTMLConv::SmilyHit(const char16_
               aInString[delim] == ';' ||
               aInString[delim] == '8' ||
               aInString[delim] == '>' ||
               aInString[delim] == '!' ||
               aInString[delim] == '?'
             )
             && IsSpace(aInString[delim + 1]))
         )
-        && ItMatchesDelimited(aInString, aLength, NS_ConvertASCIItoUTF16(tagTXT).get(), tagLen, 
+        && ItMatchesDelimited(aInString, aLength, NS_ConvertASCIItoUTF16(tagTXT).get(), tagLen,
                               col0 ? LT_IGNORE : LT_DELIMITER, LT_IGNORE)
 	        // Note: tests at different pos for LT_IGNORE and LT_DELIMITER
     )
   {
     if (!col0)
     {
       outputHTML.Truncate();
       outputHTML.Append(char16_t(' '));
     }
 
     outputHTML.AppendLiteral("<span class=\""); // <span class="
     AppendASCIItoUTF16(imageName, outputHTML);  // e.g. smiley-frown
-    outputHTML.AppendLiteral("\" title=\"");    // " title="     
+    outputHTML.AppendLiteral("\" title=\"");    // " title="
     AppendASCIItoUTF16(tagTXT, outputHTML);     // smiley tooltip
-    outputHTML.AppendLiteral("\"><span>");      // "><span>      
-    AppendASCIItoUTF16(tagTXT, outputHTML);     // original text 
+    outputHTML.AppendLiteral("\"><span>");      // "><span>
+    AppendASCIItoUTF16(tagTXT, outputHTML);     // original text
     outputHTML.AppendLiteral("</span></span>"); // </span></span>
     glyphTextLen = (col0 ? 0 : 1) + tagLen;
     return true;
   }
 
   return false;
 }
 
 // the glyph is appended to aOutputString instead of the original string...
 bool
 mozTXTToHTMLConv::GlyphHit(const char16_t * aInString, int32_t aInLength, bool col0,
          nsString& aOutputString, int32_t& glyphTextLen)
 {
-  char16_t text0 = aInString[0]; 
+  char16_t text0 = aInString[0];
   char16_t text1 = aInString[1];
   char16_t firstChar = (col0 ? text0 : text1);
 
   // temporary variable used to store the glyph html text
   nsAutoString outputHTML;
   bool bTestSmilie;
   bool bArg = false;
   int i;
@@ -801,116 +801,116 @@ mozTXTToHTMLConv::GlyphHit(const char16_
         bTestSmilie = true;
         bArg = false;
     }
     if ( bTestSmilie && (
           SmilyHit(aInString, aInLength, bArg,
                    ":-)",
                    "moz-smiley-s1", // smile
                    outputHTML, glyphTextLen) ||
-  
+
           SmilyHit(aInString, aInLength, bArg,
                    ":)",
                    "moz-smiley-s1", // smile
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-D",
                    "moz-smiley-s5", // laughing
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-(",
                    "moz-smiley-s2", // frown
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":(",
                    "moz-smiley-s2", // frown
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-[",
                    "moz-smiley-s6", // embarassed
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ";-)",
                    "moz-smiley-s3", // wink
                    outputHTML, glyphTextLen) ||
 
           SmilyHit(aInString, aInLength, col0,
                    ";)",
                    "moz-smiley-s3", // wink
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-\\",
                    "moz-smiley-s7", // undecided
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-P",
                    "moz-smiley-s4", // tongue
                    outputHTML, glyphTextLen) ||
-                   
+
           SmilyHit(aInString, aInLength, bArg,
                    ";-P",
                    "moz-smiley-s4", // tongue
-                   outputHTML, glyphTextLen) ||  
-         
+                   outputHTML, glyphTextLen) ||
+
           SmilyHit(aInString, aInLength, bArg,
                    "=-O",
                    "moz-smiley-s8", // surprise
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-*",
                    "moz-smiley-s9", // kiss
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ">:o",
                    "moz-smiley-s10", // yell
                    outputHTML, glyphTextLen) ||
-          
+
           SmilyHit(aInString, aInLength, bArg,
                    ">:-o",
                    "moz-smiley-s10", // yell
                    outputHTML, glyphTextLen) ||
-        
+
           SmilyHit(aInString, aInLength, bArg,
                    "8-)",
                    "moz-smiley-s11", // cool
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-$",
                    "moz-smiley-s12", // money
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-!",
                    "moz-smiley-s13", // foot
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    "O:-)",
                    "moz-smiley-s14", // innocent
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ":'(",
                    "moz-smiley-s15", // cry
                    outputHTML, glyphTextLen) ||
-         
+
           SmilyHit(aInString, aInLength, bArg,
                    ":-X",
                    "moz-smiley-s16", // sealed
-                   outputHTML, glyphTextLen) 
+                   outputHTML, glyphTextLen)
         )
     )
     {
         aOutputString.Append(outputHTML);
         return true;
     }
     i++;
   }
@@ -937,37 +937,37 @@ mozTXTToHTMLConv::GlyphHit(const char16_
       aOutputString.AppendLiteral("&plusmn;");
       glyphTextLen = 3;
       return true;
     }
   }
 
   // x^2  =>  x<sup>2</sup>,   also handle powers x^-2,  x^0.5
   // implement regular expression /[\dA-Za-z\)\]}]\^-?\d+(\.\d+)*[^\dA-Za-z]/
-  if    
+  if
     (
       text1 == '^'
-      && 
+      &&
       (
-        nsCRT::IsAsciiDigit(text0) || nsCRT::IsAsciiAlpha(text0) || 
+        nsCRT::IsAsciiDigit(text0) || nsCRT::IsAsciiAlpha(text0) ||
         text0 == ')' || text0 == ']' || text0 == '}'
       )
       &&
       (
         (2 < aInLength && nsCRT::IsAsciiDigit(aInString[2])) ||
         (3 < aInLength && aInString[2] == '-' && nsCRT::IsAsciiDigit(aInString[3]))
       )
     )
   {
     // Find first non-digit
     int32_t delimPos = 3;  // skip "^" and first digit (or '-')
     for (; delimPos < aInLength
            &&
            (
-             nsCRT::IsAsciiDigit(aInString[delimPos]) || 
+             nsCRT::IsAsciiDigit(aInString[delimPos]) ||
              (aInString[delimPos] == '.' && delimPos + 1 < aInLength &&
                nsCRT::IsAsciiDigit(aInString[delimPos + 1]))
            );
          delimPos++)
       ;
 
     if (delimPos < aInLength && nsCRT::IsAsciiAlpha(aInString[delimPos]))
     {
@@ -1007,17 +1007,17 @@ mozTXTToHTMLConv::GlyphHit(const char16_
 /***************************************************************************
   Library-internal Interface
 ****************************************************************************/
 
 mozTXTToHTMLConv::mozTXTToHTMLConv()
 {
 }
 
-mozTXTToHTMLConv::~mozTXTToHTMLConv() 
+mozTXTToHTMLConv::~mozTXTToHTMLConv()
 {
 }
 
 NS_IMPL_ISUPPORTS(mozTXTToHTMLConv,
                   mozITXTToHTMLConv,
                   nsIStreamConverter,
                   nsIStreamListener,
                   nsIRequestObserver)
@@ -1209,17 +1209,17 @@ mozTXTToHTMLConv::ScanTXT(const char16_t
       i++;
       break;
     }
   }
 }
 
 void
 mozTXTToHTMLConv::ScanHTML(nsString& aInString, uint32_t whattodo, nsString &aOutString)
-{ 
+{
   // some common variables we were recalculating
   // every time inside the for loop...
   int32_t lengthOfInString = aInString.Length();
   const char16_t * uniBuffer = aInString.get();
 
 #ifdef DEBUG_BenB_Perf
   PRTime parsing_start = PR_IntervalNow();
 #endif
@@ -1300,18 +1300,18 @@ mozTXTToHTMLConv::ScanHTML(nsString& aIn
       aOutString.Append(&uniBuffer[start], i - start);
     }
     else
     {
       uint32_t start = uint32_t(i);
       i = aInString.FindChar('<', i);
       if (i == kNotFound)
         i = lengthOfInString;
-  
-      nsString tempString;     
+
+      nsString tempString;
       tempString.SetCapacity(uint32_t((uint32_t(i) - start) * growthRate));
       UnescapeStr(uniBuffer, start, uint32_t(i) - start, tempString);
       ScanTXT(tempString.get(), tempString.Length(), whattodo, aOutString);
     }
   }
 
 #ifdef DEBUG_BenB_Perf
   printf("ScanHTML time:    %d ms\n", PR_IntervalToMilliseconds(PR_IntervalNow() - parsing_start));
--- a/netwerk/streamconv/converters/mozTXTToHTMLConv.h
+++ b/netwerk/streamconv/converters/mozTXTToHTMLConv.h
@@ -59,17 +59,17 @@ protected:
   <li>Case 2: http:   "www.mozilla.org"     -> "http://www.mozilla.org"
   <li>Case 3: ftp:    "ftp.mozilla.org"     -> "ftp://www.mozilla.org"
   </ul>
   It does no check, if the resulting URL is valid.
   @param text (in): abbreviated URL
   @param pos (in): position of "@" (case 1) or first "." (case 2 and 3)
   @return Completed URL at success and empty string at failure
  */
-  void CompleteAbbreviatedURL(const char16_t * aInString, int32_t aInLength, 
+  void CompleteAbbreviatedURL(const char16_t * aInString, int32_t aInLength,
                               const uint32_t pos, nsString& aOutString);
 
 
 //////////////////////////////////////////////////////////
 private:
 //////////////////////////////////////////////////////////
 
   enum LIMTYPE
@@ -101,17 +101,17 @@ private:
 */
   uint32_t NumberOfMatches(const char16_t * aInString, int32_t aInStringLength,
       const char16_t* rep, int32_t aRepLen, LIMTYPE before, LIMTYPE after);
 
 /**
   Currently only changes "<", ">" and "&". All others stay as they are.<p>
   "Char" in function name to avoid side effects with nsString(ch)
   constructors.
-  @param ch (in) 
+  @param ch (in)
   @param aStringToAppendto (out) - the string to append the escaped
                                    string to.
   @param inAttribute (in) - will escape quotes, too (which is
                             only needed for attribute values)
 */
   void EscapeChar(const char16_t ch, nsString& aStringToAppendto,
                   bool inAttribute);
 
@@ -205,17 +205,17 @@ private:
  * @param check (in): Current mode
  * @param start (in), end (in): see FindURLEnd
  * @param txtURL (out): Guessed (raw) URL.
  *             Without whitespace, but not completed.
  * @param desc (out): Link as shown to the user, but already escaped.
  *             Should be placed between the <a> and </a> tags.
  * @param replaceBefore(out), replaceAfter (out): see FindURL
  */
-  void CalculateURLBoundaries(const char16_t * aInString, int32_t aInStringLength, 
+  void CalculateURLBoundaries(const char16_t * aInString, int32_t aInStringLength,
      const uint32_t pos, const uint32_t whathasbeendone,
      const modetype check, const uint32_t start, const uint32_t end,
      nsString& txtURL, nsString& desc,
      int32_t& replaceBefore, int32_t& replaceAfter);
 
 /**
  * @param txtURL (in), desc (in): see CalculateURLBoundaries
  * @param outputHTML (out): see FindURL
@@ -240,17 +240,17 @@ private:
   @param attributeHTML (in): HTML-attribute to add to opening tagHTML,
               e.g. "class=txt_star"
   @param aOutString: string to APPEND the converted html into
   @param open (in/out): Number of currently open tags of type tagHTML
   @return Conversion succeeded
 */
   bool StructPhraseHit(const char16_t * aInString, int32_t aInStringLength, bool col0,
      const char16_t* tagTXT,
-     int32_t aTagTxtLen, 
+     int32_t aTagTxtLen,
      const char* tagHTML, const char* attributeHTML,
      nsString& aOutputString, uint32_t& openTags);
 
 /**
   @param text (in), col0 (in): see GlyphHit
   @param tagTXT (in): Smily, see also StructPhraseHit
   @param imageName (in): the basename of the file that contains the image for this smilie
   @param outputHTML (out): new string containing the html for the smily
--- a/netwerk/streamconv/converters/nsDirIndexParser.cpp
+++ b/netwerk/streamconv/converters/nsDirIndexParser.cpp
@@ -30,17 +30,17 @@ nsDirIndexParser::nsDirIndexParser() {
 
 nsresult
 nsDirIndexParser::Init() {
   mLineStart = 0;
   mHasDescription = false;
   mFormat[0] = -1;
   auto encoding = mozilla::dom::FallbackEncoding::FromLocale();
   encoding->Name(mEncoding);
- 
+
   nsresult rv;
   // XXX not threadsafe
   if (gRefCntParser++ == 0)
     rv = CallGetService(NS_ITEXTTOSUBURI_CONTRACTID, &gTextToSubURI);
   else
     rv = NS_OK;
 
   return rv;
@@ -66,17 +66,17 @@ nsDirIndexParser::GetListener(nsIDirInde
 }
 
 NS_IMETHODIMP
 nsDirIndexParser::GetComment(char** aComment) {
   *aComment = ToNewCString(mComment);
 
   if (!*aComment)
     return NS_ERROR_OUT_OF_MEMORY;
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDirIndexParser::SetEncoding(const char* aEncoding) {
   mEncoding.Assign(aEncoding);
   return NS_OK;
 }
@@ -127,45 +127,45 @@ nsDirIndexParser::ParseFormat(const char
   // Parse a "200" format line, and remember the fields and their
   // ordering in mFormat. Multiple 200 lines stomp on each other.
   unsigned int formatNum = 0;
   mFormat[0] = -1;
 
   do {
     while (*aFormatStr && nsCRT::IsAsciiSpace(char16_t(*aFormatStr)))
       ++aFormatStr;
-    
+
     if (! *aFormatStr)
       break;
 
     nsAutoCString name;
     int32_t     len = 0;
     while (aFormatStr[len] && !nsCRT::IsAsciiSpace(char16_t(aFormatStr[len])))
       ++len;
     name.SetCapacity(len + 1);
     name.Append(aFormatStr, len);
     aFormatStr += len;
-    
+
     // Okay, we're gonna monkey with the nsStr. Bold!
     name.SetLength(nsUnescapeCount(name.BeginWriting()));
 
     // All tokens are case-insensitive - http://www.mozilla.org/projects/netlib/dirindexformat.html
     if (name.LowerCaseEqualsLiteral("description"))
       mHasDescription = true;
-    
+
     for (Field* i = gFieldTable; i->mName; ++i) {
       if (name.EqualsIgnoreCase(i->mName)) {
         mFormat[formatNum] = i->mType;
         mFormat[++formatNum] = -1;
         break;
       }
     }
 
   } while (*aFormatStr && (formatNum < (ArrayLength(mFormat)-1)));
-  
+
   return NS_OK;
 }
 
 nsresult
 nsDirIndexParser::ParseData(nsIDirIndex *aIdx, char* aDataStr, int32_t aLineLen)
 {
   // Parse a "201" data line, using the field ordering specified in
   // mFormat.
@@ -229,36 +229,36 @@ nsDirIndexParser::ParseData(nsIDirIndex 
       // byte afterwards
     }
 
     fieldType t = fieldType(mFormat[i]);
     switch (t) {
     case FIELD_FILENAME: {
       // don't unescape at this point, so that UnEscapeAndConvert() can
       filename = value;
-      
+
       bool    success = false;
-      
+
       nsAutoString entryuri;
-      
+
       if (gTextToSubURI) {
         nsAutoString result;
         if (NS_SUCCEEDED(rv = gTextToSubURI->UnEscapeAndConvert(
                            mEncoding, filename, result))) {
           if (!result.IsEmpty()) {
             aIdx->SetLocation(filename.get());
             if (!mHasDescription)
               aIdx->SetDescription(result.get());
             success = true;
           }
         } else {
           NS_WARNING("UnEscapeAndConvert error");
         }
       }
-      
+
       if (!success) {
         // if unsuccessfully at charset conversion, then
         // just fallback to unescape'ing in-place
         // XXX - this shouldn't be using UTF8, should it?
         // when can we fail to get the service, anyway? - bbaetz
         aIdx->SetLocation(filename.get());
         if (!mHasDescription) {
           aIdx->SetDescription(NS_ConvertUTF8toUTF16(value).get());
@@ -316,19 +316,19 @@ nsDirIndexParser::ParseData(nsIDirIndex 
 
 NS_IMETHODIMP
 nsDirIndexParser::OnDataAvailable(nsIRequest *aRequest, nsISupports *aCtxt,
                                   nsIInputStream *aStream,
                                   uint64_t aSourceOffset,
                                   uint32_t aCount) {
   if (aCount < 1)
     return NS_OK;
-  
+
   int32_t len = mBuf.Length();
-  
+
   // Ensure that our mBuf has capacity to hold the data we're about to
   // read.
   if (!mBuf.SetLength(len + aCount, fallible))
     return NS_ERROR_OUT_OF_MEMORY;
 
   // Now read the data into our buffer.
   nsresult rv;
   uint32_t count;
@@ -342,35 +342,35 @@ nsDirIndexParser::OnDataAvailable(nsIReq
 
   return ProcessData(aRequest, aCtxt);
 }
 
 nsresult
 nsDirIndexParser::ProcessData(nsIRequest *aRequest, nsISupports *aCtxt) {
   if (!mListener)
     return NS_ERROR_FAILURE;
-  
+
   int32_t     numItems = 0;
-  
+
   while(true) {
     ++numItems;
-    
+
     int32_t             eol = mBuf.FindCharInSet("\n\r", mLineStart);
     if (eol < 0)        break;
     mBuf.SetCharAt(char16_t('\0'), eol);
-    
+
     const char  *line = mBuf.get() + mLineStart;
-    
+
     int32_t lineLen = eol - mLineStart;
     mLineStart = eol + 1;
-    
+
     if (lineLen >= 4) {
       nsresult  rv;
       const char        *buf = line;
-      
+
       if (buf[0] == '1') {
         if (buf[1] == '0') {
           if (buf[2] == '0' && buf[3] == ':') {
             // 100. Human-readable comment line. Ignore
           } else if (buf[2] == '1' && buf[3] == ':') {
             // 101. Human-readable information line.
             mComment.Append(buf + 4);
 
@@ -391,17 +391,17 @@ nsDirIndexParser::ProcessData(nsIRequest
             if (NS_FAILED(rv)) {
               return rv;
             }
           } else if (buf[2] == '1' && buf[3] == ':') {
             // 201. Field data
             nsCOMPtr<nsIDirIndex> idx = do_CreateInstance("@mozilla.org/dirIndex;1",&rv);
             if (NS_FAILED(rv))
               return rv;
-            
+
             rv = ParseData(idx, ((char *)buf) + 4, lineLen - 4);
             if (NS_FAILED(rv)) {
               return rv;
             }
 
             mListener->OnIndexAvailable(aRequest, aCtxt, idx);
           }
         }
@@ -409,19 +409,19 @@ nsDirIndexParser::ProcessData(nsIRequest
         if (buf[1] == '0') {
           if (buf[2] == '0' && buf[3] == ':') {
             // 300. Self-referring URL
           } else if (buf[2] == '1' && buf[3] == ':') {
             // 301. OUR EXTENSION - encoding
             int i = 4;
             while (buf[i] && nsCRT::IsAsciiSpace(buf[i]))
               ++i;
-            
+
             if (buf[i])
               SetEncoding(buf+i);
           }
         }
       }
     }
   }
-  
+
   return NS_OK;
 }
--- a/netwerk/streamconv/converters/nsDirIndexParser.h
+++ b/netwerk/streamconv/converters/nsDirIndexParser.h
@@ -20,17 +20,17 @@ class nsDirIndexParser : public nsIDirIn
 private:
     virtual ~nsDirIndexParser();
 
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSISTREAMLISTENER
     NS_DECL_NSIREQUESTOBSERVER
     NS_DECL_NSIDIRINDEXPARSER
-    
+
     nsDirIndexParser();
     nsresult Init();
 
     enum fieldType {
         FIELD_UNKNOWN = 0, // MUST be 0
         FIELD_FILENAME,
         FIELD_DESCRIPTION,
         FIELD_CONTENTLENGTH,
--- a/netwerk/streamconv/converters/nsFTPDirListingConv.cpp
+++ b/netwerk/streamconv/converters/nsFTPDirListingConv.cpp
@@ -34,17 +34,17 @@
 // the file network.log.
 //
 static mozilla::LazyLogModule gFTPDirListConvLog("nsFTPDirListingConv");
 using namespace mozilla;
 
 // nsISupports implementation
 NS_IMPL_ISUPPORTS(nsFTPDirListingConv,
                   nsIStreamConverter,
-                  nsIStreamListener, 
+                  nsIStreamListener,
                   nsIRequestObserver)
 
 
 // nsIStreamConverter implementation
 NS_IMETHODIMP
 nsFTPDirListingConv::Convert(nsIInputStream *aFromStream,
                              const char *aFromType,
                              const char *aToType,
@@ -59,34 +59,34 @@ nsFTPDirListingConv::AsyncConvertData(co
                                       nsIStreamListener *aListener, nsISupports *aCtxt) {
     NS_ASSERTION(aListener && aFromType && aToType, "null pointer passed into FTP dir listing converter");
 
     // hook up our final listener. this guy gets the various On*() calls we want to throw
     // at him.
     mFinalListener = aListener;
     NS_ADDREF(mFinalListener);
 
-    MOZ_LOG(gFTPDirListConvLog, LogLevel::Debug, 
+    MOZ_LOG(gFTPDirListConvLog, LogLevel::Debug,
         ("nsFTPDirListingConv::AsyncConvertData() converting FROM raw, TO application/http-index-format\n"));
 
     return NS_OK;
 }
 
 
 // nsIStreamListener implementation
 NS_IMETHODIMP
 nsFTPDirListingConv::OnDataAvailable(nsIRequest* request, nsISupports *ctxt,
                                   nsIInputStream *inStr, uint64_t sourceOffset, uint32_t count) {
     NS_ASSERTION(request, "FTP dir listing stream converter needs a request");
-    
+
     nsresult rv;
 
     nsCOMPtr<nsIChannel> channel = do_QueryInterface(request, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     uint32_t read, streamLen;
 
     uint64_t streamLen64;
     rv = inStr->Available(&streamLen64);
     NS_ENSURE_SUCCESS(rv, rv);
     streamLen = (uint32_t)std::min(streamLen64, uint64_t(UINT32_MAX - 1));
 
     auto buffer = MakeUniqueFallible<char[]>(streamLen + 1);
@@ -125,17 +125,17 @@ nsFTPDirListingConv::OnDataAvailable(nsI
         NS_ENSURE_SUCCESS(rv, rv);
 
         mSentHeading = true;
     }
 
     char *line = buffer.get();
     line = DigestBufferLines(line, indexFormat);
 
-    MOZ_LOG(gFTPDirListConvLog, LogLevel::Debug, ("::OnData() sending the following %d bytes...\n\n%s\n\n", 
+    MOZ_LOG(gFTPDirListConvLog, LogLevel::Debug, ("::OnData() sending the following %d bytes...\n\n%s\n\n",
         indexFormat.Length(), indexFormat.get()) );
 
     // if there's any data left over, buffer it.
     if (line && *line) {
         mBuffer.Append(line);
         MOZ_LOG(gFTPDirListConvLog, LogLevel::Debug, ("::OnData() buffering the following %" PRIuSIZE " bytes...\n\n%s\n\n",
             strlen(line), line) );
     }
@@ -150,17 +150,17 @@ nsFTPDirListingConv::OnDataAvailable(nsI
 
     return rv;
 }
 
 
 // nsIRequestObserver implementation
 NS_IMETHODIMP
 nsFTPDirListingConv::OnStartRequest(nsIRequest* request, nsISupports *ctxt) {
-    // we don't care about start. move along... but start masqeurading 
+    // we don't care about start. move along... but start masqeurading
     // as the http-index channel now.
     return mFinalListener->OnStartRequest(request, ctxt);
 }
 
 NS_IMETHODIMP
 nsFTPDirListingConv::OnStopRequest(nsIRequest* request, nsISupports *ctxt,
                                    nsresult aStatus) {
     // we don't care about stop. move along...
@@ -197,17 +197,17 @@ nsFTPDirListingConv::GetHeaders(nsACStri
          rv = uri->GetAsciiSpec(spec);
          if (NS_FAILED(rv)) return rv;
          headers.Append(spec);
          rv = uri->SetPassword(pw);
          if (NS_FAILED(rv)) return rv;
     } else {
         rv = uri->GetAsciiSpec(spec);
         if (NS_FAILED(rv)) return rv;
-        
+
         headers.Append(spec);
     }
     headers.Append(char(nsCRT::LF));
     // END 300:
 
     // build up the column heading; 200:
     headers.AppendLiteral("200: filename content-length last-modified file-type\n");
     // END 200:
@@ -233,27 +233,27 @@ nsFTPDirListingConv::DigestBufferLines(c
             *eol = '\0';
             cr = false;
         }
 
         list_result result;
 
         int type = ParseFTPList(line, &state, &result );
 
-        // if it is other than a directory, file, or link -OR- if it is a 
+        // if it is other than a directory, file, or link -OR- if it is a
         // directory named . or .., skip over this line.
-        if ((type != 'd' && type != 'f' && type != 'l') || 
+        if ((type != 'd' && type != 'f' && type != 'l') ||
             (result.fe_type == 'd' && result.fe_fname[0] == '.' &&
             (result.fe_fnlen == 1 || (result.fe_fnlen == 2 &&  result.fe_fname[1] == '.'))) )
         {
             if (cr)
                 line = eol+2;
             else
                 line = eol+1;
-            
+
             continue;
         }
 
         // blast the index entry into the indexFormat buffer as a 201: line.
         aString.AppendLiteral("201: ");
         // FILENAME
 
         // parsers for styles 'U' and 'W' handle sequence " -> " themself
@@ -261,31 +261,31 @@ nsFTPDirListingConv::DigestBufferLines(c
             const char* offset = strstr(result.fe_fname, " -> ");
             if (offset) {
                 result.fe_fnlen = offset - result.fe_fname;
             }
         }
 
         nsAutoCString buf;
         aString.Append('\"');
-        aString.Append(NS_EscapeURL(Substring(result.fe_fname, 
+        aString.Append(NS_EscapeURL(Substring(result.fe_fname,
                                               result.fe_fname+result.fe_fnlen),
                                     esc_Minimal|esc_OnlyASCII|esc_Forced,buf));
         aString.AppendLiteral("\" ");
- 
+
         // CONTENT LENGTH
-        
-        if (type != 'd') 
+
+        if (type != 'd')
         {
             for (int i = 0; i < int(sizeof(result.fe_size)); ++i)
             {
                 if (result.fe_size[i] != '\0')
                     aString.Append((const char*)&result.fe_size[i], 1);
             }
-            
+
             aString.Append(' ');
         }
         else
             aString.AppendLiteral("0 ");
 
 
         // MODIFIED DATE
         char buffer[256] = "";
@@ -303,17 +303,17 @@ nsFTPDirListingConv::DigestBufferLines(c
 
         // ENTRY TYPE
         if (type == 'd')
             aString.AppendLiteral("DIRECTORY");
         else if (type == 'l')
             aString.AppendLiteral("SYMBOLIC-LINK");
         else
             aString.AppendLiteral("FILE");
-        
+
         aString.Append(' ');
 
         aString.Append(char(nsCRT::LF)); // complete this line
         // END 201:
 
         if (cr)
             line = eol+2;
         else
--- a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
+++ b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
@@ -128,17 +128,17 @@ nsHTTPCompressConv::OnStartRequest(nsIRe
 }
 
 NS_IMETHODIMP
 nsHTTPCompressConv::OnStopRequest(nsIRequest* request, nsISupports *aContext,
                                   nsresult aStatus)
 {
   nsresult status = aStatus;
   LOG(("nsHttpCompresssConv %p onstop %" PRIx32 "\n", this, static_cast<uint32_t>(aStatus)));
-  
+
   // Framing integrity is enforced for content-encoding: gzip, but not for
   // content-encoding: deflate. Note that gzip vs deflate is NOT determined
   // by content sniffing but only via header.
   if (!mStreamEnded && NS_SUCCEEDED(status) &&
       (mFailUncleanStops && (mMode == HTTP_COMPRESS_GZIP)) ) {
     // This is not a clean end of gzip stream: the transfer is incomplete.
     status = NS_ERROR_NET_PARTIAL_TRANSFER;
     LOG(("nsHttpCompresssConv %p onstop partial gzip\n", this));
@@ -429,17 +429,17 @@ nsHTTPCompressConv::OnDataAvailable(nsIR
 
           inflateEnd(&d_stream);
           mStreamEnded = true;
           break;
         } else if (code == Z_OK) {
           if (bytesWritten) {
             rv = do_OnDataAvailable(request, aContext, aSourceOffset, (char *)mOutBuffer, bytesWritten);
             if (NS_FAILED (rv)) {
-              return rv; 
+              return rv;
             }
           }
         } else if (code == Z_BUF_ERROR) {
           if (bytesWritten) {
             rv = do_OnDataAvailable(request, aContext, aSourceOffset, (char *)mOutBuffer, bytesWritten);
             if (NS_FAILED (rv)) {
               return rv;
             }
--- a/netwerk/streamconv/converters/nsIndexedToHTML.cpp
+++ b/netwerk/streamconv/converters/nsIndexedToHTML.cpp
@@ -52,21 +52,21 @@ static void AppendNonAsciiToNCR(const ns
   }
 }
 
 nsresult
 nsIndexedToHTML::Create(nsISupports *aOuter, REFNSIID aIID, void **aResult) {
     nsresult rv;
     if (aOuter)
         return NS_ERROR_NO_AGGREGATION;
-    
+
     nsIndexedToHTML* _s = new nsIndexedToHTML();
     if (_s == nullptr)
         return NS_ERROR_OUT_OF_MEMORY;
-    
+
     rv = _s->QueryInterface(aIID, aResult);
     return rv;
 }
 
 nsresult
 nsIndexedToHTML::Init(nsIStreamListener* aListener) {
     nsresult rv = NS_OK;
 
@@ -101,17 +101,17 @@ nsIndexedToHTML::AsyncConvertData(const 
 
 NS_IMETHODIMP
 nsIndexedToHTML::OnStartRequest(nsIRequest* request, nsISupports *aContext) {
     nsCString buffer;
     nsresult rv = DoOnStartRequest(request, aContext, buffer);
     if (NS_FAILED(rv)) {
         request->Cancel(rv);
     }
-    
+
     rv = mListener->OnStartRequest(request, aContext);
     if (NS_FAILED(rv)) return rv;
 
     // The request may have been canceled, and if that happens, we want to
     // suppress calls to OnDataAvailable.
     request->GetStatus(&rv);
     if (NS_FAILED(rv)) return rv;
 
@@ -144,17 +144,17 @@ nsIndexedToHTML::DoOnStartRequest(nsIReq
 
     channel->SetContentType(NS_LITERAL_CSTRING("text/html"));
 
     mParser = do_CreateInstance("@mozilla.org/dirIndexParser;1",&rv);
     if (NS_FAILED(rv)) return rv;
 
     rv = mParser->SetListener(this);
     if (NS_FAILED(rv)) return rv;
-    
+
     rv = mParser->OnStartRequest(request, aContext);
     if (NS_FAILED(rv)) return rv;
 
     nsAutoCString baseUri, titleUri;
     rv = uri->GetAsciiSpec(baseUri);
     if (NS_FAILED(rv)) return rv;
     titleUri = baseUri;
 
@@ -173,17 +173,17 @@ nsIndexedToHTML::DoOnStartRequest(nsIReq
 
     bool isScheme = false;
     bool isSchemeFile = false;
     if (NS_SUCCEEDED(uri->SchemeIs("ftp", &isScheme)) && isScheme) {
 
         // strip out the password here, so it doesn't show in the page title
         // This is done by the 300: line generation in ftp, but we don't use
         // that - see above
-        
+
         nsAutoCString pw;
         rv = uri->GetPassword(pw);
         if (NS_FAILED(rv)) return rv;
         if (!pw.IsEmpty()) {
              nsCOMPtr<nsIURI> newUri;
              rv = uri->Clone(getter_AddRefs(newUri));
              if (NS_FAILED(rv)) return rv;
              rv = newUri->SetPassword(EmptyCString());
@@ -201,25 +201,25 @@ nsIndexedToHTML::DoOnStartRequest(nsIReq
             if (NS_FAILED(rv)) return rv;
         }
     } else if (NS_SUCCEEDED(uri->SchemeIs("file", &isSchemeFile)) && isSchemeFile) {
         nsCOMPtr<nsIFileURL> fileUrl = do_QueryInterface(uri);
         nsCOMPtr<nsIFile> file;
         rv = fileUrl->GetFile(getter_AddRefs(file));
         if (NS_FAILED(rv)) return rv;
         file->SetFollowLinks(true);
-        
+
         nsAutoCString url;
         rv = net_GetURLSpecFromFile(file, url);
         if (NS_FAILED(rv)) return rv;
         baseUri.Assign(url);
-        
+
         nsCOMPtr<nsIFile> parent;
         rv = file->GetParent(getter_AddRefs(parent));
-        
+
         if (parent && NS_SUCCEEDED(rv)) {
             net_GetURLSpecFromDir(parent, url);
             if (NS_FAILED(rv)) return rv;
             parentStr.Assign(url);
         }
 
         // Directory index will be always encoded in UTF-8 if this is file url
         buffer.AppendLiteral("<meta charset=\"UTF-8\">\n");
@@ -532,17 +532,17 @@ nsIndexedToHTML::DoOnStartRequest(nsIReq
                                        sizeof(formatTitle)/sizeof(char16_t*),
                                        getter_Copies(title));
     if (NS_FAILED(rv)) return rv;
 
     // we want to convert string bundle to NCR
     // to ensure they're shown in any charsets
     AppendNonAsciiToNCR(title, buffer);
 
-    buffer.AppendLiteral("</title>\n");    
+    buffer.AppendLiteral("</title>\n");
 
     // If there is a quote character in the baseUri, then
     // lets not add a base URL.  The reason for this is that
     // if we stick baseUri containing a quote into a quoted
     // string, the quote character will prematurely close
     // the base href string.  This is a fall-back check;
     // that's why it is OK to not use a base rather than
     // trying to play nice and escaping the quotes.  See bug
@@ -569,27 +569,27 @@ nsIndexedToHTML::DoOnStartRequest(nsIReq
     nsCString direction(NS_LITERAL_CSTRING("ltr"));
     if (LocaleService::GetInstance()->IsAppLocaleRTL()) {
       direction.AssignLiteral("rtl");
     }
 
     buffer.AppendLiteral("</head>\n<body dir=\"");
     buffer.Append(direction);
     buffer.AppendLiteral("\">\n<h1>");
-    
+
     const char16_t* formatHeading[] = {
         htmlEscSpec.get()
     };
 
     rv = mBundle->FormatStringFromName(u"DirTitle",
                                        formatHeading,
                                        sizeof(formatHeading)/sizeof(char16_t*),
                                        getter_Copies(title));
     if (NS_FAILED(rv)) return rv;
-    
+
     AppendNonAsciiToNCR(title, buffer);
     buffer.AppendLiteral("</h1>\n");
 
     if (!parentStr.IsEmpty()) {
         nsXPIDLString parentText;
         rv = mBundle->GetStringFromName(u"DirGoUp",
                                         getter_Copies(parentText));
         if (NS_FAILED(rv)) return rv;
@@ -656,17 +656,17 @@ nsIndexedToHTML::OnStopRequest(nsIReques
         nsCString buffer;
         buffer.AssignLiteral("</tbody></table></body></html>\n");
 
         aStatus = SendToListener(request, aContext, buffer);
     }
 
     mParser->OnStopRequest(request, aContext, aStatus);
     mParser = nullptr;
-    
+
     return mListener->OnStopRequest(request, aContext, aStatus);
 }
 
 nsresult
 nsIndexedToHTML::SendToListener(nsIRequest* aRequest, nsISupports *aContext, const nsACString &aBuffer)
 {
     nsCOMPtr<nsIInputStream> inputData;
     nsresult rv = NS_NewCStringInputStream(getter_AddRefs(inputData), aBuffer);
@@ -757,17 +757,17 @@ nsIndexedToHTML::OnIndexAvailable(nsIReq
     uint32_t escFlags;
     // for some protocols, we expect the location to be absolute.
     // if so, and if the location indeed appears to be a valid URI, then go
     // ahead and treat it like one.
 
     nsAutoCString scheme;
     if (mExpectAbsLoc &&
         NS_SUCCEEDED(net_ExtractURLScheme(loc, scheme))) {
-        // escape as absolute 
+        // escape as absolute
         escFlags = esc_Forced | esc_AlwaysCopy | esc_Minimal;
     }
     else {
         // escape as relative
         // esc_Directory is needed because directories have a trailing slash.
         // Without it, the trailing '/' will be escaped, and links from within
         // that directory will be incorrect
         escFlags = esc_Forced | esc_AlwaysCopy | esc_FileBaseName | esc_Colon | esc_Directory;
@@ -861,17 +861,17 @@ nsIndexedToHTML::OnInformationAvailable(
     nsAdoptingString escaped(nsEscapeHTML2(PromiseFlatString(aInfo).get()));
     if (!escaped)
         return NS_ERROR_OUT_OF_MEMORY;
     pushBuffer.AppendLiteral("<tr>\n <td>");
     // escaped is provided in Unicode, so write hex NCRs as necessary
     // to prevent the HTML parser from applying a character set.
     AppendNonAsciiToNCR(escaped, pushBuffer);
     pushBuffer.AppendLiteral("</td>\n <td></td>\n <td></td>\n <td></td>\n</tr>\n");
-    
+
     return SendToListener(aRequest, aCtxt, pushBuffer);
 }
 
 void nsIndexedToHTML::FormatSizeString(int64_t inSize, nsCString& outSizeString)
 {
     outSizeString.Truncate();
     if (inSize > int64_t(0)) {
         // round up to the nearest Kilobyte
--- a/netwerk/streamconv/converters/nsIndexedToHTML.h
+++ b/netwerk/streamconv/converters/nsIndexedToHTML.h
@@ -30,17 +30,17 @@ public:
     nsIndexedToHTML();
 
     nsresult Init(nsIStreamListener *aListener);
 
     static nsresult
     Create(nsISupports *aOuter, REFNSIID aIID, void **aResult);
 
 protected:
-    
+
     void FormatSizeString(int64_t inSize, nsCString& outSizeString);
     nsresult SendToListener(nsIRequest* aRequest, nsISupports *aContext, const nsACString &aBuffer);
     // Helper to properly implement OnStartRequest
     nsresult DoOnStartRequest(nsIRequest* request, nsISupports *aContext,
                               nsCString& aBuffer);
 
 protected:
     nsCOMPtr<nsIDirIndexParser>     mParser;
--- a/netwerk/streamconv/converters/nsMultiMixedConv.cpp
+++ b/netwerk/streamconv/converters/nsMultiMixedConv.cpp
@@ -42,17 +42,17 @@ nsPartChannel::nsPartChannel(nsIChannel 
 
 nsPartChannel::~nsPartChannel()
 {
 }
 
 void nsPartChannel::InitializeByteRange(int64_t aStart, int64_t aEnd)
 {
     mIsByteRangeRequest = true;
-    
+
     mByteRangeStart = aStart;
     mByteRangeEnd   = aEnd;
 }
 
 nsresult nsPartChannel::SendOnStartRequest(nsISupports* aContext)
 {
     return mListener->OnStartRequest(this, aContext);
 }
@@ -281,17 +281,17 @@ nsPartChannel::GetNotificationCallbacks(
 }
 
 NS_IMETHODIMP
 nsPartChannel::SetNotificationCallbacks(nsIInterfaceRequestor* aCallbacks)
 {
     return mMultipartChannel->SetNotificationCallbacks(aCallbacks);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPartChannel::GetSecurityInfo(nsISupports * *aSecurityInfo)
 {
     return mMultipartChannel->GetSecurityInfo(aSecurityInfo);
 }
 
 NS_IMETHODIMP
 nsPartChannel::GetContentType(nsACString &aContentType)
 {
@@ -391,34 +391,34 @@ nsPartChannel::GetIsLastPart(bool *aIsLa
     *aIsLastPart = mIsLastPart;
     return NS_OK;
 }
 
 //
 // nsIByteRangeRequest implementation...
 //
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPartChannel::GetIsByteRangeRequest(bool *aIsByteRangeRequest)
 {
     *aIsByteRangeRequest = mIsByteRangeRequest;
 
     return NS_OK;
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPartChannel::GetStartRange(int64_t *aStartRange)
 {
     *aStartRange = mByteRangeStart;
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPartChannel::GetEndRange(int64_t *aEndRange)
 {
     *aEndRange = mByteRangeEnd;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsPartChannel::GetBaseChannel(nsIChannel ** aReturn)
@@ -911,23 +911,23 @@ nsMultiMixedConv::SendStop(nsresult aSta
     // Make sure we send out all accumulcated data prior call to OnStopRequest.
     // If there is no data, this is a no-op.
     nsresult rv = SendData();
     if (NS_SUCCEEDED(aStatus)) {
         aStatus = rv;
     }
     if (mPartChannel) {
         rv = mPartChannel->SendOnStopRequest(mContext, aStatus);
-        // don't check for failure here, we need to remove the channel from 
+        // don't check for failure here, we need to remove the channel from
         // the loadgroup.
 
         // Remove the channel from its load group (if any)
         nsCOMPtr<nsILoadGroup> loadGroup;
         (void) mPartChannel->GetLoadGroup(getter_AddRefs(loadGroup));
-        if (loadGroup) 
+        if (loadGroup)
             (void) loadGroup->RemoveRequest(mPartChannel, mContext, aStatus);
     }
 
     mPartChannel = nullptr;
     return rv;
 }
 
 void
--- a/netwerk/streamconv/converters/nsMultiMixedConv.h
+++ b/netwerk/streamconv/converters/nsMultiMixedConv.h
@@ -85,17 +85,17 @@ protected:
                                    // this part of the multipart document
   bool                    mIsLastPart;
 };
 
 // The nsMultiMixedConv stream converter converts a stream of type "multipart/x-mixed-replace"
 // to it's subparts. There was some debate as to whether or not the functionality desired
 // when HTTP confronted this type required a stream converter. After all, this type really
 // prompts various viewer related actions rather than stream conversion. There simply needs
-// to be a piece in place that can strip out the multiple parts of a stream of this type, and 
+// to be a piece in place that can strip out the multiple parts of a stream of this type, and
 // "display" them accordingly.
 //
 // With that said, this "stream converter" spends more time packaging up the sub parts of the
 // main stream and sending them off the destination stream listener, than doing any real
 // stream parsing/converting.
 //
 // WARNING: This converter requires that it's destination stream listener be able to handle
 //   multiple OnStartRequest(), OnDataAvailable(), and OnStopRequest() call combinations.
@@ -115,17 +115,17 @@ protected:
 //  ... (other headers if any)
 //  [\r]\n (second line feed to delimit end of headers)
 //  data
 //  --BoundaryToken-- (end delimited by final "--")
 //
 // linebreaks can be either CRLF or LFLF. linebreaks preceding
 // boundary tokens are NOT considered part of the data. BoundaryToken
 // is any opaque string.
-//  
+//
 //
 
 class nsMultiMixedConv : public nsIStreamConverter {
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSISTREAMCONVERTER
     NS_DECL_NSISTREAMLISTENER
     NS_DECL_NSIREQUESTOBSERVER
--- a/netwerk/streamconv/converters/nsTXTToHTMLConv.h
+++ b/netwerk/streamconv/converters/nsTXTToHTMLConv.h
@@ -46,17 +46,17 @@ template<class T> class nsAutoPtr;
  *
  * This works as a stream converter, so data will arrive by
  * OnStartRequest/OnDataAvailable/OnStopRequest calls.
  *
  * OStopR will possibly process a remaining token.
  *
  * If the data of one pass contains a part of a token, that part will be stored
  * in mBuffer. The rest of the data will be sent to the next listener.
- * 
+ *
  * XXX this seems suboptimal. this means that this design will only work for
  * links. and it is impossible to append anything to the token. this means that,
  * for example, making *foo* bold is not possible.
  */
 class nsTXTToHTMLConv : public nsITXTToHTMLConv {
 public:
     NS_DECL_ISUPPORTS
     NS_DECL_NSISTREAMCONVERTER
@@ -68,17 +68,17 @@ public:
     nsresult Init();
 
 protected:
     virtual ~nsTXTToHTMLConv();
 
     // return the token and it's location in the underlying buffer.
     int32_t FindToken(int32_t cursor, convToken* *_retval);
 
-    // return the cursor location after munging HTML into the 
+    // return the cursor location after munging HTML into the
     // underlying buffer, according to mToken
     int32_t CatHTML(int32_t front, int32_t back);
 
     nsCOMPtr<nsIStreamListener>     mListener; // final listener (consumer)
     nsString                        mBuffer;   // any carry over data
     nsTArray<nsAutoPtr<convToken> > mTokens;   // list of tokens to search for
     convToken                       *mToken;   // current token (if any)
     nsString                        mPageTitle; // Page title
--- a/netwerk/streamconv/converters/nsUnknownDecoder.cpp
+++ b/netwerk/streamconv/converters/nsUnknownDecoder.cpp
@@ -140,29 +140,29 @@ NS_INTERFACE_MAP_END
 // nsIStreamConverter methods...
 //
 // ----
 
 NS_IMETHODIMP
 nsUnknownDecoder::Convert(nsIInputStream *aFromStream,
                           const char *aFromType,
                           const char *aToType,
-                          nsISupports *aCtxt, 
-                          nsIInputStream **aResultStream) 
+                          nsISupports *aCtxt,
+                          nsIInputStream **aResultStream)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP
-nsUnknownDecoder::AsyncConvertData(const char *aFromType, 
+nsUnknownDecoder::AsyncConvertData(const char *aFromType,
                                    const char *aToType,
-                                   nsIStreamListener *aListener, 
+                                   nsIStreamListener *aListener,
                                    nsISupports *aCtxt)
 {
-  NS_ASSERTION(aListener && aFromType && aToType, 
+  NS_ASSERTION(aListener && aFromType && aToType,
                "null pointer passed into multi mixed converter");
   // hook up our final listener. this guy gets the various On*() calls we want to throw
   // at him.
   //
 
   MutexAutoLock lock(mMutex);
   mNextListener = aListener;
   return (aListener) ? NS_OK : NS_ERROR_FAILURE;
@@ -170,20 +170,20 @@ nsUnknownDecoder::AsyncConvertData(const
 
 // ----
 //
 // nsIStreamListener methods...
 //
 // ----
 
 NS_IMETHODIMP
-nsUnknownDecoder::OnDataAvailable(nsIRequest* request, 
+nsUnknownDecoder::OnDataAvailable(nsIRequest* request,
                                   nsISupports *aCtxt,
-                                  nsIInputStream *aStream, 
-                                  uint64_t aSourceOffset, 
+                                  nsIInputStream *aStream,
+                                  uint64_t aSourceOffset,
                                   uint32_t aCount)
 {
   nsresult rv = NS_OK;
 
   bool contentTypeEmpty;
   {
     MutexAutoLock lock(mMutex);
     if (!mNextListener) return NS_ERROR_FAILURE;
@@ -228,17 +228,17 @@ nsUnknownDecoder::OnDataAvailable(nsIReq
     }
   }
 
   // Must not fire ODA again if it failed once
   if (aCount && NS_SUCCEEDED(rv)) {
 #ifdef DEBUG
     {
       MutexAutoLock lock(mMutex);
-      NS_ASSERTION(!mContentType.IsEmpty(), 
+      NS_ASSERTION(!mContentType.IsEmpty(),
                    "Content type should be known by now.");
     }
 #endif
 
     nsCOMPtr<nsIDivertableChannel> divertable = do_QueryInterface(request);
     if (divertable) {
       bool diverting;
       divertable->GetDivertingToParent(&diverting);
@@ -248,31 +248,31 @@ nsUnknownDecoder::OnDataAvailable(nsIReq
       }
     }
 
     nsCOMPtr<nsIStreamListener> listener;
     {
       MutexAutoLock lock(mMutex);
       listener = mNextListener;
     }
-    rv = listener->OnDataAvailable(request, aCtxt, aStream, 
+    rv = listener->OnDataAvailable(request, aCtxt, aStream,
                                    aSourceOffset, aCount);
   }
 
   return rv;
 }
 
 // ----
 //
 // nsIRequestObserver methods...
 //
 // ----
 
 NS_IMETHODIMP
-nsUnknownDecoder::OnStartRequest(nsIRequest* request, nsISupports *aCtxt) 
+nsUnknownDecoder::OnStartRequest(nsIRequest* request, nsISupports *aCtxt)
 {
   nsresult rv = NS_OK;
 
   {
     MutexAutoLock lock(mMutex);
     if (!mNextListener) return NS_ERROR_FAILURE;
   }
 
@@ -310,18 +310,18 @@ nsUnknownDecoder::OnStopRequest(nsIReque
 
   //
   // The total amount of data is less than the size of the sniffer buffer.
   // Analyze the buffer now...
   //
   if (contentTypeEmpty) {
     DetermineContentType(request);
 
-    // Make sure channel listeners see channel as pending while we call 
-    // OnStartRequest/OnDataAvailable, even though the underlying channel 
+    // Make sure channel listeners see channel as pending while we call
+    // OnStartRequest/OnDataAvailable, even though the underlying channel
     // has already hit OnStopRequest.
     nsCOMPtr<nsIForcePendingChannel> forcePendingChannel = do_QueryInterface(request);
     if (forcePendingChannel) {
       forcePendingChannel->ForcePending(true);
     }
 
     rv = FireListenerNotifications(request, aCtxt);
 
@@ -373,28 +373,28 @@ nsUnknownDecoder::GetMIMETypeFromContent
 
 // Actual sniffing code
 
 bool nsUnknownDecoder::AllowSniffing(nsIRequest* aRequest)
 {
   if (!mRequireHTMLsuffix) {
     return true;
   }
-  
+
   nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
   if (!channel) {
     NS_ERROR("QI failed");
     return false;
   }
 
   nsCOMPtr<nsIURI> uri;
   if (NS_FAILED(channel->GetURI(getter_AddRefs(uri))) || !uri) {
     return false;
   }
-  
+
   bool isLocalFile = false;
   if (NS_FAILED(uri->SchemeIs("file", &isLocalFile)) || isLocalFile) {
     return false;
   }
 
   return true;
 }
 
@@ -470,28 +470,28 @@ void nsUnknownDecoder::DetermineContentT
                    "Must have either a type string or a function to set the type");
       NS_ASSERTION(!sSnifferEntries[i].mMimeType ||
                    !sSnifferEntries[i].mContentTypeSniffer,
                    "Both a type string and a type sniffing function set;"
                    " using type string");
       if (sSnifferEntries[i].mMimeType) {
         MutexAutoLock lock(mMutex);
         mContentType = sSnifferEntries[i].mMimeType;
-        NS_ASSERTION(!mContentType.IsEmpty(), 
+        NS_ASSERTION(!mContentType.IsEmpty(),
                      "Content type should be known by now.");
         return;
       }
       if ((this->*(sSnifferEntries[i].mContentTypeSniffer))(aRequest)) {
 #ifdef DEBUG
         MutexAutoLock lock(mMutex);
-        NS_ASSERTION(!mContentType.IsEmpty(), 
+        NS_ASSERTION(!mContentType.IsEmpty(),
                      "Content type should be known by now.");
 #endif
         return;
-      }        
+      }
     }
   }
 
   nsAutoCString sniffedType;
   NS_SniffContent(NS_DATA_SNIFFER_CATEGORY, aRequest,
                   (const uint8_t*)testData, testDataLen, sniffedType);
   {
     MutexAutoLock lock(mMutex);
@@ -499,37 +499,37 @@ void nsUnknownDecoder::DetermineContentT
     if (!mContentType.IsEmpty()) {
       return;
     }
   }
 
   if (SniffForHTML(aRequest)) {
 #ifdef DEBUG
     MutexAutoLock lock(mMutex);
-    NS_ASSERTION(!mContentType.IsEmpty(), 
+    NS_ASSERTION(!mContentType.IsEmpty(),
                  "Content type should be known by now.");
 #endif
     return;
   }
-  
+
   // We don't know what this is yet.  Before we just give up, try
   // the URI from the request.
   if (SniffURI(aRequest)) {
 #ifdef DEBUG
     MutexAutoLock lock(mMutex);
-    NS_ASSERTION(!mContentType.IsEmpty(), 
+    NS_ASSERTION(!mContentType.IsEmpty(),
                  "Content type should be known by now.");
 #endif
     return;
   }
-  
+
   LastDitchSniff(aRequest);
 #ifdef DEBUG
   MutexAutoLock lock(mMutex);
-  NS_ASSERTION(!mContentType.IsEmpty(), 
+  NS_ASSERTION(!mContentType.IsEmpty(),
                "Content type should be known by now.");
 #endif
 }
 
 bool nsUnknownDecoder::SniffForHTML(nsIRequest* aRequest)
 {
   /*
    * To prevent a possible attack, we will not consider this to be
@@ -564,25 +564,25 @@ bool nsUnknownDecoder::SniffForHTML(nsIR
     return false;
   }
 
   // If we seem to be SGML or XML and we got down here, just pretend we're HTML
   if (*str == '!' || *str == '?') {
     mContentType = TEXT_HTML;
     return true;
   }
-  
+
   uint32_t bufSize = end - str;
   // We use sizeof(_tagstr) below because that's the length of _tagstr
   // with the one char " " or ">" appended.
 #define MATCHES_TAG(_tagstr)                                              \
   (bufSize >= sizeof(_tagstr) &&                                          \
    (PL_strncasecmp(str, _tagstr " ", sizeof(_tagstr)) == 0 ||             \
     PL_strncasecmp(str, _tagstr ">", sizeof(_tagstr)) == 0))
-    
+
   if (MATCHES_TAG("html")     ||
       MATCHES_TAG("frameset") ||
       MATCHES_TAG("body")     ||
       MATCHES_TAG("head")     ||
       MATCHES_TAG("script")   ||
       MATCHES_TAG("iframe")   ||
       MATCHES_TAG("a")        ||
       MATCHES_TAG("img")      ||
@@ -602,40 +602,40 @@ bool nsUnknownDecoder::SniffForHTML(nsIR
       MATCHES_TAG("h1")       ||
       MATCHES_TAG("h2")       ||
       MATCHES_TAG("h3")       ||
       MATCHES_TAG("h4")       ||
       MATCHES_TAG("h5")       ||
       MATCHES_TAG("h6")       ||
       MATCHES_TAG("b")        ||
       MATCHES_TAG("pre")) {
-  
+
     mContentType = TEXT_HTML;
     return true;
   }
 
 #undef MATCHES_TAG
-  
+
   return false;
 }
 
 bool nsUnknownDecoder::SniffForXML(nsIRequest* aRequest)
 {
   // Just like HTML, this should be able to be shut off.
   if (!AllowSniffing(aRequest)) {
     return false;
   }
 
   // First see whether we can glean anything from the uri...
   if (!SniffURI(aRequest)) {
     // Oh well; just generic XML will have to do
     MutexAutoLock lock(mMutex);
     mContentType = TEXT_XML;
   }
-  
+
   return true;
 }
 
 bool nsUnknownDecoder::SniffURI(nsIRequest* aRequest)
 {
   nsCOMPtr<nsIMIMEService> mimeService(do_GetService("@mozilla.org/mime;1"));
   if (mimeService) {
     nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
@@ -685,17 +685,17 @@ bool nsUnknownDecoder::LastDitchSniff(ns
   // always have at least 4 bytes in the buffer (since the 2-byte BOMs
   // are for 2-byte encodings and the UTF-8 BOM is 3 bytes).
   if (testDataLen >= 4) {
     const unsigned char* buf = (const unsigned char*)testData;
     if ((buf[0] == 0xFE && buf[1] == 0xFF) || // UTF-16, Big Endian
         (buf[0] == 0xFF && buf[1] == 0xFE) || // UTF-16 or UCS-4, Little Endian
         (buf[0] == 0xEF && buf[1] == 0xBB && buf[2] == 0xBF) || // UTF-8
         (buf[0] == 0 && buf[1] == 0 && buf[2] == 0xFE && buf[3] == 0xFF)) { // UCS-4, Big Endian
-       
+
       mContentType = TEXT_PLAIN;
       return true;
     }
   }
 
   // Now see whether the buffer has any non-text chars.  If not, then let's
   // just call it text/plain...
   //
@@ -920,17 +920,17 @@ nsBinaryDetector::DetermineContentType(n
        !contentTypeHdr.EqualsLiteral("text/plain; charset=iso-8859-1") &&
        !contentTypeHdr.EqualsLiteral("text/plain; charset=UTF-8"))) {
     return;
   }
 
   // Check whether we have content-encoding.  If we do, don't try to
   // detect the type.
   // XXXbz we could improve this by doing a local decompress if we
-  // wanted, I'm sure.  
+  // wanted, I'm sure.
   nsAutoCString contentEncoding;
   Unused << httpChannel->GetResponseHeader(NS_LITERAL_CSTRING("Content-Encoding"),
                                            contentEncoding);
   if (!contentEncoding.IsEmpty()) {
     return;
   }
 
   LastDitchSniff(aRequest);
--- a/netwerk/streamconv/converters/nsUnknownDecoder.h
+++ b/netwerk/streamconv/converters/nsUnknownDecoder.h
@@ -79,17 +79,17 @@ protected:
   nsCOMPtr<nsIStreamListener> mNextListener;
 
   // Function to use to check whether sniffing some potentially
   // dangerous types (eg HTML) is ok for this request.  We can disable
   // sniffing for local files if needed using this.  Just a security
   // precation thingy... who knows when we suddenly need to flip this
   // pref?
   bool AllowSniffing(nsIRequest* aRequest);
-  
+
   // Various sniffer functions.  Returning true means that a type
   // was determined; false means no luck.
   bool SniffForHTML(nsIRequest* aRequest);
   bool SniffForXML(nsIRequest* aRequest);
 
   // SniffURI guesses at the content type based on the URI (typically
   // using the extentsion)
   bool SniffURI(nsIRequest* aRequest);
@@ -105,20 +105,20 @@ protected:
    * a type associated with it (set these with the SNIFFER_ENTRY macro)
    * or a function to be executed (set these with the
    * SNIFFER_ENTRY_WITH_FUNC macro).  The function should take a single
    * nsIRequest* and returns bool -- true if it sets mContentType,
    * false otherwise
    */
   struct nsSnifferEntry {
     typedef bool (nsUnknownDecoder::*TypeSniffFunc)(nsIRequest* aRequest);
-    
+
     const char* mBytes;
     uint32_t mByteLen;
-    
+
     // Exactly one of mMimeType and mContentTypeSniffer should be set non-null
     const char* mMimeType;
     TypeSniffFunc mContentTypeSniffer;
   };
 
 #define SNIFFER_ENTRY(_bytes, _type) \
   { _bytes, sizeof(_bytes) - 1, _type, nullptr }
 
--- a/netwerk/streamconv/nsStreamConverterService.cpp
+++ b/netwerk/streamconv/nsStreamConverterService.cpp
@@ -373,17 +373,17 @@ nsStreamConverterService::CanConvert(con
     *_retval = NS_SUCCEEDED(rv);
 
     delete converterChain;
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsStreamConverterService::Convert(nsIInputStream *aFromStream,
-                                  const char *aFromType, 
+                                  const char *aFromType,
                                   const char *aToType,
                                   nsISupports *aContext,
                                   nsIInputStream **_retval) {
     if (!aFromStream || !aFromType || !aToType || !_retval) return NS_ERROR_NULL_POINTER;
     nsresult rv;
 
     // first determine whether we can even handle this conversion
     // build a CONTRACTID
@@ -450,18 +450,18 @@ nsStreamConverterService::Convert(nsIInp
         rv = converter->Convert(aFromStream, aFromType, aToType, aContext, _retval);
     }
 
     return rv;
 }
 
 
 NS_IMETHODIMP
-nsStreamConverterService::AsyncConvertData(const char *aFromType, 
-                                           const char *aToType, 
+nsStreamConverterService::AsyncConvertData(const char *aFromType,
+                                           const char *aToType,
                                            nsIStreamListener *aListener,
                                            nsISupports *aContext,
                                            nsIStreamListener **_retval) {
     if (!aFromType || !aToType || !aListener || !_retval) return NS_ERROR_NULL_POINTER;
 
     nsresult rv;
 
     // first determine whether we can even handle this conversion
@@ -484,17 +484,17 @@ nsStreamConverterService::AsyncConvertDa
         rv = FindConverter(cContractID, &converterChain);
         if (NS_FAILED(rv)) {
             // can't make this conversion.
             // XXX should have a more descriptive error code.
             return NS_ERROR_FAILURE;
         }
 
         // aListener is the listener that wants the final, converted, data.
-        // we initialize finalListener w/ aListener so it gets put at the 
+        // we initialize finalListener w/ aListener so it gets put at the
         // tail end of the chain, which in the loop below, means the *first*
         // converter created.
         nsCOMPtr<nsIStreamListener> finalListener = aListener;
 
         // convert the stream using each edge of the graph as a step.
         // this is our stream conversion traversal.
         int32_t edgeCount = int32_t(converterChain->Length());
         NS_ASSERTION(edgeCount > 0, "findConverter should have failed");
--- a/rdf/base/nsCompositeDataSource.cpp
+++ b/rdf/base/nsCompositeDataSource.cpp
@@ -11,17 +11,17 @@
 
 
   1) A composite data source holds a sequence of data sources. The set
      of data sources can be specified during creation of the
      database. Data sources can also be added/deleted from a database
      later.
 
   2) The aggregation mechanism is based on simple super-positioning of
-     the graphs from the datasources. If there is a conflict (i.e., 
+     the graphs from the datasources. If there is a conflict (i.e.,
      data source A has a true arc from foo to bar while data source B
      has a false arc from foo to bar), the data source that it earlier
      in the sequence wins.
 
      The implementation below doesn't really do this and needs to be
      fixed.
 
 */
@@ -553,17 +553,17 @@ CompositeDataSourceImpl::GetSource(nsIRD
 
         if (rv == NS_RDF_NO_VALUE)
             continue;
 
         if (!mAllowNegativeAssertions) return(NS_OK);
 
         // okay, found it. make sure we don't have the opposite
         // asserted in a more local data source
-        if (!HasAssertionN(count-1, *source, property, target, !tv)) 
+        if (!HasAssertionN(count-1, *source, property, target, !tv))
             return NS_OK;
 
         NS_RELEASE(*source);
         return NS_RDF_NO_VALUE;
     }
     return NS_RDF_NO_VALUE;
 }
 
@@ -664,17 +664,17 @@ CompositeDataSourceImpl::HasAssertionN(i
             return false;
 
         // found it!
         if (result)
             return true;
     }
     return false;
 }
-    
+
 
 
 NS_IMETHODIMP
 CompositeDataSourceImpl::GetTargets(nsIRDFResource* aSource,
                                     nsIRDFResource* aProperty,
                                     bool aTruthValue,
                                     nsISimpleEnumerator** aResult)
 {
@@ -703,18 +703,18 @@ CompositeDataSourceImpl::GetTargets(nsIR
     if (! *aResult)
         return NS_ERROR_OUT_OF_MEMORY;
 
     NS_ADDREF(*aResult);
     return NS_OK;
 }
 
 NS_IMETHODIMP
-CompositeDataSourceImpl::Assert(nsIRDFResource* aSource, 
-                                nsIRDFResource* aProperty, 
+CompositeDataSourceImpl::Assert(nsIRDFResource* aSource,
+                                nsIRDFResource* aProperty,
                                 nsIRDFNode* aTarget,
                                 bool aTruthValue)
 {
     NS_PRECONDITION(aSource != nullptr, "null ptr");
     if (! aSource)
         return NS_ERROR_NULL_POINTER;
 
     NS_PRECONDITION(aProperty != nullptr, "null ptr");
@@ -979,32 +979,32 @@ CompositeDataSourceImpl::RemoveObserver(
     if (! aObserver)
         return NS_ERROR_NULL_POINTER;
 
     mObservers.RemoveObject(aObserver);
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 CompositeDataSourceImpl::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, bool *result)
 {
     nsresult rv;
     *result = false;
     int32_t count = mDataSources.Count();
     for (int32_t i = 0; i < count; ++i) {
         rv = mDataSources[i]->HasArcIn(aNode, aArc, result);
         if (NS_FAILED(rv)) return rv;
         if (*result)
             return NS_OK;
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 CompositeDataSourceImpl::HasArcOut(nsIRDFResource *aSource, nsIRDFResource *aArc, bool *result)
 {
     nsresult rv;
     *result = false;
     int32_t count = mDataSources.Count();
     for (int32_t i = 0; i < count; ++i) {
         rv = mDataSources[i]->HasArcOut(aSource, aArc, result);
         if (NS_FAILED(rv)) return rv;
@@ -1238,17 +1238,17 @@ CompositeDataSourceImpl::OnAssert(nsIRDF
     //
     // XXX We could make this more efficient if we knew _which_
     // datasource actually served up the OnAssert(): we could use
     // HasAssertionN() to only search datasources _before_ the
     // datasource that coughed up the assertion.
 	nsresult	rv = NS_OK;
 
 	if (mAllowNegativeAssertions)
-	{   
+	{
 		bool hasAssertion;
 		rv = HasAssertion(aSource, aProperty, aTarget, true, &hasAssertion);
 		if (NS_FAILED(rv)) return rv;
 
 		if (! hasAssertion)
 			return(NS_OK);
 	}
 
@@ -1269,17 +1269,17 @@ CompositeDataSourceImpl::OnUnassert(nsIR
     //
     // XXX We could make this more efficient if we knew _which_
     // datasource actually served up the OnAssert(): we could use
     // HasAssertionN() to only search datasources _before_ the
     // datasource that coughed up the assertion.
     nsresult rv;
 
 	if (mAllowNegativeAssertions)
-	{   
+	{
 		bool hasAssertion;
 		rv = HasAssertion(aSource, aProperty, aTarget, true, &hasAssertion);
 		if (NS_FAILED(rv)) return rv;
 
 		if (hasAssertion)
 			return NS_OK;
 	}
 
--- a/rdf/base/nsContainerEnumerator.cpp
+++ b/rdf/base/nsContainerEnumerator.cpp
@@ -152,17 +152,17 @@ ContainerEnumeratorImpl::HasMoreElements
         targets->GetNext(getter_AddRefs(isupports));
 
         nsCOMPtr<nsIRDFLiteral> nextValLiteral = do_QueryInterface(isupports);
         if (! nextValLiteral)
              continue;
 
          const char16_t *nextValStr;
          nextValLiteral->GetValueConst(&nextValStr);
-		 
+
          nsresult err;
          int32_t nextVal = nsAutoString(nextValStr).ToInteger(&err);
 
          if (nextVal > max)
              max = nextVal;
     }
 
     // Now pre-fetch our next value into mResult.
--- a/rdf/base/nsInMemoryDataSource.cpp
+++ b/rdf/base/nsInMemoryDataSource.cpp
@@ -235,31 +235,31 @@ protected:
     // These hash tables are keyed on pointers to nsIRDFResource
     // objects (the nsIRDFService ensures that there is only ever one
     // nsIRDFResource object per unique URI). The value of an entry is
     // an Assertion struct, which is a linked list of (subject
     // predicate object) triples.
     PLDHashTable mForwardArcs;
     PLDHashTable mReverseArcs;
 
-    nsCOMArray<nsIRDFObserver> mObservers;  
+    nsCOMArray<nsIRDFObserver> mObservers;
     uint32_t                   mNumObservers;
 
     // VisitFoo needs to block writes, [Un]Assert only allowed
     // during mReadCount == 0
     uint32_t mReadCount;
 
     friend class InMemoryArcsEnumeratorImpl;
     friend class InMemoryAssertionEnumeratorImpl;
     friend class InMemoryResourceEnumeratorImpl; // b/c it needs to enumerate mForwardArcs
 
     // Thread-safe writer implementation methods.
     nsresult
-    LockedAssert(nsIRDFResource* source, 
-                 nsIRDFResource* property, 
+    LockedAssert(nsIRDFResource* source,
+                 nsIRDFResource* property,
                  nsIRDFNode* target,
                  bool tv);
 
     nsresult
     LockedUnassert(nsIRDFResource* source,
                    nsIRDFResource* property,
                    nsIRDFNode* target);
 
@@ -638,17 +638,17 @@ InMemoryArcsEnumeratorImpl::HasMoreEleme
             // "next" is the property arc we are tentatively going to return
             // in a subsequent GetNext() call.  It is important to do two
             // things, however, before that can happen:
             //   1) Make sure it's not an arc we've already returned.
             //   2) Make sure that |mAssertion| is not left pointing to
             //      another assertion that has the same property as this one.
             // The first is a practical concern; the second a defense against
             // an obscure crash and other erratic behavior.  To ensure the
-            // second condition, skip down the chain until we find the next 
+            // second condition, skip down the chain until we find the next
             // assertion with a property that doesn't match the current one.
             // (All these assertions would be skipped via mAlreadyReturned
             // checks anyways; this is even a bit faster.)
 
             do {
                 mAssertion = (mSource ? mAssertion->mNext :
                         mAssertion->u.as.mInvNext);
             }
@@ -1132,19 +1132,19 @@ InMemoryDataSource::LockedAssert(nsIRDFR
     next = as;
     SetReverseArcs(aTarget, next);
 
     return NS_OK;
 }
 
 NS_IMETHODIMP
 InMemoryDataSource::Assert(nsIRDFResource* aSource,
-                           nsIRDFResource* aProperty, 
+                           nsIRDFResource* aProperty,
                            nsIRDFNode* aTarget,
-                           bool aTruthValue) 
+                           bool aTruthValue)
 {
     NS_PRECONDITION(aSource != nullptr, "null ptr");
     if (! aSource)
         return NS_ERROR_NULL_POINTER;
 
     NS_PRECONDITION(aProperty != nullptr, "null ptr");
     if (! aProperty)
         return NS_ERROR_NULL_POINTER;
@@ -1468,17 +1468,17 @@ InMemoryDataSource::RemoveObserver(nsIRD
     mObservers.RemoveObject(aObserver);
     // note: use Count() instead of just decrementing
     // in case aObserver wasn't in list, for example
     mNumObservers = mObservers.Count();
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 InMemoryDataSource::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, bool *result)
 {
     Assertion* ass = GetReverseArcs(aNode);
     while (ass) {
         nsIRDFResource* elbow = ass->u.as.mProperty;
         if (elbow == aArc) {
             *result = true;
             return NS_OK;
@@ -1950,12 +1950,12 @@ InMemoryDataSource::VisitAllTriples(rdfI
         (void) 0;
     }
 
   end:
     // Unlock datasource
     --mReadCount;
 
     return rv;
-} 
+}
 
 ////////////////////////////////////////////////////////////////////////
 
--- a/rdf/base/nsNameSpaceMap.h
+++ b/rdf/base/nsNameSpaceMap.h
@@ -16,19 +16,19 @@ class nsNameSpaceMap
 public:
     class Entry {
     public:
         Entry(const nsACString& aURI, nsIAtom* aPrefix)
             : mURI(aURI), mPrefix(aPrefix), mNext(nullptr) {
             MOZ_COUNT_CTOR(nsNameSpaceMap::Entry); }
 
         ~Entry() { MOZ_COUNT_DTOR(nsNameSpaceMap::Entry); }
-        
+
         nsCString mURI;
-        nsCOMPtr<nsIAtom> mPrefix; 
+        nsCOMPtr<nsIAtom> mPrefix;
 
         Entry* mNext;
     };
 
     nsNameSpaceMap();
     ~nsNameSpaceMap();
 
     nsresult
--- a/rdf/base/nsRDFContainer.cpp
+++ b/rdf/base/nsRDFContainer.cpp
@@ -63,17 +63,17 @@ private:
     RDFContainerImpl();
     virtual ~RDFContainerImpl();
 
     nsresult Init();
 
     nsresult Renumber(int32_t aStartIndex, int32_t aIncrement);
     nsresult SetNextValue(int32_t aIndex);
     nsresult GetNextValue(nsIRDFResource** aResult);
-    
+
     nsIRDFDataSource* mDataSource;
     nsIRDFResource*   mContainer;
 
     // pseudo constants
     static int32_t gRefCnt;
     static nsIRDFService*        gRDFService;
     static nsIRDFContainerUtils* gRDFContainerUtils;
     static nsIRDFResource*       kRDF_nextVal;
--- a/rdf/base/nsRDFContainerUtils.cpp
+++ b/rdf/base/nsRDFContainerUtils.cpp
@@ -119,21 +119,21 @@ RDFContainerUtilsImpl::IndexToOrdinalRes
 {
     NS_PRECONDITION(aIndex > 0, "illegal value");
     if (aIndex <= 0)
         return NS_ERROR_ILLEGAL_VALUE;
 
     nsAutoCString uri(kRDFNameSpaceURI);
     uri.Append('_');
     uri.AppendInt(aIndex);
-    
+
     nsresult rv = gRDFService->GetResource(uri, aOrdinal);
     NS_ASSERTION(NS_SUCCEEDED(rv), "unable to get ordinal resource");
     if (NS_FAILED(rv)) return rv;
-    
+
     return NS_OK;
 }
 
 
 NS_IMETHODIMP
 RDFContainerUtilsImpl::OrdinalResourceToIndex(nsIRDFResource *aOrdinal, int32_t *aIndex)
 {
     NS_PRECONDITION(aOrdinal != nullptr, "null ptr");
--- a/rdf/base/nsRDFContentSink.cpp
+++ b/rdf/base/nsRDFContentSink.cpp
@@ -146,31 +146,31 @@ protected:
     nsresult AddText(const char16_t* aText, int32_t aLength);
 
     // RDF-specific parsing
     nsresult OpenRDF(const char16_t* aName);
     nsresult OpenObject(const char16_t* aName ,const char16_t** aAttributes);
     nsresult OpenProperty(const char16_t* aName, const char16_t** aAttributes);
     nsresult OpenMember(const char16_t* aName, const char16_t** aAttributes);
     nsresult OpenValue(const char16_t* aName, const char16_t** aAttributes);
-    
+
     nsresult GetIdAboutAttribute(const char16_t** aAttributes, nsIRDFResource** aResource, bool* aIsAnonymous = nullptr);
     nsresult GetResourceAttribute(const char16_t** aAttributes, nsIRDFResource** aResource);
     nsresult AddProperties(const char16_t** aAttributes, nsIRDFResource* aSubject, int32_t* aCount = nullptr);
     void SetParseMode(const char16_t **aAttributes);
 
     char16_t* mText;
     int32_t mTextLength;
     int32_t mTextSize;
 
     /**
-     * From the set of given attributes, this method extracts the 
+     * From the set of given attributes, this method extracts the
      * namespace definitions and feeds them to the datasource.
      * These can then be suggested to the serializer to be used again.
-     * Hopefully, this will keep namespace definitions intact in a 
+     * Hopefully, this will keep namespace definitions intact in a
      * parse - serialize cycle.
      */
     void RegisterNamespaces(const char16_t **aAttributes);
 
     /**
      * Extracts the localname from aExpatName, the name that the Expat parser
      * passes us.
      * aLocalName will contain the localname in aExpatName.
@@ -189,17 +189,17 @@ protected:
     // A hash of all the node IDs referred to
     nsInterfaceHashtable<nsStringHashKey, nsIRDFResource> mNodeIDMap;
 
     // The current state of the content sink
     RDFContentSinkState mState;
     RDFContentSinkParseMode mParseMode;
 
     // content stack management
-    int32_t         
+    int32_t
     PushContext(nsIRDFResource *aContext,
                 RDFContentSinkState aState,
                 RDFContentSinkParseMode aParseMode);
 
     nsresult
     PopContext(nsIRDFResource         *&aContext,
                RDFContentSinkState     &aState,
                RDFContentSinkParseMode &aParseMode);
@@ -372,20 +372,20 @@ RDFContentSinkImpl::QueryInterface(REFNS
     else if (iid.Equals(kIExpatSinkIID)) {
       *result = static_cast<nsIExpatSink*>(this);
        AddRef();
        return NS_OK;
     }
     return NS_NOINTERFACE;
 }
 
-NS_IMETHODIMP 
-RDFContentSinkImpl::HandleStartElement(const char16_t *aName, 
-                                       const char16_t **aAtts, 
-                                       uint32_t aAttsCount, 
+NS_IMETHODIMP
+RDFContentSinkImpl::HandleStartElement(const char16_t *aName,
+                                       const char16_t **aAtts,
+                                       uint32_t aAttsCount,
                                        uint32_t aLineNumber)
 {
   FlushText();
 
   nsresult rv = NS_ERROR_UNEXPECTED; // XXX
 
   RegisterNamespaces(aAtts);
 
@@ -416,17 +416,17 @@ RDFContentSinkImpl::HandleStartElement(c
              ("rdfxml: unexpected content in epilog at line %d",
               aLineNumber));
       break;
   }
 
   return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::HandleEndElement(const char16_t *aName)
 {
   FlushText();
 
   nsIRDFResource* resource;
   if (NS_FAILED(PopContext(resource, mState, mParseMode))) {
       // XXX parser didn't catch unmatched tags?
       if (MOZ_LOG_TEST(gLog, LogLevel::Warning)) {
@@ -441,153 +441,153 @@ RDFContentSinkImpl::HandleEndElement(con
       }
 
       return NS_ERROR_UNEXPECTED; // XXX
   }
 
   // If we've just popped a member or property element, _now_ is the
   // time to add that element to the graph.
   switch (mState) {
-    case eRDFContentSinkState_InMemberElement: 
+    case eRDFContentSinkState_InMemberElement:
       {
         nsCOMPtr<nsIRDFContainer> container;
         NS_NewRDFContainer(getter_AddRefs(container));
         container->Init(mDataSource, GetContextElement(1));
         container->AppendElement(resource);
-      } 
+      }
       break;
 
-    case eRDFContentSinkState_InPropertyElement: 
+    case eRDFContentSinkState_InPropertyElement:
       {
-        mDataSource->Assert(GetContextElement(1), GetContextElement(0), resource, true);                                          
+        mDataSource->Assert(GetContextElement(1), GetContextElement(0), resource, true);
       } break;
     default:
       break;
   }
-  
+
   if (mContextStack->IsEmpty())
       mState = eRDFContentSinkState_InEpilog;
 
   NS_IF_RELEASE(resource);
   return NS_OK;
 }
- 
-NS_IMETHODIMP 
+
+NS_IMETHODIMP
 RDFContentSinkImpl::HandleComment(const char16_t *aName)
 {
     return NS_OK;
 }
 
-NS_IMETHODIMP 
-RDFContentSinkImpl::HandleCDataSection(const char16_t *aData, 
+NS_IMETHODIMP
+RDFContentSinkImpl::HandleCDataSection(const char16_t *aData,
                                        uint32_t aLength)
 {
   return aData ?  AddText(aData, aLength) : NS_OK;
 }
 
-NS_IMETHODIMP 
-RDFContentSinkImpl::HandleDoctypeDecl(const nsAString & aSubset, 
-                                      const nsAString & aName, 
-                                      const nsAString & aSystemId, 
+NS_IMETHODIMP
+RDFContentSinkImpl::HandleDoctypeDecl(const nsAString & aSubset,
+                                      const nsAString & aName,
+                                      const nsAString & aSystemId,
                                       const nsAString & aPublicId,
                                       nsISupports* aCatalogData)
 {
     return NS_OK;
 }
 
-NS_IMETHODIMP 
-RDFContentSinkImpl::HandleCharacterData(const char16_t *aData, 
+NS_IMETHODIMP
+RDFContentSinkImpl::HandleCharacterData(const char16_t *aData,
                                         uint32_t aLength)
 {
   return aData ?  AddText(aData, aLength) : NS_OK;
 }
 
-NS_IMETHODIMP 
-RDFContentSinkImpl::HandleProcessingInstruction(const char16_t *aTarget, 
+NS_IMETHODIMP
+RDFContentSinkImpl::HandleProcessingInstruction(const char16_t *aTarget,
                                                 const char16_t *aData)
 {
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::HandleXMLDeclaration(const char16_t *aVersion,
                                          const char16_t *aEncoding,
                                          int32_t aStandalone)
 {
     return NS_OK;
 }
 
 NS_IMETHODIMP
-RDFContentSinkImpl::ReportError(const char16_t* aErrorText, 
+RDFContentSinkImpl::ReportError(const char16_t* aErrorText,
                                 const char16_t* aSourceText,
                                 nsIScriptError *aError,
                                 bool *_retval)
 {
   NS_PRECONDITION(aError && aSourceText && aErrorText, "Check arguments!!!");
 
   // The expat driver should report the error.
   *_retval = true;
   return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////
 // nsIContentSink interface
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::WillParse(void)
 {
     return NS_OK;
 }
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::WillBuildModel(nsDTDMode)
 {
     if (mDataSource) {
         nsCOMPtr<nsIRDFXMLSink> sink = do_QueryInterface(mDataSource);
-        if (sink) 
+        if (sink)
             return sink->BeginLoad();
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::DidBuildModel(bool aTerminated)
 {
     if (mDataSource) {
         nsCOMPtr<nsIRDFXMLSink> sink = do_QueryInterface(mDataSource);
         if (sink)
             return sink->EndLoad();
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::WillInterrupt(void)
 {
     if (mDataSource) {
         nsCOMPtr<nsIRDFXMLSink> sink = do_QueryInterface(mDataSource);
         if (sink)
             return sink->Interrupt();
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::WillResume(void)
 {
     if (mDataSource) {
         nsCOMPtr<nsIRDFXMLSink> sink = do_QueryInterface(mDataSource);
         if (sink)
             return sink->Resume();
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 RDFContentSinkImpl::SetParser(nsParserBase* aParser)
 {
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////
 // nsIRDFContentSink interface
 
@@ -746,17 +746,17 @@ RDFContentSinkImpl::AddText(const char16
     // this shouldn't be a bloat issue.
     int32_t amount = mTextSize - mTextLength;
     if (amount < aLength) {
         // Grow the buffer by at least a factor of two to prevent thrashing.
         // Since realloc() will leave mText intact if the call fails,
         // don't clobber mText or mTextSize until the new mem is allocated.
         int32_t newSize = (2 * mTextSize > (mTextSize + aLength)) ?
                           (2 * mTextSize) : (mTextSize + aLength);
-        char16_t* newText = 
+        char16_t* newText =
             (char16_t *) realloc(mText, sizeof(char16_t) * newSize);
         if (!newText)
             return NS_ERROR_OUT_OF_MEMORY;
         mTextSize = newSize;
         mText = newText;
     }
     memcpy(&mText[mTextLength], aText, sizeof(char16_t) * aLength);
     mTextLength += aLength;
@@ -792,31 +792,31 @@ RDFContentSinkImpl::GetIdAboutAttribute(
         // input that we receive.
         if (!nameSpaceURI.IsEmpty() &&
             !nameSpaceURI.EqualsLiteral(RDF_NAMESPACE_URI)) {
           continue;
         }
 
         // XXX you can't specify both, but we'll just pick up the
         // first thing that was specified and ignore the other.
-      
+
         if (localName == kAboutAtom) {
             if (aIsAnonymous)
                 *aIsAnonymous = false;
 
             nsAutoString relURI(aAttributes[1]);
             if (rdf_RequiresAbsoluteURI(relURI)) {
                 nsAutoCString uri;
                 rv = mDocumentURL->Resolve(NS_ConvertUTF16toUTF8(aAttributes[1]), uri);
                 if (NS_FAILED(rv)) return rv;
-                
-                return gRDFService->GetResource(uri, 
+
+                return gRDFService->GetResource(uri,
                                                 aResource);
-            } 
-            return gRDFService->GetResource(NS_ConvertUTF16toUTF8(aAttributes[1]), 
+            }
+            return gRDFService->GetResource(NS_ConvertUTF16toUTF8(aAttributes[1]),
                                             aResource);
         }
         else if (localName == kIdAtom) {
             if (aIsAnonymous)
                 *aIsAnonymous = false;
             // In the spirit of leniency, we do not bother trying to
             // enforce that this be a valid "XML Name" (see
             // http://www.w3.org/TR/REC-xml#NT-Nmtoken), as per
@@ -897,25 +897,25 @@ RDFContentSinkImpl::GetResourceAttribute
           if (rdf_RequiresAbsoluteURI(relURI)) {
               nsresult rv;
               nsAutoCString uri;
 
               rv = mDocumentURL->Resolve(NS_ConvertUTF16toUTF8(aAttributes[1]), uri);
               if (NS_FAILED(rv)) return rv;
 
               return gRDFService->GetResource(uri, aResource);
-          } 
-          return gRDFService->GetResource(NS_ConvertUTF16toUTF8(aAttributes[1]), 
+          }
+          return gRDFService->GetResource(NS_ConvertUTF16toUTF8(aAttributes[1]),
                                           aResource);
       }
       else if (localName == kNodeIdAtom) {
           nodeID.Assign(aAttributes[1]);
       }
   }
-    
+
   // If nodeID is present, check if we already know about it. If we've seen
   // the nodeID before, use the same resource, otherwise generate a new one.
   if (!nodeID.IsEmpty()) {
       mNodeIDMap.Get(nodeID,aResource);
 
       if (!*aResource) {
           nsresult rv;
           rv = gRDFService->GetAnonymousResource(aResource);
@@ -963,25 +963,25 @@ RDFContentSinkImpl::AddProperties(const 
       if (localName == kParseTypeAtom) {
           if (nameSpaceURI.IsEmpty() ||
               nameSpaceURI.EqualsLiteral(RDF_NAMESPACE_URI) ||
               nameSpaceURI.EqualsLiteral(NC_NAMESPACE_URI)) {
               continue;
           }
       }
 
-      NS_ConvertUTF16toUTF8 propertyStr(nameSpaceURI);    
+      NS_ConvertUTF16toUTF8 propertyStr(nameSpaceURI);
       propertyStr.Append(nsAtomCString(localName));
 
       // Add the assertion to RDF
       nsCOMPtr<nsIRDFResource> property;
       gRDFService->GetResource(propertyStr, getter_AddRefs(property));
 
       nsCOMPtr<nsIRDFLiteral> target;
-      gRDFService->GetLiteral(aAttributes[1], 
+      gRDFService->GetLiteral(aAttributes[1],
                               getter_AddRefs(target));
 
       mDataSource->Assert(aSubject, property, target, true);
   }
   return NS_OK;
 }
 
 void
@@ -1036,17 +1036,17 @@ RDFContentSinkImpl::OpenRDF(const char16
     }
 
     PushContext(nullptr, mState, mParseMode);
     mState = eRDFContentSinkState_InDocumentElement;
     return NS_OK;
 }
 
 nsresult
-RDFContentSinkImpl::OpenObject(const char16_t* aName, 
+RDFContentSinkImpl::OpenObject(const char16_t* aName,
                                const char16_t** aAttributes)
 {
     // an "object" non-terminal is either a "description", a "typed
     // node", or a "container", so this change the content sink's
     // state appropriately.
     nsCOMPtr<nsIAtom> localName;
     const nsDependentSubstring& nameSpaceURI =
         SplitExpatName(aName, getter_AddRefs(localName));
@@ -1183,17 +1183,17 @@ RDFContentSinkImpl::OpenProperty(const c
     PushContext(property, mState, mParseMode);
     mState = eRDFContentSinkState_InPropertyElement;
     SetParseMode(aAttributes);
 
     return NS_OK;
 }
 
 nsresult
-RDFContentSinkImpl::OpenMember(const char16_t* aName, 
+RDFContentSinkImpl::OpenMember(const char16_t* aName,
                                const char16_t** aAttributes)
 {
     // ensure that we're actually reading a member element by making
     // sure that the opening tag is <rdf:li>, where "rdf:" corresponds
     // to whatever they've declared the standard RDF namespace to be.
     nsresult rv;
 
     nsCOMPtr<nsIAtom> localName;
@@ -1387,29 +1387,29 @@ RDFContentSinkImpl::ReinitContainer(nsIR
     if (NS_FAILED(rv)) return rv;
 
     return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////
 // Content stack management
 
-nsIRDFResource* 
+nsIRDFResource*
 RDFContentSinkImpl::GetContextElement(int32_t ancestor /* = 0 */)
 {
     if ((nullptr == mContextStack) ||
         (uint32_t(ancestor) >= mContextStack->Length())) {
         return nullptr;
     }
 
     return mContextStack->ElementAt(
            mContextStack->Length()-ancestor-1).mResource;
 }
 
-int32_t 
+int32_t
 RDFContentSinkImpl::PushContext(nsIRDFResource         *aResource,
                                 RDFContentSinkState     aState,
                                 RDFContentSinkParseMode aParseMode)
 {
     if (! mContextStack) {
         mContextStack = new AutoTArray<RDFContextStackElement, 8>();
         if (! mContextStack)
             return 0;
@@ -1417,20 +1417,20 @@ RDFContentSinkImpl::PushContext(nsIRDFRe
 
     RDFContextStackElement* e = mContextStack->AppendElement();
     if (! e)
         return mContextStack->Length();
 
     e->mResource  = aResource;
     e->mState     = aState;
     e->mParseMode = aParseMode;
-  
+
     return mContextStack->Length();
 }
- 
+
 nsresult
 RDFContentSinkImpl::PopContext(nsIRDFResource         *&aResource,
                                RDFContentSinkState     &aState,
                                RDFContentSinkParseMode &aParseMode)
 {
     if ((nullptr == mContextStack) ||
         (mContextStack->IsEmpty())) {
         return NS_ERROR_NULL_POINTER;
@@ -1442,17 +1442,17 @@ RDFContentSinkImpl::PopContext(nsIRDFRes
     aResource  = e.mResource;
     NS_IF_ADDREF(aResource);
     aState     = e.mState;
     aParseMode = e.mParseMode;
 
     mContextStack->RemoveElementAt(i);
     return NS_OK;
 }
- 
+
 
 ////////////////////////////////////////////////////////////////////////
 
 nsresult
 NS_NewRDFContentSink(nsIRDFContentSink** aResult)
 {
     NS_PRECONDITION(aResult != nullptr, "null ptr");
     if (! aResult)
--- a/rdf/base/nsRDFResource.cpp
+++ b/rdf/base/nsRDFResource.cpp
@@ -90,17 +90,17 @@ nsRDFResource::Init(const char* aURI)
     // don't replace an existing resource with the same URI automatically
     return gRDFService->RegisterResource(this, true);
 }
 
 NS_IMETHODIMP
 nsRDFResource::GetValue(char* *aURI)
 {
     NS_ASSERTION(aURI, "Null out param.");
-    
+
     *aURI = ToNewCString(mURI);
 
     if (!*aURI)
         return NS_ERROR_OUT_OF_MEMORY;
 
     return NS_OK;
 }
 
@@ -167,17 +167,17 @@ nsRDFResource::GetDelegate(const char* a
     if (NS_FAILED(rv)) return rv;
 
     // Okay, we've successfully created a delegate. Let's remember it.
     entry = new DelegateEntry;
     if (! entry) {
         NS_RELEASE(*reinterpret_cast<nsISupports**>(aResult));
         return NS_ERROR_OUT_OF_MEMORY;
     }
-    
+
     entry->mKey      = aKey;
     entry->mDelegate = do_QueryInterface(*reinterpret_cast<nsISupports**>(aResult), &rv);
     if (NS_FAILED(rv)) {
         NS_ERROR("nsRDFResource::GetDelegate(): can't QI to nsISupports!");
 
         delete entry;
         NS_RELEASE(*reinterpret_cast<nsISupports**>(aResult));
         return NS_ERROR_FAILURE;
--- a/rdf/base/nsRDFXMLDataSource.cpp
+++ b/rdf/base/nsRDFXMLDataSource.cpp
@@ -141,17 +141,17 @@ protected:
     RDFXMLDataSourceImpl(void);
     virtual ~RDFXMLDataSourceImpl(void);
     nsresult rdfXMLFlush(nsIURI *aURI);
 
     friend nsresult
     NS_NewRDFXMLDataSource(nsIRDFDataSource** aResult);
 
     inline bool IsLoading() {
-        return (mLoadState == eLoadState_Pending) || 
+        return (mLoadState == eLoadState_Pending) ||
                (mLoadState == eLoadState_Loading);
     }
 
 public:
     // nsISupports
     NS_DECL_CYCLE_COLLECTING_ISUPPORTS
     NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(RDFXMLDataSourceImpl,
                                              nsIRDFDataSource)
@@ -292,24 +292,24 @@ public:
     NS_DECL_NSICHANNELEVENTSINK
 
     // rdfIDataSource
     NS_IMETHOD VisitAllSubjects(rdfITripleVisitor *aVisitor) override {
         nsresult rv;
         nsCOMPtr<rdfIDataSource> rdfds = do_QueryInterface(mInner, &rv);
         if (NS_FAILED(rv)) return rv;
         return rdfds->VisitAllSubjects(aVisitor);
-    } 
+    }
 
     NS_IMETHOD VisitAllTriples(rdfITripleVisitor *aVisitor) override {
         nsresult rv;
         nsCOMPtr<rdfIDataSource> rdfds = do_QueryInterface(mInner, &rv);
         if (NS_FAILED(rv)) return rv;
         return rdfds->VisitAllTriples(aVisitor);
-    } 
+    }
 
     // Implementation methods
     bool
     MakeQName(nsIRDFResource* aResource,
               nsString& property,
               nsString& nameSpacePrefix,
               nsString& nameSpaceURI);
 
@@ -466,17 +466,17 @@ RDFXMLDataSourceImpl::GetInterface(const
 nsresult
 RDFXMLDataSourceImpl::BlockingParse(nsIURI* aURL, nsIStreamListener* aConsumer)
 {
     nsresult rv;
 
     // XXX I really hate the way that we're spoon-feeding this stuff
     // to the parser: it seems like this is something that netlib
     // should be able to do by itself.
-    
+
     nsCOMPtr<nsIChannel> channel;
 
     // Null LoadGroup ?
     rv = NS_NewChannel(getter_AddRefs(channel),
                        aURL,
                        nsContentUtils::GetSystemPrincipal(),
                        nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
                        nsIContentPolicy::TYPE_OTHER);
@@ -745,17 +745,17 @@ RDFXMLDataSourceImpl::rdfXMLFlush(nsIURI
             NS_WARNING("unable to Flush() dirty datasource during XPCOM shutdown");
             return rv;
         }
     }
 
     // Is it a file? If so, we can write to it. Some day, it'd be nice
     // if we didn't care what kind of stream this was...
     nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(aURI);
-    
+
     if (fileURL) {
         nsCOMPtr<nsIFile> file;
         fileURL->GetFile(getter_AddRefs(file));
         if (file) {
             // get a safe output stream, so we don't clobber the datasource file unless
             // all the writes succeeded.
             nsCOMPtr<nsIOutputStream> out;
             rv = NS_NewSafeLocalFileOutputStream(getter_AddRefs(out),
@@ -766,17 +766,17 @@ RDFXMLDataSourceImpl::rdfXMLFlush(nsIURI
             if (NS_FAILED(rv)) return rv;
 
             nsCOMPtr<nsIOutputStream> bufferedOut;
             rv = NS_NewBufferedOutputStream(getter_AddRefs(bufferedOut), out, 4096);
             if (NS_FAILED(rv)) return rv;
 
             rv = Serialize(bufferedOut);
             if (NS_FAILED(rv)) return rv;
-            
+
             // All went ok. Maybe except for problems in Write(), but the stream detects
             // that for us
             nsCOMPtr<nsISafeOutputStream> safeStream = do_QueryInterface(bufferedOut, &rv);
             if (NS_FAILED(rv)) return rv;
 
             rv = safeStream->Finish();
             if (NS_FAILED(rv)) {
                 NS_WARNING("failed to save datasource file! possible dataloss");
--- a/rdf/base/nsRDFXMLSerializer.cpp
+++ b/rdf/base/nsRDFXMLSerializer.cpp
@@ -189,17 +189,17 @@ nsRDFXMLSerializer::EnsureNewPrefix()
         isNewPrefix = true;
         qname.AssignLiteral("NS");
         qname.AppendInt(++mPrefixID, 10);
         prefix = NS_Atomize(qname);
         nsNameSpaceMap::const_iterator iter = mNameSpaces.first();
         while (iter != mNameSpaces.last() && isNewPrefix) {
             isNewPrefix = (iter->mPrefix != prefix);
             ++iter;
-        } 
+        }
     } while (!isNewPrefix);
     return prefix.forget();
 }
 
 // This converts a property resource (like
 // "http://www.w3.org/TR/WD-rdf-syntax#Description") into a QName
 // ("RDF:Description"), and registers the namespace, if it's made up.
 
@@ -262,17 +262,17 @@ nsRDFXMLSerializer::IsContainerProperty(
         return true;
 
     bool isOrdinal = false;
     gRDFC->IsOrdinalProperty(aProperty, &isOrdinal);
     if (isOrdinal)
         return true;
 
     return false;
-} 
+}
 
 
 // convert '&', '<', and '>' into "&amp;", "&lt;", and "&gt", respectively.
 static const char amp[] = "&amp;";
 static const char lt[] = "&lt;";
 static const char gt[] = "&gt;";
 static const char quot[] = "&quot;";
 
@@ -434,30 +434,30 @@ nsRDFXMLSerializer::SerializeChildAssert
     }
     else if ((number = do_QueryInterface(aValue)) != nullptr) {
         int32_t value;
         number->GetValue(&value);
 
         nsAutoCString n;
         n.AppendInt(value);
 
-        rv = rdf_BlockingWrite(aStream, kRDFParseTypeInteger, 
+        rv = rdf_BlockingWrite(aStream, kRDFParseTypeInteger,
                                sizeof(kRDFParseTypeInteger) - 1);
         if (NS_FAILED(rv)) return rv;
         rv = rdf_BlockingWrite(aStream, n);
         if (NS_FAILED(rv)) return rv;
     }
     else if ((date = do_QueryInterface(aValue)) != nullptr) {
         PRTime value;
         date->GetValue(&value);
 
         nsAutoCString s;
         rdf_FormatDate(value, s);
 
-        rv = rdf_BlockingWrite(aStream, kRDFParseTypeDate, 
+        rv = rdf_BlockingWrite(aStream, kRDFParseTypeDate,
                                sizeof(kRDFParseTypeDate) - 1);
         if (NS_FAILED(rv)) return rv;
         rv = rdf_BlockingWrite(aStream, s);
         if (NS_FAILED(rv)) return rv;
     }
     else {
         // XXX it doesn't support nsIRDFResource _or_ nsIRDFLiteral???
         // We should serialize nsIRDFInt, nsIRDFDate, etc...
@@ -557,18 +557,18 @@ nsRDFXMLSerializer::SerializeDescription
     nsCString typeQName;
 
     nsCOMPtr<nsIRDFNode> typeNode;
     mDataSource->GetTarget(aResource, kRDF_type, true, getter_AddRefs(typeNode));
     if (typeNode) {
         nsCOMPtr<nsIRDFResource> type = do_QueryInterface(typeNode, &rv);
         if (type) {
             // Try to get a namespace prefix.  If none is available,
-            // just treat the description as if it weren't a typed node 
-            // after all and emit rdf:type as a normal property.  This 
+            // just treat the description as if it weren't a typed node
+            // after all and emit rdf:type as a normal property.  This
             // seems preferable to using a bogus (invented) prefix.
             isTypedNode = NS_SUCCEEDED(GetQName(type, typeQName));
         }
     }
 
     nsAutoCString uri;
     rv = aResource->GetValueUTF8(uri);
     if (NS_FAILED(rv)) return rv;
@@ -728,17 +728,17 @@ nsRDFXMLSerializer::SerializeMember(nsIO
 
     nsCOMPtr<nsIRDFResource> resource;
     nsCOMPtr<nsIRDFLiteral> literal;
     nsCOMPtr<nsIRDFInt> number;
     nsCOMPtr<nsIRDFDate> date;
 
 static const char kRDFLIOpen[] = "    <RDF:li";
     nsresult rv = rdf_BlockingWrite(aStream, kRDFLIOpen,
-                                    sizeof(kRDFLIOpen) - 1); 
+                                    sizeof(kRDFLIOpen) - 1);
     if (NS_FAILED(rv)) return rv;
 
     if ((resource = do_QueryInterface(aMember)) != nullptr) {
         nsAutoCString uri;
         resource->GetValueUTF8(uri);
 
         rdf_MakeRelativeRef(mBaseURLSpec, uri);
         rdf_EscapeAttributeValue(uri);
@@ -771,30 +771,30 @@ static const char kRDFLIOpenGT[] = ">";
     }
     else if ((number = do_QueryInterface(aMember)) != nullptr) {
         int32_t value;
         number->GetValue(&value);
 
         nsAutoCString n;
         n.AppendInt(value);
 
-        rv = rdf_BlockingWrite(aStream, kRDFParseTypeInteger, 
+        rv = rdf_BlockingWrite(aStream, kRDFParseTypeInteger,
                                sizeof(kRDFParseTypeInteger) - 1);
         if (NS_FAILED(rv)) return rv;
         rv = rdf_BlockingWrite(aStream, n);
         if (NS_FAILED(rv)) return rv;
     }
     else if ((date = do_QueryInterface(aMember)) != nullptr) {
         PRTime value;
         date->GetValue(&value);
 
         nsAutoCString s;
         rdf_FormatDate(value, s);
 
-        rv = rdf_BlockingWrite(aStream, kRDFParseTypeDate, 
+        rv = rdf_BlockingWrite(aStream, kRDFParseTypeDate,
                                sizeof(kRDFParseTypeDate) - 1);
         if (NS_FAILED(rv)) return rv;
         rv = rdf_BlockingWrite(aStream, s);
         if (NS_FAILED(rv)) return rv;
     }
     else {
         // XXX it doesn't support nsIRDFResource _or_ nsIRDFLiteral???
         // We should serialize nsIRDFInt, nsIRDFDate, etc...
@@ -862,17 +862,17 @@ nsRDFXMLSerializer::SerializeContainer(n
             // URI. We can use the 'ID=' attribute...
 
             uri.Cut(0, 1); // chop the '#'
             rv = rdf_BlockingWrite(aStream, kIDAttr, sizeof(kIDAttr) - 1);
             if (NS_FAILED(rv)) return rv;
         }
         else {
             // We need to cheat and spit out an illegal 'about=' on
-            // the sequence. 
+            // the sequence.
             rv = rdf_BlockingWrite(aStream, kAboutAttr,
                                    sizeof(kAboutAttr) - 1);
             if (NS_FAILED(rv)) return rv;
         }
 
         rv = rdf_BlockingWrite(aStream, uri);
         if (NS_FAILED(rv)) return rv;
         rv = rdf_BlockingWrite(aStream, "\"", 1);
@@ -1043,23 +1043,23 @@ QNameCollector::Visit(nsIRDFNode* aSubje
     mParent->gRDFC->IsOrdinalProperty(aPredicate, &isOrdinal);
     if (isOrdinal)
         return NS_OK;
 
     mParent->RegisterQName(aPredicate);
 
     return NS_OK;
 }
-    
+
 nsresult
 nsRDFXMLSerializer::CollectNamespaces()
 {
     // Iterate over all Triples to get namespaces for subject resource types
     // and Predicates and cache all the QNames we want to use.
-    nsCOMPtr<rdfITripleVisitor> collector = 
+    nsCOMPtr<rdfITripleVisitor> collector =
         new QNameCollector(this);
     nsCOMPtr<rdfIDataSource> ds = do_QueryInterface(mDataSource); // XXX API
     NS_ENSURE_TRUE(collector && ds, NS_ERROR_FAILURE);
     return ds->VisitAllTriples(collector);
 }
 
 //----------------------------------------------------------------------
 
--- a/rdf/datasource/nsFileSystemDataSource.cpp
+++ b/rdf/datasource/nsFileSystemDataSource.cpp
@@ -43,17 +43,17 @@
 
 static const char kFileProtocol[]         = "file://";
 
 bool
 FileSystemDataSource::isFileURI(nsIRDFResource *r)
 {
     bool        isFileURIFlag = false;
     const char  *uri = nullptr;
-    
+
     r->GetValueConst(&uri);
     if ((uri) && (!strncmp(uri, kFileProtocol, sizeof(kFileProtocol) - 1)))
     {
         // XXX HACK HACK HACK
         if (!strchr(uri, '#'))
         {
             isFileURIFlag = true;
         }
@@ -197,17 +197,17 @@ FileSystemDataSource::Init()
 nsresult
 FileSystemDataSource::Create(nsISupports* aOuter, const nsIID& aIID, void **aResult)
 {
     NS_ENSURE_NO_AGGREGATION(aOuter);
 
     RefPtr<FileSystemDataSource> self = new FileSystemDataSource();
     if (!self)
         return NS_ERROR_OUT_OF_MEMORY;
-     
+
     nsresult rv = self->Init();
     NS_ENSURE_SUCCESS(rv, rv);
 
     return self->QueryInterface(aIID, aResult);
 }
 
 NS_IMPL_ISUPPORTS(FileSystemDataSource, nsIRDFDataSource)
 
@@ -322,17 +322,17 @@ FileSystemDataSource::GetTarget(nsIRDFRe
         else if (property == mNC_Icon)
         {
             nsCOMPtr<nsIRDFLiteral> url;
             bool isFavorite = false;
             rv = GetURL(source, &isFavorite, getter_AddRefs(url));
             if (NS_FAILED(rv)) return(rv);
             if (isFavorite || !url) rv = NS_RDF_NO_VALUE;
             if (rv == NS_RDF_NO_VALUE)  return(rv);
-            
+
             const char16_t *uni = nullptr;
             url->GetValueConst(&uni);
             if (!uni)   return(NS_RDF_NO_VALUE);
             nsAutoString    urlStr;
             urlStr.AssignLiteral(NS_MOZICON_SCHEME);
             urlStr.Append(uni);
 
             rv = mRDFService->GetLiteral(urlStr.get(), getter_AddRefs(url));
@@ -658,25 +658,25 @@ FileSystemDataSource::HasAssertion(nsIRD
         }
     }
 
     return NS_OK;
 }
 
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 FileSystemDataSource::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, bool *result)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 FileSystemDataSource::HasArcOut(nsIRDFResource *aSource, nsIRDFResource *aArc, bool *result)
 {
     *result = false;
 
     if (aSource == mNC_FileSystemRoot)
     {
         *result = (aArc == mNC_Child || aArc == mNC_pulse);
     }
@@ -906,17 +906,17 @@ FileSystemDataSource::isValidFolder(nsIR
                 if (NS_FAILED(rv = folderEnum->GetNext(getter_AddRefs(isupports))))
                     break;
                 nsCOMPtr<nsIRDFResource>    res = do_QueryInterface(isupports);
                 if (!res)   break;
 
                 nsCOMPtr<nsIRDFLiteral>     nameLiteral;
                 if (NS_FAILED(rv = GetName(res, getter_AddRefs(nameLiteral))))
                     break;
-                
+
                 const char16_t         *uniName;
                 if (NS_FAILED(rv = nameLiteral->GetValueConst(&uniName)))
                     break;
                 nsAutoString            name(uniName);
 
                 // An empty folder, or a folder that contains just "desktop.ini",
                 // is considered to be a IE Favorite; otherwise, its a folder
                 if (!name.LowerCaseEqualsLiteral("desktop.ini"))
@@ -993,32 +993,32 @@ FileSystemDataSource::GetFolderList(nsIR
                 continue;
         }
 
         nsAutoString leafStr;
         if (NS_FAILED(rv = aFile->GetLeafName(leafStr)))
             break;
         if (leafStr.IsEmpty())
             continue;
-  
+
         nsAutoCString           fullURI;
         fullURI.Assign(parentURI);
         if (fullURI.Last() != '/')
         {
             fullURI.Append('/');
         }
 
         nsAutoCString leaf;
         bool escaped = NS_Escape(NS_ConvertUTF16toUTF8(leafStr), leaf, url_Path);
         leafStr.Truncate();
 
         if (!escaped) {
             continue;
         }
-  
+
         // using nsEscape() [above] doesn't escape slashes, so do that by hand
         int32_t         aOffset;
         while ((aOffset = leaf.FindChar('/')) >= 0)
         {
             leaf.Cut((uint32_t)aOffset, 1);
             leaf.Insert("%2F", (uint32_t)aOffset);
         }
 
@@ -1226,21 +1226,21 @@ FileSystemDataSource::GetExtension(nsIRD
 }
 #endif
 
 #ifdef  XP_WIN
 nsresult
 FileSystemDataSource::getIEFavoriteURL(nsIRDFResource *source, nsString aFileURL, nsIRDFLiteral **urlLiteral)
 {
     nsresult        rv = NS_OK;
-    
+
     *urlLiteral = nullptr;
 
     nsCOMPtr<nsIFile> f;
-    NS_GetFileFromURLSpec(NS_ConvertUTF16toUTF8(aFileURL), getter_AddRefs(f)); 
+    NS_GetFileFromURLSpec(NS_ConvertUTF16toUTF8(aFileURL), getter_AddRefs(f));
 
     bool value;
 
     if (NS_SUCCEEDED(f->IsDirectory(&value)) && value)
     {
         if (isValidFolder(source))
             return(NS_RDF_NO_VALUE);
         aFileURL.AppendLiteral("desktop.ini");
@@ -1294,17 +1294,17 @@ FileSystemDataSource::getIEFavoriteURL(n
 
 nsresult
 FileSystemDataSource::GetURL(nsIRDFResource *source, bool *isFavorite, nsIRDFLiteral** aResult)
 {
     if (isFavorite) *isFavorite = false;
 
     nsresult        rv;
     nsCString       uri;
-	
+
     rv = source->GetValueUTF8(uri);
     if (NS_FAILED(rv))
         return(rv);
 
     NS_ConvertUTF8toUTF16 url(uri);
 
 #ifdef  XP_WIN
     // under Windows, if its an IE favorite, munge the URL
--- a/rdf/datasource/nsLocalStore.cpp
+++ b/rdf/datasource/nsLocalStore.cpp
@@ -92,18 +92,18 @@ public:
 
     NS_IMETHOD GetTargets(nsIRDFResource* aSource,
                           nsIRDFResource* aProperty,
                           bool aTruthValue,
                           nsISimpleEnumerator** aTargets) override {
         return mInner->GetTargets(aSource, aProperty, aTruthValue, aTargets);
     }
 
-    NS_IMETHOD Assert(nsIRDFResource* aSource, 
-                      nsIRDFResource* aProperty, 
+    NS_IMETHOD Assert(nsIRDFResource* aSource,
+                      nsIRDFResource* aProperty,
                       nsIRDFNode* aTarget,
                       bool aTruthValue) override {
         return mInner->Assert(aSource, aProperty, aTarget, aTruthValue);
     }
 
     NS_IMETHOD Unassert(nsIRDFResource* aSource,
                         nsIRDFResource* aProperty,
                         nsIRDFNode* aTarget) override {
@@ -172,17 +172,17 @@ public:
 
     NS_IMETHOD DoCommand(nsISupports* aSources,
                          nsIRDFResource*   aCommand,
                          nsISupports* aArguments) override;
 
     NS_IMETHOD BeginUpdateBatch() override {
         return mInner->BeginUpdateBatch();
     }
-                                                                                
+
     NS_IMETHOD EndUpdateBatch() override {
         return mInner->EndUpdateBatch();
     }
 
     NS_IMETHOD GetLoaded(bool* _result) override;
     NS_IMETHOD Init(const char *uri) override;
     NS_IMETHOD Flush() override;
     NS_IMETHOD FlushTo(const char *aURI) override;
@@ -335,17 +335,17 @@ LocalStoreImpl::CreateLocalStore(nsIFile
 
     rv = aFile->Create(nsIFile::NORMAL_FILE_TYPE, 0666);
     if (NS_FAILED(rv)) return rv;
 
     nsCOMPtr<nsIOutputStream> outStream;
     rv = NS_NewLocalFileOutputStream(getter_AddRefs(outStream), aFile);
     if (NS_FAILED(rv)) return rv;
 
-    const char defaultRDF[] = 
+    const char defaultRDF[] =
         "<?xml version=\"1.0\"?>\n" \
         "<RDF:RDF xmlns:RDF=\"" RDF_NAMESPACE_URI "\"\n" \
         "         xmlns:NC=\""  NC_NAMESPACE_URI "\">\n" \
         "  <!-- Empty -->\n" \
         "</RDF:RDF>\n";
 
     uint32_t count;
     rv = outStream->Write(defaultRDF, sizeof(defaultRDF)-1, &count);
@@ -399,23 +399,23 @@ LocalStoreImpl::LoadData()
     rv = aURI->GetSpec(spec);
     if (NS_FAILED(rv)) return rv;
 
     rv = remote->Init(spec.get());
     if (NS_FAILED(rv)) return rv;
 
     // Read the datasource synchronously.
     rv = remote->Refresh(true);
-    
+
     if (NS_FAILED(rv)) {
         // Load failed, delete and recreate a fresh localstore
         aFile->Remove(true);
         rv = CreateLocalStore(aFile);
         if (NS_FAILED(rv)) return rv;
-        
+
         rv = remote->Refresh(true);
     }
 
     return rv;
 }
 
 
 NS_IMETHODIMP
--- a/security/manager/pki/nsASN1Tree.h
+++ b/security/manager/pki/nsASN1Tree.h
@@ -16,38 +16,38 @@
 
 //4bfaa9f0-1dd2-11b2-afae-a82cbaa0b606
 #define NS_NSSASN1OUTINER_CID  {             \
    0x4bfaa9f0,                               \
    0x1dd2,                                   \
    0x11b2,                                   \
    {0xaf,0xae,0xa8,0x2c,0xba,0xa0,0xb6,0x06} \
   }
-  
+
 
 class nsNSSASN1Tree : public nsIASN1Tree
 {
 public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIASN1TREE
   NS_DECL_NSITREEVIEW
-  
+
   nsNSSASN1Tree();
 protected:
   virtual ~nsNSSASN1Tree();
 
   class myNode
   {
   public:
     nsCOMPtr<nsIASN1Object> obj;
     nsCOMPtr<nsIASN1Sequence> seq;
     myNode *child;
     myNode *next;
     myNode *parent;
-    
+
     myNode() {
       child = next = parent = nullptr;
     }
   };
 
   myNode *mTopNode;
 
   nsCOMPtr<nsIASN1Object> mASN1Object;
@@ -59,14 +59,14 @@ protected:
 
   void ClearNodes();
   void ClearNodesRecursively(myNode *n);
 
   int32_t CountVisibleNodes(myNode *n);
   myNode *FindNodeFromIndex(myNode *n, int32_t wantedIndex,
                             int32_t &index_counter, int32_t &level_counter,
                             int32_t *optionalOutParentIndex, int32_t *optionalOutLevel);
-  myNode *FindNodeFromIndex(int32_t wantedIndex, 
-                            int32_t *optionalOutParentIndex = nullptr, 
+  myNode *FindNodeFromIndex(int32_t wantedIndex,
+                            int32_t *optionalOutParentIndex = nullptr,
                             int32_t *optionalOutLevel = nullptr);
 
 };
 #endif //_NSSASNTREE_H_
--- a/security/manager/pki/nsNSSDialogHelper.cpp
+++ b/security/manager/pki/nsNSSDialogHelper.cpp
@@ -21,17 +21,17 @@ nsNSSDialogHelper::openDialog(mozIDOMWin
 {
 #ifdef MOZ_WIDGET_GONK
   // On b2g devices, we need to proxy the dialog creation & management
   // to Gaia.
   return NS_ERROR_NOT_IMPLEMENTED;
 #endif
 
   nsresult rv;
-  nsCOMPtr<nsIWindowWatcher> windowWatcher = 
+  nsCOMPtr<nsIWindowWatcher> windowWatcher =
            do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv);
   if (NS_FAILED(rv)) return rv;
 
   nsCOMPtr<mozIDOMWindowProxy> parent = window;
 
   if (!parent) {
     windowWatcher->GetActiveWindow(getter_AddRefs(parent));
   }
--- a/security/manager/pki/nsNSSDialogs.cpp
+++ b/security/manager/pki/nsNSSDialogs.cpp
@@ -47,17 +47,17 @@ NS_IMPL_ISUPPORTS(nsNSSDialogs, nsIToken
 nsresult
 nsNSSDialogs::Init()
 {
   nsresult rv;
 
   nsCOMPtr<nsIStringBundleService> service =
            do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
   if (NS_FAILED(rv)) return rv;
-  
+
   rv = service->CreateBundle(PIPSTRING_BUNDLE_URL,
                              getter_AddRefs(mPIPStringBundle));
   return rv;
 }
 
 NS_IMETHODIMP
 nsNSSDialogs::SetPassword(nsIInterfaceRequestor* ctx,
                           const nsAString& tokenName,
@@ -353,17 +353,17 @@ nsNSSDialogs::ViewCert(nsIInterfaceReque
   nsCOMPtr<mozIDOMWindowProxy> parent = do_GetInterface(ctx);
   return nsNSSDialogHelper::openDialog(parent,
                                        "chrome://pippki/content/certViewer.xul",
                                        cert,
                                        false /*modal*/);
 }
 
 NS_IMETHODIMP
-nsNSSDialogs::DisplayGeneratingKeypairInfo(nsIInterfaceRequestor *aCtx, nsIKeygenThread *runnable) 
+nsNSSDialogs::DisplayGeneratingKeypairInfo(nsIInterfaceRequestor *aCtx, nsIKeygenThread *runnable)
 {
   nsresult rv;
 
   // Get the parent window for the dialog
   nsCOMPtr<mozIDOMWindowProxy> parent = do_GetInterface(aCtx);
 
   rv = nsNSSDialogHelper::openDialog(parent,
                                      "chrome://pippki/content/createCertInfo.xul",
@@ -418,33 +418,33 @@ nsNSSDialogs::ChooseToken(nsIInterfaceRe
 
 NS_IMETHODIMP
 nsNSSDialogs::DisplayProtectedAuth(nsIInterfaceRequestor *aCtx, nsIProtectedAuthThread *runnable)
 {
     // We cannot use nsNSSDialogHelper here. We cannot allow close widget
     // in the window because protected authentication is interruptible
     // from user interface and changing nsNSSDialogHelper's static variable
     // would not be thread-safe
-    
+
     nsresult rv = NS_ERROR_FAILURE;
-    
+
     // Get the parent window for the dialog
     nsCOMPtr<mozIDOMWindowProxy> parent = do_GetInterface(aCtx);
-    
-    nsCOMPtr<nsIWindowWatcher> windowWatcher = 
+
+    nsCOMPtr<nsIWindowWatcher> windowWatcher =
         do_GetService("@mozilla.org/embedcomp/window-watcher;1", &rv);
     if (NS_FAILED(rv))
         return rv;
-    
+
     if (!parent) {
         windowWatcher->GetActiveWindow(getter_AddRefs(parent));
     }
-    
+
     nsCOMPtr<mozIDOMWindowProxy> newWindow;
     rv = windowWatcher->OpenWindow(parent,
         "chrome://pippki/content/protectedAuth.xul",
         "_blank",
         "centerscreen,chrome,modal,titlebar,close=no",
         runnable,
         getter_AddRefs(newWindow));
-    
+
     return rv;
 }
--- a/security/manager/ssl/NSSErrorsService.cpp
+++ b/security/manager/ssl/NSSErrorsService.cpp
@@ -36,19 +36,19 @@ NS_IMPL_ISUPPORTS(NSSErrorsService, nsIN
 
 NSSErrorsService::~NSSErrorsService() { }
 
 nsresult
 NSSErrorsService::Init()
 {
   nsresult rv;
   nsCOMPtr<nsIStringBundleService> bundleService(do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv));
-  if (NS_FAILED(rv) || !bundleService) 
+  if (NS_FAILED(rv) || !bundleService)
     return NS_ERROR_FAILURE;
-  
+
   bundleService->CreateBundle(PIPNSS_STRBUNDLE_URL,
                               getter_AddRefs(mPIPNSSBundle));
   if (!mPIPNSSBundle)
     rv = NS_ERROR_FAILURE;
 
   bundleService->CreateBundle(NSSERR_STRBUNDLE_URL,
                               getter_AddRefs(mNSSErrorsBundle));
   if (!mNSSErrorsBundle)
@@ -119,17 +119,17 @@ NS_IMETHODIMP
 NSSErrorsService::GetErrorClass(nsresult aXPCOMErrorCode, uint32_t *aErrorClass)
 {
   NS_ENSURE_ARG(aErrorClass);
 
   if (NS_ERROR_GET_MODULE(aXPCOMErrorCode) != NS_ERROR_MODULE_SECURITY ||
       NS_ERROR_GET_SEVERITY(aXPCOMErrorCode) != NS_ERROR_SEVERITY_ERROR) {
     return NS_ERROR_FAILURE;
   }
-  
+
   int32_t aNSPRCode = -1 * NS_ERROR_GET_CODE(aXPCOMErrorCode);
 
   if (!mozilla::psm::IsNSSErrorCode(aNSPRCode)) {
     return NS_ERROR_FAILURE;
   }
 
   if (mozilla::psm::ErrorIsOverridable(aNSPRCode)) {
     *aErrorClass = ERROR_CLASS_BAD_CERT;
@@ -168,17 +168,17 @@ ErrorIsOverridable(PRErrorCode code)
 
 NS_IMETHODIMP
 NSSErrorsService::GetErrorMessage(nsresult aXPCOMErrorCode, nsAString &aErrorMessage)
 {
   if (NS_ERROR_GET_MODULE(aXPCOMErrorCode) != NS_ERROR_MODULE_SECURITY ||
       NS_ERROR_GET_SEVERITY(aXPCOMErrorCode) != NS_ERROR_SEVERITY_ERROR) {
     return NS_ERROR_FAILURE;
   }
-  
+
   int32_t aNSPRCode = -1 * NS_ERROR_GET_CODE(aXPCOMErrorCode);
 
   if (!mozilla::psm::IsNSSErrorCode(aNSPRCode)) {
     return NS_ERROR_FAILURE;
   }
 
   nsCOMPtr<nsIStringBundle> theBundle = mPIPNSSBundle;
   const char *id_str = nsNSSErrors::getOverrideErrorStringName(aNSPRCode);
--- a/security/manager/ssl/PSMContentListener.cpp
+++ b/security/manager/ssl/PSMContentListener.cpp
@@ -346,17 +346,17 @@ PSMContentDownloaderChild::OnStopRequest
 }
 
 /* ------------------------
  * PSMContentListener
  * ------------------------ */
 
 NS_IMPL_ISUPPORTS(PSMContentListener,
                   nsIURIContentListener,
-                  nsISupportsWeakReference) 
+                  nsISupportsWeakReference)
 
 PSMContentListener::PSMContentListener()
 {
   mLoadCookie = nullptr;
   mParentContentListener = nullptr;
 }
 
 PSMContentListener::~PSMContentListener()
--- a/security/manager/ssl/PSMRunnable.cpp
+++ b/security/manager/ssl/PSMRunnable.cpp
@@ -1,14 +1,14 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #include "PSMRunnable.h"
- 
+
 namespace mozilla { namespace psm {
 
 SyncRunnableBase::SyncRunnableBase()
   : Runnable("psm::SyncRunnableBase")
   , monitor("SyncRunnableBase::monitor")
 {
 }
 
--- a/security/manager/ssl/TransportSecurityInfo.cpp
+++ b/security/manager/ssl/TransportSecurityInfo.cpp
@@ -20,17 +20,17 @@
 #include "nsNSSCertificate.h"
 #include "nsNSSComponent.h"
 #include "nsReadableUtils.h"
 #include "nsServiceManagerUtils.h"
 #include "nsXULAppAPI.h"
 #include "pkix/pkixtypes.h"
 #include "secerr.h"
 
-//#define DEBUG_SSL_VERBOSE //Enable this define to get minimal 
+//#define DEBUG_SSL_VERBOSE //Enable this define to get minimal
                             //reports when doing SSL read/write
 
 //#define DUMP_BUFFER  //Enable this define along with
                        //DEBUG_SSL_VERBOSE to dump SSL
                        //read/write buffer to a log.
                        //Uses PR_LOG except on Mac where
                        //we always write out to our own
                        //file.
@@ -168,17 +168,17 @@ TransportSecurityInfo::GetErrorMessage(c
   if (!NS_IsMainThread()) {
     NS_ERROR("nsNSSSocketInfo::GetErrorMessage called off the main thread");
     return NS_ERROR_NOT_SAME_THREAD;
   }
 
   MutexAutoLock lock(mMutex);
 
   if (mErrorMessageCached.IsEmpty()) {
-    nsresult rv = formatErrorMessage(lock, 
+    nsresult rv = formatErrorMessage(lock,
                                      mErrorCode, mErrorMessageType,
                                      true, true, mErrorMessageCached);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   *aText = ToNewUnicode(mErrorMessageCached);
   return *aText ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
 }
@@ -238,17 +238,17 @@ TransportSecurityInfo::formatErrorMessag
   if (errorMessageType == SSLErrorMessageType::OverridableCert &&
       mSSLStatus && mSSLStatus->HasServerCert()) {
     rv = formatOverridableCertErrorMessage(*mSSLStatus, errorCode,
                                            mHostName, mPort,
                                            suppressPort443,
                                            wantsHtml,
                                            result);
   } else {
-    rv = formatPlainErrorMessage(mHostName, mPort, 
+    rv = formatPlainErrorMessage(mHostName, mPort,
                                  errorCode,
                                  suppressPort443,
                                  result);
   }
 
   if (NS_FAILED(rv)) {
     result.Truncate();
   }
@@ -785,26 +785,26 @@ AppendErrorTextTime(nsIX509Cert* ix509,
                     nsINSSComponent *component,
                     nsString &returnedMessage)
 {
   nsAutoString formattedDate, nowDate;
   bool trueExpired_falseNotYetValid;
   GetDateBoundary(ix509, formattedDate, nowDate, trueExpired_falseNotYetValid);
 
   const char16_t *params[2];
-  params[0] = formattedDate.get(); // might be empty, if helper function had a problem 
+  params[0] = formattedDate.get(); // might be empty, if helper function had a problem
   params[1] = nowDate.get();
 
-  const char *key = trueExpired_falseNotYetValid ? 
+  const char *key = trueExpired_falseNotYetValid ?
                     "certErrorExpiredNow" : "certErrorNotYetValidNow";
   nsresult rv;
   nsString formattedString;
   rv = component->PIPBundleFormatStringFromName(
            key,
-           params, 
+           params,
            ArrayLength(params),
            formattedString);
   if (NS_SUCCEEDED(rv))
   {
     returnedMessage.Append(formattedString);
     returnedMessage.Append('\n');
   }
 }
@@ -821,17 +821,17 @@ AppendErrorTextCode(PRErrorCode errorCod
     NS_ConvertASCIItoUTF16 idU(error_id);
 
     const char16_t *params[1];
     params[0] = idU.get();
 
     nsString formattedString;
     nsresult rv;
     rv = component->PIPBundleFormatStringFromName("certErrorCodePrefix2",
-                                                  params, 1, 
+                                                  params, 1,
                                                   formattedString);
     if (NS_SUCCEEDED(rv)) {
       returnedMessage.Append('\n');
       returnedMessage.Append(formattedString);
       returnedMessage.Append('\n');
     }
     else {
       returnedMessage.AppendLiteral(" (");
@@ -887,17 +887,17 @@ formatOverridableCertErrorMessage(nsISSL
   RefPtr<nsIX509Cert> ix509;
   rv = sslStatus.GetServerCert(getter_AddRefs(ix509));
   NS_ENSURE_SUCCESS(rv, rv);
 
   bool isUntrusted;
   rv = sslStatus.GetIsUntrusted(&isUntrusted);
   NS_ENSURE_SUCCESS(rv, rv);
   if (isUntrusted) {
-    AppendErrorTextUntrusted(errorCodeToReport, hostWithoutPort, ix509, 
+    AppendErrorTextUntrusted(errorCodeToReport, hostWithoutPort, ix509,
                              component, returnedMessage);
   }
 
   bool isDomainMismatch;
   rv = sslStatus.GetIsDomainMismatch(&isDomainMismatch);
   NS_ENSURE_SUCCESS(rv, rv);
   if (isDomainMismatch) {
     rv = AppendErrorTextMismatch(hostWithoutPort, ix509, component, wantsHtml,
@@ -1015,21 +1015,21 @@ TransportSecurityInfo::SetStatusErrorBit
 
   if (!mSSLStatus) {
     mSSLStatus = new nsSSLStatus();
   }
 
   mSSLStatus->SetServerCert(cert, EVStatus::NotEV);
 
   mSSLStatus->mHaveCertErrorBits = true;
-  mSSLStatus->mIsDomainMismatch = 
+  mSSLStatus->mIsDomainMismatch =
     collected_errors & nsICertOverrideService::ERROR_MISMATCH;
-  mSSLStatus->mIsNotValidAtThisTime = 
+  mSSLStatus->mIsNotValidAtThisTime =
     collected_errors & nsICertOverrideService::ERROR_TIME;
-  mSSLStatus->mIsUntrusted = 
+  mSSLStatus->mIsUntrusted =
     collected_errors & nsICertOverrideService::ERROR_UNTRUSTED;
 
   RememberCertErrorsTable::GetInstance().RememberCertHasError(this,
                                                               mSSLStatus,
                                                               SECFailure);
 }
 
 NS_IMETHODIMP
--- a/security/manager/ssl/TransportSecurityInfo.h
+++ b/security/manager/ssl/TransportSecurityInfo.h
@@ -91,20 +91,20 @@ protected:
 private:
   uint32_t mSecurityState;
   int32_t mSubRequestsBrokenSecurity;
   int32_t mSubRequestsNoSecurity;
 
   PRErrorCode mErrorCode;
   ::mozilla::psm::SSLErrorMessageType mErrorMessageType;
   nsString mErrorMessageCached;
-  nsresult formatErrorMessage(::mozilla::MutexAutoLock const & proofOfLock, 
+  nsresult formatErrorMessage(::mozilla::MutexAutoLock const & proofOfLock,
                               PRErrorCode errorCode,
                               ::mozilla::psm::SSLErrorMessageType errorMessageType,
-                              bool wantsHtml, bool suppressPort443, 
+                              bool wantsHtml, bool suppressPort443,
                               nsString &result);
 
   int32_t mPort;
   nsCString mHostName;
   OriginAttributes mOriginAttributes;
 
   /* SSL Status */
   RefPtr<nsSSLStatus> mSSLStatus;
--- a/security/manager/ssl/nsCertOverrideService.h
+++ b/security/manager/ssl/nsCertOverrideService.h
@@ -137,17 +137,17 @@ public:
   NS_DECL_NSICERTOVERRIDESERVICE
   NS_DECL_NSIOBSERVER
 
   nsCertOverrideService();
 
   nsresult Init();
   void RemoveAllTemporaryOverrides();
 
-  typedef void 
+  typedef void
   (*CertOverrideEnumerator)(const nsCertOverride &aSettings,
                             void *aUserData);
 
   // aCert == null: return all overrides
   // aCert != null: return overrides that match the given cert
   nsresult EnumerateCertOverrides(nsIX509Cert *aCert,
                                   CertOverrideEnumerator enumerator,
                                   void *aUserData);
@@ -170,17 +170,17 @@ protected:
     void CountPermanentOverrideTelemetry(const mozilla::MutexAutoLock& aProofOfLock);
 
     void RemoveAllFromMemory();
     nsresult Read(const mozilla::MutexAutoLock& aProofOfLock);
     nsresult Write(const mozilla::MutexAutoLock& aProofOfLock);
     nsresult AddEntryToList(const nsACString &host, int32_t port,
                             nsIX509Cert *aCert,
                             const bool aIsTemporary,
-                            const nsACString &algo_oid, 
+                            const nsACString &algo_oid,
                             const nsACString &fingerprint,
                             nsCertOverride::OverrideBits ob,
                             const nsACString &dbKey,
                             const mozilla::MutexAutoLock& aProofOfLock);
 };
 
 #define NS_CERTOVERRIDE_CID { /* 67ba681d-5485-4fff-952c-2ee337ffdcd6 */ \
     0x67ba681d,                                                        \
--- a/security/manager/ssl/nsCertTree.cpp
+++ b/security/manager/ssl/nsCertTree.cpp
@@ -267,17 +267,17 @@ nsCertTree::GetCertAtIndex(int32_t index
   } else if (certdi->mAddonInfo) {
     ret = certdi->mAddonInfo->mCert;
   }
   return ret.forget();
 }
 
 //  If the row at index is a cert, return that cert.  Otherwise, return null.
 already_AddRefed<nsCertTreeDispInfo>
-nsCertTree::GetDispInfoAtIndex(int32_t index, 
+nsCertTree::GetDispInfoAtIndex(int32_t index,
                                int32_t *outAbsoluteCertOffset)
 {
   int i, idx = 0, cIndex = 0, nc;
   if (index < 0) return nullptr;
   // Loop over the threads
   for (i=0; i<mNumOrgs; i++) {
     if (index == idx) return nullptr; // index is for thread
     idx++; // get past the thread
@@ -325,25 +325,25 @@ struct nsCertAndArrayAndPositionAndCount
   int position;
   int counter;
   nsTHashtable<nsCStringHashKey> *tracker;
 };
 
 // Used to enumerate host:port overrides that match a stored
 // certificate, creates and adds a display-info-object to the
 // provided array. Increments insert position and entry counter.
-// We remove the given key from the tracker, which is used to 
+// We remove the given key from the tracker, which is used to
 // track entries that have not yet been handled.
 // The created display-info references the cert, so make a note
 // of that by incrementing the cert usage counter.
 static void
 MatchingCertOverridesCallback(const nsCertOverride &aSettings,
                               void *aUserData)
 {
-  nsCertAndArrayAndPositionAndCounterAndTracker *cap = 
+  nsCertAndArrayAndPositionAndCounterAndTracker *cap =
     (nsCertAndArrayAndPositionAndCounterAndTracker*)aUserData;
   if (!cap)
     return;
 
   nsCertTreeDispInfo *certdi = new nsCertTreeDispInfo;
   if (certdi) {
     if (cap->certai)
       cap->certai->mUsageCount++;
@@ -391,17 +391,17 @@ struct nsArrayAndPositionAndCounterAndTr
 };
 
 // Used when enumerating the stored host:port overrides where
 // no associated certificate was found in the NSS database.
 static void
 AddRemaningHostPortOverridesCallback(const nsCertOverride &aSettings,
                                      void *aUserData)
 {
-  nsArrayAndPositionAndCounterAndTracker *cap = 
+  nsArrayAndPositionAndCounterAndTracker *cap =
     (nsArrayAndPositionAndCounterAndTracker*)aUserData;
   if (!cap)
     return;
 
   nsAutoCString hostPort;
   nsCertOverrideService::GetHostWithPort(aSettings.mAsciiHost, aSettings.mPort, hostPort);
   if (!cap->tracker->GetEntry(hostPort))
     return;
@@ -436,18 +436,18 @@ nsCertTree::GetCertsByTypeFromCertList(C
 
   if (!mOriginalOverrideService)
     return NS_ERROR_FAILURE;
 
   nsTHashtable<nsCStringHashKey> allHostPortOverrideKeys;
 
   if (aWantedType == nsIX509Cert::SERVER_CERT) {
     mOriginalOverrideService->
-      EnumerateCertOverrides(nullptr, 
-                             CollectAllHostPortOverridesCallback, 
+      EnumerateCertOverrides(nullptr,
+                             CollectAllHostPortOverridesCallback,
                              &allHostPortOverrideKeys);
   }
 
   CERTCertListNode *node;
   int count = 0;
   for (node = CERT_LIST_HEAD(aCertList);
        !CERT_LIST_END(node, aCertList);
        node = CERT_LIST_NEXT(node)) {
@@ -458,21 +458,21 @@ nsCertTree::GetCertsByTypeFromCertList(C
     bool addOverrides = false;
 
     if (!wantThisCert) {
       uint32_t thisCertType = getCertType(node->cert);
 
       // The output from getCertType is a "guess", which can be wrong.
       // The guess is based on stored trust flags, but for the host:port
       // overrides, we are storing certs without any trust flags associated.
-      // So we must check whether the cert really belongs to the 
+      // So we must check whether the cert really belongs to the
       // server, email or unknown tab. We will lookup the cert in the override
       // list to come to the decision. Unfortunately, the lookup in the
-      // override list is quite expensive. Therefore we are using this 
-      // lengthy if/else statement to minimize 
+      // override list is quite expensive. Therefore we are using this
+      // lengthy if/else statement to minimize
       // the number of override-list-lookups.
 
       if (aWantedType == nsIX509Cert::SERVER_CERT
           && thisCertType == nsIX509Cert::UNKNOWN_CERT) {
         // This unknown cert was stored without trust
         // Are there host:port based overrides stored?
         // If yes, display them.
         addOverrides = true;
@@ -483,17 +483,17 @@ nsCertTree::GetCertsByTypeFromCertList(C
         // This unknown cert was stored without trust.
         // If there are associated overrides, do not show as unknown.
         // If there are no associated overrides, display as unknown.
         wantThisCertIfNoOverrides = true;
       }
       else
       if (aWantedType == nsIX509Cert::SERVER_CERT
           && thisCertType == nsIX509Cert::SERVER_CERT) {
-        // This server cert is explicitly marked as a web site peer, 
+        // This server cert is explicitly marked as a web site peer,
         // with or without trust, but editable, so show it
         wantThisCert = true;
         // Are there host:port based overrides stored?
         // If yes, display them.
         addOverrides = true;
       }
       else
       if (aWantedType == nsIX509Cert::SERVER_CERT
@@ -524,18 +524,18 @@ nsCertTree::GetCertsByTypeFromCertList(C
     }
 
     nsCOMPtr<nsIX509Cert> pipCert = nsNSSCertificate::Create(node->cert);
     if (!pipCert)
       return NS_ERROR_OUT_OF_MEMORY;
 
     if (wantThisCertIfNoOverrides || wantThisCertIfHaveOverrides) {
       uint32_t ocount = 0;
-      nsresult rv = 
-        mOverrideService->IsCertUsedForOverrides(pipCert, 
+      nsresult rv =
+        mOverrideService->IsCertUsedForOverrides(pipCert,
                                                  true, // we want temporaries
                                                  true, // we want permanents
                                                  &ocount);
       if (wantThisCertIfNoOverrides) {
         if (NS_FAILED(rv) || ocount == 0) {
           // no overrides for this cert
           wantThisCert = true;
         }
@@ -601,17 +601,17 @@ nsCertTree::GetCertsByTypeFromCertList(C
     cap.tracker = &allHostPortOverrideKeys;
     mOriginalOverrideService->
       EnumerateCertOverrides(nullptr, AddRemaningHostPortOverridesCallback, &cap);
   }
 
   return NS_OK;
 }
 
-nsresult 
+nsresult
 nsCertTree::GetCertsByType(uint32_t           aType,
                            nsCertCompareFunc  aCertCmpFn,
                            void              *aCertCmpFnArg)
 {
   nsNSSShutDownPreventionLock locker;
   nsCOMPtr<nsIInterfaceRequestor> cxt = new PipUIContext();
   UniqueCERTCertList certList(PK11_ListCerts(PK11CertListUnique, cxt));
   return GetCertsByTypeFromCertList(certList.get(), aType, aCertCmpFn,
@@ -657,17 +657,17 @@ nsCertTree::LoadCertsFromCache(nsIX509Ce
 
   nsresult rv = GetCertsByTypeFromCache(aCache, aType,
                                         GetCompareFuncFromCertType(aType),
                                         &mCompareCache);
   if (NS_FAILED(rv)) return rv;
   return UpdateUIContents();
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::LoadCerts(uint32_t aType)
 {
   if (mTreeArray) {
     FreeCertArray();
     delete [] mTreeArray;
     mTreeArray = nullptr;
     mNumRows = 0;
   }
@@ -731,24 +731,24 @@ if (count) {
     mTree->RowCountChanged(0, -mNumRows);
   }
   mNumRows = count + mNumOrgs;
   if (mTree)
     mTree->EndUpdateBatch();
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::DeleteEntryObject(uint32_t index)
 {
   if (!mTreeArray) {
     return NS_ERROR_FAILURE;
   }
 
-  nsCOMPtr<nsIX509CertDB> certdb = 
+  nsCOMPtr<nsIX509CertDB> certdb =
     do_GetService("@mozilla.org/security/x509certdb;1");
   if (!certdb) {
     return NS_ERROR_FAILURE;
   }
 
   int i;
   uint32_t idx = 0, cIndex = 0, nc;
   // Loop over the threads
@@ -758,17 +758,17 @@ nsCertTree::DeleteEntryObject(uint32_t i
     idx++; // get past the thread
     nc = (mTreeArray[i].open) ? mTreeArray[i].numChildren : 0;
     if (index < idx + nc) { // cert is within range of this thread
       int32_t certIndex = cIndex + index - idx;
 
       bool canRemoveEntry = false;
       RefPtr<nsCertTreeDispInfo> certdi(mDispInfo.SafeElementAt(certIndex,
                                                                 nullptr));
-      
+
       // We will remove the element from the visual tree.
       // Only if we have a certdi, then we can check for additional actions.
       nsCOMPtr<nsIX509Cert> cert = nullptr;
       if (certdi) {
         if (certdi->mAddonInfo) {
           cert = certdi->mAddonInfo->mCert;
         }
         nsCertAddonInfo* addonInfo =
@@ -779,31 +779,31 @@ nsCertTree::DeleteEntryObject(uint32_t i
             addonInfo->mUsageCount--;
             if (addonInfo->mUsageCount == 0) {
               // The certificate stored in the database is no longer
               // referenced by any other object displayed.
               // That means we no longer need to keep it around
               // and really can remove it.
               canRemoveEntry = true;
             }
-          } 
+          }
         }
         else {
           if (addonInfo && addonInfo->mUsageCount > 1) {
             // user is trying to delete a perm trusted cert,
             // although there are still overrides stored,
             // so, we keep the cert, but remove the trust
 
             UniqueCERTCertificate nsscert(cert->GetCert());
 
             if (nsscert) {
               CERTCertTrust trust;
               memset((void*)&trust, 0, sizeof(trust));
 
-              SECStatus srv = CERT_DecodeTrustString(&trust, ""); // no override 
+              SECStatus srv = CERT_DecodeTrustString(&trust, ""); // no override
               if (srv == SECSuccess) {
                 CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), nsscert.get(),
                                      &trust);
               }
             }
           }
           else {
             canRemoveEntry = true;
@@ -854,108 +854,108 @@ nsCertTree::GetTreeItem(uint32_t aIndex,
   if (!certdi)
     return NS_ERROR_FAILURE;
 
   *_treeitem = certdi;
   NS_IF_ADDREF(*_treeitem);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetRowCount(int32_t *aRowCount)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   uint32_t count = 0;
   for (int32_t i=0; i<mNumOrgs; i++) {
     if (mTreeArray[i].open) {
       count += mTreeArray[i].numChildren;
     }
     count++;
   }
   *aRowCount = count;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetSelection(nsITreeSelection * *aSelection)
 {
   *aSelection = mSelection;
   NS_IF_ADDREF(*aSelection);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::SetSelection(nsITreeSelection * aSelection)
 {
   mSelection = aSelection;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetRowProperties(int32_t index, nsAString& aProps)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::GetCellProperties(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::GetCellProperties(int32_t row, nsITreeColumn* col,
                               nsAString& aProps)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetColumnProperties(nsITreeColumn* col, nsAString& aProps)
 {
   return NS_OK;
 }
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsContainer(int32_t index, bool *_retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   treeArrayEl *el = GetThreadDescAtIndex(index);
   if (el) {
     *_retval = true;
   } else {
     *_retval = false;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsContainerOpen(int32_t index, bool *_retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   treeArrayEl *el = GetThreadDescAtIndex(index);
   if (el && el->open) {
     *_retval = true;
   } else {
     *_retval = false;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsContainerEmpty(int32_t index, bool *_retval)
 {
   *_retval = !mTreeArray;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsSeparator(int32_t index, bool *_retval)
 {
   *_retval = false;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetParentIndex(int32_t rowIndex, int32_t *_retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   int i, idx = 0;
   for (i = 0; i < mNumOrgs && idx < rowIndex; i++, idx++) {
     if (mTreeArray[i].open) {
       if (rowIndex <= idx + mTreeArray[i].numChildren) {
@@ -964,18 +964,18 @@ nsCertTree::GetParentIndex(int32_t rowIn
       }
       idx += mTreeArray[i].numChildren;
     }
   }
   *_retval = -1;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::HasNextSibling(int32_t rowIndex, int32_t afterIndex, 
+NS_IMETHODIMP
+nsCertTree::HasNextSibling(int32_t rowIndex, int32_t afterIndex,
                                bool *_retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
 
   int i, idx = 0;
   for (i = 0; i < mNumOrgs && idx <= rowIndex; i++, idx++) {
     if (mTreeArray[i].open) {
@@ -985,54 +985,54 @@ nsCertTree::HasNextSibling(int32_t rowIn
         return NS_OK;
       }
     }
   }
   *_retval = false;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::GetLevel(int32_t index, int32_t *_retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   treeArrayEl *el = GetThreadDescAtIndex(index);
   if (el) {
     *_retval = 0;
   } else {
     *_retval = 1;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::GetImageSrc(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::GetImageSrc(int32_t row, nsITreeColumn* col,
                         nsAString& _retval)
 {
   _retval.Truncate();
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsCertTree::GetProgressMode(int32_t row, nsITreeColumn* col, int32_t* _retval)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::GetCellValue(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::GetCellValue(int32_t row, nsITreeColumn* col,
                          nsAString& _retval)
 {
   _retval.Truncate();
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::GetCellText(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::GetCellText(int32_t row, nsITreeColumn* col,
                         nsAString& _retval)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
 
   nsresult rv = NS_OK;
   _retval.Truncate();
 
@@ -1104,112 +1104,112 @@ nsCertTree::GetCellText(int32_t row, nsI
       nsAutoCString hostPort;
       nsCertOverrideService::GetHostWithPort(certdi->mAsciiHost, certdi->mPort, hostPort);
       _retval = NS_ConvertUTF8toUTF16(hostPort);
     }
     else {
       _retval = NS_LITERAL_STRING("*");
     }
   } else if (NS_LITERAL_STRING("lifetimecol").Equals(colID)) {
-    const char *stringID = 
+    const char *stringID =
       (certdi->mIsTemporary) ? "CertExceptionTemporary" : "CertExceptionPermanent";
     rv = mNSSComponent->GetPIPNSSBundleString(stringID, _retval);
   } else {
     return NS_ERROR_FAILURE;
   }
   if (mCellText) {
     nsCOMPtr<nsISupportsString> text(do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, &rv));
     NS_ENSURE_SUCCESS(rv, rv);
     text->SetData(_retval);
     mCellText->ReplaceElementAt(text, arrayIndex, false);
   }
   return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::SetTree(nsITreeBoxObject *tree)
 {
   mTree = tree;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::ToggleOpenState(int32_t index)
 {
   if (!mTreeArray)
     return NS_ERROR_NOT_INITIALIZED;
   treeArrayEl *el = GetThreadDescAtIndex(index);
   if (el) {
     el->open = !el->open;
     int32_t newChildren = (el->open) ? el->numChildren : -el->numChildren;
     if (mTree) mTree->RowCountChanged(index + 1, newChildren);
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::CycleHeader(nsITreeColumn* col)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::SelectionChanged()
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::CycleCell(int32_t row, nsITreeColumn* col)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsEditable(int32_t row, nsITreeColumn* col, bool *_retval)
 {
   *_retval = false;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::IsSelectable(int32_t row, nsITreeColumn* col, bool *_retval)
 {
   *_retval = false;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::SetCellValue(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::SetCellValue(int32_t row, nsITreeColumn* col,
                          const nsAString& value)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::SetCellText(int32_t row, nsITreeColumn* col, 
+NS_IMETHODIMP
+nsCertTree::SetCellText(int32_t row, nsITreeColumn* col,
                         const nsAString& value)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::PerformAction(const char16_t *action)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsCertTree::PerformActionOnRow(const char16_t *action, int32_t row)
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP 
-nsCertTree::PerformActionOnCell(const char16_t *action, int32_t row, 
+NS_IMETHODIMP
+nsCertTree::PerformActionOnCell(const char16_t *action, int32_t row,
                                 nsITreeColumn* col)
 {
   return NS_OK;
 }
 
 #ifdef DEBUG_CERT_TREE
 void
 nsCertTree::dumpMap()
@@ -1241,17 +1241,17 @@ nsCertTree::dumpMap()
 //
 // CanDrop
 //
 NS_IMETHODIMP nsCertTree::CanDrop(int32_t index, int32_t orientation,
                                   nsIDOMDataTransfer* aDataTransfer, bool *_retval)
 {
   NS_ENSURE_ARG_POINTER(_retval);
   *_retval = false;
-  
+
   return NS_OK;
 }
 
 
 //
 // Drop
 //
 NS_IMETHODIMP nsCertTree::Drop(int32_t row, int32_t orient, nsIDOMDataTransfer* aDataTransfer)
@@ -1268,25 +1268,25 @@ NS_IMETHODIMP nsCertTree::Drop(int32_t r
 NS_IMETHODIMP nsCertTree::IsSorted(bool *_retval)
 {
   *_retval = false;
   return NS_OK;
 }
 
 #define RETURN_NOTHING
 
-void 
+void
 nsCertTree::CmpInitCriterion(nsIX509Cert *cert, CompareCacheHashEntry *entry,
                              sortCriterion crit, int32_t level)
 {
   NS_ENSURE_TRUE(cert && entry, RETURN_NOTHING);
 
   entry->mCritInit[level] = true;
   nsXPIDLString &str = entry->mCrit[level];
-  
+
   switch (crit) {
     case sort_IssuerOrg:
       cert->GetIssuerOrganization(str);
       if (str.IsEmpty())
         cert->GetCommonName(str);
       break;
     case sort_Org:
       cert->GetOrganization(str);
@@ -1323,18 +1323,18 @@ nsCertTree::CmpInitCriterion(nsIX509Cert
       break;
     case sort_None:
     default:
       break;
   }
 }
 
 int32_t
-nsCertTree::CmpByCrit(nsIX509Cert *a, CompareCacheHashEntry *ace, 
-                      nsIX509Cert *b, CompareCacheHashEntry *bce, 
+nsCertTree::CmpByCrit(nsIX509Cert *a, CompareCacheHashEntry *ace,
+                      nsIX509Cert *b, CompareCacheHashEntry *bce,
                       sortCriterion crit, int32_t level)
 {
   NS_ENSURE_TRUE(a && ace && b && bce, 0);
 
   if (!ace->mCritInit[level]) {
     CmpInitCriterion(a, ace, crit, level);
   }
 
@@ -1353,17 +1353,17 @@ nsCertTree::CmpByCrit(nsIX509Cert *a, Co
 
   if (sort_IssuedDateDescending == crit)
     result *= -1; // reverse compare order
 
   return result;
 }
 
 int32_t
-nsCertTree::CmpBy(void *cache, nsIX509Cert *a, nsIX509Cert *b, 
+nsCertTree::CmpBy(void *cache, nsIX509Cert *a, nsIX509Cert *b,
                   sortCriterion c0, sortCriterion c1, sortCriterion c2)
 {
   // This will be called when comparing items for display sorting.
   // Some items might have no cert associated, so either a or b is null.
   // We want all those orphans show at the top of the list,
   // so we treat a null cert as "smaller" by returning -1.
   // We don't try to sort within the group of no-cert entries,
   // so we treat them as equal wrt sort order.
@@ -1386,17 +1386,17 @@ nsCertTree::CmpBy(void *cache, nsIX509Ce
   cmp = CmpByCrit(a, ace, b, bce, c0, 0);
   if (cmp != 0)
     return cmp;
 
   if (c1 != sort_None) {
     cmp = CmpByCrit(a, ace, b, bce, c1, 1);
     if (cmp != 0)
       return cmp;
-    
+
     if (c2 != sort_None) {
       return CmpByCrit(a, ace, b, bce, c2, 2);
     }
   }
 
   return cmp;
 }
 
--- a/security/manager/ssl/nsCertTree.h
+++ b/security/manager/ssl/nsCertTree.h
@@ -79,34 +79,34 @@ class nsCertTree : public nsICertTree
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSICERTTREE
   NS_DECL_NSITREEVIEW
 
   nsCertTree();
 
-  enum sortCriterion { sort_IssuerOrg, sort_Org, sort_Token, 
+  enum sortCriterion { sort_IssuerOrg, sort_Org, sort_Token,
     sort_CommonName, sort_IssuedDateDescending, sort_Email, sort_None };
 
 protected:
   virtual ~nsCertTree();
 
   void ClearCompareHash();
   void RemoveCacheEntry(void *key);
 
   typedef int (*nsCertCompareFunc)(void *, nsIX509Cert *a, nsIX509Cert *b);
 
   static CompareCacheHashEntry *getCacheEntry(void *cache, void *aCert);
   static void CmpInitCriterion(nsIX509Cert *cert, CompareCacheHashEntry *entry,
                                sortCriterion crit, int32_t level);
-  static int32_t CmpByCrit(nsIX509Cert *a, CompareCacheHashEntry *ace, 
-                           nsIX509Cert *b, CompareCacheHashEntry *bce, 
+  static int32_t CmpByCrit(nsIX509Cert *a, CompareCacheHashEntry *ace,
+                           nsIX509Cert *b, CompareCacheHashEntry *bce,
                            sortCriterion crit, int32_t level);
-  static int32_t CmpBy(void *cache, nsIX509Cert *a, nsIX509Cert *b, 
+  static int32_t CmpBy(void *cache, nsIX509Cert *a, nsIX509Cert *b,
                        sortCriterion c0, sortCriterion c1, sortCriterion c2);
   static int32_t CmpCACert(void *cache, nsIX509Cert *a, nsIX509Cert *b);
   static int32_t CmpWebSiteCert(void *cache, nsIX509Cert *a, nsIX509Cert *b);
   static int32_t CmpUserCert(void *cache, nsIX509Cert *a, nsIX509Cert *b);
   static int32_t CmpEmailCert(void *cache, nsIX509Cert *a, nsIX509Cert *b);
   nsCertCompareFunc GetCompareFuncFromCertType(uint32_t aType);
   int32_t CountOrganizations();
 
@@ -125,17 +125,17 @@ private:
   int32_t                         mNumOrgs;
   int32_t                         mNumRows;
   PLDHashTable mCompareCache;
   nsCOMPtr<nsINSSComponent> mNSSComponent;
   nsCOMPtr<nsICertOverrideService> mOverrideService;
   RefPtr<nsCertOverrideService> mOriginalOverrideService;
 
   treeArrayEl *GetThreadDescAtIndex(int32_t _index);
-  already_AddRefed<nsIX509Cert> 
+  already_AddRefed<nsIX509Cert>
     GetCertAtIndex(int32_t _index, int32_t *outAbsoluteCertOffset = nullptr);
   already_AddRefed<nsCertTreeDispInfo>
     GetDispInfoAtIndex(int32_t index, int32_t *outAbsoluteCertOffset = nullptr);
   void FreeCertArray();
   nsresult UpdateUIContents();
 
   nsresult GetCertsByTypeFromCertList(CERTCertList *aCertList,
                                       uint32_t aType,
--- a/security/manager/ssl/nsKeygenThread.cpp
+++ b/security/manager/ssl/nsKeygenThread.cpp
@@ -41,39 +41,39 @@ nsKeygenThread::nsKeygenThread()
  wincx(nullptr),
  threadHandle(nullptr)
 {
 }
 
 nsKeygenThread::~nsKeygenThread()
 {
   // clean up in the unlikely case that nobody consumed our results
-  
+
   if (privateKey)
     SECKEY_DestroyPrivateKey(privateKey);
-    
+
   if (publicKey)
     SECKEY_DestroyPublicKey(publicKey);
-    
+
   if (usedSlot)
     PK11_FreeSlot(usedSlot);
 }
 
 void nsKeygenThread::SetParams(
     PK11SlotInfo *a_slot,
     PK11AttrFlags a_flags,
     PK11SlotInfo *a_alternative_slot,
     PK11AttrFlags a_alternative_flags,
     uint32_t a_keyGenMechanism,
     void *a_params,
     void *a_wincx )
 {
   nsNSSShutDownPreventionLock locker;
   MutexAutoLock lock(mutex);
- 
+
     if (!alreadyReceivedParams) {
       alreadyReceivedParams = true;
       slot = (a_slot) ? PK11_ReferenceSlot(a_slot) : nullptr;
       flags = a_flags;
       altSlot = (a_alternative_slot) ? PK11_ReferenceSlot(a_alternative_slot) : nullptr;
       altFlags = a_alternative_flags;
       keyGenMechanism = a_keyGenMechanism;
       params = a_params;
@@ -88,36 +88,36 @@ nsresult nsKeygenThread::ConsumeResult(
 {
   if (!a_used_slot || !a_privateKey || !a_publicKey) {
     return NS_ERROR_FAILURE;
   }
 
   nsresult rv;
 
   MutexAutoLock lock(mutex);
-  
+
     // GetParams must not be called until thread creator called
     // Join on this thread.
     MOZ_ASSERT(keygenReady, "Logic error in nsKeygenThread::GetParams");
 
     if (keygenReady) {
       *a_privateKey = privateKey;
       *a_publicKey = publicKey;
       *a_used_slot = usedSlot;
 
       privateKey = 0;
       publicKey = 0;
       usedSlot = 0;
-      
+
       rv = NS_OK;
     }
     else {
       rv = NS_ERROR_FAILURE;
     }
-  
+
   return rv;
 }
 
 static void nsKeygenThreadRunner(void *arg)
 {
   AutoProfilerRegisterThread registerThread("Keygen");
   NS_SetCurrentThreadName("Keygen");
   nsKeygenThread *self = static_cast<nsKeygenThread *>(arg);
@@ -125,50 +125,50 @@ static void nsKeygenThreadRunner(void *a
 }
 
 nsresult nsKeygenThread::StartKeyGeneration(nsIObserver* aObserver)
 {
   if (!NS_IsMainThread()) {
     NS_ERROR("nsKeygenThread::StartKeyGeneration called off the main thread");
     return NS_ERROR_NOT_SAME_THREAD;
   }
-  
+
   if (!aObserver)
     return NS_OK;
 
   MutexAutoLock lock(mutex);
 
     if (iAmRunning || keygenReady) {
       return NS_OK;
     }
 
     // We must AddRef aObserver only here on the main thread, because it
     // probably does not implement a thread-safe AddRef.
     mNotifyObserver = new NotifyObserverRunnable(aObserver, "keygen-finished");
 
     iAmRunning = true;
 
-    threadHandle = PR_CreateThread(PR_USER_THREAD, nsKeygenThreadRunner, static_cast<void*>(this), 
+    threadHandle = PR_CreateThread(PR_USER_THREAD, nsKeygenThreadRunner, static_cast<void*>(this),
       PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD, PR_JOINABLE_THREAD, 0);
 
     // bool thread_started_ok = (threadHandle != nullptr);
     // we might want to return "thread started ok" to caller in the future
     MOZ_ASSERT(threadHandle, "Could not create nsKeygenThreadRunner thread");
   return NS_OK;
 }
 
 nsresult nsKeygenThread::UserCanceled(bool *threadAlreadyClosedDialog)
 {
   if (!threadAlreadyClosedDialog)
     return NS_OK;
 
   *threadAlreadyClosedDialog = false;
 
   MutexAutoLock lock(mutex);
-  
+
     if (keygenReady)
       *threadAlreadyClosedDialog = statusDialogClosed;
 
     // User somehow closed the dialog, but we will not cancel.
     // Bad luck, we told him not do, and user still has to wait.
     // However, we remember that it's closed and will not close
     // it again to avoid problems.
     statusDialogClosed = true;
@@ -201,21 +201,21 @@ void nsKeygenThread::Run(void)
       privateKey = PK11_GenerateKeyPairWithFlags(altSlot, keyGenMechanism,
                                                  params, &publicKey,
                                                  altFlags, wincx);
       if (privateKey) {
         usedSlot = PK11_ReferenceSlot(altSlot);
       }
     }
   }
-  
+
   // This call gave us ownership over privateKey and publicKey.
   // But as the params structure is owner by our caller,
   // we effectively transferred ownership to the caller.
-  // As long as key generation can't be canceled, we don't need 
+  // As long as key generation can't be canceled, we don't need
   // to care for cleaning this up.
 
   nsCOMPtr<nsIRunnable> notifyObserver;
   {
     MutexAutoLock lock(mutex);
 
     keygenReady = true;
     iAmRunning = false;
@@ -245,14 +245,14 @@ void nsKeygenThread::Run(void)
                "Failed to dispatch keygen thread observer to main thread");
   }
 }
 
 void nsKeygenThread::Join()
 {
   if (!threadHandle)
     return;
-  
+
   PR_JoinThread(threadHandle);
   threadHandle = nullptr;
 
   return;
 }
--- a/security/manager/ssl/nsKeygenThread.h
+++ b/security/manager/ssl/nsKeygenThread.h
@@ -15,17 +15,17 @@
 #include "nsCOMPtr.h"
 
 class nsIRunnable;
 
 class nsKeygenThread : public nsIKeygenThread
 {
 private:
   mozilla::Mutex mutex;
-  
+
   nsCOMPtr<nsIRunnable> mNotifyObserver;
 
   bool iAmRunning;
   bool keygenReady;
   bool statusDialogClosed;
   bool alreadyReceivedParams;
 
   SECKEYPrivateKey *privateKey;
@@ -41,32 +41,32 @@ private:
 
   PRThread *threadHandle;
 
 protected:
   virtual ~nsKeygenThread();
 
 public:
   nsKeygenThread();
-  
+
   NS_DECL_NSIKEYGENTHREAD
   NS_DECL_THREADSAFE_ISUPPORTS
 
   void SetParams(
     PK11SlotInfo *a_slot,
     PK11AttrFlags a_flags,
     PK11SlotInfo *a_alternative_slot,
     PK11AttrFlags a_alternative_flags,
     uint32_t a_keyGenMechanism,
     void *a_params,
     void *a_wincx );
 
   nsresult ConsumeResult(
     PK11SlotInfo **a_used_slot,
     SECKEYPrivateKey **a_privateKey,
     SECKEYPublicKey **a_publicKey);
-  
+
   void Join(void);
 
   void Run(void);
 };
 
 #endif //_NSKEYGENTHREAD_H_
--- a/security/manager/ssl/nsNSSASN1Object.cpp
+++ b/security/manager/ssl/nsNSSASN1Object.cpp
@@ -10,17 +10,17 @@
 #include "nsXPCOMCID.h"
 #include "secasn1.h"
 
 NS_IMPL_ISUPPORTS(nsNSSASN1Sequence, nsIASN1Sequence, nsIASN1Object)
 NS_IMPL_ISUPPORTS(nsNSSASN1PrintableItem, nsIASN1PrintableItem, nsIASN1Object)
 
 // This function is used to interpret an integer that
 // was encoded in a DER buffer. This function is used
-// when converting a DER buffer into a nsIASN1Object 
+// when converting a DER buffer into a nsIASN1Object
 // structure.  This interprets the buffer in data
 // as defined by the DER (Distinguised Encoding Rules) of
 // ASN1.
 static int
 getInteger256(unsigned char *data, unsigned int nb)
 {
     int val;
 
@@ -43,50 +43,50 @@ getInteger256(unsigned char *data, unsig
 
     return val;
 }
 
 // This function is used to retrieve the lenght of a DER encoded
 // item.  It looks to see if this a multibyte length and then
 // interprets the buffer accordingly to get the actual length value.
 // This funciton is used mostly while parsing the DER headers.
-// 
+//
 // A DER encoded item has the following structure:
 //
 //  <tag><length<data consisting of lenght bytes>
 static int32_t
 getDERItemLength(unsigned char *data, unsigned char *end,
                  unsigned long *bytesUsed, bool *indefinite)
 {
   unsigned char lbyte = *data++;
   int32_t length = -1;
-  
+
   *indefinite = false;
   if (lbyte >= 0x80) {
     // Multibyte length
     unsigned nb = (unsigned) (lbyte & 0x7f);
     if (nb > 4) {
       return -1;
     }
     if (nb > 0) {
-    
+
       if ((data+nb) > end) {
         return -1;
       }
       length = getInteger256(data, nb);
       if (length < 0)
         return -1;
     } else {
       *indefinite = true;
       length = 0;
     }
     *bytesUsed = nb+1;
   } else {
     length = lbyte;
-    *bytesUsed = 1; 
+    *bytesUsed = 1;
   }
   return length;
 }
 
 static nsresult
 buildASN1ObjectFromDER(unsigned char *data,
                        unsigned char *end,
                        nsIASN1Sequence *parent)
@@ -156,173 +156,173 @@ buildASN1ObjectFromDER(unsigned char *da
           type = nsIASN1Object::ASN1_PRIVATE;
           break;
         default:
           NS_ERROR("Bad DER");
           return NS_ERROR_FAILURE;
         }
         sequence->SetTag(tagnum);
         sequence->SetType(type);
-        rv = buildASN1ObjectFromDER(data, (len == 0) ? end : data + len, 
+        rv = buildASN1ObjectFromDER(data, (len == 0) ? end : data + len,
                                     sequence);
         asn1Obj = sequence;
       }
     } else {
       printableItem = new nsNSSASN1PrintableItem();
 
       asn1Obj = printableItem;
       asn1Obj->SetType(tagnum);
-      asn1Obj->SetTag(tagnum); 
+      asn1Obj->SetTag(tagnum);
       printableItem->SetData((char*)data, len);
     }
     data += len;
     parentObjects->AppendElement(asn1Obj, false);
   }
 
   return NS_OK;
 }
 
 nsresult
 CreateFromDER(unsigned char *data,
               unsigned int   len,
               nsIASN1Object **retval)
 {
   nsCOMPtr<nsIASN1Sequence> sequence = new nsNSSASN1Sequence;
   *retval = nullptr;
-  
+
   nsresult rv =  buildASN1ObjectFromDER(data, data+len, sequence);
 
   if (NS_SUCCEEDED(rv)) {
     // The actual object will be the first element inserted
     // into the sequence of the sequence variable we created.
     nsCOMPtr<nsIMutableArray> elements;
 
     sequence->GetASN1Objects(getter_AddRefs(elements));
     nsCOMPtr<nsIASN1Object> asn1Obj = do_QueryElementAt(elements, 0);
     if (!asn1Obj) {
       return NS_ERROR_FAILURE;
     }
 
     asn1Obj.forget(retval);
   }
-  return rv; 
+  return rv;
 }
 
 nsNSSASN1Sequence::nsNSSASN1Sequence() : mType(0),
                                          mTag(0),
                                          mIsValidContainer(true),
                                          mIsExpanded(true)
 {
   /* member initializers and constructor code */
 }
 
 nsNSSASN1Sequence::~nsNSSASN1Sequence()
 {
   /* destructor code */
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetASN1Objects(nsIMutableArray * *aASN1Objects)
 {
   if (!mASN1Objects) {
     mASN1Objects = nsArrayBase::Create();
   }
   *aASN1Objects = mASN1Objects;
   NS_IF_ADDREF(*aASN1Objects);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetASN1Objects(nsIMutableArray * aASN1Objects)
 {
   mASN1Objects = aASN1Objects;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetTag(uint32_t *aTag)
 {
   *aTag = mTag;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetTag(uint32_t aTag)
 {
   mTag = aTag;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetType(uint32_t *aType)
 {
   *aType = mType;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetType(uint32_t aType)
 {
   mType = aType;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetDisplayName(nsAString &aDisplayName)
 {
   aDisplayName = mDisplayName;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetDisplayName(const nsAString &aDisplayName)
 {
   mDisplayName = aDisplayName;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetDisplayValue(nsAString &aDisplayValue)
 {
   aDisplayValue = mDisplayValue;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetDisplayValue(const nsAString &aDisplayValue)
 {
   mDisplayValue = aDisplayValue;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetIsValidContainer(bool *aIsValidContainer)
 {
   NS_ENSURE_ARG_POINTER(aIsValidContainer);
   *aIsValidContainer = mIsValidContainer;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsNSSASN1Sequence::SetIsValidContainer(bool aIsValidContainer)
 {
   mIsValidContainer = aIsValidContainer;
   SetIsExpanded(mIsValidContainer);
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::GetIsExpanded(bool *aIsExpanded)
 {
   NS_ENSURE_ARG_POINTER(aIsExpanded);
   *aIsExpanded = mIsExpanded;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1Sequence::SetIsExpanded(bool aIsExpanded)
 {
   mIsExpanded = aIsExpanded;
   return NS_OK;
 }
 
 nsNSSASN1PrintableItem::nsNSSASN1PrintableItem() : mType(0),
                                                    mTag(0),
@@ -334,59 +334,59 @@ nsNSSASN1PrintableItem::nsNSSASN1Printab
 
 nsNSSASN1PrintableItem::~nsNSSASN1PrintableItem()
 {
   /* destructor code */
   if (mData)
     free(mData);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::GetDisplayValue(nsAString &aValue)
 {
   aValue = mValue;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::SetDisplayValue(const nsAString &aValue)
 {
   mValue = aValue;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::GetTag(uint32_t *aTag)
 {
   *aTag = mTag;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::SetTag(uint32_t aTag)
 {
   mTag = aTag;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::GetType(uint32_t *aType)
 {
   *aType = mType;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::SetType(uint32_t aType)
 {
   mType = aType;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::SetData(char *data, uint32_t len)
 {
   if (len > 0) {
     if (mLen < len) {
       unsigned char* newData = (unsigned char*)moz_xrealloc(mData, len);
       if (!newData)
         return NS_ERROR_OUT_OF_MEMORY;
 
@@ -396,35 +396,35 @@ nsNSSASN1PrintableItem::SetData(char *da
     memcpy(mData, data, len);
   } else if (len == 0) {
     if (mData) {
       free(mData);
       mData = nullptr;
     }
   }
   mLen = len;
-  return NS_OK;  
+  return NS_OK;
 }
 
 NS_IMETHODIMP
 nsNSSASN1PrintableItem::GetData(char **outData, uint32_t *outLen)
 {
   NS_ENSURE_ARG_POINTER(outData);
   NS_ENSURE_ARG_POINTER(outLen);
 
   *outData = (char*)mData;
   *outLen  = mLen;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::GetDisplayName(nsAString &aDisplayName)
 {
   aDisplayName = mDisplayName;
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSASN1PrintableItem::SetDisplayName(const nsAString &aDisplayName)
 {
   mDisplayName = aDisplayName;
   return NS_OK;
 }
--- a/security/manager/ssl/nsNSSCallbacks.cpp
+++ b/security/manager/ssl/nsNSSCallbacks.cpp
@@ -56,17 +56,17 @@ const uint32_t KEA_NOT_SUPPORTED = 1;
 class nsHTTPDownloadEvent : public Runnable {
 public:
   nsHTTPDownloadEvent();
   ~nsHTTPDownloadEvent();
 
   NS_IMETHOD Run();
 
   RefPtr<nsNSSHttpRequestSession> mRequestSession;
-  
+
   RefPtr<nsHTTPListener> mListener;
   bool mResponsibleForDoneSignal;
   TimeStamp mStartTime;
 };
 
 nsHTTPDownloadEvent::nsHTTPDownloadEvent()
   : mozilla::Runnable("nsHTTPDownloadEvent")
   , mResponsibleForDoneSignal(true)
@@ -137,17 +137,17 @@ nsHTTPDownloadEvent::Run()
     rv = NS_NewPostDataStream(getter_AddRefs(uploadStream),
                               false,
                               mRequestSession->mPostData);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsCOMPtr<nsIUploadChannel> uploadChannel(do_QueryInterface(chan));
     NS_ENSURE_STATE(uploadChannel);
 
-    rv = uploadChannel->SetUploadStream(uploadStream, 
+    rv = uploadChannel->SetUploadStream(uploadStream,
                                         mRequestSession->mPostContentType,
                                         -1);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   // Do not use SPDY for internal security operations. It could result
   // in the silent upgrade to ssl, which in turn could require an SSL
   // operation to fulfill something like an OCSP fetch, which is an
@@ -169,17 +169,17 @@ nsHTTPDownloadEvent::Run()
 
   mResponsibleForDoneSignal = false;
   mListener->mResponsibleForDoneSignal = true;
 
   mListener->mLoadGroup = lg.get();
   NS_ADDREF(mListener->mLoadGroup);
   mListener->mLoadGroupOwnerThread = PR_GetCurrentThread();
 
-  rv = NS_NewStreamLoader(getter_AddRefs(mListener->mLoader), 
+  rv = NS_NewStreamLoader(getter_AddRefs(mListener->mLoader),
                           mListener);
 
   if (NS_SUCCEEDED(rv)) {
     mStartTime = TimeStamp::Now();
     rv = hchan->AsyncOpen2(mListener->mLoader);
   }
 
   if (NS_FAILED(rv)) {
@@ -425,29 +425,29 @@ nsNSSHttpRequestSession::internal_send_r
       // thread code that does not expect to be called re-entrantly. Your
       // app really shouldn't do that.
       NS_WARNING("Security network blocking I/O on Main Thread");
 
       // let's process events quickly
       wait_interval = PR_MicrosecondsToInterval(50);
     }
     else
-    { 
+    {
       // On a secondary thread, it's fine to wait some more for
       // for the condition variable.
       wait_interval = PR_MillisecondsToInterval(250);
     }
 
     while (waitFlag)
     {
       if (running_on_main_thread)
       {
         // Networking runs on the main thread, which we happen to block here.
-        // Processing events will allow the OCSP networking to run while we 
-        // are waiting. Thanks a lot to Darin Fisher for rewriting the 
+        // Processing events will allow the OCSP networking to run while we
+        // are waiting. Thanks a lot to Darin Fisher for rewriting the
         // thread manager. Thanks a lot to Christian Biesinger who
         // made me aware of this possibility. (kaie)
 
         MutexAutoUnlock unlock(waitLock);
         NS_ProcessNextEvent(nullptr);
       }
 
       waitCondition.Wait(wait_interval);
@@ -609,17 +609,17 @@ nsHTTPListener::OnStreamComplete(nsIStre
   mResultCode = aStatus;
 
   FreeLoadGroup(false);
 
   nsCOMPtr<nsIRequest> req;
   nsCOMPtr<nsIHttpChannel> hchan;
 
   nsresult rv = aLoader->GetRequest(getter_AddRefs(req));
-  
+
   if (NS_FAILED(aStatus))
   {
     MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
            ("nsHTTPListener::OnStreamComplete status failed %" PRIu32,
             static_cast<uint32_t>(aStatus)));
   }
 
   if (NS_SUCCEEDED(rv))
@@ -678,26 +678,26 @@ ShowProtectedAuthPrompt(PK11SlotInfo* sl
   if (NS_SUCCEEDED(nsrv))
   {
     nsProtectedAuthThread* protectedAuthRunnable = new nsProtectedAuthThread();
     if (protectedAuthRunnable)
     {
       NS_ADDREF(protectedAuthRunnable);
 
       protectedAuthRunnable->SetParams(slot);
-      
+
       nsCOMPtr<nsIProtectedAuthThread> runnable = do_QueryInterface(protectedAuthRunnable);
       if (runnable)
       {
         nsrv = dialogs->DisplayProtectedAuth(ir, runnable);
-              
+
         // We call join on the thread,
         // so we can be sure that no simultaneous access will happen.
         protectedAuthRunnable->Join();
-              
+
         if (NS_SUCCEEDED(nsrv))
         {
           SECStatus rv = protectedAuthRunnable->GetResult();
           switch (rv)
           {
               case SECSuccess:
                   protAuthRetVal = ToNewCString(nsDependentCString(PK11_PW_AUTHENTICATED));
                   break;
@@ -717,17 +717,17 @@ ShowProtectedAuthPrompt(PK11SlotInfo* sl
 
   return protAuthRetVal;
 }
 
 class PK11PasswordPromptRunnable : public SyncRunnableBase
                                  , public nsNSSShutDownObject
 {
 public:
-  PK11PasswordPromptRunnable(PK11SlotInfo* slot, 
+  PK11PasswordPromptRunnable(PK11SlotInfo* slot,
                              nsIInterfaceRequestor* ir)
     : mResult(nullptr),
       mSlot(slot),
       mIR(ir)
   {
   }
   virtual ~PK11PasswordPromptRunnable();
 
--- a/security/manager/ssl/nsNSSCertTrust.cpp
+++ b/security/manager/ssl/nsNSSCertTrust.cpp
@@ -32,32 +32,32 @@ nsNSSCertTrust::AddPeerTrust(bool ssl, b
     addTrust(&mTrust.objectSigningFlags, CERTDB_TRUSTED);
 }
 
 nsNSSCertTrust::nsNSSCertTrust()
 {
   memset(&mTrust, 0, sizeof(CERTCertTrust));
 }
 
-nsNSSCertTrust::nsNSSCertTrust(unsigned int ssl, 
-                               unsigned int email, 
+nsNSSCertTrust::nsNSSCertTrust(unsigned int ssl,
+                               unsigned int email,
                                unsigned int objsign)
 {
   memset(&mTrust, 0, sizeof(CERTCertTrust));
   addTrust(&mTrust.sslFlags, ssl);
   addTrust(&mTrust.emailFlags, email);
   addTrust(&mTrust.objectSigningFlags, objsign);
 }
 
 nsNSSCertTrust::nsNSSCertTrust(CERTCertTrust *t)
 {
   if (t)
     memcpy(&mTrust, t, sizeof(CERTCertTrust));
   else
-    memset(&mTrust, 0, sizeof(CERTCertTrust)); 
+    memset(&mTrust, 0, sizeof(CERTCertTrust));
 }
 
 nsNSSCertTrust::~nsNSSCertTrust()
 {
 }
 
 void
 nsNSSCertTrust::SetSSLTrust(bool peer, bool tPeer,
@@ -134,17 +134,17 @@ nsNSSCertTrust::SetValidCA()
   SetEmailTrust(false, false,
                 true, false, false,
                 false, false);
   SetObjSignTrust(false, false,
                   true, false, false,
                   false, false);
 }
 
-void 
+void
 nsNSSCertTrust::SetValidPeer()
 {
   SetSSLTrust(true, false,
               false, false, false,
               false, false);
   SetEmailTrust(true, false,
                 false, false, false,
                 false, false);
@@ -159,18 +159,18 @@ nsNSSCertTrust::HasAnyCA()
   if (hasTrust(mTrust.sslFlags, CERTDB_VALID_CA) ||
       hasTrust(mTrust.emailFlags, CERTDB_VALID_CA) ||
       hasTrust(mTrust.objectSigningFlags, CERTDB_VALID_CA))
     return true;
   return false;
 }
 
 bool
-nsNSSCertTrust::HasPeer(bool checkSSL, 
-                        bool checkEmail,  
+nsNSSCertTrust::HasPeer(bool checkSSL,
+                        bool checkEmail,
                         bool checkObjSign)
 {
   if (checkSSL && !hasTrust(mTrust.sslFlags, CERTDB_TERMINAL_RECORD))
     return false;
   if (checkEmail && !hasTrust(mTrust.emailFlags, CERTDB_TERMINAL_RECORD))
     return false;
   if (checkObjSign && !hasTrust(mTrust.objectSigningFlags, CERTDB_TERMINAL_RECORD))
     return false;
@@ -183,43 +183,43 @@ nsNSSCertTrust::HasAnyUser()
   if (hasTrust(mTrust.sslFlags, CERTDB_USER) ||
       hasTrust(mTrust.emailFlags, CERTDB_USER) ||
       hasTrust(mTrust.objectSigningFlags, CERTDB_USER))
     return true;
   return false;
 }
 
 bool
-nsNSSCertTrust::HasTrustedCA(bool checkSSL, 
-                             bool checkEmail,  
+nsNSSCertTrust::HasTrustedCA(bool checkSSL,
+                             bool checkEmail,
                              bool checkObjSign)
 {
   if (checkSSL && !(hasTrust(mTrust.sslFlags, CERTDB_TRUSTED_CA) ||
                     hasTrust(mTrust.sslFlags, CERTDB_TRUSTED_CLIENT_CA)))
     return false;
   if (checkEmail && !(hasTrust(mTrust.emailFlags, CERTDB_TRUSTED_CA) ||
                       hasTrust(mTrust.emailFlags, CERTDB_TRUSTED_CLIENT_CA)))
     return false;
-  if (checkObjSign && 
+  if (checkObjSign &&
        !(hasTrust(mTrust.objectSigningFlags, CERTDB_TRUSTED_CA) ||
          hasTrust(mTrust.objectSigningFlags, CERTDB_TRUSTED_CLIENT_CA)))
     return false;
   return true;
 }
 
 bool
-nsNSSCertTrust::HasTrustedPeer(bool checkSSL, 
-                               bool checkEmail,  
+nsNSSCertTrust::HasTrustedPeer(bool checkSSL,
+                               bool checkEmail,
                                bool checkObjSign)
 {
   if (checkSSL && !(hasTrust(mTrust.sslFlags, CERTDB_TRUSTED)))
     return false;
   if (checkEmail && !(hasTrust(mTrust.emailFlags, CERTDB_TRUSTED)))
     return false;
-  if (checkObjSign && 
+  if (checkObjSign &&
        !(hasTrust(mTrust.objectSigningFlags, CERTDB_TRUSTED)))
     return false;
   return true;
 }
 
 void
 nsNSSCertTrust::addTrust(unsigned int *t, unsigned int v)
 {
--- a/security/manager/ssl/nsNSSCertTrust.h
+++ b/security/manager/ssl/nsNSSCertTrust.h
@@ -17,37 +17,37 @@ public:
   nsNSSCertTrust();
   nsNSSCertTrust(unsigned int ssl, unsigned int email, unsigned int objsign);
   explicit nsNSSCertTrust(CERTCertTrust *t);
   virtual ~nsNSSCertTrust();
 
   /* query */
   bool HasAnyCA();
   bool HasAnyUser();
-  bool HasPeer(bool checkSSL = true, 
-                 bool checkEmail = true,  
+  bool HasPeer(bool checkSSL = true,
+                 bool checkEmail = true,
                  bool checkObjSign = true);
-  bool HasTrustedCA(bool checkSSL = true, 
-                      bool checkEmail = true,  
+  bool HasTrustedCA(bool checkSSL = true,
+                      bool checkEmail = true,
                       bool checkObjSign = true);
-  bool HasTrustedPeer(bool checkSSL = true, 
-                        bool checkEmail = true,  
+  bool HasTrustedPeer(bool checkSSL = true,
+                        bool checkEmail = true,
                         bool checkObjSign = true);
 
   /* common defaults */
   /* equivalent to "c,c,c" */
   void SetValidCA();
   /* equivalent to "p,p,p" */
   void SetValidPeer();
 
   /* general setters */
   /* read: "p, P, c, C, T, u, w" */
   void SetSSLTrust(bool peer, bool tPeer,
                    bool ca,   bool tCA, bool tClientCA,
-                   bool user, bool warn); 
+                   bool user, bool warn);
 
   void SetEmailTrust(bool peer, bool tPeer,
                      bool ca,   bool tCA, bool tClientCA,
                      bool user, bool warn);
 
   void SetObjSignTrust(bool peer, bool tPeer,
                        bool ca,   bool tCA, bool tClientCA,
                        bool user, bool warn);
--- a/security/manager/ssl/nsNSSCertificateDB.cpp
+++ b/security/manager/ssl/nsNSSCertificateDB.cpp
@@ -229,23 +229,23 @@ nsNSSCertificateDB::getCertsFromPackage(
   return collectArgs;
 }
 
 nsresult
 nsNSSCertificateDB::handleCACertDownload(NotNull<nsIArray*> x509Certs,
                                          nsIInterfaceRequestor *ctx,
                                          const nsNSSShutDownPreventionLock &proofOfLock)
 {
-  // First thing we have to do is figure out which certificate we're 
-  // gonna present to the user.  The CA may have sent down a list of 
+  // First thing we have to do is figure out which certificate we're
+  // gonna present to the user.  The CA may have sent down a list of
   // certs which may or may not be a chained list of certs.  Until
   // the day we can design some solid UI for the general case, we'll
   // code to the > 90% case.  That case is where a CA sends down a
-  // list that is a hierarchy whose root is either the first or 
-  // the last cert.  What we're gonna do is compare the first 
+  // list that is a hierarchy whose root is either the first or
+  // the last cert.  What we're gonna do is compare the first
   // 2 entries, if the second was signed by the first, we assume
   // the root cert is the first cert and display it.  Otherwise,
   // we compare the last 2 entries, if the second to last cert was
   // signed by the last cert, then we assume the last cert is the
   // root and display it.
 
   uint32_t numCerts;
 
@@ -278,38 +278,38 @@ nsNSSCertificateDB::handleCACertDownload
 
     cert0->GetSubjectName(cert0SubjectName);
     cert1->GetIssuerName(cert1IssuerName);
     certn_2->GetIssuerName(certn_2IssuerName);
     certn_1->GetSubjectName(certn_1SubjectName);
 
     if (cert1IssuerName.Equals(cert0SubjectName)) {
       // In this case, the first cert in the list signed the second,
-      // so the first cert is the root.  Let's display it. 
+      // so the first cert is the root.  Let's display it.
       selCertIndex = 0;
       certToShow = cert0;
-    } else 
-    if (certn_2IssuerName.Equals(certn_1SubjectName)) { 
+    } else
+    if (certn_2IssuerName.Equals(certn_1SubjectName)) {
       // In this case the last cert has signed the second to last cert.
       // The last cert is the root, so let's display it.
       selCertIndex = numCerts-1;
       certToShow = certn_1;
     } else {
-      // It's not a chain, so let's just show the first one in the 
+      // It's not a chain, so let's just show the first one in the
       // downloaded list.
       selCertIndex = 0;
       certToShow = cert0;
     }
   }
 
   if (!certToShow)
     return NS_ERROR_FAILURE;
 
   nsCOMPtr<nsICertificateDialogs> dialogs;
-  nsresult rv = ::getNSSDialogs(getter_AddRefs(dialogs), 
+  nsresult rv = ::getNSSDialogs(getter_AddRefs(dialogs),
                                 NS_GET_IID(nsICertificateDialogs),
                                 NS_CERTIFICATEDIALOGS_CONTRACTID);
   if (NS_FAILED(rv)) {
     return rv;
   }
 
   UniqueCERTCertificate tmpCert(certToShow->GetCert());
   if (!tmpCert) {
@@ -657,18 +657,18 @@ nsNSSCertificateDB::ImportValidCACertsIn
     if (NS_FAILED(rv)) {
       return rv;
     }
   }
 
   return NS_OK;
 }
 
-void nsNSSCertificateDB::DisplayCertificateAlert(nsIInterfaceRequestor *ctx, 
-                                                 const char *stringID, 
+void nsNSSCertificateDB::DisplayCertificateAlert(nsIInterfaceRequestor *ctx,
+                                                 const char *stringID,
                                                  nsIX509Cert *certToShow,
                                                  const nsNSSShutDownPreventionLock &/*proofOfLock*/)
 {
   static NS_DEFINE_CID(kNSSComponentCID, NS_NSSCOMPONENT_CID);
 
   if (!NS_IsMainThread()) {
     NS_ERROR("nsNSSCertificateDB::DisplayCertificateAlert called off the main thread");
     return;
@@ -760,17 +760,17 @@ nsNSSCertificateDB::ImportUserCertificat
   if (numCACerts) {
     SECItem* caCerts = collectArgs->rawCerts + 1;
     return ImportValidCACerts(numCACerts, caCerts, ctx, locker);
   }
 
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSCertificateDB::DeleteCertificate(nsIX509Cert *aCert)
 {
   NS_ENSURE_ARG_POINTER(aCert);
   nsNSSShutDownPreventionLock locker;
   if (isAlreadyShutDown()) {
     return NS_ERROR_NOT_AVAILABLE;
   }
   UniqueCERTCertificate cert(aCert->GetCert());
@@ -784,31 +784,31 @@ nsNSSCertificateDB::DeleteCertificate(ns
   if (NS_FAILED(aCert->MarkForPermDeletion()))
   {
     return NS_ERROR_FAILURE;
   }
 
   if (cert->slot && certType != nsIX509Cert::USER_CERT) {
     // To delete a cert of a slot (builtin, most likely), mark it as
     // completely untrusted.  This way we keep a copy cached in the
-    // local database, and next time we try to load it off of the 
-    // external token/slot, we'll know not to trust it.  We don't 
+    // local database, and next time we try to load it off of the
+    // external token/slot, we'll know not to trust it.  We don't
     // want to do that with user certs, because a user may  re-store
-    // the cert onto the card again at which point we *will* want to 
+    // the cert onto the card again at which point we *will* want to
     // trust that cert if it chains up properly.
     nsNSSCertTrust trust(0, 0, 0);
-    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), 
+    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(),
                                cert.get(), trust.GetTrust());
   }
   MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("cert deleted: %d", srv));
   return (srv) ? NS_ERROR_FAILURE : NS_OK;
 }
 
-NS_IMETHODIMP 
-nsNSSCertificateDB::SetCertTrust(nsIX509Cert *cert, 
+NS_IMETHODIMP
+nsNSSCertificateDB::SetCertTrust(nsIX509Cert *cert,
                                  uint32_t type,
                                  uint32_t trusted)
 {
   NS_ENSURE_ARG_POINTER(cert);
   nsNSSShutDownPreventionLock locker;
   if (isAlreadyShutDown()) {
     return NS_ERROR_NOT_AVAILABLE;
   }
@@ -823,42 +823,42 @@ nsNSSCertificateDB::SetCertTrust(nsIX509
 
   SECStatus srv;
   if (type == nsIX509Cert::CA_CERT) {
     // always start with untrusted and move up
     trust.SetValidCA();
     trust.AddCATrust(!!(trusted & nsIX509CertDB::TRUSTED_SSL),
                      !!(trusted & nsIX509CertDB::TRUSTED_EMAIL),
                      !!(trusted & nsIX509CertDB::TRUSTED_OBJSIGN));
-    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), 
+    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(),
                                nsscert.get(),
                                trust.GetTrust());
   } else if (type == nsIX509Cert::SERVER_CERT) {
     // always start with untrusted and move up
     trust.SetValidPeer();
     trust.AddPeerTrust(trusted & nsIX509CertDB::TRUSTED_SSL, 0, 0);
-    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), 
+    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(),
                                nsscert.get(),
                                trust.GetTrust());
   } else if (type == nsIX509Cert::EMAIL_CERT) {
     // always start with untrusted and move up
     trust.SetValidPeer();
     trust.AddPeerTrust(0, !!(trusted & nsIX509CertDB::TRUSTED_EMAIL), 0);
-    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), 
+    srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(),
                                nsscert.get(),
                                trust.GetTrust());
   } else {
     // ignore user certs
     return NS_OK;
   }
   return MapSECStatus(srv);
 }
 
-NS_IMETHODIMP 
-nsNSSCertificateDB::IsCertTrusted(nsIX509Cert *cert, 
+NS_IMETHODIMP
+nsNSSCertificateDB::IsCertTrusted(nsIX509Cert *cert,
                                   uint32_t certType,
                                   uint32_t trustType,
                                   bool *_isTrusted)
 {
   NS_ENSURE_ARG_POINTER(_isTrusted);
   *_isTrusted = false;
 
   nsNSSShutDownPreventionLock locker;
@@ -1043,17 +1043,17 @@ nsNSSCertificateDB::FindCertByEmailAddre
     }
   }
 
   if (CERT_LIST_END(node, certlist)) {
     // no valid cert found
     return NS_ERROR_FAILURE;
   }
 
-  // node now contains the first valid certificate with correct usage 
+  // node now contains the first valid certificate with correct usage
   RefPtr<nsNSSCertificate> nssCert = nsNSSCertificate::Create(node->cert);
   if (!nssCert)
     return NS_ERROR_OUT_OF_MEMORY;
 
   nssCert.forget(_retval);
   return NS_OK;
 }
 
@@ -1113,17 +1113,17 @@ nsNSSCertificateDB::ConstructX509(const 
   if (!nssCert) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
   nssCert.forget(_retval);
   return NS_OK;
 }
 
 void
-nsNSSCertificateDB::get_default_nickname(CERTCertificate *cert, 
+nsNSSCertificateDB::get_default_nickname(CERTCertificate *cert,
                                          nsIInterfaceRequestor* ctx,
                                          nsCString &nickname,
                                          const nsNSSShutDownPreventionLock &/*proofOfLock*/)
 {
   static NS_DEFINE_CID(kNSSComponentCID, NS_NSSCOMPONENT_CID);
 
   nickname.Truncate();
 
@@ -1317,30 +1317,30 @@ nsNSSCertificateDB::SetCertTrustFromStri
   if (NS_WARN_IF(rv != NS_OK)) {
     return rv;
   }
 
   srv = CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), nssCert.get(), &trust);
   return MapSECStatus(srv);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsNSSCertificateDB::GetCerts(nsIX509CertList **_retval)
 {
   nsNSSShutDownPreventionLock locker;
   if (isAlreadyShutDown()) {
     return NS_ERROR_NOT_AVAILABLE;
   }
 
   nsCOMPtr<nsIInterfaceRequestor> ctx = new PipUIContext();
   nsCOMPtr<nsIX509CertList> nssCertList;
   UniqueCERTCertList certList(PK11_ListCerts(PK11CertListUnique, ctx));
 
   // nsNSSCertList 1) adopts certList, and 2) handles the nullptr case fine.
-  // (returns an empty list) 
+  // (returns an empty list)
   nssCertList = new nsNSSCertList(Move(certList), locker);
 
   nssCertList.forget(_retval);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsNSSCertificateDB::GetEnterpriseRoots(nsIX509CertList** enterpriseRoots)
--- a/security/manager/ssl/nsNSSCertificateDB.h
+++ b/security/manager/ssl/nsNSSCertificateDB.h
@@ -28,17 +28,17 @@ public:
 
   // Use this function to generate a default nickname for a user
   // certificate that is to be imported onto a token.
   static void
   get_default_nickname(CERTCertificate *cert, nsIInterfaceRequestor* ctx,
                        nsCString &nickname,
                        const nsNSSShutDownPreventionLock &proofOfLock);
 
-  static nsresult 
+  static nsresult
   ImportValidCACerts(int numCACerts, SECItem *CACerts, nsIInterfaceRequestor *ctx,
                      const nsNSSShutDownPreventionLock &proofOfLock);
 
   // This is a separate static method so nsNSSComponent can use it during NSS
   // initialization. Other code should probably not use it.
   static nsresult
   FindCertByDBKey(const nsACString& aDBKey, mozilla::UniqueCERTCertificate& cert);
 
@@ -47,17 +47,17 @@ protected:
 
 private:
 
   static nsresult
   ImportValidCACertsInList(const mozilla::UniqueCERTCertList& filteredCerts,
                            nsIInterfaceRequestor* ctx,
                            const nsNSSShutDownPreventionLock& proofOfLock);
 
-  static void DisplayCertificateAlert(nsIInterfaceRequestor *ctx, 
+  static void DisplayCertificateAlert(nsIInterfaceRequestor *ctx,
                                       const char *stringID, nsIX509Cert *certToShow,
                                       const nsNSSShutDownPreventionLock &proofOfLock);
 
   CERTDERCerts* getCertsFromPackage(const mozilla::UniquePLArenaPool& arena,
                                     uint8_t* data, uint32_t length,
                                     const nsNSSShutDownPreventionLock& proofOfLock);
   nsresult handleCACertDownload(mozilla::NotNull<nsIArray*> x509Certs,
                                 nsIInterfaceRequestor *ctx,
--- a/security/manager/ssl/nsNSSErrors.cpp
+++ b/security/manager/ssl/nsNSSErrors.cpp
@@ -18,21 +18,21 @@ const char *
 nsNSSErrors::getOverrideErrorStringName(PRErrorCode aErrorCode)
 {
   const char *id_str = nullptr;
 
   switch (aErrorCode) {
     case SSL_ERROR_SSL_DISABLED:
       id_str = "PSMERR_SSL_Disabled";
       break;
-  
+
     case SSL_ERROR_SSL2_DISABLED:
       id_str = "PSMERR_SSL2_Disabled";
       break;
-  
+
     case SEC_ERROR_REUSED_ISSUER_AND_SERIAL:
       id_str = "PSMERR_HostReusedIssuerSerial";
       break;
   }
 
   return id_str;
 }
 
@@ -61,36 +61,36 @@ nsNSSErrors::getErrorMessageFromCode(PRE
     }
 
     if (NS_SUCCEEDED(rv))
     {
       returnedMessage.Append(defMsg);
       returnedMessage.Append('\n');
     }
   }
-  
+
   if (returnedMessage.IsEmpty())
   {
     // no localized string available, use NSS' internal
     returnedMessage.AppendASCII(PR_ErrorToString(err, PR_LANGUAGE_EN));
     returnedMessage.Append('\n');
   }
-  
+
   if (nss_error_id_str)
   {
     nsresult rv;
     nsCString error_id(nss_error_id_str);
     NS_ConvertASCIItoUTF16 idU(error_id);
 
     const char16_t *params[1];
     params[0] = idU.get();
 
     nsString formattedString;
     rv = component->PIPBundleFormatStringFromName("certErrorCodePrefix2",
-                                                  params, 1, 
+                                                  params, 1,
                                                   formattedString);
     if (NS_SUCCEEDED(rv)) {
       returnedMessage.Append('\n');
       returnedMessage.Append(formattedString);
       returnedMessage.Append('\n');
     }
     else {
       returnedMessage.Append('(');
--- a/security/manager/ssl/nsNSSHelper.h
+++ b/security/manager/ssl/nsNSSHelper.h
@@ -28,17 +28,17 @@ protected:
   virtual ~PipUIContext();
 };
 
 //
 // Function to get the implementor for a certain set of NSS
 // specific dialogs.
 //
 
-nsresult 
+nsresult
 getNSSDialogs(void **_result, REFNSIID aIID, const char *contract);
 
 extern "C" {
 // a "fake" unicode conversion function
 PRBool
 pip_ucs2_ascii_conversion_fn(PRBool toUnicode,
                              unsigned char *inBuf,
                              unsigned int inBufLen,
--- a/security/manager/ssl/nsNSSShutDown.cpp
+++ b/security/manager/ssl/nsNSSShutDown.cpp
@@ -213,17 +213,17 @@ bool nsNSSShutDownList::construct(const 
   if (!singleton && !sInShutdown && XRE_IsParentProcess()) {
     singleton = new nsNSSShutDownList();
   }
 
   return !!singleton;
 }
 
 nsNSSActivityState::nsNSSActivityState()
-:mNSSActivityStateLock("nsNSSActivityState.mNSSActivityStateLock"), 
+:mNSSActivityStateLock("nsNSSActivityState.mNSSActivityStateLock"),
  mNSSActivityChanged(mNSSActivityStateLock,
                      "nsNSSActivityState.mNSSActivityStateLock"),
  mNSSActivityCounter(0),
  mNSSRestrictedThread(nullptr)
 {
 }
 
 nsNSSActivityState::~nsNSSActivityState()
--- a/security/manager/ssl/nsNSSVersion.h
+++ b/security/manager/ssl/nsNSSVersion.h
@@ -9,17 +9,17 @@
 #include "nsINSSVersion.h"
 #include "mozilla/Attributes.h"
 
 class nsNSSVersion final : public nsINSSVersion
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSINSSVERSION
-  
+
   nsNSSVersion();
 
 private:
   ~nsNSSVersion();
 };
 
 #define NS_NSSVERSION_CID \
   { 0x23ad3531, 0x11d2, 0x4e8e, { 0x80, 0x5a, 0x6a, 0x75, 0x2e, 0x91, 0x68, 0x1a } }
--- a/security/manager/ssl/nsNTLMAuthModule.cpp
+++ b/security/manager/ssl/nsNTLMAuthModule.cpp
@@ -244,17 +244,17 @@ WriteBytes(void *buf, const void *data, 
 {
   memcpy(buf, data, dataLen);
   return (uint8_t *) buf + dataLen;
 }
 
 static void *
 WriteDWORD(void *buf, uint32_t dword)
 {
-#ifdef IS_BIG_ENDIAN 
+#ifdef IS_BIG_ENDIAN
   // NTLM uses little endian on the wire
   dword = SWAP32(dword);
 #endif
   return WriteBytes(buf, &dword, sizeof(dword));
 }
 
 static void *
 WriteSecBuf(void *buf, uint16_t length, uint32_t offset)
@@ -335,17 +335,17 @@ ZapString(nsString &s)
  * @param hash
  *        16-byte result buffer
  */
 static void
 NTLM_Hash(const nsString &password, unsigned char *hash)
 {
   uint32_t len = password.Length();
   uint8_t *passbuf;
-  
+
 #ifdef IS_BIG_ENDIAN
   passbuf = (uint8_t *) malloc(len * 2);
   WriteUnicodeLE(passbuf, password.get(), len);
 #else
   passbuf = (uint8_t *) password.get();
 #endif
 
   md4sum(passbuf, len * 2, hash);
@@ -353,17 +353,17 @@ NTLM_Hash(const nsString &password, unsi
 #ifdef IS_BIG_ENDIAN
   ZapBuf(passbuf, len * 2);
   free(passbuf);
 #endif
 }
 
 //-----------------------------------------------------------------------------
 
-/** 
+/**
  * LM_Response generates the LM response given a 16-byte password hash and the
  * challenge from the Type-2 message.
  *
  * @param hash
  *        16-byte password hash
  * @param challenge
  *        8-byte challenge from Type-2 message
  * @param response
@@ -553,17 +553,17 @@ GenerateType3Msg(const nsString &domain,
   // by explict user configuration to use the older DES-based cryptography.
   bool ntlmv2 = (sNTLMv1Forced == false);
 
   // temporary buffers for unicode strings
 #ifdef IS_BIG_ENDIAN
   nsAutoString ucsDomainBuf, ucsUserBuf;
 #endif
   nsAutoCString hostBuf;
-  nsAutoString ucsHostBuf; 
+  nsAutoString ucsHostBuf;
   // temporary buffers for oem strings
   nsAutoCString oemDomainBuf, oemUserBuf, oemHostBuf;
   // pointers and lengths for the string buffers; encoding is unicode if
   // the "negotiate unicode" flag was set in the Type-2 message.
   const void *domainPtr, *userPtr, *hostPtr;
   uint32_t domainLen, userLen, hostLen;
 
   // This is for NTLM, for NTLMv2 we set the new full length once we know it
--- a/security/manager/ssl/nsPKCS12Blob.cpp
+++ b/security/manager/ssl/nsPKCS12Blob.cpp
@@ -56,31 +56,31 @@ nsPKCS12Blob::~nsPKCS12Blob()
 // import the results into the internal database.
 nsresult
 nsPKCS12Blob::ImportFromFile(nsIFile *file)
 {
   nsNSSShutDownPreventionLock locker;
   nsresult rv = NS_OK;
 
   RetryReason wantRetry;
-  
+
   do {
     rv = ImportFromFileHelper(file, im_standard_prompt, wantRetry);
-    
+
     if (NS_SUCCEEDED(rv) && wantRetry == rr_auto_retry_empty_password_flavors) {
       rv = ImportFromFileHelper(file, im_try_zero_length_secitem, wantRetry);
     }
   }
   while (NS_SUCCEEDED(rv) && (wantRetry != rr_do_not_retry));
-  
+
   return rv;
 }
 
 nsresult
-nsPKCS12Blob::ImportFromFileHelper(nsIFile *file, 
+nsPKCS12Blob::ImportFromFileHelper(nsIFile *file,
                                    nsPKCS12Blob::ImportMode aImportMode,
                                    nsPKCS12Blob::RetryReason &aWantRetry)
 {
   nsNSSShutDownPreventionLock locker;
   nsresult rv = NS_OK;
   SECStatus srv = SECSuccess;
   SEC_PKCS12DecoderContext *dcx = nullptr;
   SECItem unicodePw = { siBuffer, nullptr, 0  };
@@ -134,17 +134,17 @@ nsPKCS12Blob::ImportFromFileHelper(nsIFi
 finish:
   // If srv != SECSuccess, NSS probably set a specific error code.
   // We should use that error code instead of inventing a new one
   // for every error possible.
   if (srv != SECSuccess) {
     if (SEC_ERROR_BAD_PASSWORD == PORT_GetError()) {
       if (unicodePw.len == sizeof(char16_t))
       {
-        // no password chars available, 
+        // no password chars available,
         // unicodeToItem allocated space for the trailing zero character only.
         aWantRetry = rr_auto_retry_empty_password_flavors;
       }
       else
       {
         aWantRetry = rr_bad_password;
         handleError(PIP_PKCS12_NSS_ERROR);
       }
@@ -180,17 +180,17 @@ isExtractable(SECKEYPrivateKey *privKey)
   return isExtractable;
 }
 
 // nsPKCS12Blob::ExportToFile
 //
 // Having already loaded the certs, form them into a blob (loading the keys
 // also), encode the blob, and stuff it into the file.
 nsresult
-nsPKCS12Blob::ExportToFile(nsIFile *file, 
+nsPKCS12Blob::ExportToFile(nsIFile *file,
                            nsIX509Cert **certs, int numCerts)
 {
   nsNSSShutDownPreventionLock locker;
   nsresult rv;
   SECStatus srv = SECSuccess;
   SEC_PKCS12ExportContext *ecx = nullptr;
   SEC_PKCS12SafeInfo *certSafe = nullptr, *keySafe = nullptr;
   SECItem unicodePw;
@@ -223,20 +223,20 @@ nsPKCS12Blob::ExportToFile(nsIFile *file
   for (i=0; i<numCerts; i++) {
     nsNSSCertificate *cert = (nsNSSCertificate *)certs[i];
     // get it as a CERTCertificate XXX
     UniqueCERTCertificate nssCert(cert->GetCert());
     if (!nssCert) {
       rv = NS_ERROR_FAILURE;
       goto finish;
     }
-    // We can only successfully export certs that are on 
+    // We can only successfully export certs that are on
     // internal token.  Most, if not all, smart card vendors
     // won't let you extract the private key (in any way
-    // shape or form) from the card.  So let's punt if 
+    // shape or form) from the card.  So let's punt if
     // the cert is not in the internal db.
     if (nssCert->slot && !PK11_IsInternal(nssCert->slot)) {
       // we aren't the internal token, see if the key is extractable.
       SECKEYPrivateKey *privKey=PK11_FindKeyByDERCert(nssCert->slot,
                                                       nssCert.get(), this);
 
       if (privKey) {
         bool privKeyIsExtractable = isExtractable(privKey);
@@ -271,36 +271,36 @@ nsPKCS12Blob::ExportToFile(nsIFile *file
     srv = SEC_PKCS12AddCertAndKey(ecx, certSafe, nullptr, nssCert.get(),
                                   CERT_GetDefaultCertDB(), // XXX
                                   keySafe, nullptr, true, &unicodePw,
                       SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC);
     if (srv) goto finish;
     // cert was dup'ed, so release it
     ++numCertsExported;
   }
-  
+
   if (!numCertsExported) goto finish;
-  
+
   // prepare the instance to write to an export file
   this->mTmpFile = nullptr;
   file->GetPath(filePath);
   // Use the nsCOMPtr var localFileRef so that
   // the reference to the nsIFile we create gets released as soon as
   // we're out of scope, ie when this function exits.
   if (filePath.RFind(".p12", true, -1, 4) < 0) {
     // We're going to add the .p12 extension to the file name just like
     // Communicator used to.  We create a new nsIFile and initialize
     // it with the new patch.
     filePath.AppendLiteral(".p12");
     localFileRef = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv);
     if (NS_FAILED(rv)) goto finish;
     localFileRef->InitWithPath(filePath);
     file = localFileRef;
   }
-  rv = file->OpenNSPRFileDesc(PR_RDWR|PR_CREATE_FILE|PR_TRUNCATE, 0664, 
+  rv = file->OpenNSPRFileDesc(PR_RDWR|PR_CREATE_FILE|PR_TRUNCATE, 0664,
                               &mTmpFile);
   if (NS_FAILED(rv) || !this->mTmpFile) goto finish;
   // encode and write
   srv = SEC_PKCS12Encode(ecx, write_export_file, this);
   if (srv) goto finish;
 finish:
   if (NS_FAILED(rv) || srv != SECSuccess) {
     handleError(PIP_PKCS12_BACKUP_FAILED);
@@ -348,17 +348,17 @@ nsPKCS12Blob::unicodeToItem(const nsStri
 // Launch a dialog requesting the user for a new PKCS#12 file passowrd.
 // Handle user canceled by returning null password (caller must catch).
 nsresult
 nsPKCS12Blob::newPKCS12FilePassword(SECItem *unicodePw)
 {
   nsresult rv = NS_OK;
   nsAutoString password;
   nsCOMPtr<nsICertificateDialogs> certDialogs;
-  rv = ::getNSSDialogs(getter_AddRefs(certDialogs), 
+  rv = ::getNSSDialogs(getter_AddRefs(certDialogs),
                        NS_GET_IID(nsICertificateDialogs),
                        NS_CERTIFICATEDIALOGS_CONTRACTID);
   if (NS_FAILED(rv)) return rv;
   bool pressedOK;
   rv = certDialogs->SetPKCS12FilePassword(mUIContext, password, &pressedOK);
   if (NS_FAILED(rv) || !pressedOK) return rv;
   return unicodeToItem(password, unicodePw);
 }
@@ -368,17 +368,17 @@ nsPKCS12Blob::newPKCS12FilePassword(SECI
 // Launch a dialog requesting the user for the password to a PKCS#12 file.
 // Handle user canceled by returning null password (caller must catch).
 nsresult
 nsPKCS12Blob::getPKCS12FilePassword(SECItem *unicodePw)
 {
   nsresult rv = NS_OK;
   nsAutoString password;
   nsCOMPtr<nsICertificateDialogs> certDialogs;
-  rv = ::getNSSDialogs(getter_AddRefs(certDialogs), 
+  rv = ::getNSSDialogs(getter_AddRefs(certDialogs),
                        NS_GET_IID(nsICertificateDialogs),
                        NS_CERTIFICATEDIALOGS_CONTRACTID);
   if (NS_FAILED(rv)) return rv;
   bool pressedOK;
   rv = certDialogs->GetPKCS12FilePassword(mUIContext, password, &pressedOK);
   if (NS_FAILED(rv) || !pressedOK) return rv;
   return unicodeToItem(password, unicodePw);
 }
@@ -392,29 +392,29 @@ nsPKCS12Blob::inputToDecoder(SEC_PKCS12D
   nsNSSShutDownPreventionLock locker;
   nsresult rv;
   SECStatus srv;
   uint32_t amount;
   char buf[PIP_PKCS12_BUFFER_SIZE];
 
   nsCOMPtr<nsIInputStream> fileStream;
   rv = NS_NewLocalFileInputStream(getter_AddRefs(fileStream), file);
-  
+
   if (NS_FAILED(rv)) {
     return rv;
   }
 
   while (true) {
     rv = fileStream->Read(buf, PIP_PKCS12_BUFFER_SIZE, &amount);
     if (NS_FAILED(rv)) {
       return rv;
     }
     // feed the file data into the decoder
-    srv = SEC_PKCS12DecoderUpdate(dcx, 
-				  (unsigned char*) buf, 
+    srv = SEC_PKCS12DecoderUpdate(dcx,
+				  (unsigned char*) buf,
 				  amount);
     if (srv) {
       // don't allow the close call to overwrite our precious error code
       int pr_err = PORT_GetError();
       PORT_SetError(pr_err);
       return NS_ERROR_ABORT;
     }
     if (amount < PIP_PKCS12_BUFFER_SIZE)
@@ -437,33 +437,33 @@ nsPKCS12Blob::nickname_collision(SECItem
   nsresult rv = GetPIPNSSBundleString("P12DefaultNickname", nickFromProp);
   if (NS_FAILED(rv)) {
     return nullptr;
   }
   NS_ConvertUTF16toUTF8 nickFromPropC(nickFromProp);
   // The user is trying to import a PKCS#12 file that doesn't have the
   // attribute we use to set the nickname.  So in order to reduce the
   // number of interactions we require with the user, we'll build a nickname
-  // for the user.  The nickname isn't prominently displayed in the UI, 
+  // for the user.  The nickname isn't prominently displayed in the UI,
   // so it's OK if we generate one on our own here.
   //   XXX If the NSS API were smarter and actually passed a pointer to
   //       the CERTCertificate* we're importing we could actually just
   //       call default_nickname (which is what the issuance code path
   //       does) and come up with a reasonable nickname.  Alas, the NSS
   //       API limits our ability to produce a useful nickname without
   //       bugging the user.  :(
   while (1) {
     // If we've gotten this far, that means there isn't a certificate
     // in the database that has the same subject name as the cert we're
-    // trying to import.  So we need to come up with a "nickname" to 
-    // satisfy the NSS requirement or fail in trying to import.  
-    // Basically we use a default nickname from a properties file and 
+    // trying to import.  So we need to come up with a "nickname" to
+    // satisfy the NSS requirement or fail in trying to import.
+    // Basically we use a default nickname from a properties file and
     // see if a certificate exists with that nickname.  If there isn't, then
-    // create update the count by one and append the string '#1' Or 
-    // whatever the count currently is, and look for a cert with 
+    // create update the count by one and append the string '#1' Or
+    // whatever the count currently is, and look for a cert with
     // that nickname.  Keep updating the count until we find a nickname
     // without a corresponding cert.
     //  XXX If a user imports *many* certs without the 'friendly name'
     //      attribute, then this may take a long time.  :(
     nickname = nickFromPropC;
     if (count > 1) {
       nickname.AppendPrintf(" #%d", count);
     }
--- a/security/manager/ssl/nsPKCS12Blob.h
+++ b/security/manager/ssl/nsPKCS12Blob.h
@@ -53,20 +53,20 @@ private:
   //   The user will be prompted to try again.
   // - When the user entered a zero length password.
   //   An empty password should be represented as an empty
   //   string (a SECItem that contains a single terminating
   //   null UTF16 character), but some applications use a
   //   zero length SECItem.
   //   We try both variations, zero length item and empty string,
   //   without giving a user prompt when trying the different empty password flavors.
-  
+
   enum RetryReason { rr_do_not_retry, rr_bad_password, rr_auto_retry_empty_password_flavors };
   enum ImportMode { im_standard_prompt, im_try_zero_length_secitem };
-  
+
   nsresult ImportFromFileHelper(nsIFile *file, ImportMode aImportMode, RetryReason &aWantRetry);
 
   // NSPR file I/O for export file
   PRFileDesc *mTmpFile;
 
   static SECItem * nickname_collision(SECItem *, PRBool *, void *);
   static void write_export_file(void *arg, const char *buf, unsigned long len);
 };
--- a/security/manager/ssl/nsProtectedAuthThread.cpp
+++ b/security/manager/ssl/nsProtectedAuthThread.cpp
@@ -41,37 +41,37 @@ nsProtectedAuthThread::nsProtectedAuthTh
 
 nsProtectedAuthThread::~nsProtectedAuthThread()
 {
 }
 
 NS_IMETHODIMP nsProtectedAuthThread::Login(nsIObserver *aObserver)
 {
     NS_ENSURE_ARG(aObserver);
-    
+
     if (!mSlot)
         // We need pointer to the slot
         return NS_ERROR_FAILURE;
 
     MutexAutoLock lock(mMutex);
-    
+
     if (mIAmRunning || mLoginReady) {
         return NS_OK;
     }
 
     if (aObserver) {
       // We must AddRef aObserver here on the main thread, because it probably
       // does not implement a thread-safe AddRef.
       mNotifyObserver = new NotifyObserverRunnable(aObserver,
                                                    "operation-completed");
     }
 
     mIAmRunning = true;
 
-    mThreadHandle = PR_CreateThread(PR_USER_THREAD, nsProtectedAuthThreadRunner, static_cast<void*>(this), 
+    mThreadHandle = PR_CreateThread(PR_USER_THREAD, nsProtectedAuthThreadRunner, static_cast<void*>(this),
         PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD, PR_JOINABLE_THREAD, 0);
 
     // bool thread_started_ok = (threadHandle != nullptr);
     // we might want to return "thread started ok" to caller in the future
     MOZ_ASSERT(mThreadHandle,
                "Could not create nsProtectedAuthThreadRunner thread");
     return NS_OK;
 }
@@ -107,17 +107,17 @@ void nsProtectedAuthThread::SetParams(PK
 
 SECStatus nsProtectedAuthThread::GetResult()
 {
     return mLoginResult;
 }
 
 void nsProtectedAuthThread::Run(void)
 {
-    // Login with null password. This call will also do C_Logout() but 
+    // Login with null password. This call will also do C_Logout() but
     // it is harmless here
     mLoginResult = PK11_CheckUserPassword(mSlot, 0);
 
     nsCOMPtr<nsIRunnable> notifyObserver;
     {
         MutexAutoLock lock(mMutex);
 
         mLoginReady = true;
@@ -127,24 +127,24 @@ void nsProtectedAuthThread::Run(void)
         if (mSlot)
         {
             PK11_FreeSlot(mSlot);
             mSlot = 0;
         }
 
         notifyObserver.swap(mNotifyObserver);
     }
-    
+
     if (notifyObserver) {
         DebugOnly<nsresult> rv = NS_DispatchToMainThread(notifyObserver);
 	MOZ_ASSERT(NS_SUCCEEDED(rv),
 		   "Failed to dispatch protected auth observer to main thread");
     }
 }
 
 void nsProtectedAuthThread::Join()
 {
     if (!mThreadHandle)
         return;
-    
+
     PR_JoinThread(mThreadHandle);
     mThreadHandle = nullptr;
 }
--- a/security/manager/ssl/nsSSLSocketProvider.cpp
+++ b/security/manager/ssl/nsSSLSocketProvider.cpp
@@ -58,11 +58,11 @@ nsSSLSocketProvider::AddToSocket(int32_t
                                         host,
                                         port,
                                         proxy,
                                         originAttributes,
                                         aSocket,
                                         securityInfo,
                                         false,
                                         flags);
-  
+
   return (NS_FAILED(rv)) ? NS_ERROR_SOCKET_CREATE_FAILED : NS_OK;
 }
--- a/security/manager/ssl/nsSecureBrowserUIImpl.cpp
+++ b/security/manager/ssl/nsSecureBrowserUIImpl.cpp
@@ -128,43 +128,43 @@ nsSecureBrowserUIImpl::Init(mozIDOMWindo
 
   docShell->SetSecurityUI(this);
 
   /* GetWebProgress(mWindow) */
   // hook up to the webprogress notifications.
   nsCOMPtr<nsIWebProgress> wp(do_GetInterface(docShell));
   if (!wp) return NS_ERROR_FAILURE;
   /* end GetWebProgress */
-  
+
   wp->AddProgressListener(static_cast<nsIWebProgressListener*>(this),
-                          nsIWebProgress::NOTIFY_STATE_ALL | 
+                          nsIWebProgress::NOTIFY_STATE_ALL |
                           nsIWebProgress::NOTIFY_LOCATION  |
                           nsIWebProgress::NOTIFY_SECURITY);
 
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsSecureBrowserUIImpl::GetState(uint32_t* aState)
 {
   MOZ_ASSERT(NS_IsMainThread());
   return MapInternalToExternalState(aState, mNotifiedSecurityState,
                                     mNotifiedToplevelIsEV);
 }
 
 // static
-already_AddRefed<nsISupports> 
+already_AddRefed<nsISupports>
 nsSecureBrowserUIImpl::ExtractSecurityInfo(nsIRequest* aRequest)
 {
   nsCOMPtr<nsISupports> retval;
   nsCOMPtr<nsIChannel> channel(do_QueryInterface(aRequest));
   if (channel)
     channel->GetSecurityInfo(getter_AddRefs(retval));
-  
+
   if (!retval) {
     nsCOMPtr<nsISecurityInfoProvider> provider(do_QueryInterface(aRequest));
     if (provider)
       provider->GetSecurityInfo(getter_AddRefs(retval));
   }
 
   return retval.forget();
 }
@@ -288,19 +288,19 @@ static uint32_t GetSecurityStateFromSecu
   uint32_t securityState;
 
   nsCOMPtr<nsITransportSecurityInfo> psmInfo(do_QueryInterface(info));
   if (!psmInfo) {
     MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - no nsITransportSecurityInfo for %p\n",
                                          (nsISupports *)info));
     return nsIWebProgressListener::STATE_IS_INSECURE;
   }
-  MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - info is %p\n", 
+  MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - info is %p\n",
                                        (nsISupports *)info));
-  
+
   res = psmInfo->GetSecurityState(&securityState);
   if (NS_FAILED(res)) {
     MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - GetSecurityState failed: %" PRIu32 "\n",
                                              static_cast<uint32_t>(res)));
     securityState = nsIWebProgressListener::STATE_IS_BROKEN;
   }
 
   if (securityState != nsIWebProgressListener::STATE_IS_INSECURE) {
@@ -323,17 +323,17 @@ static uint32_t GetSecurityStateFromSecu
           (NS_SUCCEEDED(uri->SchemeIs("ftp", &isFtp)) && isFtp)) {
         MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - "
                                              "channel scheme is insecure.\n"));
         securityState = nsIWebProgressListener::STATE_IS_INSECURE;
       }
     }
   }
 
-  MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - Returning %d\n", 
+  MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI: GetSecurityState: - Returning %d\n",
                                        securityState));
   return securityState;
 }
 
 
 //  nsIWebProgressListener
 NS_IMETHODIMP
 nsSecureBrowserUIImpl::OnProgressChange(nsIWebProgress*, nsIRequest*, int32_t,
@@ -443,86 +443,86 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
 
     Redirects caused by http refresh content are ok, because experiments show,
     with those redirects, the old page contents and their requests will come to STOP
     completely, before any progress from new refreshed page content is reported.
     So we can safely treat them as separate page loading transactions.
 
     Evil are redirects at the http protocol level, like code 302.
 
-    If the toplevel documents gets replaced, i.e. redirected with 302, we do not care for the 
-    security state of the initial transaction, which has now been redirected, 
+    If the toplevel documents gets replaced, i.e. redirected with 302, we do not care for the
+    security state of the initial transaction, which has now been redirected,
     we only care for the new page load.
-    
+
     For the implementation of the security UI, we make an assumption, that is hopefully true.
-    
+
     Imagine, the received page that was delivered with the 302 redirection answer,
     also delivered html content.
 
     What happens if the parser starts to analyze the content and tries to load contained sub objects?
-    
+
     In that case we would see start and stop requests for subdocuments, some for the previous document,
     some for the new target document. And only those for the new toplevel document may be
     taken into consideration, when deciding about the security state of the next toplevel document.
-    
-    Because security state is being looked at, when loading stops for (sub)documents, this 
-    could cause real confusion, because we have to decide, whether an incoming progress 
+
+    Because security state is being looked at, when loading stops for (sub)documents, this
+    could cause real confusion, because we have to decide, whether an incoming progress
     belongs to the new toplevel page, or the previous, already redirected page.
-    
+
     Can we simplify here?
-    
+
     If a redirect at the http protocol level is seen, can we safely assume, its html content
     will not be parsed, anylzed, and no embedded objects will get loaded (css, js, images),
     because the redirect is already happening?
-    
+
     If we can assume that, this really simplify things. Because we will never see notification
     for sub requests that need to get ignored.
-    
+
     I would like to make this assumption for now, but please let me (kaie) know if I'm wrong.
-    
+
     Excurse:
       If my assumption is wrong, then we would require more tracking information.
       We need to keep lists of all pointers to request object that had been seen since the
       last toplevel start event.
       If the start for a redirected page is seen, the list of releveant object must be cleared,
       and only progress for requests which start after it must be analyzed.
       All other events must be ignored, as they belong to now irrelevant previous top level documents.
 
 
     Frames are also evil.
 
     First we need a decision.
-    kaie thinks: 
+    kaie thinks:
       Only if the toplevel frame is secure, we should try to display secure lock icons.
       If some of the inner contents are insecure, we display mixed mode.
-      
+
       But if the top level frame is not secure, why indicate a mixed lock icon at all?
       I think we should always display an open lock icon, if the top level frameset is insecure.
-      
+
       That's the way Netscape Communicator behaves, and I think we should do the same.
-      
+
       The user will not know which parts are secure and which are not,
       and any certificate information, displayed in the tooltip or in the "page info"
       will only be relevant for some subframe(s), and the user will not know which ones,
       so we shouldn't display it as a general attribute of the displayed page.
 
     Why are frames evil?
-    
+
     Because the progress for the toplevel frame document is not easily distinguishable
     from subframes. The same STATE bits are reported.
 
     While at first sight, when a new page load happens,
     the toplevel frameset document has also the STATE_IS_NETWORK bit in it.
-    But this can't really be used. Because in case that document causes a http 302 redirect, 
+    But this can't really be used. Because in case that document causes a http 302 redirect,
     the real top level frameset will no longer have that bit.
-    
+
     But we need some way to distinguish top level frames from inner frames.
-    
+
     I saw that the web progress we get delivered has a reference to the toplevel DOM window.
-    
+
     I suggest, we look at all incoming requests.
     If a request is NOT for the toplevel DOM window, we will always treat it as a subdocument request,
     regardless of whether the load flags indicate a top level document.
   */
 
   nsCOMPtr<mozIDOMWindowProxy> windowForProgress;
   aWebProgress->GetDOMWindow(getter_AddRefs(windowForProgress));
 
@@ -530,24 +530,24 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
   MOZ_ASSERT(window, "Window has gone away?!");
 
   if (!mIOService) {
     mIOService = do_GetService(NS_IOSERVICE_CONTRACTID);
   }
 
   bool isNoContentResponse = false;
   nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aRequest);
-  if (httpChannel) 
+  if (httpChannel)
   {
     uint32_t response;
     isNoContentResponse = NS_SUCCEEDED(httpChannel->GetResponseStatus(&response)) &&
         (response == 204 || response == 205);
   }
   const bool isToplevelProgress = (windowForProgress.get() == window.get()) && !isNoContentResponse;
-  
+
   if (windowForProgress)
   {
     if (isToplevelProgress)
     {
       MOZ_LOG(gSecureDocLog, LogLevel::Debug,
              ("SecureUI:%p: OnStateChange: progress: for toplevel\n", this));
     }
     else
@@ -759,79 +759,79 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
              ("SecureUI:%p: OnStateChange: start for toplevel document\n", this
               ));
 
       if (prevContentSecurity)
       {
         MOZ_LOG(gSecureDocLog, LogLevel::Debug,
                ("SecureUI:%p: OnStateChange: start, saving current sub state\n", this
                 ));
-  
+
         // before resetting our state, let's save information about
         // sub element loads, so we can restore it later
         prevContentSecurity->SetCountSubRequestsBrokenSecurity(saveSubBroken);
         prevContentSecurity->SetCountSubRequestsNoSecurity(saveSubNo);
         prevContentSecurity->Flush();
-        MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Saving subs in START to %p as %d,%d\n", 
-          this, prevContentSecurity.get(), saveSubBroken, saveSubNo));      
+        MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Saving subs in START to %p as %d,%d\n",
+          this, prevContentSecurity.get(), saveSubBroken, saveSubNo));
       }
 
       bool retrieveAssociatedState = false;
 
       if (securityInfo &&
           (aProgressStateFlags & nsIWebProgressListener::STATE_RESTORING) != 0) {
         retrieveAssociatedState = true;
       } else {
         nsCOMPtr<nsIWyciwygChannel> wyciwygRequest(do_QueryInterface(aRequest));
         if (wyciwygRequest) {
           retrieveAssociatedState = true;
         }
       }
 
       if (retrieveAssociatedState)
       {
-        // When restoring from bfcache, we will not get events for the 
+        // When restoring from bfcache, we will not get events for the
         // page's sub elements, so let's load the state of sub elements
         // from the cache.
-    
-        nsCOMPtr<nsIAssociatedContentSecurity> 
+
+        nsCOMPtr<nsIAssociatedContentSecurity>
           newContentSecurity(do_QueryInterface(securityInfo));
-    
+
         if (newContentSecurity)
         {
           MOZ_LOG(gSecureDocLog, LogLevel::Debug,
                  ("SecureUI:%p: OnStateChange: start, loading old sub state\n", this
                   ));
-    
+
           newContentSecurity->GetCountSubRequestsBrokenSecurity(&newSubBroken);
           newContentSecurity->GetCountSubRequestsNoSecurity(&newSubNo);
-          MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Restoring subs in START from %p to %d,%d\n", 
-            this, newContentSecurity.get(), newSubBroken, newSubNo));      
+          MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Restoring subs in START from %p to %d,%d\n",
+            this, newContentSecurity.get(), newSubBroken, newSubNo));
         }
       }
       else
       {
         // If we don't get OnLocationChange for this top level load later,
         // it didn't get rendered.  But we reset the state to unknown and
-        // mSubRequests* to zeros.  If we would have left these values after 
+        // mSubRequests* to zeros.  If we would have left these values after
         // this top level load stoped, we would override the original top level
         // load with all zeros and break mixed content state on back and forward.
         mRestoreSubrequests = true;
       }
     }
 
     if (allowSecurityStateChange && !inProgress) {
       ResetStateTracking();
       mSubRequestsBrokenSecurity = newSubBroken;
       mSubRequestsNoSecurity = newSubNo;
       mNewToplevelSecurityStateKnown = false;
     }
 
     // By using a counter, this code also works when the toplevel
-    // document get's redirected, but the STOP request for the 
+    // document get's redirected, but the STOP request for the
     // previous toplevel document has not yet have been received.
     MOZ_LOG(gSecureDocLog, LogLevel::Debug,
            ("SecureUI:%p: OnStateChange: ++mDocumentRequestsInProgress\n", this
             ));
     ++mDocumentRequestsInProgress;
 
     return NS_OK;
   }
@@ -891,21 +891,21 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
                                        sinkChanged);
         return NS_OK;
       }
     }
     mOnLocationChangeSeen = false;
 
     if (mRestoreSubrequests && !inProgress)
     {
-      // We get here when there were no OnLocationChange between 
+      // We get here when there were no OnLocationChange between
       // OnStateChange(START) and OnStateChange(STOP).  Then the load has not
       // been rendered but has been retargeted in some other way then by external
-      // app handler.  Restore mSubRequests* members to what the current security 
-      // state info holds (it was reset to all zero in OnStateChange(START) 
+      // app handler.  Restore mSubRequests* members to what the current security
+      // state info holds (it was reset to all zero in OnStateChange(START)
       // before).
       nsCOMPtr<nsIAssociatedContentSecurity> currentContentSecurity(
         do_QueryInterface(mCurrentToplevelSecurityInfo));
 
       // Drop this indication flag, the restore operation is just being done.
       mRestoreSubrequests = false;
 
       // We can do this since the state didn't actually change.
@@ -913,18 +913,18 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
 
       int32_t subBroken = 0;
       int32_t subNo = 0;
 
       if (currentContentSecurity)
       {
         currentContentSecurity->GetCountSubRequestsBrokenSecurity(&subBroken);
         currentContentSecurity->GetCountSubRequestsNoSecurity(&subNo);
-        MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Restoring subs in STOP from %p to %d,%d\n", 
-          this, currentContentSecurity.get(), subBroken, subNo));      
+        MOZ_LOG(gSecureDocLog, LogLevel::Debug, ("SecureUI:%p: Restoring subs in STOP from %p to %d,%d\n",
+          this, currentContentSecurity.get(), subBroken, subNo));
       }
 
       mSubRequestsBrokenSecurity = subBroken;
       mSubRequestsNoSecurity = subNo;
     }
 
     return NS_OK;
   }
@@ -936,23 +936,23 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
     if (!isSubDocumentRelevant)
       return NS_OK;
 
     // if we arrive here, LOAD_DOCUMENT_URI is not set
 
     // We only care for the security state of sub requests which have actually transfered data.
 
     if (allowSecurityStateChange && requestHasTransferedData)
-    {  
+    {
       UpdateSubrequestMembers(securityInfo, aRequest);
 
       // Care for the following scenario:
       // A new top level document load might have already started,
       // but the security state of the new top level document might not yet been known.
-      // 
+      //
       // At this point, we are learning about the security state of a sub-document.
       // We must not update the security state based on the sub content,
       // if the new top level state is not yet known.
       //
       // We skip updating the security state in this case.
 
       if (mNewToplevelSecurityStateKnown) {
         UpdateSecurityState(aRequest, false, false);
@@ -962,17 +962,17 @@ nsSecureBrowserUIImpl::OnStateChange(nsI
     return NS_OK;
   }
 
   return NS_OK;
 }
 
 // I'm keeping this as a separate function, in order to simplify the review
 // for bug 412456. We should inline this in a follow up patch.
-void nsSecureBrowserUIImpl::ObtainEventSink(nsIChannel *channel, 
+void nsSecureBrowserUIImpl::ObtainEventSink(nsIChannel *channel,
                                             nsCOMPtr<nsISecurityEventSink> &sink)
 {
   if (!sink)
     NS_QueryNotificationCallbacks(channel, sink);
 }
 
 void
 nsSecureBrowserUIImpl::UpdateSecurityState(nsIRequest* aRequest,
@@ -1109,17 +1109,17 @@ nsSecureBrowserUIImpl::OnLocationChange(
 
   // For channels in subdocuments we only update our subrequest state members.
   UpdateSubrequestMembers(securityInfo, aRequest);
 
   // Care for the following scenario:
 
   // A new toplevel document load might have already started, but the security
   // state of the new toplevel document might not yet be known.
-  // 
+  //
   // At this point, we are learning about the security state of a sub-document.
   // We must not update the security state based on the sub content, if the new
   // top level state is not yet known.
   //
   // We skip updating the security state in this case.
 
   if (mNewToplevelSecurityStateKnown) {
     UpdateSecurityState(aRequest, true, false);
--- a/security/manager/ssl/nsSecureBrowserUIImpl.h
+++ b/security/manager/ssl/nsSecureBrowserUIImpl.h
@@ -79,17 +79,17 @@ protected:
   void UpdateSecurityState(nsIRequest* aRequest, bool withNewLocation,
                            bool withUpdateStatus);
   void TellTheWorld(nsIRequest* aRequest);
 
   void EvaluateAndUpdateSecurityState(nsIRequest* aRequest, nsISupports *info,
                                       bool withNewLocation, bool withNewSink);
   void UpdateSubrequestMembers(nsISupports* securityInfo, nsIRequest* request);
 
-  void ObtainEventSink(nsIChannel *channel, 
+  void ObtainEventSink(nsIChannel *channel,
                        nsCOMPtr<nsISecurityEventSink> &sink);
 
   nsCOMPtr<nsISSLStatus> mSSLStatus;
   nsCOMPtr<nsISupports> mCurrentToplevelSecurityInfo;
 
   PLDHashTable mTransferringRequests;
 };
 
--- a/security/manager/ssl/nsSmartCardMonitor.h
+++ b/security/manager/ssl/nsSmartCardMonitor.h
@@ -33,30 +33,30 @@ private:
 // NOTE: this provides the application the ability to dynamically add slots
 // on the fly as necessary.
 //
 class SmartCardMonitoringThread
 {
  public:
   explicit SmartCardMonitoringThread(SECMODModule* module);
   ~SmartCardMonitoringThread();
-  
+
   nsresult Start();
   void Stop();
-  
+
   void Execute();
   void Interrupt();
-  
+
   const SECMODModule* GetModule();
 
  private:
   static void LaunchExecute(void* arg);
   void SetTokenName(CK_SLOT_ID slotid, const char* tokenName, uint32_t series);
   const char* GetTokenName(CK_SLOT_ID slotid);
   uint32_t GetTokenSeries(CK_SLOT_ID slotid);
   void SendEvent(const char* type, const char* tokenName);
-  
+
   SECMODModule* mModule;
   PLHashTable* mHash;
   PRThread* mThread;
 };
 
 #endif // nsSmartCardMonitor_h
--- a/security/manager/ssl/nsTLSSocketProvider.cpp
+++ b/security/manager/ssl/nsTLSSocketProvider.cpp
@@ -35,17 +35,17 @@ nsTLSSocketProvider::NewSocket(int32_t f
                                       host,
                                       port,
                                       proxy,
                                       originAttributes,
                                       _result,
                                       securityInfo,
                                       true,
                                       flags);
-  
+
   return (NS_FAILED(rv)) ? NS_ERROR_SOCKET_CREATE_FAILED : NS_OK;
 }
 
 // Add the SSL IO layer to an existing socket
 NS_IMETHODIMP
 nsTLSSocketProvider::AddToSocket(int32_t family,
                                  const char *host,
                                  int32_t port,
@@ -59,11 +59,11 @@ nsTLSSocketProvider::AddToSocket(int32_t
                                         host,
                                         port,
                                         proxy,
                                         originAttributes,
                                         aSocket,
                                         securityInfo,
                                         true,
                                         flags);
-  
+
   return (NS_FAILED(rv)) ? NS_ERROR_SOCKET_CREATE_FAILED : NS_OK;
 }
--- a/security/sandbox/chromium-shim/base/win/sdkdecls.h
+++ b/security/sandbox/chromium-shim/base/win/sdkdecls.h
@@ -226,17 +226,17 @@ typedef struct _PROCESS_MITIGATION_EXTEN
 //
 // Define Attribute to disable creation of child process
 //
 
 #define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED                                         0x01
 #define PROCESS_CREATION_CHILD_PROCESS_OVERRIDE                                           0x02
 
 //
-// Define Attribute for Desktop Appx Overide. 
+// Define Attribute for Desktop Appx Overide.
 //
 
 #define PROCESS_CREATION_DESKTOP_APPX_OVERRIDE                                            0x04
 
 #define ProcThreadAttributeChildProcessPolicy 14
 
 #define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY \
     ProcThreadAttributeValue (ProcThreadAttributeChildProcessPolicy, FALSE, TRUE, FALSE)
--- a/startupcache/StartupCache.cpp
+++ b/startupcache/StartupCache.cpp
@@ -233,17 +233,17 @@ StartupCache::LoadArchive()
   if (gIgnoreDiskCache)
     return NS_ERROR_FAILURE;
 
   bool exists;
   mArchive = nullptr;
   nsresult rv = mFile->Exists(&exists);
   if (NS_FAILED(rv) || !exists)
     return NS_ERROR_FILE_NOT_FOUND;
-  
+
   mArchive = new nsZipArchive();
   rv = mArchive->OpenArchive(mFile);
   return rv;
 }
 
 namespace {
 
 nsresult
@@ -262,25 +262,25 @@ GetBufferFromZipArchive(nsZipArchive *zi
   return NS_OK;
 }
 
 } /* anonymous namespace */
 
 // NOTE: this will not find a new entry until it has been written to disk!
 // Consumer should take ownership of the resulting buffer.
 nsresult
-StartupCache::GetBuffer(const char* id, UniquePtr<char[]>* outbuf, uint32_t* length) 
+StartupCache::GetBuffer(const char* id, UniquePtr<char[]>* outbuf, uint32_t* length)
 {
   AUTO_PROFILER_LABEL("StartupCache::GetBuffer", OTHER);
 
   NS_ASSERTION(NS_IsMainThread(), "Startup cache only available on main thread");
 
   WaitOnWriteThread();
   if (!mStartupWriteInitiated) {
-    CacheEntry* entry; 
+    CacheEntry* entry;
     nsDependentCString idStr(id);
     mTable.Get(idStr, &entry);
     if (entry) {
       *outbuf = MakeUnique<char[]>(entry->size);
       memcpy(outbuf->get(), entry->data.get(), entry->size);
       *length = entry->size;
       return NS_OK;
     }
@@ -298,31 +298,31 @@ StartupCache::GetBuffer(const char* id, 
 
   omnijar = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
   // no need to checksum omnijarred entries
   return GetBufferFromZipArchive(omnijar, false, id, outbuf, length);
 }
 
 // Makes a copy of the buffer, client retains ownership of inbuf.
 nsresult
-StartupCache::PutBuffer(const char* id, const char* inbuf, uint32_t len) 
+StartupCache::PutBuffer(const char* id, const char* inbuf, uint32_t len)
 {
   NS_ASSERTION(NS_IsMainThread(), "Startup cache only available on main thread");
   WaitOnWriteThread();
   if (StartupCache::gShutdownInitiated) {
     return NS_ERROR_NOT_AVAILABLE;
   }
 
   auto data = MakeUnique<char[]>(len);
   memcpy(data.get(), inbuf, len);
 
   nsCString idStr(id);
   // Cache it for now, we'll write all together later.
-  CacheEntry* entry; 
-  
+  CacheEntry* entry;
+
   if (mTable.Get(idStr)) {
     NS_WARNING("Existing entry in StartupCache.");
     // Double-caching is undesirable but not an error.
     return NS_OK;
   }
 
 #ifdef DEBUG
   if (mArchive) {
@@ -378,62 +378,62 @@ CacheCloseHelper(const nsACString& key, 
   nsIStringInputStream* stream = holder->stream;
   nsIZipWriter* writer = holder->writer;
 
   stream->ShareData(data->data.get(), data->size);
 
 #ifdef DEBUG
   bool hasEntry;
   rv = writer->HasEntry(key, &hasEntry);
-  NS_ASSERTION(NS_SUCCEEDED(rv) && hasEntry == false, 
+  NS_ASSERTION(NS_SUCCEEDED(rv) && hasEntry == false,
                "Existing entry in disk StartupCache.");
 #endif
   rv = writer->AddEntryStream(key, holder->time, true, stream, false);
 
   if (NS_FAILED(rv)) {
     NS_WARNING("cache entry deleted but not written to disk.");
   }
 }
 
 
-/** 
+/**
  * WriteToDisk writes the cache out to disk. Callers of WriteToDisk need to call WaitOnWriteThread
  * to make sure there isn't a write happening on another thread
  */
 void
-StartupCache::WriteToDisk() 
+StartupCache::WriteToDisk()
 {
   nsresult rv;
   mStartupWriteInitiated = true;
 
   if (mTable.Count() == 0)
     return;
 
   nsCOMPtr<nsIZipWriter> zipW = do_CreateInstance("@mozilla.org/zipwriter;1");
   if (!zipW)
     return;
 
   rv = zipW->Open(mFile, PR_RDWR | PR_CREATE_FILE);
   if (NS_FAILED(rv)) {
     NS_WARNING("could not open zipfile for write");
     return;
-  } 
+  }
 
   // If we didn't have an mArchive member, that means that we failed to
   // open the startup cache for reading.  Therefore, we need to record
   // the time of creation in a zipfile comment; this has been useful for
   // Telemetry statistics.
   PRTime now = PR_Now();
   if (!mArchive) {
     nsCString comment;
     comment.Assign((char *)&now, sizeof(now));
     zipW->SetComment(comment);
   }
 
-  nsCOMPtr<nsIStringInputStream> stream 
+  nsCOMPtr<nsIStringInputStream> stream
     = do_CreateInstance("@mozilla.org/io/string-input-stream;1", &rv);
   if (NS_FAILED(rv)) {
     NS_WARNING("Couldn't create string input stream.");
     return;
   }
 
   CacheWriteHolder holder;
   holder.stream = stream;
@@ -453,17 +453,17 @@ StartupCache::WriteToDisk()
   // We succesfully wrote the archive to disk; mark the disk file as trusted
   gIgnoreDiskCache = false;
 
   // Our reader's view of the archive is outdated now, reload it.
   LoadArchive();
 }
 
 void
-StartupCache::InvalidateCache() 
+StartupCache::InvalidateCache()
 {
   WaitOnWriteThread();
   mPendingWrites.Clear();
   mTable.Clear();
   mArchive = nullptr;
   nsresult rv = mFile->Remove(false);
   if (NS_FAILED(rv) && rv != NS_ERROR_FILE_TARGET_DOES_NOT_EXIST &&
       rv != NS_ERROR_FILE_NOT_FOUND) {
@@ -555,30 +555,30 @@ StartupCacheListener::Observe(nsISupport
   if (strcmp(topic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0) {
     // Do not leave the thread running past xpcom shutdown
     sc->WaitOnWriteThread();
     StartupCache::gShutdownInitiated = true;
   } else if (strcmp(topic, "startupcache-invalidate") == 0) {
     sc->InvalidateCache();
   }
   return NS_OK;
-} 
+}
 
 nsresult
 StartupCache::GetDebugObjectOutputStream(nsIObjectOutputStream* aStream,
-                                         nsIObjectOutputStream** aOutStream) 
+                                         nsIObjectOutputStream** aOutStream)
 {
   NS_ENSURE_ARG_POINTER(aStream);
 #ifdef DEBUG
   auto* stream = new StartupCacheDebugOutputStream(aStream, &mWriteObjectMap);
   NS_ADDREF(*aOutStream = stream);
 #else
   NS_ADDREF(*aOutStream = aStream);
 #endif
-  
+
   return NS_OK;
 }
 
 nsresult
 StartupCache::ResetStartupWriteTimer()
 {
   mStartupWriteInitiated = false;
   nsresult rv;
@@ -598,92 +598,92 @@ bool
 StartupCache::StartupWriteComplete()
 {
   WaitOnWriteThread();
   return mStartupWriteInitiated && mTable.Count() == 0;
 }
 
 // StartupCacheDebugOutputStream implementation
 #ifdef DEBUG
-NS_IMPL_ISUPPORTS(StartupCacheDebugOutputStream, nsIObjectOutputStream, 
+NS_IMPL_ISUPPORTS(StartupCacheDebugOutputStream, nsIObjectOutputStream,
                   nsIBinaryOutputStream, nsIOutputStream)
 
 bool
 StartupCacheDebugOutputStream::CheckReferences(nsISupports* aObject)
 {
   nsresult rv;
-  
+
   nsCOMPtr<nsIClassInfo> classInfo = do_QueryInterface(aObject);
   if (!classInfo) {
     NS_ERROR("aObject must implement nsIClassInfo");
     return false;
   }
-  
+
   uint32_t flags;
   rv = classInfo->GetFlags(&flags);
   NS_ENSURE_SUCCESS(rv, false);
   if (flags & nsIClassInfo::SINGLETON)
     return true;
-  
+
   nsISupportsHashKey* key = mObjectMap->GetEntry(aObject);
   if (key) {
-    NS_ERROR("non-singleton aObject is referenced multiple times in this" 
+    NS_ERROR("non-singleton aObject is referenced multiple times in this"
                   "serialization, we don't support that.");
     return false;
   }
 
   mObjectMap->PutEntry(aObject);
   return true;
 }
 
 // nsIObjectOutputStream implementation
 nsresult
 StartupCacheDebugOutputStream::WriteObject(nsISupports* aObject, bool aIsStrongRef)
 {
   nsCOMPtr<nsISupports> rootObject(do_QueryInterface(aObject));
-  
+
   NS_ASSERTION(rootObject.get() == aObject,
                "bad call to WriteObject -- call WriteCompoundObject!");
   bool check = CheckReferences(aObject);
   NS_ENSURE_TRUE(check, NS_ERROR_FAILURE);
   return mBinaryStream->WriteObject(aObject, aIsStrongRef);
 }
 
 nsresult
 StartupCacheDebugOutputStream::WriteSingleRefObject(nsISupports* aObject)
 {
   nsCOMPtr<nsISupports> rootObject(do_QueryInterface(aObject));
-  
+
   NS_ASSERTION(rootObject.get() == aObject,
                "bad call to WriteSingleRefObject -- call WriteCompoundObject!");
   bool check = CheckReferences(aObject);
   NS_ENSURE_TRUE(check, NS_ERROR_FAILURE);
   return mBinaryStream->WriteSingleRefObject(aObject);
 }
 
 nsresult
 StartupCacheDebugOutputStream::WriteCompoundObject(nsISupports* aObject,
                                                 const nsIID& aIID,
                                                 bool aIsStrongRef)
 {
   nsCOMPtr<nsISupports> rootObject(do_QueryInterface(aObject));
-  
+
   nsCOMPtr<nsISupports> roundtrip;
   rootObject->QueryInterface(aIID, getter_AddRefs(roundtrip));
   NS_ASSERTION(roundtrip.get() == aObject,
                "bad aggregation or multiple inheritance detected by call to "
                "WriteCompoundObject!");
 
   bool check = CheckReferences(aObject);
   NS_ENSURE_TRUE(check, NS_ERROR_FAILURE);
   return mBinaryStream->WriteCompoundObject(aObject, aIID, aIsStrongRef);
 }
 
 nsresult
-StartupCacheDebugOutputStream::WriteID(nsID const& aID) 
+StartupCacheDebugOutputStream::WriteID(nsID const& aID)
 {
   return mBinaryStream->WriteID(aID);
 }
 
 char*
 StartupCacheDebugOutputStream::GetBuffer(uint32_t aLength, uint32_t aAlignMask)
 {
   return mBinaryStream->GetBuffer(aLength, aAlignMask);
@@ -695,62 +695,62 @@ StartupCacheDebugOutputStream::PutBuffer
   mBinaryStream->PutBuffer(aBuffer, aLength);
 }
 #endif //DEBUG
 
 StartupCacheWrapper* StartupCacheWrapper::gStartupCacheWrapper = nullptr;
 
 NS_IMPL_ISUPPORTS(StartupCacheWrapper, nsIStartupCache)
 
-StartupCacheWrapper* StartupCacheWrapper::GetSingleton() 
+StartupCacheWrapper* StartupCacheWrapper::GetSingleton()
 {
   if (!gStartupCacheWrapper)
     gStartupCacheWrapper = new StartupCacheWrapper();
 
   NS_ADDREF(gStartupCacheWrapper);
   return gStartupCacheWrapper;
 }
 
-nsresult 
-StartupCacheWrapper::GetBuffer(const char* id, char** outbuf, uint32_t* length) 
+nsresult
+StartupCacheWrapper::GetBuffer(const char* id, char** outbuf, uint32_t* length)
 {
   StartupCache* sc = StartupCache::GetSingleton();
   if (!sc) {
     return NS_ERROR_NOT_INITIALIZED;
   }
   UniquePtr<char[]> buf;
   nsresult rv = sc->GetBuffer(id, &buf, length);
   *outbuf = buf.release();
   return rv;
 }
 
 nsresult
-StartupCacheWrapper::PutBuffer(const char* id, const char* inbuf, uint32_t length) 
+StartupCacheWrapper::PutBuffer(const char* id, const char* inbuf, uint32_t length)
 {
   StartupCache* sc = StartupCache::GetSingleton();
   if (!sc) {
     return NS_ERROR_NOT_INITIALIZED;
   }
   return sc->PutBuffer(id, inbuf, length);
 }
 
 nsresult
-StartupCacheWrapper::InvalidateCache() 
+StartupCacheWrapper::InvalidateCache()
 {
   StartupCache* sc = StartupCache::GetSingleton();
   if (!sc) {
     return NS_ERROR_NOT_INITIALIZED;
   }
   sc->InvalidateCache();
   return NS_OK;
 }
 
-nsresult 
+nsresult
 StartupCacheWrapper::GetDebugObjectOutputStream(nsIObjectOutputStream* stream,
-                                                nsIObjectOutputStream** outStream) 
+                                                nsIObjectOutputStream** outStream)
 {
   StartupCache* sc = StartupCache::GetSingleton();
   if (!sc) {
     return NS_ERROR_NOT_INITIALIZED;
   }
   return sc->GetDebugObjectOutputStream(stream, outStream);
 }
 
--- a/startupcache/StartupCache.h
+++ b/startupcache/StartupCache.h
@@ -19,44 +19,44 @@
 #include "nsIFile.h"
 #include "mozilla/Attributes.h"
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/StaticPtr.h"
 #include "mozilla/UniquePtr.h"
 
 /**
  * The StartupCache is a persistent cache of simple key-value pairs,
- * where the keys are null-terminated c-strings and the values are 
- * arbitrary data, passed as a (char*, size) tuple. 
+ * where the keys are null-terminated c-strings and the values are
+ * arbitrary data, passed as a (char*, size) tuple.
  *
- * Clients should use the GetSingleton() static method to access the cache. It 
- * will be available from the end of XPCOM init (NS_InitXPCOM3 in XPCOMInit.cpp), 
+ * Clients should use the GetSingleton() static method to access the cache. It
+ * will be available from the end of XPCOM init (NS_InitXPCOM3 in XPCOMInit.cpp),
  * until XPCOM shutdown begins. The GetSingleton() method will return null if the cache
  * is unavailable. The cache is only provided for libxul builds --
  * it will fail to link in non-libxul builds. The XPCOM interface is provided
  * only to allow compiled-code tests; clients should avoid using it.
  *
  * The API provided is very simple: GetBuffer() returns a buffer that was previously
  * stored in the cache (if any), and PutBuffer() inserts a buffer into the cache.
  * GetBuffer returns a new buffer, and the caller must take ownership of it.
  * PutBuffer will assert if the client attempts to insert a buffer with the same name as
  * an existing entry. The cache makes a copy of the passed-in buffer, so client
  * retains ownership.
  *
- * InvalidateCache() may be called if a client suspects data corruption 
+ * InvalidateCache() may be called if a client suspects data corruption
  * or wishes to invalidate for any other reason. This will remove all existing cache data.
  * Additionally, the static method IgnoreDiskCache() can be called if it is
  * believed that the on-disk cache file is itself corrupt. This call implicitly
  * calls InvalidateCache (if the singleton has been initialized) to ensure any
  * data already read from disk is discarded. The cache will not load data from
  * the disk file until a successful write occurs.
  *
  * Finally, getDebugObjectOutputStream() allows debug code to wrap an objectstream
  * with a debug objectstream, to check for multiply-referenced objects. These will
- * generally fail to deserialize correctly, unless they are stateless singletons or the 
+ * generally fail to deserialize correctly, unless they are stateless singletons or the
  * client maintains their own object data map for deserialization.
  *
  * Writes before the final-ui-startup notification are placed in an intermediate
  * cache in memory, then written out to disk at a later time, to get writes off the
  * startup path. In any case, clients should not rely on being able to GetBuffer()
  * data that is written to the cache, since it may not have been written to disk or
  * another client may have invalidated the cache. In other words, it should be used as
  * a cache only, and not a reliable persistent store.
@@ -184,22 +184,22 @@ class StartupCacheDebugOutputStream fina
   ~StartupCacheDebugOutputStream() {}
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIOBJECTOUTPUTSTREAM
 
   StartupCacheDebugOutputStream (nsIObjectOutputStream* binaryStream,
                                    nsTHashtable<nsISupportsHashKey>* objectMap)
   : mBinaryStream(binaryStream), mObjectMap(objectMap) { }
-  
+
   NS_FORWARD_SAFE_NSIBINARYOUTPUTSTREAM(mBinaryStream)
   NS_FORWARD_SAFE_NSIOUTPUTSTREAM(mBinaryStream)
-  
+
   bool CheckReferences(nsISupports* aObject);
-  
+
   nsCOMPtr<nsIObjectOutputStream> mBinaryStream;
   nsTHashtable<nsISupportsHashKey> *mObjectMap;
 };
 #endif // DEBUG
 
 // XPCOM wrapper interface provided for tests only.
 #define NS_STARTUPCACHE_CID \
       {0xae4505a9, 0x87ab, 0x477c, \
--- a/startupcache/StartupCacheUtils.cpp
+++ b/startupcache/StartupCacheUtils.cpp
@@ -46,64 +46,64 @@ NewObjectOutputWrappedStorageStream(nsIO
 
   nsresult rv = NS_NewStorageStream(256, UINT32_MAX, getter_AddRefs(storageStream));
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsCOMPtr<nsIObjectOutputStream> objectOutput
     = do_CreateInstance("@mozilla.org/binaryoutputstream;1");
   nsCOMPtr<nsIOutputStream> outputStream
     = do_QueryInterface(storageStream);
-  
+
   objectOutput->SetOutputStream(outputStream);
-  
+
 #ifdef DEBUG
   if (wantDebugStream) {
-    // Wrap in debug stream to detect unsupported writes of 
+    // Wrap in debug stream to detect unsupported writes of
     // multiply-referenced non-singleton objects
     StartupCache* sc = StartupCache::GetSingleton();
     NS_ENSURE_TRUE(sc, NS_ERROR_UNEXPECTED);
     nsCOMPtr<nsIObjectOutputStream> debugStream;
     sc->GetDebugObjectOutputStream(objectOutput, getter_AddRefs(debugStream));
     debugStream.forget(wrapperStream);
   } else {
     objectOutput.forget(wrapperStream);
   }
 #else
   objectOutput.forget(wrapperStream);
 #endif
-  
+
   storageStream.forget(stream);
   return NS_OK;
 }
 
 nsresult
 NewBufferFromStorageStream(nsIStorageStream *storageStream,
                            UniquePtr<char[]>* buffer, uint32_t* len)
 {
   nsresult rv;
   nsCOMPtr<nsIInputStream> inputStream;
   rv = storageStream->NewInputStream(0, getter_AddRefs(inputStream));
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   uint64_t avail64;
   rv = inputStream->Available(&avail64);
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(avail64 <= UINT32_MAX, NS_ERROR_FILE_TOO_BIG);
 
   uint32_t avail = (uint32_t)avail64;
   auto temp = MakeUnique<char[]>(avail);
   uint32_t read;
   rv = inputStream->Read(temp.get(), avail, &read);
   if (NS_SUCCEEDED(rv) && avail != read)
     rv = NS_ERROR_UNEXPECTED;
-  
+
   if (NS_FAILED(rv)) {
     return rv;
   }
-  
+
   *len = avail;
   *buffer = Move(temp);
   return NS_OK;
 }
 
 static const char baseName[2][5] = { "gre/", "app/" };
 
 static inline bool
--- a/startupcache/StartupCacheUtils.h
+++ b/startupcache/StartupCacheUtils.h
@@ -12,35 +12,35 @@
 #include "mozilla/UniquePtr.h"
 
 class nsIURI;
 
 namespace mozilla {
 namespace scache {
 
 nsresult
-NewObjectInputStreamFromBuffer(UniquePtr<char[]> buffer, uint32_t len, 
+NewObjectInputStreamFromBuffer(UniquePtr<char[]> buffer, uint32_t len,
                                nsIObjectInputStream** stream);
 
 // We can't retrieve the wrapped stream from the objectOutputStream later,
-// so we return it here. We give callers in debug builds the option 
+// so we return it here. We give callers in debug builds the option
 // to wrap the outputstream in a debug stream, which will detect if
 // non-singleton objects are written out multiple times during a serialization.
 // This could cause them to be deserialized incorrectly (as multiple copies
 // instead of references).
 nsresult
 NewObjectOutputWrappedStorageStream(nsIObjectOutputStream **wrapperStream,
                                     nsIStorageStream** stream,
                                     bool wantDebugStream);
 
 // Creates a buffer for storing the stream into the cache. The buffer is
 // allocated with 'new []'.  After calling this function, the caller would
 // typically call nsIStartupCache::PutBuffer with the returned buffer.
 nsresult
-NewBufferFromStorageStream(nsIStorageStream *storageStream, 
+NewBufferFromStorageStream(nsIStorageStream *storageStream,
                            UniquePtr<char[]>* buffer, uint32_t* len);
 
 nsresult
 PathifyURI(nsIURI *in, nsACString &out);
 } // namespace scache
 } // namespace mozilla
 
 #endif //nsStartupCacheUtils_h_
--- a/storage/StorageBaseStatementInternal.h
+++ b/storage/StorageBaseStatementInternal.h
@@ -342,14 +342,14 @@ NS_DEFINE_STATIC_IID_ACCESSOR(StorageBas
                 (const nsACString &aWhere,               \
                  uint8_t *aValue,                        \
                  uint32_t aValueSize),                   \
                 (uint32_t aWhere,                        \
                  uint8_t *aValue,                        \
                  uint32_t aValueSize),                   \
                 (aWhere, aValue, aValueSize))
 
-  
+
 
 } // namespace storage
 } // namespace mozilla
 
 #endif // mozilla_storage_StorageBaseStatementInternal_h_
--- a/storage/TelemetryVFS.cpp
+++ b/storage/TelemetryVFS.cpp
@@ -19,18 +19,18 @@
 
 // The last io_methods version for which this file has been updated.
 #define LAST_KNOWN_IOMETHODS_VERSION 3
 
 /**
  * This preference is a workaround to allow users/sysadmins to identify
  * that the profile exists on an NFS share whose implementation
  * is incompatible with SQLite's default locking implementation.
- * Bug 433129 attempted to automatically identify such file-systems, 
- * but a reliable way was not found and it was determined that the fallback 
+ * Bug 433129 attempted to automatically identify such file-systems,
+ * but a reliable way was not found and it was determined that the fallback
  * locking is slower than POSIX locking, so we do not want to do it by default.
 */
 #define PREF_NFS_FILESYSTEM   "storage.nfs_filesystem"
 
 namespace {
 
 using namespace mozilla;
 using namespace mozilla::dom::quota;
@@ -60,23 +60,23 @@ Histograms gHistograms[] = {
   SQLITE_TELEMETRY(nullptr, OTHER)
 };
 #undef SQLITE_TELEMETRY
 
 /** RAII class for measuring how long io takes on/off main thread
  */
 class IOThreadAutoTimer {
 public:
-  /** 
+  /**
    * IOThreadAutoTimer measures time spent in IO. Additionally it
    * automatically determines whether IO is happening on the main
    * thread and picks an appropriate histogram.
    *
    * @param id takes a telemetry histogram id. The id+1 must be an
-   * equivalent histogram for the main thread. Eg, MOZ_SQLITE_OPEN_MS 
+   * equivalent histogram for the main thread. Eg, MOZ_SQLITE_OPEN_MS
    * is followed by MOZ_SQLITE_OPEN_MAIN_THREAD_MS.
    *
    * @param aOp optionally takes an IO operation to report through the
    * IOInterposer. Filename will be reported as NULL, and reference will be
    * either "sqlite-mainthread" or "sqlite-otherthread".
    */
   explicit IOThreadAutoTimer(Telemetry::HistogramID aId,
     IOInterposeObserver::Operation aOp = IOInterposeObserver::OpNone)
@@ -752,17 +752,17 @@ xDlOpen(sqlite3_vfs *vfs, const char *zF
 
 void
 xDlError(sqlite3_vfs *vfs, int nByte, char *zErrMsg)
 {
   sqlite3_vfs *orig_vfs = static_cast<sqlite3_vfs*>(vfs->pAppData);
   orig_vfs->xDlError(orig_vfs, nByte, zErrMsg);
 }
 
-void 
+void
 (*xDlSym(sqlite3_vfs *vfs, void *pHdle, const char *zSym))(void){
   sqlite3_vfs *orig_vfs = static_cast<sqlite3_vfs*>(vfs->pAppData);
   return orig_vfs->xDlSym(orig_vfs, pHdle, zSym);
 }
 
 void
 xDlClose(sqlite3_vfs *vfs, void *pHandle)
 {
@@ -838,17 +838,17 @@ sqlite3_vfs* ConstructTelemetryVFS()
 {
 #if defined(XP_WIN)
 #define EXPECTED_VFS     "win32"
 #define EXPECTED_VFS_NFS "win32"
 #else
 #define EXPECTED_VFS     "unix"
 #define EXPECTED_VFS_NFS "unix-excl"
 #endif
-  
+
   bool expected_vfs;
   sqlite3_vfs *vfs;
   if (Preferences::GetBool(PREF_NFS_FILESYSTEM)) {
     vfs = sqlite3_vfs_find(EXPECTED_VFS_NFS);
     expected_vfs = (vfs != nullptr);
   }
   else {
     vfs = sqlite3_vfs_find(nullptr);
--- a/storage/VacuumManager.cpp
+++ b/storage/VacuumManager.cpp
@@ -94,17 +94,17 @@ BaseCallback::HandleCompletion(uint16_t 
   return NS_OK;
 }
 
 NS_IMPL_ISUPPORTS(
   BaseCallback
 , mozIStorageStatementCallback
 )
 
-//////////////////////////////////////////////////////////////////////////////// 
+////////////////////////////////////////////////////////////////////////////////
 //// Vacuumer declaration.
 
 class Vacuumer : public BaseCallback
 {
 public:
   NS_DECL_MOZISTORAGESTATEMENTCALLBACK
 
   explicit Vacuumer(mozIStorageVacuumParticipant *aParticipant);
@@ -270,17 +270,17 @@ Vacuumer::HandleCompletion(uint16_t aRea
 {
   if (aReason == REASON_FINISHED) {
     // Update last vacuum time.
     int32_t now = static_cast<int32_t>(PR_Now() / PR_USEC_PER_SEC);
     MOZ_ASSERT(!mDBFilename.IsEmpty(), "Database filename cannot be empty");
     nsAutoCString prefName(PREF_VACUUM_BRANCH);
     prefName += mDBFilename;
     DebugOnly<nsresult> rv = Preferences::SetInt(prefName.get(), now);
-    MOZ_ASSERT(NS_SUCCEEDED(rv), "Should be able to set a preference"); 
+    MOZ_ASSERT(NS_SUCCEEDED(rv), "Should be able to set a preference");
   }
 
   notifyCompletion(aReason == REASON_FINISHED);
 
   return NS_OK;
 }
 
 nsresult
--- a/storage/mozStorageAsyncStatementExecution.h
+++ b/storage/mozStorageAsyncStatementExecution.h
@@ -233,17 +233,17 @@ private:
 
   /**
    * The wrapped SQLite recursive connection mutex.  We use it whenever we call
    * sqlite3_step and care about having reliable error messages.  By taking it
    * prior to the call and holding it until the point where we no longer care
    * about the error message, the user gets reliable error messages.
    */
   SQLiteMutex &mDBMutex;
-  
+
   /**
    * The instant at which the request was started.
    *
    * Used by telemetry.
    */
   TimeStamp mRequestStartDate;
 };
 
--- a/storage/mozStorageSQLFunctions.cpp
+++ b/storage/mozStorageSQLFunctions.cpp
@@ -113,17 +113,17 @@ likeCompare(nsAString::const_iterator aP
     aPatternItr++;
   }
 
   return aStringItr == aStringEnd;
 }
 
 /**
  * Compute the Levenshtein Edit Distance between two strings.
- * 
+ *
  * @param aStringS
  *        a string
  * @param aStringT
  *        another string
  * @param _result
  *        an outparam that will receive the edit distance between the arguments
  * @return a Sqlite result code, e.g. SQLITE_OK, SQLITE_NOMEM, etc.
  */
@@ -142,17 +142,17 @@ levenshteinDistance(const nsAString &aSt
       *_result = tLen;
       return SQLITE_OK;
     }
     if (tLen == 0) {
       *_result = sLen;
       return SQLITE_OK;
     }
 
-    // Notionally, Levenshtein Distance is computed in a matrix.  If we 
+    // Notionally, Levenshtein Distance is computed in a matrix.  If we
     // assume s = "span" and t = "spam", the matrix would look like this:
     //    s -->
     //  t          s   p   a   n
     //  |      0   1   2   3   4
     //  V  s   1   *   *   *   *
     //     p   2   *   *   *   *
     //     a   3   *   *   *   *
     //     m   4   *   *   *   *
@@ -187,26 +187,26 @@ levenshteinDistance(const nsAString &aSt
         currRow[0] = ti;
 
         // Get the character from "t" that corresponds to this row.
         const char16_t tch = t[ti - 1];
 
         // Compute the remaining cells in this row, left-to-right,
         // starting at the second column (and first character of "s").
         for (uint32_t si = 1; si <= sLen; si++) {
-            
+
             // Get the character from "s" that corresponds to this column,
             // compare it to the t-character, and compute the "cost".
             const char16_t sch = s[si - 1];
             int cost = (sch == tch) ? 0 : 1;
 
             // ............ We want to calculate the value of cell "d" from
             // ...ab....... the previously calculated (or initialized) cells
             // ...cd....... "a", "b", and "c", where d = min(a', b', c').
-            // ............ 
+            // ............
             int aPrime = prevRow[si - 1] + cost;
             int bPrime = prevRow[si] + 1;
             int cPrime = currRow[si - 1] + 1;
             currRow[si] = std::min(aPrime, std::min(bPrime, cPrime));
         }
 
         // Advance to the next row.  The current row becomes the previous
         // row and we recycle the old previous row as the new current row.
@@ -237,67 +237,67 @@ struct Functions {
 
 ////////////////////////////////////////////////////////////////////////////////
 //// Exposed Functions
 
 int
 registerFunctions(sqlite3 *aDB)
 {
   Functions functions[] = {
-    {"lower",               
-      1, 
-      SQLITE_UTF16, 
-      0,        
+    {"lower",
+      1,
+      SQLITE_UTF16,
+      0,
       caseFunction},
-    {"lower",               
-      1, 
-      SQLITE_UTF8,  
-      0,        
+    {"lower",
+      1,
+      SQLITE_UTF8,
+      0,
       caseFunction},
-    {"upper",               
-      1, 
-      SQLITE_UTF16, 
-      (void*)1, 
+    {"upper",
+      1,
+      SQLITE_UTF16,
+      (void*)1,
       caseFunction},
-    {"upper",               
-      1, 
-      SQLITE_UTF8,  
-      (void*)1, 
+    {"upper",
+      1,
+      SQLITE_UTF8,
+      (void*)1,
       caseFunction},
 
-    {"like",                
-      2, 
-      SQLITE_UTF16, 
-      0,        
+    {"like",
+      2,
+      SQLITE_UTF16,
+      0,
       likeFunction},
-    {"like",                
-      2, 
-      SQLITE_UTF8,  
-      0,        
+    {"like",
+      2,
+      SQLITE_UTF8,
+      0,
       likeFunction},
-    {"like",                
-      3, 
-      SQLITE_UTF16, 
-      0,        
+    {"like",
+      3,
+      SQLITE_UTF16,
+      0,
       likeFunction},
-    {"like",                
-      3, 
-      SQLITE_UTF8,  
-      0,        
+    {"like",
+      3,
+      SQLITE_UTF8,
+      0,
       likeFunction},
 
-    {"levenshteinDistance", 
-      2, 
-      SQLITE_UTF16, 
-      0,        
+    {"levenshteinDistance",
+      2,
+      SQLITE_UTF16,
+      0,
       levenshteinDistanceFunction},
-    {"levenshteinDistance", 
-      2, 
-      SQLITE_UTF8,  
-      0,        
+    {"levenshteinDistance",
+      2,
+      SQLITE_UTF8,
+      0,
       levenshteinDistanceFunction},
   };
 
   int rv = SQLITE_OK;
   for (size_t i = 0; SQLITE_OK == rv && i < ArrayLength(functions); ++i) {
     struct Functions *p = &functions[i];
     rv = ::sqlite3_create_function(aDB, p->zName, p->nArg, p->enc, p->pContext,
                                    p->xFunc, nullptr, nullptr);
@@ -387,17 +387,17 @@ void levenshteinDistanceFunction(sqlite3
   const char16_t *b = static_cast<const char16_t *>(::sqlite3_value_text16(aArgv[1]));
 
   // Compute the Levenshtein Distance, and return the result (or error).
   int distance = -1;
   const nsDependentString A(a, aLen);
   const nsDependentString B(b, bLen);
   int status = levenshteinDistance(A, B, &distance);
   if (status == SQLITE_OK) {
-    ::sqlite3_result_int(aCtx, distance);    
+    ::sqlite3_result_int(aCtx, distance);
   }
   else if (status == SQLITE_NOMEM) {
     ::sqlite3_result_error_nomem(aCtx);
   }
   else {
     ::sqlite3_result_error(aCtx, "User function returned error code", -1);
   }
 }
--- a/storage/mozStorageSQLFunctions.h
+++ b/storage/mozStorageSQLFunctions.h
@@ -53,17 +53,17 @@ void caseFunction(sqlite3_context *aCtx,
  */
 void likeFunction(sqlite3_context *aCtx,
                               int aArgc,
                               sqlite3_value **aArgv);
 
 /**
  * An implementation of the Levenshtein Edit Distance algorithm for use in
  * Sqlite queries.
- * 
+ *
  * @param aCtx
  *        The sqlite_context that this function is being called on.
  * @param aArgc
  *        The number of arguments the function is being called with.
  * @param aArgv
  *        An array of the arguments the functions is being called with.
  */
 void levenshteinDistanceFunction(sqlite3_context *aCtx,
--- a/storage/mozStorageService.h
+++ b/storage/mozStorageService.h
@@ -131,17 +131,17 @@ private:
   virtual ~Service();
 
   /**
    * Used for 1) locking around calls when initializing connections so that we
    * can ensure that the state of sqlite3_enable_shared_cache is sane and 2)
    * synchronizing access to mLocaleCollation.
    */
   Mutex mMutex;
-  
+
   sqlite3_vfs *mSqliteVFS;
 
   /**
    * Protects mConnections.
    */
   Mutex mRegistrationMutex;
 
   /**
--- a/storage/mozStorageStatement.cpp
+++ b/storage/mozStorageStatement.cpp
@@ -851,14 +851,14 @@ Statement::GetIsNull(uint32_t aIndex,
   *_isNull = (type == mozIStorageStatement::VALUE_TYPE_NULL);
   return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 //// mozIStorageBindingParams
 
 BOILERPLATE_BIND_PROXIES(
-  Statement, 
+  Statement,
   if (!mDBStatement) return NS_ERROR_NOT_INITIALIZED;
 )
 
 } // namespace storage
 } // namespace mozilla
--- a/storage/test/gtest/test_true_async.cpp
+++ b/storage/test/gtest/test_true_async.cpp
@@ -32,17 +32,17 @@ TEST(storage_true_async, TrueAsyncStatem
   db->CreateAsyncStatement(
     NS_LITERAL_CSTRING("INSERT INTO test (id) VALUES (?)"),
     getter_AddRefs(stmt)
   );
   stmt->BindInt32ByIndex(0, 1);
   blocking_async_execute(stmt);
   stmt->Finalize();
   do_check_false(mutex_used_on_watched_thread);
-  
+
   // - statement with something to bind by name
   db->CreateAsyncStatement(
     NS_LITERAL_CSTRING("INSERT INTO test (id) VALUES (:id)"),
     getter_AddRefs(stmt)
   );
   nsCOMPtr<mozIStorageBindingParamsArray> paramsArray;
   stmt->NewBindingParamsArray(getter_AddRefs(paramsArray));
   nsCOMPtr<mozIStorageBindingParams> params;
--- a/testing/mochitest/ssltunnel/ssltunnel.cpp
+++ b/testing/mochitest/ssltunnel/ssltunnel.cpp
@@ -65,18 +65,18 @@ PR_END_MACRO
 // Top level informative messages
 #define LOG_INFO(params) \
   _LOG_OUTPUT(LEVEL_INFO, printf, params)
 
 // Serious errors that must be logged always until completely gag
 #define LOG_ERROR(params) \
   _LOG_OUTPUT(LEVEL_ERROR, eprintf, params)
 
-// Same as LOG_ERROR, but when logging is set to LEVEL_DEBUG, the message 
-// will be put to the stdout instead of stderr to keep continuity with other 
+// Same as LOG_ERROR, but when logging is set to LEVEL_DEBUG, the message
+// will be put to the stdout instead of stderr to keep continuity with other
 // LOG_DEBUG message output
 #define LOG_ERRORD(params) \
 PR_BEGIN_MACRO \
   if (gLogLevel == LEVEL_DEBUG) \
     _LOG_OUTPUT(LEVEL_ERROR, printf, params); \
   else \
     _LOG_OUTPUT(LEVEL_ERROR, eprintf, params); \
 PR_END_MACRO
@@ -102,45 +102,45 @@ int eprintf(const char* str, ...)
   va_end(ap);
   return result;
 }
 
 // Copied from nsCRT
 char* strtok2(char* string, const char* delims, char* *newStr)
 {
   PR_ASSERT(string);
-  
+
   char delimTable[DELIM_TABLE_SIZE];
   uint32_t i;
   char* result;
   char* str = string;
-  
+
   for (i = 0; i < DELIM_TABLE_SIZE; i++)
     delimTable[i] = '\0';
-  
+
   for (i = 0; delims[i]; i++) {
     SET_DELIM(delimTable, static_cast<uint8_t>(delims[i]));
   }
-  
+
   // skip to beginning
   while (*str && IS_DELIM(delimTable, static_cast<uint8_t>(*str))) {
     str++;
   }
   result = str;
-  
+
   // fix up the end of the token
   while (*str) {
     if (IS_DELIM(delimTable, static_cast<uint8_t>(*str))) {
       *str++ = '\0';
       break;
     }
     str++;
   }
   *newStr = str;
-  
+
   return str == result ? nullptr : result;
 }
 
 
 
 enum client_auth_option {
   caNone = 0,
   caRequire = 1,
@@ -265,27 +265,27 @@ void SignalShutdown()
 // available flags
 enum {
   USE_SSL3 = 1 << 0,
   USE_RC4 = 1 << 1,
   FAIL_HANDSHAKE = 1 << 2,
   USE_TLS1 = 1 << 4
 };
 
-bool ReadConnectRequest(server_info_t* server_info, 
+bool ReadConnectRequest(server_info_t* server_info,
     relayBuffer& buffer, int32_t* result, string& certificate,
     client_auth_option* clientauth, string& host, string& location,
     int32_t* flags)
 {
   if (buffer.present() < 4) {
     LOG_DEBUG((" !! only %d bytes present in the buffer", (int)buffer.present()));
     return false;
   }
   if (strncmp(buffer.buffertail-4, "\r\n\r\n", 4)) {
-    LOG_ERRORD((" !! request is not tailed with CRLFCRLF but with %x %x %x %x", 
+    LOG_ERRORD((" !! request is not tailed with CRLFCRLF but with %x %x %x %x",
                *(buffer.buffertail-4),
                *(buffer.buffertail-3),
                *(buffer.buffertail-2),
                *(buffer.buffertail-1)));
     return false;
   }
 
   LOG_DEBUG((" parsing initial connect request, dump:\n%.*s\n", (int)buffer.present(), buffer.bufferhead));
@@ -334,17 +334,17 @@ bool ReadConnectRequest(server_info_t* s
     *flags |= USE_TLS1;
   }
 
   if (PL_HashTableLookup(server_info->host_failhandshake_table, token)) {
     *flags |= FAIL_HANDSHAKE;
   }
 
   token = strtok2(_caret, "/", &_caret);
-  if (strcmp(token, "HTTP")) {  
+  if (strcmp(token, "HTTP")) {
     LOG_ERRORD((" not tailed with HTTP but with %s", token));
     return true;
   }
 
   *result = (redir) ? 302 : 200;
   return true;
 }
 
@@ -426,17 +426,17 @@ bool ConfigureSSLServerSocket(PRFileDesc
   }
 
   SSL_ResetHandshake(ssl_socket, true);
 
   return true;
 }
 
 /**
- * This function examines the buffer for a Sec-WebSocket-Location: field, 
+ * This function examines the buffer for a Sec-WebSocket-Location: field,
  * and if it's present, it replaces the hostname in that field with the
  * value in the server's original_host field.  This function works
  * in the reverse direction as AdjustWebSocketHost(), replacing the real
  * hostname of a response with the potentially fake hostname that is expected
  * by the browser (e.g., mochi.test).
  *
  * @return true if the header was adjusted successfully, or not found, false
  * if the header is present but the url is not, which should indicate
@@ -704,31 +704,31 @@ void HandleConnection(void* data)
         {
            LOG_DEBUG((" no place in read buffer but got read flag, dropping it now!"));
            in_flags &= ~PR_POLL_READ;
         }
 
         if (out_flags & PR_POLL_READ && buffers[s].areafree())
         {
           LOG_DEBUG((" :reading"));
-          int32_t bytesRead = PR_Recv(sockets[s].fd, buffers[s].buffertail, 
+          int32_t bytesRead = PR_Recv(sockets[s].fd, buffers[s].buffertail,
               buffers[s].areafree(), 0, PR_INTERVAL_NO_TIMEOUT);
 
           if (bytesRead == 0)
           {
             LOG_DEBUG((" socket gracefully closed"));
             client_done = true;
             in_flags &= ~PR_POLL_READ;
           }
           else if (bytesRead < 0)
           {
             if (PR_GetError() != PR_WOULD_BLOCK_ERROR)
             {
               LOG_DEBUG((" error=%d", PR_GetError()));
-              // We are in error state, indicate that the connection was 
+              // We are in error state, indicate that the connection was
               // not closed gracefully
               client_error = true;
               socketErrorState[s] = true;
               // Wipe out our send buffer, we cannot send it anyway.
               buffers[s2].bufferhead = buffers[s2].buffertail = buffers[s2].buffer;
             }
             else
               LOG_DEBUG((" would block"));
@@ -755,30 +755,30 @@ void HandleConnection(void* data)
               // Mark this as a proxy-only connection (no SSL) if the CONNECT
               // request didn't come for port 443 or from any of the server's
               // cert or clientauth hostnames.
               if (fullHost.find(":443") == string::npos)
               {
                 server_match_t match;
                 match.fullHost = fullHost;
                 match.matched = false;
-                PL_HashTableEnumerateEntries(ci->server_info->host_cert_table, 
-                                             match_hostname, 
+                PL_HashTableEnumerateEntries(ci->server_info->host_cert_table,
+                                             match_hostname,
                                              &match);
-                PL_HashTableEnumerateEntries(ci->server_info->host_clientauth_table, 
-                                             match_hostname, 
+                PL_HashTableEnumerateEntries(ci->server_info->host_clientauth_table,
+                                             match_hostname,
                                              &match);
-                PL_HashTableEnumerateEntries(ci->server_info->host_ssl3_table, 
-                                             match_hostname, 
+                PL_HashTableEnumerateEntries(ci->server_info->host_ssl3_table,
+                                             match_hostname,
                                              &match);
                 PL_HashTableEnumerateEntries(ci->server_info->host_tls1_table,
                                              match_hostname,
                                              &match);
-                PL_HashTableEnumerateEntries(ci->server_info->host_rc4_table, 
-                                             match_hostname, 
+                PL_HashTableEnumerateEntries(ci->server_info->host_rc4_table,
+                                             match_hostname,
                                              &match);
                 PL_HashTableEnumerateEntries(ci->server_info->host_failhandshake_table,
                                              match_hostname,
                                              &match);
                 ci->http_proxy_only = !match.matched;
               }
               else
               {
@@ -868,17 +868,17 @@ void HandleConnection(void* data)
             else
               LOG_DEBUG((" we have something for the other socket to write, but ssl has not been administered on it"));
           }
         } // PR_POLL_READ handling
 
         if (out_flags & PR_POLL_WRITE)
         {
           LOG_DEBUG((" :writing"));
-          int32_t bytesWrite = PR_Send(sockets[s].fd, buffers[s2].bufferhead, 
+          int32_t bytesWrite = PR_Send(sockets[s].fd, buffers[s2].bufferhead,
               buffers[s2].present(), 0, PR_INTERVAL_NO_TIMEOUT);
 
           if (bytesWrite < 0)
           {
             if (PR_GetError() != PR_WOULD_BLOCK_ERROR) {
               LOG_DEBUG((" error=%d", PR_GetError()));
               client_error = true;
               socketErrorState[s] = true;
@@ -889,35 +889,35 @@ void HandleConnection(void* data)
             else
               LOG_DEBUG((" would block"));
           }
           else
           {
             LOG_DEBUG((", written %d bytes", bytesWrite));
             buffers[s2].buffertail[1] = '\0';
             LOG_DEBUG((" dump:\n%.*s\n", bytesWrite, buffers[s2].bufferhead));
-            
+
             buffers[s2].bufferhead += bytesWrite;
             if (buffers[s2].present())
             {
               LOG_DEBUG((" still have to write %d bytes", (int)buffers[s2].present()));
               in_flags |= PR_POLL_WRITE;
-            }              
+            }
             else
             {
               if (!ssl_updated)
               {
                 LOG_DEBUG((" proxy response sent to the client"));
                 // Proxy response has just been writen, update to ssl
                 ssl_updated = true;
                 if (ci->http_proxy_only)
                 {
                   LOG_DEBUG((" not updating to SSL based on http_proxy_only for this socket"));
                 }
-                else if (!ConfigureSSLServerSocket(ci->client_sock, ci->server_info, 
+                else if (!ConfigureSSLServerSocket(ci->client_sock, ci->server_info,
                                                    certificateToUse, clientAuth, flags))
                 {
                   LOG_ERRORD((" failed to config server socket\n"));
                   client_error = true;
                   break;
                 }
                 else
                 {
@@ -1245,17 +1245,17 @@ int processConfigLine(char* configLine)
         return 1;
       }
 
       servers.push_back(server);
     }
 
     return 0;
   }
-  
+
   if (!strcmp(keyword, "clientauth"))
   {
     char* hostname = strtok2(_caret, ":", &_caret);
     char* hostportstring = strtok2(_caret, ":", &_caret);
     char* serverportstring = strtok2(_caret, ":", &_caret);
 
     int port = atoi(serverportstring);
     if (port <= 0) {
--- a/testing/mozbase/mozprocess/tests/iniparser/dictionary.c
+++ b/testing/mozbase/mozprocess/tests/iniparser/dictionary.c
@@ -41,17 +41,17 @@
   							Private functions
  ---------------------------------------------------------------------------*/
 
 /* Doubles the allocated size associated to a pointer */
 /* 'size' is the current allocated size. */
 static void * mem_double(void * ptr, int size)
 {
     void * newptr ;
- 
+
     newptr = calloc(2*size, 1);
     if (newptr==NULL) {
         return NULL ;
     }
     memcpy(newptr, ptr, size);
     free(ptr);
     return newptr ;
 }
@@ -227,17 +227,17 @@ char * dictionary_get(dictionary * d, ch
  */
 /*--------------------------------------------------------------------------*/
 int dictionary_set(dictionary * d, char * key, char * val)
 {
 	int			i ;
 	unsigned	hash ;
 
 	if (d==NULL || key==NULL) return -1 ;
-	
+
 	/* Compute hash for this key */
 	hash = dictionary_hash(key) ;
 	/* Find if value is already in dictionary */
 	if (d->n>0) {
 		for (i=0 ; i<d->size ; i++) {
             if (d->key[i]==NULL)
                 continue ;
 			if (hash==d->hash[i]) { /* Same hash value */
@@ -371,17 +371,17 @@ int main(int argc, char *argv[])
 	dictionary	*	d ;
 	char	*	val ;
 	int			i ;
 	char		cval[90] ;
 
 	/* Allocate dictionary */
 	printf("allocating...\n");
 	d = dictionary_new(0);
-	
+
 	/* Set values in dictionary */
 	printf("setting %d values...\n", NVALS);
 	for (i=0 ; i<NVALS ; i++) {
 		sprintf(cval, "%04d", i);
 		dictionary_set(d, cval, "salut");
 	}
 	printf("getting %d values...\n", NVALS);
 	for (i=0 ; i<NVALS ; i++) {
--- a/testing/mozbase/mozprocess/tests/iniparser/iniparser.c
+++ b/testing/mozbase/mozprocess/tests/iniparser/iniparser.c
@@ -77,19 +77,19 @@ static char * strlwc(char * s)
   is statically allocated, it will be modified at each function call
   (not re-entrant).
  */
 /*--------------------------------------------------------------------------*/
 static char * strstrip(char * s)
 {
     static char l[ASCIILINESZ+1];
 	char * last ;
-	
+
     if (s==NULL) return NULL ;
-    
+
 	while (isspace((int)*s) && *s) s++;
 	memset(l, 0, ASCIILINESZ+1);
 	strcpy(l, s);
 	last = l + strlen(l);
 	while (last > l) {
 		if (!isspace((int)*(last-1)))
 			break ;
 		last -- ;
@@ -452,31 +452,31 @@ void iniparser_unset(dictionary * ini, c
   @return   line_status value
  */
 /*--------------------------------------------------------------------------*/
 static line_status iniparser_line(
     char * input_line,
     char * section,
     char * key,
     char * value)
-{   
+{
     line_status sta ;
     char        line[ASCIILINESZ+1];
     int         len ;
 
     strcpy(line, strstrip(input_line));
     len = (int)strlen(line);
 
     sta = LINE_UNPROCESSED ;
     if (len<1) {
         /* Empty line */
         sta = LINE_EMPTY ;
     } else if (line[0]=='#' || line[0]==';') {
         /* Comment line */
-        sta = LINE_COMMENT ; 
+        sta = LINE_COMMENT ;
     } else if (line[0]=='[' && line[len-1]==']') {
         /* Section name */
         sscanf(line, "[%[^]]", section);
         strcpy(section, strstrip(section));
         strcpy(section, strlwc(section));
         sta = LINE_SECTION ;
     } else if (sscanf (line, "%[^=] = \"%[^\"]\"", key, value) == 2
            ||  sscanf (line, "%[^=] = '%[^\']'",   key, value) == 2
--- a/testing/mozbase/mozprocess/tests/proclaunch.c
+++ b/testing/mozbase/mozprocess/tests/proclaunch.c
@@ -14,38 +14,38 @@ extern int iniparser_getint(dictionary *
 extern char *iniparser_getstring(dictionary *d, char *key, char *def);
 
 // This is the windows launcher function
 int launchWindows(int children, int maxtime) {
   _TCHAR cmdline[50];
   STARTUPINFO startup;
   PROCESS_INFORMATION procinfo;
   BOOL rv = 0;
-  
+
   _stprintf(cmdline, _T("proclaunch.exe %d %d"), children, maxtime);
   ZeroMemory(&startup, sizeof(STARTUPINFO));
   startup.cb = sizeof(STARTUPINFO);
-  
+
   ZeroMemory(&procinfo, sizeof(PROCESS_INFORMATION));
-  
+
   printf("Launching process!\n");
   rv = CreateProcess(NULL,
                 cmdline,
                 NULL,
                 NULL,
                 FALSE,
                 0,
                 NULL,
                 NULL,
                 &startup,
                 &procinfo);
 
   if (!rv) {
-    DWORD dw = GetLastError(); 
-    printf("error: %d\n", dw); 
+    DWORD dw = GetLastError();
+    printf("error: %d\n", dw);
   }
   CloseHandle(procinfo.hProcess);
   CloseHandle(procinfo.hThread);
   return 0;
 }
 #endif
 
 int main(int argc, char **argv) {
@@ -72,20 +72,20 @@ int main(int argc, char **argv) {
     printf("maxtime=25              ; You can call these sections whatever you want\n");
     printf("children=0              ; as long as you reference them in a children attribute\n");
     printf("....\n");
     return 0;
   } else if (argc == 2) {
     // This is ini file mode:
     // proclauncher <inifile>
     dict = iniparser_load(argv[1]);
-    
+
   } else if (argc == 3) {
     // Then we've been called in child process launching mode:
-    // proclauncher <children> <maxtime> 
+    // proclauncher <children> <maxtime>
     children = atoi(argv[1]);
     maxtime = atoi(argv[2]);
   }
 
   if (dict) {
     /* Dict operation */
     char *childlist = iniparser_getstring(dict, "main:children", NULL);
     maxtime = iniparser_getint(dict, (char*)"main:maxtime", 10);;
@@ -102,17 +102,17 @@ int main(int argc, char **argv) {
         memset(cmd, 0, 25);
         c = 0;
         m = 10;
 
         sprintf(childkey, "%s:children", token);
         sprintf(maxkey, "%s:maxtime", token);
         c = iniparser_getint(dict, childkey, 0);
         m = iniparser_getint(dict, maxkey, 10);
-        
+
         // Launch the child process
         #ifdef _WIN32
           launchWindows(c, m);
         #else
           sprintf(cmd, "./proclaunch %d %d &", c, m);
           system(cmd);
         #endif
 
@@ -127,17 +127,17 @@ int main(int argc, char **argv) {
     // This is launching grandchildren, there are no great grandchildren, so we
     // pass in a 0 for the children to spawn.
     #ifdef _WIN32
       while(children > 0) {
         launchWindows(0, maxtime);
         children--;
       }
     #else
-      sprintf(cmd, "./proclaunch %d %d &", 0, maxtime); 
+      sprintf(cmd, "./proclaunch %d %d &", 0, maxtime);
       printf("Launching child process: %s\n", cmd);
       while (children  > 0) {
         system(cmd);
         children--;
       }
     #endif
   }
 
--- a/testing/web-platform/tests/resources/webidl2/test/widlproc/src/comment.c
+++ b/testing/web-platform/tests/resources/webidl2/test/widlproc/src/comment.c
@@ -1610,17 +1610,17 @@ checkforlineofstars:
             /* See if it is a backslash escape sequence. */
             else if (ch == '\\') {
                 const char *match = "\\@&$#<>%";
                 const char *pos;
                 ch = p[1];
                 pos = strchr(match, ch);
                 if (pos) {
                     /* Got a \ escape sequence. */
-                    const char *text = 
+                    const char *text =
                         "\\\0    @\0    &amp;\0$\0    #\0    &lt;\0 >\0    %"
                         + 6 * (pos - match);
                     cnode = addtext(cnode, text, strlen(text));
                     p += 2;
                     ch = *p;
                     starttext = p;
                     continue;
                 }
--- a/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.c
+++ b/testing/web-platform/tests/resources/webidl2/test/widlproc/src/lex.c
@@ -501,17 +501,17 @@ outputwidl(struct node *node)
             /* See if we're at the start of a comment. If so find the end. */
             comment = 0;
             if (p + 1 != thisend) {
                 switch (p[1]) {
                 case '*':
                     /* Block comment. */
                     comment = p;
                     p++;
-                    do 
+                    do
                         p = memchr(p + 1, '*', thisend - p - 1);
                     while (p[1] != '/');
                     endcomment = p + 2;
                     break;
                 case '/':
                     /* Inline comment. */
                     comment = p;
                     p = memchr(p, '\n', thisend - p);
--- a/testing/web-platform/tests/resources/webidl2/test/widlproc/src/parse.c
+++ b/testing/web-platform/tests/resources/webidl2/test/widlproc/src/parse.c
@@ -421,17 +421,17 @@ parsenonanytype(struct tok *tok)
         addnode(node, newattr("type", "object"));
         lexnocomment();
 	node = parsetypesuffix(tok, node);
         break;
     default:
         node = parseprimitiveorstringtype(tok);
         node = parsetypesuffix(tok, node);
         break;
-    }       
+    }
     return node;
 }
 
 /***********************************************************************
  * parseunionmembertype: parse UnionMemberType
  *
  * Enter:   tok = next token
  *
@@ -447,17 +447,17 @@ parseunionmembertype(struct tok *tok)
     addnode(typenode, newattr("type", "any"));
     lexnocomment();
     eat(tok, TOK_DOUBLEBRACKET);
     node = newelement("Type");
     addnode(node, newattr("type", "array"));
     addnode(node, typenode);
     lexnocomment();
     node = parsetypesuffix(tok, node);
-  } else if (tok->type == '(') { 
+  } else if (tok->type == '(') {
     node = parseuniontype(tok);
   } else {
     node = parsenonanytype(tok);
   }
   return node;
 }
 
 
@@ -480,17 +480,17 @@ parseuniontype(struct tok *tok)
     for (;;) {
       addnode(node, parseunionmembertype(tok));
       if (tok->type != TOK_or)
 	break;
       lexnocomment();
     }
   }
   eat(tok, ')');
-  node = parsetypesuffix(tok, node);      
+  node = parsetypesuffix(tok, node);
   return node;
 }
 
 /***********************************************************************
  * parsetype : parse [44] Type
  *
  * Enter:   tok = next token
  *
@@ -504,17 +504,17 @@ parsetype(struct tok *tok)
     if (tok->type == '(') {
       node = parseuniontype(tok);
     } else if (tok->type == TOK_any) {
       node = newelement("Type");
       addnode(node, newattr("type", "any"));
       lexnocomment();
       node = parsetypesuffixstartingwitharray(tok, node);
     } else {
-      node = parsenonanytype(tok);	
+      node = parsenonanytype(tok);
     }
     return node;
 }
 
 
 /***********************************************************************
  * parseextendedattribute : parse [39] ExtendedAttribute
  *
@@ -689,17 +689,17 @@ parseoperationrest(struct tok *tok, stru
  * parsereturntypeandoperationrest: parse ReturnType OperationRest
  * Enter:   tok = next token
  *          eal
  *          attrs list of attributes
  * Return:  node
  *          tok on terminating ';'
  */
 static struct node *
-parsereturntypeandoperationrest(struct tok *tok, struct node *eal, struct node *attrs) 
+parsereturntypeandoperationrest(struct tok *tok, struct node *eal, struct node *attrs)
 {
   struct node *node =  newelement("Operation");
   struct node *nodeType = parsereturntype(tok);
   if (eal) addnode(node, eal);
   setcommentnode(node);
   addnode(node, attrs);
   addnode(node, nodeType);
   return parseoperationrest(tok, node);
@@ -745,17 +745,17 @@ parseoperationoriteratorrest(struct tok 
     lexnocomment();
     if (tok->type == TOK_object) {
       lexnocomment();
       node = newelement("IteratorObject");
       addnode(node, nodeType);
       return node;
     } else {
       node = newelement("Iterator");
-      isIterator = 1;    
+      isIterator = 1;
     }
   } else {
     node = newelement("Operation");
   }
   if (eal) addnode(node, eal);
   setcommentnode(node);
   addnode(node, attrs);
   addnode(node, nodeType);
@@ -869,17 +869,17 @@ parseserializer (struct tok *tok, struct
 	  if (tok->type != TOK_IDENTIFIER)
 	    tokerrorexit(tok, "expected attribute identifiers in serializer list");
 	  nodeAttribute = newelement("PatternAttribute");
 	  addnode(nodeAttribute, newattr("name", setidentifier(tok)));
 	  addnode(nodeList, nodeAttribute);
 	  lexnocomment();
 	  if (tok->type == ',')
 	    lexnocomment();
-	} while (tok->type != ']');	    
+	} while (tok->type != ']');
 	eat(tok, ']');
       }
       addnode(node, nodeList);
     } else {
       tokerrorexit(tok, "Expected '{', '[' or an attribute identifier in the serializer declaration");
     }
     return node;
   } else {
@@ -941,17 +941,17 @@ parseattributeoroperationoriterator(stru
 	break;
       s = memprintf("%.*s", tok->len, tok->start);
       if (alreadyseen & (1 << (tt - t)))
 	tokerrorexit(tok, "'%s' qualifier cannot be repeated", s);
       alreadyseen |= 1 << (tt - t);
       addnode(attrs, newattr(s, s));
       lexnocomment();
     }
-    if (!nodeisempty(attrs))    
+    if (!nodeisempty(attrs))
       return parsereturntypeandoperationrest(tok, eal, attrs);
     else
       return parseoperationoriteratorrest(tok, eal, attrs);
 }
 
 
 /***********************************************************************
  * parseconstexpr : parse ConstValue
@@ -1221,17 +1221,17 @@ parseinterface(struct tok *tok, struct n
  *          tok updated to the terminating ';'
  */
 static struct node *
 parsecallback(struct tok *tok, struct node *eal)
 {
   struct node *node;
   if (tok->type == TOK_interface) {
     node = parseinterface(tok, eal);
-    addnode(node, newattr("callback", "callback"));    
+    addnode(node, newattr("callback", "callback"));
   } else {
     node = newelement("Callback");
     if (eal) addnode(node, eal);
     setcommentnode(node);
     addnode(node, newattr("name", setidentifier(tok)));
     tok = lexnocomment();
     eat(tok, '=');
     addnode(node, parsereturntype(tok));
@@ -1302,17 +1302,17 @@ parseenum(struct tok *tok, struct node *
     addnode(node, newattr("name", setidentifier(tok)));
     tok = lexnocomment();
     eat(tok, '{');
     while (tok->type != '}') {
       if (tok->type == TOK_STRING) {
 	const char *start = tok->prestart;
 	struct node *node2 = newelement("EnumValue");
 	setcommentnode(node2);
-	
+
 	s = memalloc(tok->len + 1);
 	memcpy(s, tok->start, tok->len);
 	s[tok->len] = 0;
 	addnode(node2, newattr("stringvalue", s));
         node2->wsstart = start;
         node2->end = tok->start + tok->len;
         setid(node2);
 	addnode(node, node2);
@@ -1358,20 +1358,20 @@ parsedefinitions(struct tok *tok, struct
   	    node = parseinterface(tok, eal);
             break;
 	case TOK_callback:
 	    eat(tok, TOK_callback);
 	    node = parsecallback(tok, eal);
             break;
 	case TOK_dictionary:
             node = parsedictionary(tok, eal);
-            break;	  
+            break;
 	case TOK_enum:
             node = parseenum(tok, eal);
-            break;	  
+            break;
         case TOK_exception:
             node = parseexception(tok, eal);
             break;
         case TOK_typedef:
             node = parsetypedef(tok, eal);
             break;
         case TOK_IDENTIFIER:
             node = parseimplementsstatement(tok, eal);
@@ -1396,17 +1396,17 @@ parsedefinitions(struct tok *tok, struct
 /***********************************************************************
  * parse
  *
  * Return:  root element containing (possibly empty) list of definitions
  */
 struct node *
 parse(void)
 {
-	struct tok *tok; 
+	struct tok *tok;
     struct node *root = newelement("Definitions");
     setcommentnode(root);
     tok = lexnocomment();
     parsedefinitions(tok, root);
     if (tok->type != TOK_EOF)
         tokerrorexit(tok, "expected end of input");
     reversechildren(root);
     return root;
--- a/toolkit/components/autocomplete/nsAutoCompleteController.cpp
+++ b/toolkit/components/autocomplete/nsAutoCompleteController.cpp
@@ -751,17 +751,17 @@ nsAutoCompleteController::HandleDelete(b
     if (minResults) {
       ClosePopup();
     }
   }
 
   return NS_OK;
 }
 
-nsresult 
+nsresult
 nsAutoCompleteController::GetResultAt(int32_t aIndex, nsIAutoCompleteResult** aResult,
                                       int32_t* aRowIndex)
 {
   int32_t searchIndex;
   RowIndexToSearch(aIndex, &searchIndex, aRowIndex);
   NS_ENSURE_TRUE(searchIndex >= 0 && *aRowIndex >= 0, NS_ERROR_FAILURE);
 
   *aResult = mResults.SafeObjectAt(searchIndex);
--- a/toolkit/components/autocomplete/nsAutoCompleteController.h
+++ b/toolkit/components/autocomplete/nsAutoCompleteController.h
@@ -28,19 +28,19 @@ class nsAutoCompleteController final : p
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsAutoCompleteController,
                                            nsIAutoCompleteController)
   NS_DECL_NSIAUTOCOMPLETECONTROLLER
   NS_DECL_NSIAUTOCOMPLETEOBSERVER
   NS_DECL_NSITREEVIEW
   NS_DECL_NSITIMERCALLBACK
-   
+
   nsAutoCompleteController();
-  
+
 protected:
   virtual ~nsAutoCompleteController();
 
   nsresult OpenPopup();
   nsresult ClosePopup();
 
   nsresult StartSearch(uint16_t aSearchType);
 
@@ -110,22 +110,22 @@ protected:
    * just before Enter.
    *
    * @param _retval
    *        The value to be completed.
    */
   nsresult GetFinalDefaultCompleteValue(nsAString &_retval);
 
   nsresult ClearResults();
-  
+
   nsresult RowIndexToSearch(int32_t aRowIndex,
                             int32_t *aSearchIndex, int32_t *aItemIndex);
 
   // members //////////////////////////////////////////
-  
+
   nsCOMPtr<nsIAutoCompleteInput> mInput;
 
   nsCOMArray<nsIAutoCompleteSearch> mSearches;
   // This is used as a sparse array, always use SafeObjectAt to access it.
   nsCOMArray<nsIAutoCompleteResult> mResults;
   // Temporarily keeps the results alive while invoking startSearch() for each
   // search.  This is needed to allow the searches to reuse the previous result,
   // since otherwise the first search clears mResults.
--- a/toolkit/components/browser/nsEmbedCID.h
+++ b/toolkit/components/browser/nsEmbedCID.h
@@ -27,17 +27,17 @@
 #define NS_WEBBROWSER_CONTRACTID \
   "@mozilla.org/embedding/browser/nsWebBrowser;1"
 
 /**
  * Prompt Service ContractID
  *   The prompt service (which can be gotten by calling getServiceByContractID
  *   on this ContractID) is the way to pose various prompts, alerts,
  *   and confirmation dialogs to the user.
- * 
+ *
  * This contract implements the following interfaces:
  * nsIPromptService
  * nsIPromptService2 (optional)
  *
  * Embedders may override this ContractID with their own implementation if they
  * want more control over the way prompts, alerts, and confirmation dialogs are
  * presented to the user.
  */
--- a/toolkit/components/commandlines/nsCommandLine.cpp
+++ b/toolkit/components/commandlines/nsCommandLine.cpp
@@ -586,23 +586,23 @@ nsCommandLine::EnumerateValidators(Enume
 
   return rv;
 }
 
 static nsresult
 EnumValidate(nsICommandLineValidator* aValidator, nsICommandLine* aThis, void*)
 {
   return aValidator->Validate(aThis);
-}  
+}
 
 static nsresult
 EnumRun(nsICommandLineHandler* aHandler, nsICommandLine* aThis, void*)
 {
   return aHandler->Handle(aThis);
-}  
+}
 
 NS_IMETHODIMP
 nsCommandLine::Run()
 {
   nsresult rv;
 
   rv = EnumerateValidators(EnumValidate, nullptr);
   if (rv == NS_ERROR_ABORT)
@@ -626,17 +626,17 @@ EnumHelp(nsICommandLineHandler* aHandler
     NS_ASSERTION(text.Length() == 0 || text.Last() == '\n',
                  "Help text from command line handlers should end in a newline.");
 
     nsACString* totalText = reinterpret_cast<nsACString*>(aClosure);
     totalText->Append(text);
   }
 
   return NS_OK;
-}  
+}
 
 NS_IMETHODIMP
 nsCommandLine::GetHelpText(nsACString& aResult)
 {
   EnumerateHandlers(EnumHelp, &aResult);
 
   return NS_OK;
 }
--- a/toolkit/components/filepicker/nsFileView.cpp
+++ b/toolkit/components/filepicker/nsFileView.cpp
@@ -23,17 +23,17 @@
 #include "nsAutoPtr.h"
 #include "nsIMutableArray.h"
 #include "nsTArray.h"
 #include "mozilla/Attributes.h"
 
 #include "nsWildCard.h"
 
 class nsIDOMDataTransfer;
- 
+
 #define NS_FILECOMPLETE_CID { 0xcb60980e, 0x18a5, 0x4a77, \
                             { 0x91, 0x10, 0x81, 0x46, 0x61, 0x4c, 0xa7, 0xf0 } }
 #define NS_FILECOMPLETE_CONTRACTID "@mozilla.org/autocomplete/search;1?name=file"
 
 class nsFileResult final : public nsIAutoCompleteResult
 {
 public:
   // aSearchString is the text typed into the autocomplete widget
@@ -213,20 +213,20 @@ class nsFileView : public nsIFileView,
 {
 public:
   nsFileView();
   nsresult Init();
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIFILEVIEW
   NS_DECL_NSITREEVIEW
-  
+
 protected:
   virtual ~nsFileView();
-  
+
   void FilterFiles();
   void ReverseArray(nsTArray<nsCOMPtr<nsIFile> >& aArray);
   void SortArray(nsTArray<nsCOMPtr<nsIFile> >& aArray);
   void SortInternal();
 
   nsTArray<nsCOMPtr<nsIFile> > mFileList;
   nsTArray<nsCOMPtr<nsIFile> > mDirList;
   nsTArray<nsCOMPtr<nsIFile> > mFilteredFiles;
@@ -304,17 +304,17 @@ nsFileView::SetShowHiddenFiles(bool aSho
 {
   if (aShowHidden != mShowHiddenFiles) {
     mShowHiddenFiles = aShowHidden;
 
     // This could be better optimized, but since the hidden
     // file functionality is not currently used, this will be fine.
     SetDirectory(mDirectoryPath);
   }
-    
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFileView::GetShowHiddenFiles(bool* aShowHidden)
 {
   *aShowHidden = mShowHiddenFiles;
   return NS_OK;
@@ -656,17 +656,17 @@ nsFileView::Drop(int32_t aRow, int32_t a
 NS_IMETHODIMP
 nsFileView::GetParentIndex(int32_t aRowIndex, int32_t* aParentIndex)
 {
   *aParentIndex = -1;
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsFileView::HasNextSibling(int32_t aRowIndex, int32_t aAfterIndex, 
+nsFileView::HasNextSibling(int32_t aRowIndex, int32_t aAfterIndex,
                            bool* aHasSibling)
 {
   *aHasSibling = (aAfterIndex < (mTotalRows - 1));
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsFileView::GetLevel(int32_t aIndex, int32_t* aLevel)
@@ -833,23 +833,23 @@ nsFileView::FilterFiles()
   mFilteredFiles.Clear();
   uint32_t filterCount = mCurrentFilters.Length();
 
   for (uint32_t i = 0; i < count; ++i) {
     nsIFile* file = mFileList[i];
     bool isHidden = false;
     if (!mShowHiddenFiles)
       file->IsHidden(&isHidden);
-    
+
     nsAutoString ucsLeafName;
     if(NS_FAILED(file->GetLeafName(ucsLeafName))) {
       // need to check return value for GetLeafName()
       continue;
     }
-    
+
     if (!isHidden) {
       for (uint32_t j = 0; j < filterCount; ++j) {
         bool matched = false;
         if (!nsCRT::strcmp(mCurrentFilters.ElementAt(j),
                            u"..apps"))
         {
           file->IsExecutable(&matched);
         } else
@@ -880,17 +880,17 @@ nsFileView::ReverseArray(nsTArray<nsCOMP
   }
 }
 
 static int
 SortNameCallback(const void* aElement1, const void* aElement2, void* aContext)
 {
   nsIFile* file1 = *static_cast<nsIFile* const *>(aElement1);
   nsIFile* file2 = *static_cast<nsIFile* const *>(aElement2);
-  
+
   nsAutoString leafName1, leafName2;
   file1->GetLeafName(leafName1);
   file2->GetLeafName(leafName2);
 
   return Compare(leafName1, leafName2);
 }
 
 static int
--- a/toolkit/components/find/nsFindService.cpp
+++ b/toolkit/components/find/nsFindService.cpp
@@ -1,13 +1,13 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
  * The sole purpose of the Find service is to store globally the
  * last used Find settings
  *
  */
 
 
 #include "nsFindService.h"
--- a/toolkit/components/find/nsFindService.h
+++ b/toolkit/components/find/nsFindService.h
@@ -1,19 +1,19 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /*
  * The sole purpose of the Find service is to store globally the
  * last used Find settings
  *
  */
- 
+
 #include "nsString.h"
 
 #include "nsIFindService.h"
 
 
 // {5060b803-340e-11d5-be5b-b3e063ec6a3c}
 #define NS_FIND_SERVICE_CID \
  {0x5060b803, 0x340e, 0x11d5, {0xbe, 0x5b, 0xb3, 0xe0, 0x63, 0xec, 0x6a, 0x3c}}
@@ -26,21 +26,21 @@
 class nsFindService : public nsIFindService
 {
 public:
 
   nsFindService();
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIFINDSERVICE
- 
+
 protected:
 
   virtual ~nsFindService();
 
   nsString        mSearchString;
   nsString        mReplaceString;
-  
+
   bool            mFindBackwards;
   bool            mWrapFind;
   bool            mEntireWord;
   bool            mMatchCase;
 };
--- a/toolkit/components/maintenanceservice/maintenanceservice.cpp
+++ b/toolkit/components/maintenanceservice/maintenanceservice.cpp
@@ -15,28 +15,28 @@
 #include "uachelper.h"
 #include "updatehelper.h"
 #include "registrycertificates.h"
 
 // Link w/ subsystem window so we don't get a console when executing
 // this binary through the installer.
 #pragma comment(linker, "/SUBSYSTEM:windows")
 
-SERVICE_STATUS gSvcStatus = { 0 }; 
-SERVICE_STATUS_HANDLE gSvcStatusHandle = nullptr; 
+SERVICE_STATUS gSvcStatus = { 0 };
+SERVICE_STATUS_HANDLE gSvcStatusHandle = nullptr;
 HANDLE gWorkDoneEvent = nullptr;
 HANDLE gThread = nullptr;
 bool gServiceControlStopping = false;
 
 // logs are pretty small, about 20 lines, so 10 seems reasonable.
 #define LOGS_TO_KEEP 10
 
 BOOL GetLogDirectoryPath(WCHAR *path);
 
-int 
+int
 wmain(int argc, WCHAR **argv)
 {
   // If command-line parameter is "install", install the service
   // or upgrade if already installed
   // If command line parameter is "forceinstall", install the service
   // even if it is older than what is already installed.
   // If command-line parameter is "upgrade", upgrade the service
   // but do not install it if it is not already installed.
@@ -62,17 +62,17 @@ wmain(int argc, WCHAR **argv)
       LOG_WARN(("Could not install service.  (%d)", GetLastError()));
       LogFinish();
       return 1;
     }
 
     LOG(("The service was installed successfully"));
     LogFinish();
     return 0;
-  } 
+  }
 
   if (!lstrcmpi(argv[1], L"upgrade")) {
     WCHAR updatePath[MAX_PATH + 1];
     if (GetLogDirectoryPath(updatePath)) {
       LogInit(updatePath, L"maintenanceservice-install.log");
     }
 
     LOG(("Upgrading service if installed..."));
@@ -102,22 +102,22 @@ wmain(int argc, WCHAR **argv)
     LogFinish();
     return 0;
   }
 
   if (!lstrcmpi(argv[1], L"check-cert") && argc > 2) {
     return DoesBinaryMatchAllowedCertificates(argv[2], argv[3], FALSE) ? 0 : 1;
   }
 
-  SERVICE_TABLE_ENTRYW DispatchTable[] = { 
-    { SVC_NAME, (LPSERVICE_MAIN_FUNCTIONW) SvcMain }, 
-    { nullptr, nullptr } 
-  }; 
+  SERVICE_TABLE_ENTRYW DispatchTable[] = {
+    { SVC_NAME, (LPSERVICE_MAIN_FUNCTIONW) SvcMain },
+    { nullptr, nullptr }
+  };
 
-  // This call returns when the service has stopped. 
+  // This call returns when the service has stopped.
   // The process should simply terminate when the call returns.
   if (!StartServiceCtrlDispatcherW(DispatchTable)) {
     LOG_WARN(("StartServiceCtrlDispatcher failed.  (%d)", GetLastError()));
   }
 
   return 0;
 }
 
@@ -170,17 +170,17 @@ GetBackupLogPath(LPWSTR path, LPCWSTR ba
 
 /**
  * Moves the old log files out of the way before a new one is written.
  * If you for example keep 3 logs, then this function will do:
  *   updater2.log -> updater3.log
  *   updater1.log -> updater2.log
  *   updater.log -> updater1.log
  * Which clears room for a new updater.log in the basePath directory
- * 
+ *
  * @param basePath      The base directory path where log files are stored
  * @param numLogsToKeep The number of logs to keep
  */
 void
 BackupOldLogs(LPCWSTR basePath, int numLogsToKeep)
 {
   WCHAR oldPath[MAX_PATH + 1];
   WCHAR newPath[MAX_PATH + 1];
@@ -198,38 +198,38 @@ BackupOldLogs(LPCWSTR basePath, int numL
     }
   }
 }
 
 /**
  * Ensures the service is shutdown once all work is complete.
  * There is an issue on XP SP2 and below where the service can hang
  * in a stop pending state even though the SCM is notified of a stopped
- * state.  Control *should* be returned to StartServiceCtrlDispatcher from the 
- * call to SetServiceStatus on a stopped state in the wmain thread.  
+ * state.  Control *should* be returned to StartServiceCtrlDispatcher from the
+ * call to SetServiceStatus on a stopped state in the wmain thread.
  * Sometimes this is not the case though. This thread will terminate the process
  * if it has been 5 seconds after all work is done and the process is still not
  * terminated.  This thread is only started once a stopped state was sent to the
- * SCM. The stop pending hang can be reproduced intermittently even if you set 
- * a stopped state dirctly and never set a stop pending state.  It is safe to 
- * forcefully terminate the process ourselves since all work is done once we 
+ * SCM. The stop pending hang can be reproduced intermittently even if you set
+ * a stopped state dirctly and never set a stop pending state.  It is safe to
+ * forcefully terminate the process ourselves since all work is done once we
  * start this thread.
 */
 DWORD WINAPI
 EnsureProcessTerminatedThread(LPVOID)
 {
   Sleep(5000);
   exit(0);
   return 0;
 }
 
 void
 StartTerminationThread()
 {
-  // If the process does not self terminate like it should, this thread 
+  // If the process does not self terminate like it should, this thread
   // will terminate the process after 5 seconds.
   HANDLE thread = CreateThread(nullptr, 0, EnsureProcessTerminatedThread,
                                nullptr, 0, nullptr);
   if (thread) {
     CloseHandle(thread);
   }
 }
 
@@ -249,20 +249,20 @@ SvcMain(DWORD argc, LPWSTR *argv)
   // Disable every privilege we don't need. Processes started using
   // CreateProcess will use the same token as this process.
   UACHelper::DisablePrivileges(nullptr);
 
   // Register the handler function for the service
   gSvcStatusHandle = RegisterServiceCtrlHandlerW(SVC_NAME, SvcCtrlHandler);
   if (!gSvcStatusHandle) {
     LOG_WARN(("RegisterServiceCtrlHandler failed.  (%d)", GetLastError()));
-    ExecuteServiceCommand(argc, argv);  
+    ExecuteServiceCommand(argc, argv);
     LogFinish();
     exit(1);
-  } 
+  }
 
   // These values will be re-used later in calls involving gSvcStatus
   gSvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
   gSvcStatus.dwServiceSpecificExitCode = 0;
 
   // Report initial status to the SCM
   ReportSvcStatus(SERVICE_START_PENDING, NO_ERROR, 3000);
 
@@ -277,70 +277,70 @@ SvcMain(DWORD argc, LPWSTR *argv)
 
   // Initialization complete and we're about to start working on
   // the actual command.  Report the service state as running to the SCM.
   ReportSvcStatus(SERVICE_RUNNING, NO_ERROR, 0);
 
   // The service command was executed, stop logging and set an event
   // to indicate the work is done in case someone is waiting on a
   // service stop operation.
-  ExecuteServiceCommand(argc, argv);  
+  ExecuteServiceCommand(argc, argv);
   LogFinish();
 
   SetEvent(gWorkDoneEvent);
 
   // If we aren't already in a stopping state then tell the SCM we're stopped
   // now.  If we are already in a stopping state then the SERVICE_STOPPED state
   // will be set by the SvcCtrlHandler.
   if (!gServiceControlStopping) {
     ReportSvcStatus(SERVICE_STOPPED, NO_ERROR, 0);
     StartTerminationThread();
   }
 }
 
 /**
  * Sets the current service status and reports it to the SCM.
- *  
+ *
  * @param currentState  The current state (see SERVICE_STATUS)
  * @param exitCode      The system error code
  * @param waitHint      Estimated time for pending operation in milliseconds
  */
 void
-ReportSvcStatus(DWORD currentState, 
-                DWORD exitCode, 
+ReportSvcStatus(DWORD currentState,
+                DWORD exitCode,
                 DWORD waitHint)
 {
   static DWORD dwCheckPoint = 1;
 
   gSvcStatus.dwCurrentState = currentState;
   gSvcStatus.dwWin32ExitCode = exitCode;
   gSvcStatus.dwWaitHint = waitHint;
 
-  if (SERVICE_START_PENDING == currentState || 
+  if (SERVICE_START_PENDING == currentState ||
       SERVICE_STOP_PENDING == currentState) {
     gSvcStatus.dwControlsAccepted = 0;
   } else {
-    gSvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | 
+    gSvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP |
                                     SERVICE_ACCEPT_SHUTDOWN;
   }
 
   if ((SERVICE_RUNNING == currentState) ||
       (SERVICE_STOPPED == currentState)) {
     gSvcStatus.dwCheckPoint = 0;
   } else {
     gSvcStatus.dwCheckPoint = dwCheckPoint++;
   }
 
   // Report the status of the service to the SCM.
   SetServiceStatus(gSvcStatusHandle, &gSvcStatus);
 }
 
 /**
- * Since the SvcCtrlHandler should only spend at most 30 seconds before 
- * returning, this function does the service stop work for the SvcCtrlHandler. 
+ * Since the SvcCtrlHandler should only spend at most 30 seconds before
+ * returning, this function does the service stop work for the SvcCtrlHandler.
 */
 DWORD WINAPI
 StopServiceAndWaitForCommandThread(LPVOID)
 {
   do {
     ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 1000);
   } while(WaitForSingleObject(gWorkDoneEvent, 100) == WAIT_TIMEOUT);
   CloseHandle(gWorkDoneEvent);
@@ -358,25 +358,25 @@ void WINAPI
 SvcCtrlHandler(DWORD dwCtrl)
 {
   // After a SERVICE_CONTROL_STOP there should be no more commands sent to
   // the SvcCtrlHandler.
   if (gServiceControlStopping) {
     return;
   }
 
-  // Handle the requested control code. 
+  // Handle the requested control code.
   switch(dwCtrl) {
   case SERVICE_CONTROL_SHUTDOWN:
   case SERVICE_CONTROL_STOP: {
       gServiceControlStopping = true;
       ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 1000);
 
-      // The SvcCtrlHandler thread should not spend more than 30 seconds in 
-      // shutdown so we spawn a new thread for stopping the service 
+      // The SvcCtrlHandler thread should not spend more than 30 seconds in
+      // shutdown so we spawn a new thread for stopping the service
       HANDLE thread = CreateThread(nullptr, 0,
                                    StopServiceAndWaitForCommandThread,
                                    nullptr, 0, nullptr);
       if (thread) {
         CloseHandle(thread);
       } else {
         // Couldn't start the thread so just call the stop ourselves.
         // If it happens to take longer than 30 seconds the caller will
--- a/toolkit/components/maintenanceservice/maintenanceservice.h
+++ b/toolkit/components/maintenanceservice/maintenanceservice.h
@@ -1,10 +1,10 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 void WINAPI SvcMain(DWORD dwArgc, LPWSTR *lpszArgv);
 void SvcInit(DWORD dwArgc, LPWSTR *lpszArgv);
 void WINAPI SvcCtrlHandler(DWORD dwCtrl);
-void ReportSvcStatus(DWORD dwCurrentState, 
-                     DWORD dwWin32ExitCode, 
+void ReportSvcStatus(DWORD dwCurrentState,
+                     DWORD dwWin32ExitCode,
                      DWORD dwWaitHint);
--- a/toolkit/components/maintenanceservice/resource.h
+++ b/toolkit/components/maintenanceservice/resource.h
@@ -4,17 +4,17 @@
 
 //{{NO_DEPENDENCIES}}
 // Microsoft Visual C++ generated include file.
 // Used by updater.rc
 //
 #define IDI_DIALOG                      1003
 
 // Next default values for new objects
-// 
+//
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        102
 #define _APS_NEXT_COMMAND_VALUE         40001
 #define _APS_NEXT_CONTROL_VALUE         1003
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
--- a/toolkit/components/maintenanceservice/servicebase.cpp
+++ b/toolkit/components/maintenanceservice/servicebase.cpp
@@ -15,22 +15,22 @@
  * @param  file2Path   The second file to verify.
  * @param  sameContent Out parameter, TRUE if the files are equal
  * @return TRUE If there was no error checking the files.
  */
 BOOL
 VerifySameFiles(LPCWSTR file1Path, LPCWSTR file2Path, BOOL &sameContent)
 {
   sameContent = FALSE;
-  nsAutoHandle file1(CreateFileW(file1Path, GENERIC_READ, FILE_SHARE_READ, 
+  nsAutoHandle file1(CreateFileW(file1Path, GENERIC_READ, FILE_SHARE_READ,
                                  nullptr, OPEN_EXISTING, 0, nullptr));
   if (INVALID_HANDLE_VALUE == file1) {
     return FALSE;
   }
-  nsAutoHandle file2(CreateFileW(file2Path, GENERIC_READ, FILE_SHARE_READ, 
+  nsAutoHandle file2(CreateFileW(file2Path, GENERIC_READ, FILE_SHARE_READ,
                                  nullptr, OPEN_EXISTING, 0, nullptr));
   if (INVALID_HANDLE_VALUE == file2) {
     return FALSE;
   }
 
   DWORD fileSize1 = GetFileSize(file1, nullptr);
   DWORD fileSize2 = GetFileSize(file2, nullptr);
   if (INVALID_FILE_SIZE == fileSize1 || INVALID_FILE_SIZE == fileSize2) {
--- a/toolkit/components/maintenanceservice/servicebase.h
+++ b/toolkit/components/maintenanceservice/servicebase.h
@@ -9,14 +9,14 @@ BOOL PathAppendSafe(LPWSTR base, LPCWSTR
 BOOL VerifySameFiles(LPCWSTR file1Path, LPCWSTR file2Path, BOOL &sameContent);
 
 // 32KiB for comparing files at a time seems reasonable.
 // The bigger the better for speed, but this will be used
 // on the stack so I don't want it to be too big.
 #define COMPARE_BLOCKSIZE 32768
 
 // The following string resource value is used to uniquely identify the signed
-// Mozilla application as an updater.  Before the maintenance service will 
+// Mozilla application as an updater.  Before the maintenance service will
 // execute the updater it must have this updater identity string in its string
 // table.  No other signed Mozilla product will have this string table value.
 #define UPDATER_IDENTITY_STRING \
   "moz-updater.exe-4cdccec4-5ee0-4a06-9817-4cd899a9db49"
 #define IDS_UPDATER_IDENTITY 1006
--- a/toolkit/components/maintenanceservice/serviceinstall.cpp
+++ b/toolkit/components/maintenanceservice/serviceinstall.cpp
@@ -46,88 +46,88 @@ UpdateUninstallerVersionString(LPWSTR ve
 /**
  * A wrapper function to read strings for the maintenance service.
  *
  * @param path    The path of the ini file to read from
  * @param results The maintenance service strings that were read
  * @return OK on success
 */
 static int
-ReadMaintenanceServiceStrings(LPCWSTR path, 
+ReadMaintenanceServiceStrings(LPCWSTR path,
                               MaintenanceServiceStringTable *results)
 {
   // Read in the maintenance service description string if specified.
   const unsigned int kNumStrings = 1;
   const char *kServiceKeys = "MozillaMaintenanceDescription\0";
   char serviceStrings[kNumStrings][MAX_TEXT_LEN];
-  int result = ReadStrings(path, kServiceKeys, 
+  int result = ReadStrings(path, kServiceKeys,
                            kNumStrings, serviceStrings);
   if (result != OK) {
     serviceStrings[0][0] = '\0';
   }
-  strncpy(results->serviceDescription, 
+  strncpy(results->serviceDescription,
           serviceStrings[0], MAX_TEXT_LEN - 1);
   results->serviceDescription[MAX_TEXT_LEN - 1] = '\0';
   return result;
 }
 
 /**
  * Obtains the version number from the specified PE file's version information
  * Version Format: A.B.C.D (Example 10.0.0.300)
- *  
+ *
  * @param  path The path of the file to check the version on
  * @param  A    The first part of the version number
  * @param  B    The second part of the version number
  * @param  C    The third part of the version number
  * @param  D    The fourth part of the version number
  * @return TRUE if successful
  */
 static BOOL
-GetVersionNumberFromPath(LPWSTR path, DWORD &A, DWORD &B, 
-                         DWORD &C, DWORD &D) 
+GetVersionNumberFromPath(LPWSTR path, DWORD &A, DWORD &B,
+                         DWORD &C, DWORD &D)
 {
   DWORD fileVersionInfoSize = GetFileVersionInfoSizeW(path, 0);
   mozilla::UniquePtr<char[]> fileVersionInfo(new char[fileVersionInfoSize]);
   if (!GetFileVersionInfoW(path, 0, fileVersionInfoSize,
                            fileVersionInfo.get())) {
-      LOG_WARN(("Could not obtain file info of old service.  (%d)", 
+      LOG_WARN(("Could not obtain file info of old service.  (%d)",
                 GetLastError()));
       return FALSE;
   }
 
-  VS_FIXEDFILEINFO *fixedFileInfo = 
+  VS_FIXEDFILEINFO *fixedFileInfo =
     reinterpret_cast<VS_FIXEDFILEINFO *>(fileVersionInfo.get());
   UINT size;
-  if (!VerQueryValueW(fileVersionInfo.get(), L"\\", 
+  if (!VerQueryValueW(fileVersionInfo.get(), L"\\",
     reinterpret_cast<LPVOID*>(&fixedFileInfo), &size)) {
-      LOG_WARN(("Could not query file version info of old service.  (%d)", 
+      LOG_WARN(("Could not query file version info of old service.  (%d)",
                 GetLastError()));
       return FALSE;
-  }  
+  }
 
   A = HIWORD(fixedFileInfo->dwFileVersionMS);
   B = LOWORD(fixedFileInfo->dwFileVersionMS);
   C = HIWORD(fixedFileInfo->dwFileVersionLS);
   D = LOWORD(fixedFileInfo->dwFileVersionLS);
   return TRUE;
 }
 
 /**
  * Updates the service description with what is stored in updater.ini
  * at the same path as the currently executing module binary.
  *
- * @param serviceHandle A handle to an opened service with 
+ * @param serviceHandle A handle to an opened service with
  *                      SERVICE_CHANGE_CONFIG access right
  * @param TRUE on succcess.
 */
 BOOL
 UpdateServiceDescription(SC_HANDLE serviceHandle)
 {
   WCHAR updaterINIPath[MAX_PATH + 1];
-  if (!GetModuleFileNameW(nullptr, updaterINIPath, 
+  if (!GetModuleFileNameW(nullptr, updaterINIPath,
                           sizeof(updaterINIPath) /
                           sizeof(updaterINIPath[0]))) {
     LOG_WARN(("Could not obtain module filename when attempting to "
               "modify service description.  (%d)", GetLastError()));
     return FALSE;
   }
 
   if (!PathRemoveFileSpecW(updaterINIPath)) {
@@ -142,40 +142,40 @@ UpdateServiceDescription(SC_HANDLE servi
     return FALSE;
   }
 
   if (GetFileAttributesW(updaterINIPath) == INVALID_FILE_ATTRIBUTES) {
     LOG_WARN(("updater.ini file does not exist, will not modify "
               "service description.  (%d)", GetLastError()));
     return FALSE;
   }
-  
+
   MaintenanceServiceStringTable serviceStrings;
   int rv = ReadMaintenanceServiceStrings(updaterINIPath, &serviceStrings);
   if (rv != OK || !strlen(serviceStrings.serviceDescription)) {
     LOG_WARN(("updater.ini file does not contain a maintenance "
               "service description."));
     return FALSE;
   }
 
   WCHAR serviceDescription[MAX_TEXT_LEN];
-  if (!MultiByteToWideChar(CP_UTF8, 0, 
+  if (!MultiByteToWideChar(CP_UTF8, 0,
                            serviceStrings.serviceDescription, -1,
                            serviceDescription,
-                           sizeof(serviceDescription) / 
+                           sizeof(serviceDescription) /
                            sizeof(serviceDescription[0]))) {
     LOG_WARN(("Could not convert description to wide string format.  (%d)",
               GetLastError()));
     return FALSE;
   }
 
   SERVICE_DESCRIPTIONW descriptionConfig;
   descriptionConfig.lpDescription = serviceDescription;
-  if (!ChangeServiceConfig2W(serviceHandle, 
-                             SERVICE_CONFIG_DESCRIPTION, 
+  if (!ChangeServiceConfig2W(serviceHandle,
+                             SERVICE_CONFIG_DESCRIPTION,
                              &descriptionConfig)) {
     LOG_WARN(("Could not change service config.  (%d)", GetLastError()));
     return FALSE;
   }
 
   LOG(("The service description was updated successfully."));
   return TRUE;
 }
@@ -251,75 +251,75 @@ FixServicePath(SC_HANDLE service,
  *
  * @param  action The action to perform.
  * @return TRUE if the service was installed/upgraded
  */
 BOOL
 SvcInstall(SvcInstallAction action)
 {
   // Get a handle to the local computer SCM database with full access rights.
-  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr, 
+  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr,
                                                  SC_MANAGER_ALL_ACCESS));
   if (!schSCManager) {
     LOG_WARN(("Could not open service manager.  (%d)", GetLastError()));
     return FALSE;
   }
 
   WCHAR newServiceBinaryPath[MAX_PATH + 1];
-  if (!GetModuleFileNameW(nullptr, newServiceBinaryPath, 
-                          sizeof(newServiceBinaryPath) / 
+  if (!GetModuleFileNameW(nullptr, newServiceBinaryPath,
+                          sizeof(newServiceBinaryPath) /
                           sizeof(newServiceBinaryPath[0]))) {
     LOG_WARN(("Could not obtain module filename when attempting to "
               "install service.  (%d)",
               GetLastError()));
     return FALSE;
   }
 
   // Check if we already have the service installed.
-  nsAutoServiceHandle schService(OpenServiceW(schSCManager, 
-                                              SVC_NAME, 
+  nsAutoServiceHandle schService(OpenServiceW(schSCManager,
+                                              SVC_NAME,
                                               SERVICE_ALL_ACCESS));
   DWORD lastError = GetLastError();
   if (!schService && ERROR_SERVICE_DOES_NOT_EXIST != lastError) {
     // The service exists but we couldn't open it
     LOG_WARN(("Could not open service.  (%d)", GetLastError()));
     return FALSE;
   }
-  
+
   if (schService) {
     // The service exists but it may not have the correct permissions.
     // This could happen if the permissions were not set correctly originally
-    // or have been changed after the installation.  This will reset the 
+    // or have been changed after the installation.  This will reset the
     // permissions back to allow limited user accounts.
     if (!SetUserAccessServiceDACL(schService)) {
       LOG_WARN(("Could not reset security ACE on service handle. It might not be "
                 "possible to start the service. This error should never "
                 "happen.  (%d)", GetLastError()));
     }
 
     // The service exists and we opened it
     DWORD bytesNeeded;
-    if (!QueryServiceConfigW(schService, nullptr, 0, &bytesNeeded) && 
+    if (!QueryServiceConfigW(schService, nullptr, 0, &bytesNeeded) &&
         GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
       LOG_WARN(("Could not determine buffer size for query service config.  (%d)",
                 GetLastError()));
       return FALSE;
     }
 
-    // Get the service config information, in particular we want the binary 
+    // Get the service config information, in particular we want the binary
     // path of the service.
     mozilla::UniquePtr<char[]> serviceConfigBuffer(new char[bytesNeeded]);
-    if (!QueryServiceConfigW(schService, 
-        reinterpret_cast<QUERY_SERVICE_CONFIGW*>(serviceConfigBuffer.get()), 
+    if (!QueryServiceConfigW(schService,
+        reinterpret_cast<QUERY_SERVICE_CONFIGW*>(serviceConfigBuffer.get()),
         bytesNeeded, &bytesNeeded)) {
       LOG_WARN(("Could open service but could not query service config.  (%d)",
                 GetLastError()));
       return FALSE;
     }
-    QUERY_SERVICE_CONFIGW &serviceConfig = 
+    QUERY_SERVICE_CONFIGW &serviceConfig =
       *reinterpret_cast<QUERY_SERVICE_CONFIGW*>(serviceConfigBuffer.get());
 
     // Check if we need to fix the service path
     BOOL servicePathWasWrong;
     static BOOL alreadyCheckedFixServicePath = FALSE;
     if (!alreadyCheckedFixServicePath) {
       if (!FixServicePath(schService, serviceConfig.lpBinaryPathName,
                           servicePathWasWrong)) {
@@ -345,37 +345,37 @@ SvcInstall(SvcInstallAction action)
     // be large enough for the quoted path, so it is large enough for the
     // unquoted path.  This function cannot fail.
     PathUnquoteSpacesW(serviceConfig.lpBinaryPathName);
 
     // Obtain the existing maintenanceservice file's version number and
     // the new file's version number.  Versions are in the format of
     // A.B.C.D.
     DWORD existingA, existingB, existingC, existingD;
-    DWORD newA, newB, newC, newD; 
-    BOOL obtainedExistingVersionInfo = 
-      GetVersionNumberFromPath(serviceConfig.lpBinaryPathName, 
-                               existingA, existingB, 
+    DWORD newA, newB, newC, newD;
+    BOOL obtainedExistingVersionInfo =
+      GetVersionNumberFromPath(serviceConfig.lpBinaryPathName,
+                               existingA, existingB,
                                existingC, existingD);
-    if (!GetVersionNumberFromPath(newServiceBinaryPath, newA, 
+    if (!GetVersionNumberFromPath(newServiceBinaryPath, newA,
                                  newB, newC, newD)) {
       LOG_WARN(("Could not obtain version number from new path"));
       return FALSE;
     }
 
     // Check if we need to replace the old binary with the new one
-    // If we couldn't get the old version info then we assume we should 
+    // If we couldn't get the old version info then we assume we should
     // replace it.
     if (ForceInstallSvc == action ||
-        !obtainedExistingVersionInfo || 
+        !obtainedExistingVersionInfo ||
         (existingA < newA) ||
         (existingA == newA && existingB < newB) ||
-        (existingA == newA && existingB == newB && 
+        (existingA == newA && existingB == newB &&
          existingC < newC) ||
-        (existingA == newA && existingB == newB && 
+        (existingA == newA && existingB == newB &&
          existingC == newC && existingD < newD)) {
 
       // We have a newer updater, so update the description from the INI file.
       UpdateServiceDescription(schService);
 
       schService.reset();
       if (!StopService()) {
         return FALSE;
@@ -387,43 +387,43 @@ SvcInstall(SvcInstallAction action)
         return TRUE;
       }
 
       BOOL result = TRUE;
 
       // Attempt to copy the new binary over top the existing binary.
       // If there is an error we try to move it out of the way and then
       // copy it in.  First try the safest / easiest way to overwrite the file.
-      if (!CopyFileW(newServiceBinaryPath, 
+      if (!CopyFileW(newServiceBinaryPath,
                      serviceConfig.lpBinaryPathName, FALSE)) {
         LOG_WARN(("Could not overwrite old service binary file. "
                   "This should never happen, but if it does the next "
                   "upgrade will fix it, the service is not a critical "
                   "component that needs to be installed for upgrades "
                   "to work.  (%d)", GetLastError()));
 
         // We rename the last 3 filename chars in an unsafe way.  Manually
         // verify there are more than 3 chars for safe failure in MoveFileExW.
         const size_t len = wcslen(serviceConfig.lpBinaryPathName);
         if (len > 3) {
-          // Calculate the temp file path that we're moving the file to. This 
+          // Calculate the temp file path that we're moving the file to. This
           // is the same as the proper service path but with a .old extension.
-          LPWSTR oldServiceBinaryTempPath = 
+          LPWSTR oldServiceBinaryTempPath =
             new WCHAR[len + 1];
           memset(oldServiceBinaryTempPath, 0, (len + 1) * sizeof (WCHAR));
           wcsncpy(oldServiceBinaryTempPath, serviceConfig.lpBinaryPathName, len);
           // Rename the last 3 chars to 'old'
           wcsncpy(oldServiceBinaryTempPath + len - 3, L"old", 3);
 
           // Move the current (old) service file to the temp path.
-          if (MoveFileExW(serviceConfig.lpBinaryPathName, 
-                          oldServiceBinaryTempPath, 
+          if (MoveFileExW(serviceConfig.lpBinaryPathName,
+                          oldServiceBinaryTempPath,
                           MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH)) {
             // The old binary is moved out of the way, copy in the new one.
-            if (!CopyFileW(newServiceBinaryPath, 
+            if (!CopyFileW(newServiceBinaryPath,
                            serviceConfig.lpBinaryPathName, FALSE)) {
               // It is best to leave the old service binary in this condition.
               LOG_WARN(("The new service binary could not be copied in."
                         " The service will not be upgraded."));
               result = FALSE;
             } else {
               LOG(("The new service binary was copied in by first moving the"
                    " old one out of the way."));
@@ -468,29 +468,29 @@ SvcInstall(SvcInstallAction action)
       if (MoveFileExW(newServiceBinaryPath, nullptr,
                       MOVEFILE_DELAY_UNTIL_REBOOT)) {
         LOG(("Deleting the old file path on the next reboot: %ls.",
              newServiceBinaryPath));
       } else {
         LOG_WARN(("Call to delete the old file path failed: %ls.",
                   newServiceBinaryPath));
       }
-      
+
       return result;
     }
 
     // We don't need to copy ourselves to the existing location.
     // The tmp file (the process of which we are executing right now) will be
     // left over.  Attempt to delete the file on the next reboot.
     MoveFileExW(newServiceBinaryPath, nullptr, MOVEFILE_DELAY_UNTIL_REBOOT);
-    
+
     // nothing to do, we already have a newer service installed
-    return TRUE; 
+    return TRUE;
   }
-  
+
   // If the service does not exist and we are upgrading, don't install it.
   if (UpgradeSvc == action) {
     // The service does not exist and we are upgrading, so don't install it
     return TRUE;
   }
 
   // Quote the path only if it contains spaces.
   PathQuoteSpacesW(newServiceBinaryPath);
@@ -500,17 +500,17 @@ SvcInstall(SvcInstallAction action)
                                 SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
                                 newServiceBinaryPath, nullptr, nullptr,
                                 nullptr, nullptr, nullptr));
   if (!schService) {
     LOG_WARN(("Could not create Windows service. "
               "This error should never happen since a service install "
               "should only be called when elevated.  (%d)", GetLastError()));
     return FALSE;
-  } 
+  }
 
   if (!SetUserAccessServiceDACL(schService)) {
     LOG_WARN(("Could not set security ACE on service handle, the service will not "
               "be able to be started from unelevated processes. "
               "This error should never happen.  (%d)",
               GetLastError()));
   }
 
@@ -523,30 +523,30 @@ SvcInstall(SvcInstallAction action)
  * Stops the Maintenance service.
  *
  * @return TRUE if successful.
  */
 BOOL
 StopService()
 {
   // Get a handle to the local computer SCM database with full access rights.
-  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr, 
+  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr,
                                                  SC_MANAGER_ALL_ACCESS));
   if (!schSCManager) {
     LOG_WARN(("Could not open service manager.  (%d)", GetLastError()));
     return FALSE;
   }
 
   // Open the service
-  nsAutoServiceHandle schService(OpenServiceW(schSCManager, SVC_NAME, 
+  nsAutoServiceHandle schService(OpenServiceW(schSCManager, SVC_NAME,
                                               SERVICE_ALL_ACCESS));
   if (!schService) {
     LOG_WARN(("Could not open service.  (%d)", GetLastError()));
     return FALSE;
-  } 
+  }
 
   LOG(("Sending stop request..."));
   SERVICE_STATUS status;
   SetLastError(ERROR_SUCCESS);
   if (!ControlService(schService, SERVICE_CONTROL_STOP, &status) &&
       GetLastError() != ERROR_SERVICE_NOT_ACTIVE) {
     LOG_WARN(("Error sending stop request.  (%d)", GetLastError()));
   }
@@ -569,30 +569,30 @@ StopService()
  * Uninstalls the Maintenance service.
  *
  * @return TRUE if successful.
  */
 BOOL
 SvcUninstall()
 {
   // Get a handle to the local computer SCM database with full access rights.
-  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr, 
+  nsAutoServiceHandle schSCManager(OpenSCManager(nullptr, nullptr,
                                                  SC_MANAGER_ALL_ACCESS));
   if (!schSCManager) {
     LOG_WARN(("Could not open service manager.  (%d)", GetLastError()));
     return FALSE;
   }
 
   // Open the service
-  nsAutoServiceHandle schService(OpenServiceW(schSCManager, SVC_NAME, 
+  nsAutoServiceHandle schService(OpenServiceW(schSCManager, SVC_NAME,
                                               SERVICE_ALL_ACCESS));
   if (!schService) {
     LOG_WARN(("Could not open service.  (%d)", GetLastError()));
     return FALSE;
-  } 
+  }
 
   //Stop the service so it deletes faster and so the uninstaller
   // can actually delete its EXE.
   DWORD totalWaitTime = 0;
   SERVICE_STATUS status;
   static const int maxWaitTime = 1000 * 60; // Never wait more than a minute
   if (ControlService(schService, SERVICE_CONTROL_STOP, &status)) {
     do {
@@ -640,51 +640,51 @@ SetUserAccessServiceDACL(SC_HANDLE hServ
  * Sets the access control list for user access for the specified service.
  *
  * @param  hService  The service to set the access control list on
  * @param  pNewAcl   The out param ACL which should be freed by caller
  * @param  psd       out param security descriptor, should be freed by caller
  * @return ERROR_SUCCESS if successful
  */
 DWORD
-SetUserAccessServiceDACL(SC_HANDLE hService, PACL &pNewAcl, 
+SetUserAccessServiceDACL(SC_HANDLE hService, PACL &pNewAcl,
                          PSECURITY_DESCRIPTOR psd)
 {
   // Get the current security descriptor needed size
   DWORD needed = 0;
-  if (!QueryServiceObjectSecurity(hService, DACL_SECURITY_INFORMATION, 
+  if (!QueryServiceObjectSecurity(hService, DACL_SECURITY_INFORMATION,
                                   &psd, 0, &needed)) {
     if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
       LOG_WARN(("Could not query service object security size.  (%d)",
                 GetLastError()));
       return GetLastError();
     }
 
     DWORD size = needed;
     psd = (PSECURITY_DESCRIPTOR)LocalAlloc(LPTR, size);
     if (!psd) {
       LOG_WARN(("Could not allocate security descriptor.  (%d)",
                 GetLastError()));
       return ERROR_INSUFFICIENT_BUFFER;
     }
 
     // Get the actual security descriptor now
-    if (!QueryServiceObjectSecurity(hService, DACL_SECURITY_INFORMATION, 
+    if (!QueryServiceObjectSecurity(hService, DACL_SECURITY_INFORMATION,
                                     psd, size, &needed)) {
       LOG_WARN(("Could not allocate security descriptor.  (%d)",
                 GetLastError()));
       return GetLastError();
     }
   }
 
   // Get the current DACL from the security descriptor.
   PACL pacl = nullptr;
   BOOL bDaclPresent = FALSE;
   BOOL bDaclDefaulted = FALSE;
-  if ( !GetSecurityDescriptorDacl(psd, &bDaclPresent, &pacl, 
+  if ( !GetSecurityDescriptorDacl(psd, &bDaclPresent, &pacl,
                                   &bDaclDefaulted)) {
     LOG_WARN(("Could not obtain DACL.  (%d)", GetLastError()));
     return GetLastError();
   }
 
   PSID sid;
   DWORD SIDSize = SECURITY_MAX_SID_SIZE;
   sid = LocalAlloc(LMEM_FIXED, SIDSize);
@@ -703,32 +703,32 @@ SetUserAccessServiceDACL(SC_HANDLE hServ
   // Lookup the account name, the function fails if you don't pass in
   // a buffer for the domain name but it's not used since we're using
   // the built in account Sid.
   SID_NAME_USE accountType;
   WCHAR accountName[UNLEN + 1] = { L'\0' };
   WCHAR domainName[DNLEN + 1] = { L'\0' };
   DWORD accountNameSize = UNLEN + 1;
   DWORD domainNameSize = DNLEN + 1;
-  if (!LookupAccountSidW(nullptr, sid, accountName, 
-                         &accountNameSize, 
+  if (!LookupAccountSidW(nullptr, sid, accountName,
+                         &accountNameSize,
                          domainName, &domainNameSize, &accountType)) {
     LOG_WARN(("Could not lookup account Sid, will try Users.  (%d)",
               GetLastError()));
     wcsncpy(accountName, L"Users", UNLEN);
   }
 
   // We already have the group name so we can get rid of the SID
   FreeSid(sid);
   sid = nullptr;
 
   // Build the ACE, BuildExplicitAccessWithName cannot fail so it is not logged.
   EXPLICIT_ACCESS ea;
-  BuildExplicitAccessWithNameW(&ea, accountName, 
-                              SERVICE_START | SERVICE_STOP | GENERIC_READ, 
+  BuildExplicitAccessWithNameW(&ea, accountName,
+                              SERVICE_START | SERVICE_STOP | GENERIC_READ,
                               SET_ACCESS, NO_INHERITANCE);
   DWORD lastError = SetEntriesInAclW(1, (PEXPLICIT_ACCESS)&ea, pacl, &pNewAcl);
   if (ERROR_SUCCESS != lastError) {
     LOG_WARN(("Could not set entries in ACL.  (%d)", lastError));
     return lastError;
   }
 
   // Initialize a new security descriptor.
--- a/toolkit/components/maintenanceservice/serviceinstall.h
+++ b/toolkit/components/maintenanceservice/serviceinstall.h
@@ -6,16 +6,16 @@
 
 #define SVC_DISPLAY_NAME L"Mozilla Maintenance Service"
 
 enum SvcInstallAction { UpgradeSvc, InstallSvc, ForceInstallSvc };
 BOOL SvcInstall(SvcInstallAction action);
 BOOL SvcUninstall();
 BOOL StopService();
 BOOL SetUserAccessServiceDACL(SC_HANDLE hService);
-DWORD SetUserAccessServiceDACL(SC_HANDLE hService, PACL &pNewAcl, 
+DWORD SetUserAccessServiceDACL(SC_HANDLE hService, PACL &pNewAcl,
                                PSECURITY_DESCRIPTOR psd);
 
 struct MaintenanceServiceStringTable
 {
   char serviceDescription[MAX_TEXT_LEN];
 };
 
--- a/toolkit/components/parentalcontrols/nsParentalControlsServiceWin.cpp
+++ b/toolkit/components/parentalcontrols/nsParentalControlsServiceWin.cpp
@@ -237,17 +237,17 @@ nsParentalControlsService::RequestURIOve
   if (hWnd == nullptr)
     hWnd = GetDesktopWindow();
 
   // The first entry should be the root uri
   nsAutoCString rootSpec;
   nsCOMPtr<nsIURI> rootURI = do_QueryElementAt(aTargets, 0);
   if (!rootURI)
     return NS_ERROR_INVALID_ARG;
-  
+
   rootURI->GetSpec(rootSpec);
   if (rootSpec.IsEmpty())
     return NS_ERROR_INVALID_ARG;
 
   // Allocate an array of sub uri
   int32_t count = arrayLength - 1;
   auto arrUrls = MakeUnique<LPCWSTR[]>(count);
 
@@ -267,34 +267,34 @@ nsParentalControlsService::RequestURIOve
       continue;
 
     uriIdx++;
   }
 
   if (!uriIdx)
     return NS_ERROR_INVALID_ARG;
 
-  BOOL ret; 
+  BOOL ret;
   RefPtr<IWPCWebSettings> wpcws;
   if (SUCCEEDED(mPC->GetWebSettings(nullptr, getter_AddRefs(wpcws)))) {
     wpcws->RequestURLOverride(hWnd, NS_ConvertUTF8toUTF16(rootSpec).get(),
                              uriIdx, (LPCWSTR*)arrUrls.get(), &ret);
    *_retval = ret;
   }
 
   // Free up the allocated strings in our array
   for (idx = 0; idx < uriIdx; idx++)
     free((void*)arrUrls[idx]);
 
   return NS_OK;
 }
 
 //------------------------------------------------------------------------
 
-// Sends a file download event to the Vista Event Log 
+// Sends a file download event to the Vista Event Log
 void
 nsParentalControlsService::LogFileDownload(bool blocked, nsIURI *aSource, nsIFile *aTarget)
 {
   nsAutoCString curi;
 
   if (!gEventWrite)
     return;
 
@@ -306,17 +306,17 @@ nsParentalControlsService::LogFileDownlo
   // Get the name of the currently running process
   nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
   nsAutoCString asciiAppName;
   if (appInfo)
     appInfo->GetName(asciiAppName);
   nsAutoString appName = NS_ConvertUTF8toUTF16(asciiAppName);
 
   static const WCHAR fill[] = L"";
-  
+
   // See wpcevent.h and msdn for event formats
   EVENT_DATA_DESCRIPTOR eventData[WPC_ARGS_FILEDOWNLOADEVENT_CARGS];
   DWORD dwBlocked = blocked;
 
   EventDataDescCreate(&eventData[WPC_ARGS_FILEDOWNLOADEVENT_URL], (const void*)uri.get(),
                       ((ULONG)uri.Length()+1)*sizeof(WCHAR));
   EventDataDescCreate(&eventData[WPC_ARGS_FILEDOWNLOADEVENT_APPNAME], (const void*)appName.get(),
                       ((ULONG)appName.Length()+1)*sizeof(WCHAR));
--- a/toolkit/components/places/nsNavHistoryQuery.cpp
+++ b/toolkit/components/places/nsNavHistoryQuery.cpp
@@ -475,17 +475,17 @@ nsNavHistory::QueriesToQueryString(nsINa
       AppendAmpersandIfNonempty(queryString);
       queryString += NS_LITERAL_CSTRING(QUERYKEY_TAG "=");
       queryString += escapedTag;
     }
     AppendBoolKeyValueIfTrue(queryString,
                              NS_LITERAL_CSTRING(QUERYKEY_NOTTAGS),
                              query,
                              &nsINavHistoryQuery::GetTagsAreNot);
- 
+
     // transitions
     const nsTArray<uint32_t>& transitions = query->Transitions();
     for (uint32_t i = 0; i < transitions.Length(); ++i) {
       AppendAmpersandIfNonempty(queryString);
       queryString += NS_LITERAL_CSTRING(QUERYKEY_TRANSITION "=");
       AppendInt64(queryString, transitions[i]);
     }
   }
@@ -502,17 +502,17 @@ nsNavHistory::QueriesToQueryString(nsINa
       if (NS_SUCCEEDED(options->GetSortingAnnotation(sortingAnnotation))) {
         nsCString escaped;
         if (!NS_Escape(sortingAnnotation, escaped, url_XAlphas))
           return NS_ERROR_OUT_OF_MEMORY;
         AppendAmpersandIfNonempty(queryString);
         queryString += NS_LITERAL_CSTRING(QUERYKEY_SORTING_ANNOTATION "=");
         queryString.Append(escaped);
       }
-    } 
+    }
   }
 
   // result type
   if (options->ResultType() != nsINavHistoryQueryOptions::RESULTS_AS_URI) {
     AppendAmpersandIfNonempty(queryString);
     queryString += NS_LITERAL_CSTRING(QUERYKEY_RESULT_TYPE "=");
     AppendInt16(queryString, options->ResultType());
   }
--- a/toolkit/components/printingui/mac/nsPrintProgress.cpp
+++ b/toolkit/components/printingui/mac/nsPrintProgress.cpp
@@ -32,17 +32,17 @@ nsPrintProgress::nsPrintProgress()
 
 nsPrintProgress::~nsPrintProgress()
 {
   (void)ReleaseListeners();
 }
 
 NS_IMETHODIMP nsPrintProgress::OpenProgressDialog(mozIDOMWindowProxy *parent,
                                                   const char *dialogURL,
-                                                  nsISupports *parameters, 
+                                                  nsISupports *parameters,
                                                   nsIObserver *openDialogObserver,
                                                   bool *notifyOnOpen)
 {
   MOZ_ASSERT_UNREACHABLE("The nsPrintingPromptService::ShowProgress "
                          "implementation for OS X returns "
                          "NS_ERROR_NOT_IMPLEMENTED, so we should never get "
                          "here.");
   return NS_ERROR_NOT_IMPLEMENTED;
@@ -83,73 +83,73 @@ NS_IMETHODIMP nsPrintProgress::SetProces
   OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::RegisterListener(nsIWebProgressListener * listener)
 {
   if (!listener) //Nothing to do with a null listener!
     return NS_OK;
-  
+
   m_listenerList.AppendObject(listener);
   if (m_closeProgress || m_processCanceled)
     listener->OnStateChange(nullptr, nullptr,
                             nsIWebProgressListener::STATE_STOP, NS_OK);
   else
   {
     listener->OnStatusChange(nullptr, nullptr, NS_OK, m_pendingStatus.get());
     if (m_pendingStateFlags != -1)
       listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue);
   }
-    
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::UnregisterListener(nsIWebProgressListener *listener)
 {
   if (listener)
     m_listenerList.RemoveObject(listener);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::DoneIniting()
 {
   if (m_observer) {
     m_observer->Observe(nullptr, nullptr, nullptr);
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
   m_pendingStateFlags = aStateFlags;
   m_pendingStateValue = aStatus;
-  
+
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
     return NS_OK;
 }
 
@@ -160,17 +160,17 @@ NS_IMETHODIMP nsPrintProgress::OnStatusC
 
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
     return NS_OK;
 }
 
--- a/toolkit/components/printingui/mac/nsPrintProgressParams.cpp
+++ b/toolkit/components/printingui/mac/nsPrintProgressParams.cpp
@@ -15,31 +15,31 @@ nsPrintProgressParams::nsPrintProgressPa
 
 nsPrintProgressParams::~nsPrintProgressParams()
 {
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocTitle(char16_t * *aDocTitle)
 {
   NS_ENSURE_ARG(aDocTitle);
-  
+
   *aDocTitle = ToNewUnicode(mDocTitle);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocTitle(const char16_t * aDocTitle)
 {
   mDocTitle = aDocTitle;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocURL(char16_t * *aDocURL)
 {
   NS_ENSURE_ARG(aDocURL);
-  
+
   *aDocURL = ToNewUnicode(mDocURL);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocURL(const char16_t * aDocURL)
 {
   mDocURL = aDocURL;
   return NS_OK;
--- a/toolkit/components/printingui/mac/nsPrintingPromptService.cpp
+++ b/toolkit/components/printingui/mac/nsPrintingPromptService.cpp
@@ -10,109 +10,109 @@
 
 #include "nsIPrintingPromptService.h"
 #include "nsIFactory.h"
 #include "nsIPrintDialogService.h"
 #include "nsPIDOMWindow.h"
 
 //*****************************************************************************
 // nsPrintingPromptService
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMPL_ISUPPORTS(nsPrintingPromptService, nsIPrintingPromptService, nsIWebProgressListener)
 
 nsPrintingPromptService::nsPrintingPromptService()
 {
 }
 
 nsPrintingPromptService::~nsPrintingPromptService() = default;
 
 nsresult nsPrintingPromptService::Init()
 {
     return NS_OK;
 }
 
 //*****************************************************************************
 // nsPrintingPromptService::nsIPrintingPromptService
-//*****************************************************************************   
+//*****************************************************************************
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrintDialog(mozIDOMWindowProxy *parent, nsIWebBrowserPrint *webBrowserPrint, nsIPrintSettings *printSettings)
 {
   nsCOMPtr<nsIPrintDialogService> dlgPrint(do_GetService(
                                            NS_PRINTDIALOGSERVICE_CONTRACTID));
   if (dlgPrint) {
     return dlgPrint->Show(nsPIDOMWindowOuter::From(parent), printSettings,
                           webBrowserPrint);
   }
 
   return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowProgress(mozIDOMWindowProxy*      parent,
                                       nsIWebBrowserPrint*      webBrowserPrint,    // ok to be null
                                       nsIPrintSettings*        printSettings,      // ok to be null
                                       nsIObserver*             openDialogObserver, // ok to be null
                                       bool                     isForPrinting,
                                       nsIWebProgressListener** webProgressListener,
                                       nsIPrintProgressParams** printProgressParams,
                                       bool*                  notifyOnOpen)
 {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPageSetup(mozIDOMWindowProxy *parent, nsIPrintSettings *printSettings, nsIObserver *aObs)
 {
   nsCOMPtr<nsIPrintDialogService> dlgPrint(do_GetService(
                                            NS_PRINTDIALOGSERVICE_CONTRACTID));
   if (dlgPrint) {
     return dlgPrint->ShowPageSetup(nsPIDOMWindowOuter::From(parent), printSettings);
   }
 
   return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrinterProperties(mozIDOMWindowProxy *parent, const char16_t *printerName, nsIPrintSettings *printSettings)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 
 //*****************************************************************************
 // nsPrintingPromptService::nsIWebProgressListener
-//*****************************************************************************   
+//*****************************************************************************
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
     return NS_OK;
 }
 
 /* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
     return NS_OK;
 }
 
 /* void onLocationChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsIURI location, in unsigned long aFlags); */
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
     return NS_OK;
 }
 
 /* void onStatusChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsresult aStatus, in wstring aMessage); */
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStatusChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsresult aStatus, const char16_t *aMessage)
 {
     return NS_OK;
 }
 
 /* void onSecurityChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long state); */
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
     return NS_OK;
 }
--- a/toolkit/components/printingui/unixshared/nsPrintProgress.cpp
+++ b/toolkit/components/printingui/unixshared/nsPrintProgress.cpp
@@ -39,39 +39,39 @@ nsPrintProgress::nsPrintProgress(nsIPrin
 
 nsPrintProgress::~nsPrintProgress()
 {
   (void)ReleaseListeners();
 }
 
 NS_IMETHODIMP nsPrintProgress::OpenProgressDialog(mozIDOMWindowProxy *parent,
                                                   const char *dialogURL,
-                                                  nsISupports *parameters, 
+                                                  nsISupports *parameters,
                                                   nsIObserver *openDialogObserver,
                                                   bool *notifyOnOpen)
 {
   *notifyOnOpen = true;
   m_observer = openDialogObserver;
   nsresult rv = NS_ERROR_FAILURE;
-  
+
   if (m_dialog)
     return NS_ERROR_ALREADY_INITIALIZED;
-  
+
   if (!dialogURL || !*dialogURL)
     return NS_ERROR_INVALID_ARG;
 
   if (parent)
   {
     // Set up window.arguments[0]...
     nsCOMPtr<nsIMutableArray> array = nsArray::Create();
 
     nsCOMPtr<nsISupportsInterfacePointer> ifptr =
       do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     ifptr->SetData(static_cast<nsIPrintProgress*>(this));
     ifptr->SetDataIID(&NS_GET_IID(nsIPrintProgress));
 
     array->AppendElement(ifptr, /*weak =*/ false);
 
     array->AppendElement(parameters, /*weak =*/ false);
 
     // We will set the opener of the dialog to be the nsIDOMWindow for the
@@ -115,17 +115,17 @@ NS_IMETHODIMP nsPrintProgress::GetPrompt
   NS_ENSURE_ARG_POINTER(_retval);
   *_retval = nullptr;
 
   if (! m_closeProgress && m_dialog) {
     nsCOMPtr<nsPIDOMWindowOuter> window = do_QueryInterface(m_dialog);
     MOZ_ASSERT(window);
     return window->GetPrompter(_retval);
   }
-    
+
   return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsPrintProgress::GetProcessCanceledByUser(bool *aProcessCanceledByUser)
 {
   NS_ENSURE_ARG_POINTER(aProcessCanceledByUser);
   *aProcessCanceledByUser = m_processCanceled;
   return NS_OK;
@@ -138,72 +138,72 @@ NS_IMETHODIMP nsPrintProgress::SetProces
   OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::RegisterListener(nsIWebProgressListener * listener)
 {
   if (!listener) //Nothing to do with a null listener!
     return NS_OK;
-  
+
   m_listenerList.AppendObject(listener);
   if (m_closeProgress || m_processCanceled)
     listener->OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
   else
   {
     listener->OnStatusChange(nullptr, nullptr, NS_OK, m_pendingStatus.get());
     if (m_pendingStateFlags != -1)
       listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue);
   }
-    
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::UnregisterListener(nsIWebProgressListener *listener)
 {
   if (listener)
     m_listenerList.RemoveObject(listener);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::DoneIniting()
 {
   if (m_observer) {
     m_observer->Observe(nullptr, nullptr, nullptr);
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
   m_pendingStateFlags = aStateFlags;
   m_pendingStateValue = aStatus;
-  
+
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
@@ -214,29 +214,29 @@ NS_IMETHODIMP nsPrintProgress::OnStatusC
 
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
     return NS_OK;
 }
 
 nsresult nsPrintProgress::ReleaseListeners()
 {
   m_listenerList.Clear();
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::ShowStatusString(const char16_t *status)
 {
   return OnStatusChange(nullptr, nullptr, NS_OK, status);
 }
 
--- a/toolkit/components/printingui/unixshared/nsPrintProgress.h
+++ b/toolkit/components/printingui/unixshared/nsPrintProgress.h
@@ -13,17 +13,17 @@
 #include "nsCOMPtr.h"
 #include "nsIDOMWindow.h"
 #include "nsIPrintStatusFeedback.h"
 #include "nsIObserver.h"
 #include "nsString.h"
 
 class nsPrintProgress : public nsIPrintProgress, public nsIPrintStatusFeedback
 {
-public: 
+public:
 	NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIPRINTPROGRESS
   NS_DECL_NSIWEBPROGRESSLISTENER
   NS_DECL_NSIPRINTSTATUSFEEDBACK
 
   explicit nsPrintProgress(nsIPrintSettings* aPrintSettings);
 
 protected:
--- a/toolkit/components/printingui/unixshared/nsPrintProgressParams.cpp
+++ b/toolkit/components/printingui/unixshared/nsPrintProgressParams.cpp
@@ -15,31 +15,31 @@ nsPrintProgressParams::nsPrintProgressPa
 
 nsPrintProgressParams::~nsPrintProgressParams()
 {
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocTitle(char16_t * *aDocTitle)
 {
   NS_ENSURE_ARG(aDocTitle);
-  
+
   *aDocTitle = ToNewUnicode(mDocTitle);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocTitle(const char16_t * aDocTitle)
 {
   mDocTitle = aDocTitle;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocURL(char16_t * *aDocURL)
 {
   NS_ENSURE_ARG(aDocURL);
-  
+
   *aDocURL = ToNewUnicode(mDocURL);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocURL(const char16_t * aDocURL)
 {
   mDocURL = aDocURL;
   return NS_OK;
--- a/toolkit/components/printingui/unixshared/nsPrintProgressParams.h
+++ b/toolkit/components/printingui/unixshared/nsPrintProgressParams.h
@@ -6,17 +6,17 @@
 #ifndef __nsPrintProgressParams_h
 #define __nsPrintProgressParams_h
 
 #include "nsIPrintProgressParams.h"
 #include "nsString.h"
 
 class nsPrintProgressParams : public nsIPrintProgressParams
 {
-public: 
+public:
 	NS_DECL_ISUPPORTS
   NS_DECL_NSIPRINTPROGRESSPARAMS
 
 	nsPrintProgressParams();
 
 protected:
 	virtual ~nsPrintProgressParams();
 
--- a/toolkit/components/printingui/unixshared/nsPrintingPromptService.cpp
+++ b/toolkit/components/printingui/unixshared/nsPrintingPromptService.cpp
@@ -18,29 +18,29 @@
 #include "nsPrintProgress.h"
 #include "nsPrintProgressParams.h"
 
 static const char *kPrintDialogURL         = "chrome://global/content/printdialog.xul";
 static const char *kPrintProgressDialogURL = "chrome://global/content/printProgress.xul";
 static const char *kPrtPrvProgressDialogURL = "chrome://global/content/printPreviewProgress.xul";
 static const char *kPageSetupDialogURL     = "chrome://global/content/printPageSetup.xul";
 static const char *kPrinterPropertiesURL   = "chrome://global/content/printjoboptions.xul";
- 
+
 /****************************************************************
  ************************* ParamBlock ***************************
  ****************************************************************/
 
 class ParamBlock {
 
 public:
-    ParamBlock() 
+    ParamBlock()
     {
         mBlock = 0;
     }
-    ~ParamBlock() 
+    ~ParamBlock()
     {
         NS_IF_RELEASE(mBlock);
     }
     nsresult Init() {
       return CallCreateInstance(NS_DIALOGPARAMBLOCK_CONTRACTID, &mBlock);
     }
     nsIDialogParamBlock * operator->() const MOZ_NO_ADDREF_RELEASE_ON_RETURN { return mBlock; }
     operator nsIDialogParamBlock * () const { return mBlock; }
@@ -50,33 +50,33 @@ private:
 };
 
 /****************************************************************
  ***************** nsPrintingPromptService **********************
  ****************************************************************/
 
 NS_IMPL_ISUPPORTS(nsPrintingPromptService, nsIPrintingPromptService, nsIWebProgressListener)
 
-nsPrintingPromptService::nsPrintingPromptService() 
+nsPrintingPromptService::nsPrintingPromptService()
 {
 }
 
-nsPrintingPromptService::~nsPrintingPromptService() 
+nsPrintingPromptService::~nsPrintingPromptService()
 {
 }
 
 nsresult
 nsPrintingPromptService::Init()
 {
     nsresult rv;
     mWatcher = do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv);
     return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrintDialog(mozIDOMWindowProxy *parent,
                                          nsIWebBrowserPrint *webBrowserPrint,
                                          nsIPrintSettings *printSettings)
 {
     NS_ENSURE_ARG(webBrowserPrint);
     NS_ENSURE_ARG(printSettings);
 
     // Try to access a component dialog
@@ -91,24 +91,24 @@ nsPrintingPromptService::ShowPrintDialog
     nsresult rv = block.Init();
     if (NS_FAILED(rv))
       return rv;
 
     block->SetInt(0, 0);
     return DoDialog(parent, block, webBrowserPrint, printSettings, kPrintDialogURL);
 }
 
-NS_IMETHODIMP 
-nsPrintingPromptService::ShowProgress(mozIDOMWindowProxy*      parent, 
+NS_IMETHODIMP
+nsPrintingPromptService::ShowProgress(mozIDOMWindowProxy*      parent,
                                       nsIWebBrowserPrint*      webBrowserPrint,    // ok to be null
                                       nsIPrintSettings*        printSettings,      // ok to be null
                                       nsIObserver*             openDialogObserver, // ok to be null
                                       bool                     isForPrinting,
                                       nsIWebProgressListener** webProgressListener,
-                                      nsIPrintProgressParams** printProgressParams, 
+                                      nsIPrintProgressParams** printProgressParams,
                                       bool*                  notifyOnOpen)
 {
     NS_ENSURE_ARG(webProgressListener);
     NS_ENSURE_ARG(printProgressParams);
     NS_ENSURE_ARG(notifyOnOpen);
 
     *notifyOnOpen = false;
 
@@ -131,17 +131,17 @@ nsPrintingPromptService::ShowProgress(mo
     }
 
     prtProgressParams.forget(printProgressParams);
     NS_ADDREF(*webProgressListener = this);
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPageSetup(mozIDOMWindowProxy *parent,
                                        nsIPrintSettings *printSettings,
                                        nsIObserver *aObs)
 {
     NS_ENSURE_ARG(printSettings);
 
     // Try to access a component dialog
     nsCOMPtr<nsIPrintDialogService> dlgPrint(do_GetService(
@@ -154,66 +154,66 @@ nsPrintingPromptService::ShowPageSetup(m
     nsresult rv = block.Init();
     if (NS_FAILED(rv))
       return rv;
 
     block->SetInt(0, 0);
     return DoDialog(parent, block, nullptr, printSettings, kPageSetupDialogURL);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrinterProperties(mozIDOMWindowProxy *parent,
                                                const char16_t *printerName,
                                                nsIPrintSettings *printSettings)
 {
     /* fixme: We simply ignore the |aPrinter| argument here
-     * We should get the supported printer attributes from the printer and 
-     * populate the print job options dialog with these data instead of using 
+     * We should get the supported printer attributes from the printer and
+     * populate the print job options dialog with these data instead of using
      * the "default set" here.
      * However, this requires changes on all platforms and is another big chunk
      * of patches ... ;-(
      */
     NS_ENSURE_ARG(printerName);
     NS_ENSURE_ARG(printSettings);
 
     ParamBlock block;
     nsresult rv = block.Init();
     if (NS_FAILED(rv))
       return rv;
 
     block->SetInt(0, 0);
     return DoDialog(parent, block, nullptr, printSettings, kPrinterPropertiesURL);
-   
+
 }
 
 nsresult
 nsPrintingPromptService::DoDialog(mozIDOMWindowProxy *aParent,
-                                  nsIDialogParamBlock *aParamBlock, 
-                                  nsIWebBrowserPrint *aWebBrowserPrint, 
+                                  nsIDialogParamBlock *aParamBlock,
+                                  nsIWebBrowserPrint *aWebBrowserPrint,
                                   nsIPrintSettings* aPS,
                                   const char *aChromeURL)
 {
     NS_ENSURE_ARG(aParamBlock);
     NS_ENSURE_ARG(aPS);
     NS_ENSURE_ARG(aChromeURL);
 
     if (!mWatcher)
         return NS_ERROR_FAILURE;
 
     // get a parent, if at all possible
     // (though we'd rather this didn't fail, it's OK if it does. so there's
     // no failure or null check.)
     nsCOMPtr<mozIDOMWindowProxy> activeParent;
-    if (!aParent) 
+    if (!aParent)
     {
         mWatcher->GetActiveWindow(getter_AddRefs(activeParent));
         aParent = activeParent;
     }
 
-    // create a nsIMutableArray of the parameters 
+    // create a nsIMutableArray of the parameters
     // being passed to the window
     nsCOMPtr<nsIMutableArray> array = nsArray::Create();
 
     nsCOMPtr<nsISupports> psSupports(do_QueryInterface(aPS));
     NS_ASSERTION(psSupports, "PrintSettings must be a supports");
     array->AppendElement(psSupports, /*weak =*/ false);
 
     if (aWebBrowserPrint) {
@@ -228,71 +228,71 @@ nsPrintingPromptService::DoDialog(mozIDO
 
     nsCOMPtr<mozIDOMWindowProxy> dialog;
     nsresult rv = mWatcher->OpenWindow(aParent, aChromeURL, "_blank",
                               "centerscreen,chrome,modal,titlebar", array,
                               getter_AddRefs(dialog));
 
     // if aWebBrowserPrint is not null then we are printing
     // so we want to pass back NS_ERROR_ABORT on cancel
-    if (NS_SUCCEEDED(rv) && aWebBrowserPrint) 
+    if (NS_SUCCEEDED(rv) && aWebBrowserPrint)
     {
         int32_t status;
         aParamBlock->GetInt(0, &status);
         return status == 0?NS_ERROR_ABORT:NS_OK;
     }
 
     return rv;
 }
 
 //////////////////////////////////////////////////////////////////////
 // nsIWebProgressListener
 //////////////////////////////////////////////////////////////////////
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
   if ((aStateFlags & STATE_STOP) && mWebProgressListener) {
     mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
     if (mPrintProgress) {
       mPrintProgress->CloseProgressDialog(true);
     }
     mPrintProgress       = nullptr;
     mWebProgressListener = nullptr;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
   if (mWebProgressListener) {
     return mWebProgressListener->OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
   if (mWebProgressListener) {
     return mWebProgressListener->OnLocationChange(aWebProgress, aRequest, location, aFlags);
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStatusChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsresult aStatus, const char16_t *aMessage)
 {
   if (mWebProgressListener) {
     return mWebProgressListener->OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
   if (mWebProgressListener) {
     return mWebProgressListener->OnSecurityChange(aWebProgress, aRequest, state);
   }
   return NS_OK;
 }
--- a/toolkit/components/printingui/unixshared/nsPrintingPromptService.h
+++ b/toolkit/components/printingui/unixshared/nsPrintingPromptService.h
@@ -39,18 +39,18 @@ public:
   NS_DECL_NSIWEBPROGRESSLISTENER
   NS_DECL_ISUPPORTS
 
 protected:
   virtual ~nsPrintingPromptService();
 
 private:
   nsresult DoDialog(mozIDOMWindowProxy *aParent,
-                    nsIDialogParamBlock *aParamBlock, 
-                    nsIWebBrowserPrint *aWebBrowserPrint, 
+                    nsIDialogParamBlock *aParamBlock,
+                    nsIWebBrowserPrint *aWebBrowserPrint,
                     nsIPrintSettings* aPS,
                     const char *aChromeURL);
 
   nsCOMPtr<nsIWindowWatcher> mWatcher;
   nsCOMPtr<nsIPrintProgress> mPrintProgress;
   nsCOMPtr<nsIWebProgressListener> mWebProgressListener;
 };
 
--- a/toolkit/components/printingui/win/nsPrintDialogUtil.cpp
+++ b/toolkit/components/printingui/win/nsPrintDialogUtil.cpp
@@ -39,17 +39,17 @@ WIN_LIBS=                               
 
 #include "nsIPrefService.h"
 #include "nsIPrefBranch.h"
 
 #include "nsCRT.h"
 #include "prenv.h" /* for PR_GetEnv */
 
 #include <windows.h>
-#include <winspool.h> 
+#include <winspool.h>
 
 // For Localization
 #include "nsIStringBundle.h"
 
 // For NS_CopyUnicodeToNative
 #include "nsNativeCharsetUtils.h"
 
 // This is for extending the dialog
@@ -82,39 +82,39 @@ static HWND gParentWnd = nullptr;
 static nsresult
 GetLocalizedBundle(const char * aPropFileName, nsIStringBundle** aStrBundle)
 {
   NS_ENSURE_ARG_POINTER(aPropFileName);
   NS_ENSURE_ARG_POINTER(aStrBundle);
 
   nsresult rv;
   nsCOMPtr<nsIStringBundle> bundle;
-  
+
 
   // Create bundle
-  nsCOMPtr<nsIStringBundleService> stringService = 
+  nsCOMPtr<nsIStringBundleService> stringService =
     do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
   if (NS_SUCCEEDED(rv) && stringService) {
     rv = stringService->CreateBundle(aPropFileName, aStrBundle);
   }
-  
+
   return rv;
 }
 
 //--------------------------------------------------------
-// Return localized string 
+// Return localized string
 static nsresult
 GetLocalizedString(nsIStringBundle* aStrBundle, const char* aKey, nsString& oVal)
 {
   NS_ENSURE_ARG_POINTER(aStrBundle);
   NS_ENSURE_ARG_POINTER(aKey);
 
   // Determine default label from string bundle
   nsXPIDLString valUni;
-  nsAutoString key; 
+  nsAutoString key;
   key.AssignWithConversion(aKey);
   nsresult rv = aStrBundle->GetStringFromName(key.get(), getter_Copies(valUni));
   if (NS_SUCCEEDED(rv) && valUni) {
     oVal.Assign(valUni);
   } else {
     oVal.Truncate();
   }
   return rv;
@@ -127,37 +127,37 @@ static void SetTextOnWnd(HWND aControl, 
   nsAutoCString text;
   if (NS_SUCCEEDED(NS_CopyUnicodeToNative(aStr, text))) {
     ::SetWindowText(aControl, text.get());
   }
 }
 
 //--------------------------------------------------------
 // Will get the control and localized string by "key"
-static void SetText(HWND             aParent, 
-                    UINT             aId, 
+static void SetText(HWND             aParent,
+                    UINT             aId,
                     nsIStringBundle* aStrBundle,
-                    const char*      aKey) 
+                    const char*      aKey)
 {
   HWND wnd = GetDlgItem (aParent, aId);
   if (!wnd) {
     return;
   }
   nsAutoString str;
   nsresult rv = GetLocalizedString(aStrBundle, aKey, str);
   if (NS_SUCCEEDED(rv)) {
     SetTextOnWnd(wnd, str);
   }
 }
 
 //--------------------------------------------------------
-static void SetRadio(HWND         aParent, 
-                     UINT         aId, 
+static void SetRadio(HWND         aParent,
+                     UINT         aId,
                      bool         aIsSet,
-                     bool         isEnabled = true) 
+                     bool         isEnabled = true)
 {
   HWND wnd = ::GetDlgItem (aParent, aId);
   if (!wnd) {
     return;
   }
   if (!isEnabled) {
     ::EnableWindow(wnd, FALSE);
     return;
@@ -181,17 +181,17 @@ static void SetRadioOfGroup(HWND aDlg, i
 }
 
 //--------------------------------------------------------
 typedef struct {
   const char * mKeyStr;
   long   mKeyId;
 } PropKeyInfo;
 
-// These are the control ids used in the dialog and 
+// These are the control ids used in the dialog and
 // defined by MS-Windows in commdlg.h
 static PropKeyInfo gAllPropKeys[] = {
     {"printFramesTitleWindows", grp3},
     {"asLaidOutWindows", rad4},
     {"selectedFrameWindows", rad5},
     {"separateFramesWindows", rad6},
     {nullptr, 0}};
 
@@ -218,104 +218,104 @@ static void Show(HWND aWnd, bool bState)
     ::ShowWindow(aWnd, bState?SW_SHOW:SW_HIDE);
   }
 }
 
 //--------------------------------------------------------
 // Create a child window "control"
 static HWND CreateControl(LPCTSTR          aType,
                           DWORD            aStyle,
-                          HINSTANCE        aHInst, 
-                          HWND             aHdlg, 
-                          int              aId, 
-                          const nsAString& aStr, 
+                          HINSTANCE        aHInst,
+                          HWND             aHdlg,
+                          int              aId,
+                          const nsAString& aStr,
                           const nsIntRect& aRect)
 {
   nsAutoCString str;
   if (NS_FAILED(NS_CopyUnicodeToNative(aStr, str)))
     return nullptr;
 
   HWND hWnd = ::CreateWindow (aType, str.get(),
                               WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | aStyle,
                               aRect.x, aRect.y, aRect.width, aRect.height,
                               (HWND)aHdlg, (HMENU)(intptr_t)aId,
                               aHInst, nullptr);
   if (hWnd == nullptr) return nullptr;
 
-  // get the native font for the dialog and 
+  // get the native font for the dialog and
   // set it into the new control
   HFONT hFont = (HFONT)::SendMessage(aHdlg, WM_GETFONT, (WPARAM)0, (LPARAM)0);
   if (hFont != nullptr) {
     ::SendMessage(hWnd, WM_SETFONT, (WPARAM) hFont, (LPARAM)0);
   }
   return hWnd;
 }
 
 //--------------------------------------------------------
 // Create a Radio Button
-static HWND CreateRadioBtn(HINSTANCE        aHInst, 
-                           HWND             aHdlg, 
-                           int              aId, 
-                           const char*      aStr, 
+static HWND CreateRadioBtn(HINSTANCE        aHInst,
+                           HWND             aHdlg,
+                           int              aId,
+                           const char*      aStr,
                            const nsIntRect& aRect)
 {
   nsString cStr;
   cStr.AssignWithConversion(aStr);
   return CreateControl("BUTTON", BS_RADIOBUTTON, aHInst, aHdlg, aId, cStr, aRect);
 }
 
 //--------------------------------------------------------
 // Create a Group Box
-static HWND CreateGroupBox(HINSTANCE        aHInst, 
-                           HWND             aHdlg, 
-                           int              aId, 
-                           const nsAString& aStr, 
+static HWND CreateGroupBox(HINSTANCE        aHInst,
+                           HWND             aHdlg,
+                           int              aId,
+                           const nsAString& aStr,
                            const nsIntRect& aRect)
 {
   return CreateControl("BUTTON", BS_GROUPBOX, aHInst, aHdlg, aId, aStr, aRect);
 }
 
 //--------------------------------------------------------
 // Localizes and initializes the radio buttons and group
-static void InitializeExtendedDialog(HWND hdlg, int16_t aHowToEnableFrameUI) 
+static void InitializeExtendedDialog(HWND hdlg, int16_t aHowToEnableFrameUI)
 {
   MOZ_ASSERT(aHowToEnableFrameUI != nsIPrintSettings::kFrameEnableNone,
              "should not be called");
 
   // Localize the new controls in the print dialog
   nsCOMPtr<nsIStringBundle> strBundle;
   if (NS_SUCCEEDED(GetLocalizedBundle(PRINTDLG_PROPERTIES, getter_AddRefs(strBundle)))) {
     int32_t i = 0;
     while (gAllPropKeys[i].mKeyStr != nullptr) {
       SetText(hdlg, gAllPropKeys[i].mKeyId, strBundle, gAllPropKeys[i].mKeyStr);
       i++;
     }
   }
 
   // Set up radio buttons
   if (aHowToEnableFrameUI == nsIPrintSettings::kFrameEnableAll) {
-    SetRadio(hdlg, rad4, false);  
-    SetRadio(hdlg, rad5, true); 
+    SetRadio(hdlg, rad4, false);
+    SetRadio(hdlg, rad5, true);
     SetRadio(hdlg, rad6, false);
     // set default so user doesn't have to actually press on it
     gFrameSelectedRadioBtn = rad5;
 
   } else { // nsIPrintSettings::kFrameEnableAsIsAndEach
-    SetRadio(hdlg, rad4, false);  
-    SetRadio(hdlg, rad5, false, false); 
+    SetRadio(hdlg, rad4, false);
+    SetRadio(hdlg, rad5, false, false);
     SetRadio(hdlg, rad6, true);
     // set default so user doesn't have to actually press on it
     gFrameSelectedRadioBtn = rad6;
   }
 }
 
 
 //--------------------------------------------------------
 // Special Hook Procedure for handling the print dialog messages
-static UINT CALLBACK PrintHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) 
+static UINT CALLBACK PrintHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
 {
 
   if (uiMsg == WM_COMMAND) {
     UINT id = LOWORD(wParam);
     if (id == rad4 || id == rad5 || id == rad6) {
       gFrameSelectedRadioBtn = id;
       SetRadioOfGroup(hdlg, id);
     }
@@ -366,26 +366,26 @@ static UINT CALLBACK PrintHookProc(HWND 
     GetLocalRect(wnd, prtRect, hdlg);
 
 
     // calculate various different "gaps" for layout purposes
 
     int rbGap     = rad3Rect.top - rad1Rect.bottom;     // gap between radiobtns
     int grpBotGap = dlgRect.bottom - rad2Rect.bottom;   // gap from bottom rb to bottom of grpbox
     int grpGap    = dlgRect.top - prtRect.bottom ;      // gap between group boxes
-    int top       = dlgRect.bottom + grpGap;            
+    int top       = dlgRect.bottom + grpGap;
     int radHgt    = rad1Rect.bottom - rad1Rect.top + 1; // top of new group box
     int y         = top+(rad1Rect.top-dlgRect.top);     // starting pos of first radio
     int rbWidth   = dlgRect.right - rad1Rect.left - 5;  // measure from rb left to the edge of the groupbox
                                                         // (5 is arbitrary)
     nsIntRect rect;
 
     // Create and position the radio buttons
     //
-    // If any one control cannot be created then 
+    // If any one control cannot be created then
     // hide the others and bail out
     //
     rect.SetRect(rad1Rect.left, y, rbWidth,radHgt);
     HWND rad4Wnd = CreateRadioBtn(hInst, hdlg, rad4, kAsLaidOutOnScreenStr, rect);
     if (rad4Wnd == nullptr) return 0L;
     y += radHgt + rbGap;
 
     rect.SetRect(rad1Rect.left, y, rbWidth, radHgt);
@@ -413,43 +413,43 @@ static UINT CALLBACK PrintHookProc(HWND 
       Show(rad5Wnd, FALSE); // hide
       Show(rad6Wnd, FALSE); // hide
       return 0L;
     }
 
     // Here we figure out the old height of the dlg
     // then figure its gap from the old grpbx to the bottom
     // then size the dlg
-    RECT pr, cr; 
+    RECT pr, cr;
     ::GetWindowRect(hdlg, &pr);
     ::GetClientRect(hdlg, &cr);
 
     int dlgHgt = (cr.bottom - cr.top) + 1;
     int bottomGap = dlgHgt - okRect.bottom;
     pr.bottom += (dlgRect.bottom-dlgRect.top) + grpGap + 1 - (dlgHgt-dlgRect.bottom) + bottomGap;
 
-    ::SetWindowPos(hdlg, nullptr, pr.left, pr.top, pr.right-pr.left+1, pr.bottom-pr.top+1, 
+    ::SetWindowPos(hdlg, nullptr, pr.left, pr.top, pr.right-pr.left+1, pr.bottom-pr.top+1,
                    SWP_NOMOVE|SWP_NOREDRAW|SWP_NOZORDER);
 
     // figure out the new height of the dialog
     ::GetClientRect(hdlg, &cr);
     dlgHgt = (cr.bottom - cr.top) + 1;
- 
+
     // Reposition the OK and Cancel btns
     int okHgt = okRect.bottom - okRect.top + 1;
-    ::SetWindowPos(okWnd, nullptr, okRect.left, dlgHgt-bottomGap-okHgt, 0, 0, 
+    ::SetWindowPos(okWnd, nullptr, okRect.left, dlgHgt-bottomGap-okHgt, 0, 0,
                    SWP_NOSIZE|SWP_NOREDRAW|SWP_NOZORDER);
 
     HWND cancelWnd = ::GetDlgItem(hdlg, IDCANCEL);
     if (cancelWnd == nullptr) return 0L;
 
     RECT cancelRect;
     GetLocalRect(cancelWnd, cancelRect, hdlg);
     int cancelHgt = cancelRect.bottom - cancelRect.top + 1;
-    ::SetWindowPos(cancelWnd, nullptr, cancelRect.left, dlgHgt-bottomGap-cancelHgt, 0, 0, 
+    ::SetWindowPos(cancelWnd, nullptr, cancelRect.left, dlgHgt-bottomGap-cancelHgt, 0, 0,
                    SWP_NOSIZE|SWP_NOREDRAW|SWP_NOZORDER);
 
     // localize and initialize the groupbox and radiobuttons
     InitializeExtendedDialog(hdlg, howToEnableFrameUI);
 
     // Looks like we were able to extend the dialog
     gDialogWasExtended = true;
     return TRUE;
@@ -457,17 +457,17 @@ static UINT CALLBACK PrintHookProc(HWND 
   return 0L;
 }
 
 //----------------------------------------------------------------------------------
 // Returns a Global Moveable Memory Handle to a DevMode
 // from the Printer by the name of aPrintName
 //
 // NOTE:
-//   This function assumes that aPrintName has already been converted from 
+//   This function assumes that aPrintName has already been converted from
 //   unicode
 //
 static nsReturnRef<nsHGLOBAL>
 CreateGlobalDevModeAndInit(const nsXPIDLString& aPrintName,
                            nsIPrintSettings* aPS)
 {
   nsHPRINTER hPrinter = nullptr;
   // const cast kludge for silly Win32 api's
@@ -557,17 +557,17 @@ static bool ShouldExtendPrintDialog()
   bool result;
   rv = prefBranch->GetBoolPref("print.extend_native_print_dialog", &result);
   NS_ENSURE_SUCCESS(rv, true);
   return result;
 }
 
 //------------------------------------------------------------------
 // Displays the native Print Dialog
-static nsresult 
+static nsresult
 ShowNativePrintDialog(HWND              aHWnd,
                       nsIPrintSettings* aPrintSettings)
 {
   //NS_ENSURE_ARG_POINTER(aHWnd);
   NS_ENSURE_ARG_POINTER(aPrintSettings);
 
   gDialogWasExtended  = false;
 
@@ -621,32 +621,32 @@ ShowNativePrintDialog(HWND              
   PRINTDLGW  prntdlg;
   memset(&prntdlg, 0, sizeof(PRINTDLGW));
 
   prntdlg.lStructSize = sizeof(prntdlg);
   prntdlg.hwndOwner   = aHWnd;
   prntdlg.hDevMode    = autoDevMode.get();
   prntdlg.hDevNames   = hDevNames;
   prntdlg.hDC         = nullptr;
-  prntdlg.Flags       = PD_ALLPAGES | PD_RETURNIC | 
+  prntdlg.Flags       = PD_ALLPAGES | PD_RETURNIC |
                         PD_USEDEVMODECOPIESANDCOLLATE | PD_COLLATE;
 
   // if there is a current selection then enable the "Selection" radio button
   int16_t howToEnableFrameUI = nsIPrintSettings::kFrameEnableNone;
   bool isOn;
   aPrintSettings->GetPrintOptions(nsIPrintSettings::kEnableSelectionRB, &isOn);
   if (!isOn) {
     prntdlg.Flags |= PD_NOSELECTION;
   }
   aPrintSettings->GetHowToEnableFrameUI(&howToEnableFrameUI);
 
   int32_t pg = 1;
   aPrintSettings->GetStartPageRange(&pg);
   prntdlg.nFromPage           = pg;
-  
+
   aPrintSettings->GetEndPageRange(&pg);
   prntdlg.nToPage             = pg;
 
   prntdlg.nMinPage            = 1;
   prntdlg.nMaxPage            = 0xFFFF;
   prntdlg.nCopies             = 1;
   prntdlg.lpfnSetupHook       = nullptr;
   prntdlg.lpSetupTemplateName = nullptr;
@@ -735,23 +735,23 @@ ShowNativePrintDialog(HWND              
       aPrintSettings->SetPrintRange(nsIPrintSettings::kRangeAllPages);
     }
 
     if (howToEnableFrameUI != nsIPrintSettings::kFrameEnableNone) {
       // make sure the dialog got extended
       if (gDialogWasExtended) {
         // check to see about the frame radio buttons
         switch (gFrameSelectedRadioBtn) {
-          case rad4: 
+          case rad4:
             aPrintSettings->SetPrintFrameType(nsIPrintSettings::kFramesAsIs);
             break;
-          case rad5: 
+          case rad5:
             aPrintSettings->SetPrintFrameType(nsIPrintSettings::kSelectedFrame);
             break;
-          case rad6: 
+          case rad6:
             aPrintSettings->SetPrintFrameType(nsIPrintSettings::kEachFrameSep);
             break;
         } // switch
       } else {
         // if it didn't get extended then have it default to printing
         // each frame separately
         aPrintSettings->SetPrintFrameType(nsIPrintSettings::kEachFrameSep);
       }
@@ -776,39 +776,39 @@ ShowNativePrintDialog(HWND              
     bool    printAllPages  = prntdlg.Flags & PD_ALLPAGES;
     bool    printNumPages  = prntdlg.Flags & PD_PAGENUMS;
     int32_t fromPageNum    = 0;
     int32_t toPageNum      = 0;
 
     if (printNumPages) {
       fromPageNum = prntdlg.nFromPage;
       toPageNum   = prntdlg.nToPage;
-    } 
+    }
     if (printSelection) {
       printf("Printing the selection\n");
 
     } else if (printAllPages) {
       printf("Printing all the pages\n");
 
     } else {
       printf("Printing from page no. %d to %d\n", fromPageNum, toPageNum);
     }
 #endif
-    
+
   } else {
     ::SetFocus(aHWnd);
     aPrintSettings->SetIsCancelled(true);
     return NS_ERROR_ABORT;
   }
 
   return NS_OK;
 }
 
 //------------------------------------------------------------------
-static void 
+static void
 PrepareForPrintDialog(nsIWebBrowserPrint* aWebBrowserPrint, nsIPrintSettings* aPS)
 {
   NS_ASSERTION(aWebBrowserPrint, "Can't be null");
   NS_ASSERTION(aPS, "Can't be null");
 
   bool isFramesetDocument;
   bool isFramesetFrameSelected;
   bool isIFrameSelected;
--- a/toolkit/components/printingui/win/nsPrintProgress.cpp
+++ b/toolkit/components/printingui/win/nsPrintProgress.cpp
@@ -66,40 +66,40 @@ nsPrintProgress::nsPrintProgress()
 
 nsPrintProgress::~nsPrintProgress()
 {
   (void)ReleaseListeners();
 }
 
 NS_IMETHODIMP nsPrintProgress::OpenProgressDialog(mozIDOMWindowProxy *parent,
                                                   const char *dialogURL,
-                                                  nsISupports *parameters, 
-                                                  nsIObserver *openDialogObserver, 
+                                                  nsISupports *parameters,
+                                                  nsIObserver *openDialogObserver,
                                                   bool *notifyOnOpen)
 {
   *notifyOnOpen = true;
   m_observer = openDialogObserver;
 
   nsresult rv = NS_ERROR_FAILURE;
-  
+
   if (m_dialog)
     return NS_ERROR_ALREADY_INITIALIZED;
-  
+
   if (!dialogURL || !*dialogURL)
     return NS_ERROR_INVALID_ARG;
 
   if (parent)
   {
     // Set up window.arguments[0]...
     nsCOMPtr<nsIMutableArray> array = nsArray::Create();
 
     nsCOMPtr<nsISupportsInterfacePointer> ifptr =
       do_CreateInstance(NS_SUPPORTS_INTERFACE_POINTER_CONTRACTID, &rv);
     NS_ENSURE_SUCCESS(rv, rv);
-    
+
     ifptr->SetData(static_cast<nsIPrintProgress*>(this));
     ifptr->SetDataIID(&NS_GET_IID(nsIPrintProgress));
 
     array->AppendElement(ifptr, /*weak =*/ false);
 
     array->AppendElement(parameters, /*weak = */ false);
 
     // We will set the opener of the dialog to be the nsIDOMWindow for the
@@ -144,17 +144,17 @@ NS_IMETHODIMP nsPrintProgress::GetPrompt
   NS_ENSURE_ARG_POINTER(_retval);
   *_retval = nullptr;
 
   if (! m_closeProgress && m_dialog) {
     nsCOMPtr<nsPIDOMWindowOuter> window = do_QueryInterface(m_dialog);
     MOZ_ASSERT(window);
     return window->GetPrompter(_retval);
   }
-    
+
   return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsPrintProgress::GetProcessCanceledByUser(bool *aProcessCanceledByUser)
 {
   NS_ENSURE_ARG_POINTER(aProcessCanceledByUser);
   *aProcessCanceledByUser = m_processCanceled;
   return NS_OK;
@@ -165,73 +165,73 @@ NS_IMETHODIMP nsPrintProgress::SetProces
   OnStateChange(nullptr, nullptr, nsIWebProgressListener::STATE_STOP, NS_OK);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::RegisterListener(nsIWebProgressListener * listener)
 {
   if (!listener) //Nothing to do with a null listener!
     return NS_OK;
-  
+
   m_listenerList.AppendObject(listener);
   if (m_closeProgress || m_processCanceled)
     listener->OnStateChange(nullptr, nullptr,
                             nsIWebProgressListener::STATE_STOP, NS_OK);
   else
   {
     listener->OnStatusChange(nullptr, nullptr, NS_OK, m_pendingStatus.get());
     if (m_pendingStateFlags != -1)
       listener->OnStateChange(nullptr, nullptr, m_pendingStateFlags, m_pendingStateValue);
   }
-    
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::UnregisterListener(nsIWebProgressListener *listener)
 {
   if (listener)
     m_listenerList.RemoveObject(listener);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::DoneIniting()
 {
   if (m_observer) {
     m_observer->Observe(nullptr, nullptr, nullptr);
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
   m_pendingStateFlags = aStateFlags;
   m_pendingStateValue = aStatus;
-  
+
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
     return NS_OK;
 }
 
@@ -242,17 +242,17 @@ NS_IMETHODIMP nsPrintProgress::OnStatusC
 
   uint32_t count = m_listenerList.Count();
   for (uint32_t i = count - 1; i < count; i --)
   {
     nsCOMPtr<nsIWebProgressListener> progressListener = m_listenerList.SafeObjectAt(i);
     if (progressListener)
       progressListener->OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
   }
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgress::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
     return NS_OK;
 }
 
--- a/toolkit/components/printingui/win/nsPrintProgress.h
+++ b/toolkit/components/printingui/win/nsPrintProgress.h
@@ -13,17 +13,17 @@
 #include "nsIDOMWindow.h"
 #include "nsIPrintStatusFeedback.h"
 #include "nsString.h"
 #include "nsIWindowWatcher.h"
 #include "nsIObserver.h"
 
 class nsPrintProgress : public nsIPrintProgress, public nsIPrintStatusFeedback
 {
-public: 
+public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIPRINTPROGRESS
   NS_DECL_NSIWEBPROGRESSLISTENER
   NS_DECL_NSIPRINTSTATUSFEEDBACK
 
 	nsPrintProgress();
 	virtual ~nsPrintProgress();
 
--- a/toolkit/components/printingui/win/nsPrintProgressParams.cpp
+++ b/toolkit/components/printingui/win/nsPrintProgressParams.cpp
@@ -15,31 +15,31 @@ nsPrintProgressParams::nsPrintProgressPa
 
 nsPrintProgressParams::~nsPrintProgressParams()
 {
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocTitle(char16_t * *aDocTitle)
 {
   NS_ENSURE_ARG(aDocTitle);
-  
+
   *aDocTitle = ToNewUnicode(mDocTitle);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocTitle(const char16_t * aDocTitle)
 {
   mDocTitle = aDocTitle;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::GetDocURL(char16_t * *aDocURL)
 {
   NS_ENSURE_ARG(aDocURL);
-  
+
   *aDocURL = ToNewUnicode(mDocURL);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPrintProgressParams::SetDocURL(const char16_t * aDocURL)
 {
   mDocURL = aDocURL;
   return NS_OK;
--- a/toolkit/components/printingui/win/nsPrintProgressParams.h
+++ b/toolkit/components/printingui/win/nsPrintProgressParams.h
@@ -8,17 +8,17 @@
 
 #include "nsIPrintProgressParams.h"
 #include "nsString.h"
 
 class nsPrintProgressParams : public nsIPrintProgressParams
 {
 	virtual ~nsPrintProgressParams();
 
-public: 
+public:
 	NS_DECL_ISUPPORTS
   NS_DECL_NSIPRINTPROGRESSPARAMS
 
 	nsPrintProgressParams();
 
 private:
   nsString mDocTitle;
   nsString mDocURL;
--- a/toolkit/components/printingui/win/nsPrintingPromptService.cpp
+++ b/toolkit/components/printingui/win/nsPrintingPromptService.cpp
@@ -43,39 +43,39 @@ static const char *kPageSetupDialogURL  
 
 /****************************************************************
  ************************* ParamBlock ***************************
  ****************************************************************/
 
 class ParamBlock {
 
 public:
-    ParamBlock() 
+    ParamBlock()
     {
         mBlock = 0;
     }
-    ~ParamBlock() 
+    ~ParamBlock()
     {
         NS_IF_RELEASE(mBlock);
     }
     nsresult Init() {
       return CallCreateInstance(NS_DIALOGPARAMBLOCK_CONTRACTID, &mBlock);
     }
     nsIDialogParamBlock * operator->() const MOZ_NO_ADDREF_RELEASE_ON_RETURN { return mBlock; }
     operator nsIDialogParamBlock * const ()  { return mBlock; }
 
 private:
     nsIDialogParamBlock *mBlock;
 };
 
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMPL_ISUPPORTS(nsPrintingPromptService, nsIPrintingPromptService, nsIWebProgressListener)
 
-nsPrintingPromptService::nsPrintingPromptService() 
+nsPrintingPromptService::nsPrintingPromptService()
 {
 }
 
 //-----------------------------------------------------------
 nsPrintingPromptService::~nsPrintingPromptService()
 {
 }
 
@@ -92,27 +92,27 @@ nsPrintingPromptService::Init()
 HWND
 nsPrintingPromptService::GetHWNDForDOMWindow(mozIDOMWindowProxy *aWindow)
 {
     nsCOMPtr<nsIWebBrowserChrome> chrome;
 
     // We might be embedded so check this path first
     if (mWatcher) {
         nsCOMPtr<mozIDOMWindowProxy> fosterParent;
-        if (!aWindow) 
+        if (!aWindow)
         {   // it will be a dependent window. try to find a foster parent.
             mWatcher->GetActiveWindow(getter_AddRefs(fosterParent));
             aWindow = fosterParent;
         }
         mWatcher->GetChromeForWindow(aWindow, getter_AddRefs(chrome));
     }
 
     if (chrome) {
         nsCOMPtr<nsIEmbeddingSiteWindow> site(do_QueryInterface(chrome));
-        if (site) 
+        if (site)
         {
             HWND w;
             site->GetSiteWindow(reinterpret_cast<void **>(&w));
             return w;
         }
     }
 
     // Now we might be the Browser so check this path
@@ -140,30 +140,30 @@ nsPrintingPromptService::GetHWNDForDOMWi
 
 }
 
 
 ///////////////////////////////////////////////////////////////////////////////
 // nsIPrintingPromptService
 
 //-----------------------------------------------------------
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrintDialog(mozIDOMWindowProxy *parent, nsIWebBrowserPrint *webBrowserPrint, nsIPrintSettings *printSettings)
 {
     NS_ENSURE_ARG(parent);
 
     HWND hWnd = GetHWNDForDOMWindow(parent);
     NS_ASSERTION(hWnd, "Couldn't get native window for PRint Dialog!");
 
     return NativeShowPrintDialog(hWnd, webBrowserPrint, printSettings);
 }
 
 
-NS_IMETHODIMP 
-nsPrintingPromptService::ShowProgress(mozIDOMWindowProxy*      parent, 
+NS_IMETHODIMP
+nsPrintingPromptService::ShowProgress(mozIDOMWindowProxy*      parent,
                                       nsIWebBrowserPrint*      webBrowserPrint,    // ok to be null
                                       nsIPrintSettings*        printSettings,      // ok to be null
                                       nsIObserver*             openDialogObserver, // ok to be null
                                       bool                     isForPrinting,
                                       nsIWebProgressListener** webProgressListener,
                                       nsIPrintProgressParams** printProgressParams,
                                       bool*                  notifyOnOpen)
 {
@@ -197,73 +197,73 @@ nsPrintingPromptService::ShowProgress(mo
     }
 
     prtProgressParams.forget(printProgressParams);
     NS_ADDREF(*webProgressListener = this);
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPageSetup(mozIDOMWindowProxy *parent, nsIPrintSettings *printSettings, nsIObserver *aObs)
 {
     NS_ENSURE_ARG(printSettings);
 
     ParamBlock block;
     nsresult rv = block.Init();
     if (NS_FAILED(rv))
       return rv;
 
     block->SetInt(0, 0);
     rv = DoDialog(parent, block, printSettings, kPageSetupDialogURL);
 
     // if aWebBrowserPrint is not null then we are printing
     // so we want to pass back NS_ERROR_ABORT on cancel
-    if (NS_SUCCEEDED(rv)) 
+    if (NS_SUCCEEDED(rv))
     {
       int32_t status;
       block->GetInt(0, &status);
       return status == 0?NS_ERROR_ABORT:NS_OK;
     }
 
     return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::ShowPrinterProperties(mozIDOMWindowProxy *parent, const char16_t *printerName, nsIPrintSettings *printSettings)
 {
     return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 //-----------------------------------------------------------
 // Helper to Fly XP Dialog
 nsresult
 nsPrintingPromptService::DoDialog(mozIDOMWindowProxy *aParent,
-                                  nsIDialogParamBlock *aParamBlock, 
+                                  nsIDialogParamBlock *aParamBlock,
                                   nsIPrintSettings* aPS,
                                   const char *aChromeURL)
 {
     NS_ENSURE_ARG(aParamBlock);
     NS_ENSURE_ARG(aPS);
     NS_ENSURE_ARG(aChromeURL);
 
     if (!mWatcher)
         return NS_ERROR_FAILURE;
 
     // get a parent, if at all possible
     // (though we'd rather this didn't fail, it's OK if it does. so there's
     // no failure or null check.)
     nsCOMPtr<mozIDOMWindowProxy> activeParent; // retain ownership for method lifetime
-    if (!aParent) 
+    if (!aParent)
     {
         mWatcher->GetActiveWindow(getter_AddRefs(activeParent));
         aParent = activeParent;
     }
 
-    // create a nsIMutableArray of the parameters 
+    // create a nsIMutableArray of the parameters
     // being passed to the window
     nsCOMPtr<nsIMutableArray> array = nsArray::Create();
 
     nsCOMPtr<nsISupports> psSupports(do_QueryInterface(aPS));
     NS_ASSERTION(psSupports, "PrintSettings must be a supports");
     array->AppendElement(psSupports, /*weak =*/ false);
 
     nsCOMPtr<nsISupports> blkSupps(do_QueryInterface(aParamBlock));
@@ -277,65 +277,65 @@ nsPrintingPromptService::DoDialog(mozIDO
 
     return rv;
 }
 
 //////////////////////////////////////////////////////////////////////
 // nsIWebProgressListener
 //////////////////////////////////////////////////////////////////////
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStateChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t aStateFlags, nsresult aStatus)
 {
-    if ((aStateFlags & STATE_STOP) && mWebProgressListener) 
+    if ((aStateFlags & STATE_STOP) && mWebProgressListener)
     {
         mWebProgressListener->OnStateChange(aWebProgress, aRequest, aStateFlags, aStatus);
-        if (mPrintProgress) 
+        if (mPrintProgress)
         {
             mPrintProgress->CloseProgressDialog(true);
         }
         mPrintProgress       = nullptr;
         mWebProgressListener = nullptr;
     }
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnProgressChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, int32_t aCurSelfProgress, int32_t aMaxSelfProgress, int32_t aCurTotalProgress, int32_t aMaxTotalProgress)
 {
-  if (mWebProgressListener) 
+  if (mWebProgressListener)
   {
       return mWebProgressListener->OnProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
   }
   return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnLocationChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsIURI *location, uint32_t aFlags)
 {
-  if (mWebProgressListener) 
+  if (mWebProgressListener)
   {
       return mWebProgressListener->OnLocationChange(aWebProgress, aRequest, location, aFlags);
   }
   return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnStatusChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, nsresult aStatus, const char16_t *aMessage)
 {
-  if (mWebProgressListener) 
+  if (mWebProgressListener)
   {
       return mWebProgressListener->OnStatusChange(aWebProgress, aRequest, aStatus, aMessage);
   }
   return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsPrintingPromptService::OnSecurityChange(nsIWebProgress *aWebProgress, nsIRequest *aRequest, uint32_t state)
 {
-  if (mWebProgressListener) 
+  if (mWebProgressListener)
   {
       return mWebProgressListener->OnSecurityChange(aWebProgress, aRequest, state);
   }
   return NS_ERROR_FAILURE;
 }
 
 
--- a/toolkit/components/printingui/win/nsPrintingPromptService.h
+++ b/toolkit/components/printingui/win/nsPrintingPromptService.h
@@ -39,17 +39,17 @@ public:
 
     NS_DECL_ISUPPORTS
     NS_DECL_NSIPRINTINGPROMPTSERVICE
     NS_DECL_NSIWEBPROGRESSLISTENER
 
 private:
     HWND GetHWNDForDOMWindow(mozIDOMWindowProxy *parent);
     nsresult DoDialog(mozIDOMWindowProxy *aParent,
-                      nsIDialogParamBlock *aParamBlock, 
+                      nsIDialogParamBlock *aParamBlock,
                       nsIPrintSettings* aPS,
                       const char *aChromeURL);
 
     nsCOMPtr<nsIWindowWatcher> mWatcher;
     nsCOMPtr<nsIPrintProgress> mPrintProgress;
     nsCOMPtr<nsIWebProgressListener> mWebProgressListener;
 
 };
--- a/toolkit/components/remote/nsGTKRemoteService.h
+++ b/toolkit/components/remote/nsGTKRemoteService.h
@@ -38,12 +38,12 @@ private:
                                        GdkEventProperty *event,
                                        nsIWeakReference* aThis);
 
 
   virtual void SetDesktopStartupIDOrTimestamp(const nsACString& aDesktopStartupID,
                                               uint32_t aTimestamp) override;
 
   nsInterfaceHashtable<nsPtrHashKey<GtkWidget>, nsIWeakReference> mWindows;
-  GtkWidget* mServerWindow;  
+  GtkWidget* mServerWindow;
 };
 
 #endif // __nsGTKRemoteService_h__
--- a/toolkit/components/remote/nsXRemoteService.cpp
+++ b/toolkit/components/remote/nsXRemoteService.cpp
@@ -123,17 +123,17 @@ nsXRemoteService::XRemoteBaseStartup(con
 
     nsCOMPtr<nsIObserverService> obs(do_GetService("@mozilla.org/observer-service;1"));
     if (obs) {
       obs->AddObserver(this, "xpcom-shutdown", false);
       obs->AddObserver(this, "quit-application", false);
     }
 }
 
-void 
+void
 nsXRemoteService::HandleCommandsFor(Window aWindowId)
 {
   // set our version
   XChangeProperty(mozilla::DefaultXDisplay(), aWindowId, sMozVersionAtom, XA_STRING,
                   8, PropModeReplace, kRemoteVersion, sizeof(kRemoteVersion) - 1);
 
   // get our username
   unsigned char *logname;
--- a/toolkit/components/remote/nsXRemoteService.h
+++ b/toolkit/components/remote/nsXRemoteService.h
@@ -29,17 +29,17 @@ public:
 
 
 protected:
     nsXRemoteService();
 
     static bool HandleNewProperty(Window aWindowId,Display* aDisplay,
                                     Time aEventTime, Atom aChangedAtom,
                                     nsIWeakReference* aDomWindow);
-    
+
     void XRemoteBaseStartup(const char *aAppName, const char *aProfileName);
 
     void HandleCommandsFor(Window aWindowId);
     static nsXRemoteService *sRemoteImplementation;
 private:
     void EnsureAtoms();
     static const char* HandleCommandLine(char* aBuffer, nsIDOMWindow* aWindow,
                                          uint32_t aTimestamp);
--- a/toolkit/components/startup/nsAppStartup.cpp
+++ b/toolkit/components/startup/nsAppStartup.cpp
@@ -88,17 +88,17 @@ static NS_DEFINE_CID(kAppShellCID, NS_AP
 
 static NS_DEFINE_CID(kApplicationTracingCID,
   NS_APPLICATION_TRACING_CID);
 static NS_DEFINE_CID(kPlacesInitCompleteCID,
   NS_PLACES_INIT_COMPLETE_EVENT_CID);
 static NS_DEFINE_CID(kSessionStoreWindowRestoredCID,
   NS_SESSION_STORE_WINDOW_RESTORED_EVENT_CID);
 static NS_DEFINE_CID(kXPCOMShutdownCID,
-  NS_XPCOM_SHUTDOWN_EVENT_CID);  
+  NS_XPCOM_SHUTDOWN_EVENT_CID);
 #endif //defined(XP_WIN)
 
 using namespace mozilla;
 
 class nsAppExitEvent : public mozilla::Runnable {
 private:
   RefPtr<nsAppStartup> mService;
 
--- a/toolkit/components/startup/nsUserInfoMac.h
+++ b/toolkit/components/startup/nsUserInfoMac.h
@@ -11,15 +11,15 @@
 class nsUserInfo: public nsIUserInfo
 {
 public:
   nsUserInfo();
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIUSERINFO
 
-  nsresult GetPrimaryEmailAddress(nsCString &aEmailAddress);  
+  nsresult GetPrimaryEmailAddress(nsCString &aEmailAddress);
 
 protected:
   virtual ~nsUserInfo() {}
 };
 
 #endif /* __nsUserInfo_h */
--- a/toolkit/components/startup/nsUserInfoUnix.cpp
+++ b/toolkit/components/startup/nsUserInfoUnix.cpp
@@ -47,43 +47,43 @@ nsUserInfo::GetFullname(char16_t **aFull
 #endif
 
     nsAutoCString fullname(pw->PW_GECOS);
 
     // now try to parse the GECOS information, which will be in the form
     // Full Name, <other stuff> - eliminate the ", <other stuff>
     // also, sometimes GECOS uses "&" to mean "the user name" so do
     // the appropriate substitution
-    
+
     // truncate at first comma (field delimiter)
     int32_t index;
     if ((index = fullname.Find(",")) != kNotFound)
         fullname.Truncate(index);
 
     // replace ampersand with username
     if (pw->pw_name) {
         nsAutoCString username(pw->pw_name);
         if (!username.IsEmpty() && nsCRT::IsLower(username.CharAt(0)))
             username.SetCharAt(nsCRT::ToUpper(username.CharAt(0)), 0);
-            
+
         fullname.ReplaceSubstring("&", username.get());
     }
 
     nsAutoString unicodeFullname;
     NS_CopyNativeToUnicode(fullname, unicodeFullname);
 
     *aFullname = ToNewUnicode(unicodeFullname);
 
     if (*aFullname)
         return NS_OK;
 
     return NS_ERROR_FAILURE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsUserInfo::GetUsername(char * *aUsername)
 {
     struct passwd *pw = nullptr;
 
     // is this portable?  those are POSIX compliant calls, but I need to check
     pw = getpwuid(geteuid());
 
     if (!pw || !pw->pw_name) return NS_ERROR_FAILURE;
@@ -92,54 +92,54 @@ nsUserInfo::GetUsername(char * *aUsernam
     printf("username = %s\n", pw->pw_name);
 #endif
 
     *aUsername = strdup(pw->pw_name);
 
     return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsUserInfo::GetDomain(char * *aDomain)
 {
     nsresult rv = NS_ERROR_FAILURE;
 
     struct utsname buf;
     char *domainname = nullptr;
 
-    if (uname(&buf) < 0) { 
+    if (uname(&buf) < 0) {
         return rv;
     }
 
 #if defined(__linux__)
     domainname = buf.domainname;
 #endif
 
-    if (domainname && domainname[0]) {   
+    if (domainname && domainname[0]) {
         *aDomain = strdup(domainname);
         rv = NS_OK;
     }
     else {
         // try to get the hostname from the nodename
         // on machines that use DHCP, domainname may not be set
         // but the nodename might.
         if (buf.nodename[0]) {
             // if the nodename is foo.bar.org, use bar.org as the domain
             char *pos = strchr(buf.nodename,'.');
             if (pos) {
                 *aDomain = strdup(pos+1);
                 rv = NS_OK;
             }
         }
     }
-    
+
     return rv;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsUserInfo::GetEmailAddress(char * *aEmailAddress)
 {
     // use username + "@" + domain for the email address
 
     nsresult rv;
 
     nsAutoCString emailAddress;
     nsXPIDLCString username;
@@ -156,12 +156,12 @@ nsUserInfo::GetEmailAddress(char * *aEma
         emailAddress += "@";
         emailAddress += (const char *)domain;
     }
     else {
         return NS_ERROR_FAILURE;
     }
 
     *aEmailAddress = ToNewCString(emailAddress);
-    
+
     return NS_OK;
 }
 
--- a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp
+++ b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp
@@ -320,19 +320,19 @@ nsBrowserStatusFilter::ResetMembers()
     mUseRealProgressFlag = false;
     mMaxProgress = 0;
     mCurProgress = 0;
     mCurrentPercentage = 0;
     mStatusIsDirty = true;
 }
 
 void
-nsBrowserStatusFilter::MaybeSendProgress() 
+nsBrowserStatusFilter::MaybeSendProgress()
 {
-    if (mCurProgress > mMaxProgress || mCurProgress <= 0) 
+    if (mCurProgress > mMaxProgress || mCurProgress <= 0)
         return;
 
     // check our percentage
     int32_t percentage = (int32_t) double(mCurProgress) * 100 / mMaxProgress;
 
     // The progress meter only updates for increases greater than 3 percent
     if (percentage > (mCurrentPercentage + 3)) {
         mCurrentPercentage = percentage;
--- a/toolkit/components/statusfilter/nsBrowserStatusFilter.h
+++ b/toolkit/components/statusfilter/nsBrowserStatusFilter.h
@@ -9,17 +9,17 @@
 #include "nsIWebProgressListener2.h"
 #include "nsIWebProgress.h"
 #include "nsWeakReference.h"
 #include "nsITimer.h"
 #include "nsCOMPtr.h"
 #include "nsString.h"
 
 //-----------------------------------------------------------------------------
-// nsBrowserStatusFilter - a web progress listener implementation designed to 
+// nsBrowserStatusFilter - a web progress listener implementation designed to
 // sit between nsDocLoader and nsBrowserStatusHandler to filter out and limit
 // the frequency of certain events to improve page load performance.
 //-----------------------------------------------------------------------------
 
 class nsBrowserStatusFilter : public nsIWebProgress
                             , public nsIWebProgressListener2
                             , public nsSupportsWeakReference
 {
--- a/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
+++ b/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
@@ -340,23 +340,23 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
                            uint16_t* aResult)
 {
   *aResult = FIND_NOTFOUND;
   mFoundLink = nullptr;
   mFoundEditable = nullptr;
   mFoundRange = nullptr;
   mCurrentWindow = nullptr;
   nsCOMPtr<nsIPresShell> startingPresShell (GetPresShell());
-  if (!startingPresShell) {    
+  if (!startingPresShell) {
     nsCOMPtr<nsIDocShell> ds = do_QueryReferent(mDocShell);
     NS_ENSURE_TRUE(ds, NS_ERROR_FAILURE);
 
     startingPresShell = ds->GetPresShell();
-    mPresShell = do_GetWeakReference(startingPresShell);    
-  }  
+    mPresShell = do_GetWeakReference(startingPresShell);
+  }
 
   nsCOMPtr<nsIPresShell> presShell(aPresShell);
 
   if (!presShell) {
     presShell = startingPresShell;  // this is the current document
 
     if (!presShell)
       return NS_ERROR_FAILURE;
@@ -367,27 +367,27 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
   presShell->FlushPendingNotifications(mozilla::FlushType::Layout);
 
   RefPtr<nsPresContext> presContext = presShell->GetPresContext();
 
   if (!presContext)
     return NS_ERROR_FAILURE;
 
   nsCOMPtr<nsISelection> selection;
-  nsCOMPtr<nsISelectionController> selectionController = 
+  nsCOMPtr<nsISelectionController> selectionController =
     do_QueryReferent(mSelectionController);
   if (!selectionController) {
     GetSelection(presShell, getter_AddRefs(selectionController),
                  getter_AddRefs(selection)); // cache for reuse
     mSelectionController = do_GetWeakReference(selectionController);
   } else {
     selectionController->GetSelection(
       nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));
   }
- 
+
   nsCOMPtr<nsIDocShell> startingDocShell(presContext->GetDocShell());
   NS_ASSERTION(startingDocShell, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFind::FindItNow]");
   if (!startingDocShell)
     return NS_ERROR_FAILURE;
 
   nsCOMPtr<nsIDocShellTreeItem> rootContentTreeItem;
   nsCOMPtr<nsIDocShell> currentDocShell;
 
@@ -410,17 +410,17 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
   // Iterate up to current shell, if there's more than 1 that we're
   // dealing with
   bool hasMoreDocShells;
 
   while (NS_SUCCEEDED(docShellEnumerator->HasMoreElements(&hasMoreDocShells)) && hasMoreDocShells) {
     docShellEnumerator->GetNext(getter_AddRefs(currentContainer));
     currentDocShell = do_QueryInterface(currentContainer);
     if (!currentDocShell || currentDocShell == startingDocShell || aIsFirstVisiblePreferred)
-      break;    
+      break;
   }
 
   // ------------ Get ranges ready ----------------
   nsCOMPtr<nsIDOMRange> returnRange;
   if (NS_FAILED(GetSearchContainers(currentContainer,
                                     (!aIsFirstVisiblePreferred ||
                                      mStartFindRange) ?
                                     selectionController.get() : nullptr,
@@ -443,33 +443,33 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
     return NS_ERROR_FAILURE;
 
   mFind->SetFindBackwards(aFindPrev);
 
   while (true) {    // ----- Outer while loop: go through all docs -----
     while (true) {  // === Inner while loop: go through a single doc ===
       mFind->Find(mTypeAheadBuffer.get(), mSearchRange, mStartPointRange,
                   mEndPointRange, getter_AddRefs(returnRange));
-      
+
       if (!returnRange)
         break;  // Nothing found in this doc, go to outer loop (try next doc)
 
       // ------- Test resulting found range for success conditions ------
       bool isInsideLink = false, isStartingLink = false;
 
       if (aIsLinksOnly) {
         // Don't check if inside link when searching all text
         RangeStartsInsideLink(returnRange, presShell, &isInsideLink,
                               &isStartingLink);
       }
 
       bool usesIndependentSelection;
       if (!IsRangeVisible(presShell, presContext, returnRange,
                           aIsFirstVisiblePreferred, false,
-                          getter_AddRefs(mStartPointRange), 
+                          getter_AddRefs(mStartPointRange),
                           &usesIndependentSelection) ||
           (aIsLinksOnly && !isInsideLink) ||
           (mStartLinksOnlyPref && aIsLinksOnly && !isStartingLink)) {
         // ------ Failure ------
         // At this point mStartPointRange got updated to the first
         // visible range in the viewport.  We _may_ be able to just
         // start there, if it's not taking us in the wrong direction.
         if (aFindPrev) {
@@ -559,29 +559,29 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
         // We may be inside an editable element, and therefore the selection
         // may be controlled by a different selection controller.  Walk up the
         // chain of parent nodes to see if we find one.
         nsCOMPtr<nsIDOMNode> node;
         returnRange->GetStartContainer(getter_AddRefs(node));
         while (node) {
           nsCOMPtr<nsIDOMNSEditableElement> editable = do_QueryInterface(node);
           if (editable) {
-            // Inside an editable element.  Get the correct selection 
+            // Inside an editable element.  Get the correct selection
             // controller and selection.
             nsCOMPtr<nsIEditor> editor;
             editable->GetEditor(getter_AddRefs(editor));
             NS_ASSERTION(editor, "Editable element has no editor!");
             if (!editor) {
               break;
             }
             editor->GetSelectionController(
               getter_AddRefs(selectionController));
             if (selectionController) {
               selectionController->GetSelection(
-                nsISelectionController::SELECTION_NORMAL, 
+                nsISelectionController::SELECTION_NORMAL,
                 getter_AddRefs(selection));
             }
             mFoundEditable = do_QueryInterface(node);
 
             if (!shouldFocusEditableElement)
               break;
 
             // Otherwise move focus/caret to editable element
@@ -601,17 +601,17 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
         // and search again.
         NS_ASSERTION(mFoundEditable, "Independent selection controller on "
                      "non-editable element!");
       }
 
       if (!mFoundEditable) {
         // Not using a separate selection controller, so just get the
         // document's controller and selection.
-        GetSelection(presShell, getter_AddRefs(selectionController), 
+        GetSelection(presShell, getter_AddRefs(selectionController),
                      getter_AddRefs(selection));
       }
       mSelectionController = do_GetWeakReference(selectionController);
 
       // Select the found text
       if (selection) {
         selection->RemoveAllRanges();
         selection->AddRange(returnRange);
@@ -628,17 +628,17 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
       // must wait until after we goof with focus above before changing to
       // ATTENTION, or when we MoveFocus() and the selection is not on a
       // link, we'll blur, which will lose the ATTENTION.
       if (selectionController) {
         // Beware! This may flush notifications via synchronous
         // ScrollSelectionIntoView.
         SetSelectionModeAndRepaint(nsISelectionController::SELECTION_ATTENTION);
         selectionController->ScrollSelectionIntoView(
-          nsISelectionController::SELECTION_NORMAL, 
+          nsISelectionController::SELECTION_NORMAL,
           nsISelectionController::SELECTION_WHOLE_SELECTION,
           nsISelectionController::SCROLL_CENTER_VERTICALLY |
           nsISelectionController::SCROLL_SYNCHRONOUS);
       }
 
       mCurrentWindow = window;
       *aResult = hasWrapped ? FIND_WRAPPED : FIND_FOUND;
       return NS_OK;
@@ -661,17 +661,17 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
       }
       else if (hasTriedFirstDoc)  // Avoid potential infinite loop
         return NS_ERROR_FAILURE;  // No content doc shells
 
       // Reached last doc shell, loop around back to first doc shell
       rootContentDocShell->GetDocShellEnumerator(nsIDocShellTreeItem::typeContent,
                                                  nsIDocShell::ENUMERATE_FORWARDS,
                                                  getter_AddRefs(docShellEnumerator));
-      hasTriedFirstDoc = true;      
+      hasTriedFirstDoc = true;
     } while (docShellEnumerator);  // ==== end second inner while  ===
 
     bool continueLoop = false;
     if (currentDocShell != startingDocShell)
       continueLoop = true;  // Try next document
     else if (!hasWrapped || aIsFirstVisiblePreferred) {
       // Finished searching through docshells:
       // If aFirstVisiblePreferred == true, we may need to go through all
@@ -784,17 +784,17 @@ nsTypeAheadFind::GetSearchContainers(nsI
   if (htmlDoc) {
     nsCOMPtr<nsIDOMHTMLElement> bodyEl;
     htmlDoc->GetBody(getter_AddRefs(bodyEl));
     rootContent = do_QueryInterface(bodyEl);
   }
 
   if (!rootContent)
     rootContent = doc->GetRootElement();
- 
+
   nsCOMPtr<nsIDOMNode> rootNode(do_QueryInterface(rootContent));
 
   if (!rootNode)
     return NS_ERROR_FAILURE;
 
   if (!mSearchRange) {
     mSearchRange = new nsRange(doc);
   }
@@ -838,32 +838,32 @@ nsTypeAheadFind::GetSearchContainers(nsI
     if (selection)
       selection->GetRangeAt(0, getter_AddRefs(currentSelectionRange));
   }
 
   if (!currentSelectionRange) {
     // Ensure visible range, move forward if necessary
     // This uses ignores the return value, but usese the side effect of
     // IsRangeVisible. It returns the first visible range after searchRange
-    IsRangeVisible(presShell, presContext, mSearchRange, 
-                   aIsFirstVisiblePreferred, true, 
+    IsRangeVisible(presShell, presContext, mSearchRange,
+                   aIsFirstVisiblePreferred, true,
                    getter_AddRefs(mStartPointRange), nullptr);
   }
   else {
     int32_t startOffset;
     nsCOMPtr<nsIDOMNode> startNode;
     if (aFindPrev) {
       currentSelectionRange->GetStartContainer(getter_AddRefs(startNode));
       currentSelectionRange->GetStartOffset(&startOffset);
     } else {
       currentSelectionRange->GetEndContainer(getter_AddRefs(startNode));
       currentSelectionRange->GetEndOffset(&startOffset);
     }
     if (!startNode)
-      startNode = rootNode;    
+      startNode = rootNode;
 
     // We need to set the start point this way, other methods haven't worked
     mStartPointRange->SelectNode(startNode);
     mStartPointRange->SetStart(startNode, startOffset);
   }
 
   mStartPointRange->Collapse(true); // collapse to start
 
@@ -1029,28 +1029,28 @@ nsTypeAheadFind::Find(const nsAString& a
     // is typed
     mStartFindRange = nullptr;
     mSelectionController = nullptr;
 
     *aResult = FIND_FOUND;
     return NS_OK;
   }
 
-  bool atEnd = false;    
+  bool atEnd = false;
   if (mTypeAheadBuffer.Length()) {
     const nsAString& oldStr = Substring(mTypeAheadBuffer, 0, mTypeAheadBuffer.Length());
     const nsAString& newStr = Substring(aSearchString, 0, mTypeAheadBuffer.Length());
     if (oldStr.Equals(newStr))
       atEnd = true;
-  
+
     const nsAString& newStr2 = Substring(aSearchString, 0, aSearchString.Length());
     const nsAString& oldStr2 = Substring(mTypeAheadBuffer, 0, aSearchString.Length());
     if (oldStr2.Equals(newStr2))
       atEnd = true;
-    
+
     if (!atEnd)
       mStartFindRange = nullptr;
   }
 
   int32_t bufferLength = mTypeAheadBuffer.Length();
 
   mTypeAheadBuffer = aSearchString;
 
@@ -1196,47 +1196,47 @@ nsTypeAheadFind::IsRangeVisible(nsIDOMRa
 bool
 nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell,
                                 nsPresContext *aPresContext,
                                 nsIDOMRange *aRange, bool aMustBeInViewPort,
                                 bool aGetTopVisibleLeaf,
                                 nsIDOMRange **aFirstVisibleRange,
                                 bool *aUsesIndependentSelection)
 {
-  NS_ASSERTION(aPresShell && aPresContext && aRange && aFirstVisibleRange, 
+  NS_ASSERTION(aPresShell && aPresContext && aRange && aFirstVisibleRange,
                "params are invalid");
 
   // We need to know if the range start is visible.
-  // Otherwise, return the first visible range start 
+  // Otherwise, return the first visible range start
   // in aFirstVisibleRange
 
   aRange->CloneRange(aFirstVisibleRange);
   nsCOMPtr<nsIDOMNode> node;
   aRange->GetStartContainer(getter_AddRefs(node));
 
   nsCOMPtr<nsIContent> content(do_QueryInterface(node));
   if (!content)
     return false;
 
   nsIFrame *frame = content->GetPrimaryFrame();
-  if (!frame)    
+  if (!frame)
     return false;  // No frame! Not visible then.
 
   if (!frame->StyleVisibility()->IsVisible())
     return false;
 
   // Detect if we are _inside_ a text control, or something else with its own
   // selection controller.
   if (aUsesIndependentSelection) {
-    *aUsesIndependentSelection = 
+    *aUsesIndependentSelection =
       (frame->GetStateBits() & NS_FRAME_INDEPENDENT_SELECTION);
   }
 
   // ---- We have a frame ----
-  if (!aMustBeInViewPort)   
+  if (!aMustBeInViewPort)
     return true; //  Don't need it to be on screen, just in rendering tree
 
   // Get the next in flow frame that contains the range start
   int32_t startRangeOffset, startFrameOffset, endFrameOffset;
   aRange->GetStartOffset(&startRangeOffset);
   while (true) {
     frame->GetOffsets(startFrameOffset, endFrameOffset);
     if (startRangeOffset < endFrameOffset)
--- a/toolkit/components/typeaheadfind/nsTypeAheadFind.h
+++ b/toolkit/components/typeaheadfind/nsTypeAheadFind.h
@@ -40,29 +40,29 @@ public:
   NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsTypeAheadFind, nsITypeAheadFind)
 
 protected:
   virtual ~nsTypeAheadFind();
 
   nsresult PrefsReset();
 
   void SaveFind();
-  void PlayNotFoundSound(); 
+  void PlayNotFoundSound();
   nsresult GetWebBrowserFind(nsIDocShell *aDocShell,
                              nsIWebBrowserFind **aWebBrowserFind);
 
-  void RangeStartsInsideLink(nsIDOMRange *aRange, nsIPresShell *aPresShell, 
+  void RangeStartsInsideLink(nsIDOMRange *aRange, nsIPresShell *aPresShell,
                              bool *aIsInsideLink, bool *aIsStartingLink);
 
-  void GetSelection(nsIPresShell *aPresShell, nsISelectionController **aSelCon, 
+  void GetSelection(nsIPresShell *aPresShell, nsISelectionController **aSelCon,
                     nsISelection **aDomSel);
   // *aNewRange may not be collapsed.  If you want to collapse it in a
   // particular way, you need to do it yourself.
   bool IsRangeVisible(nsIPresShell *aPresShell, nsPresContext *aPresContext,
-                        nsIDOMRange *aRange, bool aMustBeVisible, 
+                        nsIDOMRange *aRange, bool aMustBeVisible,
                         bool aGetTopVisibleLeaf, nsIDOMRange **aNewRange,
                         bool *aUsesIndependentSelection);
   nsresult FindItNow(nsIPresShell *aPresShell, bool aIsLinksOnly,
                      bool aIsFirstVisiblePreferred, bool aFindPrev,
                      uint16_t* aResult);
   nsresult GetSearchContainers(nsISupports *aContainer,
                                nsISelectionController *aSelectionController,
                                bool aIsFirstVisiblePreferred,
@@ -91,17 +91,17 @@ protected:
   // mLastFindLength is the character length of the last find string.  It is used for
   // disabling the "not found" sound when using backspace or delete
   uint32_t mLastFindLength;
 
   // Sound is played asynchronously on some platforms.
   // If we destroy mSoundInterface before sound has played, it won't play
   nsCOMPtr<nsISound> mSoundInterface;
   bool mIsSoundInitialized;
-  
+
   // where selection was when user started the find
   nsCOMPtr<nsIDOMRange> mStartFindRange;
   nsCOMPtr<nsIDOMRange> mSearchRange;
   nsCOMPtr<nsIDOMRange> mStartPointRange;
   nsCOMPtr<nsIDOMRange> mEndPointRange;
 
   // Cached useful interfaces
   nsCOMPtr<nsIFind> mFind;
--- a/toolkit/components/url-classifier/tests/gtest/TestUrlClassifierUtils.cpp
+++ b/toolkit/components/url-classifier/tests/gtest/TestUrlClassifierUtils.cpp
@@ -37,32 +37,32 @@ TEST(UrlClassifierUtils, Unescape)
   TestUnescapeHelper("\0", "\0");
 
   // Test docoding of all characters.
   nsCString allCharsEncoded, allCharsEncodedLowercase, allCharsAsString;
   for (int32_t i = 1; i < 256; ++i) {
     allCharsEncoded.Append('%');
     allCharsEncoded.Append(int_to_hex_digit(i / 16));
     allCharsEncoded.Append((int_to_hex_digit(i % 16)));
-    
+
     allCharsEncodedLowercase.Append('%');
     allCharsEncodedLowercase.Append(tolower(int_to_hex_digit(i / 16)));
     allCharsEncodedLowercase.Append(tolower(int_to_hex_digit(i % 16)));
-    
+
     allCharsAsString.Append(static_cast<char>(i));
   }
-  
+
   nsCString out;
   NS_UnescapeURL(allCharsEncoded.get(),
                  allCharsEncoded.Length(),
                  esc_AlwaysCopy,
                  out);
 
   CheckEquals(allCharsAsString, out);
-  
+
   out.Truncate();
   NS_UnescapeURL(allCharsEncodedLowercase.get(),
                  allCharsEncodedLowercase.Length(),
                  esc_AlwaysCopy,
                  out);
   CheckEquals(allCharsAsString, out);
 
   // Test %-related edge cases
@@ -114,17 +114,17 @@ TEST(UrlClassifierUtils, Enc)
   for (int32_t i = 1; i < 256; i++) {
     if (i < 33 || i == 37 || i > 126) {
       yesAsString.Append(static_cast<char>(i));
       yesExpectedString.Append('%');
       yesExpectedString.Append(int_to_hex_digit(i / 16));
       yesExpectedString.Append(int_to_hex_digit(i % 16));
     }
   }
-  
+
   out.Truncate();
   utils->SpecialEncode(yesAsString, false, out);
   CheckEquals(yesExpectedString, out);
 
   TestEncodeHelper("blah//blah", "blah/blah");
 }
 
 void TestCanonicalizeHelper(const char* in, const char* expected)
--- a/toolkit/crashreporter/LoadLibraryRemote.cpp
+++ b/toolkit/crashreporter/LoadLibraryRemote.cpp
@@ -203,29 +203,29 @@ PerformBaseRelocation(PMEMORYMODULE modu
         ULONGLONG *patchAddr64;
 #endif
         int type, offset;
 
         // the upper 4 bits define the type of relocation
         type = *relInfo >> 12;
         // the lower 12 bits define the offset
         offset = *relInfo & 0xfff;
-        
+
         switch (type)
         {
         case IMAGE_REL_BASED_ABSOLUTE:
           // skip relocation
           break;
 
         case IMAGE_REL_BASED_HIGHLOW:
           // change complete 32 bit address
           patchAddrHL = (DWORD *) (dest + offset);
           *patchAddrHL += delta;
           break;
-        
+
 #ifdef _WIN64
         case IMAGE_REL_BASED_DIR64:
           patchAddr64 = (ULONGLONG *) (dest + offset);
           *patchAddr64 += delta;
           break;
 #endif
 
         default:
--- a/toolkit/crashreporter/breakpad-client/mac/handler/protected_memory_allocator.h
+++ b/toolkit/crashreporter/breakpad-client/mac/handler/protected_memory_allocator.h
@@ -41,45 +41,45 @@
 #ifndef PROTECTED_MEMORY_ALLOCATOR_H__
 #define PROTECTED_MEMORY_ALLOCATOR_H__
 
 #include <mach/mach.h>
 
 //
 class ProtectedMemoryAllocator {
  public:
-  ProtectedMemoryAllocator(vm_size_t pool_size);  
+  ProtectedMemoryAllocator(vm_size_t pool_size);
   ~ProtectedMemoryAllocator();
-  
+
   // Returns a pointer to an allocation of size n within the pool.
   // Fails by returning NULL is no more space is available.
   // Please note that the pointers returned from this method should not
   // be freed in any way (for example by calling free() on them ).
   char *         Allocate(vm_size_t n);
-  
+
   // Returns the base address of the allocation pool.
   char *         GetBaseAddress() { return (char*)base_address_; }
 
   // Returns the size of the allocation pool, including allocated
   // plus free space.
   vm_size_t      GetTotalSize() { return pool_size_; }
 
   // Returns the number of bytes already allocated in the pool.
   vm_size_t      GetAllocatedSize() { return next_alloc_offset_; }
 
   // Returns the number of bytes available for allocation.
   vm_size_t      GetFreeSize() { return pool_size_ - next_alloc_offset_; }
-  
+
   // Makes the entire allocation pool read-only including, of course,
   // all allocations made from the pool.
-  kern_return_t  Protect();  
+  kern_return_t  Protect();
 
   // Makes the entire allocation pool read/write.
-  kern_return_t  Unprotect();  
-  
+  kern_return_t  Unprotect();
+
  private:
   vm_size_t      pool_size_;
   vm_address_t   base_address_;
   vm_size_t      next_alloc_offset_;
   bool           valid_;
 };
 
 #endif // PROTECTED_MEMORY_ALLOCATOR_H__
--- a/toolkit/crashreporter/breakpad-client/mac/tests/spawn_child_process.h
+++ b/toolkit/crashreporter/breakpad-client/mac/tests/spawn_child_process.h
@@ -130,17 +130,17 @@ pid_t spawn_child_process(const char** a
     argv_v.push_back(strdup(*argv));
     argv++;
   }
   argv_v.push_back(NULL);
   pid_t new_pid = 0;
   int result = posix_spawnp(&new_pid, argv_v[0], NULL, &spawnattr,
                             &argv_v[0], *_NSGetEnviron());
   posix_spawnattr_destroy(&spawnattr);
-  
+
   for (unsigned i = 0; i < argv_v.size(); i++) {
     free(argv_v[i]);
   }
 
   return result == 0 ? new_pid : -1;
 }
 #endif
 
--- a/toolkit/crashreporter/breakpad-client/minidump_file_writer-inl.h
+++ b/toolkit/crashreporter/breakpad-client/minidump_file_writer-inl.h
@@ -67,27 +67,27 @@ inline bool TypedMDRVA<MDType>::Allocate
   allocation_state_ = SINGLE_OBJECT_WITH_ARRAY;
   return UntypedMDRVA::Allocate(minidump_size<MDType>::size() + count * length);
 }
 
 template<typename MDType>
 inline bool TypedMDRVA<MDType>::CopyIndex(unsigned int index, MDType *item) {
   assert(allocation_state_ == ARRAY);
   return writer_->Copy(
-      static_cast<MDRVA>(position_ + index * minidump_size<MDType>::size()), 
+      static_cast<MDRVA>(position_ + index * minidump_size<MDType>::size()),
       item, minidump_size<MDType>::size());
 }
 
 template<typename MDType>
 inline bool TypedMDRVA<MDType>::CopyIndexAfterObject(unsigned int index,
-                                                     const void *src, 
+                                                     const void *src,
                                                      size_t length) {
   assert(allocation_state_ == SINGLE_OBJECT_WITH_ARRAY);
   return writer_->Copy(
-      static_cast<MDRVA>(position_ + minidump_size<MDType>::size() 
+      static_cast<MDRVA>(position_ + minidump_size<MDType>::size()
                          + index * length),
       src, length);
 }
 
 template<typename MDType>
 inline bool TypedMDRVA<MDType>::Flush() {
   return writer_->Copy(position_, &data_, minidump_size<MDType>::size());
 }
--- a/toolkit/crashreporter/breakpad-client/windows/sender/crash_report_sender.h
+++ b/toolkit/crashreporter/breakpad-client/windows/sender/crash_report_sender.h
@@ -35,17 +35,17 @@
 // request, which contains a set of caller-supplied string key/value pairs,
 // and a minidump file to upload.
 //
 // To use this library in your project, you will need to link against
 // wininet.lib.
 
 #pragma warning( push )
 // Disable exception handler warnings.
-#pragma warning( disable : 4530 ) 
+#pragma warning( disable : 4530 )
 
 #include <map>
 #include <string>
 
 namespace google_breakpad {
 
 using std::wstring;
 using std::map;
--- a/toolkit/crashreporter/client/crashreporter_osx.h
+++ b/toolkit/crashreporter/client/crashreporter_osx.h
@@ -90,17 +90,17 @@
  * Also provide a setEnabled implementation.
  */
 @interface TextViewWithPlaceHolder : NSTextView {
   NSMutableAttributedString *mPlaceHolderString;
 }
 
 - (BOOL)becomeFirstResponder;
 - (void)drawRect:(NSRect)rect;
-- (BOOL)resignFirstResponder;  
+- (BOOL)resignFirstResponder;
 - (void)setPlaceholder:(NSString*)placeholder;
 - (void)insertTab:(id)sender;
 - (void)insertBacktab:(id)sender;
 - (void)setEnabled:(BOOL)enabled;
 - (void)dealloc;
 
 @end
 
--- a/toolkit/crashreporter/client/crashreporter_win.cpp
+++ b/toolkit/crashreporter/client/crashreporter_win.cpp
@@ -134,23 +134,23 @@ static bool GetBoolValue(HKEY hRegKey, L
   return false;
 }
 
 // Removes a value from HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER, if it exists.
 static void RemoveUnusedValues(const wchar_t* key, LPCTSTR valueName)
 {
   HKEY hRegKey;
 
-  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_SET_VALUE, &hRegKey) 
+  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_SET_VALUE, &hRegKey)
       == ERROR_SUCCESS) {
     RegDeleteValue(hRegKey, valueName);
     RegCloseKey(hRegKey);
   }
 
-  if (RegOpenKeyEx(HKEY_CURRENT_USER, key, 0, KEY_SET_VALUE, &hRegKey) 
+  if (RegOpenKeyEx(HKEY_CURRENT_USER, key, 0, KEY_SET_VALUE, &hRegKey)
       == ERROR_SUCCESS) {
     RegDeleteValue(hRegKey, valueName);
     RegCloseKey(hRegKey);
   }
 }
 
 static bool CheckBoolKey(const wchar_t* key,
                          const wchar_t* valueName,
@@ -304,21 +304,21 @@ typedef HRESULT (WINAPI*GetThemeContentR
 
 static void GetThemeSizes(HWND hwnd)
 {
   HMODULE themeDLL = LoadLibrary(L"uxtheme.dll");
 
   if (!themeDLL)
     return;
 
-  OpenThemeDataPtr openTheme = 
+  OpenThemeDataPtr openTheme =
     (OpenThemeDataPtr)GetProcAddress(themeDLL, "OpenThemeData");
   CloseThemeDataPtr closeTheme =
     (CloseThemeDataPtr)GetProcAddress(themeDLL, "CloseThemeData");
-  GetThemePartSizePtr getThemePartSize = 
+  GetThemePartSizePtr getThemePartSize =
     (GetThemePartSizePtr)GetProcAddress(themeDLL, "GetThemePartSize");
 
   if (!openTheme || !closeTheme || !getThemePartSize) {
     FreeLibrary(themeDLL);
     return;
   }
 
   HANDLE buttonTheme = openTheme(hwnd, L"Button");
@@ -593,17 +593,17 @@ static void UpdateComment(HWND hwndDlg)
 /*
  * Dialog procedure for the "view report" dialog.
  */
 static BOOL CALLBACK ViewReportDialogProc(HWND hwndDlg, UINT message,
                                           WPARAM wParam, LPARAM lParam)
 {
   switch (message) {
   case WM_INITDIALOG: {
-    SetWindowText(hwndDlg, Str(ST_VIEWREPORTTITLE).c_str());    
+    SetWindowText(hwndDlg, Str(ST_VIEWREPORTTITLE).c_str());
     SetDlgItemText(hwndDlg, IDOK, Str(ST_OK).c_str());
     SendDlgItemMessage(hwndDlg, IDC_VIEWREPORTTEXT,
                        EM_SETTARGETDEVICE, (WPARAM)nullptr, 0);
     ShowReportInfo(hwndDlg);
     SetFocus(GetDlgItem(hwndDlg, IDOK));
     return FALSE;
   }
 
@@ -668,17 +668,17 @@ static LRESULT CALLBACK EditSubclassProc
     PAINTSTRUCT ps;
     RECT r;
     wchar_t windowText[1024];
 
     GetWindowText(hwnd, windowText, 1024);
     // if the control contains text or is focused, draw it normally
     if (GetFocus() == hwnd || windowText[0] != '\0')
       return CallWindowProc(super, hwnd, uMsg, wParam, lParam);
-    
+
     GetClientRect(hwnd, &r);
     hdc = BeginPaint(hwnd, &ps);
     FillRect(hdc, &r, GetSysColorBrush(IsWindowEnabled(hwnd)
                                        ? COLOR_WINDOW : COLOR_BTNFACE));
     SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));
     SelectObject(hdc, (HFONT)GetStockObject(DEFAULT_GUI_FONT));
     SetBkMode(hdc, TRANSPARENT);
     wchar_t* txt = (wchar_t*)GetProp(hwnd, L"PROP_GRAYTEXT");
@@ -695,28 +695,28 @@ static LRESULT CALLBACK EditSubclassProc
 
     // We handle WM_CHAR and WM_PASTE to limit the comment box to 500
     // bytes in UTF-8.
   case WM_CHAR: {
     // Leave accelerator keys and non-printing chars (except LF) alone
     if (wParam & (1<<24) || wParam & (1<<29) ||
         (wParam < ' ' && wParam != '\n'))
       break;
-  
+
     wchar_t ch[2] = { (wchar_t)wParam, 0 };
     if (NewTextLength(hwnd, ch) > MAX_COMMENT_LENGTH)
       return 0;
 
     break;
   }
 
   case WM_PASTE: {
     if (IsClipboardFormatAvailable(CF_UNICODETEXT) &&
         OpenClipboard(hwnd)) {
-      HGLOBAL hg = GetClipboardData(CF_UNICODETEXT); 
+      HGLOBAL hg = GetClipboardData(CF_UNICODETEXT);
       wchar_t* pastedText = (wchar_t*)GlobalLock(hg);
       int newSize = 0;
 
       if (pastedText)
         newSize = NewTextLength(hwnd, pastedText);
 
       GlobalUnlock(hg);
       CloseClipboard();
@@ -770,19 +770,19 @@ static int ResizeControl(HWND hwndButton
      that extends to the end of the dialog, in which case we ignore the
      rc padding and rely on a user defined value passed in through
      userDefinedPadding.
     */
     int textIncrease = size.cx - oldSize.cx;
     if (textIncrease < 0)
       return 0;
     int existingTextPadding;
-    if (userDefinedPadding == 0) 
+    if (userDefinedPadding == 0)
       existingTextPadding = (rect.right - rect.left) - oldSize.cx;
-    else 
+    else
       existingTextPadding = userDefinedPadding;
     sizeDiff = textIncrease + existingTextPadding;
 
     if (shiftLeft) {
       // shift left by the amount the button should grow
       rect.left -= sizeDiff;
     }
     else {
@@ -1034,17 +1034,17 @@ static BOOL CALLBACK CrashReporterDialog
                restartRect.bottom - restartRect.top,
                TRUE);
 
     // Resize the description text last, in case the window was resized
     // before this.
     SendDlgItemMessage(hwndDlg, IDC_DESCRIPTIONTEXT,
                        EM_SETEVENTMASK, (WPARAM)nullptr,
                        ENM_REQUESTRESIZE);
-    
+
     wstring description = Str(ST_CRASHREPORTERHEADER);
     description += L"\n\n";
     description += Str(ST_CRASHREPORTERDESCRIPTION);
     SetDlgItemText(hwndDlg, IDC_DESCRIPTIONTEXT, description.c_str());
 
 
     // Make the title bold.
     CHARFORMAT fmt = { 0, };
--- a/toolkit/crashreporter/injector/injector.cpp
+++ b/toolkit/crashreporter/injector/injector.cpp
@@ -14,17 +14,17 @@ extern "C" BOOL WINAPI DummyEntryPoint(H
                                        void* reserved)
 {
   __debugbreak();
 
   return FALSE; // We're being loaded remotely, this shouldn't happen!
 }
 
 // support.microsoft.com/kb/94248
-extern "C" BOOL WINAPI _CRT_INIT(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved); 
+extern "C" BOOL WINAPI _CRT_INIT(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved);
 
 extern "C"
 __declspec(dllexport) DWORD Start(void* context)
 {
   // Because the remote DLL injector does not call DllMain, we have to
   // initialize the CRT manually
   _CRT_INIT(nullptr, DLL_PROCESS_ATTACH, nullptr);
 
--- a/toolkit/library/nsDllMain.cpp
+++ b/toolkit/library/nsDllMain.cpp
@@ -1,39 +1,39 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 #include <windows.h>
 #include "nsToolkit.h"
 #include "mozilla/Assertions.h"
 #include "mozilla/WindowsVersion.h"
 
 #if defined(__GNUC__)
 // If DllMain gets name mangled, it won't be seen.
 extern "C" {
 #endif
 
-BOOL APIENTRY DllMain(  
-                      HINSTANCE hModule, 
-                      DWORD reason, 
+BOOL APIENTRY DllMain(
+                      HINSTANCE hModule,
+                      DWORD reason,
                       LPVOID lpReserved )
 {
     switch( reason ) {
         case DLL_PROCESS_ATTACH:
             nsToolkit::Startup((HINSTANCE)hModule);
             break;
 
         case DLL_THREAD_ATTACH:
             break;
-    
+
         case DLL_THREAD_DETACH:
             break;
-    
+
         case DLL_PROCESS_DETACH:
             nsToolkit::Shutdown();
             break;
 
     }
 
     return TRUE;
 }
--- a/toolkit/mozapps/update/common/certificatecheck.cpp
+++ b/toolkit/mozapps/update/common/certificatecheck.cpp
@@ -13,46 +13,46 @@
 
 static const int ENCODING = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING;
 
 /**
  * Checks to see if a file stored at filePath matches the specified info.
  *
  * @param  filePath    The PE file path to check
  * @param  infoToMatch The acceptable information to match
- * @return ERROR_SUCCESS if successful, ERROR_NOT_FOUND if the info 
+ * @return ERROR_SUCCESS if successful, ERROR_NOT_FOUND if the info
  *         does not match, or the last error otherwise.
  */
 DWORD
-CheckCertificateForPEFile(LPCWSTR filePath, 
+CheckCertificateForPEFile(LPCWSTR filePath,
                           CertificateCheckInfo &infoToMatch)
 {
   HCERTSTORE certStore = nullptr;
-  HCRYPTMSG cryptMsg = nullptr; 
+  HCRYPTMSG cryptMsg = nullptr;
   PCCERT_CONTEXT certContext = nullptr;
   PCMSG_SIGNER_INFO signerInfo = nullptr;
   DWORD lastError = ERROR_SUCCESS;
 
   // Get the HCERTSTORE and HCRYPTMSG from the signed file.
   DWORD encoding, contentType, formatType;
   BOOL result = CryptQueryObject(CERT_QUERY_OBJECT_FILE,
-                                  filePath, 
+                                  filePath,
                                   CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED,
-                                  CERT_QUERY_CONTENT_FLAG_ALL, 
+                                  CERT_QUERY_CONTENT_FLAG_ALL,
                                   0, &encoding, &contentType,
                                   &formatType, &certStore, &cryptMsg, nullptr);
   if (!result) {
     lastError = GetLastError();
     LOG_WARN(("CryptQueryObject failed.  (%d)", lastError));
     goto cleanup;
   }
 
   // Pass in nullptr to get the needed signer information size.
   DWORD signerInfoSize;
-  result = CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0, 
+  result = CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0,
                             nullptr, &signerInfoSize);
   if (!result) {
     lastError = GetLastError();
     LOG_WARN(("CryptMsgGetParam failed.  (%d)", lastError));
     goto cleanup;
   }
 
   // Allocate the needed size for the signer information.
@@ -60,29 +60,29 @@ CheckCertificateForPEFile(LPCWSTR filePa
   if (!signerInfo) {
     lastError = GetLastError();
     LOG_WARN(("Unable to allocate memory for Signer Info.  (%d)", lastError));
     goto cleanup;
   }
 
   // Get the signer information (PCMSG_SIGNER_INFO).
   // In particular we want the issuer and serial number.
-  result = CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0, 
+  result = CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0,
                             (PVOID)signerInfo, &signerInfoSize);
   if (!result) {
     lastError = GetLastError();
     LOG_WARN(("CryptMsgGetParam failed.  (%d)", lastError));
     goto cleanup;
   }
 
   // Search for the signer certificate in the certificate store.
-  CERT_INFO certInfo;     
+  CERT_INFO certInfo;
   certInfo.Issuer = signerInfo->Issuer;
   certInfo.SerialNumber = signerInfo->SerialNumber;
-  certContext = CertFindCertificateInStore(certStore, ENCODING, 0, 
+  certContext = CertFindCertificateInStore(certStore, ENCODING, 0,
                                            CERT_FIND_SUBJECT_CERT,
                                            (PVOID)&certInfo, nullptr);
   if (!certContext) {
     lastError = GetLastError();
     LOG_WARN(("CertFindCertificateInStore failed.  (%d)", lastError));
     goto cleanup;
   }
 
@@ -94,42 +94,42 @@ CheckCertificateForPEFile(LPCWSTR filePa
 
 cleanup:
   if (signerInfo) {
     LocalFree(signerInfo);
   }
   if (certContext) {
     CertFreeCertificateContext(certContext);
   }
-  if (certStore) { 
+  if (certStore) {
     CertCloseStore(certStore, 0);
   }
-  if (cryptMsg) { 
+  if (cryptMsg) {
     CryptMsgClose(cryptMsg);
   }
   return lastError;
 }
 
 /**
  * Checks to see if a file stored at filePath matches the specified info.
  *
  * @param  certContext  The certificate context of the file
  * @param  infoToMatch  The acceptable information to match
  * @return FALSE if the info does not match or if any error occurs in the check
  */
-BOOL 
-DoCertificateAttributesMatch(PCCERT_CONTEXT certContext, 
+BOOL
+DoCertificateAttributesMatch(PCCERT_CONTEXT certContext,
                              CertificateCheckInfo &infoToMatch)
 {
   DWORD dwData;
   LPWSTR szName = nullptr;
 
   if (infoToMatch.issuer) {
     // Pass in nullptr to get the needed size of the issuer buffer.
-    dwData = CertGetNameString(certContext, 
+    dwData = CertGetNameString(certContext,
                                CERT_NAME_SIMPLE_DISPLAY_TYPE,
                                CERT_NAME_ISSUER_FLAG, nullptr,
                                nullptr, 0);
 
     if (!dwData) {
       LOG_WARN(("CertGetNameString failed.  (%d)", GetLastError()));
       return FALSE;
     }
@@ -182,17 +182,17 @@ DoCertificateAttributesMatch(PCCERT_CONT
     if (!(CertGetNameStringW(certContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0,
                             nullptr, szName, dwData))) {
       LOG_WARN(("CertGetNameString failed.  (%d)", GetLastError()));
       LocalFree(szName);
       return FALSE;
     }
 
     // If the issuer does not match, return a failure.
-    if (!infoToMatch.name || 
+    if (!infoToMatch.name ||
         wcscmp(szName, infoToMatch.name)) {
       LocalFree(szName);
       return FALSE;
     }
 
     // We have a match!
     LocalFree(szName);
   }
@@ -218,17 +218,17 @@ VerifyCertificateTrustForFile(LPCWSTR fi
 
   // Setup what to check, we want to check it is signed and trusted.
   WINTRUST_DATA trustData;
   ZeroMemory(&trustData, sizeof(trustData));
   trustData.cbStruct = sizeof(trustData);
   trustData.pPolicyCallbackData = nullptr;
   trustData.pSIPClientData = nullptr;
   trustData.dwUIChoice = WTD_UI_NONE;
-  trustData.fdwRevocationChecks = WTD_REVOKE_NONE; 
+  trustData.fdwRevocationChecks = WTD_REVOKE_NONE;
   trustData.dwUnionChoice = WTD_CHOICE_FILE;
   trustData.dwStateAction = 0;
   trustData.hWVTStateData = nullptr;
   trustData.pwszURLReference = nullptr;
   // no UI
   trustData.dwUIContext = 0;
   trustData.pFile = &fileToCheck;
 
--- a/toolkit/mozapps/update/common/certificatecheck.h
+++ b/toolkit/mozapps/update/common/certificatecheck.h
@@ -8,15 +8,15 @@
 #include <wincrypt.h>
 
 struct CertificateCheckInfo
 {
   LPCWSTR name;
   LPCWSTR issuer;
 };
 
-BOOL DoCertificateAttributesMatch(PCCERT_CONTEXT pCertContext, 
+BOOL DoCertificateAttributesMatch(PCCERT_CONTEXT pCertContext,
                                   CertificateCheckInfo &infoToMatch);
 DWORD VerifyCertificateTrustForFile(LPCWSTR filePath);
-DWORD CheckCertificateForPEFile(LPCWSTR filePath, 
+DWORD CheckCertificateForPEFile(LPCWSTR filePath,
                                 CertificateCheckInfo &infoToMatch);
 
 #endif
--- a/toolkit/mozapps/update/common/pathhash.cpp
+++ b/toolkit/mozapps/update/common/pathhash.cpp
@@ -7,21 +7,21 @@
 #include "pathhash.h"
 
 
 /**
  * Converts a binary sequence into a hex string
  *
  * @param hash      The binary data sequence
  * @param hashSize  The size of the binary data sequence
- * @param hexString A buffer to store the hex string, must be of 
+ * @param hexString A buffer to store the hex string, must be of
  *                  size 2 * @hashSize
 */
 static void
-BinaryDataToHexString(const BYTE *hash, DWORD &hashSize, 
+BinaryDataToHexString(const BYTE *hash, DWORD &hashSize,
                       LPWSTR hexString)
 {
   WCHAR *p = hexString;
   for (DWORD i = 0; i < hashSize; ++i) {
     wsprintfW(p, L"%.2x", hash[i]);
     p += 2;
   }
 }
@@ -31,50 +31,50 @@ BinaryDataToHexString(const BYTE *hash, 
  *
  * @param  data     Any sequence of bytes
  * @param  dataSize The number of bytes inside @data
  * @param  hash     Output buffer to store hash, must be freed by the caller
  * @param  hashSize The number of bytes in the output buffer
  * @return TRUE on success
 */
 static BOOL
-CalculateMD5(const char *data, DWORD dataSize, 
+CalculateMD5(const char *data, DWORD dataSize,
              BYTE **hash, DWORD &hashSize)
 {
   HCRYPTPROV hProv = 0;
   HCRYPTHASH hHash = 0;
 
   if (!CryptAcquireContext(&hProv, nullptr, nullptr, PROV_RSA_FULL,
                            CRYPT_VERIFYCONTEXT)) {
     if (NTE_BAD_KEYSET != GetLastError()) {
       return FALSE;
     }
- 
+
     // Maybe it doesn't exist, try to create it.
-    if (!CryptAcquireContext(&hProv, nullptr, nullptr, PROV_RSA_FULL, 
+    if (!CryptAcquireContext(&hProv, nullptr, nullptr, PROV_RSA_FULL,
                              CRYPT_VERIFYCONTEXT | CRYPT_NEWKEYSET)) {
       return FALSE;
     }
   }
 
   if (!CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash)) {
     return FALSE;
   }
 
-  if (!CryptHashData(hHash, reinterpret_cast<const BYTE*>(data), 
+  if (!CryptHashData(hHash, reinterpret_cast<const BYTE*>(data),
                     dataSize, 0)) {
     return FALSE;
   }
 
   DWORD dwCount = sizeof(DWORD);
-  if (!CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE *)&hashSize, 
+  if (!CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE *)&hashSize,
                         &dwCount, 0)) {
     return FALSE;
   }
-  
+
   *hash = new BYTE[hashSize];
   ZeroMemory(*hash, hashSize);
   if (!CryptGetHashParam(hHash, HP_HASHVAL, *hash, &hashSize, 0)) {
     return FALSE;
   }
 
   if (hHash) {
     CryptDestroyHash(hHash);
@@ -86,54 +86,54 @@ CalculateMD5(const char *data, DWORD dat
 
   return TRUE;
 }
 
 /**
  * Converts a file path into a unique registry location for cert storage
  *
  * @param  filePath     The input file path to get a registry path from
- * @param  registryPath A buffer to write the registry path to, must 
+ * @param  registryPath A buffer to write the registry path to, must
  *                      be of size in WCHARs MAX_PATH + 1
  * @return TRUE if successful
 */
 BOOL
-CalculateRegistryPathFromFilePath(const LPCWSTR filePath, 
+CalculateRegistryPathFromFilePath(const LPCWSTR filePath,
                                   LPWSTR registryPath)
 {
-  size_t filePathLen = wcslen(filePath); 
+  size_t filePathLen = wcslen(filePath);
   if (!filePathLen) {
     return FALSE;
   }
 
   // If the file path ends in a slash, ignore that character
-  if (filePath[filePathLen -1] == L'\\' || 
+  if (filePath[filePathLen -1] == L'\\' ||
       filePath[filePathLen - 1] == L'/') {
     filePathLen--;
   }
 
   // Copy in the full path into our own buffer.
   // Copying in the extra slash is OK because we calculate the hash
   // based on the filePathLen which excludes the slash.
   // +2 to account for the possibly trailing slash and the null terminator.
   WCHAR *lowercasePath = new WCHAR[filePathLen + 2];
   memset(lowercasePath, 0, (filePathLen + 2) * sizeof(WCHAR));
   wcsncpy(lowercasePath, filePath, filePathLen + 1);
   _wcslwr(lowercasePath);
 
   BYTE *hash;
   DWORD hashSize = 0;
-  if (!CalculateMD5(reinterpret_cast<const char*>(lowercasePath), 
-                    filePathLen * 2, 
+  if (!CalculateMD5(reinterpret_cast<const char*>(lowercasePath),
+                    filePathLen * 2,
                     &hash, hashSize)) {
     delete[] lowercasePath;
     return FALSE;
   }
   delete[] lowercasePath;
 
   LPCWSTR baseRegPath = L"SOFTWARE\\Mozilla\\"
     L"MaintenanceService\\";
   wcsncpy(registryPath, baseRegPath, MAX_PATH);
-  BinaryDataToHexString(hash, hashSize, 
+  BinaryDataToHexString(hash, hashSize,
                         registryPath + wcslen(baseRegPath));
   delete[] hash;
   return TRUE;
 }
--- a/toolkit/mozapps/update/common/pathhash.h
+++ b/toolkit/mozapps/update/common/pathhash.h
@@ -4,16 +4,16 @@
 
 #ifndef _PATHHASH_H_
 #define _PATHHASH_H_
 
 /**
  * Converts a file path into a unique registry location for cert storage
  *
  * @param  filePath     The input file path to get a registry path from
- * @param  registryPath A buffer to write the registry path to, must 
+ * @param  registryPath A buffer to write the registry path to, must
  *                      be of size in WCHARs MAX_PATH + 1
  * @return TRUE if successful
 */
-BOOL CalculateRegistryPathFromFilePath(const LPCWSTR filePath, 
+BOOL CalculateRegistryPathFromFilePath(const LPCWSTR filePath,
                                        LPWSTR registryPath);
 
 #endif
--- a/toolkit/mozapps/update/common/readstrings.h
+++ b/toolkit/mozapps/update/common/readstrings.h
@@ -15,17 +15,17 @@
 #else
   typedef char NS_tchar;
 #endif
 
 #ifndef NULL
 #define NULL 0
 #endif
 
-struct StringTable 
+struct StringTable
 {
   char title[MAX_TEXT_LEN];
   char info[MAX_TEXT_LEN];
 };
 
 /**
  * This function reads in localized strings from updater.ini
  */
--- a/toolkit/mozapps/update/common/registrycertificates.cpp
+++ b/toolkit/mozapps/update/common/registrycertificates.cpp
@@ -22,39 +22,39 @@
  *   written to by a low integrity process.
  *   Note: the maintenance service binary can be used to perform this check for
  *   testing or troubleshooting.
  * @return TRUE if the binary matches any of the allowed certificates.
  */
 BOOL
 DoesBinaryMatchAllowedCertificates(LPCWSTR basePathForUpdate, LPCWSTR filePath,
                                    BOOL allowFallbackKeySkip)
-{ 
+{
   WCHAR maintenanceServiceKey[MAX_PATH + 1];
-  if (!CalculateRegistryPathFromFilePath(basePathForUpdate, 
+  if (!CalculateRegistryPathFromFilePath(basePathForUpdate,
                                          maintenanceServiceKey)) {
     return FALSE;
   }
 
   // We use KEY_WOW64_64KEY to always force 64-bit view.
   // The user may have both x86 and x64 applications installed
   // which each register information.  We need a consistent place
   // to put those certificate attributes in and hence why we always
   // force the non redirected registry under Wow6432Node.
   // This flag is ignored on 32bit systems.
   HKEY baseKey;
-  LONG retCode = RegOpenKeyExW(HKEY_LOCAL_MACHINE, 
-                               maintenanceServiceKey, 0, 
+  LONG retCode = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+                               maintenanceServiceKey, 0,
                                KEY_READ | KEY_WOW64_64KEY, &baseKey);
   if (retCode != ERROR_SUCCESS) {
     LOG_WARN(("Could not open key.  (%d)", retCode));
     // Our tests run with a different apply directory for each test.
-    // We use this registry key on our test slaves to store the 
+    // We use this registry key on our test slaves to store the
     // allowed name/issuers.
-    retCode = RegOpenKeyExW(HKEY_LOCAL_MACHINE, 
+    retCode = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
                             TEST_ONLY_FALLBACK_KEY_PATH, 0,
                             KEY_READ | KEY_WOW64_64KEY, &baseKey);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Could not open fallback key.  (%d)", retCode));
       return FALSE;
     } else if (allowFallbackKeySkip) {
       LOG_WARN(("Fallback key present, skipping VerifyCertificateTrustForFile "
                 "check and the certificate attribute registry matching "
@@ -71,67 +71,67 @@ DoesBinaryMatchAllowedCertificates(LPCWS
                              nullptr, nullptr);
   if (retCode != ERROR_SUCCESS) {
     LOG_WARN(("Could not query info key.  (%d)", retCode));
     RegCloseKey(baseKey);
     return FALSE;
   }
 
   // Enumerate the subkeys, each subkey represents an allowed certificate.
-  for (DWORD i = 0; i < subkeyCount; i++) { 
+  for (DWORD i = 0; i < subkeyCount; i++) {
     WCHAR subkeyBuffer[MAX_KEY_LENGTH];
-    DWORD subkeyBufferCount = MAX_KEY_LENGTH;  
-    retCode = RegEnumKeyExW(baseKey, i, subkeyBuffer, 
-                            &subkeyBufferCount, nullptr, 
-                            nullptr, nullptr, nullptr); 
+    DWORD subkeyBufferCount = MAX_KEY_LENGTH;
+    retCode = RegEnumKeyExW(baseKey, i, subkeyBuffer,
+                            &subkeyBufferCount, nullptr,
+                            nullptr, nullptr, nullptr);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Could not enum certs.  (%d)", retCode));
       RegCloseKey(baseKey);
       return FALSE;
     }
 
     // Open the subkey for the current certificate
     HKEY subKey;
-    retCode = RegOpenKeyExW(baseKey, 
-                            subkeyBuffer, 
-                            0, 
-                            KEY_READ | KEY_WOW64_64KEY, 
+    retCode = RegOpenKeyExW(baseKey,
+                            subkeyBuffer,
+                            0,
+                            KEY_READ | KEY_WOW64_64KEY,
                             &subKey);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Could not open subkey.  (%d)", retCode));
       continue; // Try the next subkey
     }
 
     const int MAX_CHAR_COUNT = 256;
     DWORD valueBufSize = MAX_CHAR_COUNT * sizeof(WCHAR);
     WCHAR name[MAX_CHAR_COUNT] = { L'\0' };
     WCHAR issuer[MAX_CHAR_COUNT] = { L'\0' };
 
     // Get the name from the registry
-    retCode = RegQueryValueExW(subKey, L"name", 0, nullptr, 
+    retCode = RegQueryValueExW(subKey, L"name", 0, nullptr,
                                (LPBYTE)name, &valueBufSize);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Could not obtain name from registry.  (%d)", retCode));
       RegCloseKey(subKey);
       continue; // Try the next subkey
     }
 
     // Get the issuer from the registry
     valueBufSize = MAX_CHAR_COUNT * sizeof(WCHAR);
-    retCode = RegQueryValueExW(subKey, L"issuer", 0, nullptr, 
+    retCode = RegQueryValueExW(subKey, L"issuer", 0, nullptr,
                                (LPBYTE)issuer, &valueBufSize);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Could not obtain issuer from registry.  (%d)", retCode));
       RegCloseKey(subKey);
       continue; // Try the next subkey
     }
 
     CertificateCheckInfo allowedCertificate = {
-      name, 
-      issuer, 
+      name,
+      issuer,
     };
 
     retCode = CheckCertificateForPEFile(filePath, allowedCertificate);
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Error on certificate check.  (%d)", retCode));
       RegCloseKey(subKey);
       continue; // Try the next subkey
     }
@@ -140,15 +140,15 @@ DoesBinaryMatchAllowedCertificates(LPCWS
     if (retCode != ERROR_SUCCESS) {
       LOG_WARN(("Error on certificate trust check.  (%d)", retCode));
       RegCloseKey(subKey);
       continue; // Try the next subkey
     }
 
     RegCloseKey(baseKey);
     // Raise the roof, we found a match!
-    return TRUE; 
+    return TRUE;
   }
-  
+
   RegCloseKey(baseKey);
   // No certificates match, :'(
   return FALSE;
 }
--- a/toolkit/mozapps/update/common/uachelper.cpp
+++ b/toolkit/mozapps/update/common/uachelper.cpp
@@ -3,26 +3,26 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include <windows.h>
 #include <wtsapi32.h>
 #include "uachelper.h"
 #include "updatecommon.h"
 
 // See the MSDN documentation with title: Privilege Constants
-// At the time of this writing, this documentation is located at: 
+// At the time of this writing, this documentation is located at:
 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb530716%28v=vs.85%29.aspx
-LPCTSTR UACHelper::PrivsToDisable[] = { 
+LPCTSTR UACHelper::PrivsToDisable[] = {
   SE_ASSIGNPRIMARYTOKEN_NAME,
   SE_AUDIT_NAME,
   SE_BACKUP_NAME,
-  // CreateProcess will succeed but the app will fail to launch on some WinXP 
+  // CreateProcess will succeed but the app will fail to launch on some WinXP
   // machines if SE_CHANGE_NOTIFY_NAME is disabled.  In particular this happens
   // for limited user accounts on those machines.  The define is kept here as a
-  // reminder that it should never be re-added.  
+  // reminder that it should never be re-added.
   // This permission is for directory watching but also from MSDN: "This
   // privilege also causes the system to skip all traversal access checks."
   // SE_CHANGE_NOTIFY_NAME,
   SE_CREATE_GLOBAL_NAME,
   SE_CREATE_PAGEFILE_NAME,
   SE_CREATE_PERMANENT_NAME,
   SE_CREATE_SYMBOLIC_LINK_NAME,
   SE_CREATE_TOKEN_NAME,
@@ -61,17 +61,17 @@ LPCTSTR UACHelper::PrivsToDisable[] = {
  * @return A handle to the token to obtain which will be primary if enough
  *         permissions exist.  Caller should close the handle.
  */
 HANDLE
 UACHelper::OpenUserToken(DWORD sessionID)
 {
   HMODULE module = LoadLibraryW(L"wtsapi32.dll");
   HANDLE token = nullptr;
-  decltype(WTSQueryUserToken)* wtsQueryUserToken = 
+  decltype(WTSQueryUserToken)* wtsQueryUserToken =
     (decltype(WTSQueryUserToken)*) GetProcAddress(module, "WTSQueryUserToken");
   if (wtsQueryUserToken) {
     wtsQueryUserToken(sessionID, &token);
   }
   FreeLibrary(module);
   return token;
 }
 
@@ -87,68 +87,68 @@ UACHelper::OpenLinkedToken(HANDLE token)
 {
   // Magic below...
   // UAC creates 2 tokens.  One is the restricted token which we have.
   // the other is the UAC elevated one. Since we are running as a service
   // as the system account we have access to both.
   TOKEN_LINKED_TOKEN tlt;
   HANDLE hNewLinkedToken = nullptr;
   DWORD len;
-  if (GetTokenInformation(token, (TOKEN_INFORMATION_CLASS)TokenLinkedToken, 
+  if (GetTokenInformation(token, (TOKEN_INFORMATION_CLASS)TokenLinkedToken,
                           &tlt, sizeof(TOKEN_LINKED_TOKEN), &len)) {
     token = tlt.LinkedToken;
     hNewLinkedToken = token;
   }
   return hNewLinkedToken;
 }
 
 
 /**
  * Enables or disables a privilege for the specified token.
  *
  * @param  token  The token to adjust the privilege on.
  * @param  priv   The privilege to adjust.
  * @param  enable Whether to enable or disable it
  * @return TRUE if the token was adjusted to the specified value.
  */
-BOOL 
+BOOL
 UACHelper::SetPrivilege(HANDLE token, LPCTSTR priv, BOOL enable)
 {
   LUID luidOfPriv;
   if (!LookupPrivilegeValue(nullptr, priv, &luidOfPriv)) {
-    return FALSE; 
+    return FALSE;
   }
 
   TOKEN_PRIVILEGES tokenPriv;
   tokenPriv.PrivilegeCount = 1;
   tokenPriv.Privileges[0].Luid = luidOfPriv;
   tokenPriv.Privileges[0].Attributes = enable ? SE_PRIVILEGE_ENABLED : 0;
 
   SetLastError(ERROR_SUCCESS);
   if (!AdjustTokenPrivileges(token, false, &tokenPriv,
                              sizeof(tokenPriv), nullptr, nullptr)) {
-    return FALSE; 
-  } 
+    return FALSE;
+  }
 
   return GetLastError() == ERROR_SUCCESS;
 }
 
 /**
- * For each privilege that is specified, an attempt will be made to 
- * drop the privilege. 
- * 
- * @param  token         The token to adjust the privilege on. 
+ * For each privilege that is specified, an attempt will be made to
+ * drop the privilege.
+ *
+ * @param  token         The token to adjust the privilege on.
  *         Pass nullptr for current token.
  * @param  unneededPrivs An array of unneeded privileges.
  * @param  count         The size of the array
  * @return TRUE if there were no errors
  */
 BOOL
-UACHelper::DisableUnneededPrivileges(HANDLE token, 
-                                     LPCTSTR *unneededPrivs, 
+UACHelper::DisableUnneededPrivileges(HANDLE token,
+                                     LPCTSTR *unneededPrivs,
                                      size_t count)
 {
   HANDLE obtainedToken = nullptr;
   if (!token) {
     // Note: This handle is a pseudo-handle and need not be closed
     HANDLE process = GetCurrentProcess();
     if (!OpenProcessToken(process, TOKEN_ALL_ACCESS_P, &obtainedToken)) {
       LOG_WARN(("Could not obtain token for current process, no "
@@ -175,29 +175,29 @@ UACHelper::DisableUnneededPrivileges(HAN
   }
   return result;
 }
 
 /**
  * Disables privileges for the specified token.
  * The privileges to disable are in PrivsToDisable.
  * In the future there could be new privs and we are not sure if we should
- * explicitly disable these or not. 
- * 
+ * explicitly disable these or not.
+ *
  * @param  token The token to drop the privilege on.
  *         Pass nullptr for current token.
  * @return TRUE if there were no errors
  */
 BOOL
 UACHelper::DisablePrivileges(HANDLE token)
 {
-  static const size_t PrivsToDisableSize = 
+  static const size_t PrivsToDisableSize =
     sizeof(UACHelper::PrivsToDisable) / sizeof(UACHelper::PrivsToDisable[0]);
 
-  return DisableUnneededPrivileges(token, UACHelper::PrivsToDisable, 
+  return DisableUnneededPrivileges(token, UACHelper::PrivsToDisable,
                                    PrivsToDisableSize);
 }
 
 /**
  * Check if the current user can elevate.
  *
  * @return true if the user can elevate.
  *         false otherwise.
--- a/toolkit/mozapps/update/common/uachelper.h
+++ b/toolkit/mozapps/update/common/uachelper.h
@@ -10,14 +10,14 @@ class UACHelper
 public:
   static HANDLE OpenUserToken(DWORD sessionID);
   static HANDLE OpenLinkedToken(HANDLE token);
   static BOOL DisablePrivileges(HANDLE token);
   static bool CanUserElevate();
 
 private:
   static BOOL SetPrivilege(HANDLE token, LPCTSTR privs, BOOL enable);
-  static BOOL DisableUnneededPrivileges(HANDLE token, 
+  static BOOL DisableUnneededPrivileges(HANDLE token,
                                         LPCTSTR *unneededPrivs, size_t count);
-  static LPCTSTR PrivsToDisable[];  
+  static LPCTSTR PrivsToDisable[];
 };
 
 #endif
--- a/toolkit/mozapps/update/common/updatecommon.h
+++ b/toolkit/mozapps/update/common/updatecommon.h
@@ -7,17 +7,17 @@
 
 #include "updatedefines.h"
 #include <stdio.h>
 #include "mozilla/Attributes.h"
 
 class UpdateLog
 {
 public:
-  static UpdateLog & GetPrimaryLog() 
+  static UpdateLog & GetPrimaryLog()
   {
     static UpdateLog primaryLog;
     return primaryLog;
   }
 
   void Init(NS_tchar* sourcePath, const NS_tchar* fileName);
   void Finish();
   void Flush();
--- a/toolkit/mozapps/update/updater/archivereader.cpp
+++ b/toolkit/mozapps/update/updater/archivereader.cpp
@@ -63,19 +63,19 @@ VerifyLoadedCert(MarFile *archive, const
     return CERT_VERIFY_ERROR;
   }
 #endif
 
   return OK;
 }
 
 /**
- * Performs a verification on the opened MAR file.  Both the primary and backup 
- * keys stored are stored in the current process and at least the primary key 
- * will be tried.  Success will be returned as long as one of the two 
+ * Performs a verification on the opened MAR file.  Both the primary and backup
+ * keys stored are stored in the current process and at least the primary key
+ * will be tried.  Success will be returned as long as one of the two
  * signatures verify.
  *
  * @return OK on success
 */
 int
 ArchiveReader::VerifySignature()
 {
   if (!mArchive) {
@@ -94,56 +94,56 @@ ArchiveReader::VerifySignature()
   }
 #endif
   return rv;
 #endif
 }
 
 /**
  * Verifies that the MAR file matches the current product, channel, and version
- * 
+ *
  * @param MARChannelID   The MAR channel name to use, only updates from MARs
  *                       with a matching MAR channel name will succeed.
  *                       If an empty string is passed, no check will be done
  *                       for the channel name in the product information block.
  *                       If a comma separated list of values is passed then
  *                       one value must match.
  * @param appVersion     The application version to use, only MARs with an
  *                       application version >= to appVersion will be applied.
  * @return OK on success
- *         COULD_NOT_READ_PRODUCT_INFO_BLOCK if the product info block 
+ *         COULD_NOT_READ_PRODUCT_INFO_BLOCK if the product info block
  *                                           could not be read.
- *         MARCHANNEL_MISMATCH_ERROR         if update-settings.ini's MAR 
+ *         MARCHANNEL_MISMATCH_ERROR         if update-settings.ini's MAR
  *                                           channel ID doesn't match the MAR
- *                                           file's MAR channel ID. 
+ *                                           file's MAR channel ID.
  *         VERSION_DOWNGRADE_ERROR           if the application version for
  *                                           this updater is newer than the
  *                                           one in the MAR.
  */
 int
-ArchiveReader::VerifyProductInformation(const char *MARChannelID, 
+ArchiveReader::VerifyProductInformation(const char *MARChannelID,
                                         const char *appVersion)
 {
   if (!mArchive) {
     return ARCHIVE_NOT_OPEN;
   }
 
   ProductInformationBlock productInfoBlock;
-  int rv = mar_read_product_info_block(mArchive, 
+  int rv = mar_read_product_info_block(mArchive,
                                        &productInfoBlock);
   if (rv != OK) {
     return COULD_NOT_READ_PRODUCT_INFO_BLOCK_ERROR;
   }
 
   // Only check the MAR channel name if specified, it should be passed in from
   // the update-settings.ini file.
   if (MARChannelID && strlen(MARChannelID)) {
     // Check for at least one match in the comma separated list of values.
     const char *delimiter = " ,\t";
-    // Make a copy of the string in case a read only memory buffer 
+    // Make a copy of the string in case a read only memory buffer
     // was specified.  strtok modifies the input buffer.
     char channelCopy[512] = { 0 };
     strncpy(channelCopy, MARChannelID, sizeof(channelCopy) - 1);
     char *channel = strtok(channelCopy, delimiter);
     rv = MAR_CHANNEL_MISMATCH_ERROR;
     while(channel) {
       if (!strcmp(channel, productInfoBlock.MARChannelID)) {
         rv = OK;
@@ -158,17 +158,17 @@ ArchiveReader::VerifyProductInformation(
         -1 if appVersion is older than productInfoBlock.productVersion
         1 if appVersion is newer than productInfoBlock.productVersion
         0 if appVersion is the same as productInfoBlock.productVersion
        This even works with strings like:
         - 12.0a1 being older than 12.0a2
         - 12.0a2 being older than 12.0b1
         - 12.0a1 being older than 12.0
         - 12.0 being older than 12.1a1 */
-    int versionCompareResult = 
+    int versionCompareResult =
       mozilla::CompareVersions(appVersion, productInfoBlock.productVersion);
     if (1 == versionCompareResult) {
       rv = VERSION_DOWNGRADE_ERROR;
     }
   }
 
   free((void *)productInfoBlock.MARChannelID);
   free((void *)productInfoBlock.productVersion);
--- a/toolkit/mozapps/update/updater/archivereader.h
+++ b/toolkit/mozapps/update/updater/archivereader.h
@@ -20,17 +20,17 @@
 class ArchiveReader
 {
 public:
   ArchiveReader() : mArchive(nullptr) {}
   ~ArchiveReader() { Close(); }
 
   int Open(const NS_tchar *path);
   int VerifySignature();
-  int VerifyProductInformation(const char *MARChannelID, 
+  int VerifyProductInformation(const char *MARChannelID,
                                const char *appVersion);
   void Close();
 
   int ExtractFile(const char *item, const NS_tchar *destination);
   int ExtractFileToStream(const char *item, FILE *fp);
 
 private:
   int ExtractItemToStream(const MarItem *item, FILE *fp);
--- a/toolkit/mozapps/update/updater/bspatch.cpp
+++ b/toolkit/mozapps/update/updater/bspatch.cpp
@@ -80,17 +80,17 @@ MBS_ReadHeader(FILE* file, MBSPatchHeade
   if (sizeof(MBSPatchHeader) +
       header->cblen +
       header->difflen +
       header->extralen != uint32_t(hs.st_size))
     return UNEXPECTED_BSPATCH_ERROR;
 
   return OK;
 }
-         
+
 int
 MBS_ApplyPatch(const MBSPatchHeader *header, FILE* patchFile,
                unsigned char *fbuffer, FILE* file)
 {
   unsigned char *fbufend = fbuffer + header->slen;
 
   unsigned char *buf = (unsigned char*) malloc(header->cblen +
                                                header->difflen +
--- a/toolkit/mozapps/update/updater/bspatch.h
+++ b/toolkit/mozapps/update/updater/bspatch.h
@@ -33,17 +33,17 @@
 #define bspatch_h__
 
 #include <stdint.h>
 #include <stdio.h>
 
 typedef struct MBSPatchHeader_ {
   /* "MBDIFF10" */
   char tag[8];
-  
+
   /* Length of the file to be patched */
   uint32_t slen;
 
   /* CRC32 of the file to be patched */
   uint32_t scrc32;
 
   /* Length of the result file */
   uint32_t dlen;
--- a/toolkit/mozapps/update/updater/progressui_win.cpp
+++ b/toolkit/mozapps/update/updater/progressui_win.cpp
@@ -44,17 +44,17 @@ static BOOL  sQuit = FALSE;
 static BOOL sIndeterminate = FALSE;
 static StringTable sUIStrings;
 
 static BOOL
 GetStringsFile(WCHAR filename[MAX_PATH])
 {
   if (!GetModuleFileNameW(nullptr, filename, MAX_PATH))
     return FALSE;
- 
+
   WCHAR *dot = wcsrchr(filename, '.');
   if (!dot || wcsicmp(dot + 1, L"exe"))
     return FALSE;
 
   wcscpy(dot + 1, L"ini");
   return TRUE;
 }
 
@@ -68,41 +68,41 @@ UpdateDialog(HWND hDlg)
 
 // The code in this function is from MSDN:
 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/usingdialogboxes.asp
 static void
 CenterDialog(HWND hDlg)
 {
   RECT rc, rcOwner, rcDlg;
 
-  // Get the owner window and dialog box rectangles. 
+  // Get the owner window and dialog box rectangles.
   HWND desktop = GetDesktopWindow();
 
-  GetWindowRect(desktop, &rcOwner); 
-  GetWindowRect(hDlg, &rcDlg); 
-  CopyRect(&rc, &rcOwner); 
+  GetWindowRect(desktop, &rcOwner);
+  GetWindowRect(hDlg, &rcDlg);
+  CopyRect(&rc, &rcOwner);
 
-  // Offset the owner and dialog box rectangles so that 
-  // right and bottom values represent the width and 
-  // height, and then offset the owner again to discard 
-  // space taken up by the dialog box. 
+  // Offset the owner and dialog box rectangles so that
+  // right and bottom values represent the width and
+  // height, and then offset the owner again to discard
+  // space taken up by the dialog box.
 
-  OffsetRect(&rcDlg, -rcDlg.left, -rcDlg.top); 
-  OffsetRect(&rc, -rc.left, -rc.top); 
-  OffsetRect(&rc, -rcDlg.right, -rcDlg.bottom); 
+  OffsetRect(&rcDlg, -rcDlg.left, -rcDlg.top);
+  OffsetRect(&rc, -rc.left, -rc.top);
+  OffsetRect(&rc, -rcDlg.right, -rcDlg.bottom);
 
-  // The new position is the sum of half the remaining 
-  // space and the owner's original position. 
+  // The new position is the sum of half the remaining
+  // space and the owner's original position.
 
-  SetWindowPos(hDlg, 
-               HWND_TOP, 
-               rcOwner.left + (rc.right / 2), 
-               rcOwner.top + (rc.bottom / 2), 
-               0, 0,          // ignores size arguments 
-               SWP_NOSIZE); 
+  SetWindowPos(hDlg,
+               HWND_TOP,
+               rcOwner.left + (rc.right / 2),
+               rcOwner.top + (rc.bottom / 2),
+               0, 0,          // ignores size arguments
+               SWP_NOSIZE);
 }
 
 static void
 InitDialog(HWND hDlg)
 {
   WCHAR szwTitle[MAX_TEXT_LEN];
   WCHAR szwInfo[MAX_TEXT_LEN];
 
@@ -119,17 +119,17 @@ InitDialog(HWND hDlg)
                          MAKEINTRESOURCE(IDI_DIALOG));
   if (hIcon)
     SendMessage(hDlg, WM_SETICON, ICON_BIG, (LPARAM) hIcon);
 
   HWND hWndPro = GetDlgItem(hDlg, IDC_PROGRESS);
   SendMessage(hWndPro, PBM_SETRANGE, 0, MAKELPARAM(0, 100));
   if (sIndeterminate) {
     LONG_PTR val = GetWindowLongPtr(hWndPro, GWL_STYLE);
-    SetWindowLongPtr(hWndPro, GWL_STYLE, val|PBS_MARQUEE); 
+    SetWindowLongPtr(hWndPro, GWL_STYLE, val|PBS_MARQUEE);
     SendMessage(hWndPro,(UINT) PBM_SETMARQUEE,(WPARAM) TRUE,(LPARAM)50 );
   }
 
   // Resize the dialog to fit all of the text if necessary.
   RECT infoSize, textSize;
   HWND hWndInfo = GetDlgItem(hDlg, IDC_INFO);
 
   // Get the control's font for calculating the new size for the control
@@ -202,31 +202,31 @@ DialogProc(HWND hDlg, UINT message, WPAR
 int
 InitProgressUI(int *argc, WCHAR ***argv)
 {
   return 0;
 }
 
 /**
  * Initializes the progress UI strings
- * 
+ *
  * @return 0 on success, -1 on error
 */
 int
 InitProgressUIStrings() {
   // If we do not have updater.ini, then we should not bother showing UI.
   WCHAR filename[MAX_PATH];
   if (!GetStringsFile(filename)) {
     return -1;
   }
 
   if (_waccess(filename, 04)) {
     return -1;
   }
-  
+
   // If the updater.ini doesn't have the required strings, then we should not
   // bother showing UI.
   if (ReadStrings(filename, &sUIStrings) != OK) {
     return -1;
   }
 
   return 0;
 }
--- a/toolkit/mozapps/update/updater/resource.h
+++ b/toolkit/mozapps/update/updater/resource.h
@@ -13,17 +13,17 @@
 #define TYPE_CERT                       512
 #define IDR_PRIMARY_CERT                1004
 #define IDR_BACKUP_CERT                 1005
 #define IDS_UPDATER_IDENTITY            1006
 #define IDR_XPCSHELL_CERT               1007
 #define IDR_COMCTL32_MANIFEST           17
 
 // Next default values for new objects
-// 
+//
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        102
 #define _APS_NEXT_COMMAND_VALUE         40001
 #define _APS_NEXT_CONTROL_VALUE         1008
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
--- a/toolkit/profile/nsProfileLock.h
+++ b/toolkit/profile/nsProfileLock.h
@@ -24,19 +24,19 @@ class nsProfileLock
   : public PRCList
 #endif
 {
 public:
                             nsProfileLock();
                             nsProfileLock(nsProfileLock& src);
 
                             ~nsProfileLock();
- 
+
     nsProfileLock&          operator=(nsProfileLock& rhs);
-                       
+
     /**
      * Attempt to lock a profile directory.
      *
      * @param aProfileDir  [in] The profile directory to lock.
      * @param aUnlocker    [out] Optional. This is only returned when locking
      *                     fails with NS_ERROR_FILE_ACCESS_DENIED, and may not
      *                     be returned at all.
      * @throws NS_ERROR_FILE_ACCESS_DENIED if the profile is locked.
--- a/toolkit/system/gnome/nsAlertsIconListener.cpp
+++ b/toolkit/system/gnome/nsAlertsIconListener.cpp
@@ -240,17 +240,17 @@ nsresult
 nsAlertsIconListener::InitAlertAsync(nsIAlertNotification* aAlert,
                                      nsIObserver* aAlertListener)
 {
   if (!libNotifyHandle)
     return NS_ERROR_FAILURE;
 
   if (!notify_is_initted()) {
     // Give the name of this application to libnotify
-    nsCOMPtr<nsIStringBundleService> bundleService = 
+    nsCOMPtr<nsIStringBundleService> bundleService =
       do_GetService(NS_STRINGBUNDLE_CONTRACTID);
 
     nsAutoCString appShortName;
     if (bundleService) {
       nsCOMPtr<nsIStringBundle> bundle;
       bundleService->CreateBundle("chrome://branding/locale/brand.properties",
                                   getter_AddRefs(bundle));
       nsAutoString appName;
--- a/toolkit/system/gnome/nsGConfService.cpp
+++ b/toolkit/system/gnome/nsGConfService.cpp
@@ -164,17 +164,17 @@ nsGConfService::GetFloat(const nsACStrin
 }
 
 NS_IMETHODIMP
 nsGConfService::GetStringList(const nsACString &aKey, nsIArray** aResult)
 {
   nsCOMPtr<nsIMutableArray> items(do_CreateInstance(NS_ARRAY_CONTRACTID));
   if (!items)
     return NS_ERROR_OUT_OF_MEMORY;
-    
+
   GError* error = nullptr;
   GSList* list = gconf_client_get_list(mClient, PromiseFlatCString(aKey).get(),
                                        GCONF_VALUE_STRING, &error);
   if (error) {
     g_error_free(error);
     return NS_ERROR_FAILURE;
   }
 
@@ -183,17 +183,17 @@ nsGConfService::GetStringList(const nsAC
     if (!obj) {
       g_slist_free(list);
       return NS_ERROR_OUT_OF_MEMORY;
     }
     obj->SetData(NS_ConvertUTF8toUTF16((const char*)l->data));
     items->AppendElement(obj, false);
     g_free(l->data);
   }
-  
+
   g_slist_free(list);
   items.forget(aResult);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsGConfService::SetBool(const nsACString &aKey, bool aValue)
 {
--- a/toolkit/system/gnome/nsSystemAlertsService.cpp
+++ b/toolkit/system/gnome/nsSystemAlertsService.cpp
@@ -24,17 +24,17 @@ nsSystemAlertsService::~nsSystemAlertsSe
 = default;
 
 nsresult
 nsSystemAlertsService::Init()
 {
   return NS_OK;
 }
 
-NS_IMETHODIMP nsSystemAlertsService::ShowAlertNotification(const nsAString & aImageUrl, const nsAString & aAlertTitle, 
+NS_IMETHODIMP nsSystemAlertsService::ShowAlertNotification(const nsAString & aImageUrl, const nsAString & aAlertTitle,
                                                            const nsAString & aAlertText, bool aAlertTextClickable,
                                                            const nsAString & aAlertCookie,
                                                            nsIObserver * aAlertListener,
                                                            const nsAString & aAlertName,
                                                            const nsAString & aBidi,
                                                            const nsAString & aLang,
                                                            const nsAString & aData,
                                                            nsIPrincipal * aPrincipal,
--- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
@@ -21,18 +21,18 @@ public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSISYSTEMPROXYSETTINGS
 
   nsUnixSystemProxySettings() { mProxyFactory = nullptr; }
   nsresult Init();
 
 private:
   ~nsUnixSystemProxySettings() {
-    if (mProxyFactory) 
-      px_proxy_factory_free(mProxyFactory); 
+    if (mProxyFactory)
+      px_proxy_factory_free(mProxyFactory);
   }
 
   pxProxyFactory *mProxyFactory;
 };
 
 NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings)
 
 NS_IMETHODIMP
@@ -131,11 +131,11 @@ static const mozilla::Module::ContractID
   { nullptr }
 };
 
 static const mozilla::Module kUnixProxyModule = {
   mozilla::Module::kVersion,
   kUnixProxyCIDs,
   kUnixProxyContracts
 };
-        
+
 NSMODULE_DEFN(nsUnixProxyModule) = &kUnixProxyModule;
 
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
@@ -29,17 +29,17 @@ public:
   nsUnixSystemProxySettings()
     : mSchemeProxySettings(4)
   {
   }
   nsresult Init();
 
 private:
   ~nsUnixSystemProxySettings() = default;
-  
+
   nsCOMPtr<nsIGConfService> mGConf;
   nsCOMPtr<nsIGSettingsService> mGSettings;
   nsCOMPtr<nsIGSettingsCollection> mProxySettings;
   nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
   bool IsProxyMode(const char* aMode);
   nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
   nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost, int32_t aPort, nsACString& aResult);
   nsresult GetProxyFromGSettings(const nsACString& aScheme, const nsACString& aHost, int32_t aPort, nsACString& aResult);
@@ -62,17 +62,17 @@ nsUnixSystemProxySettings::Init()
   mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
   if (mGSettings) {
     mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
                                        getter_AddRefs(mProxySettings));
   }
   if (!mProxySettings) {
     mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
   }
-  
+
   return NS_OK;
 }
 
 bool
 nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
 {
   nsAutoCString mode;
   return NS_SUCCEEDED(mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/mode"), mode)) &&
@@ -103,64 +103,64 @@ nsUnixSystemProxySettings::GetPACURI(nsA
   aResult.Truncate();
   return NS_OK;
 }
 
 static bool
 IsInNoProxyList(const nsACString& aHost, int32_t aPort, const char* noProxyVal)
 {
   NS_ASSERTION(aPort >= 0, "Negative port?");
-  
+
   nsAutoCString noProxy(noProxyVal);
   if (noProxy.EqualsLiteral("*"))
     return true;
-    
+
   noProxy.StripWhitespace();
-  
+
   nsReadingIterator<char> pos;
   nsReadingIterator<char> end;
   noProxy.BeginReading(pos);
   noProxy.EndReading(end);
   while (pos != end) {
     nsReadingIterator<char> last = pos;
     nsReadingIterator<char> nextPos;
     if (FindCharInReadable(',', last, end)) {
       nextPos = last;
       ++nextPos;
     } else {
       last = end;
       nextPos = end;
     }
-    
+
     nsReadingIterator<char> colon = pos;
     int32_t port = -1;
     if (FindCharInReadable(':', colon, last)) {
       ++colon;
       nsDependentCSubstring portStr(colon, last);
       nsAutoCString portStr2(portStr); // We need this for ToInteger. String API's suck.
       nsresult err;
       port = portStr2.ToInteger(&err);
       if (NS_FAILED(err)) {
         port = -2; // don't match any port, so we ignore this pattern
       }
       --colon;
     } else {
       colon = last;
     }
-    
+
     if (port == -1 || port == aPort) {
       nsDependentCSubstring hostStr(pos, colon);
       // By using StringEndsWith instead of an equality comparator, we can include sub-domains
       if (StringEndsWith(aHost, hostStr, nsCaseInsensitiveCStringComparator()))
         return true;
     }
-    
+
     pos = nextPos;
   }
-  
+
   return false;
 }
 
 static void SetProxyResult(const char* aType, const nsACString& aHost,
                            int32_t aPort, nsACString& aResult)
 {
   aResult.AppendASCII(aType);
   aResult.Append(' ');
@@ -184,23 +184,23 @@ GetProxyFromEnvironment(const nsACString
   if (!proxyVal) {
     proxyVal = PR_GetEnv("all_proxy");
     if (!proxyVal) {
       // Return failure so that the caller can detect the failure and
       // fall back to other proxy detection (e.g., WPAD)
       return NS_ERROR_FAILURE;
     }
   }
-  
+
   const char* noProxyVal = PR_GetEnv("no_proxy");
   if (noProxyVal && IsInNoProxyList(aHost, aPort, noProxyVal)) {
     aResult.AppendLiteral("DIRECT");
     return NS_OK;
   }
-  
+
   // Use our URI parser to crack the proxy URI
   nsCOMPtr<nsIURI> proxyURI;
   nsresult rv = NS_NewURI(getter_AddRefs(proxyURI), proxyVal);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Is there a way to specify "socks://" or something in these environment
   // variables? I can't find any documentation.
   bool isHTTP;
@@ -228,17 +228,17 @@ nsUnixSystemProxySettings::SetProxyResul
   nsAutoCString hostKey;
   hostKey.AppendASCII(aKeyBase);
   hostKey.AppendLiteral("host");
   nsAutoCString host;
   nsresult rv = mGConf->GetString(hostKey, host);
   NS_ENSURE_SUCCESS(rv, rv);
   if (host.IsEmpty())
     return NS_ERROR_FAILURE;
-  
+
   nsAutoCString portKey;
   portKey.AppendASCII(aKeyBase);
   portKey.AppendLiteral("port");
   int32_t port;
   rv = mGConf->GetInt(portKey, &port);
   NS_ENSURE_SUCCESS(rv, rv);
 
   /* When port is 0, proxy is not considered as enabled even if host is set. */
@@ -264,21 +264,21 @@ nsUnixSystemProxySettings::SetProxyResul
     mSchemeProxySettings.Put(key, proxy_settings);
   }
 
   nsAutoCString host;
   rv = proxy_settings->GetString(NS_LITERAL_CSTRING("host"), host);
   NS_ENSURE_SUCCESS(rv, rv);
   if (host.IsEmpty())
     return NS_ERROR_FAILURE;
-  
+
   int32_t port;
   rv = proxy_settings->GetInt(NS_LITERAL_CSTRING("port"), &port);
   NS_ENSURE_SUCCESS(rv, rv);
-    
+
   /* When port is 0, proxy is not considered as enabled even if host is set. */
   if (port == 0)
     return NS_ERROR_FAILURE;
 
   SetProxyResult(aType, host, port, aResult);
   return NS_OK;
 }
 
@@ -332,17 +332,17 @@ static bool ConvertToIPV6Addr(const nsAC
         return false;
     }
   } else if (addr.raw.family == PR_AF_INET6) {
     // copy the address
     memcpy(aAddr, &addr.ipv6.ip, sizeof(PRIPv6Addr));
   } else {
     return false;
   }
-  
+
   return true;
 }
 
 static bool HostIgnoredByProxy(const nsACString& aIgnore,
                                const nsACString& aHost)
 {
   if (aIgnore.Equals(aHost, nsCaseInsensitiveCStringComparator()))
     return true;
@@ -376,33 +376,33 @@ static bool HostIgnoredByProxy(const nsA
   nsDependentCSubstring ignoreStripped(start, slash);
   PRIPv6Addr ignoreAddr, hostAddr;
   if (!ConvertToIPV6Addr(ignoreStripped, &ignoreAddr, &mask) ||
       !ConvertToIPV6Addr(aHost, &hostAddr, nullptr))
     return false;
 
   proxy_MaskIPv6Addr(ignoreAddr, mask);
   proxy_MaskIPv6Addr(hostAddr, mask);
-  
+
   return memcmp(&ignoreAddr, &hostAddr, sizeof(PRIPv6Addr)) == 0;
 }
 
 nsresult
 nsUnixSystemProxySettings::GetProxyFromGConf(const nsACString& aScheme,
                                              const nsACString& aHost,
                                              int32_t aPort,
                                              nsACString& aResult)
 {
   bool masterProxySwitch = false;
   mGConf->GetBool(NS_LITERAL_CSTRING("/system/http_proxy/use_http_proxy"), &masterProxySwitch);
   // if no proxy is set in GConf return NS_ERROR_FAILURE
   if (!(IsProxyMode("manual") || masterProxySwitch)) {
     return NS_ERROR_FAILURE;
   }
-  
+
   nsCOMPtr<nsIArray> ignoreList;
   if (NS_SUCCEEDED(mGConf->GetStringList(NS_LITERAL_CSTRING("/system/http_proxy/ignore_hosts"),
                                          getter_AddRefs(ignoreList))) && ignoreList) {
     uint32_t len = 0;
     ignoreList->GetLength(&len);
     for (uint32_t i = 0; i < len; ++i) {
       nsCOMPtr<nsISupportsString> str = do_QueryElementAt(ignoreList, i);
       if (str) {
@@ -422,40 +422,40 @@ nsUnixSystemProxySettings::GetProxyFromG
   mGConf->GetBool(NS_LITERAL_CSTRING("/system/http_proxy/use_same_proxy"), &useHttpProxyForAll);
 
   nsresult rv;
   if (!useHttpProxyForAll) {
     rv = SetProxyResultFromGConf("/system/proxy/socks_", "SOCKS", aResult);
     if (NS_SUCCEEDED(rv))
       return rv;
   }
-  
+
   if (aScheme.LowerCaseEqualsLiteral("http") || useHttpProxyForAll) {
     rv = SetProxyResultFromGConf("/system/http_proxy/", "PROXY", aResult);
   } else if (aScheme.LowerCaseEqualsLiteral("https")) {
     rv = SetProxyResultFromGConf("/system/proxy/secure_", "PROXY", aResult);
   } else if (aScheme.LowerCaseEqualsLiteral("ftp")) {
     rv = SetProxyResultFromGConf("/system/proxy/ftp_", "PROXY", aResult);
   } else {
     rv = NS_ERROR_FAILURE;
   }
-  
+
   return rv;
 }
 
 nsresult
 nsUnixSystemProxySettings::GetProxyFromGSettings(const nsACString& aScheme,
                                                  const nsACString& aHost,
                                                  int32_t aPort,
                                                  nsACString& aResult)
 {
-  nsCString proxyMode; 
+  nsCString proxyMode;
   nsresult rv = mProxySettings->GetString(NS_LITERAL_CSTRING("mode"), proxyMode);
   NS_ENSURE_SUCCESS(rv, rv);
-  
+
   // return NS_ERROR_FAILURE when no proxy is set
   if (!proxyMode.EqualsLiteral("manual")) {
     return NS_ERROR_FAILURE;
   }
 
   nsCOMPtr<nsIArray> ignoreList;
   if (NS_SUCCEEDED(mProxySettings->GetStringList(NS_LITERAL_CSTRING("ignore-hosts"),
                                                  getter_AddRefs(ignoreList))) && ignoreList) {
@@ -475,32 +475,32 @@ nsUnixSystemProxySettings::GetProxyFromG
     }
   }
 
   if (aScheme.LowerCaseEqualsLiteral("http")) {
     rv = SetProxyResultFromGSettings("org.gnome.system.proxy.http", "PROXY", aResult);
   } else if (aScheme.LowerCaseEqualsLiteral("https")) {
     rv = SetProxyResultFromGSettings("org.gnome.system.proxy.https", "PROXY", aResult);
     /* Try to use HTTP proxy when HTTPS proxy is not explicitly defined */
-    if (rv != NS_OK) 
+    if (rv != NS_OK)
       rv = SetProxyResultFromGSettings("org.gnome.system.proxy.http", "PROXY", aResult);
   } else if (aScheme.LowerCaseEqualsLiteral("ftp")) {
     rv = SetProxyResultFromGSettings("org.gnome.system.proxy.ftp", "PROXY", aResult);
   } else {
     rv = NS_ERROR_FAILURE;
   }
   if (rv != NS_OK) {
      /* If proxy for scheme is not specified, use SOCKS proxy for all schemes */
      rv = SetProxyResultFromGSettings("org.gnome.system.proxy.socks", "SOCKS", aResult);
   }
-  
+
   if (NS_FAILED(rv)) {
     aResult.AppendLiteral("DIRECT");
   }
-  
+
   return NS_OK;
 }
 
 nsresult
 nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
                                           const nsACString & aScheme,
                                           const nsACString & aHost,
                                           const int32_t      aPort,
--- a/toolkit/xre/glxtest.cpp
+++ b/toolkit/xre/glxtest.cpp
@@ -166,20 +166,20 @@ void glxtest()
 #ifdef __OpenBSD__
   #define LIBGL_FILENAME "libGL.so"
 #else
   #define LIBGL_FILENAME "libGL.so.1"
 #endif
   void *libgl = dlopen(LIBGL_FILENAME, RTLD_LAZY);
   if (!libgl)
     fatal_error("Unable to load " LIBGL_FILENAME);
-  
+
   typedef void* (* PFNGLXGETPROCADDRESS) (const char *);
   PFNGLXGETPROCADDRESS glXGetProcAddress = cast<PFNGLXGETPROCADDRESS>(dlsym(libgl, "glXGetProcAddress"));
-  
+
   if (!glXGetProcAddress)
     fatal_error("Unable to find glXGetProcAddress in " LIBGL_FILENAME);
 
   typedef GLXFBConfig* (* PFNGLXQUERYEXTENSION) (Display *, int *, int *);
   PFNGLXQUERYEXTENSION glXQueryExtension = cast<PFNGLXQUERYEXTENSION>(glXGetProcAddress("glXQueryExtension"));
 
   typedef GLXFBConfig* (* PFNGLXQUERYVERSION) (Display *, int *, int *);
   PFNGLXQUERYVERSION glXQueryVersion = cast<PFNGLXQUERYVERSION>(dlsym(libgl, "glXQueryVersion"));
@@ -208,17 +208,17 @@ void glxtest()
       !glGetString)
   {
     fatal_error("glXGetProcAddress couldn't find required functions");
   }
   ///// Open a connection to the X server /////
   Display *dpy = XOpenDisplay(nullptr);
   if (!dpy)
     fatal_error("Unable to open a connection to the X server");
-  
+
   ///// Check that the GLX extension is present /////
   if (!glXQueryExtension(dpy, nullptr, nullptr))
     fatal_error("GLX extension missing");
 
   XSetErrorHandler(x_error_handler);
 
   ///// Get a visual /////
    int attribs[] = {
@@ -244,17 +244,17 @@ void glxtest()
                        0, vInfo->depth, InputOutput, vInfo->visual,
                        CWBorderPixel | CWColormap, &swa);
 
   ///// Get a GL context and make it current //////
   GLXContext context = glXCreateContext(dpy, vInfo, nullptr, True);
   glXMakeCurrent(dpy, window, context);
 
   ///// Look for this symbol to determine texture_from_pixmap support /////
-  void* glXBindTexImageEXT = glXGetProcAddress("glXBindTexImageEXT"); 
+  void* glXBindTexImageEXT = glXGetProcAddress("glXBindTexImageEXT");
 
   ///// Get GL vendor/renderer/versions strings /////
   enum { bufsize = 1024 };
   char buf[bufsize];
   const GLubyte *vendorString = glGetString(GL_VENDOR);
   const GLubyte *rendererString = glGetString(GL_RENDERER);
   const GLubyte *versionString = glGetString(GL_VERSION);
 
@@ -316,17 +316,17 @@ bool fire_glxtest_process()
       close(pfd[0]);
       close(pfd[1]);
 #if MOZ_WIDGET_GTK == 2
       close(gtkpfd[0]);
       close(gtkpfd[1]);
 #endif
       return false;
   }
-  // The child exits early to avoid running the full shutdown sequence and avoid conflicting with threads 
+  // The child exits early to avoid running the full shutdown sequence and avoid conflicting with threads
   // we have already spawned (like the profiler).
   if (pid == 0) {
       close(pfd[0]);
       write_end_of_the_pipe = pfd[1];
 #if MOZ_WIDGET_GTK == 2
       close(gtkpfd[0]);
       gtk_write_end_of_the_pipe = gtkpfd[1];
 #endif
--- a/toolkit/xre/nsAppStartupNotifier.cpp
+++ b/toolkit/xre/nsAppStartupNotifier.cpp
@@ -40,17 +40,17 @@ NS_IMETHODIMP nsAppStartupNotifier::Obse
     while (NS_SUCCEEDED(enumerator->GetNext(getter_AddRefs(entry)))) {
         nsCOMPtr<nsISupportsCString> category = do_QueryInterface(entry, &rv);
 
         if (NS_SUCCEEDED(rv)) {
             nsAutoCString categoryEntry;
             rv = category->GetData(categoryEntry);
 
             nsXPIDLCString contractId;
-            categoryManager->GetCategoryEntry(aTopic, 
+            categoryManager->GetCategoryEntry(aTopic,
                                               categoryEntry.get(),
                                               getter_Copies(contractId));
 
             if (NS_SUCCEEDED(rv)) {
 
                 // If we see the word "service," in the beginning
                 // of the contractId then we create it as a service
                 // if not we do a createInstance
@@ -62,17 +62,17 @@ NS_IMETHODIMP nsAppStartupNotifier::Obse
                     startupInstance = do_CreateInstance(contractId, &rv);
 
                 if (NS_SUCCEEDED(rv)) {
                     // Try to QI to nsIObserver
                     nsCOMPtr<nsIObserver> startupObserver =
                         do_QueryInterface(startupInstance, &rv);
                     if (NS_SUCCEEDED(rv)) {
                         rv = startupObserver->Observe(nullptr, aTopic, nullptr);
-     
+
                         // mainly for debugging if you want to know if your observer worked.
                         NS_ASSERTION(NS_SUCCEEDED(rv), "Startup Observer failed!\n");
                     }
                 }
                 else {
                   #ifdef DEBUG
                     nsAutoCString warnStr("Cannot create startup observer : ");
                     warnStr += contractId.get();
--- a/toolkit/xre/nsGDKErrorHandler.cpp
+++ b/toolkit/xre/nsGDKErrorHandler.cpp
@@ -43,17 +43,17 @@ GdkErrorHandler(const gchar *log_domain,
       NS_RUNTIMEABORT(message);
 
     start += serialString.Length();
     errno = 0;
     event.serial = strtol(buffer.BeginReading() + start, &endptr, 10);
     if (errno)
       NS_RUNTIMEABORT(message);
 
-    NS_NAMED_LITERAL_CSTRING(errorCodeString, " error_code ");    
+    NS_NAMED_LITERAL_CSTRING(errorCodeString, " error_code ");
     if (!StringBeginsWith(Substring(endptr, buffer.EndReading()), errorCodeString))
       NS_RUNTIMEABORT(message);
 
     errno = 0;
     event.error_code = strtol(endptr + errorCodeString.Length(), &endptr, 10);
     if (errno)
       NS_RUNTIMEABORT(message);
 
--- a/toolkit/xre/nsIAppStartupNotifier.h
+++ b/toolkit/xre/nsIAppStartupNotifier.h
@@ -4,43 +4,43 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef nsIAppStartupNotifier_h___
 #define nsIAppStartupNotifier_h___
 
 #include "nsIObserver.h"
 
 /*
- Some components need to be run at the startup of mozilla or embedding - to 
+ Some components need to be run at the startup of mozilla or embedding - to
  start new services etc.
 
- This interface provides a generic way to start up arbitrary components 
- without requiring them to hack into main1() (or into NS_InitEmbedding) as 
- it's currently being done for services such as wallet, command line handlers 
+ This interface provides a generic way to start up arbitrary components
+ without requiring them to hack into main1() (or into NS_InitEmbedding) as
+ it's currently being done for services such as wallet, command line handlers
  etc.
 
- We will have a category called "app-startup" which components register 
+ We will have a category called "app-startup" which components register
  themselves in using the CategoryManager.
 
- Components can also (optionally) add the word "service," as a prefix 
+ Components can also (optionally) add the word "service," as a prefix
  to the "value" they pass in during a call to AddCategoryEntry() as
  shown below:
 
     categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY, "testcomp",
                         "service," NS_WALLETSERVICE_CONTRACTID
                         true, true,
                         getter_Copies(previous));
 
- Presence of the "service" keyword indicates the components desire to 
+ Presence of the "service" keyword indicates the components desire to
  be started as a service. When the "service" keyword is not present
  we just do a do_CreateInstance.
 
  When mozilla starts (and when NS_InitEmbedding()) is invoked
- we create an instance of the AppStartupNotifier component (which 
- implements nsIObserver) and invoke its Observe() method. 
+ we create an instance of the AppStartupNotifier component (which
+ implements nsIObserver) and invoke its Observe() method.
 
  Observe()  will enumerate the components registered into the
  APPSTARTUP_CATEGORY and notify them that startup has begun
  and release them.
 */
 
 #define NS_APPSTARTUPNOTIFIER_CONTRACTID "@mozilla.org/embedcomp/appstartup-notifier;1"
 
--- a/toolkit/xre/nsNativeAppSupportWin.h
+++ b/toolkit/xre/nsNativeAppSupportWin.h
@@ -1,13 +1,13 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
+
 /* This file has *public* stuff needed for the Win32 implementation of
  * the nsINativeAppSupport interface.  It has to be broken out into a
  * separate file in order to ensure that the generated .h file can be
  * used in a Win32 .rc file.  See /mozilla/xpfe/bootstrap/splash.rc.
  *
  * This file, and the generated .h, are only needed on Win32 platforms.
  */
 
--- a/toolkit/xre/nsSigHandlers.cpp
+++ b/toolkit/xre/nsSigHandlers.cpp
@@ -287,17 +287,17 @@ void InstallSignalHandlers(const char *a
 #endif
 
 #if defined(SOLARIS)
 #define NOFILES 512
 
     // Boost Solaris file descriptors
     {
 	struct rlimit rl;
-	
+
 	if (getrlimit(RLIMIT_NOFILE, &rl) == 0)
 
 	    if (rl.rlim_cur < NOFILES) {
 		rl.rlim_cur = NOFILES;
 
 		if (setrlimit(RLIMIT_NOFILE, &rl) < 0) {
 		    perror("setrlimit(RLIMIT_NOFILE)");
 		    fprintf(stderr, "Cannot exceed hard limit for open files");
--- a/toolkit/xre/nsWindowsRestart.cpp
+++ b/toolkit/xre/nsWindowsRestart.cpp
@@ -212,17 +212,17 @@ WinLaunchChild(const wchar_t *exePath,
 
   BOOL ok = WinLaunchChild(exePath, argc, argvConverted, userToken, hProcess);
   FreeAllocStrings(argc, argvConverted);
   return ok;
 }
 
 BOOL
 WinLaunchChild(const wchar_t *exePath,
-               int argc, 
+               int argc,
                wchar_t **argv,
                HANDLE userToken,
                HANDLE *hProcess)
 {
   wchar_t *cl;
   BOOL ok;
 
   cl = MakeCommandLine(argc, argv);
@@ -249,17 +249,17 @@ WinLaunchChild(const wchar_t *exePath,
   } else {
     // Create an environment block for the process we're about to start using
     // the user's token.
     LPVOID environmentBlock = nullptr;
     if (!CreateEnvironmentBlock(&environmentBlock, userToken, TRUE)) {
       environmentBlock = nullptr;
     }
 
-    ok = CreateProcessAsUserW(userToken, 
+    ok = CreateProcessAsUserW(userToken,
                               exePath,
                               cl,
                               nullptr,  // no special security attributes
                               nullptr,  // no special thread attributes
                               FALSE,    // don't inherit filehandles
                               0,        // creation flags
                               environmentBlock,
                               nullptr,  // use my current directory
--- a/toolkit/xre/nsX11ErrorHandler.cpp
+++ b/toolkit/xre/nsX11ErrorHandler.cpp
@@ -119,17 +119,17 @@ X11Error(Display *display, XErrorEvent *
 
 #ifdef MOZ_CRASHREPORTER
   switch (XRE_GetProcessType()) {
   case GeckoProcessType_Default:
   case GeckoProcessType_Plugin:
   case GeckoProcessType_Content:
     CrashReporter::AppendAppNotesToCrashReport(notes);
     break;
-  default: 
+  default:
     ; // crash report notes not supported.
   }
 #endif
 
 #ifdef DEBUG
   // The resource id is unlikely to be useful in a crash report without
   // context of other ids, but add it to the debug console output.
   notes.AppendLiteral("; id=0x");
--- a/tools/jprof/leaky.cpp
+++ b/tools/jprof/leaky.cpp
@@ -87,17 +87,17 @@ htmlify(const char *in)
   newlen = strlen(in) + n * 3 + 1;
   out = new char[newlen];
 
   // Copy the input to the output, with substitutions.
   p = in;
   q = out;
   do
   {
-    if (*p == '<') 
+    if (*p == '<')
     {
       strcpy(q, "&lt;");
       q += 4;
     }
     else if (*p == '>')
     {
       strcpy(q, "&gt;");
       q += 4;
@@ -144,17 +144,17 @@ leaky::leaky()
 
 leaky::~leaky()
 {
 }
 
 void leaky::usageError()
 {
   fprintf(stderr, "Usage: %s [-v] [-t] [-e exclude] [-i include] [-s stackdepth] [--last] [--all] [--start n [--end m]] [--cleo] [--output-dir dir] prog log [log2 ...]\n", (char*) applicationName);
-  fprintf(stderr, 
+  fprintf(stderr,
           "\t-v: verbose\n"
           "\t-t | --threads: split threads\n"
           "\t--only-thread n: only profile thread N\n"
           "\t-i include-id: stack must include specified id\n"
           "\t-e exclude-id: stack must NOT include specified id\n"
           "\t-s stackdepth: Limit depth looked at from captured stack frames\n"
           "\t--last: only profile the last capture section\n"
           "\t--start n [--end m]: profile n to m (or end) capture sections\n"
@@ -404,17 +404,17 @@ void leaky::open(char *logFile)
         {
           threadArray[i] = lep->thread;
           numThreads++;
           if (!quiet)
             fprintf(stderr,"new thread %d\n",lep->thread);
         }
       }
     }
-  }  
+  }
   if (!quiet)
     fprintf(stderr,"Done collecting: sections %d: first=%p, last=%p, numThreads=%d\n",
             section,(void*)firstLogEntry,(void*)lastLogEntry,numThreads);
 
   if (!cleo) {
     fprintf(outputfd,"<html><head><title>Jprof Profile Report</title></head><body>\n");
     fprintf(outputfd,"<h1><center>Jprof Profile Report</center></h1>\n");
   }
@@ -642,21 +642,21 @@ void leaky::generateReportHTML(FILE *fp,
           "<h2><A NAME=hier_%d></A><center><a href=\"http://dxr.mozilla.org/mozilla-central/source/tools/jprof/README.html#hier\">Hierarchical Profile</a></center></h2><hr>\n",
           thread);
   fprintf(fp, "<pre>\n");
   fprintf(fp, "%6s %6s         %4s      %s\n",
           "index", "Count", "Hits", "Function Name");
 
   for(i=0; i<usefulSymbols && countArray[rankingTable[i]]>0; i++) {
     Symbol **sp=&externalSymbols[rankingTable[i]];
-    
+
     (*sp)->cntP.printReport(fp, this, rankingTable[i], totalTimerHits);
 
     char *symname = htmlify((*sp)->name);
-    fprintf(fp, "%6d %6d (%3.1f%%)%s <a name=%d>%8d (%3.1f%%)</a>%s <b>%s</b>\n", 
+    fprintf(fp, "%6d %6d (%3.1f%%)%s <a name=%d>%8d (%3.1f%%)</a>%s <b>%s</b>\n",
             rankingTable[i],
             (*sp)->timerHit, ((*sp)->timerHit*1000/totalTimerHits)/10.0,
             ((*sp)->timerHit*1000/totalTimerHits)/10.0 >= 10.0 ? "" : " ",
             rankingTable[i], countArray[rankingTable[i]],
             (countArray[rankingTable[i]]*1000/totalTimerHits)/10.0,
             (countArray[rankingTable[i]]*1000/totalTimerHits)/10.0 >= 10.0 ? "" : " ",
             symname);
     delete [] symname;
@@ -708,17 +708,17 @@ void leaky::generateReportHTML(FILE *fp,
 
   fprintf(fp, "Total hit count: %d\n", totalTimerHits);
   fprintf(fp, "Count %%Total  Function Name\n");
   // Now loop for as long as we have timer hits
   for(i=0;
       i<usefulSymbols && externalSymbols[rankingTable[i]]->timerHit>0; i++) {
 
     Symbol **sp=&externalSymbols[rankingTable[i]];
-    
+
     char *symname = htmlify((*sp)->name);
     fprintf(fp, "<a href=\"#%d\">%3d   %-2.1f     %s</a>\n",
             rankingTable[i], (*sp)->timerHit,
             ((float)(*sp)->timerHit/(float)totalTimerHits)*100.0, symname);
     delete [] symname;
   }
 }
 
@@ -745,17 +745,17 @@ void leaky::analyze(int thread)
   memset(flagArray, -1, sizeof(flagArray[0])*usefulSymbols);
 
   if (cleo)
     fprintf(outputfd,"m-Start\n");
 
   // This loop walks through all the call stacks we recorded
   // --last, --start and --end can restrict it, as can excludes/includes
   stacks = 0;
-  for(malloc_log_entry* lep=firstLogEntry; 
+  for(malloc_log_entry* lep=firstLogEntry;
     lep < lastLogEntry;
     lep = reinterpret_cast<malloc_log_entry*>(&lep->pcs[lep->numpcs])) {
 
     if ((thread != 0 && lep->thread != thread) ||
         excluded(lep) || !included(lep))
     {
       continue;
     }
@@ -803,17 +803,17 @@ void leaky::analyze(int thread)
           if (i > 0 && !strcmp(externalSymbols[idx]->name, "__restore_rt")) {
             --pcp;
             --i;
             idx = findSymbolIndex(reinterpret_cast<u_long>(*pcp));
             if (idx < 0) {
               continue;
             }
           }
-	
+
           // If we have not seen this symbol before count it and mark it as seen
           if(flagArray[idx]!=stacks && ((flagArray[idx]=stacks) || true)) {
             ++countArray[idx];
           }
 
           // We know who we are and we know who our parrent is.  Count this
           if(parrentIdx>=0) {
             externalSymbols[parrentIdx]->regChild(idx);
@@ -836,17 +836,17 @@ void leaky::analyze(int thread)
     generateReportHTML(outputfd, countArray, stacks, thread);
 }
 
 void FunctionCount::printReport(FILE *fp, leaky *lk, int parent, int total)
 {
     const char *fmt = "                      <A href=\"#%d\">%8d (%3.1f%%)%s %s</A>%s\n";
 
     int nmax, tmax=((~0U)>>1);
-    
+
     do {
 	nmax=0;
 	for(int j=getSize(); --j>=0;) {
 	    int cnt = getCount(j);
 	    if(cnt==tmax) {
 		int idx = getIndex(j);
 		char *symname = htmlify(lk->indexToName(idx));
                 fprintf(fp, fmt, idx, getCount(j),
--- a/tools/jprof/stub/libmalloc.cpp
+++ b/tools/jprof/stub/libmalloc.cpp
@@ -306,17 +306,17 @@ public:
         size -= initial;
         if (size != 0) {
 #if DEBUG_CIRCULAR
             fprintf(stderr,"wrapping by %d bytes\n",size);
 #endif
             memcpy(buffer,data,size);
             tail = &(((unsigned char *)buffer)[size]);
         }
-            
+
         used++;
         DUMB_UNLOCK();
 
         return true;
     }
 
     // for external access to the buffer (saving)
     void lock() {
@@ -380,17 +380,17 @@ JprofBufferAppend(malloc_log_entry *me)
 }
 
 JPROF_STATIC void
 JprofBufferDump()
 {
     JprofBuffer->lock();
 #if DEBUG_CIRCULAR
     fprintf(stderr,"dumping JP_CIRCULAR buffer, %d of %d bytes\n",
-            JprofBuffer->tail > JprofBuffer->head ? 
+            JprofBuffer->tail > JprofBuffer->head ?
               JprofBuffer->tail - JprofBuffer->head :
               JprofBuffer->buffer_size + JprofBuffer->tail - JprofBuffer->head,
             JprofBuffer->buffer_size);
 #endif
     if (JprofBuffer->tail >= JprofBuffer->head) {
         write(gLogFD, JprofBuffer->head, JprofBuffer->tail - JprofBuffer->head);
     } else {
         write(gLogFD, JprofBuffer->head, &(JprofBuffer->buffer[JprofBuffer->buffer_size]) - JprofBuffer->head);
@@ -494,17 +494,17 @@ static int setupRTCSignals(int hz, struc
 
 static int enableRTCSignals(bool enable)
 {
     static bool enabled = false;
     if (enabled == enable) {
         return 0;
     }
     enabled = enable;
-    
+
     int flags = fcntl(rtcFD, F_GETFL);
     if (flags < 0) {
         perror("JPROF_RTC setup: fcntl(/dev/rtc, F_GETFL)");
         return 0;
     }
 
     if (enable) {
         flags |= FASYNC;
@@ -512,17 +512,17 @@ static int enableRTCSignals(bool enable)
         flags &= ~FASYNC;
     }
 
     if (fcntl(rtcFD, F_SETFL, flags) == -1) {
         if (enable) {
             perror("JPROF_RTC setup: fcntl(/dev/rtc, F_SETFL, flags | FASYNC)");
         } else {
             perror("JPROF_RTC setup: fcntl(/dev/rtc, F_SETFL, flags & ~FASYNC)");
-        }            
+        }
         return 0;
     }
 
     return 1;
 }
 #endif
 
 JPROF_STATIC void StackHook(
@@ -668,17 +668,17 @@ NS_EXPORT_(void) setupProfilingStuff(voi
                     fprintf(stderr, "JP_RTC_HZ must be power of two and >= 2, "
                             "but %d was provided; using default of 2048\n",
                             rtcHz);
                     rtcHz = 2048;
                 }
 #else
                 fputs("JP_RTC_HZ found, but RTC profiling only supported on "
                       "Linux!\n", stderr);
-                  
+
 #endif
             }
             const char *f = strstr(tst,"JP_FILENAME=");
             if (f)
                 f = f + strlen("JP_FILENAME=");
             else
                 f = M_LOGFILE;
 
@@ -756,17 +756,17 @@ NS_EXPORT_(void) setupProfilingStuff(voi
 		    stop_action.sa_handler = ClearProfilingHook;
 		    stop_action.sa_mask  = mset;
 		    stop_action.sa_flags = SA_RESTART;
 		    sigaction(SIGUSR2, &stop_action, nullptr);
 
                     printf("Jprof: Initialized signal handler and set "
                            "timer for %lu %s, %d s "
                            "initial delay\n",
-                           rtcHz ? rtcHz : timerMilliSec, 
+                           rtcHz ? rtcHz : timerMilliSec,
                            rtcHz ? "Hz" : "ms",
                            firstDelay);
 
 		    if(startTimer) {
 #if defined(linux)
                         /* If we have an initial delay we can just use
                            startSignalCounter to set up a timer to fire the
                            first stackHook after that delay.  When that happens
--- a/tools/profiler/core/EHABIStackWalk.cpp
+++ b/tools/profiler/core/EHABIStackWalk.cpp
@@ -176,17 +176,17 @@ size_t EHABIStackWalk(const mcontext_t &
     if (!table)
       break;
     const EHEntry *entry = table->lookup(pc);
     if (!entry)
       break;
     if (!state.unwind(entry, stackBase))
       break;
   }
-  
+
   return count;
 }
 
 
 class EHInterp {
 public:
   // Note that stackLimit is exclusive and stackBase is inclusive
   // (i.e, stackLimit < SP <= stackBase), following the convention
--- a/tools/profiler/core/platform-linux-android.cpp
+++ b/tools/profiler/core/platform-linux-android.cpp
@@ -9,17 +9,17 @@
 //    notice, this list of conditions and the following disclaimer.
 //  * Redistributions in binary form must reproduce the above copyright
 //    notice, this list of conditions and the following disclaimer in
 //    the documentation and/or other materials provided with the
 //    distribution.
 //  * Neither the name of Google, Inc. nor the names of its contributors
 //    may be used to endorse or promote products derived from this
 //    software without specific prior written permission.
-// 
+//
 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
--- a/tools/profiler/core/platform.h
+++ b/tools/profiler/core/platform.h
@@ -7,17 +7,17 @@
 //    notice, this list of conditions and the following disclaimer.
 //  * Redistributions in binary form must reproduce the above copyright
 //    notice, this list of conditions and the following disclaimer in
 //    the documentation and/or other materials provided with the
 //    distribution.
 //  * Neither the name of Google, Inc. nor the names of its contributors
 //    may be used to endorse or promote products derived from this
 //    software without specific prior written permission.
-// 
+//
 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
--- a/tools/profiler/lul/LulDwarf.cpp
+++ b/tools/profiler/lul/LulDwarf.cpp
@@ -1865,32 +1865,32 @@ int32_t parseDwarfExpr(Summariser* summ,
   const char* end1   = cursor + expr.length();
 
   char buf[100];
   if (debug) {
     SprintfLiteral(buf, "LUL.DW  << DwarfExpr, len is %d\n",
                    (int)(end1 - cursor));
     summ->Log(buf);
   }
-  
+
   // Add a marker for the start of this expression.  In it, indicate
   // whether or not the CFA should be pushed onto the stack prior to
   // evaluation.
   int32_t start_ix
     = summ->AddPfxInstr(PfxInstr(PX_Start, pushCfaAtStart ? 1 : 0));
   MOZ_ASSERT(start_ix >= 0);
 
   while (cursor < end1) {
 
     uint8 opc = reader->ReadOneByte(cursor);
     cursor++;
 
     const char* nm   = nullptr;
     PfxExprOp   pxop = PX_End;
-    
+
     switch (opc) {
 
       case DW_OP_lit0 ... DW_OP_lit31: {
         int32_t simm32 = (int32_t)(opc - DW_OP_lit0);
         if (debug) {
           SprintfLiteral(buf, "LUL.DW   DW_OP_lit%d\n", (int)simm32);
           summ->Log(buf);
         }
@@ -1927,17 +1927,17 @@ int32_t parseDwarfExpr(Summariser* summ,
         int32_t  s32 = (int32_t)u32;
         if (debug) {
           SprintfLiteral(buf, "LUL.DW   DW_OP_const4s %d\n", (int)s32);
           summ->Log(buf);
         }
         (void) summ->AddPfxInstr(PfxInstr(PX_SImm32, s32));
         break;
       }
-      
+
       case DW_OP_deref: nm = "deref"; pxop = PX_Deref;  goto no_operands;
       case DW_OP_and:   nm = "and";   pxop = PX_And;    goto no_operands;
       case DW_OP_plus:  nm = "plus";  pxop = PX_Add;    goto no_operands;
       case DW_OP_minus: nm = "minus"; pxop = PX_Sub;    goto no_operands;
       case DW_OP_shl:   nm = "shl";   pxop = PX_Shl;    goto no_operands;
       case DW_OP_ge:    nm = "ge";    pxop = PX_CmpGES; goto no_operands;
       no_operands:
         MOZ_ASSERT(nm && pxop != PX_End);
@@ -1953,19 +1953,19 @@ int32_t parseDwarfExpr(Summariser* summ,
           SprintfLiteral(buf, "LUL.DW   unknown opc %d\n", (int)opc);
           summ->Log(buf);
         }
         goto fail;
 
     } // switch (opc)
 
   } // while (cursor < end1)
-  
+
   MOZ_ASSERT(cursor >= end1);
-  
+
   if (cursor > end1) {
     // We overran the Dwarf expression.  Give up.
     goto fail;
   }
 
   // For DW_CFA_expression, what the expression denotes is the address
   // of where the previous value is located.  The caller of this routine
   // may therefore request one last dereference before the end marker is
@@ -1978,17 +1978,17 @@ int32_t parseDwarfExpr(Summariser* summ,
   (void) summ->AddPfxInstr(PfxInstr(PX_End));
   if (debug) {
     SprintfLiteral(buf, "LUL.DW   conversion of dwarf expression succeeded, "
                         "ix = %d\n", (int)start_ix);
     summ->Log(buf);
     summ->Log("LUL.DW  >>\n");
   }
   return start_ix;
-      
+
  fail:
   if (debug) {
     summ->Log("LUL.DW   conversion of dwarf expression failed\n");
     summ->Log("LUL.DW  >>\n");
   }
   return -1;
 }
 
@@ -1997,17 +1997,17 @@ bool DwarfCFIToModule::Entry(size_t offs
                              uint8 version, const string &augmentation,
                              unsigned return_address) {
   if (DEBUG_DWARF) {
     char buf[100];
     SprintfLiteral(buf, "LUL.DW DwarfCFIToModule::Entry 0x%llx,+%lld\n",
                    address, length);
     summ_->Log(buf);
   }
-  
+
   summ_->Entry(address, length);
 
   // If dwarf2reader::CallFrameInfo can handle this version and
   // augmentation, then we should be okay with that, so there's no
   // need to check them here.
 
   // Get ready to collect entries.
   return_address_ = return_address;
--- a/tools/profiler/lul/LulDwarfSummariser.cpp
+++ b/tools/profiler/lul/LulDwarfSummariser.cpp
@@ -118,17 +118,17 @@ Summariser::Rule(uintptr_t aAddress, int
   }
 
   // If for some reason summarisation fails, either or both of these
   // become non-null and point at constant text describing the
   // problem.  Using two rather than just one avoids complications of
   // having to concatenate two strings to produce a complete error message.
   const char* reason1 = nullptr;
   const char* reason2 = nullptr;
-  
+
   // |offset| needs to be a 32 bit value that sign extends to 64 bits
   // on a 64 bit target.  We will need to incorporate |offset| into
   // any LExpr made here.  So we may as well check it right now.
   if (!fitsIn32Bits(offset)) {
     reason1 = "offset not in signed 32-bit range";
     goto cant_summarise;
   }
 
--- a/tools/profiler/lul/LulDwarfSummariser.h
+++ b/tools/profiler/lul/LulDwarfSummariser.h
@@ -27,17 +27,17 @@ public:
   // rule permanently.
   virtual void Rule(uintptr_t aAddress, int aNewReg,
                     LExprHow how, int16_t oldReg, int64_t offset);
 
   virtual uint32_t AddPfxInstr(PfxInstr pfxi);
 
   // Send output to the logging sink, for debugging.
   virtual void Log(const char* str) { mLog(str); }
-  
+
 private:
   // The SecMap in which we park the finished summaries (RuleSets) and
   // also any PfxInstrs derived from Dwarf expressions.
   SecMap* mSecMap;
 
   // Running state for the current summary (RuleSet) under construction.
   RuleSet mCurrRules;
 
--- a/tools/profiler/lul/LulMain.cpp
+++ b/tools/profiler/lul/LulMain.cpp
@@ -52,17 +52,17 @@ using mozilla::MallocSizeOf;
 //
 // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
 
 
 ////////////////////////////////////////////////////////////////
 // RuleSet                                                    //
 ////////////////////////////////////////////////////////////////
 
-static const char* 
+static const char*
 NameOf_DW_REG(int16_t aReg)
 {
   switch (aReg) {
     case DW_REG_CFA:       return "cfa";
 #if defined(GP_ARCH_amd64) || defined(GP_ARCH_x86)
     case DW_REG_INTEL_XBP: return "xbp";
     case DW_REG_INTEL_XSP: return "xsp";
     case DW_REG_INTEL_XIP: return "xip";
@@ -1138,17 +1138,17 @@ void UseRuleSet(/*MOD*/UnwindRegs* aRegs
   // We're done.  Any regs for which we didn't manage to compute a
   // new value will now be marked as invalid.
 }
 
 // RUNS IN NO-MALLOC CONTEXT
 void
 LUL::Unwind(/*OUT*/uintptr_t* aFramePCs,
             /*OUT*/uintptr_t* aFrameSPs,
-            /*OUT*/size_t* aFramesUsed, 
+            /*OUT*/size_t* aFramesUsed,
             /*OUT*/size_t* aFramePointerFramesAcquired,
             size_t aFramesAvail,
             UnwindRegs* aStartRegs, StackImage* aStackImg)
 {
   MOZ_ASSERT(!mAdminMode);
 
   /////////////////////////////////////////////////////////
   // BEGIN UNWIND
--- a/tools/profiler/tests/gtest/LulTestDwarf.cpp
+++ b/tools/profiler/tests/gtest/LulTestDwarf.cpp
@@ -96,17 +96,17 @@ struct CFIFixture {
   enum { kCFARegister = CallFrameInfo::Handler::kCFARegister };
 
   CFIFixture() {
     // Default expectations for the data handler.
     //
     // - Leave Entry and End without expectations, as it's probably a
     //   good idea to set those explicitly in each test.
     //
-    // - Expect the *Rule functions to not be called, 
+    // - Expect the *Rule functions to not be called,
     //   so that each test can simply list the calls they expect.
     //
     // I gather I could use StrictMock for this, but the manual seems
     // to suggest using that only as a last resort, and this isn't so
     // bad.
     EXPECT_CALL(handler, UndefinedRule(_, _)).Times(0);
     EXPECT_CALL(handler, SameValueRule(_, _)).Times(0);
     EXPECT_CALL(handler, OffsetRule(_, _, _, _)).Times(0);
@@ -552,17 +552,17 @@ TEST_F(LulDwarfCFI, CIEVersion3ReturnCol
 struct CFIInsnFixture: public CFIFixture {
   CFIInsnFixture() : CFIFixture() {
     data_factor = 0xb6f;
     return_register = 0x9be1ed9f;
     version = 3;
     cfa_base_register = 0x383a3aa;
     cfa_offset = 0xf748;
   }
-  
+
   // Prepare SECTION to receive FDE instructions.
   //
   // - Append a stock CIE header that establishes the fixture's
   //   code_factor, data_factor, return_register, version, and
   //   augmentation values.
   // - Have the CIE set up a CFA rule using cfa_base_register and
   //   cfa_offset.
   // - Append a stock FDE header, referring to the above CIE, for the
@@ -1140,17 +1140,17 @@ TEST_F(LulDwarfCFIInsn, DW_CFA_restore) 
         .WillOnce(Return(true));
     // Restore CIE's rule for register 0x3c.
     EXPECT_CALL(handler,
                 OffsetRule(fde_start + (0x13 + 0x01) * code_factor, 0x3c,
                            kCFARegister, 0xb348 * data_factor))
         .WillOnce(Return(true));
     EXPECT_CALL(handler, End()).WillOnce(Return(true));
   }
-    
+
   ParseSection(&section);
 }
 
 TEST_F(LulDwarfCFIInsn, DW_CFA_restoreNoRule) {
   CFISection section(kBigEndian, 4);
   code_factor = 0x005f78143c1c3b82ULL;
   data_factor = 0x25d0;
   return_register = 0xe8;
@@ -1190,17 +1190,17 @@ TEST_F(LulDwarfCFIInsn, DW_CFA_restoreNo
                            kCFARegister, 0x1f47 * data_factor))
         .WillOnce(Return(true));
     // Restore CIE's (missing) rule for register 0x2c.
     EXPECT_CALL(handler,
                 SameValueRule(fde_start + (0x7 + 0xb) * code_factor, 0x2c))
         .WillOnce(Return(true));
     EXPECT_CALL(handler, End()).WillOnce(Return(true));
   }
-    
+
   ParseSection(&section);
 }
 
 TEST_F(LulDwarfCFIInsn, DW_CFA_restore_extended) {
   CFISection section(kBigEndian, 4);
   code_factor = 0x126e;
   data_factor = -0xd8b;
   return_register = 0x77711787;
@@ -1250,17 +1250,17 @@ TEST_F(LulDwarfCFIInsn, DW_CFA_restore_e
         .WillOnce(Return(true));
     // Restore CIE's rule for register 0x0f9b8a1c.
     EXPECT_CALL(handler,
                 OffsetRule(fde_start + (0x3 + 0x4) * code_factor, 0x0f9b8a1c,
                            kCFARegister, 0xc979 * data_factor))
         .WillOnce(Return(true));
     EXPECT_CALL(handler, End()).WillOnce(Return(true));
   }
-    
+
   ParseSection(&section);
 }
 
 TEST_F(LulDwarfCFIInsn, DW_CFA_remember_and_restore_state) {
   CFISection section(kLittleEndian, 8);
   StockCIEAndFDE(&section);
 
   // We create a state, save it, modify it, and then restore. We
@@ -1497,17 +1497,17 @@ TEST_F(LulDwarfCFIInsn, QuitMidentry) {
       .D8(lul::DW_CFA_register).ULEB128(0xe0cf850d).ULEB128(0x15aab431)
       .D8(lul::DW_CFA_expression).ULEB128(0x46750aa5).Block("meat")
       .FinishEntry();
 
   EXPECT_CALL(handler, RegisterRule(fde_start, 0xe0cf850d, 0x15aab431))
       .InSequence(s).WillOnce(Return(false));
   EXPECT_CALL(handler, End())
       .InSequence(s).WillOnce(Return(true));
-  
+
   ParseSection(&section, false);
 }
 
 class LulDwarfCFIRestore: public CFIInsnFixture, public Test { };
 
 TEST_F(LulDwarfCFIRestore, RestoreUndefinedRuleUnchanged) {
   CFISection section(kLittleEndian, 4);
   StockCIEAndFDE(&section);
@@ -1937,17 +1937,17 @@ TEST_F(LulDwarfCFIRestore, RestoreValExp
                                          "repulsive"))
       .InSequence(s).WillOnce(Return(true));
   EXPECT_CALL(handler, End()).WillOnce(Return(true));
 
   ParseSection(&section, true, &reader);
 }
 
 struct EHFrameFixture: public CFIInsnFixture {
-  EHFrameFixture() 
+  EHFrameFixture()
       : CFIInsnFixture(), section(kBigEndian, 4, true) {
     encoded_pointer_bases.cfi  = 0x7f496cb2;
     encoded_pointer_bases.text = 0x540f67b6;
     encoded_pointer_bases.data = 0xe3eab768;
     section.SetEncodedPointerBases(encoded_pointer_bases);
   }
   CFISection section;
   CFISection::EncodedPointerBases encoded_pointer_bases;
@@ -2019,27 +2019,27 @@ TEST_F(LulDwarfEHFrame, Terminator) {
 TEST_F(LulDwarfEHFrame, SimpleFDE) {
    lul::DwarfPointerEncoding lsda_encoding =
       lul::DwarfPointerEncoding(lul::DW_EH_PE_indirect
                                 | lul::DW_EH_PE_datarel
                                 | lul::DW_EH_PE_sdata2);
   lul::DwarfPointerEncoding fde_encoding =
       lul::DwarfPointerEncoding(lul::DW_EH_PE_textrel
                                 | lul::DW_EH_PE_udata2);
-  
+
   section.SetPointerEncoding(fde_encoding);
   section.SetEncodedPointerBases(encoded_pointer_bases);
   Label cie;
   section
       .Mark(&cie)
       .CIEHeader(4873, 7012, 100, 1, "zSLPR")
       .ULEB128(7)                                // Augmentation data length
       .D8(lsda_encoding)                         // LSDA pointer format
       .D8(lul::DW_EH_PE_pcrel)                   // personality pointer format
-      .EncodedPointer(0x97baa00, lul::DW_EH_PE_pcrel) // and value 
+      .EncodedPointer(0x97baa00, lul::DW_EH_PE_pcrel) // and value
       .D8(fde_encoding)                          // FDE pointer format
       .D8(lul::DW_CFA_def_cfa).ULEB128(6706).ULEB128(31)
       .FinishEntry()
       .FDEHeader(cie, 0x540f6b56, 0xf686)
       .ULEB128(2)                                // Augmentation data length
       .EncodedPointer(0xe3eab475, lsda_encoding) // LSDA pointer, signed
       .D8(lul::DW_CFA_set_loc)
       .EncodedPointer(0x540fa4ce, fde_encoding)
--- a/tools/profiler/tests/gtest/LulTestInfrastructure.cpp
+++ b/tools/profiler/tests/gtest/LulTestInfrastructure.cpp
@@ -159,17 +159,17 @@ void Label::Binding::Set(Binding *bindin
       // is sufficient even though binding relationships form trees:
       // All binding operations traverse their chains to the end, and
       // all bindings related to us share some tail of our chain, so
       // they will see the changes we make here.
       base_->Set(binding, addend - addend_);
       // We're not going to use base_ any more.
       if (base_->Release()) delete base_;
     }
-    
+
     // Adopt BINDING as our base. Note that it should be correct to
     // acquire here, after the release above, even though the usual
     // reference-counting rules call for acquiring first, and then
     // releasing: the self-reference assertion above should have
     // complained if BINDING were 'this' or anywhere along our chain,
     // so we didn't release BINDING.
     if (binding) binding->Acquire();
     base_ = binding;
--- a/tools/profiler/tests/gtest/LulTestInfrastructure.h
+++ b/tools/profiler/tests/gtest/LulTestInfrastructure.h
@@ -37,17 +37,17 @@
 
 // Derived from:
 // test-assembler.h: interface to class for building complex binary streams.
 
 // To test the Breakpad symbol dumper and processor thoroughly, for
 // all combinations of host system and minidump processor
 // architecture, we need to be able to easily generate complex test
 // data like debugging information and minidump files.
-// 
+//
 // For example, if we want our unit tests to provide full code
 // coverage for stack walking, it may be difficult to persuade the
 // compiler to generate every possible sort of stack walking
 // information that we want to support; there are probably DWARF CFI
 // opcodes that GCC never emits. Similarly, if we want to test our
 // error handling, we will need to generate damaged minidumps or
 // debugging information that (we hope) the client or compiler will
 // never produce on its own.
@@ -74,17 +74,17 @@ namespace test_assembler {
 // section. As long as all the labels a section refers to are defined
 // by the time we retrieve its contents as bytes, we can use undefined
 // labels freely in that section's construction.
 //
 // A label can be in one of three states:
 // - undefined,
 // - defined as the sum of some other label and a constant, or
 // - a constant.
-// 
+//
 // A label's value never changes, but it can accumulate constraints.
 // Adding labels and integers is permitted, and yields a label.
 // Subtracting a constant from a label is permitted, and also yields a
 // label. Subtracting two labels that have some relationship to each
 // other is permitted, and yields a constant.
 //
 // For example:
 //
@@ -130,22 +130,22 @@ class Label {
   // Return true if the offset from LABEL to this label is known. If
   // OFFSET_P is given, set *OFFSET_P to the offset when returning true.
   //
   // You can think of l.KnownOffsetFrom(m, &d) as being like 'd = l-m',
   // except that it also returns a value indicating whether the
   // subtraction is possible given what we currently know of l and m.
   // It can be possible even if we don't know l and m's values. For
   // example:
-  // 
+  //
   //   Label l, m;
   //   m = l + 10;
   //   l.IsKnownConstant();             // false
   //   m.IsKnownConstant();             // false
-  //   uint64_t d;                     
+  //   uint64_t d;
   //   l.IsKnownOffsetFrom(m, &d);      // true, and sets d to -10.
   //   l-m                              // -10
   //   m-l                              // 10
   //   m.Value()                        // error: m's value is not known
   bool IsKnownOffsetFrom(const Label &label, uint64_t *offset_p = NULL) const;
 
  private:
   // A label's value, or if that is not yet known, how the value is
@@ -224,17 +224,17 @@ class Label {
 };
 
 // Conventions for representing larger numbers as sequences of bytes.
 enum Endianness {
   kBigEndian,        // Big-endian: the most significant byte comes first.
   kLittleEndian,     // Little-endian: the least significant byte comes first.
   kUnsetEndian,      // used internally
 };
- 
+
 // A section is a sequence of bytes, constructed by appending bytes
 // to the end. Sections have a convenient and flexible set of member
 // functions for appending data in various formats: big-endian and
 // little-endian signed and unsigned values of different sizes;
 // LEB128 and ULEB128 values (see below), and raw blocks of bytes.
 //
 // If you need to append a value to a section that is not convenient
 // to compute immediately, you can create a label, append the
@@ -246,17 +246,17 @@ enum Endianness {
 // Once all the labels to which a section refers have had their
 // values determined, you can get a copy of the section's contents
 // as a string.
 //
 // Note that there is no specified "start of section" label. This is
 // because there are typically several different meanings for "the
 // start of a section": the offset of the section within an object
 // file, the address in memory at which the section's content appear,
-// and so on. It's up to the code that uses the Section class to 
+// and so on. It's up to the code that uses the Section class to
 // keep track of these explicitly, as they depend on the application.
 class Section {
  public:
   explicit Section(Endianness endianness = kUnsetEndian)
       : endianness_(endianness) { };
 
   // A base class destructor should be either public and virtual,
   // or protected and nonvirtual.
@@ -273,17 +273,17 @@ class Section {
   };
 
   // Append SIZE copies of BYTE to the end of this section. Return a
   // reference to this section.
   Section &Append(size_t size, uint8_t byte) {
     contents_.append(size, (char) byte);
     return *this;
   }
-      
+
   // Append NUMBER to this section. ENDIANNESS is the endianness to
   // use to write the number. SIZE is the length of the number in
   // bytes. Return a reference to this section.
   Section &Append(Endianness endianness, size_t size, uint64_t number);
   Section &Append(Endianness endianness, size_t size, const Label &label);
 
   // Append SECTION to the end of this section. The labels SECTION
   // refers to need not be defined yet.
@@ -327,43 +327,43 @@ class Section {
   Section &L8(const Label &label),  &L16(const Label &label),
           &L32(const Label &label), &L64(const Label &label),
           &B8(const Label &label),  &B16(const Label &label),
           &B32(const Label &label), &B64(const Label &label),
           &D8(const Label &label),  &D16(const Label &label),
           &D32(const Label &label), &D64(const Label &label);
 
   // Append VALUE in a signed LEB128 (Little-Endian Base 128) form.
-  // 
+  //
   // The signed LEB128 representation of an integer N is a variable
   // number of bytes:
   //
   // - If N is between -0x40 and 0x3f, then its signed LEB128
   //   representation is a single byte whose value is N.
-  // 
+  //
   // - Otherwise, its signed LEB128 representation is (N & 0x7f) |
   //   0x80, followed by the signed LEB128 representation of N / 128,
   //   rounded towards negative infinity.
   //
   // In other words, we break VALUE into groups of seven bits, put
   // them in little-endian order, and then write them as eight-bit
   // bytes with the high bit on all but the last.
   //
   // Note that VALUE cannot be a Label (we would have to implement
   // relaxation).
   Section &LEB128(long long value);
 
   // Append VALUE in unsigned LEB128 (Little-Endian Base 128) form.
-  // 
+  //
   // The unsigned LEB128 representation of an integer N is a variable
   // number of bytes:
   //
   // - If N is between 0 and 0x7f, then its unsigned LEB128
   //   representation is a single byte whose value is N.
-  // 
+  //
   // - Otherwise, its unsigned LEB128 representation is (N & 0x7f) |
   //   0x80, followed by the unsigned LEB128 representation of N /
   //   128, rounded towards negative infinity.
   //
   // Note that VALUE cannot be a Label (we would have to implement
   // relaxation).
   Section &ULEB128(uint64_t value);
 
@@ -372,17 +372,17 @@ class Section {
   // ALIGNMENT must be a power of two. Return a reference to this
   // section.
   Section &Align(size_t alignment, uint8_t pad_byte = 0);
 
   // Return the current size of the section.
   size_t Size() const { return contents_.size(); }
 
   // Return a label representing the start of the section.
-  // 
+  //
   // It is up to the user whether this label represents the section's
   // position in an object file, the section's address in memory, or
   // what have you; some applications may need both, in which case
   // this simple-minded interface won't be enough. This class only
   // provides a single start label, for use with the Here and Mark
   // member functions.
   //
   // Ideally, we'd provide this in a subclass that actually knows more
@@ -409,17 +409,17 @@ class Section {
 
  private:
   // Used internally. A reference to a label's value.
   struct Reference {
     Reference(size_t set_offset, Endianness set_endianness,  size_t set_size,
               const Label &set_label)
         : offset(set_offset), endianness(set_endianness), size(set_size),
           label(set_label) { }
-      
+
     // The offset of the reference within the section.
     size_t offset;
 
     // The endianness of the reference.
     Endianness endianness;
 
     // The size of the reference.
     size_t size;
@@ -428,17 +428,17 @@ class Section {
     Label label;
   };
 
   // The default endianness of this section.
   Endianness endianness_;
 
   // The contents of the section.
   string contents_;
-  
+
   // References to labels within those contents.
   vector<Reference> references_;
 
   // A label referring to the beginning of the section.
   Label start_;
 };
 
 }  // namespace test_assembler
@@ -578,17 +578,17 @@ class CFISection: public Section {
   }
 
   // Append ADDRESS to this section, using ENCODING and BASES. ENCODING
   // defaults to this section's default encoding, established by
   // SetPointerEncoding. BASES defaults to this section's bases, set by
   // SetEncodedPointerBases. If the DW_EH_PE_indirect bit is set in the
   // encoding, assume that ADDRESS is where the true address is stored.
   // Return a reference to this section.
-  // 
+  //
   // (C++ doesn't let me use default arguments here, because I want to
   // refer to members of *this in the default argument expression.)
   CFISection &EncodedPointer(uint64_t address) {
     return EncodedPointer(address, pointer_encoding_, encoded_pointer_bases_);
   }
   CFISection &EncodedPointer(uint64_t address, DwarfPointerEncoding encoding) {
     return EncodedPointer(address, encoding, encoded_pointer_bases_);
   }
--- a/view/nsView.h
+++ b/view/nsView.h
@@ -18,17 +18,17 @@
 #include "mozilla/EventForwards.h"
 
 class nsViewManager;
 class nsIWidget;
 class nsIFrame;
 
 // Enumerated type to indicate the visibility of a layer.
 // hide - the layer is not shown.
-// show - the layer is shown irrespective of the visibility of 
+// show - the layer is shown irrespective of the visibility of
 //        the layer's parent.
 enum nsViewVisibility {
   nsViewVisibility_kHide = 0,
   nsViewVisibility_kShow = 1
 };
 
 // Public view flags
 
@@ -131,17 +131,17 @@ public:
    *
    * The offset is expressed in appunits of |this|. So if you are getting the
    * offset between views in different documents that might have different
    * appunits per devpixel ratios you need to be careful how you use the
    * result.
    *
    * If aOther is null, this will return the offset of |this| from the
    * root of the viewmanager tree.
-   * 
+   *
    * This function is fastest when aOther is an ancestor of |this|.
    *
    * NOTE: this actually returns the offset from aOther to |this|, but
    * that offset is added to transform _coordinates_ from |this| to aOther.
    */
   nsPoint GetOffsetTo(const nsView* aOther) const;
 
   /**
@@ -294,19 +294,19 @@ public:
    * yet.
    */
   void SetPreviousWidget(nsIWidget* aWidget) { mPreviousWindow = aWidget; }
 
   /**
    * Returns true if the view has a widget associated with it.
    */
   bool HasWidget() const { return mWindow != nullptr; }
-  
-  void SetForcedRepaint(bool aForceRepaint) { 
-    mForcedRepaint = aForceRepaint; 
+
+  void SetForcedRepaint(bool aForceRepaint) {
+    mForcedRepaint = aForceRepaint;
   }
 
   void SetNeedsWindowPropertiesSync();
 
   /**
    * Make aWidget direct its events to this view.
    * The caller must call DetachWidgetEventHandler before this view
    * is destroyed.
--- a/view/nsViewManager.cpp
+++ b/view/nsViewManager.cpp
@@ -33,17 +33,17 @@
    DeCOMify newly private methods
    Optimize view storage
 */
 
 /**
    A note about platform assumptions:
 
    We assume that a widget is z-ordered on top of its parent.
-   
+
    We do NOT assume anything about the relative z-ordering of sibling widgets. Even though
    we ask for a specific z-order, we don't assume that widget z-ordering actually works.
 */
 
 using namespace mozilla;
 using namespace mozilla::layers;
 
 #define NSCOORD_NONE      INT32_MIN
@@ -64,17 +64,17 @@ nsViewManager::nsViewManager()
   , mRecursiveRefreshPending(false)
   , mHasPendingWidgetGeometryChanges(false)
   , mPrintRelated(false)
 {
   if (gViewManagers == nullptr) {
     // Create an array to hold a list of view managers
     gViewManagers = new nsTArray<nsViewManager*>;
   }
- 
+
   gViewManagers->AppendElement(this);
 }
 
 nsViewManager::~nsViewManager()
 {
   if (mRootView) {
     // Destroy any remaining views
     mRootView->Destroy();
@@ -135,17 +135,17 @@ nsViewManager::CreateView(const nsRect& 
   return v;
 }
 
 void
 nsViewManager::SetRootView(nsView *aView)
 {
   NS_PRECONDITION(!aView || aView->GetViewManager() == this,
                   "Unexpected viewmanager on root view");
-  
+
   // Do NOT destroy the current root view. It's the caller's responsibility
   // to destroy it
   mRootView = aView;
 
   if (mRootView) {
     nsView* parent = mRootView->GetParent();
     if (parent) {
       // Calling InsertChild on |parent| will InvalidateHierarchy() on us, so
@@ -316,27 +316,27 @@ void nsViewManager::Refresh(nsView* aVie
     nsRect viewRect = aView->GetDimensions();
     nsRect damageRect = damageRegion.GetBounds();
     printf_stderr("XXX Damage rectangle (%d,%d,%d,%d) does not intersect the widget's view (%d,%d,%d,%d)!\n",
            damageRect.x, damageRect.y, damageRect.width, damageRect.height,
            viewRect.x, viewRect.y, viewRect.width, viewRect.height);
 #endif
     return;
   }
-  
+
   nsIWidget *widget = aView->GetWidget();
   if (!widget) {
     return;
   }
 
   NS_ASSERTION(!IsPainting(), "recursive painting not permitted");
   if (IsPainting()) {
     RootViewManager()->mRecursiveRefreshPending = true;
     return;
-  }  
+  }
 
   {
     nsAutoScriptBlocker scriptBlocker;
     SetPainting(true);
 
     NS_ASSERTION(GetDisplayRootFor(aView) == aView,
                  "Widgets that we paint must all be display roots");
 
@@ -675,17 +675,17 @@ nsViewManager::InvalidateViewNoSuppressi
 }
 
 void
 nsViewManager::InvalidateAllViews()
 {
   if (RootViewManager() != this) {
     return RootViewManager()->InvalidateAllViews();
   }
-  
+
   InvalidateViews(mRootView);
 }
 
 void nsViewManager::InvalidateViews(nsView *aView)
 {
   // Invalidate this view.
   InvalidateView(aView);
 
@@ -804,17 +804,17 @@ nsViewManager::DispatchEvent(WidgetGUIEv
       shell->HandleEvent(frame, aEvent, false, aStatus);
 	  return;
     }
   }
 
   *aStatus = nsEventStatus_eIgnore;
 }
 
-// Recursively reparent widgets if necessary 
+// Recursively reparent widgets if necessary
 
 void nsViewManager::ReparentChildWidgets(nsView* aView, nsIWidget *aNewWidget)
 {
   NS_PRECONDITION(aNewWidget, "");
 
   if (aView->HasWidget()) {
     // Check to see if the parent widget is the
     // same as the new parent. If not then reparent
@@ -843,19 +843,19 @@ void nsViewManager::ReparentChildWidgets
 }
 
 // Reparent a view and its descendant views widgets if necessary
 
 void nsViewManager::ReparentWidgets(nsView* aView, nsView *aParent)
 {
   NS_PRECONDITION(aParent, "Must have a parent");
   NS_PRECONDITION(aView, "Must have a view");
-  
+
   // Quickly determine whether the view has pre-existing children or a
-  // widget. In most cases the view will not have any pre-existing 
+  // widget. In most cases the view will not have any pre-existing
   // children when this is called.  Only in the case
   // where a view has been reparented by removing it from
   // a reinserting it into a new location in the view hierarchy do we
   // have to consider reparenting the existing widgets for the view and
   // it's descendants.
   if (aView->HasWidget() || aView->GetFirstChild()) {
     nsIWidget* parentWidget = aParent->GetNearestWidget(nullptr);
     if (parentWidget) {
--- a/xpcom/base/MemoryReportingProcess.h
+++ b/xpcom/base/MemoryReportingProcess.h
@@ -31,15 +31,15 @@ public:
 
   // Initiate a memory report request, returning true if a report was
   // successfully initiated and false otherwise.
   virtual bool SendRequestMemoryReport(
     const uint32_t& aGeneration,
     const bool& aAnonymize,
     const bool& aMinimizeMemoryUsage,
     const dom::MaybeFileDesc& aDMDFile) = 0;
-  
+
   virtual int32_t Pid() const = 0;
 };
 
 } // namespace mozilla
 
 #endif // xpcom_base_MemoryReportingProcess_h
--- a/xpcom/build/XPCOMInit.cpp
+++ b/xpcom/build/XPCOMInit.cpp
@@ -675,17 +675,17 @@ NS_InitXPCOM2(nsIServiceManager** aResul
 #endif
 
   // Initialize the JS engine.
   const char* jsInitFailureReason = JS_InitWithFailureDiagnostic();
   if (jsInitFailureReason) {
     NS_RUNTIMEABORT(jsInitFailureReason);
   }
   sInitializedJS = true;
-  
+
   rv = nsComponentManagerImpl::gComponentManager->Init();
   if (NS_FAILED(rv)) {
     NS_RELEASE(nsComponentManagerImpl::gComponentManager);
     return rv;
   }
 
   if (aResult) {
     NS_ADDREF(*aResult = nsComponentManagerImpl::gComponentManager);
--- a/xpcom/build/mach_override.c
+++ b/xpcom/build/mach_override.c
@@ -10,19 +10,19 @@
 #include <mach/mach_host.h>
 #include <mach/mach_init.h>
 #include <mach/vm_map.h>
 #include <sys/mman.h>
 
 #include <CoreServices/CoreServices.h>
 
 /**************************
-*	
+*
 *	Constants
-*	
+*
 **************************/
 #pragma mark	-
 #pragma mark	(Constants)
 
 #define kPageSize 4096
 #if defined(__ppc__) || defined(__POWERPC__)
 
 long kIslandTemplate[] = {
@@ -35,73 +35,73 @@ long kIslandTemplate[] = {
 	0x4E800420 	//	bctr
 };
 
 #define kAddressHi			3
 #define kAddressLo			5
 #define kInstructionHi		10
 #define kInstructionLo		11
 
-#elif defined(__i386__) 
+#elif defined(__i386__)
 
 #define kOriginalInstructionsSize 16
 // On X86 we migh need to instert an add with a 32 bit immediate after the
 // original instructions.
 #define kMaxFixupSizeIncrease 5
 
 unsigned char kIslandTemplate[] = {
-	// kOriginalInstructionsSize nop instructions so that we 
-	// should have enough space to host original instructions 
-	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 
+	// kOriginalInstructionsSize nop instructions so that we
+	// should have enough space to host original instructions
+	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
 	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
 	// Now the real jump instruction
 	0xE9, 0xEF, 0xBE, 0xAD, 0xDE
 };
 
 #define kInstructions	0
 #define kJumpAddress    kInstructions + kOriginalInstructionsSize + 1
 #elif defined(__x86_64__)
 
 #define kOriginalInstructionsSize 32
 // On X86-64 we never need to instert a new instruction.
 #define kMaxFixupSizeIncrease 0
 
 #define kJumpAddress    kOriginalInstructionsSize + 6
 
 unsigned char kIslandTemplate[] = {
-	// kOriginalInstructionsSize nop instructions so that we 
-	// should have enough space to host original instructions 
-	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 
+	// kOriginalInstructionsSize nop instructions so that we
+	// should have enough space to host original instructions
 	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
-	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 
+	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
 	0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
 	// Now the real jump instruction
 	0xFF, 0x25, 0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x00, 0x00
 };
 
 #endif
 
 /**************************
-*	
+*
 *	Data Types
-*	
+*
 **************************/
 #pragma mark	-
 #pragma mark	(Data Types)
 
 typedef	struct	{
 	char	instructions[sizeof(kIslandTemplate)];
 }	BranchIsland;
 
 /**************************
-*	
+*
 *	Funky Protos
-*	
+*
 **************************/
 #pragma mark	-
 #pragma mark	(Funky Protos)
 
 static mach_error_t
 allocateBranchIsland(
 		BranchIsland	**island,
 		void *originalFunctionAddress);
@@ -111,50 +111,50 @@ freeBranchIsland(
 		BranchIsland	*island );
 
 #if defined(__ppc__) || defined(__POWERPC__)
 	mach_error_t
 setBranchIslandTarget(
 		BranchIsland	*island,
 		const void		*branchTo,
 		long			instruction );
-#endif 
+#endif
 
 #if defined(__i386__) || defined(__x86_64__)
 mach_error_t
 setBranchIslandTarget_i386(
 						   BranchIsland	*island,
 						   const void		*branchTo,
 						   char*			instructions );
-void 
+void
 atomic_mov64(
 		uint64_t *targetAddress,
 		uint64_t value );
 
-	static Boolean 
-eatKnownInstructions( 
-	unsigned char	*code, 
+	static Boolean
+eatKnownInstructions(
+	unsigned char	*code,
 	uint64_t		*newInstruction,
-	int				*howManyEaten, 
+	int				*howManyEaten,
 	char			*originalInstructions,
-	int				*originalInstructionCount, 
+	int				*originalInstructionCount,
 	uint8_t			*originalInstructionSizes );
 
 	static void
 fixupInstructions(
     uint32_t		offset,
     void		*instructionsToFix,
 	int			instructionCount,
 	uint8_t		*instructionSizes );
 #endif
 
 /*******************************************************************************
-*	
+*
 *	Interface
-*	
+*
 *******************************************************************************/
 #pragma mark	-
 #pragma mark	(Interface)
 
 #if defined(__i386__) || defined(__x86_64__)
 mach_error_t makeIslandExecutable(void *address) {
 	mach_error_t err = err_none;
     uintptr_t page = (uintptr_t)address & ~(uintptr_t)(kPageSize-1);
@@ -171,17 +171,17 @@ mach_error_t makeIslandExecutable(void *
     mach_error_t
 mach_override_ptr(
 	void *originalFunctionAddress,
     const void *overrideFunctionAddress,
     void **originalFunctionReentryIsland )
 {
 	assert( originalFunctionAddress );
 	assert( overrideFunctionAddress );
-	
+
 	// this addresses overriding such functions as AudioOutputUnitStart()
 	// test with modified DefaultOutputUnit project
 #if defined(__x86_64__)
     for(;;){
         if(*(uint16_t*)originalFunctionAddress==0x25FF)    // jmp qword near [rip+0x????????]
             originalFunctionAddress=*(void**)((char*)originalFunctionAddress+6+*(int32_t *)((uint16_t*)originalFunctionAddress+1));
         else break;
     }
@@ -190,107 +190,107 @@ mach_override_ptr(
         if(*(uint16_t*)originalFunctionAddress==0x25FF)    // jmp *0x????????
             originalFunctionAddress=**(void***)((uint16_t*)originalFunctionAddress+1);
         else break;
     }
 #endif
 
 	long	*originalFunctionPtr = (long*) originalFunctionAddress;
 	mach_error_t	err = err_none;
-	
+
 #if defined(__ppc__) || defined(__POWERPC__)
 	//	Ensure first instruction isn't 'mfctr'.
 	#define	kMFCTRMask			0xfc1fffff
 	#define	kMFCTRInstruction	0x7c0903a6
-	
+
 	long	originalInstruction = *originalFunctionPtr;
 	if( !err && ((originalInstruction & kMFCTRMask) == kMFCTRInstruction) )
 		err = err_cannot_override;
 #elif defined(__i386__) || defined(__x86_64__)
 	int eatenCount = 0;
 	int originalInstructionCount = 0;
 	char originalInstructions[kOriginalInstructionsSize];
 	uint8_t originalInstructionSizes[kOriginalInstructionsSize];
 	uint64_t jumpRelativeInstruction = 0; // JMP
 
-	Boolean overridePossible = eatKnownInstructions ((unsigned char *)originalFunctionPtr, 
-										&jumpRelativeInstruction, &eatenCount, 
-										originalInstructions, &originalInstructionCount, 
+	Boolean overridePossible = eatKnownInstructions ((unsigned char *)originalFunctionPtr,
+										&jumpRelativeInstruction, &eatenCount,
+										originalInstructions, &originalInstructionCount,
 										originalInstructionSizes );
 	if (eatenCount + kMaxFixupSizeIncrease > kOriginalInstructionsSize) {
 		//printf ("Too many instructions eaten\n");
 		overridePossible = false;
 	}
 	if (!overridePossible) err = err_cannot_override;
 	if (err) fprintf(stderr, "err = %x %s:%d\n", err, __FILE__, __LINE__);
 #endif
-	
+
 	//	Make the original function implementation writable.
 	if( !err ) {
 		err = vm_protect( mach_task_self(),
 				(vm_address_t) originalFunctionPtr, 8, false,
 				(VM_PROT_ALL | VM_PROT_COPY) );
 		if( err )
 			err = vm_protect( mach_task_self(),
 					(vm_address_t) originalFunctionPtr, 8, false,
 					(VM_PROT_DEFAULT | VM_PROT_COPY) );
 	}
 	if (err) fprintf(stderr, "err = %x %s:%d\n", err, __FILE__, __LINE__);
-	
+
 	//	Allocate and target the escape island to the overriding function.
 	BranchIsland	*escapeIsland = NULL;
-	if( !err )	
+	if( !err )
 		err = allocateBranchIsland( &escapeIsland, originalFunctionAddress );
 		if (err) fprintf(stderr, "err = %x %s:%d\n", err, __FILE__, __LINE__);
 
-	
+
 #if defined(__ppc__) || defined(__POWERPC__)
 	if( !err )
 		err = setBranchIslandTarget( escapeIsland, overrideFunctionAddress, 0 );
-	
+
 	//	Build the branch absolute instruction to the escape island.
 	long	branchAbsoluteInstruction = 0; // Set to 0 just to silence warning.
 	if( !err ) {
 		long escapeIslandAddress = ((long) escapeIsland) & 0x3FFFFFF;
 		branchAbsoluteInstruction = 0x48000002 | escapeIslandAddress;
 	}
 #elif defined(__i386__) || defined(__x86_64__)
         if (err) fprintf(stderr, "err = %x %s:%d\n", err, __FILE__, __LINE__);
 
 	if( !err )
 		err = setBranchIslandTarget_i386( escapeIsland, overrideFunctionAddress, 0 );
- 
+
 	if (err) fprintf(stderr, "err = %x %s:%d\n", err, __FILE__, __LINE__);
 	// Build the jump relative instruction to the escape island
 #endif
 
 
 #if defined(__i386__) || defined(__x86_64__)
 	if (!err) {
 		uint32_t addressOffset = ((char*)escapeIsland - (char*)originalFunctionPtr - 5);
 		addressOffset = OSSwapInt32(addressOffset);
-		
-		jumpRelativeInstruction |= 0xE900000000000000LL; 
+
+		jumpRelativeInstruction |= 0xE900000000000000LL;
 		jumpRelativeInstruction |= ((uint64_t)addressOffset & 0xffffffff) << 24;
-		jumpRelativeInstruction = OSSwapInt64(jumpRelativeInstruction);		
+		jumpRelativeInstruction = OSSwapInt64(jumpRelativeInstruction);
 	}
 #endif
-	
+
 	//	Optionally allocate & return the reentry island. This may contain relocated
 	//  jmp instructions and so has all the same addressing reachability requirements
 	//  the escape island has to the original function, except the escape island is
 	//  technically our original function.
 	BranchIsland	*reentryIsland = NULL;
 	if( !err && originalFunctionReentryIsland ) {
 		err = allocateBranchIsland( &reentryIsland, escapeIsland);
 		if( !err )
 			*originalFunctionReentryIsland = reentryIsland;
 	}
-	
-#if defined(__ppc__) || defined(__POWERPC__)	
+
+#if defined(__ppc__) || defined(__POWERPC__)
 	//	Atomically:
 	//	o If the reentry island was allocated:
 	//		o Insert the original instruction into the reentry island.
 	//		o Target the reentry island at the 2nd instruction of the
 	//		  original function.
 	//	o Replace the original instruction with the branch absolute.
 	if( !err ) {
 		int escapeIslandEngaged = false;
@@ -312,69 +312,69 @@ mach_override_ptr(
 				}
 			}
 		} while( !err && !escapeIslandEngaged );
 	}
 #elif defined(__i386__) || defined(__x86_64__)
 	// Atomically:
 	//	o If the reentry island was allocated:
 	//		o Insert the original instructions into the reentry island.
-	//		o Target the reentry island at the first non-replaced 
+	//		o Target the reentry island at the first non-replaced
 	//        instruction of the original function.
 	//	o Replace the original first instructions with the jump relative.
 	//
 	// Note that on i386, we do not support someone else changing the code under our feet
 	if ( !err ) {
 		uint32_t offset = (uintptr_t)originalFunctionPtr - (uintptr_t)reentryIsland;
 		fixupInstructions(offset, originalInstructions,
 					originalInstructionCount, originalInstructionSizes );
-	
+
 		if( reentryIsland )
 			err = setBranchIslandTarget_i386( reentryIsland,
 										 (void*) ((char *)originalFunctionPtr+eatenCount), originalInstructions );
 		// try making islands executable before planting the jmp
 #if defined(__x86_64__) || defined(__i386__)
         if( !err )
             err = makeIslandExecutable(escapeIsland);
         if( !err && reentryIsland )
             err = makeIslandExecutable(reentryIsland);
 #endif
 		if ( !err )
 			atomic_mov64((uint64_t *)originalFunctionPtr, jumpRelativeInstruction);
 	}
 #endif
-	
+
 	//	Clean up on error.
 	if( err ) {
 		if( reentryIsland )
 			freeBranchIsland( reentryIsland );
 		if( escapeIsland )
 			freeBranchIsland( escapeIsland );
 	}
 
 	return err;
 }
 
 /*******************************************************************************
-*	
+*
 *	Implementation
-*	
+*
 *******************************************************************************/
 #pragma mark	-
 #pragma mark	(Implementation)
 
 static bool jump_in_range(intptr_t from, intptr_t to) {
   intptr_t field_value = to - from - 5;
   int32_t field_value_32 = field_value;
   return field_value == field_value_32;
 }
 
 /*******************************************************************************
 	Implementation: Allocates memory for a branch island.
-	
+
 	@param	island			<-	The allocated island.
 	@result					<-	mach_error_t
 
 	***************************************************************************/
 
 static mach_error_t
 allocateBranchIslandAux(
 		BranchIsland	**island,
@@ -440,17 +440,17 @@ allocateBranchIsland(
   if (!err)
     return err;
   return allocateBranchIslandAux(island, originalFunctionAddress, false);
 }
 
 
 /*******************************************************************************
 	Implementation: Deallocates memory for a branch island.
-	
+
 	@param	island	->	The island to deallocate.
 	@result			<-	mach_error_t
 
 	***************************************************************************/
 
 	mach_error_t
 freeBranchIsland(
 		BranchIsland	*island )
@@ -460,73 +460,73 @@ freeBranchIsland(
 	assert( sizeof( BranchIsland ) <= kPageSize );
 	return vm_deallocate( mach_task_self(), (vm_address_t) island,
 			      kPageSize );
 }
 
 /*******************************************************************************
 	Implementation: Sets the branch island's target, with an optional
 	instruction.
-	
+
 	@param	island		->	The branch island to insert target into.
 	@param	branchTo	->	The address of the target.
 	@param	instruction	->	Optional instruction to execute prior to branch. Set
 							to zero for nop.
 	@result				<-	mach_error_t
 
 	***************************************************************************/
 #if defined(__ppc__) || defined(__POWERPC__)
 	mach_error_t
 setBranchIslandTarget(
 		BranchIsland	*island,
 		const void		*branchTo,
 		long			instruction )
 {
 	//	Copy over the template code.
     bcopy( kIslandTemplate, island->instructions, sizeof( kIslandTemplate ) );
-    
+
     //	Fill in the address.
     ((short*)island->instructions)[kAddressLo] = ((long) branchTo) & 0x0000FFFF;
     ((short*)island->instructions)[kAddressHi]
     	= (((long) branchTo) >> 16) & 0x0000FFFF;
-    
+
     //	Fill in the (optional) instuction.
     if( instruction != 0 ) {
         ((short*)island->instructions)[kInstructionLo]
         	= instruction & 0x0000FFFF;
         ((short*)island->instructions)[kInstructionHi]
         	= (instruction >> 16) & 0x0000FFFF;
     }
-    
+
     //MakeDataExecutable( island->instructions, sizeof( kIslandTemplate ) );
 	msync( island->instructions, sizeof( kIslandTemplate ), MS_INVALIDATE );
-    
+
     return err_none;
 }
-#endif 
+#endif
 
 #if defined(__i386__)
 	mach_error_t
 setBranchIslandTarget_i386(
 	BranchIsland	*island,
 	const void		*branchTo,
 	char*			instructions )
 {
 
 	//	Copy over the template code.
     bcopy( kIslandTemplate, island->instructions, sizeof( kIslandTemplate ) );
 
 	// copy original instructions
 	if (instructions) {
 		bcopy (instructions, island->instructions + kInstructions, kOriginalInstructionsSize);
 	}
-	
+
     // Fill in the address.
     int32_t addressOffset = (char *)branchTo - (island->instructions + kJumpAddress + 4);
-    *((int32_t *)(island->instructions + kJumpAddress)) = addressOffset; 
+    *((int32_t *)(island->instructions + kJumpAddress)) = addressOffset;
 
     msync( island->instructions, sizeof( kIslandTemplate ), MS_INVALIDATE );
     return err_none;
 }
 
 #elif defined(__x86_64__)
 mach_error_t
 setBranchIslandTarget_i386(
@@ -538,17 +538,17 @@ setBranchIslandTarget_i386(
     bcopy( kIslandTemplate, island->instructions, sizeof( kIslandTemplate ) );
 
     // Copy original instructions.
     if (instructions) {
         bcopy (instructions, island->instructions, kOriginalInstructionsSize);
     }
 
     //	Fill in the address.
-    *((uint64_t *)(island->instructions + kJumpAddress)) = (uint64_t)branchTo; 
+    *((uint64_t *)(island->instructions + kJumpAddress)) = (uint64_t)branchTo;
     msync( island->instructions, sizeof( kIslandTemplate ), MS_INVALIDATE );
 
     return err_none;
 }
 #endif
 
 
 #if defined(__i386__) || defined(__x86_64__)
@@ -597,100 +597,100 @@ static AsmInstructionMatch possibleInstr
 
 	//leaq offset(%rip),%rax
 	{ 0x7, {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00}, {0x48, 0x8d, 0x05, 0x00, 0x00, 0x00, 0x00} },
 
 	{ 0x0 }
 };
 #endif
 
-static Boolean codeMatchesInstruction(unsigned char *code, AsmInstructionMatch* instruction) 
+static Boolean codeMatchesInstruction(unsigned char *code, AsmInstructionMatch* instruction)
 {
 	Boolean match = true;
-	
+
 	size_t i;
 	for (i=0; i<instruction->length; i++) {
 		unsigned char mask = instruction->mask[i];
 		unsigned char constraint = instruction->constraint[i];
 		unsigned char codeValue = code[i];
-				
+
 		match = ((codeValue & mask) == constraint);
 		if (!match) break;
 	}
-	
+
 	return match;
 }
 
 #if defined(__i386__) || defined(__x86_64__)
-	static Boolean 
-eatKnownInstructions( 
-	unsigned char	*code, 
+	static Boolean
+eatKnownInstructions(
+	unsigned char	*code,
 	uint64_t		*newInstruction,
-	int				*howManyEaten, 
+	int				*howManyEaten,
 	char			*originalInstructions,
-	int				*originalInstructionCount, 
+	int				*originalInstructionCount,
 	uint8_t			*originalInstructionSizes )
 {
 	Boolean allInstructionsKnown = true;
 	int totalEaten = 0;
 	unsigned char* ptr = code;
 	int remainsToEat = 5; // a JMP instruction takes 5 bytes
 	int instructionIndex = 0;
-	
+
 	if (howManyEaten) *howManyEaten = 0;
 	if (originalInstructionCount) *originalInstructionCount = 0;
 	while (remainsToEat > 0) {
 		Boolean curInstructionKnown = false;
-		
+
 		// See if instruction matches one  we know
 		AsmInstructionMatch* curInstr = possibleInstructions;
-		do { 
+		do {
 			if ((curInstructionKnown = codeMatchesInstruction(ptr, curInstr))) break;
 			curInstr++;
 		} while (curInstr->length > 0);
-		
+
 		// if all instruction matches failed, we don't know current instruction then, stop here
-		if (!curInstructionKnown) { 
+		if (!curInstructionKnown) {
 			allInstructionsKnown = false;
 			fprintf(stderr, "mach_override: some instructions unknown! Need to update mach_override.c\n");
 			break;
 		}
-		
+
 		// At this point, we've matched curInstr
 		int eaten = curInstr->length;
 		ptr += eaten;
 		remainsToEat -= eaten;
 		totalEaten += eaten;
-		
+
 		if (originalInstructionSizes) originalInstructionSizes[instructionIndex] = eaten;
 		instructionIndex += 1;
 		if (originalInstructionCount) *originalInstructionCount = instructionIndex;
 	}
 
 
 	if (howManyEaten) *howManyEaten = totalEaten;
 
 	if (originalInstructions) {
 		Boolean enoughSpaceForOriginalInstructions = (totalEaten < kOriginalInstructionsSize);
-		
+
 		if (enoughSpaceForOriginalInstructions) {
 			memset(originalInstructions, 0x90 /* NOP */, kOriginalInstructionsSize); // fill instructions with NOP
 			bcopy(code, originalInstructions, totalEaten);
 		} else {
 			// printf ("Not enough space in island to store original instructions. Adapt the island definition and kOriginalInstructionsSize\n");
 			return false;
 		}
 	}
-	
+
 	if (allInstructionsKnown) {
 		// save last 3 bytes of first 64bits of codre we'll replace
 		uint64_t currentFirst64BitsOfCode = *((uint64_t *)code);
 		currentFirst64BitsOfCode = OSSwapInt64(currentFirst64BitsOfCode); // back to memory representation
-		currentFirst64BitsOfCode &= 0x0000000000FFFFFFLL; 
-		
+		currentFirst64BitsOfCode &= 0x0000000000FFFFFFLL;
+
 		// keep only last 3 instructions bytes, first 5 will be replaced by JMP instr
 		*newInstruction &= 0xFFFFFFFFFF000000LL; // clear last 3 bytes
 		*newInstruction |= (currentFirst64BitsOfCode & 0x0000000000FFFFFFLL); // set last 3 bytes
 	}
 
 	return allInstructionsKnown;
 }
 
@@ -750,30 +750,30 @@ fixupInstructions(
 			"_atomic_mov64:;"
 			"	pushl %ebp;"
 			"	movl %esp, %ebp;"
 			"	pushl %esi;"
 			"	pushl %ebx;"
 			"	pushl %ecx;"
 			"	pushl %eax;"
 			"	pushl %edx;"
-	
+
 			// atomic push of value to an address
-			// we use cmpxchg8b, which compares content of an address with 
-			// edx:eax. If they are equal, it atomically puts 64bit value 
-			// ecx:ebx in address. 
+			// we use cmpxchg8b, which compares content of an address with
+			// edx:eax. If they are equal, it atomically puts 64bit value
+			// ecx:ebx in address.
 			// We thus put contents of address in edx:eax to force ecx:ebx
 			// in address
 			"	mov		8(%ebp), %esi;"  // esi contains target address
 			"	mov		12(%ebp), %ebx;"
 			"	mov		16(%ebp), %ecx;" // ecx:ebx now contains value to put in target address
 			"	mov		(%esi), %eax;"
 			"	mov		4(%esi), %edx;"  // edx:eax now contains value currently contained in target address
 			"	lock; cmpxchg8b	(%esi);" // atomic move.
-			
+
 			// restore registers
 			"	popl %edx;"
 			"	popl %eax;"
 			"	popl %ecx;"
 			"	popl %ebx;"
 			"	popl %esi;"
 			"	popl %ebp;"
 			"	ret"
--- a/xpcom/build/mach_override.h
+++ b/xpcom/build/mach_override.h
@@ -3,24 +3,24 @@
 		Copyright (c) 2003-2009 Jonathan 'Wolf' Rentzsch: <http://rentzsch.com>
 		Some rights reserved: <http://opensource.org/licenses/mit-license.php>
 
 	***************************************************************************/
 
 /***************************************************************************//**
 	@mainpage	mach_override
 	@author		Jonathan 'Wolf' Rentzsch: <http://rentzsch.com>
-	
+
 	This package, coded in C to the Mach API, allows you to override ("patch")
 	program- and system-supplied functions at runtime. You can fully replace
 	functions with your implementations, or merely head- or tail-patch the
 	original implementations.
-	
+
 	Use it by #include'ing mach_override.h from your .c, .m or .mm file(s).
-	
+
 	@todo	Discontinue use of Carbon's MakeDataExecutable() and
 			CompareAndSwap() calls and start using the Mach equivalents, if they
 			exist. If they don't, write them and roll them in. That way, this
 			code will be pure Mach, which will make it easier to use everywhere.
 			Update: MakeDataExecutable() has been replaced by
 			msync(MS_INVALIDATE). There is an OSCompareAndSwap in libkern, but
 			I'm currently unsure if I can link against it. May have to roll in
 			my own version...
@@ -57,17 +57,17 @@
 */
 #define	err_cannot_override	(err_local|1)
 
 /************************************************************************************//**
 	Dynamically overrides the function implementation referenced by
 	originalFunctionAddress with the implentation pointed to by overrideFunctionAddress.
 	Optionally returns a pointer to a "reentry island" which, if jumped to, will resume
 	the original implementation.
-	
+
 	@param	originalFunctionAddress			->	Required address of the function to
 												override (with overrideFunctionAddress).
 	@param	overrideFunctionAddress			->	Required address to the overriding
 												function.
 	@param	originalFunctionReentryIsland	<-	Optional pointer to pointer to the
 												reentry island. Can be nullptr.
 	@result									<-	err_cannot_override if the original
 												function's implementation begins with
@@ -77,20 +77,20 @@
 
     mach_error_t
 mach_override_ptr(
 	void *originalFunctionAddress,
     const void *overrideFunctionAddress,
     void **originalFunctionReentryIsland );
 
 /************************************************************************************//**
-	
+
 
 	************************************************************************************/
- 
+
 #ifdef	__cplusplus
 
 #define MACH_OVERRIDE( ORIGINAL_FUNCTION_RETURN_TYPE, ORIGINAL_FUNCTION_NAME, ORIGINAL_FUNCTION_ARGS, ERR )			\
 	{																												\
 		static ORIGINAL_FUNCTION_RETURN_TYPE (*ORIGINAL_FUNCTION_NAME##_reenter)ORIGINAL_FUNCTION_ARGS;				\
 		static bool ORIGINAL_FUNCTION_NAME##_overriden = false;														\
 		class mach_override_class__##ORIGINAL_FUNCTION_NAME {														\
 		public:																										\
@@ -107,15 +107,15 @@ mach_override_ptr(
 			static ORIGINAL_FUNCTION_RETURN_TYPE replacement ORIGINAL_FUNCTION_ARGS {
 
 #define END_MACH_OVERRIDE( ORIGINAL_FUNCTION_NAME )																	\
 			}																										\
 		};																											\
 																													\
 		err = mach_override_class__##ORIGINAL_FUNCTION_NAME::override((void*)ORIGINAL_FUNCTION_NAME);				\
 	}
- 
+
 #endif
 
 #ifdef	__cplusplus
 	}
 #endif
 #endif	//	_mach_override_
--- a/xpcom/ds/Tokenizer.cpp
+++ b/xpcom/ds/Tokenizer.cpp
@@ -562,17 +562,17 @@ TokenizerBase::IsCustom(const nsACString
     return false;
   }
 
   if (aLongest) {
     *aLongest = std::max(*aLongest, aCustomToken.mCustom.Length());
   }
 
   // This is not very likely to happen according to how we call this method
-  // and since it's on a hot path, it's just a diagnostic assert, 
+  // and since it's on a hot path, it's just a diagnostic assert,
   // not a release assert.
   MOZ_DIAGNOSTIC_ASSERT(mEnd >= caret, "Overflow?");
   uint32_t inputLength = mEnd - caret;
   if (aCustomToken.mCustom.Length() > inputLength) {
     return false;
   }
 
   nsDependentCSubstring inputFragment(caret, aCustomToken.mCustom.Length());
--- a/xpcom/ds/nsDeque.cpp
+++ b/xpcom/ds/nsDeque.cpp
@@ -224,23 +224,23 @@ nsDeque::Push(void* aItem, const fallibl
  *   [ZDEFGHAB C_______ ________ ________]
  * and increment size: 9. (C is no longer out of bounds)
  * --
  * @param   aItem: new item to be added to deque
  */
 bool
 nsDeque::PushFront(void* aItem, const fallible_t&)
 {
-  
+
   if (mOrigin == 0) {
     mOrigin = mCapacity - 1;
   } else {
     mOrigin--;
   }
-  
+
   if (mSize == mCapacity) {
     if (!GrowCapacity()) {
       return false;
     }
     /* Comments explaining this are above*/
     mData[mSize] = mData[mOrigin];
   }
   mData[mOrigin] = aItem;
--- a/xpcom/io/nsAppDirectoryServiceDefs.h
+++ b/xpcom/io/nsAppDirectoryServiceDefs.h
@@ -26,17 +26,17 @@
 // Files and directories which exist on a per-product basis
 // --------------------------------------------------------------------------------------
 
 #define NS_APP_APPLICATION_REGISTRY_FILE        "AppRegF"
 #define NS_APP_APPLICATION_REGISTRY_DIR         "AppRegD"
 
 #define NS_APP_DEFAULTS_50_DIR                  "DefRt"         // The root dir of all defaults dirs
 #define NS_APP_PREF_DEFAULTS_50_DIR             "PrfDef"
-                                                                                                                       
+
 #define NS_APP_USER_PROFILES_ROOT_DIR           "DefProfRt"     // The dir where user profile dirs live.
 #define NS_APP_USER_PROFILES_LOCAL_ROOT_DIR     "DefProfLRt"  // The dir where user profile temp dirs live.
 
 #define NS_APP_RES_DIR                          "ARes"
 #define NS_APP_CHROME_DIR                       "AChrom"
 #define NS_APP_PLUGINS_DIR                      "APlugns"       // Deprecated - use NS_APP_PLUGINS_DIR_LIST
 #define NS_APP_SEARCH_DIR                       "SrchPlugns"
 
@@ -52,17 +52,17 @@
 
 // In a shared profile environment, prefixing a profile-relative
 // key with NS_SHARED returns a location that is shared by
 // other users of the profile. Without this prefix, the consumer
 // has exclusive access to this location.
 
 #define NS_SHARED                               "SHARED"
 
-#define NS_APP_PREFS_50_DIR                     "PrefD"         // Directory which contains user prefs       
+#define NS_APP_PREFS_50_DIR                     "PrefD"         // Directory which contains user prefs
 #define NS_APP_PREFS_50_FILE                    "PrefF"
 #define NS_APP_PREFS_DEFAULTS_DIR_LIST          "PrefDL"
 #define NS_EXT_PREFS_DEFAULTS_DIR_LIST          "ExtPrefDL"
 #define NS_APP_PREFS_OVERRIDE_DIR               "PrefDOverride" // Directory for per-profile defaults
 
 #define NS_APP_USER_PROFILE_50_DIR              "ProfD"
 #define NS_APP_USER_PROFILE_LOCAL_50_DIR        "ProfLD"
 
@@ -70,17 +70,17 @@
 #define NS_APP_USER_SEARCH_DIR                  "UsrSrchPlugns"
 
 #define NS_APP_LOCALSTORE_50_FILE               "LclSt"
 #define NS_APP_USER_PANELS_50_FILE              "UPnls"
 #define NS_APP_CACHE_PARENT_DIR                 "cachePDir"
 
 #define NS_APP_SEARCH_50_FILE                   "SrchF"
 
-#define NS_APP_INSTALL_CLEANUP_DIR              "XPIClnupD"  //location of xpicleanup.dat xpicleanup.exe 
+#define NS_APP_INSTALL_CLEANUP_DIR              "XPIClnupD"  //location of xpicleanup.dat xpicleanup.exe
 
 #define NS_APP_INDEXEDDB_PARENT_DIR             "indexedDBPDir"
 
 #define NS_APP_PERMISSION_PARENT_DIR            "permissionDBPDir"
 
 #if (defined(XP_WIN) || defined(XP_MACOSX)) && defined(MOZ_CONTENT_SANDBOX)
 //
 // NS_APP_CONTENT_PROCESS_TEMP_DIR refers to a directory that is read and
--- a/xpcom/reflect/xptcall/md/test/invoke_test.cpp
+++ b/xpcom/reflect/xptcall/md/test/invoke_test.cpp
@@ -69,27 +69,27 @@ NS_IMETHODIMP bar::callme2(int i, int j)
 
 NS_IMETHODIMP bar::callme3(int i, int j)
 {
   printf("called bar::callme3 with: %d %d\n", i, j);
   return 5;
 }
 
 void docall(foo* f, int i, int j){
-  f->callme1(i, j); 
+  f->callme1(i, j);
 }
 
 /***************************************************************************/
 #if defined(WIN32)
 
 static uint32_t __stdcall
 invoke_count_words(uint32_t paramCount, nsXPCVariant* s)
 {
     return paramCount;
-}    
+}
 
 static void __stdcall
 invoke_copy_to_stack(uint32_t* d, uint32_t paramCount, nsXPCVariant* s)
 {
     for(uint32_t i = 0; i < paramCount; i++, d++, s++)
     {
         *((uint32_t*)d) = *((uint32_t*)s);
     }
@@ -119,23 +119,23 @@ DoInvoke(void* that, uint32_t index,
         call    [edx]               // stdcall, i.e. callee cleans up stack.
     }
 }
 
 #else
 /***************************************************************************/
 // just Linux_x86 now. Add other later...
 
-static uint32_t 
+static uint32_t
 invoke_count_words(uint32_t paramCount, nsXPCVariant* s)
 {
     return paramCount;
-}    
+}
 
-static void 
+static void
 invoke_copy_to_stack(uint32_t* d, uint32_t paramCount, nsXPCVariant* s)
 {
     for(uint32_t i = 0; i < paramCount; i++, d++, s++)
     {
         *((uint32_t*)d) = *((uint32_t*)s);
     }
 }
 
@@ -173,21 +173,21 @@ DoInvoke(void* that, uint32_t index,
     "movl  %%eax, %0"
     : "=g" (result)         /* %0 */
     : "g" (that),           /* %1 */
       "g" (index),          /* %2 */
       "g" (paramCount),     /* %3 */
       "g" (params),         /* %4 */
       "g" (fn_count),       /* %5 */
       "g" (fn_copy)         /* %6 */
-    : "ax", "cx", "dx", "memory" 
+    : "ax", "cx", "dx", "memory"
     );
-  
+
   return result;
-}    
+}
 
 #endif
 /***************************************************************************/
 
 int main()
 {
   nsXPCVariant params1[2] = {1,2};
   nsXPCVariant params2[2] = {2,4};
--- a/xpcom/reflect/xptcall/md/test/stub_test.cpp
+++ b/xpcom/reflect/xptcall/md/test/stub_test.cpp
@@ -66,17 +66,17 @@ NS_IMETHODIMP bar::callme2(int i, int j)
 
 NS_IMETHODIMP bar::callme3(int i, int j)
 {
   printf("called bar::callme3 with: %d %d\n", i, j);
   return 35;
 }
 
 void docall(foo* f, int i, int j){
-  f->callme1(i, j); 
+  f->callme1(i, j);
 }
 
 /***************************************************************************/
 #if defined(WIN32)
 
 static int __stdcall
 PrepareAndDispatch(baz* self, uint32_t methodIndex,
                    uint32_t* args, uint32_t* stackBytesToPop)
@@ -196,17 +196,17 @@ STUB_ENTRY(3)
 int main()
 {
   foo* a = new bar();
   baz* b = new baz();
 
   /* here we make the global 'check for alloc failure' checker happy */
   if(!a || !b)
     return 1;
-  
+
   foo* c = (foo*)b;
 
   b->setfoo(a);
   c->callme1(1,2);
   c->callme2(2,4);
   c->callme3(3,6);
 
   return 0;
--- a/xpcom/reflect/xptcall/md/unix/vtable_layout_x86.cpp
+++ b/xpcom/reflect/xptcall/md/unix/vtable_layout_x86.cpp
@@ -25,17 +25,17 @@ test::test() { this->x = 0x12121212; };
 int test::t1(void) { return 1; }
 int test::t2(void) { return 2; }
 
 void die(char *x) {
       fprintf(stderr, "%s\n", x);
       exit(1);
 }
 
-int 
+int
 main()
 {
       int             i;
       test           *t = new test();
       int            *tp = (int *) t;
       int             off1 = -1;
       int             off2 = -1;
       int             factor;
--- a/xpcom/reflect/xptcall/md/unix/xptc_gcc_x86_unix.h
+++ b/xpcom/reflect/xptcall/md/unix/xptc_gcc_x86_unix.h
@@ -1,16 +1,16 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Special include file for xptc*_gcc_x86_unix.cpp */
 
-// 
+//
 // this may improve the static function calls, but may not.
 //
 
 #ifdef MOZ_NEED_LEADING_UNDERSCORE
 #define SYMBOL_UNDERSCORE "_"
 #else
 #define SYMBOL_UNDERSCORE
 #endif
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
@@ -139,17 +139,17 @@ NS_InvokeByIndex(nsISupports* that, uint
  * arguments corresponding to r1-r3, so that the compiler generates the
  * proper function call. The stack will also contain the remaining arguments.
  *
  * !!! IMPORTANT !!!
  * This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
  * for arm-linux GNU g++ >= 2.8.1 (including egcs and gcc-2.95.[1-3])!
  *
  */
- 
+
   vtable_func *vtable, func;
   int base_size = (paramCount > 1) ? paramCount : 2;
 
 /* !!! IMPORTANT !!!
  * On DEBUG builds, the NS_ASSERTION used in invoke_copy_to_stack needs to use
  * the stack to pass the 5th argument to NS_DebugBreak. When invoke_copy_to_stack
  * is inlined, this can result, depending on the compiler and flags, in the
  * stack pointer not pointing at stack_space when the method is called at the
@@ -162,17 +162,17 @@ NS_InvokeByIndex(nsISupports* that, uint
                        paramCount, params);
 
   vtable = *reinterpret_cast<vtable_func **>(that);
   func = vtable[methodIndex];
 
   return func(that, stack_space[base_size * 2 - 3],
                     stack_space[base_size * 2 - 2],
                     stack_space[base_size * 2 - 1]);
-}    
+}
 
 #else /* __ARM_PCS_VFP */
 
 /* "Procedure Call Standard for the ARM Architecture" document, sections
  * "5.5 Parameter Passing" and "6.1.2 Procedure Calling" contain all the
  * needed information.
  *
  * http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_netbsd.cpp
@@ -86,24 +86,24 @@ invoke_copy_to_stack(uint32_t* d, uint32
         default:
             // all the others are plain pointer types
             *((void**)d) = s->val.p;
             break;
         }
     }
 }
 
-extern "C" 
+extern "C"
 struct my_params_struct {
-    nsISupports* that;      
-    uint32_t Index;         
-    uint32_t Count;         
-    nsXPTCVariant* params;  
-    uint32_t fn_count;     
-    uint32_t fn_copy;      
+    nsISupports* that;
+    uint32_t Index;
+    uint32_t Count;
+    nsXPTCVariant* params;
+    uint32_t fn_count;
+    uint32_t fn_copy;
 };
 
 XPTC_PUBLIC_API(nsresult)
 XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                    uint32_t paramCount, nsXPTCVariant* params)
 {
     uint32_t result;
     struct my_params_struct my_params;
@@ -133,17 +133,17 @@ XPTC_InvokeByIndex(nsISupports* that, ui
  * and will be preserved by the function/method called according to APCS [ARM Procedure
  * Calling Standard]).
  *
  * !!! IMPORTANT !!!
  * This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
  * for arm-linux GNU g++ >= 2.8.1 (including egcs and gcc-2.95.[1-3])!
  *
  */
- 
+
   __asm__ __volatile__(
     "ldr	r1, [%1, #12]	\n\t"	/* prepare to call invoke_count_words	*/
     "ldr	ip, [%1, #16]	\n\t"	/* r0=paramCount, r1=params		*/
     "ldr	r0, [%1,  #8]	\n\t"
     "mov	lr, pc		\n\t"	/* call it...				*/
     "mov	pc, ip		\n\t"
     "mov	r4, r0, lsl #2	\n\t"	/* This is the amount of bytes needed.	*/
     "sub	sp, sp, r4	\n\t"	/* use stack space for the args...	*/
@@ -160,22 +160,22 @@ XPTC_InvokeByIndex(nsISupports* that, ui
     "add	r2, r2, #8	\n\t"	/* with this compilers			*/
     "ldr	r3, [r2]	\n\t"	/* get virtual offset from vtable	*/
     "mov	r3, r3, lsl #16	\n\t"
     "add	r0, r0, r3, asr #16\n\t"
     "ldr	ip, [r2, #4]	\n\t"	/* get method address from vtable	*/
     "cmp	r4, #12		\n\t"	/* more than 3 arguments???		*/
     "ldmgtia	sp!, {r1, r2, r3}\n\t"	/* yes: load arguments for r1-r3	*/
     "subgt	r4, r4, #12	\n\t"	/*      and correct the stack pointer	*/
-    "ldmleia	sp, {r1, r2, r3}\n\t"	/* no:  load r1-r3 from stack		*/ 
+    "ldmleia	sp, {r1, r2, r3}\n\t"	/* no:  load r1-r3 from stack		*/
     "addle	sp, sp, r4	\n\t"	/*      and restore stack pointer	*/
     "movle	r4, #0		\n\t"	/*	a mark for restoring sp		*/
     "mov	lr, pc		\n\t"	/* call mathod				*/
     "mov	pc, ip		\n\t"
     "add	sp, sp, r4	\n\t"	/* restore stack pointer		*/
     "mov	%0, r0		\n\t"	/* the result...			*/
     : "=r" (result)
     : "r" (&my_params)
     : "r0", "r1", "r2", "r3", "r4", "ip", "lr"
     );
-    
+
   return result;
-}    
+}
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm_openbsd.cpp
@@ -88,22 +88,22 @@ invoke_copy_to_stack(uint32_t* d, uint32
             *((void**)d) = s->val.p;
             break;
         }
     }
 }
 
 extern "C" {
     struct my_params_struct {
-        nsISupports* that;      
-        uint32_t Index;         
-        uint32_t Count;         
-        nsXPTCVariant* params;  
-        uint32_t fn_count;     
-        uint32_t fn_copy;      
+        nsISupports* that;
+        uint32_t Index;
+        uint32_t Count;
+        nsXPTCVariant* params;
+        uint32_t fn_count;
+        uint32_t fn_copy;
     };
 }
 
 EXPORT_XPCOM_API(nsresult)
 NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                    uint32_t paramCount, nsXPTCVariant* params)
 {
     uint32_t result;
@@ -158,26 +158,26 @@ NS_InvokeByIndex(nsISupports* that, uint
     "ldr	r0, [%1]	\n\t"	/* =that				*/
     "ldr	r1, [r0, #0]	\n\t"	/* get that->vtable offset		*/
     "ldr	r2, [%1, #4]	\n\t"
     "mov	r2, r2, lsl #2	\n\t"	/* a vtable_entry(x)=8 + (4 bytes * x)	*/
     "ldr        ip, [r1, r2]    \n\t"	/* get method adress from vtable        */
     "cmp	r4, #12		\n\t"	/* more than 3 arguments???		*/
     "ldmgtia	sp!, {r1, r2, r3}\n\t"	/* yes: load arguments for r1-r3	*/
     "subgt	r4, r4, #12	\n\t"	/*      and correct the stack pointer	*/
-    "ldmleia	sp, {r1, r2, r3}\n\t"	/* no:  load r1-r3 from stack		*/ 
+    "ldmleia	sp, {r1, r2, r3}\n\t"	/* no:  load r1-r3 from stack		*/
     "addle	sp, sp, r4	\n\t"	/*      and restore stack pointer	*/
     "movle	r4, #0		\n\t"	/*	a mark for restoring sp		*/
     "ldr	r0, [%1, #0]	\n\t"	/* get (self)				*/
     "mov	lr, pc		\n\t"	/* call mathod				*/
     "mov	pc, ip		\n\t"
     "add	sp, sp, r4	\n\t"	/* restore stack pointer		*/
     "mov	%0, r0		\n\t"	/* the result...			*/
     : "=r" (result)
     : "r" (&my_params), "m" (my_params)
     : "r0", "r1", "r2", "r3", "r4", "ip", "lr", "sp"
     );
 #else
 #error "Unsupported compiler. Use g++ >= 2.8 for OpenBSD/arm."
 #endif /* G++ >= 2.8 */
 
   return result;
-}    
+}
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_gcc_x86_unix.cpp
@@ -64,19 +64,19 @@ invoke_copy_to_stack(uint32_t paramCount
 
         /* set up call frame for method. */
 	"subl  %edx, %esp\n\t"       /* make room for params. */
 /* Align to maximum x86 data size: 128 bits == 16 bytes == XMM register size.
  * This is to avoid protection faults where SSE+ alignment of stack pointer
  * is assumed and required, e.g. by GCC4's -ftree-vectorize option.
  */
 	"andl  $0xfffffff0, %esp\n\t"   /* drop(?) stack ptr to 128-bit align */
-/* $esp should be aligned to a 16-byte boundary here (note we include an 
- * additional 4 bytes in a later push instruction). This will ensure $ebp 
- * in the function called below is aligned to a 0x8 boundary. SSE instructions 
+/* $esp should be aligned to a 16-byte boundary here (note we include an
+ * additional 4 bytes in a later push instruction). This will ensure $ebp
+ * in the function called below is aligned to a 0x8 boundary. SSE instructions
  * like movapd/movdqa expect memory operand to be aligned on a 16-byte
  * boundary. The GCC compiler will generate the memory operand using $ebp
  * with an 8-byte offset.
  */
 	"subl  $0xc, %esp\n\t"          /* lower again; push/call below will re-align */
 	"movl  %esp, %ecx\n\t"          /* ecx = d */
 	"movl  8(%ebp), %edx\n\t"       /* edx = this */
 	"pushl %edx\n\t"                /* push this. esp % 16 == 0 */
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_m68k.cpp
@@ -120,11 +120,11 @@ NS_InvokeByIndex(nsISupports* that, uint
     : "=d" (result)         /* %0 */
     : "a" (that),           /* %1 */
       "d" (methodIndex),    /* %2 */
       "g" (paramCount),     /* %3 */
       "g" (params),         /* %4 */
       "d" (n)               /* %5 */
     : "a0", "a1", "d0", "d1", "memory"
     );
-  
+
   return result;
 }
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390.cpp
@@ -58,113 +58,113 @@ invoke_count_words(uint32_t paramCount, 
     /* Round up number of overflow words to ensure stack
        stays aligned to 8 bytes.  */
     return (overflow + 1) & ~1;
 }
 
 static void
 invoke_copy_to_stack(uint32_t paramCount, nsXPTCVariant* s, uint32_t* d_ov, uint32_t overflow)
 {
-    uint32_t *d_gpr = d_ov + overflow; 
+    uint32_t *d_gpr = d_ov + overflow;
     uint64_t *d_fpr = (uint64_t *)(d_gpr + 4);
     uint32_t gpr = 1 /*this*/, fpr = 0;
 
     for(uint32_t i = 0; i < paramCount; i++, s++)
     {
         if(s->IsPtrData())
         {
-            if (gpr < 5) 
+            if (gpr < 5)
                 *((void**)d_gpr) = s->ptr, d_gpr++, gpr++;
             else
                 *((void**)d_ov ) = s->ptr, d_ov++;
             continue;
         }
         switch(s->type)
         {
-        case nsXPTType::T_I8     : 
+        case nsXPTType::T_I8     :
             if (gpr < 5)
                 *((int32_t*) d_gpr) = s->val.i8, d_gpr++, gpr++;
             else
                 *((int32_t*) d_ov ) = s->val.i8, d_ov++;
             break;
-        case nsXPTType::T_I16    : 
+        case nsXPTType::T_I16    :
             if (gpr < 5)
                 *((int32_t*) d_gpr) = s->val.i16, d_gpr++, gpr++;
             else
                 *((int32_t*) d_ov ) = s->val.i16, d_ov++;
             break;
-        case nsXPTType::T_I32    : 
+        case nsXPTType::T_I32    :
             if (gpr < 5)
                 *((int32_t*) d_gpr) = s->val.i32, d_gpr++, gpr++;
             else
                 *((int32_t*) d_ov ) = s->val.i32, d_ov++;
             break;
-        case nsXPTType::T_I64    : 
+        case nsXPTType::T_I64    :
             if (gpr < 4)
                 *((int64_t*) d_gpr) = s->val.i64, d_gpr+=2, gpr+=2;
             else
                 *((int64_t*) d_ov ) = s->val.i64, d_ov+=2, gpr=5;
             break;
-        case nsXPTType::T_U8     : 
+        case nsXPTType::T_U8     :
             if (gpr < 5)
                 *((uint32_t*) d_gpr) = s->val.u8, d_gpr++, gpr++;
             else
                 *((uint32_t*) d_ov ) = s->val.u8, d_ov++;
             break;
-        case nsXPTType::T_U16    : 
+        case nsXPTType::T_U16    :
             if (gpr < 5)
                 *((uint32_t*)d_gpr) = s->val.u16, d_gpr++, gpr++;
             else
                 *((uint32_t*)d_ov ) = s->val.u16, d_ov++;
             break;
-        case nsXPTType::T_U32    : 
+        case nsXPTType::T_U32    :
             if (gpr < 5)
                 *((uint32_t*)d_gpr) = s->val.u32, d_gpr++, gpr++;
             else
                 *((uint32_t*)d_ov ) = s->val.u32, d_ov++;
             break;
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_U64    :
             if (gpr < 4)
                 *((uint64_t*)d_gpr) = s->val.u64, d_gpr+=2, gpr+=2;
             else
                 *((uint64_t*)d_ov ) = s->val.u64, d_ov+=2, gpr=5;
             break;
-        case nsXPTType::T_FLOAT  : 
+        case nsXPTType::T_FLOAT  :
             if (fpr < 2)
                 *((float*)   d_fpr) = s->val.f, d_fpr++, fpr++;
             else
                 *((float*)   d_ov ) = s->val.f, d_ov++;
             break;
-        case nsXPTType::T_DOUBLE : 
+        case nsXPTType::T_DOUBLE :
             if (fpr < 2)
                 *((double*)  d_fpr) = s->val.d, d_fpr++, fpr++;
             else
                 *((double*)  d_ov ) = s->val.d, d_ov+=2;
             break;
-        case nsXPTType::T_BOOL   : 
+        case nsXPTType::T_BOOL   :
             if (gpr < 5)
                 *((uint32_t*)d_gpr) = s->val.b, d_gpr++, gpr++;
             else
                 *((uint32_t*)d_ov ) = s->val.b, d_ov++;
             break;
-        case nsXPTType::T_CHAR   : 
+        case nsXPTType::T_CHAR   :
             if (gpr < 5)
                 *((uint32_t*)d_gpr) = s->val.c, d_gpr++, gpr++;
             else
                 *((uint32_t*)d_ov ) = s->val.c, d_ov++;
             break;
-        case nsXPTType::T_WCHAR  : 
+        case nsXPTType::T_WCHAR  :
             if (gpr < 5)
                 *((uint32_t*)d_gpr) = s->val.wc, d_gpr++, gpr++;
             else
                 *((uint32_t*)d_ov ) = s->val.wc, d_ov++;
             break;
         default:
             // all the others are plain pointer types
-            if (gpr < 5) 
+            if (gpr < 5)
                 *((void**)   d_gpr) = s->val.p, d_gpr++, gpr++;
             else
                 *((void**)   d_ov ) = s->val.p, d_ov++;
             break;
         }
     }
 }
 
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390x.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_linux_s390x.cpp
@@ -52,113 +52,113 @@ invoke_count_words(uint32_t paramCount, 
     /* Round up number of overflow words to ensure stack
        stays aligned to 8 bytes.  */
     return (overflow + 1) & ~1;
 }
 
 static void
 invoke_copy_to_stack(uint32_t paramCount, nsXPTCVariant* s, uint64_t* d_ov, uint32_t overflow)
 {
-    uint64_t *d_gpr = d_ov + overflow; 
+    uint64_t *d_gpr = d_ov + overflow;
     uint64_t *d_fpr = (uint64_t *)(d_gpr + 4);
     uint32_t gpr = 1 /*this*/, fpr = 0;
 
     for(uint32_t i = 0; i < paramCount; i++, s++)
     {
         if(s->IsPtrData())
         {
-            if (gpr < 5) 
+            if (gpr < 5)
                 *((void**)d_gpr) = s->ptr, d_gpr++, gpr++;
             else
                 *((void**)d_ov ) = s->ptr, d_ov++;
             continue;
         }
         switch(s->type)
         {
-        case nsXPTType::T_I8     : 
+        case nsXPTType::T_I8     :
             if (gpr < 5)
                 *((int64_t*) d_gpr) = s->val.i8, d_gpr++, gpr++;
             else
                 *((int64_t*) d_ov ) = s->val.i8, d_ov++;
             break;
-        case nsXPTType::T_I16    : 
+        case nsXPTType::T_I16    :
             if (gpr < 5)
                 *((int64_t*) d_gpr) = s->val.i16, d_gpr++, gpr++;
             else
                 *((int64_t*) d_ov ) = s->val.i16, d_ov++;
             break;
-        case nsXPTType::T_I32    : 
+        case nsXPTType::T_I32    :
             if (gpr < 5)
                 *((int64_t*) d_gpr) = s->val.i32, d_gpr++, gpr++;
             else
                 *((int64_t*) d_ov ) = s->val.i32, d_ov++;
             break;
-        case nsXPTType::T_I64    : 
+        case nsXPTType::T_I64    :
             if (gpr < 5)
                 *((int64_t*) d_gpr) = s->val.i64, d_gpr++, gpr++;
             else
                 *((int64_t*) d_ov ) = s->val.i64, d_ov++;
             break;
-        case nsXPTType::T_U8     : 
+        case nsXPTType::T_U8     :
             if (gpr < 5)
                 *((uint64_t*) d_gpr) = s->val.u8, d_gpr++, gpr++;
             else
                 *((uint64_t*) d_ov ) = s->val.u8, d_ov++;
             break;
-        case nsXPTType::T_U16    : 
+        case nsXPTType::T_U16    :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.u16, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.u16, d_ov++;
             break;
-        case nsXPTType::T_U32    : 
+        case nsXPTType::T_U32    :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.u32, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.u32, d_ov++;
             break;
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_U64    :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.u64, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.u64, d_ov++;
             break;
-        case nsXPTType::T_FLOAT  : 
+        case nsXPTType::T_FLOAT  :
             if (fpr < 4)
                 *((float*)   d_fpr)    = s->val.f, d_fpr++, fpr++;
             else
                 *(((float*)  d_ov )+1) = s->val.f, d_ov++;
             break;
-        case nsXPTType::T_DOUBLE : 
+        case nsXPTType::T_DOUBLE :
             if (fpr < 4)
                 *((double*)  d_fpr) = s->val.d, d_fpr++, fpr++;
             else
                 *((double*)  d_ov ) = s->val.d, d_ov++;
             break;
-        case nsXPTType::T_BOOL   : 
+        case nsXPTType::T_BOOL   :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.b, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.b, d_ov++;
             break;
-        case nsXPTType::T_CHAR   : 
+        case nsXPTType::T_CHAR   :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.c, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.c, d_ov++;
             break;
-        case nsXPTType::T_WCHAR  : 
+        case nsXPTType::T_WCHAR  :
             if (gpr < 5)
                 *((uint64_t*)d_gpr) = s->val.wc, d_gpr++, gpr++;
             else
                 *((uint64_t*)d_ov ) = s->val.wc, d_ov++;
             break;
         default:
             // all the others are plain pointer types
-            if (gpr < 5) 
+            if (gpr < 5)
                 *((void**)   d_gpr) = s->val.p, d_gpr++, gpr++;
             else
                 *((void**)   d_ov ) = s->val.p, d_ov++;
             break;
         }
     }
 }
 
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_netbsd_m68k.cpp
@@ -133,11 +133,11 @@ XPTC_InvokeByIndex(nsISupports* that, ui
     "movl  d0, %0\n\t"
     : "=g" (result)         /* %0 */
     : "g" (that),           /* %1 */
       "g" (methodIndex),    /* %2 */
       "g" (paramCount),     /* %3 */
       "g" (params)          /* %4 */
     : "a0", "a1", "a2", "d0", "d1", "memory"
     );
-  
+
   return result;
 }
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp
@@ -31,17 +31,17 @@ invoke_count_words(uint32_t paramCount, 
 {
     return uint32_t(((paramCount * 2) + 3) & ~3);
 }
 
 extern "C" void
 invoke_copy_to_stack(uint64_t* gpregs,
                      double* fpregs,
                      uint32_t paramCount,
-                     nsXPTCVariant* s, 
+                     nsXPTCVariant* s,
                      uint64_t* d)
 {
     uint64_t tempu64;
 
     for(uint32_t i = 0; i < paramCount; i++, s++) {
         if(s->IsPtrData())
             tempu64 = (uint64_t) s->ptr;
         else {
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_aix.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_aix.cpp
@@ -37,17 +37,17 @@ invoke_copy_to_stack(uint32_t* d, uint32
             *((void**)l_d) = l_s->ptr;
             continue;
         }
         switch(l_s->type)
         {
         case nsXPTType::T_I8     : *((int32_t*)  l_d) = l_s->val.i8;          break;
         case nsXPTType::T_I16    : *((int32_t*)  l_d) = l_s->val.i16;         break;
         case nsXPTType::T_I32    : *((int32_t*)  l_d) = l_s->val.i32;         break;
-        case nsXPTType::T_I64    : 
+        case nsXPTType::T_I64    :
         case nsXPTType::T_U64    :
             *((uint32_t*) l_d++) = ((DU *)l_s)->hi;
             *((uint32_t*) l_d) = ((DU *)l_s)->lo;
             break;
         case nsXPTType::T_DOUBLE :
             *((uint32_t*) l_d++) = ((DU *)l_s)->hi;
             *((uint32_t*) l_d) = ((DU *)l_s)->lo;
             if(fpCount < 13)
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
@@ -28,27 +28,27 @@ extern "C" uint32_t
 invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
 {
   return uint32_t(((paramCount * 2) + 3) & ~3);
 }
 
 extern "C" void
 invoke_copy_to_stack(uint32_t* d,
                      uint32_t paramCount,
-                     nsXPTCVariant* s, 
+                     nsXPTCVariant* s,
                      uint32_t* gpregs,
                      double* fpregs)
 {
     uint32_t gpr = 1; // skip one GP reg for 'that'
 #ifndef __NO_FPRS__
     uint32_t fpr = 0;
 #endif
     uint32_t tempu32;
     uint64_t tempu64;
-    
+
     for(uint32_t i = 0; i < paramCount; i++, s++) {
         if(s->IsPtrData()) {
             if(s->type == nsXPTType::T_JSVAL)
                 tempu32 = (uint32_t) &s->ptr;
             else
                 tempu32 = (uint32_t) s->ptr;
         }
         else {
@@ -113,16 +113,16 @@ invoke_copy_to_stack(uint32_t* d,
             }
         }
         else {
             if (gpr < GPR_COUNT)
                 gpregs[gpr++] = tempu32;
             else
                 *d++          = tempu32;
         }
-        
+
     }
 }
 
 extern "C"
 EXPORT_XPCOM_API(nsresult)
 NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                  uint32_t paramCount, nsXPTCVariant* params);
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_netbsd.cpp
@@ -26,25 +26,25 @@ extern "C" uint32_t
 invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
 {
   return uint32_t(((paramCount * 2) + 3) & ~3);
 }
 
 extern "C" void
 invoke_copy_to_stack(uint32_t* d,
                      uint32_t paramCount,
-                     nsXPTCVariant* s, 
+                     nsXPTCVariant* s,
                      uint32_t* gpregs,
                      double* fpregs)
 {
     uint32_t gpr = 1; // skip one GP reg for 'that'
     uint32_t fpr = 0;
     uint32_t tempu32;
     uint64_t tempu64;
-    
+
     for(uint32_t i = 0; i < paramCount; i++, s++) {
         if(s->IsPtrData()) {
             if(s->type == nsXPTType::T_JSVAL)
                tempu32 = (uint32_t) &(s->ptr);
             else
                tempu32 = (uint32_t) s->ptr;
         } else {
             switch(s->type) {
@@ -100,16 +100,16 @@ invoke_copy_to_stack(uint32_t* d,
             }
         }
         else {
             if (gpr < GPR_COUNT)
                 gpregs[gpr++] = tempu32;
             else
                 *d++          = tempu32;
         }
-        
+
     }
 }
 
 extern "C"
 XPTC_PUBLIC_API(nsresult)
 XPTC_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                    uint32_t paramCount, nsXPTCVariant* params);
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_openbsd.cpp
@@ -26,25 +26,25 @@ extern "C" uint32_t
 invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
 {
   return uint32_t(((paramCount * 2) + 3) & ~3);
 }
 
 extern "C" void
 invoke_copy_to_stack(uint32_t* d,
                      uint32_t paramCount,
-                     nsXPTCVariant* s, 
+                     nsXPTCVariant* s,
                      uint32_t* gpregs,
                      double* fpregs)
 {
     uint32_t gpr = 1; // skip one GP reg for 'that'
     uint32_t fpr = 0;
     uint32_t tempu32;
     uint64_t tempu64;
-    
+
     for(uint32_t i = 0; i < paramCount; i++, s++) {
         if(s->IsPtrData()) {
             if(s->type == nsXPTType::T_JSVAL)
                tempu32 = (uint32_t) &(s->ptr);
             else
                tempu32 = (uint32_t) s->ptr;
         } else {
             switch(s->type) {
@@ -94,16 +94,16 @@ invoke_copy_to_stack(uint32_t* d,
             }
         }
         else {
             if (gpr < GPR_COUNT)
                 gpregs[gpr++] = tempu32;
             else
                 *d++          = tempu32;
         }
-        
+
     }
 }
 
 extern "C"
 EXPORT_XPCOM_API(nsresult)
 NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                  uint32_t paramCount, nsXPTCVariant* params);
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_rhapsody.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_rhapsody.cpp
@@ -97,17 +97,17 @@ invoke_copy_to_stack(uint32_t* d, uint32
             // all the others are plain pointer types
             *((void**)d) = s->val.p;
             break;
         }
     }
 }
 
 extern "C" nsresult _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
-                                      uint32_t paramCount, 
+                                      uint32_t paramCount,
                                       nsXPTCVariant* params);
 
 EXPORT_XPCOM_API(nsresult)
 NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
                  uint32_t paramCount, nsXPTCVariant* params)
 {
     return _NS_InvokeByIndex(that, methodIndex, paramCount, params);
-}    
+}
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc64_openbsd.cpp
@@ -36,17 +36,17 @@ invoke_copy_to_stack(uint64_t* d, uint32
       continue;
     }
     switch (l_s->type)
     {
       case nsXPTType::T_I8    : *((int64_t*)l_d)     = l_s->val.i8;    break;
       case nsXPTType::T_I16   : *((int64_t*)l_d)     = l_s->val.i16;   break;
       case nsXPTType::T_I32   : *((int64_t*)l_d)     = l_s->val.i32;   break;
       case nsXPTType::T_I64   : *((int64_t*)l_d)     = l_s->val.i64;   break;
-      
+
       case nsXPTType::T_U8    : *((uint64_t*)l_d)    = l_s->val.u8;    break;
       case nsXPTType::T_U16   : *((uint64_t*)l_d)    = l_s->val.u16;   break;
       case nsXPTType::T_U32   : *((uint64_t*)l_d)    = l_s->val.u32;   break;
       case nsXPTType::T_U64   : *((uint64_t*)l_d)    = l_s->val.u64;   break;
 
       /* in the case of floats, we want to put the bits in to the
          64bit space right justified... floats in the parameter array on
          sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip
@@ -59,11 +59,11 @@ invoke_copy_to_stack(uint64_t* d, uint32
       case nsXPTType::T_WCHAR : *((int64_t*)l_d)     = l_s->val.wc;    break;
 
       default:
         // all the others are plain pointer types
         *((void**)l_d) = l_s->val.p;
         break;
     }
   }
-  
+
   return regCount;
 }
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_netbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_netbsd.cpp
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Platform specific code to invoke XPCOM methods on native objects */
 
 #include "xptcprivate.h"
 
-/* solaris defines __sparc for workshop compilers and 
+/* solaris defines __sparc for workshop compilers and
    linux defines __sparc__ */
 
 #if !defined(__sparc) && !defined(__sparc__)
 #error "This code is for Sparc only"
 #endif
 
 typedef unsigned nsXPCVariant;
 
@@ -102,18 +102,18 @@ invoke_copy_to_stack(uint32_t* d, uint32
             }
             continue;
         }
         switch(l_s->type)
         {
         case nsXPTType::T_I8     : *((int32_t*)   l_d) = l_s->val.i8;          break;
         case nsXPTType::T_I16    : *((int32_t*)  l_d) = l_s->val.i16;         break;
         case nsXPTType::T_I32    : *((int32_t*)  l_d) = l_s->val.i32;         break;
-        case nsXPTType::T_I64    : 
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_I64    :
+        case nsXPTType::T_U64    :
         case nsXPTType::T_DOUBLE : *((uint32_t*) l_d++) = ((DU *)l_s)->hi;
 				   if (regCount < 5) regCount++;
                                    *((uint32_t*) l_d) = ((DU *)l_s)->lo;
                                    break;
         case nsXPTType::T_U8     : *((uint32_t*) l_d) = l_s->val.u8;          break;
         case nsXPTType::T_U16    : *((uint32_t*) l_d) = l_s->val.u16;         break;
         case nsXPTType::T_U32    : *((uint32_t*) l_d) = l_s->val.u32;         break;
         case nsXPTType::T_FLOAT  : *((float*)  l_d) = l_s->val.f;           break;
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_openbsd.cpp
@@ -99,18 +99,18 @@ invoke_copy_to_stack(uint32_t* d, uint32
             }
             continue;
         }
         switch(l_s->type)
         {
         case nsXPTType::T_I8     : *((int32_t*)  l_d) = l_s->val.i8;          break;
         case nsXPTType::T_I16    : *((int32_t*)  l_d) = l_s->val.i16;         break;
         case nsXPTType::T_I32    : *((int32_t*)  l_d) = l_s->val.i32;         break;
-        case nsXPTType::T_I64    : 
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_I64    :
+        case nsXPTType::T_U64    :
         case nsXPTType::T_DOUBLE : *((uint32_t*) l_d++) = ((DU *)l_s)->hi;
 				   if (regCount < 5) regCount++;
                                    *((uint32_t*) l_d) = ((DU *)l_s)->lo;
                                    break;
         case nsXPTType::T_U8     : *((uint32_t*) l_d) = l_s->val.u8;          break;
         case nsXPTType::T_U16    : *((uint32_t*) l_d) = l_s->val.u16;         break;
         case nsXPTType::T_U32    : *((uint32_t*) l_d) = l_s->val.u32;         break;
         case nsXPTType::T_FLOAT  : *((float*)  l_d) = l_s->val.f;           break;
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_solaris.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparc_solaris.cpp
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Platform specific code to invoke XPCOM methods on native objects */
 
 #include "xptcprivate.h"
 
-/* solaris defines __sparc for workshop compilers and 
+/* solaris defines __sparc for workshop compilers and
    linux defines __sparc__ */
 
 #if !defined(__sparc) && !defined(__sparc__)
 #error "This code is for Sparc only"
 #endif
 
 typedef unsigned nsXPCVariant;
 
@@ -102,18 +102,18 @@ invoke_copy_to_stack(uint32_t* d, uint32
             }
             continue;
         }
         switch(l_s->type)
         {
         case nsXPTType::T_I8     : *((int32_t*)   l_d) = l_s->val.i8;          break;
         case nsXPTType::T_I16    : *((int32_t*)  l_d) = l_s->val.i16;         break;
         case nsXPTType::T_I32    : *((int32_t*)  l_d) = l_s->val.i32;         break;
-        case nsXPTType::T_I64    : 
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_I64    :
+        case nsXPTType::T_U64    :
         case nsXPTType::T_DOUBLE : *((uint32_t*) l_d++) = ((DU *)l_s)->hi;
 				   if (regCount < 5) regCount++;
                                    *((uint32_t*) l_d) = ((DU *)l_s)->lo;
                                    break;
         case nsXPTType::T_U8     : *((uint32_t*) l_d) = l_s->val.u8;          break;
         case nsXPTType::T_U16    : *((uint32_t*) l_d) = l_s->val.u16;         break;
         case nsXPTType::T_U32    : *((uint32_t*) l_d) = l_s->val.u32;         break;
         case nsXPTType::T_FLOAT  : *((float*)  l_d) = l_s->val.f;           break;
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparcv9_solaris.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_sparcv9_solaris.cpp
@@ -40,17 +40,17 @@ invoke_copy_to_stack(uint64_t* d, uint32
       continue;
     }
     switch (l_s->type)
     {
       case nsXPTType::T_I8    : *((int64_t*)l_d)     = l_s->val.i8;    break;
       case nsXPTType::T_I16   : *((int64_t*)l_d)     = l_s->val.i16;   break;
       case nsXPTType::T_I32   : *((int64_t*)l_d)     = l_s->val.i32;   break;
       case nsXPTType::T_I64   : *((int64_t*)l_d)     = l_s->val.i64;   break;
-      
+
       case nsXPTType::T_U8    : *((uint64_t*)l_d)    = l_s->val.u8;    break;
       case nsXPTType::T_U16   : *((uint64_t*)l_d)    = l_s->val.u16;   break;
       case nsXPTType::T_U32   : *((uint64_t*)l_d)    = l_s->val.u32;   break;
       case nsXPTType::T_U64   : *((uint64_t*)l_d)    = l_s->val.u64;   break;
 
       /* in the case of floats, we want to put the bits in to the
          64bit space right justified... floats in the parameter array on
          sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip
@@ -63,11 +63,11 @@ invoke_copy_to_stack(uint64_t* d, uint32
       case nsXPTType::T_WCHAR : *((int64_t*)l_d)     = l_s->val.wc;    break;
 
       default:
         // all the others are plain pointer types
         *((void**)l_d) = l_s->val.p;
         break;
     }
   }
-  
+
   return regCount;
 }
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_solaris.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_solaris.cpp
@@ -107,17 +107,17 @@ invoke_copy_to_stack(uint64_t * d, uint3
 
 MOZ_ASAN_BLACKLIST
 EXPORT_XPCOM_API(nsresult)
 NS_InvokeByIndex(nsISupports * that, uint32_t methodIndex,
                  uint32_t paramCount, nsXPTCVariant * params)
 {
     uint32_t nr_gpr, nr_fpr, nr_stack;
     invoke_count_words(paramCount, params, nr_gpr, nr_fpr, nr_stack);
-    
+
     // Stack, if used, must be 16-bytes aligned
     if (nr_stack)
         nr_stack = (nr_stack + 1) & ~1;
 
     // Load parameters to stack, if necessary
     uint64_t *stack = (uint64_t *) __builtin_alloca(nr_stack * 8);
     uint64_t gpregs[GPR_COUNT];
     double fpregs[FPR_COUNT];
@@ -129,21 +129,21 @@ NS_InvokeByIndex(nsISupports * that, uin
       case 6: asm("movupd %0, %xmm5" : : "xmm5" (fpregs[5]));
       case 5: asm("movupd %0, %xmm4" : : "xmm4" (fpregs[4]));
       case 4: asm("movupd %0, %xmm3" : : "xmm3" (fpregs[3]));
       case 3: asm("movupd %0, %xmm2" : : "xmm2" (fpregs[2]));
       case 2: asm("movupd %0, %xmm1" : : "xmm1" (fpregs[1]));
       case 1: asm("movupd %0, %xmm0" : : "xmm0" (fpregs[0]));
       case 0:;
     }
-    
+
     // Ensure that assignments to SSE registers won't be optimized away
     asm("" ::: "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7");
-    
+
     // Get pointer to method
     uint64_t methodAddress = *((uint64_t *)that);
     methodAddress += 16 + 8 * methodIndex;
     methodAddress = *((uint64_t *)methodAddress);
-    
+
     typedef uint32_t (*Method)(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t);
     uint32_t result = ((Method)methodAddress)((uint64_t)that, gpregs[1], gpregs[2], gpregs[3], gpregs[4], gpregs[5]);
     return result;
 }
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390.cpp
@@ -5,17 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
 #include "xptiprivate.h"
 
 static nsresult ATTRIBUTE_USED
-PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, 
+PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex,
                    uint32_t* a_gpr, uint64_t *a_fpr, uint32_t *a_ov)
 {
 #define PARAM_BUFFER_COUNT     16
 
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
     nsXPTCMiniVariant* dispatchParams = nullptr;
     const nsXPTMethodInfo* info;
     uint8_t paramCount;
@@ -50,89 +50,89 @@ PrepareAndDispatch(nsXPTCStubBase* self,
                 dp->val.p = (void*) *a_gpr++, gpr++;
             else
                 dp->val.p = (void*) *a_ov++;
             continue;
         }
         // else
         switch(type)
         {
-        case nsXPTType::T_I8     : 
+        case nsXPTType::T_I8     :
             if (gpr < 5)
                 dp->val.i8  = *((int32_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i8  = *((int32_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I16    : 
+        case nsXPTType::T_I16    :
             if (gpr < 5)
                 dp->val.i16 = *((int32_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i16 = *((int32_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I32    : 
+        case nsXPTType::T_I32    :
             if (gpr < 5)
                 dp->val.i32 = *((int32_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i32 = *((int32_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I64    : 
+        case nsXPTType::T_I64    :
             if (gpr < 4)
                 dp->val.i64 = *((int64_t*) a_gpr), a_gpr+=2, gpr+=2;
             else
                 dp->val.i64 = *((int64_t*) a_ov ), a_ov+=2, gpr=5;
             break;
-        case nsXPTType::T_U8     : 
+        case nsXPTType::T_U8     :
             if (gpr < 5)
                 dp->val.u8  = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u8  = *((uint32_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U16    : 
+        case nsXPTType::T_U16    :
             if (gpr < 5)
                 dp->val.u16 = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u16 = *((uint32_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U32    : 
+        case nsXPTType::T_U32    :
             if (gpr < 5)
                 dp->val.u32 = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u32 = *((uint32_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_U64    :
             if (gpr < 4)
                 dp->val.u64 = *((uint64_t*)a_gpr), a_gpr+=2, gpr+=2;
             else
                 dp->val.u64 = *((uint64_t*)a_ov ), a_ov+=2, gpr=5;
             break;
-        case nsXPTType::T_FLOAT  : 
+        case nsXPTType::T_FLOAT  :
             if (fpr < 2)
                 dp->val.f   = *((float*)   a_fpr), a_fpr++, fpr++;
             else
                 dp->val.f   = *((float*)   a_ov ), a_ov++;
             break;
-        case nsXPTType::T_DOUBLE : 
+        case nsXPTType::T_DOUBLE :
             if (fpr < 2)
                 dp->val.d   = *((double*)  a_fpr), a_fpr++, fpr++;
             else
                 dp->val.d   = *((double*)  a_ov ), a_ov+=2;
             break;
-        case nsXPTType::T_BOOL   : 
+        case nsXPTType::T_BOOL   :
             if (gpr < 5)
                 dp->val.b   = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.b   = *((uint32_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_CHAR   : 
+        case nsXPTType::T_CHAR   :
             if (gpr < 5)
                 dp->val.c   = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.c   = *((uint32_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_WCHAR  : 
+        case nsXPTType::T_WCHAR  :
             if (gpr < 5)
                 dp->val.wc  = *((uint32_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.wc  = *((uint32_t*)a_ov ), a_ov++;
             break;
         default:
             NS_ERROR("bad type");
             break;
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390x.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_linux_s390x.cpp
@@ -5,17 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
 #include "xptiprivate.h"
 
 static nsresult ATTRIBUTE_USED
-PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, 
+PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex,
                    uint64_t* a_gpr, uint64_t *a_fpr, uint64_t *a_ov)
 {
 #define PARAM_BUFFER_COUNT     16
 
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
     nsXPTCMiniVariant* dispatchParams = nullptr;
     const nsXPTMethodInfo* info;
     uint8_t paramCount;
@@ -50,89 +50,89 @@ PrepareAndDispatch(nsXPTCStubBase* self,
                 dp->val.p = (void*) *a_gpr++, gpr++;
             else
                 dp->val.p = (void*) *a_ov++;
             continue;
         }
         // else
         switch(type)
         {
-        case nsXPTType::T_I8     : 
+        case nsXPTType::T_I8     :
             if (gpr < 5)
                 dp->val.i8  = *((int64_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i8  = *((int64_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I16    : 
+        case nsXPTType::T_I16    :
             if (gpr < 5)
                 dp->val.i16 = *((int64_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i16 = *((int64_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I32    : 
+        case nsXPTType::T_I32    :
             if (gpr < 5)
                 dp->val.i32 = *((int64_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i32 = *((int64_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_I64    : 
+        case nsXPTType::T_I64    :
             if (gpr < 5)
                 dp->val.i64 = *((int64_t*) a_gpr), a_gpr++, gpr++;
             else
                 dp->val.i64 = *((int64_t*) a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U8     : 
+        case nsXPTType::T_U8     :
             if (gpr < 5)
                 dp->val.u8  = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u8  = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U16    : 
+        case nsXPTType::T_U16    :
             if (gpr < 5)
                 dp->val.u16 = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u16 = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U32    : 
+        case nsXPTType::T_U32    :
             if (gpr < 5)
                 dp->val.u32 = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u32 = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_U64    : 
+        case nsXPTType::T_U64    :
             if (gpr < 5)
                 dp->val.u64 = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.u64 = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_FLOAT  : 
+        case nsXPTType::T_FLOAT  :
             if (fpr < 4)
                 dp->val.f   = *((float*)   a_fpr), a_fpr++, fpr++;
             else
                 dp->val.f   = *(((float*)  a_ov )+1), a_ov++;
             break;
-        case nsXPTType::T_DOUBLE : 
+        case nsXPTType::T_DOUBLE :
             if (fpr < 4)
                 dp->val.d   = *((double*)  a_fpr), a_fpr++, fpr++;
             else
                 dp->val.d   = *((double*)  a_ov ), a_ov++;
             break;
-        case nsXPTType::T_BOOL   : 
+        case nsXPTType::T_BOOL   :
             if (gpr < 5)
                 dp->val.b   = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.b   = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_CHAR   : 
+        case nsXPTType::T_CHAR   :
             if (gpr < 5)
                 dp->val.c   = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.c   = *((uint64_t*)a_ov ), a_ov++;
             break;
-        case nsXPTType::T_WCHAR  : 
+        case nsXPTType::T_WCHAR  :
             if (gpr < 5)
                 dp->val.wc  = *((uint64_t*)a_gpr), a_gpr++, gpr++;
             else
                 dp->val.wc  = *((uint64_t*)a_ov ), a_ov++;
             break;
         default:
             NS_ERROR("bad type");
             break;
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_pa32.cpp
@@ -3,17 +3,17 @@
  *
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
-#include "xptiprivate.h" 
+#include "xptiprivate.h"
 
 #if _HPUX
 #error "This code is for HP-PA RISC 32 bit mode only"
 #endif
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex,
   uint32_t* args, uint32_t* floatargs)
@@ -111,17 +111,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
     case nsXPTType::T_WCHAR  : dp->val.wc  = *((int32_t*)  args); break;
     default:
       NS_ERROR("bad type");
       break;
     }
     ++regwords;
   }
 
-  result = self->mOuter->CallMethod((uint16_t) methodIndex, info, dispatchParams); 
+  result = self->mOuter->CallMethod((uint16_t) methodIndex, info, dispatchParams);
 
   if(dispatchParams != paramBuffer)
     delete [] dispatchParams;
 
   return result;
 }
 
 extern "C" nsresult SharedStub(int);
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp
@@ -23,17 +23,17 @@
 #define GPR_COUNT                7
 #define FPR_COUNT               13
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gprData[]' contains the arguments passed in integer registers
 // - 'fprData[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 #include <stdio.h>
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self,
                    uint64_t methodIndex,
                    uint64_t* args,
                    uint64_t *gprData,
@@ -67,17 +67,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
 
     uint64_t* ap = args;
     uint64_t tempu64;
 
     for(i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
             if (i < FPR_COUNT)
                 dp->val.d = fprData[i];
             else
                 dp->val.d = *(double*) ap;
         } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
             if (i < FPR_COUNT)
                 dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix.cpp
@@ -6,31 +6,31 @@
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
 #include "xptiprivate.h"
 
 #if defined(AIX)
 
 /*
-        For PPC (AIX & MAC), the first 8 integral and the first 13 f.p. parameters 
-        arrive in a separate chunk of data that has been loaded from the registers. 
+        For PPC (AIX & MAC), the first 8 integral and the first 13 f.p. parameters
+        arrive in a separate chunk of data that has been loaded from the registers.
         The args pointer has been set to the start of the parameters BEYOND the ones
         arriving in registers
 */
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self, uint32_t methodIndex, uint32_t* args, uint32_t *gprData, double *fprData)
 {
     typedef struct {
         uint32_t hi;
         uint32_t lo;      // have to move 64 bit entities as 32 bit halves since
     } DU;               // stack slots are not guaranteed 16 byte aligned
 
 #define PARAM_BUFFER_COUNT     16
-#define PARAM_GPR_COUNT         7  
+#define PARAM_GPR_COUNT         7
 
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
     nsXPTCMiniVariant* dispatchParams = nullptr;
     const nsXPTMethodInfo* info = nullptr;
     uint8_t paramCount;
     uint8_t i;
     nsresult result = NS_ERROR_FAILURE;
 
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix64.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_aix64.cpp
@@ -5,27 +5,27 @@
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
 #include "xptiprivate.h"
 
 #if defined(AIX)
 
 /*
-        For PPC (AIX & MAC), the first 8 integral and the first 13 f.p. parameters 
-        arrive in a separate chunk of data that has been loaded from the registers. 
+        For PPC (AIX & MAC), the first 8 integral and the first 13 f.p. parameters
+        arrive in a separate chunk of data that has been loaded from the registers.
         The args pointer has been set to the start of the parameters BEYOND the ones
         arriving in registers
 */
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self, uint64_t methodIndex, uint64_t* args, uint64_t *gprData, double *fprData)
 {
 
 #define PARAM_BUFFER_COUNT     16
-#define PARAM_GPR_COUNT         7  
+#define PARAM_GPR_COUNT         7
 
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
     nsXPTCMiniVariant* dispatchParams = nullptr;
     const nsXPTMethodInfo* info = nullptr;
     uint8_t paramCount;
     uint8_t i;
     nsresult result = NS_ERROR_FAILURE;
 
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_linux.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_linux.cpp
@@ -22,17 +22,17 @@
 #define PARAM_BUFFER_COUNT      8
 #define GPR_COUNT               8
 #endif
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gprData[]' contains the arguments passed in integer registers
 // - 'fprData[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self,
                    uint32_t methodIndex,
                    uint32_t* args,
                    uint32_t *gprData,
@@ -71,17 +71,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
 #endif
     uint32_t tempu32;
     uint64_t tempu64;
 
     for(i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
 #ifndef __NO_FPRS__
             if (fpr < FPR_COUNT)
                 dp->val.d = fprData[fpr++];
 #else
             if (gpr & 1)
                 gpr++;
             if (gpr + 1 < GPR_COUNT) {
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_netbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_netbsd.cpp
@@ -18,17 +18,17 @@
 #define GPR_COUNT               8
 #define FPR_COUNT               8
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gprData[]' contains the arguments passed in integer registers
 // - 'fprData[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self,
                    uint32_t methodIndex,
                    uint32_t* args,
                    uint32_t *gprData,
@@ -71,17 +71,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
     uint32_t fpr = 0;
     uint32_t tempu32;
     uint64_t tempu64;
 
     for(i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
             if (fpr < FPR_COUNT)
                 dp->val.d = fprData[fpr++];
             else {
                 if ((uint32_t) ap & 4) ap++; // doubles are 8-byte aligned on stack
                 dp->val.d = *(double*) ap;
                 ap += 2;
 		if (gpr < GPR_COUNT)
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc_openbsd.cpp
@@ -19,17 +19,17 @@
 #define GPR_COUNT               8
 #define FPR_COUNT               8
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gprData[]' contains the arguments passed in integer registers
 // - 'fprData[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase* self,
                    uint32_t methodIndex,
                    uint32_t* args,
                    uint32_t *gprData,
@@ -66,17 +66,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
     uint32_t fpr = 0;
     uint32_t tempu32;
     uint64_t tempu64;
 
     for(i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
             if (fpr < FPR_COUNT)
                 dp->val.d = fprData[fpr++];
             else {
                 if ((uint32_t) ap & 4) ap++; // doubles are 8-byte aligned on stack
                 dp->val.d = *(double*) ap;
                 ap += 2;
             }
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_netbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_netbsd.cpp
@@ -64,17 +64,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
         // else
         switch(type)
         {
         case nsXPTType::T_I8     : dp->val.i8  = *((int32_t*) ap);       break;
         case nsXPTType::T_I16    : dp->val.i16 = *((int32_t*) ap);       break;
         case nsXPTType::T_I32    : dp->val.i32 = *((int32_t*) ap);       break;
         case nsXPTType::T_DOUBLE :
         case nsXPTType::T_U64    :
-        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi; 
+        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi;
                                    ((DU *)dp)->lo = ((DU *)ap)->lo;
                                    ap++;
                                    break;
         case nsXPTType::T_U8     : dp->val.u8  = *((uint32_t*)ap);       break;
         case nsXPTType::T_U16    : dp->val.u16 = *((uint32_t*)ap);       break;
         case nsXPTType::T_U32    : dp->val.u32 = *((uint32_t*)ap);       break;
         case nsXPTType::T_FLOAT  : dp->val.f   = *((float*)   ap);       break;
         case nsXPTType::T_BOOL   : dp->val.b   = *((uint32_t*)ap);       break;
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_openbsd.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_openbsd.cpp
@@ -67,17 +67,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
         // else
         switch(type)
         {
         case nsXPTType::T_I8     : dp->val.i8  = *((int32_t*) ap);       break;
         case nsXPTType::T_I16    : dp->val.i16 = *((int32_t*) ap);       break;
         case nsXPTType::T_I32    : dp->val.i32 = *((int32_t*) ap);       break;
         case nsXPTType::T_DOUBLE :
         case nsXPTType::T_U64    :
-        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi; 
+        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi;
                                    ((DU *)dp)->lo = ((DU *)ap)->lo;
                                    ap++;
                                    break;
         case nsXPTType::T_U8     : dp->val.u8  = *((uint32_t*)ap);       break;
         case nsXPTType::T_U16    : dp->val.u16 = *((uint32_t*)ap);       break;
         case nsXPTType::T_U32    : dp->val.u32 = *((uint32_t*)ap);       break;
         case nsXPTType::T_FLOAT  : dp->val.f   = *((float*)   ap);       break;
         case nsXPTType::T_BOOL   : dp->val.b   = *((uint32_t*)ap);       break;
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_solaris.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_sparc_solaris.cpp
@@ -61,17 +61,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
         // else
         switch(type)
         {
         case nsXPTType::T_I8     : dp->val.i8  = *((int32_t*) ap);       break;
         case nsXPTType::T_I16    : dp->val.i16 = *((int32_t*) ap);       break;
         case nsXPTType::T_I32    : dp->val.i32 = *((int32_t*) ap);       break;
         case nsXPTType::T_DOUBLE :
         case nsXPTType::T_U64    :
-        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi; 
+        case nsXPTType::T_I64    : ((DU *)dp)->hi = ((DU *)ap)->hi;
                                    ((DU *)dp)->lo = ((DU *)ap)->lo;
                                    ap++;
                                    break;
         case nsXPTType::T_U8     : dp->val.u8  = *((uint32_t*)ap);       break;
         case nsXPTType::T_U16    : dp->val.u16 = *((uint32_t*)ap);       break;
         case nsXPTType::T_U32    : dp->val.u32 = *((uint32_t*)ap);       break;
         case nsXPTType::T_FLOAT  : dp->val.f   = *((float*)   ap);       break;
         case nsXPTType::T_BOOL   : dp->val.b   = *((uint32_t*)ap);       break;
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_darwin.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_darwin.cpp
@@ -21,17 +21,17 @@ const uint32_t PARAM_BUFFER_COUNT   = 16
 const uint32_t GPR_COUNT            = 6;
 const uint32_t FPR_COUNT            = 8;
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gpregs[]' contains the arguments passed in integer registers
 // - 'fpregs[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase * self, uint32_t methodIndex,
                    uint64_t * args, uint64_t * gpregs, double *fpregs)
 {
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
@@ -64,17 +64,17 @@ PrepareAndDispatch(nsXPTCStubBase * self
     uint32_t nr_gpr = 1;    // skip one GPR register for 'that'
     uint32_t nr_fpr = 0;
     uint64_t value;
 
     for (i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
             if (nr_fpr < FPR_COUNT)
                 dp->val.d = fpregs[nr_fpr++];
             else
                 dp->val.d = *(double*) ap++;
             continue;
         }
         else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp
@@ -21,17 +21,17 @@ const uint32_t PARAM_BUFFER_COUNT   = 16
 const uint32_t GPR_COUNT            = 6;
 const uint32_t FPR_COUNT            = 8;
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gpregs[]' contains the arguments passed in integer registers
 // - 'fpregs[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase * self, uint32_t methodIndex,
                    uint64_t * args, uint64_t * gpregs, double *fpregs)
 {
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_solaris.cpp
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_solaris.cpp
@@ -21,17 +21,17 @@ const uint32_t PARAM_BUFFER_COUNT   = 16
 const uint32_t GPR_COUNT            = 6;
 const uint32_t FPR_COUNT            = 8;
 
 // PrepareAndDispatch() is called by SharedStub() and calls the actual method.
 //
 // - 'args[]' contains the arguments passed on stack
 // - 'gpregs[]' contains the arguments passed in integer registers
 // - 'fpregs[]' contains the arguments passed in floating point registers
-// 
+//
 // The parameters are mapped into an array of type 'nsXPTCMiniVariant'
 // and then the method gets called.
 
 extern "C" nsresult ATTRIBUTE_USED
 PrepareAndDispatch(nsXPTCStubBase * self, uint32_t methodIndex,
                    uint64_t * args, uint64_t * gpregs, double *fpregs)
 {
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
@@ -64,17 +64,17 @@ PrepareAndDispatch(nsXPTCStubBase * self
     uint32_t nr_gpr = 1;    // skip one GPR register for 'that'
     uint32_t nr_fpr = 0;
     uint64_t value;
 
     for (i = 0; i < paramCount; i++) {
         const nsXPTParamInfo& param = info->GetParam(i);
         const nsXPTType& type = param.GetType();
         nsXPTCMiniVariant* dp = &dispatchParams[i];
-	
+
         if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
             if (nr_fpr < FPR_COUNT)
                 dp->val.d = fpregs[nr_fpr++];
             else
                 dp->val.d = *(double*) ap++;
             continue;
         }
         else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
--- a/xpcom/reflect/xptcall/md/win32/xptcinvoke_x86_gnu.cpp
+++ b/xpcom/reflect/xptcall/md/win32/xptcinvoke_x86_gnu.cpp
@@ -73,19 +73,19 @@ invoke_copy_to_stack(uint32_t paramCount
 
         /* set up call frame for method. */
 	"subl  %edx, %esp\n\t"       /* make room for params. */
 /* Align to maximum x86 data size: 128 bits == 16 bytes == XMM register size.
  * This is to avoid protection faults where SSE+ alignment of stack pointer
  * is assumed and required, e.g. by GCC4's -ftree-vectorize option.
  */
 	"andl  $0xfffffff0, %esp\n\t"   /* drop(?) stack ptr to 128-bit align */
-/* $esp should be aligned to a 16-byte boundary here (note we include an 
- * additional 4 bytes in a later push instruction). This will ensure $ebp 
- * in the function called below is aligned to a 0x8 boundary. SSE instructions 
+/* $esp should be aligned to a 16-byte boundary here (note we include an
+ * additional 4 bytes in a later push instruction). This will ensure $ebp
+ * in the function called below is aligned to a 0x8 boundary. SSE instructions
  * like movapd/movdqa expect memory operand to be aligned on a 16-byte
  * boundary. The GCC compiler will generate the memory operand using $ebp
  * with an 8-byte offset.
  */
 	"subl  $0xc, %esp\n\t"          /* lower again; push/call below will re-align */
 	"movl  %esp, %ecx\n\t"          /* ecx = d */
 	"movl  8(%ebp), %edx\n\t"       /* edx = this */
 	"pushl %edx\n\t"                /* push this. esp % 16 == 0 */
--- a/xpcom/reflect/xptcall/md/win32/xptcstubs.cpp
+++ b/xpcom/reflect/xptcall/md/win32/xptcstubs.cpp
@@ -89,17 +89,17 @@ PrepareAndDispatch(nsXPTCStubBase* self,
 
     return result;
 }
 
 } // extern "C"
 
 // declspec(naked) is broken in gcc and clang-cl
 #if !defined(__GNUC__) && !defined(__clang__)
-static 
+static
 __declspec(naked)
 void SharedStub(void)
 {
     __asm {
         push ebp            // set up simple stack frame
         mov  ebp, esp       // stack has: ebp/vtbl_index/retaddr/this/args
         push ecx            // make room for a ptr
         lea  eax, [ebp-4]   // pointer to stackBytesToPop
--- a/xpcom/reflect/xptcall/xptcall.h
+++ b/xpcom/reflect/xptcall/xptcall.h
@@ -128,17 +128,17 @@ struct nsXPTCVariant : public nsXPTCMini
               case nsXPTType::T_CHAR_STR:          /* fall through */
               case nsXPTType::T_WCHAR_STR:         /* fall through */
               case nsXPTType::T_INTERFACE:         /* fall through */
               case nsXPTType::T_INTERFACE_IS:      /* fall through */
               case nsXPTType::T_ARRAY:             /* fall through */
               case nsXPTType::T_PSTRING_SIZE_IS:   /* fall through */
               case nsXPTType::T_PWSTRING_SIZE_IS:  /* fall through */
               case nsXPTType::T_UTF8STRING:        /* fall through */
-              case nsXPTType::T_CSTRING:           /* fall through */              
+              case nsXPTType::T_CSTRING:           /* fall through */
               default:                             val.p   = mv.val.p;   break;
             }
         }
     }
 };
 
 class nsIXPTCProxy : public nsISupports
 {
--- a/xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp
+++ b/xpcom/reflect/xptinfo/xptiInterfaceInfo.cpp
@@ -42,45 +42,45 @@ xptiInterfaceEntry::xptiInterfaceEntry(c
     , mMethodBaseIndex(0)
     , mConstantBaseIndex(0)
     , mFlags(0)
 {
     memcpy(mName, name, nameLength);
     SetResolvedState(PARTIALLY_RESOLVED);
 }
 
-bool 
+bool
 xptiInterfaceEntry::Resolve()
 {
     MutexAutoLock lock(XPTInterfaceInfoManager::GetResolveLock());
     return ResolveLocked();
 }
 
-bool 
+bool
 xptiInterfaceEntry::ResolveLocked()
 {
     int resolvedState = GetResolveState();
 
     if(resolvedState == FULLY_RESOLVED)
         return true;
     if(resolvedState == RESOLVE_FAILED)
         return false;
 
-    NS_ASSERTION(GetResolveState() == PARTIALLY_RESOLVED, "bad state!");    
+    NS_ASSERTION(GetResolveState() == PARTIALLY_RESOLVED, "bad state!");
 
     // Finish out resolution by finding parent and Resolving it so
     // we can set the info we get from it.
 
     uint16_t parent_index = mDescriptor->parent_interface;
 
     if(parent_index)
     {
-        xptiInterfaceEntry* parent = 
+        xptiInterfaceEntry* parent =
             mTypelib->GetEntryAt(parent_index - 1);
-        
+
         if(!parent || !parent->EnsureResolvedLocked())
         {
             SetResolvedState(RESOLVE_FAILED);
             return false;
         }
 
         mParent = parent;
         if (parent->GetHasNotXPCOMFlag()) {
@@ -93,29 +93,29 @@ xptiInterfaceEntry::ResolveLocked()
                     SetHasNotXPCOMFlag();
                     break;
                 }
             }
         }
 
 
         mMethodBaseIndex =
-            parent->mMethodBaseIndex + 
+            parent->mMethodBaseIndex +
             parent->mDescriptor->num_methods;
-        
+
         mConstantBaseIndex =
-            parent->mConstantBaseIndex + 
+            parent->mConstantBaseIndex +
             parent->mDescriptor->num_constants;
 
     }
     LOG_RESOLVE(("+ complete resolve of %s\n", mName));
 
     SetResolvedState(FULLY_RESOLVED);
     return true;
-}        
+}
 
 /**************************************************/
 // These non-virtual methods handle the delegated nsIInterfaceInfo methods.
 
 nsresult
 xptiInterfaceEntry::GetName(char **name)
 {
     // It is not necessary to Resolve because this info is read from manifest.
@@ -149,46 +149,46 @@ xptiInterfaceEntry::IsFunction(bool* res
     return NS_OK;
 }
 
 nsresult
 xptiInterfaceEntry::GetMethodCount(uint16_t* count)
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
-    
-    *count = mMethodBaseIndex + 
+
+    *count = mMethodBaseIndex +
              mDescriptor->num_methods;
     return NS_OK;
 }
 
 nsresult
 xptiInterfaceEntry::GetConstantCount(uint16_t* count)
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(!count)
         return NS_ERROR_UNEXPECTED;
 
-    *count = mConstantBaseIndex + 
+    *count = mConstantBaseIndex +
              mDescriptor->num_constants;
     return NS_OK;
 }
 
 nsresult
 xptiInterfaceEntry::GetMethodInfo(uint16_t index, const nsXPTMethodInfo** info)
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(index < mMethodBaseIndex)
         return mParent->GetMethodInfo(index, info);
 
-    if(index >= mMethodBaseIndex + 
+    if(index >= mMethodBaseIndex +
                 mDescriptor->num_methods)
     {
         NS_ERROR("bad param");
         *info = nullptr;
         return NS_ERROR_INVALID_ARG;
     }
 
     // else...
@@ -212,17 +212,17 @@ xptiInterfaceEntry::GetMethodInfoForName
                                (&mDescriptor->
                                         method_descriptors[i]);
         if (PL_strcmp(methodName, info->GetName()) == 0) {
             *index = i + mMethodBaseIndex;
             *result = info;
             return NS_OK;
         }
     }
-    
+
     if(mParent)
         return mParent->GetMethodInfoForName(methodName, index, result);
     else
     {
         *index = 0;
         *result = 0;
         return NS_ERROR_INVALID_ARG;
     }
@@ -233,17 +233,17 @@ xptiInterfaceEntry::GetConstant(uint16_t
                                 char** name)
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(index < mConstantBaseIndex)
         return mParent->GetConstant(index, constant, name);
 
-    if(index >= mConstantBaseIndex + 
+    if(index >= mConstantBaseIndex +
                 mDescriptor->num_constants)
     {
         NS_PRECONDITION(0, "bad param");
         return NS_ERROR_INVALID_ARG;
     }
 
     const auto& c = mDescriptor->const_descriptors[index - mConstantBaseIndex];
     AutoJSContext cx;
@@ -304,17 +304,17 @@ xptiInterfaceEntry::GetInterfaceIndexFor
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(methodIndex < mMethodBaseIndex)
         return mParent->GetInterfaceIndexForParam(methodIndex, param,
                                                   interfaceIndex);
 
-    if(methodIndex >= mMethodBaseIndex + 
+    if(methodIndex >= mMethodBaseIndex +
                       mDescriptor->num_methods)
     {
         NS_ERROR("bad param");
         return NS_ERROR_INVALID_ARG;
     }
 
     const XPTTypeDescriptor *td = &param->type;
 
@@ -326,18 +326,18 @@ xptiInterfaceEntry::GetInterfaceIndexFor
         NS_ERROR("not an interface");
         return NS_ERROR_INVALID_ARG;
     }
 
     *interfaceIndex = (td->u.iface.iface_hi8 << 8) | td->u.iface.iface_lo8;
     return NS_OK;
 }
 
-nsresult 
-xptiInterfaceEntry::GetEntryForParam(uint16_t methodIndex, 
+nsresult
+xptiInterfaceEntry::GetEntryForParam(uint16_t methodIndex,
                                      const nsXPTParamInfo * param,
                                      xptiInterfaceEntry** entry)
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(methodIndex < mMethodBaseIndex)
         return mParent->GetEntryForParam(methodIndex, param, entry);
@@ -345,17 +345,17 @@ xptiInterfaceEntry::GetEntryForParam(uin
     uint16_t interfaceIndex = 0;
     nsresult rv = GetInterfaceIndexForParam(methodIndex, param,
                                             &interfaceIndex);
     if (NS_FAILED(rv)) {
         return rv;
     }
 
     xptiInterfaceEntry* theEntry = mTypelib->GetEntryAt(interfaceIndex - 1);
-    
+
     // This can happen if a declared interface is not available at runtime.
     if(!theEntry)
     {
         *entry = nullptr;
         return NS_ERROR_FAILURE;
     }
 
     *entry = theEntry;
@@ -418,35 +418,35 @@ xptiInterfaceEntry::GetIIDForParam(uint1
         }
 
         return shim->GetInterfaceIID(iid);
     }
     return entry->GetIID(iid);
 }
 
 nsresult
-xptiInterfaceEntry::GetIIDForParamNoAlloc(uint16_t methodIndex, 
-                                          const nsXPTParamInfo * param, 
+xptiInterfaceEntry::GetIIDForParamNoAlloc(uint16_t methodIndex,
+                                          const nsXPTParamInfo * param,
                                           nsIID *iid)
 {
     xptiInterfaceEntry* entry;
     nsresult rv = GetEntryForParam(methodIndex, param, &entry);
     if (NS_FAILED(rv)) {
         RefPtr<ShimInterfaceInfo> shim = GetShimForParam(methodIndex, param);
         if (!shim) {
             return rv;
         }
 
         const nsIID* shimIID;
         DebugOnly<nsresult> rv2 = shim->GetIIDShared(&shimIID);
         MOZ_ASSERT(NS_SUCCEEDED(rv2));
         *iid = *shimIID;
         return NS_OK;
     }
-    *iid = entry->mIID;    
+    *iid = entry->mIID;
     return NS_OK;
 }
 
 // this is a private helper
 nsresult
 xptiInterfaceEntry::GetTypeInArray(const nsXPTParamInfo* param,
                                   uint16_t dimension,
                                   const XPTTypeDescriptor** type)
@@ -477,17 +477,17 @@ xptiInterfaceEntry::GetTypeForParam(uint
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(methodIndex < mMethodBaseIndex)
         return mParent->
             GetTypeForParam(methodIndex, param, dimension, type);
 
-    if(methodIndex >= mMethodBaseIndex + 
+    if(methodIndex >= mMethodBaseIndex +
                       mDescriptor->num_methods)
     {
         NS_ERROR("bad index");
         return NS_ERROR_INVALID_ARG;
     }
 
     const XPTTypeDescriptor *td;
 
@@ -511,17 +511,17 @@ xptiInterfaceEntry::GetSizeIsArgNumberFo
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(methodIndex < mMethodBaseIndex)
         return mParent->
             GetSizeIsArgNumberForParam(methodIndex, param, dimension, argnum);
 
-    if(methodIndex >= mMethodBaseIndex + 
+    if(methodIndex >= mMethodBaseIndex +
                       mDescriptor->num_methods)
     {
         NS_ERROR("bad index");
         return NS_ERROR_INVALID_ARG;
     }
 
     const XPTTypeDescriptor *td;
 
@@ -557,17 +557,17 @@ xptiInterfaceEntry::GetInterfaceIsArgNum
 {
     if(!EnsureResolved())
         return NS_ERROR_UNEXPECTED;
 
     if(methodIndex < mMethodBaseIndex)
         return mParent->
             GetInterfaceIsArgNumberForParam(methodIndex, param, argnum);
 
-    if(methodIndex >= mMethodBaseIndex + 
+    if(methodIndex >= mMethodBaseIndex +
                       mDescriptor->num_methods)
     {
         NS_ERROR("bad index");
         return NS_ERROR_INVALID_ARG;
     }
 
     const XPTTypeDescriptor *td = &param->type;
 
@@ -587,38 +587,38 @@ xptiInterfaceEntry::GetInterfaceIsArgNum
 nsresult
 xptiInterfaceEntry::IsIID(const nsIID * iid, bool *_retval)
 {
     // It is not necessary to Resolve because this info is read from manifest.
     *_retval = mIID.Equals(*iid);
     return NS_OK;
 }
 
-nsresult 
+nsresult
 xptiInterfaceEntry::GetNameShared(const char **name)
 {
     // It is not necessary to Resolve because this info is read from manifest.
     *name = mName;
     return NS_OK;
 }
 
-nsresult 
+nsresult
 xptiInterfaceEntry::GetIIDShared(const nsIID * *iid)
 {
     // It is not necessary to Resolve because this info is read from manifest.
     *iid = &mIID;
     return NS_OK;
 }
 
-nsresult 
+nsresult
 xptiInterfaceEntry::HasAncestor(const nsIID * iid, bool *_retval)
 {
     *_retval = false;
 
-    for(xptiInterfaceEntry* current = this; 
+    for(xptiInterfaceEntry* current = this;
         current;
         current = current->mParent)
     {
         if(current->mIID.Equals(*iid))
         {
             *_retval = true;
             break;
         }
@@ -626,39 +626,39 @@ xptiInterfaceEntry::HasAncestor(const ns
             return NS_ERROR_UNEXPECTED;
     }
 
     return NS_OK;
 }
 
 /***************************************************/
 
-already_AddRefed<xptiInterfaceInfo> 
+already_AddRefed<xptiInterfaceInfo>
 xptiInterfaceEntry::InterfaceInfo()
 {
 #ifdef DEBUG
     XPTInterfaceInfoManager::GetSingleton()->mWorkingSet.mTableReentrantMonitor.
         AssertCurrentThreadIn();
 #endif
 
     if(!mInfo)
     {
         mInfo = new xptiInterfaceInfo(this);
     }
-    
+
     RefPtr<xptiInterfaceInfo> info = mInfo;
     return info.forget();
 }
-    
-void     
+
+void
 xptiInterfaceEntry::LockedInvalidateInterfaceInfo()
 {
     if(mInfo)
     {
-        mInfo->Invalidate(); 
+        mInfo->Invalidate();
         mInfo = nullptr;
     }
 }
 
 bool
 xptiInterfaceInfo::BuildParent()
 {
     mozilla::ReentrantMonitorAutoEnter monitor(XPTInterfaceInfoManager::GetSingleton()->
@@ -676,17 +676,17 @@ xptiInterfaceInfo::BuildParent()
 
 NS_IMPL_QUERY_INTERFACE(xptiInterfaceInfo, nsIInterfaceInfo)
 
 xptiInterfaceInfo::xptiInterfaceInfo(xptiInterfaceEntry* entry)
     : mEntry(entry)
 {
 }
 
-xptiInterfaceInfo::~xptiInterfaceInfo() 
+xptiInterfaceInfo::~xptiInterfaceInfo()
 {
     NS_ASSERTION(!mEntry, "bad state in dtor");
 }
 
 void
 xptiInterfaceInfo::Invalidate()
 {
   mParent = nullptr;
@@ -708,35 +708,35 @@ xptiInterfaceInfo::Release(void)
     nsrefcnt cnt = --mRefCnt;
     NS_LOG_RELEASE(this, cnt, "xptiInterfaceInfo");
     if(!cnt)
     {
         mozilla::ReentrantMonitorAutoEnter monitor(XPTInterfaceInfoManager::
                                           GetSingleton()->mWorkingSet.
                                           mTableReentrantMonitor);
 
-        // If InterfaceInfo added and *released* a reference before we 
+        // If InterfaceInfo added and *released* a reference before we
         // acquired the monitor then 'this' might already be dead. In that
         // case we would not want to try to access any instance data. We
         // would want to bail immediately. If 'this' is already dead then the
-        // entry will no longer have a pointer to 'this'. So, we can protect 
+        // entry will no longer have a pointer to 'this'. So, we can protect
         // ourselves from danger without more aggressive locking.
         if(entry && !entry->InterfaceInfoEquals(this))
             return 0;
 
         // If InterfaceInfo added a reference before we acquired the monitor
         // then we want to bail out of here without destorying the object.
         if(mRefCnt)
             return 1;
 
         if(mEntry)
         {
             mEntry->LockedInterfaceInfoDeathNotification();
             mEntry = nullptr;
         }
 
         delete this;
-        return 0;    
+        return 0;
     }
     return cnt;
 }
 
 /***************************************************************************/
--- a/xpcom/string/nsStringObsolete.cpp
+++ b/xpcom/string/nsStringObsolete.cpp
@@ -387,17 +387,17 @@ Compare1To2(const char* aStr1,const char
  * @param   aString is the buffer to be manipulated
  * @param   aLength is the length of the buffer
  * @param   aSet tells us which chars to compress from given buffer
  * @param   aEliminateLeading tells us whether to strip chars from the start of the buffer
  * @param   aEliminateTrailing tells us whether to strip chars from the start of the buffer
  * @return  the new length of the given buffer
  */
 static int32_t
-CompressChars1(char* aString,uint32_t aLength,const char* aSet){ 
+CompressChars1(char* aString,uint32_t aLength,const char* aSet){
 
   char*  from = aString;
   char*  end =  aString + aLength;
   char*  to = from;
 
   //this code converts /n, /t, /r into normal space ' ';
   //it also compresses runs of whitespace down to a single char...
   if(aSet && aString && (0 < aLength)){
--- a/xpcom/tests/RegFactory.cpp
+++ b/xpcom/tests/RegFactory.cpp
@@ -30,30 +30,30 @@ void print_err(nsresult err)
   case NS_ERROR_OUT_OF_MEMORY:
     cerr << "Out of memory";
     break;
   default:
     cerr << hex << err << dec;
   }
 }
 
-nsresult Register(nsIComponentRegistrar* registrar, const char *path) 
-{ 
+nsresult Register(nsIComponentRegistrar* registrar, const char *path)
+{
   nsCOMPtr<nsIFile> file;
   nsresult rv =
     NS_NewLocalFile(
       NS_ConvertUTF8toUTF16(path),
       true,
       getter_AddRefs(file));
   if (NS_FAILED(rv)) return rv;
   rv = registrar->AutoRegister(file);
   return rv;
 }
 
-nsresult Unregister(const char *path) 
+nsresult Unregister(const char *path)
 {
   /* NEEDS IMPLEMENTATION */
 #if 0
     nsresult res = nsComponentManager::AutoUnregisterComponent(path);
   return res;
 #else
   return NS_ERROR_FAILURE;
 #endif
--- a/xpcom/tests/SizeTest02.cpp
+++ b/xpcom/tests/SizeTest02.cpp
@@ -75,15 +75,15 @@ Test02_Raw01( nsISupports* aDOMNode, nsS
 	}
 
 void // nsresult
 Test02_nsCOMPtr( nsISupports* aDOMNode, nsString* aResult )
 		// m120, w63/68
 	{
 		nsresult status;
 		nsCOMPtr<nsIDOMNode> node = do_QueryInterface(aDOMNode, &status);
-		
+
 		if ( node )
 			node->GetNodeName(*aResult);
 
 //		return status;
 	}
 
--- a/xpcom/tests/SizeTest03.cpp
+++ b/xpcom/tests/SizeTest03.cpp
@@ -28,17 +28,17 @@ Test03_raw( nsIDOMNode* aDOMNode, nsStri
 // -- the following code is assumed, but is commented out so we compare only
 //		 the relevent generated code
 
 //		if ( !aDOMNode || !aResult )
 //			return NS_ERROR_NULL_POINTER;
 
 		nsIDOMNode* parent = 0;
 		nsresult status = aDOMNode->GetParentNode(&parent);
-		
+
 		if ( NS_SUCCEEDED(status) )
 			{
 				parent->GetNodeName(*aResult);
 			}
 
 		NS_IF_RELEASE(parent);
 
 //		return status;
@@ -49,17 +49,17 @@ void // nsresult
 Test03_raw_optimized( nsIDOMNode* aDOMNode, nsString* aResult )
 		// m124, w48
 	{
 //		if ( !aDOMNode || !aResult )
 //			return NS_ERROR_NULL_POINTER;
 
 		nsIDOMNode* parent;
 		nsresult status = aDOMNode->GetParentNode(&parent);
-		
+
 		if ( NS_SUCCEEDED(status) )
 			{
 				parent->GetNodeName(*aResult);
 				NS_RELEASE(parent);
 			}
 
 //		return status;
 	}
--- a/xpcom/tests/SizeTest06.cpp
+++ b/xpcom/tests/SizeTest06.cpp
@@ -75,17 +75,17 @@ void
 Test06_nsCOMPtr_as_found(nsIDOMWindow* aDOMWindow, nsCOMPtr<nsIBaseWindow>* aBaseWindow)
     // m344, w181/201
 {
 //  if (!aDOMWindow)
 //    return;
   nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aDOMWindow);
   nsCOMPtr<nsIDocShell> docShell;
   if (window)
-    window->GetDocShell(getter_AddRefs(docShell));  
+    window->GetDocShell(getter_AddRefs(docShell));
 }
 
 void // nsresult
 Test06_nsCOMPtr00(nsIDOMWindow* aDOMWindow, nsIBaseWindow** aBaseWindow)
     // m328, w191/199
 {
 //  if (!aDOMWindow)
 //    return NS_ERROR_NULL_POINTER;
--- a/xpcom/tests/TestArguments.cpp
+++ b/xpcom/tests/TestArguments.cpp
@@ -15,11 +15,11 @@ int main(int argc, char* argv[]) {
   if (strcmp("foo", argv[5]) != 0)
       return 5;
   if (strcmp("bar", argv[6]) != 0)
       return 6;
   if (strcmp("argument with spaces", argv[7]) != 0)
       return 7;
   if (strcmp(R"("argument with quotes")", argv[8]) != 0)
       return 8;
-  
+
   return 0;
-} 
+}
--- a/xpcom/tests/TestStreamUtils.cpp
+++ b/xpcom/tests/TestStreamUtils.cpp
@@ -34,17 +34,17 @@ static bool test_consume_stream() {
 
   nsCString buf;
   if (NS_FAILED(NS_ConsumeStream(input, UINT32_MAX, buf)))
     return false;
 
   if (!buf.Equals(kData))
     return false;
 
-  return true; 
+  return true;
 }
 
 //----
 
 typedef bool (*TestFunc)();
 #define DECL_TEST(name) { #name, name }
 
 static const struct Test {
@@ -63,12 +63,12 @@ int main(int argc, char **argv) {
   if (NS_FAILED(NS_InitXPCOM2(nullptr, nullptr, nullptr)))
     return -1;
 
   while (count--) {
     for (const Test* t = tests; t->name != nullptr; ++t) {
       printf("%25s : %s\n", t->name, t->func() ? "SUCCESS" : "FAILURE");
     }
   }
-  
+
   NS_ShutdownXPCOM(nullptr);
   return 0;
 }
--- a/xpcom/tests/gtest/TestCRT.cpp
+++ b/xpcom/tests/gtest/TestCRT.cpp
@@ -31,17 +31,17 @@ int sign(int val) {
 // same answers as the native non-unicode versions. We only pass in
 // iso-latin-1 strings, so the comparison must be valid.
 static void Check(const char* s1, const char* s2, int n)
 {
   int clib = PL_strcmp(s1, s2);
 
   int clib_n = PL_strncmp(s1, s2, n);
 
-  nsAutoString t1,t2; 
+  nsAutoString t1,t2;
   t1.AssignWithConversion(s1);
   t2.AssignWithConversion(s2);
   const char16_t* us1 = t1.get();
   const char16_t* us2 = t2.get();
 
   int u2 = nsCRT::strcmp(us1, us2);
 
   int u2_n = nsCRT::strncmp(us1, us2, n);
--- a/xpcom/tests/gtest/TestCallTemplates.cpp
+++ b/xpcom/tests/gtest/TestCallTemplates.cpp
@@ -22,17 +22,17 @@
 #include "nsAutoPtr.h"
 #include "mozilla/Attributes.h"
 
 #define NS_ITESTSERVICE_IID \
   {0x127b5253, 0x37b1, 0x43c7, \
     { 0x96, 0x2b, 0xab, 0xf1, 0x2d, 0x22, 0x56, 0xae }}
 
 class NS_NO_VTABLE nsITestService : public nsISupports {
-  public: 
+  public:
     NS_DECLARE_STATIC_IID_ACCESSOR(NS_ITESTSERVICE_IID)
 };
 
 NS_DEFINE_STATIC_IID_ACCESSOR(nsITestService, NS_ITESTSERVICE_IID)
 
 class nsTestService final : public nsITestService,
                             public nsSupportsWeakReference
 {
--- a/xpcom/tests/gtest/TestExpirationTracker.cpp
+++ b/xpcom/tests/gtest/TestExpirationTracker.cpp
@@ -102,17 +102,17 @@ public:
         objref->Touch();
         nsExpirationTracker<Object,K>::MarkUsed(objref.get());
         LogAction(objref.get(), "Marked used");
       }
       break;
     }
     }
   }
-  
+
 protected:
   void NotifyExpired(Object* aObj) {
     LogAction(aObj, "Expired");
     PRIntervalTime now = PR_IntervalNow();
     uint32_t timeDiffMS = (now - aObj->mLastUsed)*1000/PR_TicksPerSecond();
     // See the comment for NotifyExpired in nsExpirationTracker.h for these
     // bounds
     uint32_t lowerBoundMS = (K-1)*periodMS - slackMS;
@@ -130,17 +130,17 @@ protected:
     DoRandomOperation();
     DoRandomOperation();
   }
 };
 
 template <uint32_t K> static bool test_random() {
   srand(K);
   error = false;
- 
+
   for (uint32_t j = 0; j < iterations; ++j) {
     Tracker<K> tracker;
 
     uint32_t i = 0;
     for (i = 0; i < ops; ++i) {
       if ((rand() & 0xF) == 0) {
         // Simulate work that takes time
         if (logging) {
@@ -148,17 +148,17 @@ template <uint32_t K> static bool test_r
         }
         PR_Sleep(PR_MillisecondsToInterval(sleepPeriodMS));
         // Process pending timer events
         NS_ProcessPendingEvents(nullptr);
       }
       tracker.DoRandomOperation();
     }
   }
-  
+
   return !error;
 }
 
 static bool test_random3() { return test_random<3>(); }
 static bool test_random4() { return test_random<4>(); }
 static bool test_random8() { return test_random<8>(); }
 
 typedef bool (*TestFunc)();
--- a/xpcom/tests/gtest/TestRacingServiceManager.cpp
+++ b/xpcom/tests/gtest/TestRacingServiceManager.cpp
@@ -18,17 +18,17 @@
 #include "mozilla/Attributes.h"
 
 #include "mozilla/ReentrantMonitor.h"
 
 #include "gtest/gtest.h"
 
 using namespace mozilla;
 
-/* f93f6bdc-88af-42d7-9d64-1b43c649a3e5 */ 
+/* f93f6bdc-88af-42d7-9d64-1b43c649a3e5 */
 #define FACTORY_CID1                                 \
 {                                                    \
   0xf93f6bdc,                                        \
   0x88af,                                            \
   0x42d7,                                            \
   { 0x9d, 0x64, 0x1b, 0x43, 0xc6, 0x49, 0xa3, 0xe5 } \
 }
 NS_DEFINE_CID(kFactoryCID1, FACTORY_CID1);
--- a/xpcom/tests/gtest/TestStrings.cpp
+++ b/xpcom/tests/gtest/TestStrings.cpp
@@ -78,34 +78,34 @@ TEST(Strings, find)
 
 TEST(Strings, rfind)
 {
   const char text[] = "<!DOCTYPE blah blah blah>";
   const char term[] = "bLaH";
   nsCString src(text);
   int32_t i;
 
-  i = src.RFind(term, true, 3, -1); 
+  i = src.RFind(term, true, 3, -1);
   EXPECT_EQ(i, kNotFound);
 
   i = src.RFind(term, true, -1, -1);
   EXPECT_EQ(i, 20);
 
   i = src.RFind(term, true, 13, -1);
   EXPECT_EQ(i, 10);
 
   i = src.RFind(term, true, 22, 3);
   EXPECT_EQ(i, 20);
 }
 
 TEST(Strings, rfind_2)
 {
   const char text[] = "<!DOCTYPE blah blah blah>";
   nsCString src(text);
-  int32_t i = src.RFind("TYPE", false, 5, -1); 
+  int32_t i = src.RFind("TYPE", false, 5, -1);
   EXPECT_EQ(i, 5);
 }
 
 TEST(Strings, rfind_3)
 {
   const char text[] = "urn:mozilla:locale:en-US:necko";
   nsAutoCString value(text);
   int32_t i = value.RFind(":");
@@ -532,17 +532,17 @@ TEST(Strings, set_length)
   EXPECT_STREQ(buf.get(), kText);
 }
 
 TEST(Strings, substring)
 {
   nsCString super("hello world"), sub("hello");
 
   // this tests that |super| starts with |sub|,
-  
+
   EXPECT_TRUE(sub.Equals(StringHead(super, sub.Length())));
 
   // and verifies that |sub| does not start with |super|.
 
   EXPECT_FALSE(super.Equals(StringHead(sub, super.Length())));
 }
 
 #define test_append_expect(str, int, suffix, expect) \
--- a/xpcom/tests/gtest/TestTArray2.cpp
+++ b/xpcom/tests/gtest/TestTArray2.cpp
@@ -602,17 +602,17 @@ template <class Array>
 static bool is_heap(const Array& ary, size_t len) {
   size_t index = 1;
   while (index < len) {
     if (ary[index] > ary[(index - 1) >> 1])
       return false;
     index++;
   }
   return true;
-} 
+}
 
 //----
 
 // An array |arr| is using its auto buffer if |&arr < arr.Elements()| and
 // |arr.Elements() - &arr| is small.
 
 #define IS_USING_AUTO(arr) \
   ((uintptr_t) &(arr) < (uintptr_t) arr.Elements() && \
--- a/xpcom/tests/gtest/TestThreads.cpp
+++ b/xpcom/tests/gtest/TestThreads.cpp
@@ -115,17 +115,17 @@ TEST(Threads, Stress)
             nsresult rv = NS_NewNamedThread("StressRunner", getter_AddRefs(t),
                                             new nsStressRunner(k));
             EXPECT_TRUE(NS_SUCCEEDED(rv));
             NS_ADDREF(array[k] = t);
         }
 
         for (k = threads-1; k >= 0; k--) {
             array[k]->Shutdown();
-            NS_RELEASE(array[k]);    
+            NS_RELEASE(array[k]);
         }
         delete [] array;
     }
 }
 
 mozilla::Monitor* gAsyncShutdownReadyMonitor;
 mozilla::Monitor* gBeginAsyncShutdownMonitor;
 
--- a/xpcom/tests/windows/TestHelloXPLoop.cpp
+++ b/xpcom/tests/windows/TestHelloXPLoop.cpp
@@ -19,18 +19,18 @@ void ErrorBox(LPSTR text)
 	MessageBox(nullptr, text, "XP Event Loop", MB_OK | MB_ICONSTOP);
 }
 
 void InfoBox(LPSTR text)
 {
 	MessageBox(nullptr, text, "XP Event Loop", MB_OK | MB_ICONINFORMATION);
 }
 
-int WINAPI WinMain(HINSTANCE inst, 
-                   HINSTANCE prevInstance, 
+int WINAPI WinMain(HINSTANCE inst,
+                   HINSTANCE prevInstance,
                    LPSTR lpszCmdLine,
                    int nShowCmd)
 {
 	char* lpszAppName = "HelloWorld";
 	HWND wnd;
 	WNDCLASSEX wndclass;
 	int retCode;
 
@@ -38,21 +38,21 @@ int WINAPI WinMain(HINSTANCE inst,
       nsresult rv;
       nsCOMPtr<nsIServiceManager> servMan;
       rv = NS_InitXPCOM2(getter_AddRefs(servMan), nullptr, nullptr);
       if(NS_FAILED(rv))
       {
         ErrorBox("Failed to initialize xpcom.");
         return -1;
       }
-      
+
       nsCOMPtr<nsIComponentRegistrar> registrar = do_QueryInterface(servMan);
       NS_ASSERTION(registrar, "Null nsIComponentRegistrar");
       registrar->AutoRegister(nullptr);
-      
+
       nsCOMPtr<nsINativeApp> nativeAppService(do_GetService(kNativeAppCID, &rv));
 
       if(NS_FAILED(rv))
       {
         ErrorBox("Failed to get nativeAppService");
         return -1;
       }
       wndclass.cbSize        = sizeof(wndclass);
@@ -64,38 +64,38 @@ int WINAPI WinMain(HINSTANCE inst,
       wndclass.hIcon         = LoadIcon(nullptr, IDI_APPLICATION);
       wndclass.hCursor       = LoadCursor(nullptr, IDC_ARROW);
       wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
       wndclass.lpszMenuName  = nullptr;
       wndclass.lpszClassName = lpszAppName;
       wndclass.hIconSm       = LoadIcon(nullptr, IDI_APPLICATION);
 
       RegisterClassEx(&wndclass) ;
-      
+
       wnd = CreateWindow(lpszAppName, "The Hello World",
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
-                         nullptr, nullptr, inst, nullptr);		     
-      
+                         nullptr, nullptr, inst, nullptr);
+
       ShowWindow(wnd, nShowCmd);
       UpdateWindow(wnd);
-      
+
       nsCOMPtr<nsIEventLoop> eventLoop;
-      
-      if(NS_FAILED(nativeAppService->CreateEventLoop(L"_MainLoop", 
+
+      if(NS_FAILED(nativeAppService->CreateEventLoop(L"_MainLoop",
                                                      nsEventLoopTypes::MainAppLoop, getter_AddRefs(eventLoop))))
         {
           ErrorBox("Failed to create event Loop");
           return 0;
-        } 
-      
+        }
+
       eventLoop->Run(nullptr, nullptr, nullptr, &retCode);
       eventLoop = nullptr; // Clear out before Shutting down XPCOM
-      
+
       InfoBox("Hello World app is out of loop");
     }
 	NS_ShutdownXPCOM(nullptr);
 	InfoBox("Hello World app is exiting");
 	return retCode;
 }
 
 LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -115,26 +115,26 @@ LRESULT CALLBACK WndProc(HWND wnd, UINT 
 					 DT_SINGLELINE | DT_CENTER | DT_VCENTER);
 
 			EndPaint(wnd, &ps);
 			return 0;
 
 		case WM_DESTROY:
 			{
 			nsresult rv;
-			nsCOMPtr<nsINativeApp> nativeAppService = 
+			nsCOMPtr<nsINativeApp> nativeAppService =
 			         do_GetService(kNativeAppCID, &rv);
 			if(NS_FAILED(rv))
 				{
 				ErrorBox("Could not get NativeAppService");
 				return 0;
 				}
 			nsCOMPtr<nsIEventLoop> eventLoop;
 
-			if(NS_FAILED(nativeAppService->FindEventLoop(L"_MainLoop", 
+			if(NS_FAILED(nativeAppService->FindEventLoop(L"_MainLoop",
 				getter_AddRefs(eventLoop))))
 				{
 				ErrorBox("Failed to find event Loop");
 				return 0;
 				}
 			eventLoop->Exit(0);
 			}
 			return 0;
--- a/xpcom/threads/CondVar.h
+++ b/xpcom/threads/CondVar.h
@@ -128,9 +128,9 @@ private:
   Mutex* mLock;
   detail::ConditionVariableImpl mImpl;
 };
 
 
 } // namespace mozilla
 
 
-#endif  // ifndef mozilla_CondVar_h  
+#endif  // ifndef mozilla_CondVar_h
--- a/xpcom/typelib/xpt/xpt_arena.cpp
+++ b/xpcom/typelib/xpt/xpt_arena.cpp
@@ -2,17 +2,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Quick arena hack for xpt. */
 
 /* XXX This exists because we don't want to drag in NSPR. It *seemed*
 *  to make more sense to write a quick and dirty arena than to clone
-*  plarena (like js/src did). This is not optimal, but it works. 
+*  plarena (like js/src did). This is not optimal, but it works.
 */
 
 #include "xpt_arena.h"
 #include "mozilla/MemoryReporting.h"
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -76,18 +76,18 @@ DestroySubArena(XPTSubArena *subarena)
 XPT_PUBLIC_API(void)
 XPT_DestroyArena(XPTArena *arena)
 {
     DestroySubArena(&arena->subarena8);
     DestroySubArena(&arena->subarena1);
     free(arena);
 }
 
-/* 
-* Our alignment rule is that we always round up the size of each allocation 
+/*
+* Our alignment rule is that we always round up the size of each allocation
 * so that the 'arena->next' pointer one will point to properly aligned space.
 */
 
 XPT_PUBLIC_API(void *)
 XPT_ArenaCalloc(XPTArena *arena, size_t size, size_t alignment)
 {
     if (!size)
         return NULL;
@@ -163,17 +163,17 @@ XPT_ArenaCalloc(XPTArena *arena, size_t 
 
 #ifdef DEBUG
 XPT_PUBLIC_API(void)
 XPT_AssertFailed(const char *s, const char *file, uint32_t lineno)
 {
     fprintf(stderr, "Assertion failed: %s, file %s, line %d\n",
             s, file, lineno);
     abort();
-}        
+}
 #endif
 
 static size_t
 SizeOfSubArenaExcludingThis(XPTSubArena *subarena, MozMallocSizeOf mallocSizeOf)
 {
     size_t n = 0;
 
     BLK_HDR* cur = subarena->first;
--- a/xpcom/typelib/xpt/xpt_arena.h
+++ b/xpcom/typelib/xpt/xpt_arena.h
@@ -24,17 +24,17 @@
 #define XPT_PUBLIC_DATA(t)   t
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /*
  * Simple Arena support. Use with caution!
- */ 
+ */
 
 typedef struct XPTArena XPTArena;
 
 XPT_PUBLIC_API(XPTArena *)
 XPT_NewArena(size_t block_size8, size_t block_size1);
 
 XPT_PUBLIC_API(void)
 XPT_DestroyArena(XPTArena *arena);
--- a/xpcom/typelib/xpt/xpt_struct.cpp
+++ b/xpcom/typelib/xpt/xpt_struct.cpp
@@ -89,21 +89,21 @@ XPT_DoHeader(XPTArena *arena, NotNull<XP
     }
 
     if (!XPT_Do16(cursor, &header->num_interfaces) ||
         !XPT_Do32(cursor, &file_length) ||
         !XPT_Do32(cursor, &ide_offset)) {
         return false;
     }
 
-    /* 
+    /*
      * Make sure the file length reported in the header is the same size as
-     * as our buffer unless it is zero (not set) 
+     * as our buffer unless it is zero (not set)
      */
-    if (file_length != 0 && 
+    if (file_length != 0 &&
         cursor->state->pool_allocated < file_length) {
         fputs("libxpt: File length in header does not match actual length. File may be corrupt\n",
             stderr);
         return false;
     }
 
     uint32_t data_pool;
     if (!XPT_Do32(cursor, &data_pool))
--- a/xpcom/typelib/xpt/xpt_struct.h
+++ b/xpcom/typelib/xpt/xpt_struct.h
@@ -82,19 +82,19 @@ struct XPTHeader {
  * confirm our inability to read the file; i.e. even if some client of this
  * library gets out of sync with us regarding the agreed upon value for
  * XPT_MAJOR_INCOMPATIBLE_VERSION, anytime num_interfaces is zero we *know*
  * that this library refused to read the file due to version incompatibility.
  */
 #define XPT_MAJOR_INCOMPATIBLE_VERSION 0x02
 
 /*
- * A contiguous array of fixed-size InterfaceDirectoryEntry records begins at 
- * the byte offset identified by the interface_directory field in the file 
- * header.  The array is used to quickly locate an interface description 
+ * A contiguous array of fixed-size InterfaceDirectoryEntry records begins at
+ * the byte offset identified by the interface_directory field in the file
+ * header.  The array is used to quickly locate an interface description
  * using its IID.  No interface should appear more than once in the array.
  */
 struct XPTInterfaceDirectoryEntry {
     nsID                   iid;
     char                   *name;
 
     // This field exists in the on-disk format. But it isn't used so we don't
     // allocate space for it in memory.
@@ -119,88 +119,88 @@ struct XPTInterfaceDescriptor {
     uint16_t                num_methods;
     uint16_t                num_constants;
     uint8_t                 flags;
 
     /* additional_types are used for arrays where we may need multiple
     *  XPTTypeDescriptors for a single XPTMethodDescriptor. Since we still
     *  want to have a simple array of XPTMethodDescriptor (each with a single
     *  embedded XPTTypeDescriptor), a XPTTypeDescriptor can have a reference
-    *  to an 'additional_type'. That reference is an index in this 
-    *  "additional_types" array. So a given XPTMethodDescriptor might have 
+    *  to an 'additional_type'. That reference is an index in this
+    *  "additional_types" array. So a given XPTMethodDescriptor might have
     *  a whole chain of these XPTTypeDescriptors to represent, say, a multi
     *  dimensional array.
     *
     *  Note that in the typelib file these additional types are stored 'inline'
-    *  in the MethodDescriptor. But, in the typelib MethodDescriptors can be 
-    *  of varying sizes, where in XPT's in memory mapping of the data we want 
-    *  them to be of fixed size. This additional_types scheme is here to allow 
+    *  in the MethodDescriptor. But, in the typelib MethodDescriptors can be
+    *  of varying sizes, where in XPT's in memory mapping of the data we want
+    *  them to be of fixed size. This additional_types scheme is here to allow
     *  for that.
     */
     uint8_t                 num_additional_types;
 };
 
 #define XPT_ID_SCRIPTABLE           0x80
 #define XPT_ID_FUNCTION             0x40
 #define XPT_ID_BUILTINCLASS         0x20
 #define XPT_ID_MAIN_PROCESS_SCRIPTABLE_ONLY 0x10
 #define XPT_ID_FLAGMASK             0xf0
 
 #define XPT_ID_IS_SCRIPTABLE(flags) (!!(flags & XPT_ID_SCRIPTABLE))
 #define XPT_ID_IS_FUNCTION(flags) (!!(flags & XPT_ID_FUNCTION))
 #define XPT_ID_IS_BUILTINCLASS(flags) (!!(flags & XPT_ID_BUILTINCLASS))
 #define XPT_ID_IS_MAIN_PROCESS_SCRIPTABLE_ONLY(flags) (!!(flags & XPT_ID_MAIN_PROCESS_SCRIPTABLE_ONLY))
 
-/* 
- * A TypeDescriptor is a variable-size record used to identify the type of a 
- * method argument or return value. 
+/*
+ * A TypeDescriptor is a variable-size record used to identify the type of a
+ * method argument or return value.
  *
  * There are three types of TypeDescriptors:
  *
  * SimpleTypeDescriptor
  * InterfaceTypeDescriptor
  * InterfaceIsTypeDescriptor
  *
- * The tag field in the prefix indicates which of the variant TypeDescriptor 
- * records is being used, and hence the way any remaining fields should be 
- * parsed. Values from 0 to 17 refer to SimpleTypeDescriptors. The value 18 
- * designates an InterfaceTypeDescriptor, while 19 represents an 
+ * The tag field in the prefix indicates which of the variant TypeDescriptor
+ * records is being used, and hence the way any remaining fields should be
+ * parsed. Values from 0 to 17 refer to SimpleTypeDescriptors. The value 18
+ * designates an InterfaceTypeDescriptor, while 19 represents an
  * InterfaceIsTypeDescriptor.
  */
 
 /* why bother with a struct?  - other code relies on this being a struct */
 struct XPTTypeDescriptorPrefix {
     uint8_t flags;
 };
 
 /* flag bits */
 
 #define XPT_TDP_FLAGMASK         0xe0
 #define XPT_TDP_TAGMASK          (~XPT_TDP_FLAGMASK)
 #define XPT_TDP_TAG(tdp)         ((tdp).flags & XPT_TDP_TAGMASK)
 
-/* 
- * The following enum maps mnemonic names to the different numeric values 
+/*
+ * The following enum maps mnemonic names to the different numeric values
  * of XPTTypeDescriptor->tag.
  */
 enum XPTTypeDescriptorTags {
     TD_INT8              = 0,
     TD_INT16             = 1,
     TD_INT32             = 2,
     TD_INT64             = 3,
     TD_UINT8             = 4,
     TD_UINT16            = 5,
     TD_UINT32            = 6,
     TD_UINT64            = 7,
-    TD_FLOAT             = 8, 
+    TD_FLOAT             = 8,
     TD_DOUBLE            = 9,
-    TD_BOOL              = 10,  
-    TD_CHAR              = 11,  
-    TD_WCHAR             = 12, 
-    TD_VOID              = 13,  
+    TD_BOOL              = 10,
+    TD_CHAR              = 11,
+    TD_WCHAR             = 12,
+    TD_VOID              = 13,
     TD_PNSIID            = 14,
     TD_DOMSTRING         = 15,
     TD_PSTRING           = 16,
     TD_PWSTRING          = 17,
     TD_INTERFACE_TYPE    = 18,
     TD_INTERFACE_IS_TYPE = 19,
     TD_ARRAY             = 20,
     TD_PSTRING_SIZE_IS   = 21,
@@ -243,51 +243,51 @@ struct XPTTypeDescriptor {
             // reduces its size and also the size of XPTParamDescriptor.
             uint8_t iface_hi8;
             uint8_t iface_lo8;
         } iface;
     } u;
 };
 
 /*
- * A ConstDescriptor is a variable-size record that records the name and 
- * value of a scoped interface constant. 
+ * A ConstDescriptor is a variable-size record that records the name and
+ * value of a scoped interface constant.
  *
- * The types of the method parameter are restricted to the following subset 
- * of TypeDescriptors: 
+ * The types of the method parameter are restricted to the following subset
+ * of TypeDescriptors:
  *
- * int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, 
+ * int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
  * int64_t, uint64_t, wchar_t, char
- * 
- * The type (and thus the size) of the value record is determined by the 
- * contents of the associated TypeDescriptor record. For instance, if type 
- * corresponds to int16_t, then value is a two-byte record consisting of a 
+ *
+ * The type (and thus the size) of the value record is determined by the
+ * contents of the associated TypeDescriptor record. For instance, if type
+ * corresponds to int16_t, then value is a two-byte record consisting of a
  * 16-bit signed integer.
  */
 union XPTConstValue {
     int8_t    i8;
-    uint8_t   ui8; 
-    int16_t   i16; 
+    uint8_t   ui8;
+    int16_t   i16;
     uint16_t  ui16;
-    int32_t   i32; 
+    int32_t   i32;
     uint32_t  ui32;
-    int64_t   i64; 
-    uint64_t  ui64; 
-    char      ch; 
+    int64_t   i64;
+    uint64_t  ui64;
+    char      ch;
     uint16_t  wch;
 }; /* varies according to type */
 
 struct XPTConstDescriptor {
     char                *name;
     XPTTypeDescriptor   type;
     union XPTConstValue value;
 };
 
 /*
- * A ParamDescriptor is a variable-size record used to describe either a 
+ * A ParamDescriptor is a variable-size record used to describe either a
  * single argument to a method or a method's result.
  */
 struct XPTParamDescriptor {
     uint8_t           flags;
     XPTTypeDescriptor type;
 };
 
 /* flag bits */
@@ -302,17 +302,17 @@ struct XPTParamDescriptor {
 #define XPT_PD_IS_IN(flags)     (flags & XPT_PD_IN)
 #define XPT_PD_IS_OUT(flags)    (flags & XPT_PD_OUT)
 #define XPT_PD_IS_RETVAL(flags) (flags & XPT_PD_RETVAL)
 #define XPT_PD_IS_SHARED(flags) (flags & XPT_PD_SHARED)
 #define XPT_PD_IS_DIPPER(flags) (flags & XPT_PD_DIPPER)
 #define XPT_PD_IS_OPTIONAL(flags) (flags & XPT_PD_OPTIONAL)
 
 /*
- * A MethodDescriptor is a variable-size record used to describe a single 
+ * A MethodDescriptor is a variable-size record used to describe a single
  * interface method.
  */
 struct XPTMethodDescriptor {
     char                *name;
     XPTParamDescriptor  *params;
     XPTParamDescriptor  result;
     uint8_t             flags;
     uint8_t             num_args;
@@ -330,32 +330,32 @@ struct XPTMethodDescriptor {
 #define XPT_MD_IS_GETTER(flags)      (flags & XPT_MD_GETTER)
 #define XPT_MD_IS_SETTER(flags)      (flags & XPT_MD_SETTER)
 #define XPT_MD_IS_NOTXPCOM(flags)    (flags & XPT_MD_NOTXPCOM)
 #define XPT_MD_IS_HIDDEN(flags)      (flags & XPT_MD_HIDDEN)
 #define XPT_MD_WANTS_OPT_ARGC(flags) (flags & XPT_MD_OPT_ARGC)
 #define XPT_MD_WANTS_CONTEXT(flags)  (flags & XPT_MD_CONTEXT)
 
 /*
- * Annotation records are variable-size records used to store secondary 
- * information about the typelib, e.g. such as the name of the tool that 
- * generated the typelib file, the date it was generated, etc.  The 
- * information is stored with very loose format requirements so as to 
+ * Annotation records are variable-size records used to store secondary
+ * information about the typelib, e.g. such as the name of the tool that
+ * generated the typelib file, the date it was generated, etc.  The
+ * information is stored with very loose format requirements so as to
  * allow virtually any private data to be stored in the typelib.
  *
  * There are two types of Annotations:
  *
  * EmptyAnnotation
  * PrivateAnnotation
  *
- * The tag field of the prefix discriminates among the variant record 
- * types for Annotation's.  If the tag is 0, this record is an 
- * EmptyAnnotation. EmptyAnnotation's are ignored - they're only used to 
- * indicate an array of Annotation's that's completely empty.  If the tag 
- * is 1, the record is a PrivateAnnotation. 
+ * The tag field of the prefix discriminates among the variant record
+ * types for Annotation's.  If the tag is 0, this record is an
+ * EmptyAnnotation. EmptyAnnotation's are ignored - they're only used to
+ * indicate an array of Annotation's that's completely empty.  If the tag
+ * is 1, the record is a PrivateAnnotation.
  *
  * We don't actually store annotations; we just skip over them if they are
  * present.
  */
 
 #define XPT_ANN_LAST	                0x80
 #define XPT_ANN_IS_LAST(flags)          (flags & XPT_ANN_LAST)
 #define XPT_ANN_PRIVATE                 0x40
--- a/xpfe/appshell/nsAppShellWindowEnumerator.cpp
+++ b/xpfe/appshell/nsAppShellWindowEnumerator.cpp
@@ -80,17 +80,17 @@ nsWindowInfo::nsWindowInfo(nsIXULWindow*
 
 nsWindowInfo::~nsWindowInfo()
 {
 }
 
 // return true if the window described by this WindowInfo has a type
 // equal to the given type
 bool nsWindowInfo::TypeEquals(const nsAString &aType)
-{ 
+{
   nsAutoString rtnString;
   GetWindowType(mWindow, rtnString);
   return rtnString == aType;
 }
 
 // insert the struct into their two linked lists, in position after the
 // given (independent) method arguments
 void nsWindowInfo::InsertAfter(nsWindowInfo *inOlder , nsWindowInfo *inHigher)
--- a/xpfe/appshell/nsAppShellWindowEnumerator.h
+++ b/xpfe/appshell/nsAppShellWindowEnumerator.h
@@ -27,17 +27,17 @@ struct nsWindowInfo
   int32_t                   mTimeStamp;
   uint32_t                  mZLevel;
 
   // each struct is in two, independent, circular, doubly-linked lists
   nsWindowInfo              *mYounger, // next younger in sequence
                             *mOlder;
   nsWindowInfo              *mLower,   // next lower in z-order
                             *mHigher;
-  
+
   bool TypeEquals(const nsAString &aType);
   void   InsertAfter(nsWindowInfo *inOlder, nsWindowInfo *inHigher);
   void   Unlink(bool inAge, bool inZ);
   void   ReferenceSelf(bool inAge, bool inZ);
 };
 
 //
 // virtual enumerators
--- a/xpfe/appshell/nsChromeTreeOwner.cpp
+++ b/xpfe/appshell/nsChromeTreeOwner.cpp
@@ -52,33 +52,33 @@ nsChromeTreeOwner::nsChromeTreeOwner() :
 }
 
 nsChromeTreeOwner::~nsChromeTreeOwner()
 {
 }
 
 //*****************************************************************************
 // nsChromeTreeOwner::nsISupports
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMPL_ADDREF(nsChromeTreeOwner)
 NS_IMPL_RELEASE(nsChromeTreeOwner)
 
 NS_INTERFACE_MAP_BEGIN(nsChromeTreeOwner)
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellTreeOwner)
    NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeOwner)
    NS_INTERFACE_MAP_ENTRY(nsIBaseWindow)
    NS_INTERFACE_MAP_ENTRY(nsIWebProgressListener)
    NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
    NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
 NS_INTERFACE_MAP_END
 
 //*****************************************************************************
 // nsChromeTreeOwner::nsIInterfaceRequestor
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsChromeTreeOwner::GetInterface(const nsIID& aIID, void** aSink)
 {
   NS_ENSURE_ARG_POINTER(aSink);
 
   if(aIID.Equals(NS_GET_IID(nsIPrompt))) {
     NS_ENSURE_STATE(mXULWindow);
     return mXULWindow->GetInterface(aIID, aSink);
@@ -100,17 +100,17 @@ NS_IMETHODIMP nsChromeTreeOwner::GetInte
     return mXULWindow->QueryInterface(aIID, aSink);
   }
 
   return QueryInterface(aIID, aSink);
 }
 
 //*****************************************************************************
 // nsChromeTreeOwner::nsIDocShellTreeOwner
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP
 nsChromeTreeOwner::ContentShellAdded(nsIDocShellTreeItem* aContentShell,
                                      bool aPrimary)
 {
   NS_ENSURE_STATE(mXULWindow);
   return mXULWindow->ContentShellAdded(aContentShell, aPrimary);
 }
@@ -269,20 +269,20 @@ NS_IMETHODIMP
 nsChromeTreeOwner::GetHasPrimaryContent(bool* aResult)
 {
   NS_ENSURE_STATE(mXULWindow);
   return mXULWindow->GetHasPrimaryContent(aResult);
 }
 
 //*****************************************************************************
 // nsChromeTreeOwner::nsIBaseWindow
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsChromeTreeOwner::InitWindow(nativeWindow aParentNativeWindow,
-   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)   
+   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)
 {
    // Ignore widget parents for now.  Don't think those are a vaild thing to call.
    NS_ENSURE_SUCCESS(SetPositionAndSize(x, y, cx, cy, 0), NS_ERROR_FAILURE);
 
    return NS_OK;
 }
 
 NS_IMETHODIMP nsChromeTreeOwner::Create()
@@ -439,23 +439,23 @@ NS_IMETHODIMP nsChromeTreeOwner::GetTitl
 NS_IMETHODIMP nsChromeTreeOwner::SetTitle(const char16_t* aTitle)
 {
    NS_ENSURE_STATE(mXULWindow);
    return mXULWindow->SetTitle(aTitle);
 }
 
 //*****************************************************************************
 // nsChromeTreeOwner::nsIWebProgressListener
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP
 nsChromeTreeOwner::OnProgressChange(nsIWebProgress* aWebProgress,
                                     nsIRequest* aRequest,
                                     int32_t aCurSelfProgress,
-                                    int32_t aMaxSelfProgress, 
+                                    int32_t aMaxSelfProgress,
                                     int32_t aCurTotalProgress,
                                     int32_t aMaxTotalProgress)
 {
    return NS_OK;
 }
 
 NS_IMETHODIMP
 nsChromeTreeOwner::OnStateChange(nsIWebProgress* aWebProgress,
@@ -490,42 +490,42 @@ NS_IMETHODIMP nsChromeTreeOwner::OnLocat
    // If loading a new root .xul document, then redo chrome.
   if (itsForYou) {
     NS_ENSURE_STATE(mXULWindow);
     mXULWindow->mChromeLoaded = false;
   }
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsChromeTreeOwner::OnStatusChange(nsIWebProgress* aWebProgress,
                                   nsIRequest* aRequest,
                                   nsresult aStatus,
                                   const char16_t* aMessage)
 {
     return NS_OK;
 }
 
 
 
-NS_IMETHODIMP 
-nsChromeTreeOwner::OnSecurityChange(nsIWebProgress *aWebProgress, 
-                                    nsIRequest *aRequest, 
+NS_IMETHODIMP
+nsChromeTreeOwner::OnSecurityChange(nsIWebProgress *aWebProgress,
+                                    nsIRequest *aRequest,
                                     uint32_t state)
 {
     return NS_OK;
 }
 
 //*****************************************************************************
 // nsChromeTreeOwner: Helpers
-//*****************************************************************************   
+//*****************************************************************************
 
 //*****************************************************************************
 // nsChromeTreeOwner: Accessors
-//*****************************************************************************   
+//*****************************************************************************
 
 void nsChromeTreeOwner::XULWindow(nsXULWindow* aXULWindow)
 {
    mXULWindow = aXULWindow;
 }
 
 nsXULWindow* nsChromeTreeOwner::XULWindow()
 {
--- a/xpfe/appshell/nsChromeTreeOwner.h
+++ b/xpfe/appshell/nsChromeTreeOwner.h
@@ -16,17 +16,17 @@
 #include "nsIInterfaceRequestor.h"
 #include "nsIInterfaceRequestorUtils.h"
 #include "nsIWebProgressListener.h"
 #include "nsWeakReference.h"
 
 class nsXULWindow;
 
 class nsChromeTreeOwner : public nsIDocShellTreeOwner,
-                          public nsIBaseWindow, 
+                          public nsIBaseWindow,
                           public nsIInterfaceRequestor,
                           public nsIWebProgressListener,
                           public nsSupportsWeakReference
 {
 friend class nsXULWindow;
 
 public:
    NS_DECL_ISUPPORTS
--- a/xpfe/appshell/nsContentTreeOwner.cpp
+++ b/xpfe/appshell/nsContentTreeOwner.cpp
@@ -76,31 +76,31 @@ private:
   virtual ~nsSiteWindow();
   nsContentTreeOwner *mAggregator;
 };
 
 //*****************************************************************************
 //***    nsContentTreeOwner: Object Management
 //*****************************************************************************
 
-nsContentTreeOwner::nsContentTreeOwner(bool fPrimary) : mXULWindow(nullptr), 
+nsContentTreeOwner::nsContentTreeOwner(bool fPrimary) : mXULWindow(nullptr),
    mPrimary(fPrimary), mContentTitleSetting(false)
 {
   // note if this fails, QI on nsIEmbeddingSiteWindow(2) will simply fail
   mSiteWindow = new nsSiteWindow(this);
 }
 
 nsContentTreeOwner::~nsContentTreeOwner()
 {
   delete mSiteWindow;
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsISupports
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMPL_ADDREF(nsContentTreeOwner)
 NS_IMPL_RELEASE(nsContentTreeOwner)
 
 NS_INTERFACE_MAP_BEGIN(nsContentTreeOwner)
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellTreeOwner)
    NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeOwner)
    NS_INTERFACE_MAP_ENTRY(nsIBaseWindow)
@@ -117,17 +117,17 @@ NS_INTERFACE_MAP_BEGIN(nsContentTreeOwne
    // (SetFocus() is a good example here).  If it were not for that, we could
    // ditch the aggregation and just deal with not being able to use NS_DECL_*
    // macros for this stuff....
    NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIEmbeddingSiteWindow, mSiteWindow)
 NS_INTERFACE_MAP_END
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIInterfaceRequestor
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsContentTreeOwner::GetInterface(const nsIID& aIID, void** aSink)
 {
   NS_ENSURE_ARG_POINTER(aSink);
   *aSink = 0;
 
   if(aIID.Equals(NS_GET_IID(nsIPrompt))) {
     NS_ENSURE_STATE(mXULWindow);
@@ -164,17 +164,17 @@ NS_IMETHODIMP nsContentTreeOwner::GetInt
     return mXULWindow->QueryInterface(aIID, aSink);
   }
 
   return QueryInterface(aIID, aSink);
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIDocShellTreeOwner
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP
 nsContentTreeOwner::ContentShellAdded(nsIDocShellTreeItem* aContentShell,
                                       bool aPrimary)
 {
   NS_ENSURE_STATE(mXULWindow);
   return mXULWindow->ContentShellAdded(aContentShell, aPrimary);
 }
@@ -363,33 +363,33 @@ NS_IMETHODIMP
 nsContentTreeOwner::GetHasPrimaryContent(bool* aResult)
 {
   NS_ENSURE_STATE(mXULWindow);
   return mXULWindow->GetHasPrimaryContent(aResult);
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIWebBrowserChrome3
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsContentTreeOwner::OnBeforeLinkTraversal(const nsAString &originalTarget,
                                                         nsIURI *linkURI,
                                                         nsIDOMNode *linkNode,
                                                         bool isAppTab,
                                                         nsAString &_retval)
 {
   NS_ENSURE_STATE(mXULWindow);
 
   nsCOMPtr<nsIXULBrowserWindow> xulBrowserWindow;
   mXULWindow->GetXULBrowserWindow(getter_AddRefs(xulBrowserWindow));
 
   if (xulBrowserWindow)
     return xulBrowserWindow->OnBeforeLinkTraversal(originalTarget, linkURI,
                                                    linkNode, isAppTab, _retval);
-  
+
   _retval = originalTarget;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsContentTreeOwner::ShouldLoadURI(nsIDocShell *aDocShell,
                                                 nsIURI *aURI,
                                                 nsIURI *aReferrer,
                                                 bool aHasPostData,
@@ -445,28 +445,28 @@ NS_IMETHODIMP nsContentTreeOwner::Should
 {
   NS_WARNING("Cannot switch to prerendered document in the parent process");
   *aRetval = false;
   return NS_OK;
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIWebBrowserChrome2
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsContentTreeOwner::SetStatusWithContext(uint32_t aStatusType,
                                                        const nsAString &aStatusText,
                                                        nsISupports *aStatusContext)
 {
   // We only allow the status to be set from the primary content shell
   if (!mPrimary && aStatusType != STATUS_LINK)
     return NS_OK;
 
   NS_ENSURE_STATE(mXULWindow);
-  
+
   nsCOMPtr<nsIXULBrowserWindow> xulBrowserWindow;
   mXULWindow->GetXULBrowserWindow(getter_AddRefs(xulBrowserWindow));
 
   if (xulBrowserWindow)
   {
     switch(aStatusType)
     {
     case STATUS_SCRIPT:
@@ -481,17 +481,17 @@ NS_IMETHODIMP nsContentTreeOwner::SetSta
     }
   }
 
   return NS_OK;
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIWebBrowserChrome
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsContentTreeOwner::SetStatus(uint32_t aStatusType,
                                             const char16_t* aStatus)
 {
   return SetStatusWithContext(aStatusType,
       aStatus ? static_cast<const nsString &>(nsDependentString(aStatus))
               : EmptyString(),
       nullptr);
@@ -547,25 +547,25 @@ NS_IMETHODIMP nsContentTreeOwner::IsWind
   NS_ENSURE_STATE(mXULWindow);
   *_retval = mXULWindow->mContinueModalLoop;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsContentTreeOwner::ExitModalEventLoop(nsresult aStatus)
 {
    NS_ENSURE_STATE(mXULWindow);
-   return mXULWindow->ExitModalLoop(aStatus);   
+   return mXULWindow->ExitModalLoop(aStatus);
 }
 
 //*****************************************************************************
 // nsContentTreeOwner::nsIBaseWindow
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsContentTreeOwner::InitWindow(nativeWindow aParentNativeWindow,
-   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)   
+   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)
 {
    // Ignore wigdet parents for now.  Don't think those are a vaild thing to call.
    NS_ENSURE_SUCCESS(SetPositionAndSize(x, y, cx, cy, 0), NS_ERROR_FAILURE);
 
    return NS_OK;
 }
 
 NS_IMETHODIMP nsContentTreeOwner::Create()
@@ -628,17 +628,17 @@ NS_IMETHODIMP nsContentTreeOwner::SetPos
    NS_ENSURE_STATE(mXULWindow);
    return mXULWindow->SetPositionAndSize(aX, aY, aCX, aCY, aFlags);
 }
 
 NS_IMETHODIMP nsContentTreeOwner::GetPositionAndSize(int32_t* aX, int32_t* aY,
    int32_t* aCX, int32_t* aCY)
 {
    NS_ENSURE_STATE(mXULWindow);
-   return mXULWindow->GetPositionAndSize(aX, aY, aCX, aCY); 
+   return mXULWindow->GetPositionAndSize(aX, aY, aCX, aCY);
 }
 
 NS_IMETHODIMP nsContentTreeOwner::Repaint(bool aForce)
 {
    NS_ENSURE_STATE(mXULWindow);
    return mXULWindow->Repaint(aForce);
 }
 
@@ -723,17 +723,17 @@ NS_IMETHODIMP nsContentTreeOwner::GetTit
 
 NS_IMETHODIMP nsContentTreeOwner::SetTitle(const char16_t* aTitle)
 {
    // We only allow the title to be set from the primary content shell
   if(!mPrimary || !mContentTitleSetting)
     return NS_OK;
 
   NS_ENSURE_STATE(mXULWindow);
-  
+
   nsAutoString   title;
   nsAutoString   docTitle(aTitle);
 
   if (docTitle.IsEmpty())
     docTitle.Assign(mTitleDefault);
 
   if (!docTitle.IsEmpty()) {
     if (!mTitlePreface.IsEmpty()) {
@@ -810,34 +810,34 @@ NS_IMETHODIMP nsContentTreeOwner::SetTit
     return rv.StealNSResult();
   }
 
   return mXULWindow->SetTitle(title.get());
 }
 
 //*****************************************************************************
 // nsContentTreeOwner: nsIWindowProvider
-//*****************************************************************************   
+//*****************************************************************************
 NS_IMETHODIMP
 nsContentTreeOwner::ProvideWindow(mozIDOMWindowProxy* aParent,
                                   uint32_t aChromeFlags,
                                   bool aCalledFromJS,
                                   bool aPositionSpecified,
                                   bool aSizeSpecified,
                                   nsIURI* aURI,
                                   const nsAString& aName,
                                   const nsACString& aFeatures,
                                   bool aForceNoOpener,
                                   bool* aWindowIsNew,
                                   mozIDOMWindowProxy** aReturn)
 {
   NS_ENSURE_ARG_POINTER(aParent);
 
   auto* parent = nsPIDOMWindowOuter::From(aParent);
-  
+
   *aReturn = nullptr;
 
   if (!mXULWindow) {
     // Nothing to do here
     return NS_OK;
   }
 
 #ifdef DEBUG
@@ -873,17 +873,17 @@ nsContentTreeOwner::ProvideWindow(mozIDO
     if (aName.LowerCaseEqualsLiteral("_blank")) {
       nsCOMPtr<nsIExternalURLHandlerService> exUrlServ(
                         do_GetService(NS_EXTERNALURLHANDLERSERVICE_CONTRACTID));
       if (exUrlServ) {
 
         nsCOMPtr<nsIHandlerInfo> info;
         bool found;
         exUrlServ->GetURLHandlerInfoFromOS(aURI, &found, getter_AddRefs(info));
-  
+
         if (info && found) {
           info->LaunchWithURI(aURI, nullptr);
           return NS_ERROR_ABORT;
         }
 
       }
     }
   }
--- a/xpfe/appshell/nsWebShellWindow.cpp
+++ b/xpfe/appshell/nsWebShellWindow.cpp
@@ -203,17 +203,17 @@ nsresult nsWebShellWindow::Initialize(ns
   NS_ENSURE_TRUE(docShellAsItem, NS_ERROR_FAILURE);
   NS_ENSURE_SUCCESS(EnsureChromeTreeOwner(), NS_ERROR_FAILURE);
 
   docShellAsItem->SetTreeOwner(mChromeTreeOwner);
   docShellAsItem->SetItemType(nsIDocShellTreeItem::typeChrome);
 
   r.x = r.y = 0;
   nsCOMPtr<nsIBaseWindow> docShellAsWin(do_QueryInterface(mDocShell));
-  NS_ENSURE_SUCCESS(docShellAsWin->InitWindow(nullptr, mWindow, 
+  NS_ENSURE_SUCCESS(docShellAsWin->InitWindow(nullptr, mWindow,
    r.x, r.y, r.width, r.height), NS_ERROR_FAILURE);
   NS_ENSURE_SUCCESS(docShellAsWin->Create(), NS_ERROR_FAILURE);
 
   // Attach a WebProgress listener.during initialization...
   nsCOMPtr<nsIWebProgress> webProgress(do_GetInterface(mDocShell, &rv));
   if (webProgress) {
     webProgress->AddProgressListener(this, nsIWebProgress::NOTIFY_STATE_NETWORK);
   }
@@ -256,17 +256,17 @@ nsresult nsWebShellWindow::Initialize(ns
     rv = webNav->LoadURI(urlString.get(),
                          nsIWebNavigation::LOAD_FLAGS_NONE,
                          nullptr,
                          nullptr,
                          nullptr,
                          nsContentUtils::GetSystemPrincipal());
     NS_ENSURE_SUCCESS(rv, rv);
   }
-                     
+
   return rv;
 }
 
 nsIPresShell*
 nsWebShellWindow::GetPresShell()
 {
   if (!mDocShell)
     return nullptr;
@@ -603,17 +603,17 @@ nsWebShellWindow::OnProgressChange(nsIWe
 NS_IMETHODIMP
 nsWebShellWindow::OnStateChange(nsIWebProgress *aProgress,
                                 nsIRequest *aRequest,
                                 uint32_t aStateFlags,
                                 nsresult aStatus)
 {
   // If the notification is not about a document finishing, then just
   // ignore it...
-  if (!(aStateFlags & nsIWebProgressListener::STATE_STOP) || 
+  if (!(aStateFlags & nsIWebProgressListener::STATE_STOP) ||
       !(aStateFlags & nsIWebProgressListener::STATE_IS_NETWORK)) {
     return NS_OK;
   }
 
   if (mChromeLoaded)
     return NS_OK;
 
   // If this document notification is for a frame then ignore it...
@@ -652,17 +652,17 @@ nsWebShellWindow::OnLocationChange(nsIWe
                                    nsIRequest *aRequest,
                                    nsIURI *aURI,
                                    uint32_t aFlags)
 {
   NS_NOTREACHED("notification excluded in AddProgressListener(...)");
   return NS_OK;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsWebShellWindow::OnStatusChange(nsIWebProgress* aWebProgress,
                                  nsIRequest* aRequest,
                                  nsresult aStatus,
                                  const char16_t* aMessage)
 {
   NS_NOTREACHED("notification excluded in AddProgressListener(...)");
   return NS_OK;
 }
--- a/xpfe/appshell/nsWebShellWindow.h
+++ b/xpfe/appshell/nsWebShellWindow.h
@@ -63,17 +63,17 @@ public:
   virtual void OSToolbarButtonPressed() override;
   virtual bool ZLevelChanged(bool aImmediate, nsWindowZ *aPlacement,
                              nsIWidget* aRequestBelow, nsIWidget** aActualBelow) override;
   virtual void WindowActivated() override;
   virtual void WindowDeactivated() override;
 
 protected:
   friend class mozilla::WebShellWindowTimerCallback;
-  
+
   virtual ~nsWebShellWindow();
 
   bool                     ExecuteCloseHandler();
   void                     ConstrainToOpenerScreen(int32_t* aX, int32_t* aY);
 
   nsCOMPtr<nsITimer>      mSPTimer;
   mozilla::Mutex          mSPTimerLock;
 
--- a/xpfe/appshell/nsWindowMediator.cpp
+++ b/xpfe/appshell/nsWindowMediator.cpp
@@ -116,27 +116,27 @@ nsWindowMediator::UnregisterWindow(nsWin
   }
 
   nsIXULWindow* window = inInfo->mWindow.get();
   ListenerArray::ForwardIterator iter(mListeners);
   while (iter.HasMore()) {
     iter.GetNext()->OnCloseWindow(window);
   }
 
-  // Remove from the lists and free up 
+  // Remove from the lists and free up
   if (inInfo == mOldestWindow)
     mOldestWindow = inInfo->mYounger;
   if (inInfo == mTopmostWindow)
     mTopmostWindow = inInfo->mLower;
   inInfo->Unlink(true, true);
   if (inInfo == mOldestWindow)
     mOldestWindow = nullptr;
   if (inInfo == mTopmostWindow)
     mTopmostWindow = nullptr;
-  delete inInfo;  
+  delete inInfo;
 
   return NS_OK;
 }
 
 nsWindowInfo*
 nsWindowMediator::GetInfoFor(nsIXULWindow *aWindow)
 {
   nsWindowInfo *info,
@@ -267,17 +267,17 @@ nsWindowMediator::GetMostRecentWindow(co
   if (!mReady)
     return NS_OK;
 
   // Find the most window with the highest time stamp that matches
   // the requested type
   nsWindowInfo* info = MostRecentWindowInfo(inType, false);
   if (info && info->mWindow) {
     nsCOMPtr<nsPIDOMWindowOuter> DOMWindow;
-    if (NS_SUCCEEDED(GetDOMWindow(info->mWindow, DOMWindow))) {  
+    if (NS_SUCCEEDED(GetDOMWindow(info->mWindow, DOMWindow))) {
       DOMWindow.forget(outWindow);
       return NS_OK;
     }
     return NS_ERROR_FAILURE;
   }
 
   return NS_OK;
 }
@@ -387,17 +387,17 @@ nsWindowMediator::UpdateWindowTimeStamp(
   MOZ_RELEASE_ASSERT(NS_IsMainThread());
   NS_ENSURE_STATE(mReady);
   nsWindowInfo *info = GetInfoFor(inWindow);
   if (info) {
     // increment the window's time stamp
     info->mTimeStamp = ++mTimeStamp;
     return NS_OK;
   }
-  return NS_ERROR_FAILURE; 
+  return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP
 nsWindowMediator::UpdateWindowTitle(nsIXULWindow* inWindow,
                                     const char16_t* inTitle)
 {
   MOZ_RELEASE_ASSERT(NS_IsMainThread());
   NS_ENSURE_STATE(mReady);
@@ -778,29 +778,29 @@ NS_IMPL_ISUPPORTS(nsWindowMediator,
   nsIWindowMediator,
   nsIObserver,
   nsISupportsWeakReference)
 
 NS_IMETHODIMP
 nsWindowMediator::AddListener(nsIWindowMediatorListener* aListener)
 {
   NS_ENSURE_ARG_POINTER(aListener);
-  
+
   mListeners.AppendElement(aListener);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsWindowMediator::RemoveListener(nsIWindowMediatorListener* aListener)
 {
   NS_ENSURE_ARG_POINTER(aListener);
 
   mListeners.RemoveElement(aListener);
-  
+
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsWindowMediator::Observe(nsISupports* aSubject,
                           const char* aTopic,
                           const char16_t* aData)
 {
--- a/xpfe/appshell/nsXULWindow.cpp
+++ b/xpfe/appshell/nsXULWindow.cpp
@@ -82,23 +82,23 @@ using dom::AutoNoJSAPI;
 #define ZLEVEL_ATTRIBUTE   NS_LITERAL_STRING("zlevel")
 
 
 //*****************************************************************************
 //***    nsXULWindow: Object Management
 //*****************************************************************************
 
 nsXULWindow::nsXULWindow(uint32_t aChromeFlags)
-  : mChromeTreeOwner(nullptr), 
+  : mChromeTreeOwner(nullptr),
     mContentTreeOwner(nullptr),
     mPrimaryContentTreeOwner(nullptr),
     mModalStatus(NS_OK),
     mContinueModalLoop(false),
     mDebuting(false),
-    mChromeLoaded(false), 
+    mChromeLoaded(false),
     mShowAfterLoad(false),
     mIntrinsicallySized(false),
     mCenterAfterLoad(false),
     mIsHiddenWindow(false),
     mLockedUntilChromeLoad(false),
     mIgnoreXULSize(false),
     mIgnoreXULPosition(false),
     mChromeFlagsFrozen(false),
@@ -132,29 +132,29 @@ NS_INTERFACE_MAP_BEGIN(nsXULWindow)
   NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
   if (aIID.Equals(NS_GET_IID(nsXULWindow)))
     foundInterface = reinterpret_cast<nsISupports*>(this);
   else
 NS_INTERFACE_MAP_END
 
 //*****************************************************************************
 // nsXULWindow::nsIIntefaceRequestor
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsXULWindow::GetInterface(const nsIID& aIID, void** aSink)
 {
   nsresult rv;
 
   NS_ENSURE_ARG_POINTER(aSink);
 
   if (aIID.Equals(NS_GET_IID(nsIPrompt))) {
     rv = EnsurePrompter();
     if (NS_FAILED(rv)) return rv;
     return mPrompter->QueryInterface(aIID, aSink);
-  }   
+  }
   if (aIID.Equals(NS_GET_IID(nsIAuthPrompt))) {
     rv = EnsureAuthPrompter();
     if (NS_FAILED(rv)) return rv;
     return mAuthPrompter->QueryInterface(aIID, aSink);
   }
   if (aIID.Equals(NS_GET_IID(mozIDOMWindowProxy))) {
     return GetWindowDOMWindow(reinterpret_cast<mozIDOMWindowProxy**>(aSink));
   }
@@ -167,32 +167,32 @@ NS_IMETHODIMP nsXULWindow::GetInterface(
   }
   if (aIID.Equals(NS_GET_IID(nsIDOMWindowInternal))) {
     nsCOMPtr<mozIDOMWindowProxy> window = nullptr;
     rv = GetWindowDOMWindow(getter_AddRefs(window));
     nsCOMPtr<nsIDOMWindowInternal> domWindowInternal = do_QueryInterface(window);
     domWindowInternal.forget(aSink);
     return rv;
   }
-  if (aIID.Equals(NS_GET_IID(nsIWebBrowserChrome)) && 
+  if (aIID.Equals(NS_GET_IID(nsIWebBrowserChrome)) &&
     NS_SUCCEEDED(EnsureContentTreeOwner()) &&
     NS_SUCCEEDED(mContentTreeOwner->QueryInterface(aIID, aSink)))
     return NS_OK;
 
-  if (aIID.Equals(NS_GET_IID(nsIEmbeddingSiteWindow)) && 
+  if (aIID.Equals(NS_GET_IID(nsIEmbeddingSiteWindow)) &&
     NS_SUCCEEDED(EnsureContentTreeOwner()) &&
     NS_SUCCEEDED(mContentTreeOwner->QueryInterface(aIID, aSink)))
     return NS_OK;
 
   return QueryInterface(aIID, aSink);
 }
 
 //*****************************************************************************
 // nsXULWindow::nsIXULWindow
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsXULWindow::GetDocShell(nsIDocShell** aDocShell)
 {
   NS_ENSURE_ARG_POINTER(aDocShell);
 
   *aDocShell = mDocShell;
   NS_IF_ADDREF(*aDocShell);
   return NS_OK;
@@ -302,17 +302,17 @@ NS_IMETHODIMP nsXULWindow::SetIntrinsica
 NS_IMETHODIMP nsXULWindow::GetIntrinsicallySized(bool* aIntrinsicallySized)
 {
   NS_ENSURE_ARG_POINTER(aIntrinsicallySized);
 
   *aIntrinsicallySized = mIntrinsicallySized;
   return NS_OK;
 }
 
-NS_IMETHODIMP nsXULWindow::GetPrimaryContentShell(nsIDocShellTreeItem** 
+NS_IMETHODIMP nsXULWindow::GetPrimaryContentShell(nsIDocShellTreeItem**
    aDocShellTreeItem)
 {
   NS_ENSURE_ARG_POINTER(aDocShellTreeItem);
   NS_IF_ADDREF(*aDocShellTreeItem = mPrimaryContentShell);
   return NS_OK;
 }
 
 NS_IMETHODIMP
@@ -370,17 +370,17 @@ NS_IMETHODIMP nsXULWindow::RemoveChildWi
 }
 
 NS_IMETHODIMP nsXULWindow::ShowModal()
 {
   AUTO_PROFILER_LABEL("nsXULWindow::ShowModal", OTHER);
 
   // Store locally so it doesn't die on us
   nsCOMPtr<nsIWidget> window = mWindow;
-  nsCOMPtr<nsIXULWindow> tempRef = this;  
+  nsCOMPtr<nsIXULWindow> tempRef = this;
 
   window->SetModal(true);
   mContinueModalLoop = true;
   EnableParent(false);
 
   {
     AutoNoJSAPI nojsapi;
     SpinEventLoopUntil([&]() { return !mContinueModalLoop; });
@@ -400,20 +400,20 @@ NS_IMETHODIMP nsXULWindow::ShowModal()
      to change the protected member variable directly.)
   */
 
   return mModalStatus;
 }
 
 //*****************************************************************************
 // nsXULWindow::nsIBaseWindow
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsXULWindow::InitWindow(nativeWindow aParentNativeWindow,
-   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)   
+   nsIWidget* parentWidget, int32_t x, int32_t y, int32_t cx, int32_t cy)
 {
   //XXX First Check In
   NS_ASSERTION(false, "Not Yet Implemented");
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::Create()
 {
@@ -462,17 +462,17 @@ NS_IMETHODIMP nsXULWindow::Destroy()
   // thread with NVIDIA driver 310.32. We don't need to worry about user
   // interactions with destroyed windows on X11 either.
 #ifndef MOZ_WIDGET_GTK
   if (mWindow)
     mWindow->Show(false);
 #endif
 
 #if defined(XP_WIN)
-  // We need to explicitly set the focus on Windows, but 
+  // We need to explicitly set the focus on Windows, but
   // only if the parent is visible.
   nsCOMPtr<nsIBaseWindow> parent(do_QueryReferent(mParentWindow));
   if (parent) {
     nsCOMPtr<nsIWidget> parentWidget;
     parent->GetMainWidget(getter_AddRefs(parentWidget));
     if (!parentWidget || parentWidget->IsVisible()) {
       nsCOMPtr<nsIBaseWindow> baseHiddenWindow;
       if (appShell) {
@@ -487,17 +487,17 @@ NS_IMETHODIMP nsXULWindow::Destroy()
         nsCOMPtr<nsIWidget> parentWidget;
         parent->GetMainWidget(getter_AddRefs(parentWidget));
         if (parentWidget)
           parentWidget->PlaceBehind(eZPlacementTop, 0, true);
       }
     }
   }
 #endif
-   
+
   mDOMWindow = nullptr;
   if (mDocShell) {
     nsCOMPtr<nsIBaseWindow> shellAsWin(do_QueryInterface(mDocShell));
     shellAsWin->Destroy();
     mDocShell = nullptr; // this can cause reentrancy of this function
   }
 
   mPrimaryContentShell = nullptr;
@@ -604,17 +604,17 @@ NS_IMETHODIMP nsXULWindow::SetSize(int32
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::GetSize(int32_t* aCX, int32_t* aCY)
 {
   return GetPositionAndSize(nullptr, nullptr, aCX, aCY);
 }
 
-NS_IMETHODIMP nsXULWindow::SetPositionAndSize(int32_t aX, int32_t aY, 
+NS_IMETHODIMP nsXULWindow::SetPositionAndSize(int32_t aX, int32_t aY,
    int32_t aCX, int32_t aCY, uint32_t aFlags)
 {
   /* any attempt to set the window's size or position overrides the window's
      zoom state. this is important when these two states are competing while
      the window is being opened. but it should probably just always be so. */
   mWindow->SetSizeMode(nsSizeMode_Normal);
 
   mIntrinsicallySized = false;
@@ -828,17 +828,17 @@ NS_IMETHODIMP nsXULWindow::SetVisibility
     return NS_OK;
   }
 
   if (mDebuting) {
     return NS_OK;
   }
   mDebuting = true;  // (Show / Focus is recursive)
 
-  //XXXTAB Do we really need to show docshell and the window?  Isn't 
+  //XXXTAB Do we really need to show docshell and the window?  Isn't
   // the window good enough?
   nsCOMPtr<nsIBaseWindow> shellAsWin(do_QueryInterface(mDocShell));
   shellAsWin->SetVisibility(aVisibility);
   // Store locally so it doesn't die on us. 'Show' can result in the window
   // being closed with nsXULWindow::Destroy being called. That would set
   // mWindow to null and posibly destroy the nsIWidget while its Show method
   // is on the stack. We need to keep it alive until Show finishes.
   nsCOMPtr<nsIWidget> window = mWindow;
@@ -847,17 +847,17 @@ NS_IMETHODIMP nsXULWindow::SetVisibility
   nsCOMPtr<nsIWindowMediator> windowMediator(do_GetService(NS_WINDOWMEDIATOR_CONTRACTID));
   if (windowMediator)
      windowMediator->UpdateWindowTimeStamp(static_cast<nsIXULWindow*>(this));
 
   // notify observers so that we can hide the splash screen if possible
   nsCOMPtr<nsIObserverService> obssvc = services::GetObserverService();
   NS_ASSERTION(obssvc, "Couldn't get observer service.");
   if (obssvc) {
-    obssvc->NotifyObservers(nullptr, "xul-window-visible", nullptr); 
+    obssvc->NotifyObservers(nullptr, "xul-window-visible", nullptr);
   }
 
   mDebuting = false;
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::GetEnabled(bool *aEnabled)
 {
@@ -879,17 +879,17 @@ NS_IMETHODIMP nsXULWindow::SetEnabled(bo
     return NS_OK;
   }
   return NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsXULWindow::GetMainWidget(nsIWidget** aMainWidget)
 {
   NS_ENSURE_ARG_POINTER(aMainWidget);
-   
+
   *aMainWidget = mWindow;
   NS_IF_ADDREF(*aMainWidget);
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::SetFocus()
 {
   //XXX First Check In
@@ -922,17 +922,17 @@ NS_IMETHODIMP nsXULWindow::SetTitle(cons
   windowMediator->UpdateWindowTitle(static_cast<nsIXULWindow*>(this), aTitle);
 
   return NS_OK;
 }
 
 
 //*****************************************************************************
 // nsXULWindow: Helpers
-//*****************************************************************************   
+//*****************************************************************************
 
 NS_IMETHODIMP nsXULWindow::EnsureChromeTreeOwner()
 {
   if (mChromeTreeOwner)
     return NS_OK;
 
   mChromeTreeOwner = new nsChromeTreeOwner();
   NS_ADDREF(mChromeTreeOwner);
@@ -944,17 +944,17 @@ NS_IMETHODIMP nsXULWindow::EnsureChromeT
 NS_IMETHODIMP nsXULWindow::EnsureContentTreeOwner()
 {
   if (mContentTreeOwner)
     return NS_OK;
 
   mContentTreeOwner = new nsContentTreeOwner(false);
   NS_ADDREF(mContentTreeOwner);
   mContentTreeOwner->XULWindow(this);
-   
+
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::EnsurePrimaryContentTreeOwner()
 {
   if (mPrimaryContentTreeOwner)
     return NS_OK;
 
@@ -964,33 +964,33 @@ NS_IMETHODIMP nsXULWindow::EnsurePrimary
 
   return NS_OK;
 }
 
 NS_IMETHODIMP nsXULWindow::EnsurePrompter()
 {
   if (mPrompter)
     return NS_OK;
-   
+
   nsCOMPtr<mozIDOMWindowProxy> ourWindow;
   nsresult rv = GetWindowDOMWindow(getter_AddRefs(ourWindow));
   if (NS_SUCCEEDED(rv)) {
-    nsCOMPtr<nsIWindowWatcher> wwatch = 
+    nsCOMPtr<nsIWindowWatcher> wwatch =
         do_GetService(NS_WINDOWWATCHER_CONTRACTID);
     if (wwatch)
       wwatch->GetNewPrompter(ourWindow, getter_AddRefs(mPrompter));
   }
   return mPrompter ? NS_OK : NS_ERROR_FAILURE;
 }
 
 NS_IMETHODIMP nsXULWindow::EnsureAuthPrompter()
 {
   if (mAuthPrompter)
     return NS_OK;
-      
+
   nsCOMPtr<mozIDOMWindowProxy> ourWindow;
   nsresult rv = GetWindowDOMWindow(getter_AddRefs(ourWindow));
   if (NS_SUCCEEDED(rv)) {
     nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
     if (wwatch)
       wwatch->GetNewAuthPrompter(ourWindow, getter_AddRefs(mAuthPrompter));
   }
   return mAuthPrompter ? NS_OK : NS_ERROR_FAILURE;
@@ -1078,17 +1078,17 @@ NS_IMETHODIMP nsXULWindow::ForceRoundedD
 
   SetPrimaryContentSize(targetContentWidth, targetContentHeight);
 
   mIgnoreXULSize = true;
   mIgnoreXULSizeMode = true;
 
   return NS_OK;
 }
- 
+
 void nsXULWindow::OnChromeLoaded()
 {
   nsresult rv = EnsureContentTreeOwner();
 
   if (NS_SUCCEEDED(rv)) {
     mChromeLoaded = true;
     ApplyChromeFlags();
     SyncAttributesToWidget();
@@ -2163,17 +2163,17 @@ void nsXULWindow::PlaceWindowLayersBehin
   while (NS_SUCCEEDED(windowEnumerator->HasMoreElements(&more)) && more) {
     uint32_t nextZ; // z-level of nextWindow
     nsCOMPtr<nsISupports> nextWindow;
     windowEnumerator->GetNext(getter_AddRefs(nextWindow));
     nsCOMPtr<nsIXULWindow> nextXULWindow(do_QueryInterface(nextWindow));
     nextXULWindow->GetZLevel(&nextZ);
     if (nextZ < aLowLevel)
       break; // we've processed all windows through aLowLevel
-    
+
     // move it just below its next higher window
     nsCOMPtr<nsIBaseWindow> nextBase(do_QueryInterface(nextXULWindow));
     if (nextBase) {
       nsCOMPtr<nsIWidget> nextWidget;
       nextBase->GetMainWidget(getter_AddRefs(nextWidget));
       if (nextZ <= aHighLevel)
         nextWidget->PlaceBehind(eZPlacementBelow, previousHighWidget, false);
       previousHighWidget = nextWidget;
--- a/xpfe/appshell/nsXULWindow.h
+++ b/xpfe/appshell/nsXULWindow.h
@@ -114,17 +114,17 @@ protected:
                                     int32_t* aHeight);
    NS_IMETHOD SetPrimaryContentSize(int32_t aWidth,
                                     int32_t aHeight);
    nsresult GetRootShellSize(int32_t* aWidth,
                              int32_t* aHeight);
    nsresult SetRootShellSize(int32_t aWidth,
                              int32_t aHeight);
 
-   NS_IMETHOD SizeShellTo(nsIDocShellTreeItem* aShellItem, int32_t aCX, 
+   NS_IMETHOD SizeShellTo(nsIDocShellTreeItem* aShellItem, int32_t aCX,
       int32_t aCY);
    NS_IMETHOD ExitModalLoop(nsresult aStatus);
    NS_IMETHOD CreateNewChromeWindow(int32_t aChromeFlags, nsITabParent* aOpeningTab, mozIDOMWindowProxy* aOpenerWindow, nsIXULWindow **_retval);
    NS_IMETHOD CreateNewContentWindow(int32_t aChromeFlags,
                                      nsITabParent* aOpeningTab,
                                      mozIDOMWindowProxy* aOpenerWindow,
                                      uint64_t aNextTabParentId,
                                      nsIXULWindow **_retval);
@@ -151,17 +151,17 @@ protected:
    nsCOMPtr<nsIAuthPrompt> mAuthPrompter;
    nsCOMPtr<nsIXULBrowserWindow> mXULBrowserWindow;
    nsCOMPtr<nsIDocShellTreeItem> mPrimaryContentShell;
    nsresult                mModalStatus;
    bool                    mContinueModalLoop;
    bool                    mDebuting;       // being made visible right now
    bool                    mChromeLoaded; // True when chrome has loaded
    bool                    mShowAfterLoad;
-   bool                    mIntrinsicallySized; 
+   bool                    mIntrinsicallySized;
    bool                    mCenterAfterLoad;
    bool                    mIsHiddenWindow;
    bool                    mLockedUntilChromeLoad;
    bool                    mIgnoreXULSize;
    bool                    mIgnoreXULPosition;
    bool                    mChromeFlagsFrozen;
    bool                    mIgnoreXULSizeMode;
    // mDestroying is used to prevent reentry into into Destroy(), which can
--- a/xpfe/components/directory/nsDirectoryViewer.cpp
+++ b/xpfe/components/directory/nsDirectoryViewer.cpp
@@ -83,75 +83,75 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
     NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIHTTPIndex)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTION(nsHTTPIndex, mInner)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsHTTPIndex)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsHTTPIndex)
 
 NS_IMETHODIMP
-nsHTTPIndex::GetInterface(const nsIID &anIID, void **aResult ) 
+nsHTTPIndex::GetInterface(const nsIID &anIID, void **aResult )
 {
     if (anIID.Equals(NS_GET_IID(nsIFTPEventSink))) {
         // If we don't have a container to store the logged data
         // then don't report ourselves back to the caller
 
         if (!mRequestor)
           return NS_ERROR_NO_INTERFACE;
         *aResult = static_cast<nsIFTPEventSink*>(this);
         NS_ADDREF(this);
         return NS_OK;
     }
 
     if (anIID.Equals(NS_GET_IID(nsIPrompt))) {
-        
-        if (!mRequestor) 
+
+        if (!mRequestor)
             return NS_ERROR_NO_INTERFACE;
 
         nsCOMPtr<nsPIDOMWindowOuter> aDOMWindow = do_GetInterface(mRequestor);
-        if (!aDOMWindow) 
+        if (!aDOMWindow)
             return NS_ERROR_NO_INTERFACE;
 
         nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
-        
+
         return wwatch->GetNewPrompter(aDOMWindow, (nsIPrompt**)aResult);
-    }  
+    }
 
     if (anIID.Equals(NS_GET_IID(nsIAuthPrompt))) {
-        
-        if (!mRequestor) 
+
+        if (!mRequestor)
             return NS_ERROR_NO_INTERFACE;
 
         nsCOMPtr<nsPIDOMWindowOuter> aDOMWindow = do_GetInterface(mRequestor);
-        if (!aDOMWindow) 
+        if (!aDOMWindow)
             return NS_ERROR_NO_INTERFACE;
 
         nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
-        
+
         return wwatch->GetNewAuthPrompter(aDOMWindow, (nsIAuthPrompt**)aResult);
-    }  
+    }
 
     if (anIID.Equals(NS_GET_IID(nsIProgressEventSink))) {
 
-        if (!mRequestor) 
+        if (!mRequestor)
             return NS_ERROR_NO_INTERFACE;
 
         nsCOMPtr<nsIProgressEventSink> sink = do_GetInterface(mRequestor);
-        if (!sink) 
+        if (!sink)
             return NS_ERROR_NO_INTERFACE;
-        
+
         *aResult = sink;
         NS_ADDREF((nsISupports*)*aResult);
         return NS_OK;
     }
 
     return NS_ERROR_NO_INTERFACE;
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHTTPIndex::OnFTPControlLog(bool server, const char *msg)
 {
     NS_ENSURE_TRUE(mRequestor, NS_OK);
 
     nsCOMPtr<nsIGlobalObject> globalObject = do_GetInterface(mRequestor);
     NS_ENSURE_TRUE(globalObject, NS_OK);
 
     // We're going to run script via JS_CallFunctionName, so we need an
@@ -189,32 +189,32 @@ nsHTTPIndex::SetEncoding(const char *enc
 }
 
 NS_IMETHODIMP
 nsHTTPIndex::GetEncoding(char **encoding)
 {
   NS_PRECONDITION(encoding, "null ptr");
   if (! encoding)
     return(NS_ERROR_NULL_POINTER);
-  
+
   *encoding = ToNewCString(mEncoding);
   if (!*encoding)
     return(NS_ERROR_OUT_OF_MEMORY);
-  
+
   return(NS_OK);
 }
 
 NS_IMETHODIMP
 nsHTTPIndex::OnStartRequest(nsIRequest *request, nsISupports* aContext)
 {
   nsresult rv;
 
   mParser = do_CreateInstance(NS_DIRINDEXPARSER_CONTRACTID, &rv);
   if (NS_FAILED(rv)) return rv;
-  
+
   rv = mParser->SetEncoding(mEncoding.get());
   if (NS_FAILED(rv)) return rv;
 
   rv = mParser->SetListener(this);
   if (NS_FAILED(rv)) return rv;
 
   rv = mParser->OnStartRequest(request,aContext);
   if (NS_FAILED(rv)) return rv;
@@ -363,17 +363,17 @@ nsresult
 nsHTTPIndex::OnIndexAvailable(nsIRequest* aRequest, nsISupports *aContext,
                               nsIDirIndex* aIndex)
 {
   nsCOMPtr<nsIRDFResource>	parentRes = do_QueryInterface(aContext);
   if (!parentRes) {
     NS_ERROR("Could not obtain parent resource");
     return(NS_ERROR_UNEXPECTED);
   }
-  
+
   const char* baseStr;
   parentRes->GetValueConst(&baseStr);
   if (! baseStr) {
     NS_ERROR("Could not reconstruct base uri");
     return NS_ERROR_UNEXPECTED;
   }
 
   // we found the filename; construct a resource for its entry
@@ -409,30 +409,30 @@ nsHTTPIndex::OnIndexAvailable(nsIRequest
 
     str.AssignWithConversion(entryuriC.get());
 
     rv = mDirRDF->GetLiteral(str.get(), getter_AddRefs(lit));
 
     if (NS_SUCCEEDED(rv)) {
       rv = Assert(entry, kNC_URL, lit, true);
       if (NS_FAILED(rv)) return rv;
-      
+
       nsXPIDLString xpstr;
 
       // description
       rv = aIndex->GetDescription(getter_Copies(xpstr));
       if (NS_FAILED(rv)) return rv;
       if (xpstr.Last() == '/')
         xpstr.Truncate(xpstr.Length() - 1);
 
       rv = mDirRDF->GetLiteral(xpstr.get(), getter_AddRefs(lit));
       if (NS_FAILED(rv)) return rv;
       rv = Assert(entry, kNC_Description, lit, true);
       if (NS_FAILED(rv)) return rv;
-      
+
       // contentlength
       int64_t size;
       rv = aIndex->GetSize(&size);
       if (NS_FAILED(rv)) return rv;
       int64_t minus1 = UINT64_MAX;
       if (size != minus1) {
         int32_t intSize = int32_t(size);
         // XXX RDF should support 64 bit integers (bug 240160)
@@ -466,30 +466,30 @@ nsHTTPIndex::OnIndexAvailable(nsIRequest
         break;
       case nsIDirIndex::TYPE_FILE:
         rv = mDirRDF->GetLiteral(u"FILE", getter_AddRefs(lit));
         break;
       case nsIDirIndex::TYPE_SYMLINK:
         rv = mDirRDF->GetLiteral(u"SYMLINK", getter_AddRefs(lit));
         break;
       }
-      
+
       if (NS_FAILED(rv)) return rv;
       rv = Assert(entry, kNC_FileType, lit, true);
       if (NS_FAILED(rv)) return rv;
     }
 
     // Since the definition of a directory depends on the protocol, we would have
     // to do string comparisons all the time.
     // But we're told if we're a container right here - so save that fact
     if (isDirType)
       Assert(entry, kNC_IsContainer, kTrueLiteral, true);
     else
       Assert(entry, kNC_IsContainer, kFalseLiteral, true);
-    
+
 //   instead of
 //       rv = Assert(parentRes, kNC_Child, entry, true);
 //       if (NS_FAILED(rv)) return rv;
 //   defer insertion onto a timer so that the UI isn't starved
     AddElement(parentRes, kNC_Child, entry);
   }
 
   return rv;
@@ -531,17 +531,17 @@ nsHTTPIndex::~nsHTTPIndex()
         // be sure to cancel the timer, as it holds a
         // weak reference back to nsHTTPIndex
         mTimer->Cancel();
         mTimer = nullptr;
     }
 
     mConnectionList = nullptr;
     mNodeList = nullptr;
-    
+
     if (mDirRDF)
       {
         // UnregisterDataSource() may fail; just ignore errors
         mDirRDF->UnregisterDataSource(this);
       }
 }
 
 
@@ -629,17 +629,17 @@ nsHTTPIndex::Init(nsIURI* aBaseURL)
 
   rv = CommonInit();
   if (NS_FAILED(rv))	return(rv);
 
   // note: don't register DS here (singleton case)
 
   rv = aBaseURL->GetSpec(mBaseURL);
   if (NS_FAILED(rv)) return rv;
-  
+
   // Mark the base url as a container
   nsCOMPtr<nsIRDFResource> baseRes;
   mDirRDF->GetResource(mBaseURL, getter_AddRefs(baseRes));
   Assert(baseRes, kNC_IsContainer, kTrueLiteral, true);
 
   return NS_OK;
 }
 
@@ -685,20 +685,20 @@ nsHTTPIndex::GetDataSource(nsIRDFDataSou
 // This function finds the destination when following a given nsIRDFResource
 // If the resource has a URL attribute, we use that. If not, just use
 // the uri.
 //
 // Do NOT try to get the destination of a uri in any other way
 void nsHTTPIndex::GetDestination(nsIRDFResource* r, nsXPIDLCString& dest) {
   // First try the URL attribute
   nsCOMPtr<nsIRDFNode> node;
-  
+
   GetTarget(r, kNC_URL, true, getter_AddRefs(node));
   nsCOMPtr<nsIRDFLiteral> url;
-  
+
   if (node)
     url = do_QueryInterface(node);
 
   if (!url) {
      const char* temp;
      r->GetValueConst(&temp);
      dest.Adopt(temp ? strdup(temp) : 0);
   } else {
@@ -1125,27 +1125,27 @@ nsHTTPIndex::RemoveObserver(nsIRDFObserv
 	nsresult	rv = NS_ERROR_UNEXPECTED;
 	if (mInner)
 	{
 		rv = mInner->RemoveObserver(aObserver);
 	}
 	return(rv);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHTTPIndex::HasArcIn(nsIRDFNode *aNode, nsIRDFResource *aArc, bool *result)
 {
   if (!mInner) {
     *result = false;
     return NS_OK;
   }
   return mInner->HasArcIn(aNode, aArc, result);
 }
 
-NS_IMETHODIMP 
+NS_IMETHODIMP
 nsHTTPIndex::HasArcOut(nsIRDFResource *aSource, nsIRDFResource *aArc, bool *result)
 {
     if (aArc == kNC_Child && isWellknownContainerURI(aSource)) {
       *result = true;
       return NS_OK;
     }
 
     if (mInner) {
@@ -1253,17 +1253,17 @@ nsDirectoryViewerFactory::~nsDirectoryVi
 NS_IMPL_ISUPPORTS(nsDirectoryViewerFactory, nsIDocumentLoaderFactory)
 
 
 
 NS_IMETHODIMP
 nsDirectoryViewerFactory::CreateInstance(const char *aCommand,
                                          nsIChannel* aChannel,
                                          nsILoadGroup* aLoadGroup,
-                                         const nsACString& aContentType, 
+                                         const nsACString& aContentType,
                                          nsIDocShell* aContainer,
                                          nsISupports* aExtraInfo,
                                          nsIStreamListener** aDocListenerResult,
                                          nsIContentViewer** aDocViewerResult)
 {
   nsresult rv;
 
   bool viewSource = FindInReadable(NS_LITERAL_CSTRING("view-source"),
@@ -1272,71 +1272,71 @@ nsDirectoryViewerFactory::CreateInstance
   if (!viewSource &&
       Preferences::GetInt("network.dir.format", FORMAT_XUL) == FORMAT_XUL) {
     // ... and setup the original channel's content type
     (void)aChannel->SetContentType(NS_LITERAL_CSTRING("application/vnd.mozilla.xul+xml"));
 
     // This is where we shunt the HTTP/Index stream into our datasource,
     // and open the directory viewer XUL file as the content stream to
     // load in its place.
-    
+
     // Create a dummy loader that will load a stub XUL document.
     nsCOMPtr<nsICategoryManager> catMan(do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv));
     if (NS_FAILED(rv))
       return rv;
     nsXPIDLCString contractID;
     rv = catMan->GetCategoryEntry("Gecko-Content-Viewers", "application/vnd.mozilla.xul+xml",
                                   getter_Copies(contractID));
     if (NS_FAILED(rv))
       return rv;
 
     nsCOMPtr<nsIDocumentLoaderFactory> factory(do_GetService(contractID, &rv));
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIURI> uri;
     rv = NS_NewURI(getter_AddRefs(uri), "chrome://communicator/content/directory/directory.xul");
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIChannel> channel;
     rv = NS_NewChannel(getter_AddRefs(channel),
                        uri,
                        nsContentUtils::GetSystemPrincipal(),
                        nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_IS_NULL,
                        nsIContentPolicy::TYPE_OTHER,
                        aLoadGroup);
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIStreamListener> listener;
     rv = factory->CreateInstance(aCommand, channel, aLoadGroup,
                                  NS_LITERAL_CSTRING("application/vnd.mozilla.xul+xml"),
                                  aContainer, aExtraInfo, getter_AddRefs(listener),
                                  aDocViewerResult);
     if (NS_FAILED(rv)) return rv;
 
     rv = channel->AsyncOpen2(listener);
     if (NS_FAILED(rv)) return rv;
-    
+
     // Create an HTTPIndex object so that we can stuff it into the script context
     nsCOMPtr<nsIURI> baseuri;
     rv = aChannel->GetURI(getter_AddRefs(baseuri));
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIInterfaceRequestor> requestor = do_QueryInterface(aContainer,&rv);
     if (NS_FAILED(rv)) return rv;
-    
+
     nsCOMPtr<nsIHTTPIndex> httpindex;
     rv = nsHTTPIndex::Create(baseuri, requestor, getter_AddRefs(httpindex));
     if (NS_FAILED(rv)) return rv;
-    
+
     // Now shanghai the stream into our http-index parsing datasource
     // wrapper beastie.
     listener = do_QueryInterface(httpindex,&rv);
     *aDocListenerResult = listener.get();
     NS_ADDREF(*aDocListenerResult);
-    
+
     return NS_OK;
   }
 
   // setup the original channel's content type
   (void)aChannel->SetContentType(NS_LITERAL_CSTRING("text/html"));
 
   // Otherwise, lets use the html listing
   nsCOMPtr<nsICategoryManager> catMan(do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv));
@@ -1345,17 +1345,17 @@ nsDirectoryViewerFactory::CreateInstance
   nsXPIDLCString contractID;
   rv = catMan->GetCategoryEntry("Gecko-Content-Viewers", "text/html",
                                 getter_Copies(contractID));
   if (NS_FAILED(rv))
     return rv;
 
   nsCOMPtr<nsIDocumentLoaderFactory> factory(do_GetService(contractID, &rv));
   if (NS_FAILED(rv)) return rv;
-  
+
   nsCOMPtr<nsIStreamListener> listener;
 
   if (viewSource) {
     rv = factory->CreateInstance("view-source", aChannel, aLoadGroup,
                                  NS_LITERAL_CSTRING("text/html; x-view-type=view-source"),
                                  aContainer, aExtraInfo, getter_AddRefs(listener),
                                  aDocViewerResult);
   } else {
--- a/xpfe/components/directory/nsDirectoryViewer.h
+++ b/xpfe/components/directory/nsDirectoryViewer.h
@@ -104,17 +104,17 @@ public:
     // nsIHTTPIndex interface
     NS_DECL_NSIHTTPINDEX
 
     // NSIRDFDataSource interface
     NS_DECL_NSIRDFDATASOURCE
 
     NS_DECL_NSIREQUESTOBSERVER
     NS_DECL_NSISTREAMLISTENER
-    
+
     NS_DECL_NSIDIRINDEXLISTENER
     NS_DECL_NSIINTERFACEREQUESTOR
     NS_DECL_NSIFTPEVENTSINK
 
     // nsISupports interface
     NS_DECL_CYCLE_COLLECTING_ISUPPORTS
     NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsHTTPIndex, nsIHTTPIndex)
 };