[BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
Generic ThreadUnsafe Singleton
https://bugs.webkit.org/show_bug.cgi?id=100145

Patch by Parth Patel <parpatel@rim.com> on 2012-10-24
Reviewed by Rob Buis.

Extending the singletons to generic singleton and changing
getInstance() in IconDatabaseClientBlackBerry to instance()
to match the generic singleton template.

Reviewed Internally by Yong Li.

Source/WebCore:

Tests are not modified and added as there was no behavioural change.

* platform/blackberry/SharedTimerBlackBerry.cpp:
(SharedTimerBlackBerry):
(WebCore):

Source/WebKit/blackberry:

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPage::initializeIconDataBase):
* WebCoreSupport/IconDatabaseClientBlackBerry.cpp:
(WebCore):
* WebCoreSupport/IconDatabaseClientBlackBerry.h:
(IconDatabaseClientBlackBerry):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Move the QQuickWebViewExperimental pointer to QQuickWebViewPrivate
https://bugs.webkit.org/show_bug.cgi?id=100253

Reviewed by Kenneth Rohde Christiansen.

Source/WebKit2:

We'll need to avoid placing data in QQuickWebView to preserve
its binary compatibility once it's public.
Also make the QQuickWebViewExperimental constructor private.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewExperimental::QQuickWebViewExperimental):
(QQuickWebView::QQuickWebView):
(QQuickWebView::experimental):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):

Tools:

* WebKitTestRunner/qt/PlatformWebViewQt.cpp:
(WTR::WrapperWindow::handleStatusChanged):
Use QQuickWebView::experimental rather than creating a new instance.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Rename GeolocationControllerClientBlackBerry to GeolocationClientBlackBerry
https://bugs.webkit.org/show_bug.cgi?id=100250

Patch by Otto Derek Cheung <otcheung@rim.com> on 2012-10-24
Reviewed by Rob Buis.

Source/WebKit:

Rename GeolocationControllerClientBlackBerry to GeolocationClientBlackBerry
to prevent confusion.

PR 230196

* PlatformBlackBerry.cmake:

Source/WebKit/blackberry:

Rename GeolocationControllerClientBlackBerry to GeolocationClientBlackBerry
to prevent confusion.
PR 230196

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::init):
* Api/WebPage_p.h:
(WebCore):
* WebCoreSupport/ChromeClientBlackBerry.cpp:
* WebCoreSupport/GeolocationClientBlackBerry.cpp: Renamed from Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.cpp.
(frameOrigin):
(GeolocationClientBlackBerry::GeolocationClientBlackBerry):
(GeolocationClientBlackBerry::geolocationDestroyed):
(GeolocationClientBlackBerry::startUpdating):
(GeolocationClientBlackBerry::stopUpdating):
(GeolocationClientBlackBerry::lastPosition):
(GeolocationClientBlackBerry::requestPermission):
(GeolocationClientBlackBerry::cancelPermissionRequest):
(GeolocationClientBlackBerry::onLocationUpdate):
(GeolocationClientBlackBerry::onLocationError):
(GeolocationClientBlackBerry::onPermission):
(GeolocationClientBlackBerry::setEnableHighAccuracy):
* WebCoreSupport/GeolocationClientBlackBerry.h: Renamed from Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h.
(WebKit):
(WebCore):
(GeolocationClientBlackBerry):
(WebCore::GeolocationClientBlackBerry::tracker):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
encode should take an ArgumentEncoder reference
https://bugs.webkit.org/show_bug.cgi?id=100183

Reviewed by Jessie Berlin.

* Platform/CoreIPC/ArgumentCoder.h:
(CoreIPC::ArgumentCoder::encode):
* Platform/CoreIPC/Arguments.h:
(CoreIPC::Arguments0::encode):
(CoreIPC::Arguments1::encode):
(CoreIPC::Arguments2::encode):
(CoreIPC::Arguments3::encode):
(CoreIPC::Arguments4::encode):
(CoreIPC::Arguments5::encode):
(CoreIPC::Arguments6::encode):
(CoreIPC::Arguments7::encode):
(CoreIPC::Arguments8::encode):
(CoreIPC::Arguments10::encode):
* Platform/CoreIPC/Attachment.cpp:
(CoreIPC::Attachment::encode):
* Platform/CoreIPC/Attachment.h:
(Attachment):
* Platform/CoreIPC/DataReference.cpp:
(CoreIPC::DataReference::encode):
* Platform/CoreIPC/DataReference.h:
(DataReference):
* Platform/CoreIPC/StringReference.cpp:
(CoreIPC::StringReference::encode):
* Platform/CoreIPC/StringReference.h:
(StringReference):
* Platform/CoreIPC/mac/MachPort.h:
(CoreIPC::MachPort::encode):
* Platform/SharedMemory.h:
(Handle):
* Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::Handle::encode):
* PluginProcess/PluginCreationParameters.cpp:
(WebKit::PluginCreationParameters::encode):
* PluginProcess/PluginCreationParameters.h:
(PluginCreationParameters):
* Shared/DictionaryPopupInfo.cpp:
(WebKit::DictionaryPopupInfo::encode):
* Shared/DictionaryPopupInfo.h:
(DictionaryPopupInfo):
* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
* Shared/EditorState.h:
(EditorState):
* Shared/FontInfo.cpp:
(WebKit::FontInfo::encode):
* Shared/FontInfo.h:
(FontInfo):
* Shared/LayerTreeContext.h:
(LayerTreeContext):
* Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
* Shared/Network/NetworkProcessCreationParameters.h:
(NetworkProcessCreationParameters):
* Shared/OriginAndDatabases.cpp:
(WebKit::OriginAndDatabases::encode):
* Shared/OriginAndDatabases.h:
(OriginAndDatabases):
* Shared/PlatformPopupMenuData.cpp:
(WebKit::PlatformPopupMenuData::encode):
* Shared/PlatformPopupMenuData.h:
(PlatformPopupMenuData):
* Shared/Plugins/NPIdentifierData.cpp:
(WebKit::NPIdentifierData::encode):
* Shared/Plugins/NPIdentifierData.h:
(NPIdentifierData):
* Shared/Plugins/NPVariantData.cpp:
(WebKit::NPVariantData::encode):
* Shared/Plugins/NPVariantData.h:
(NPVariantData):
* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
* Shared/Plugins/PluginProcessCreationParameters.h:
(PluginProcessCreationParameters):
* Shared/PrintInfo.cpp:
(WebKit::PrintInfo::encode):
* Shared/PrintInfo.h:
(PrintInfo):
* Shared/SandboxExtension.h:
(Handle):
(HandleArray):
* Shared/SecurityOriginData.cpp:
(WebKit::SecurityOriginData::encode):
* Shared/SecurityOriginData.h:
(SecurityOriginData):
* Shared/SessionState.cpp:
(WebKit::SessionState::encode):
* Shared/SessionState.h:
(SessionState):
* Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::encode):
* Shared/ShareableBitmap.h:
(Handle):
* Shared/SharedWorkerProcessCreationParameters.cpp:
(WebKit::SharedWorkerProcessCreationParameters::encode):
* Shared/SharedWorkerProcessCreationParameters.h:
(SharedWorkerProcessCreationParameters):
* Shared/StatisticsData.cpp:
(WebKit::StatisticsData::encode):
* Shared/StatisticsData.h:
(StatisticsData):
* Shared/StringPairVector.h:
(WebKit::StringPairVector::encode):
* Shared/UpdateInfo.cpp:
(WebKit::UpdateInfo::encode):
* Shared/UpdateInfo.h:
(UpdateInfo):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::encode):
* Shared/WebContextMenuItemData.h:
(WebContextMenuItemData):
* Shared/WebEvent.cpp:
(WebKit::WebEvent::encode):
* Shared/WebEvent.h:
(WebEvent):
(WebMouseEvent):
(WebWheelEvent):
(WebKeyboardEvent):
(WebGestureEvent):
(WebPlatformTouchPoint):
(WebTouchEvent):
* Shared/WebGeolocationPosition.cpp:
(WebKit::WebGeolocationPosition::Data::encode):
* Shared/WebGeolocationPosition.h:
(Data):
* Shared/WebGestureEvent.cpp:
(WebKit::WebGestureEvent::encode):
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::encode):
* Shared/WebHitTestResult.h:
(Data):
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::encode):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::encode):
* Shared/WebNavigationDataStore.h:
(WebKit::WebNavigationDataStore::encode):
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters):
* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode):
* Shared/WebPageGroupData.h:
(WebPageGroupData):
* Shared/WebPopupItem.cpp:
(WebKit::WebPopupItem::encode):
* Shared/WebPopupItem.h:
* Shared/WebPreferencesStore.cpp:
(WebKit::WebPreferencesStore::encode):
* Shared/WebPreferencesStore.h:
(WebPreferencesStore):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
* Shared/WebProcessCreationParameters.h:
(WebProcessCreationParameters):
* Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::encode):
* Shared/mac/AttributedString.h:
(AttributedString):
* Shared/mac/AttributedString.mm:
(WebKit::AttributedString::encode):
* Shared/mac/ColorSpaceData.h:
(ColorSpaceData):
* Shared/mac/ColorSpaceData.mm:
(WebKit::ColorSpaceData::encode):
* Shared/mac/LayerTreeContextMac.mm:
(WebKit::LayerTreeContext::encode):
* Shared/mac/PlatformCertificateInfo.h:
(PlatformCertificateInfo):
* Shared/mac/PlatformCertificateInfo.mm:
(WebKit::PlatformCertificateInfo::encode):
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::Handle::encode):
(WebKit::SandboxExtension::HandleArray::encode):
* Shared/mac/SecItemRequestData.cpp:
(WebKit::SecItemRequestData::encode):
* Shared/mac/SecItemRequestData.h:
* Shared/mac/SecItemResponseData.cpp:
(WebKit::SecItemResponseData::encode):
* Shared/mac/SecItemResponseData.h:
(SecItemResponseData):
* Shared/mac/SecKeychainItemRequestData.cpp:
(WebKit::SecKeychainItemRequestData::encode):
* Shared/mac/SecKeychainItemRequestData.h:
* Shared/mac/SecKeychainItemResponseData.cpp:
(WebKit::SecKeychainItemResponseData::encode):
* Shared/mac/SecKeychainItemResponseData.h:
(SecKeychainItemResponseData):
* UIProcess/WebContextUserMessageCoders.h:
(WebKit::WebContextUserMessageEncoder::encode):
* WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
(WebKit::InjectedBundleUserMessageEncoder::encode):
* WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::Parameters::encode):
* WebProcess/Plugins/Plugin.h:
(Parameters):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r131982): Skip SVG/SvgNestedUse.html performancetest since it is crashing
https://bugs.webkit.org/show_bug.cgi?id=100262

Unreviewed.

Skip until proper fix.

* Skipped: Add SVG/SvgNestedUse.html

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Typos in user-visible strings: "coordintate"
https://bugs.webkit.org/show_bug.cgi?id=100252

Patch by Priit Laes <plaes@plaes.org> on 2012-10-24
Reviewed by Martin Robinson.

s/coordintate/coordinate

* webkit/webkithittestresult.cpp:
(webkit_hit_test_result_class_init):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Explicitly disable accelerated animations in DRT
https://bugs.webkit.org/show_bug.cgi?id=100241

Reviewed by Adrienne Walker.

Disable accelerated animations by default in DRT.

* DumpRenderTree/chromium/DumpRenderTree.cpp:
(main):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::setAcceleratedAnimationEnabled):
* DumpRenderTree/chromium/TestShell.h:
(TestShell):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MathML] Timeouts on linux after r132264
https://bugs.webkit.org/show_bug.cgi?id=100202

Reviewed by Eric Seidel.

Source/WebCore:

When building a stretched operator, such as a large parenthesis or bracket, we need to
check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
can occur if the glyph is missing on the host system.

Tested by existing tests.

* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):

LayoutTests:

The failing tests no longer timeout.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move a few more WebProcess sub-objects to be MessageReceivers
https://bugs.webkit.org/show_bug.cgi?id=100186

Reviewed by Anders Carlsson.

* WebProcess/Battery/WebBatteryManager.cpp:
(WebKit::WebBatteryManager::WebBatteryManager):
* WebProcess/Battery/WebBatteryManager.h:
(WebBatteryManager):
* WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
(WebKit::WebIconDatabaseProxy::WebIconDatabaseProxy):
(WebKit):
* WebProcess/IconDatabase/WebIconDatabaseProxy.h:
(WebIconDatabaseProxy):
* WebProcess/NetworkInfo/WebNetworkInfoManager.cpp:
(WebKit::WebNetworkInfoManager::WebNetworkInfoManager):
* WebProcess/NetworkInfo/WebNetworkInfoManager.h:
(WebNetworkInfoManager):
* WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::WebNotificationManager):
* WebProcess/Notifications/WebNotificationManager.h:
(WebNotificationManager):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage):
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestManager::WebSoupRequestManager):
* WebProcess/soup/WebSoupRequestManager.h:
(WebSoupRequestManager):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Add a strategy for shared workers
        https://bugs.webkit.org/show_bug.cgi?id=100165

        Reviewed by Brady Eidson.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Incorrect conditional use of LogFTP
https://bugs.webkit.org/show_bug.cgi?id=100260

Patch by Cosmin Truta <ctruta@rim.com> on 2012-10-24
Reviewed by Alexey Proskuryakov.

Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
without breaking the build.

* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Show an error when there are no completed builds in the past 20 runs
https://bugs.webkit.org/show_bug.cgi?id=100266

Reviewed by Dimitri Glazkov.

Right now we get a cryptic JS error in the console when loading the gtk port. This at least gives an error in
the notification stream. We should probably tweak this UI to make it so we can make
errors in the notification stream stick out (e.g. make the text red).

We should also consider making the number of runs to load dynamic (e.g. if 20 runs don't work,
try 40).

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Use include paths relative to Source/ in the TestRunner's public API
https://bugs.webkit.org/show_bug.cgi?id=100079

Reviewed by Adam Barth.

For a inside-chromium build, we usually don't add the WebKit API paths
as include paths, so including files by name only does not work.

Eventually we might want to move to a model where all includes are
relative to Source/, so we're using that here already now.

* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
* DumpRenderTree/chromium/TestRunner/public/WebEventSender.h:
* DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash when trying to write exception message to null console
https://bugs.webkit.org/show_bug.cgi?id=99658

Patch by Toni Barzic <tbarzic@chromium.org> on 2012-10-24
Reviewed by Adam Barth.

Source/WebCore:

DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
The exception task could be processes after current window in the frame changes, and console in the document window is nulled.

Test: fast/workers/worker-exception-during-navigation.html

* dom/Document.cpp:
(WebCore::Document::addMessage):

LayoutTests:

The test creates bunch of workers that throw an exception as soon as they are loaded and then tries to change the current document.
The test passes if there is no crash.
Unfortuantely, the test is inherently flaky and may produce some false positive results (but should never fail if there is no bug).

* fast/workers/resources/worker-exception.js: Added.
* fast/workers/worker-exception-during-navigation-expected.txt: Added.
* fast/workers/worker-exception-during-navigation.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreveiewed gardening. Fixing linter, marking 2 mathml tests as flaky crashers on debug,
and adding passing Lion expectations for a third mathml test.

* platform/chromium/TestExpectations:
* platform/chromium-mac-lion/mathml/presentation/fenced-expected.png: Modified.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Code cleanup after r132165
https://bugs.webkit.org/show_bug.cgi?id=100135

Reviewed by Geoffrey Garen.

Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.

Code clean up without functional changes, therefore no new tests.

* xml/parser/MarkupTokenBase.h:
(WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
(WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
(WebCore::MarkupTokenBase::appendToName): Elimintated inline.
(WebCore::MarkupTokenBase::name): Elimintated inline.
(WebCore::MarkupTokenBase::nameString): Elimintated inline.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Respect image orientation in image dragging code
https://bugs.webkit.org/show_bug.cgi?id=100200

Reviewed by Tony Chang.

Based on the corresponding code in DragImageMac.mm.  The image
rotation code isn't hooked up yet, so no observable effect for now.

* platform/chromium/DragImageChromiumSkia.cpp:
(WebCore::createDragImageFromImage):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixing the Chromium build after typo in r132367.

* WebCore.gypi:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout tests to verify scaled composited layers have crisp text
https://bugs.webkit.org/show_bug.cgi?id=96940

Reviewed by Adrienne Walker.

Chromium bug: crbug.com/149943

* compositing/text-on-scaled-layer-expected.html: Added.
* compositing/text-on-scaled-layer.html: Added.
* compositing/text-on-scaled-surface-expected.html: Added.
* compositing/text-on-scaled-surface.html: Added.
* platform/chromium/TestExpectations:
* platform/mac/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] SVG repaint issues
https://bugs.webkit.org/show_bug.cgi?id=99874

Reviewed by Levi Weintraub.

Source/WebCore:

RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
but in doing so it ends up accumulating subpixel rounding deltas twice: first for
adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
painting at the wrong location.

This can be avoided by using localToBorderBoxTransform() directly, which (unlike
localToParentTransform()) doesn't perform rounding.

No new tests: existing pixel results cover this change after rebaseline.

* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):

LayoutTests:

* platform/chromium-linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png:
* platform/chromium-linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png:
* platform/chromium-win/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.png:
* platform/chromium-win/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.png:
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132377 268f45cc-cd09-0410-ab3c-d52691b4dbfc