summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-05-02 08:59:51 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-05-02 08:59:51 (GMT)
commit133c95d4e422300305620b5d6bebad65b31f8278 (patch)
treeb8ee81cfc343cdb0971dde87a29fddec87547d4c /src/3rdparty/webkit/WebCore
parentf101d46ccd4795fc672b5b6c9e24151df319d725 (diff)
parentbc6a6f5fea11ec90f91ca3a0765afcbf620c10a5 (diff)
downloadQt-133c95d4e422300305620b5d6bebad65b31f8278.zip
Qt-133c95d4e422300305620b5d6bebad65b31f8278.tar.gz
Qt-133c95d4e422300305620b5d6bebad65b31f8278.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-webkit into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-webkit: Updated WebKit to 540ae4ccd25609e1bfe1673195ce126255e36774 Updated WebKit to 2c346f58ae70470d88dcd856bfe59b04a144b65a Updated WebKit to 1a40220a82197023c1b1ac6eff027be6dd3168d3 Updated WebKit to 2992802f35fd47e32bb94a4b1f48cce7ec7fda9d Updated WebKit to 862268aeb7150d3795d05bfc05f661bb5c598a27
Diffstat (limited to 'src/3rdparty/webkit/WebCore')
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog807
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.gypi2
-rw-r--r--src/3rdparty/webkit/WebCore/WebCore.pro8
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/npapi.h4
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.cpp73
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.h7
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/SelectElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ViewportArguments.cpp120
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ViewportArguments.h74
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp444
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSGrammar.h4
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/ColorData.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c5
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp106
-rw-r--r--src/3rdparty/webkit/WebCore/generated/XPathGrammar.h4
-rw-r--r--src/3rdparty/webkit/WebCore/generated/tokenizer.cpp2382
-rw-r--r--src/3rdparty/webkit/WebCore/history/qt/HistoryItemQt.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/page/ChromeClient.h11
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusController.cpp119
-rw-r--r--src/3rdparty/webkit/WebCore/page/FocusController.h5
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.cpp1
-rw-r--r--src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp95
-rw-r--r--src/3rdparty/webkit/WebCore/page/SpatialNavigation.h2
-rw-r--r--src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/Arena.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/StaticConstructors.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp306
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm5
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/QWebPageClient.h1
-rw-r--r--src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp24
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/platform/text/TextStream.h2
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginView.h3
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/symbian/PluginViewSymbian.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp16
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.h1
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp9
57 files changed, 3551 insertions, 1283 deletions
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index f52872c..b8825bd 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,810 @@
+2010-03-27 Robert Hogan <robert@webkit.org>
+
+ Reviewed by nobody, fix typo in previous commit.
+
+ Allow plugins implemented by the application, such as mimetype 'x-qt-plugin',
+ when pluginsEnabled is false
+
+ Fix parentheses typo in r56661. This happened while rebasing and was not present
+ in the reviewed patch, so committing unreviewed.
+
+ https://bugs.webkit.org/attachment.cgi?id=49515
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::requestObject):
+
+2010-03-26 Robert Hogan <robert@roberthogan.net>
+
+ Reviewed by Simon Hausmann.
+
+ Allow plugins implemented by the application, such as mimetype 'x-qt-plugin',
+ when pluginsEnabled is false.
+
+ The purpose of disabling plugins is to prevent the execution of third-party code
+ that may be untrustworthy. Qt plugins are implemented by the client rather than
+ loaded from an external source, so the client should have the opportunity to
+ consider them separately from other plugins.
+
+ Add a function MimeTypeRegistry::isApplicationPluginMIMEType() that WebKit
+ uses in conjunction with arePluginsEnabled() to determine if it should attempt
+ to load a plugin. If isApplicationPluginMIMEType() returns true, WebKit will load
+ the plugin even if arePluginsEnabled() is false.
+
+ Currently, only Qt has application-implemented plugins: these use the mimetype
+ 'x-qt-plugin' and 'x-qt-styled-widget'. This patch permits Qt clients'
+ reimplementation of QWebPage::createPlugin() to decide whether or not
+ to create a Qt plugin, even when arePluginsEnabled is false.
+
+ For all platforms apart from Qt, isApplicationPluginMIMEType() returns false.
+
+ https://bugs.webkit.org/show_bug.cgi?id=32196
+
+ Test: plugins/application-plugin-plugins-disabled.html
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::requestObject):
+ * platform/MIMETypeRegistry.h:
+ * platform/brew/MIMETypeRegistryBrew.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/chromium/MIMETypeRegistryChromium.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/gtk/MIMETypeRegistryGtk.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/haiku/MIMETypeRegistryHaiku.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/mac/MIMETypeRegistryMac.mm:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/qt/MIMETypeRegistryQt.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/win/MIMETypeRegistryWin.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/wince/MIMETypeRegistryWince.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+ * platform/wx/MimeTypeRegistryWx.cpp:
+ (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
+
+2010-04-29 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] GraphicsLayer: flicker when starting an animation before the previous one ended.
+ https://bugs.webkit.org/show_bug.cgi?id=38076
+
+ This was due to the cude in the removeAnimations functions, which called deleteLater() without stopping the
+ animation synchronously. The delay between the call to that function and the actual call to the animation's destructor
+ is when the flicker occured. We fix this by calling stop() synchronously, and making sure that the value is reverted
+ upon stop (updateState) and not upon the object's destruction.
+
+ http://staff.washington.edu/fmf/2009/03/25/iphone-3d-css-transformations/ now doesn't flicker when
+ the animation is toggled frequently.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::TransformAnimationQt::~TransformAnimationQt):
+ (WebCore::TransformAnimationQt::applyFrame):
+ (WebCore::TransformAnimationQt::updateState):
+ (WebCore::OpacityAnimationQt::~OpacityAnimationQt):
+ (WebCore::OpacityAnimationQt::updateState):
+ (WebCore::GraphicsLayerQt::removeAnimationsForProperty):
+ (WebCore::GraphicsLayerQt::removeAnimationsForKeyframes):
+
+2010-04-29 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ Reverse animations don't work in some use cases
+ https://bugs.webkit.org/show_bug.cgi?id=38075
+
+ This was due to a code path special-casing reverse animations, that became obselete when we aligned our animation code
+ with the CA implementation. That special case code path is now a bug - and this patch removes it.
+
+ http://staff.washington.edu/fmf/2009/03/25/iphone-3d-css-transformations/ now runs the reverse
+ animation correctly.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::TransformAnimationQt::applyFrame):
+
+2010-04-29 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Speed up text layouting
+ https://bugs.webkit.org/show_bug.cgi?id=31719
+
+ Use QFontMetrics::width() for the text width calculation instead
+ of QTextLayout. This avoids expensive bearing calculations and the
+ line breaking code.
+
+ * platform/graphics/qt/FontQt.cpp:
+ (WebCore::Font::floatWidthForComplexText):
+
+2010-04-29 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ [Qt] REGRESSION(r57638): tst_qwebframe::objectDeleted() fails
+ https://bugs.webkit.org/show_bug.cgi?id=38316
+
+ Accessing properties of a deleted objects doesn't throw an exception
+ anymore.
+
+ Continue to expose the QObject class wrapper for objects that
+ previously existed but don't exist anymore. QtClass is safe to
+ use with a deleted QObject.
+
+ * bridge/qt/qt_instance.cpp:
+ (JSC::Bindings::QtInstance::getClass): Return null only if m_class
+ doesn't exist yet and there's no m_object.
+
+2010-04-28 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] GraphicsLayer: preserves-3d and backface visibility
+ https://bugs.webkit.org/show_bug.cgi?id=35312
+
+ Implement preserves-3d by maintaining the 3D transformation heirarchy inside GraphicsLayerQt, and extrapolating
+ the relative QTransform. When the extrapolation fails (un-invertible matrix) we ignore the transformation change.
+
+ WebKitSite/blog-files/3d-transforms test now work with Qt.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::GraphicsLayerQtImpl::updateTransform):
+ (WebCore::GraphicsLayerQtImpl::opaqueArea):
+ (WebCore::GraphicsLayerQtImpl::boundingRect):
+ (WebCore::GraphicsLayerQtImpl::paint):
+ (WebCore::GraphicsLayerQtImpl::flushChanges):
+
+2010-04-28 Justin McPherson <justin.mcpherson@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix detection of Qt 4.7's multimedia libraries
+
+ QtMultimedia has been split into an additional media services library, which
+ we're using. mediaservices depends on multimedia.
+
+ * WebCore.pro:
+
+2010-04-26 Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ [Qt] Fix compilation against Qt 4.7
+
+ Some QtMultimedia things have been moved into QtMediaServices
+ https://bugs.webkit.org/show_bug.cgi?id=38111
+
+ * WebCore.pro:
+ * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
+ (WebCore::MediaPlayerPrivate::supportsType):
+ (WebCore::MediaPlayerPrivate::totalBytes):
+
+2010-04-21 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Make sure WebKit is not compiled using C++0x.
+ https://bugs.webkit.org/show_bug.cgi?id=37867
+
+ As the rest of Qt compiles in the C++0x mode, people might start
+ compiling it in this mode. WebKit don't support this yet.
+
+ Patch by Thiago Macieira <thiago.macieira@nokia.com>
+
+ * WebCore.pro:
+
+2010-04-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Hide the OpenGL and QtMultimedia dependencies from syncqt.
+
+ This prevents the dependent headers from being included by
+ qt/include/QtWebKit/QtWebKit
+
+ * WebCore.pro:
+
+2010-04-27 Thomas Zander <t.zander@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix linking on Symbian on Linux using the Makefile based mkspec.
+
+ Disable thumb mode due to library size limitations, just like it's done
+ for the sbs/sbsv2 based build system.
+
+ * WebCore.pro:
+
+2010-04-26 Ruben Van Boxem <vanboxem.ruben@gmail.com>
+
+ Reviewed by Adam Roben.
+
+ Fixes for Win64 compilation under gcc (mingw-w64)
+
+ * WebCore/bridge/npapi.h: for win64 compatibility, mirroring mozilla-central, see Mozilla bug 560298
+ * WebCore/platform/Arena.h: uword is used to cast from pointers here. unsigned long is 32-bit on Windows (but 64-bit on mac), and too small to hold a pointer. uintptr_t is 32-bit on 32-bit systems (mac, linux and windows) and 64-bit on all 64-bit systems
+ * WebCore/platform/graphics/transforms/TransformationMatrix.h: let mingw-w64/w32 use MSVC codepath
+ * WebCore/platform/text/TextStream.cpp: let mingw-w64 use MSVC codepath
+ * WebCore/platform/text/TextStream.h: let mingw-w64 use MSVC codepath
+ * WebCore/plugins/PluginView.cpp: fix pointer casts on WIN64 and let mingw-w64 use MSVC codepath
+ * WebCore/plugins/win/PluginViewWin.cpp: fix pointer casts on WIN64
+
+2010-01-07 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ [RVCT] ACID3 test crash
+ https://bugs.webkit.org/show_bug.cgi?id=33280
+
+ Workaround developed by Yongjun Zhang.
+
+ * dom/Element.cpp:
+ (WebCore::Element::setAttribute):
+
+2010-04-26 Markus Goetz <Markus.Goetz@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] HTTP pipelining efficiency increase
+ https://bugs.webkit.org/show_bug.cgi?id=38062
+
+ Increase number of network requests that are fed into
+ QNetworkAccessManager.
+
+ * platform/network/qt/ResourceRequestQt.cpp:
+ (WebCore::initializeMaximumHTTPConnectionCountPerHost):
+
+2010-04-26 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Fix compilation with RVCT 4
+ https://bugs.webkit.org/show_bug.cgi?id=37727
+
+ Swap extern and declspec to fix visibility of symbol imported from QtGui.
+
+ * page/qt/EventHandlerQt.cpp:
+
+2010-04-26 Bruno Schmidt <bruno.schmidt@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Exposing an QVariantMap containing QObjectStar to Javascript
+ causes Segmentation Fault
+ https://bugs.webkit.org/show_bug.cgi?id=34729
+
+ If an QVariantMap containing QObjectStar is added to the to QtWebkit
+ Javascript, it's use causes Segmentation Fault.
+ It happens because, in the case QMetaType::QVariantMap, the "root"
+ object that is inside of a PassRefPtr is passed recursively inside a
+ loop to recover the content of the map, but the PassRefPtr semantics
+ prohibit its use inside a loop, so the "root" object mus be passed
+ using the method "PassRefPtr::get" in order to keep the current
+ reference.
+
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue): change to root.get()
+
+2010-04-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ Fix the MSVC 64bit build.
+ https://bugs.webkit.org/show_bug.cgi?id=37980
+
+ * platform/text/TextStream.cpp:
+ * platform/text/TextStream.h:
+ * plugins/win/PluginViewWin.cpp:
+ (WebCore::PluginView::platformStart):
+
+2010-04-22 Ray Rischpater <Raymond.Rischpater@Nokia.com>
+
+ Reviewed by Darin Adler.
+
+ In HTMLInputElement.cpp, shouldUseInputMethod does not return true for
+ some text input types (TELEPHONE, NUMBER, URL, and EMAIL). Addressed
+ this by changing shouldUseInputMethod to use internal methods to
+ check that the field is a text field that isn't a password field.
+
+ No new tests.
+
+ Fixes <https://bugs.webkit.org/show_bug.cgi?id=37719>
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::shouldUseInputMethod):
+
+2010-04-22 Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
+
+ Reviewed by Eric Seidel.
+
+ Fix build if NPAPI support is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=36621
+
+ No new tests, this is a build fix.
+ Re-submit r58043 with fix for EFL.
+
+ * plugins/PluginViewNone.cpp:
+
+2010-03-25 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ Fix build if NPAPI support is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=36621
+
+ No new tests, this is a build fix.
+
+ * plugins/PluginView.cpp: Guard getValueStatic() with
+ NETSCAPE_PLUGIN_API
+ (WebCore::PluginView::getValue):
+ * plugins/PluginView.h: Guard getValue() with NETSCAPE_PLUGIN_API
+ * plugins/PluginViewNone.cpp: Guard platformGetValue() and
+ platformGetValueStatic with NETSCAPE_PLUGIN_API;
+ Guard privateBrowsingStateChanged() and setJavaScriptPaused() with
+ PLATFORM(MAC)
+
+2010-04-14 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Repaint of fixed, transformed element is broken
+ https://bugs.webkit.org/show_bug.cgi?id=37637
+
+ RenderBox::computeRectForRepaint() failed to set the 'fixed' flag correctly
+ for elements that had both fixed position and a transform. If the element has
+ a transform, 'fixed' should only remain true if the element itself is fixed
+ position.
+
+ Also cache style()->position() in a local variable for performance.
+
+ Test: fast/repaint/fixed-tranformed.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeRectForRepaint):
+
+2010-04-19 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Fraser.
+
+ Spatial Navigation: at @updateFocusCandidateIfCloser make an assignment shortcut when FocusCandidate is null
+ https://bugs.webkit.org/show_bug.cgi?id=37802
+
+ In updateFocusCandidateIfCloser method, we do all bail out checks in the begining of
+ the method body. If after those bail out checks, no "best FocusCandidate" has been taken
+ yet (i.e. focusCandidate.isNull() == true), we can safely take the current candidate,
+ and exit earlier.
+
+ No behavior change, it is just a safe assignment shortcut.
+
+ * page/FocusController.cpp:
+ (WebCore::updateFocusCandidateIfCloser):
+
+2010-04-21 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Simon Fraser.
+
+ [Qt] Fix or remove the runtime flag for accelerated compositing.
+
+ This adds a way for a chrome client to disallow layers from becoming composited,
+ even if the settings enable accelerated compositing. This is necessary for platforms
+ where different views can be applied with the same settings to the same page.
+
+ We enable an API through ChromeClient to ask the chrome-client whether or not
+ it can render composited layers, which is taken into account when the compositor
+ decides whether or not to start compositing.
+
+ https://bugs.webkit.org/show_bug.cgi?id=37313
+
+ Pages under LayoutTests/compositing now work under QWebView, even when
+ QWebSettings::AcceleratedCompositingEnabled is on.
+
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::allowsAcceleratedCompositing):
+ * platform/qt/QWebPageClient.h:
+ (QWebPageClient::allowsAcceleratedCompositing):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::canBeComposited):
+
+2010-04-23 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] [Performance] GraphicsLayer: constructing the layers takes too long
+ https://bugs.webkit.org/show_bug.cgi?id=36365
+
+ The issue came from using QGraphicsView's cache as is. The problem is that
+ several code-paths require re-rendering of the item, but not re-rendering
+ of the web content into the cache.
+
+ The way to solve it is by having GraphicsLayerQt manage the cache directly
+ via QPixmapCache, instead of using QGraphicsItem cache modes.
+
+ FPS measurement shows significant improvement (20FPS before, 40FPS after)
+ on several use-cases, including blog-files/leaves on a desktop environment.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
+ (WebCore::GraphicsLayerQtImpl::recache):
+ (WebCore::GraphicsLayerQtImpl::paint):
+ (WebCore::GraphicsLayerQtImpl::flushChanges):
+
+2010-04-21 Benjamin Poulain <ikipou@gmail.com>
+
+ Reviewed by Simon Fraser.
+
+ Update of fixed elements is not made correctly when the page has been scrolled
+ https://bugs.webkit.org/show_bug.cgi?id=36783
+
+ When a fixed element was updated, the old geometry was not repainted correctly
+ because the repaint rect was cached during the layout and not updated when
+ scrolling.
+
+ The rect is now updated while scrolling so the region updated correspond to the
+ region of the element on the screen.
+
+ The method RenderLayer::updateRepaintRectsAfterScroll() updates
+ the repaint rect of all fixed tree after scroll.
+
+ Tests: fast/repaint/fixed-child-move-after-scroll.html
+ fast/repaint/fixed-child-of-fixed-move-after-scroll.html
+ fast/repaint/fixed-child-of-transformed-move-after-scroll.html
+ fast/repaint/fixed-move-after-scroll.html
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollPositionChanged):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateRepaintRectsAfterScroll):
+ * rendering/RenderLayer.h:
+
+2010-04-21 David Leong <david.leong@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Symbian apps crash on exit due to a bad qObject_cast.
+
+ https://bugs.webkit.org/show_bug.cgi?id=37303
+
+ Added check for NULL to avoid the crash. Reworked to fix memory leak
+
+ * plugins/symbian/PluginViewSymbian.cpp:
+ (WebCore::PluginView::platformDestroy):
+
+2010-04-14 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Fraser.
+
+ Spatial Navigation: make hasOffscreenRect() to earlier return 'true' if absoluteClippedOverflowRect() gives an empty rect
+ https://bugs.webkit.org/show_bug.cgi?id=37635
+
+ absoluteClippedOverflowRect method of RenderObject does return an empty IntRect for offscreen nodes.
+ So hasOffscreenRect method (SpatialNavigation.cpp) can safily bail out earlier in such cases.
+
+ * page/SpatialNavigation.cpp:
+ (WebCore::hasOffscreenRect):
+
+2010-04-12 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Fraser.
+
+ Spatial Navigation: make renderRectRelativeToRootDocument method to fallback to getRect() of Element when needed
+ https://bugs.webkit.org/show_bug.cgi?id=37461
+
+ getRect() of Element can be used instead of absoluteClippedOverflowRect of RenderObject when
+ the node is currently offscreen in an scroll overflowed content.
+
+ Test: fast/events/spatial-navigation/snav-simple-content-overflow.html
+
+ * page/SpatialNavigation.cpp:
+ (WebCore::renderRectRelativeToRootDocument):
+
+2010-03-29 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Fraser.
+
+ Spatial Navigation: proper handle negative x or y coordinates
+ https://bugs.webkit.org/show_bug.cgi?id=36773
+
+ In Spatial Navigation logic, during rect acquisition in renderRectRelativeToRootDocument,
+ sometimes negative x() or y() values are got, and the current algorithm bails out in
+ any of such cases.
+
+ However, when a node is in a scrollable content (content overflow <div>) and
+ this scrollable container scrolled up, element gets offscreen, and gets negative values
+ for y(), for example. In such cases, they are still valid to be used in Spatial Navigation
+ logic.
+
+ Test: fast/events/spatial-navigation/snav-offscreen-content.html
+
+ * page/SpatialNavigation.cpp:
+ (WebCore::distanceDataForNode):
+ (WebCore::checkNegativeCoordsForNode):
+
+2010-04-05 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ Spatial Navigation: bail out as soon as algorithm finds a focus candidate is not applicable
+ https://bugs.webkit.org/show_bug.cgi?id=37135
+
+ It happens, for example, when distanceDataForNode assigns numeric_limits<long long> to
+ current focus candidate's. It means that current candidate is not in direction, or not
+ a valid target node.
+
+ * page/FocusController.cpp:
+ (WebCore::FocusController::findFocusableNodeInDirection):
+
+2010-03-29 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Simon Fraser.
+ Patch by Antonio Gomes <tonikitoo@webkit.org>
+
+ Spatial Navigation: Initial code simplification in FocusController.cpp and SpatialNavigation.cpp
+
+ WebCore::distanceInDirection method was handling much of the logic not
+ strictly only related to the distance between nodes acquisition. This
+ method was simplified and renamed to 'WebCore::distanceDataForNode'.
+ The latter is now responsible for only getting the distance and alignment
+ data, while all assignement logic previously in distanceInDirection method
+ was moved place to updateFocusCandidateIfCloser.
+
+ Parent document distance and alignment acquisitions, in turn, have also
+ changed location: they are both got from deepFindFocusableNodeInDirection,
+ and passed in a recursive call to findFocusableNodeInDirection via the
+ candidateParent variable (optional parameter). In addition, the need for
+ the 'focusCandidateCopy' variable in deepFindFocusableNodeInDirection method
+ was removed, making the code much cleaner.
+
+ No behaviour change at this point. Mostly moving code around to the place
+ where it should live in.
+
+ * page/FocusController.cpp:
+ (WebCore::FocusController::advanceFocusDirectionally):
+ (WebCore::updateFocusCandidateIfCloser):
+ (WebCore::FocusController::findFocusableNodeInDirection):
+ (WebCore::FocusController::deepFindFocusableNodeInDirection):
+ * page/FocusController.h:
+ * page/SpatialNavigation.cpp:
+ (WebCore::distanceDataForNode):
+ (WebCore::renderRectRelativeToRootDocument):
+ * page/SpatialNavigation.h:
+
+2010-04-20 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Antti Koivisto.
+
+ [Qt] GraphicsLayer: support fill-modes
+ https://bugs.webkit.org/show_bug.cgi?id=36216
+ Implement the CSS-animation "fill mode" concept in GraphicsLayerQt. The concept
+ enables a key-frame animation to go to the animation's starting point before the delay,
+ and/or to stay at the animation's ending point after its ended, without reverting to the default
+ value.
+ We do that by manually setting the value to keyframe-0 before the delay if fill-mode is backwards/both,
+ and manually modifying the default value to the animated value as we animate, with fill-mode forwards/both.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::AnimationQtBase::AnimationQtBase):
+ (WebCore::TransformAnimationQt::~TransformAnimationQt):
+ (WebCore::TransformAnimationQt::applyFrame):
+ (WebCore::GraphicsLayerQt::addAnimation):
+
+2010-04-13 Eskil Blomfeldt <eblomfel@trolltech.com>, Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Use integer pixel metric QFont API to fix rounding errors in text rendering on the Mac
+ https://bugs.webkit.org/show_bug.cgi?id=36532
+
+ * platform/graphics/qt/FontQt.cpp:
+ (WebCore::Font::floatWidthForComplexText):
+ (WebCore::Font::font):
+
+2010-04-16 Daniel Bates <dbates@rim.com>
+
+ Reviewed by Adam Treat.
+
+ https://bugs.webkit.org/show_bug.cgi?id=36312
+
+ Adds support for the viewport meta tag. The code is largely derived in whole
+ or in part from the WebCore-528.15 source published as part of the iPhone 3.1.3
+ source code <http://www.opensource.apple.com/source/WebCore/WebCore-528.15/>.
+
+ * Android.mk: Added file ViewportArguments.cpp.
+ * GNUmakefile.am: Added files ViewportArguments.cpp and ViewportArguments.h.
+ * WebCore.gypi: Ditto.
+ * WebCore.pro: Ditto.
+ * WebCore.vcproj/WebCore.vcproj: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+ * dom/Document.cpp:
+ (WebCore::isSeparator): Added.
+ (WebCore::Document::processArguments): Added.
+ (WebCore::Document::processViewport): Added.
+ * dom/Document.h:
+ * dom/ViewportArguments.cpp: Added.
+ (WebCore::setViewportFeature):
+ (WebCore::viewportErrorMessageTemplate):
+ (WebCore::viewportErrorMessageLevel):
+ (WebCore::reportViewportWarning):
+ * dom/ViewportArguments.h: Added.
+ (WebCore::):
+ (WebCore::ViewportArguments::):
+ (WebCore::ViewportArguments::ViewportArguments):
+ (WebCore::ViewportArguments::hasCustomArgument):
+ * html/HTMLMetaElement.cpp:
+ (WebCore::HTMLMetaElement::process): Modified to call Document::processViewport.
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::didReceiveViewportArguments): Added.
+
+2010-04-15 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Antti Koivisto.
+
+ No default selection for <select multiple> menu lists.
+ https://bugs.webkit.org/show_bug.cgi?id=37530
+
+ Manual test: manual-tests/no-listbox-rendering.html
+
+ For menu lists, if the selection is not indicated by the html file, the first <option> will be
+ selected after loading the page or reseting the form. On the other hand listboxes may have no
+ element selected after loading the page or reseting the form.
+
+ When NO_LISTBOX_RENDERING is enabled listboxes becomes menu lists. Those <select multiple>
+ that did not have selected elements, now being menu lists, will have the first <option>
+ selected. That is the behavior difference that this patch corrects.
+
+ When NO_LISTBOX_RENDERING is enabled usesMenuList() always returns true then usesMenuList() cannot
+ be used to decide about initial selection of the elements. This patch replaces (usesMenuLists())
+ by (!multiple && size <= 1) where initial selection is considered.
+
+ * dom/SelectElement.cpp:
+ (WebCore::SelectElement::recalcListItems):
+ (WebCore::SelectElement::reset):
+ * manual-tests/no-listbox-rendering.html: Added.
+
+2010-04-19 Balazs Kelemen <kb@inf.u-szeged.hu>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Destroy SharedTimerQt before destruction of QCoreApplication.
+
+ To avoid unsafe situations caused by running WebCore code (through firing timers) when destruction of QCoreApplication
+ has been started, we should explicitly destroy the SharedTimerQt instance on application exit.
+ We can achieve that through installing a self-destroying slot for the QCoreApplication::aboutToQuit() signal
+ into the SharedTimerQt instance.
+
+ https://bugs.webkit.org/show_bug.cgi?id=36832
+
+ No functional change so no new tests.
+
+ * platform/qt/SharedTimerQt.cpp:
+ (WebCore::SharedTimerQt::SharedTimerQt):
+ (WebCore::SharedTimerQt::destroy):
+ (WebCore::SharedTimerQt::inst):
+
+2010-04-16 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make GraphicsLayerQt always use ItemCoordinateCache, and remove ItemUsesExtendedStyleOption.
+ This aligns our implementation with the Safari implementation - layers are always uploaded
+ to textures in item units, and WebCore is responsible for the heuristics.
+
+ [Qt] GraphicsLayer: performance optimizations
+ https://bugs.webkit.org/show_bug.cgi?id=35393
+
+ No new tests. Still no FPS benchmarks available (on any platform)
+ but animations are noticably better.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
+ (WebCore::GraphicsLayerQtImpl::paint):
+ (WebCore::GraphicsLayerQtImpl::flushChanges):
+ (WebCore::TransformAnimationQt::updateState):
+
+2010-04-16 Antonio Gomes <tonikitoo@webkit.org>
+
+ Unreviewed QtWebKit (with Qt 4.7) build fix.
+
+ Bug 37683 moved code from FontQt.cpp to FontPlatformDataQt.cpp but did not
+ renamed the variable used.
+
+ * platform/graphics/qt/FontPlatformDataQt.cpp:
+ (WebCore::FontPlatformData::FontPlatformData):
+
+2010-04-16 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] WebCore::Font::font() causes a QFont detach
+ https://bugs.webkit.org/show_bug.cgi?id=37683
+
+ Moved the setStyleStrategy call to FontPlatformData
+ to avoid the detach.
+
+ Thanks to Holger for spotting this.
+
+ * platform/graphics/qt/FontPlatformDataQt.cpp:
+ (WebCore::FontPlatformData::FontPlatformData):
+ * platform/graphics/qt/FontQt.cpp:
+ (WebCore::Font::font):
+
+2010-04-16 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Antti Koivisto.
+
+ [Qt]QtLauncher crash on page with CSS 3D transform
+ https://bugs.webkit.org/show_bug.cgi?id=36859
+
+ Added a neccessary null-pointer check, lack of which created the crash circumstances.
+
+ Tested by http://css-vfx.googlecode.com/svn/trunk/snowstack/snowstack.html
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ (WebCore::GraphicsLayerQtImpl::flushChanges):
+
+2010-04-18 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] Fix JavaScriptCore's include path for WinCE builds
+
+ https://bugs.webkit.org/show_bug.cgi?id=36751
+
+ * WebCore.pro:
+
+2010-04-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix compilation against namespaced Qt.
+
+ * platform/graphics/GraphicsLayer.h:
+ * platform/graphics/Tile.h:
+ * platform/graphics/qt/MediaPlayerPrivateQt.h:
+ * platform/network/qt/NetworkStateNotifierPrivate.h:
+
+2010-04-14 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Changing view mode names due to specification changes
+ https://bugs.webkit.org/show_bug.cgi?id=37615
+
+ test: fast/media/media-feature-wgt-view-mode.html
+
+ specification: http://dev.w3.org/2006/waf/widgets-vmmf/
+
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::view_modeMediaFeatureEval):
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::isWindowed):
+ (WebCore::ChromeClient::isMaximized):
+ (WebCore::ChromeClient::isMinimized):
+
+2010-04-15 Bruno Schmidt <bruno.schmidt@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Null QObjects properties cause Segmentation Fault
+ https://bugs.webkit.org/show_bug.cgi?id=34730
+
+ QObjects exported to the QWebkit javascript with properties that are
+ a null "QObject*" cause Segmentation Fault.
+
+ If an QObject is added to the javascript context and it contains
+ properties of the type QObject* with NULL value, calling the property
+ causes Segmentation Fault.
+ So now the code below properly checks for null pointers:
+
+ * bridge/qt/qt_instance.cpp:
+ (JSC::Bindings::QtInstance::getClass): may return NULL
+ (JSC::Bindings::QtInstance::getMethod): may return jsNull()
+ (JSC::Bindings::QtInstance::stringValue): may return jsNull()
+ (JSC::Bindings::QtInstance::booleanValue): may return false
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue): May return jsNull on QObjectStar
+
2010-04-09 Kenneth Rohde Christiansen <kenneth@webkit.org>
Reviewed by Simon Fraser.
diff --git a/src/3rdparty/webkit/WebCore/WebCore.gypi b/src/3rdparty/webkit/WebCore/WebCore.gypi
index 9746b46..caa79f2 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.gypi
+++ b/src/3rdparty/webkit/WebCore/WebCore.gypi
@@ -1226,6 +1226,8 @@
'dom/UIEvent.h',
'dom/UIEventWithKeyState.cpp',
'dom/UIEventWithKeyState.h',
+ 'dom/ViewportArguments.cpp',
+ 'dom/ViewportArguments.h',
'dom/WebKitAnimationEvent.cpp',
'dom/WebKitAnimationEvent.h',
'dom/WebKitTransitionEvent.cpp',
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index 3dfe803..2a64982 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -35,13 +35,13 @@ symbian: {
# Move RW-section base address to start from 0xE00000 instead of the toolchain default 0x400000.
QMAKE_LFLAGS.ARMCC += --rw-base 0xE00000
MMP_RULES += ALWAYS_BUILD_AS_ARM
- } else {
+ } else {
QMAKE_CFLAGS -= --thumb
QMAKE_CXXFLAGS -= --thumb
}
+ CONFIG(release, debug|release): QMAKE_CXXFLAGS.ARMCC += -OTime -O3
}
-
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ..
include($$PWD/../WebKit.pri)
@@ -530,6 +530,7 @@ SOURCES += \
dom/TreeWalker.cpp \
dom/UIEvent.cpp \
dom/UIEventWithKeyState.cpp \
+ dom/ViewportArguments.cpp \
dom/WebKitAnimationEvent.cpp \
dom/WebKitTransitionEvent.cpp \
dom/WheelEvent.cpp \
@@ -1241,6 +1242,7 @@ HEADERS += \
dom/TreeWalker.h \
dom/UIEvent.h \
dom/UIEventWithKeyState.h \
+ dom/ViewportArguments.h \
dom/WebKitAnimationEvent.h \
dom/WebKitTransitionEvent.h \
dom/WheelEvent.h \
@@ -2949,5 +2951,5 @@ symbian {
}
}
-# WebKit doesn't compile in C++0x mode
+# Disable C++0x mode in WebCore for those who enabled it in their Qt's mkspec
*-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
diff --git a/src/3rdparty/webkit/WebCore/bridge/npapi.h b/src/3rdparty/webkit/WebCore/bridge/npapi.h
index 4a8492e..533fcba 100644
--- a/src/3rdparty/webkit/WebCore/bridge/npapi.h
+++ b/src/3rdparty/webkit/WebCore/bridge/npapi.h
@@ -590,8 +590,8 @@ typedef QEvent NPEvent;
typedef struct _NPEvent
{
uint16 event;
- uint32 wParam;
- uint32 lParam;
+ uintptr_t wParam;
+ uintptr_t lParam;
} NPEvent;
#elif defined (XP_UNIX)
typedef XEvent NPEvent;
diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp
index dc6df14..f6f368b 100644
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp
@@ -171,8 +171,11 @@ QtInstance* QtInstance::getInstance(JSObject* object)
Class* QtInstance::getClass() const
{
- if (!m_class)
+ if (!m_class) {
+ if (!m_object)
+ return 0;
m_class = QtClass::classForObject(m_object);
+ }
return m_class;
}
@@ -238,7 +241,9 @@ void QtInstance::getPropertyNames(ExecState* exec, PropertyNameArray& array)
JSValue QtInstance::getMethod(ExecState* exec, const Identifier& propertyName)
{
- MethodList methodList = getClass()->methodsNamed(propertyName, this);
+ if (!getClass())
+ return jsNull();
+ MethodList methodList = m_class->methodsNamed(propertyName, this);
return new (exec) RuntimeMethod(exec, propertyName, methodList);
}
@@ -259,12 +264,15 @@ JSValue QtInstance::defaultValue(ExecState* exec, PreferredPrimitiveType hint) c
JSValue QtInstance::stringValue(ExecState* exec) const
{
+ QObject* obj = getObject();
+ if (!obj)
+ return jsNull();
+
// Hmm.. see if there is a toString defined
QByteArray buf;
bool useDefault = true;
getClass();
- QObject* obj = getObject();
- if (m_class && obj) {
+ if (m_class) {
// Cheat and don't use the full name resolution
int index = obj->metaObject()->indexOfMethod("toString()");
if (index >= 0) {
@@ -309,7 +317,7 @@ JSValue QtInstance::numberValue(ExecState* exec) const
JSValue QtInstance::booleanValue() const
{
// ECMA 9.2
- return jsBoolean(true);
+ return jsBoolean(getObject());
}
JSValue QtInstance::valueOf(ExecState* exec) const
diff --git a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
index 3bd5190..1775815 100644
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
@@ -332,7 +332,7 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type
break;
}
- case QMetaType::QVariantMap:
+ case QMetaType::QVariantMap:
if (type == Object || type == Array || type == RTArray) {
// Enumerate the contents of the object
PropertyNameArray properties(exec);
@@ -871,6 +871,8 @@ JSValue convertQVariantToValue(ExecState* exec, PassRefPtr<RootObject> root, con
if (type == QMetaType::QObjectStar || type == QMetaType::QWidgetStar) {
QObject* obj = variant.value<QObject*>();
+ if (!obj)
+ return jsNull();
return QtInstance::getQtInstance(obj, root, QScriptEngine::QtOwnership)->createRuntimeObject(exec);
}
@@ -895,7 +897,7 @@ JSValue convertQVariantToValue(ExecState* exec, PassRefPtr<RootObject> root, con
QVariantMap::const_iterator i = map.constBegin();
while (i != map.constEnd()) {
QString s = i.key();
- JSValue val = convertQVariantToValue(exec, root, i.value());
+ JSValue val = convertQVariantToValue(exec, root.get(), i.value());
if (val) {
PutPropertySlot slot;
ret->put(exec, Identifier(exec, (const UChar *)s.constData(), s.length()), val, slot);
diff --git a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp
index 4fda075..ded40b5 100644
--- a/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp
+++ b/src/3rdparty/webkit/WebCore/css/MediaQueryEvaluator.cpp
@@ -501,14 +501,16 @@ static bool view_modeMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* fram
if (value) {
String mode = static_cast<CSSPrimitiveValue*>(value)->getStringValue();
if (ChromeClient* client = frame->page()->chrome()->client()) {
- if (mode == "mini" && client->isDocked())
+ if (mode == "windowed" && client->isWindowed())
return true;
if (mode == "floating" && client->isFloating())
return true;
- if (mode == "application" && client->isApplication())
- return true;
if (mode == "fullscreen" && client->isFullscreen())
return true;
+ if (mode == "maximized" && client->isMaximized())
+ return true;
+ if (mode == "minimized" && client->isMinimized())
+ return true;
return false;
}
}
diff --git a/src/3rdparty/webkit/WebCore/dom/Document.cpp b/src/3rdparty/webkit/WebCore/dom/Document.cpp
index aedba0d..545819d 100644
--- a/src/3rdparty/webkit/WebCore/dom/Document.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/Document.cpp
@@ -127,6 +127,7 @@
#include "TreeWalker.h"
#include "UIEvent.h"
#include "UserContentURLPattern.h"
+#include "ViewportArguments.h"
#include "WebKitAnimationEvent.h"
#include "WebKitTransitionEvent.h"
#include "WheelEvent.h"
@@ -2282,6 +2283,78 @@ void Document::processHttpEquiv(const String& equiv, const String& content)
}
}
+// Though isspace() considers \t and \v to be whitespace, Win IE doesn't.
+static bool isSeparator(UChar c)
+{
+ return c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '=' || c == ',' || c == '\0';
+}
+
+void Document::processArguments(const String& features, void* data, ArgumentsCallback callback)
+{
+ // Tread lightly in this code -- it was specifically designed to mimic Win IE's parsing behavior.
+ int keyBegin, keyEnd;
+ int valueBegin, valueEnd;
+
+ int i = 0;
+ int length = features.length();
+ String buffer = features.lower();
+ while (i < length) {
+ // skip to first non-separator, but don't skip past the end of the string
+ while (isSeparator(buffer[i])) {
+ if (i >= length)
+ break;
+ i++;
+ }
+ keyBegin = i;
+
+ // skip to first separator
+ while (!isSeparator(buffer[i]))
+ i++;
+ keyEnd = i;
+
+ // skip to first '=', but don't skip past a ',' or the end of the string
+ while (buffer[i] != '=') {
+ if (buffer[i] == ',' || i >= length)
+ break;
+ i++;
+ }
+
+ // skip to first non-separator, but don't skip past a ',' or the end of the string
+ while (isSeparator(buffer[i])) {
+ if (buffer[i] == ',' || i >= length)
+ break;
+ i++;
+ }
+ valueBegin = i;
+
+ // skip to first separator
+ while (!isSeparator(buffer[i]))
+ i++;
+ valueEnd = i;
+
+ ASSERT(i <= length);
+
+ String keyString = buffer.substring(keyBegin, keyEnd - keyBegin);
+ String valueString = buffer.substring(valueBegin, valueEnd - valueBegin);
+ callback(keyString, valueString, this, data);
+ }
+}
+
+void Document::processViewport(const String& features)
+{
+ ASSERT(!features.isNull());
+
+ Frame* frame = this->frame();
+ if (!frame)
+ return;
+
+ ViewportArguments arguments;
+ processArguments(features, (void*)&arguments, &setViewportFeature);
+
+ if (frame->page())
+ frame->page()->chrome()->client()->didReceiveViewportArguments(frame, arguments);
+}
+
MouseEventWithHitTestResults Document::prepareMouseEvent(const HitTestRequest& request, const IntPoint& documentPoint, const PlatformMouseEvent& event)
{
ASSERT(!renderer() || renderer()->isRenderView());
diff --git a/src/3rdparty/webkit/WebCore/dom/Document.h b/src/3rdparty/webkit/WebCore/dom/Document.h
index cc3e559..44cdf0d 100644
--- a/src/3rdparty/webkit/WebCore/dom/Document.h
+++ b/src/3rdparty/webkit/WebCore/dom/Document.h
@@ -698,7 +698,8 @@ public:
* @param content The header value (value of the meta tag's "content" attribute)
*/
void processHttpEquiv(const String& equiv, const String& content);
-
+ void processViewport(const String& features);
+
// Returns the owning element in the parent document.
// Returns 0 if this is the top level document.
Element* ownerElement() const;
@@ -972,6 +973,10 @@ protected:
void clearXMLVersion() { m_xmlVersion = String(); }
private:
+
+ typedef void (*ArgumentsCallback)(const String& keyString, const String& valueString, Document*, void* data);
+ void processArguments(const String& features, void* data, ArgumentsCallback);
+
virtual bool isDocument() const { return true; }
virtual void removedLastRef();
virtual void determineParseMode() { }
diff --git a/src/3rdparty/webkit/WebCore/dom/Element.cpp b/src/3rdparty/webkit/WebCore/dom/Element.cpp
index 8711110..6bd512d 100644
--- a/src/3rdparty/webkit/WebCore/dom/Element.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/Element.cpp
@@ -561,7 +561,11 @@ void Element::setAttribute(const AtomicString& name, const AtomicString& value,
return;
}
+#if COMPILER(RVCT)
+ const AtomicString localName = shouldIgnoreAttributeCase(this) ? name.lower() : name;
+#else
const AtomicString& localName = shouldIgnoreAttributeCase(this) ? name.lower() : name;
+#endif
// allocate attributemap if necessary
Attribute* old = attributes(false)->getAttributeItem(localName, false);
diff --git a/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp b/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp
index e900245..4af90c9 100644
--- a/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/SelectElement.cpp
@@ -270,11 +270,11 @@ void SelectElement::recalcListItems(SelectElementData& data, const Element* elem
if (OptionElement* optionElement = toOptionElement(current)) {
listItems.append(current);
- if (updateSelectedStates) {
- if (!foundSelected && (data.usesMenuList() || (!data.multiple() && optionElement->selected()))) {
+ if (updateSelectedStates && !data.multiple()) {
+ if (!foundSelected && (data.size() <= 1 || optionElement->selected())) {
foundSelected = optionElement;
foundSelected->setSelectedState(true);
- } else if (foundSelected && !data.multiple() && optionElement->selected()) {
+ } else if (foundSelected && optionElement->selected()) {
foundSelected->setSelectedState(false);
foundSelected = optionElement;
}
@@ -499,7 +499,7 @@ void SelectElement::reset(SelectElementData& data, Element* element)
firstOption = optionElement;
}
- if (!selectedOption && firstOption && data.usesMenuList())
+ if (!selectedOption && firstOption && !data.multiple() && data.size() <= 1)
firstOption->setSelectedState(true);
setOptionsChangedOnRenderer(data, element);
diff --git a/src/3rdparty/webkit/WebCore/dom/ViewportArguments.cpp b/src/3rdparty/webkit/WebCore/dom/ViewportArguments.cpp
new file mode 100644
index 0000000..d585896
--- /dev/null
+++ b/src/3rdparty/webkit/WebCore/dom/ViewportArguments.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+ * (C) 1999 Antti Koivisto (koivisto@kde.org)
+ * (C) 2001 Dirk Mueller (mueller@kde.org)
+ * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "ViewportArguments.h"
+
+#include "Chrome.h"
+#include "Console.h"
+#include "DOMWindow.h"
+#include "Document.h"
+#include "Frame.h"
+#include "Page.h"
+#include "PlatformString.h"
+#include "Tokenizer.h"
+
+namespace WebCore {
+
+void setViewportFeature(const String& keyString, const String& valueString, Document* document, void* data)
+{
+ ViewportArguments* arguments = static_cast<ViewportArguments*>(data);
+ float value = ViewportArguments::ValueUndefined;
+ bool didUseConstants = false;
+
+ if (equalIgnoringCase(valueString, "yes"))
+ value = 1;
+ else if (equalIgnoringCase(valueString, "device-width")) {
+ didUseConstants = true;
+ if (document->page())
+ value = document->page()->chrome()->windowRect().width();
+ } else if (equalIgnoringCase(valueString, "device-height")) {
+ didUseConstants = true;
+ if (document->page())
+ value = document->page()->chrome()->windowRect().height();
+ } else if (equalIgnoringCase(valueString, "default")) // This allows us to distinguish the omission of a key from asking for the default value.
+ value = -2;
+ else if (valueString.length()) // listing a key with no value is shorthand for key=default
+ value = valueString.toFloat();
+
+ if (keyString == "initial-scale")
+ arguments->initialScale = value;
+ else if (keyString == "minimum-scale")
+ arguments->minimumScale = value;
+ else if (keyString == "maximum-scale") {
+ arguments->maximumScale = value;
+ if (value > 10.0)
+ reportViewportWarning(document, MaximumScaleTooLargeError, keyString);
+ } else if (keyString == "user-scalable")
+ arguments->userScalable = value;
+ else if (keyString == "width") {
+ if (document->page() && value == document->page()->chrome()->windowRect().width() && !didUseConstants)
+ reportViewportWarning(document, DeviceWidthShouldBeUsedWarning, keyString);
+ else if (document->page() && value == document->page()->chrome()->windowRect().height() && !didUseConstants)
+ reportViewportWarning(document, DeviceHeightShouldBeUsedWarning, keyString);
+
+ arguments->width = value;
+ } else if (keyString == "height") {
+ if (document->page() && value == document->page()->chrome()->windowRect().width() && !didUseConstants)
+ reportViewportWarning(document, DeviceWidthShouldBeUsedWarning, keyString);
+ else if (document->page() && value == document->page()->chrome()->windowRect().height() && !didUseConstants)
+ reportViewportWarning(document, DeviceHeightShouldBeUsedWarning, keyString);
+
+ arguments->height = value;
+ } else
+ reportViewportWarning(document, UnrecognizedViewportArgumentError, keyString);
+}
+
+static const char* viewportErrorMessageTemplate(ViewportErrorCode errorCode)
+{
+ static const char* const errors[] = {
+ "Viewport width or height set to physical device width, try using \"device-width\" constant instead for future compatibility.",
+ "Viewport height or height set to physical device height, try using \"device-height\" constant instead for future compatibility.",
+ "Viewport argument \"%replacement\" not recognized. Content ignored.",
+ "Viewport maximum-scale cannot be larger than 10.0. The maximum-scale will be set to 10.0."
+ };
+
+ return errors[errorCode];
+}
+
+static MessageLevel viewportErrorMessageLevel(ViewportErrorCode errorCode)
+{
+ return errorCode == UnrecognizedViewportArgumentError || errorCode == MaximumScaleTooLargeError ? ErrorMessageLevel : TipMessageLevel;
+}
+
+void reportViewportWarning(Document* document, ViewportErrorCode errorCode, const String& replacement)
+{
+ Tokenizer* tokenizer = document->tokenizer();
+
+ Frame* frame = document->frame();
+ if (!frame)
+ return;
+
+ String message = viewportErrorMessageTemplate(errorCode);
+ message.replace("%replacement", replacement);
+
+ frame->domWindow()->console()->addMessage(HTMLMessageSource, LogMessageType, viewportErrorMessageLevel(errorCode), message, tokenizer ? tokenizer->lineNumber() + 1 : 0, document->url().string());
+}
+
+} // namespace WebCore
diff --git a/src/3rdparty/webkit/WebCore/dom/ViewportArguments.h b/src/3rdparty/webkit/WebCore/dom/ViewportArguments.h
new file mode 100644
index 0000000..29eec8e
--- /dev/null
+++ b/src/3rdparty/webkit/WebCore/dom/ViewportArguments.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+ * (C) 1999 Antti Koivisto (koivisto@kde.org)
+ * (C) 2001 Dirk Mueller (mueller@kde.org)
+ * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef ViewportArguments_h
+#define ViewportArguments_h
+
+namespace WebCore {
+
+class Document;
+class String;
+
+enum ViewportErrorCode {
+ DeviceWidthShouldBeUsedWarning,
+ DeviceHeightShouldBeUsedWarning,
+ UnrecognizedViewportArgumentError,
+ MaximumScaleTooLargeError
+};
+
+struct ViewportArguments {
+
+ enum { ValueUndefined = -1 };
+
+ ViewportArguments()
+ : initialScale(ValueUndefined)
+ , minimumScale(ValueUndefined)
+ , maximumScale(ValueUndefined)
+ , width(ValueUndefined)
+ , height(ValueUndefined)
+ , userScalable(ValueUndefined)
+ {
+ }
+
+ float initialScale;
+ float minimumScale;
+ float maximumScale;
+ float width;
+ float height;
+
+ float userScalable;
+
+ bool hasCustomArgument() const
+ {
+ return initialScale != ValueUndefined || minimumScale != ValueUndefined || maximumScale != ValueUndefined || width != ValueUndefined || height != ValueUndefined || userScalable != ValueUndefined;
+ }
+};
+
+void setViewportFeature(const String& keyString, const String& valueString, Document*, void* data);
+void reportViewportWarning(Document*, ViewportErrorCode, const String& replacement);
+
+} // namespace WebCore
+
+#endif // ViewportArguments_h
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp
index de39328..9f3db9d 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.cpp
@@ -76,7 +76,7 @@
/* Copy the first part of user declarations. */
/* Line 189 of yacc.c */
-#line 1 "css\\CSSGrammar.y"
+#line 1 "css/CSSGrammar.y"
/*
@@ -137,7 +137,7 @@ using namespace HTMLNames;
/* Line 189 of yacc.c */
-#line 141 "C:/dev/webkit-2.0/WebCore/generated/CSSGrammar.tab.c"
+#line 141 "/WebCore/generated/CSSGrammar.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -238,7 +238,7 @@ typedef union YYSTYPE
{
/* Line 214 of yacc.c */
-#line 62 "css\\CSSGrammar.y"
+#line 62 "css/CSSGrammar.y"
bool boolean;
char character;
@@ -265,7 +265,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */
-#line 269 "C:/dev/webkit-2.0/WebCore/generated/CSSGrammar.tab.c"
+#line 269 "/WebCore/generated/CSSGrammar.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -276,7 +276,7 @@ typedef union YYSTYPE
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
-#line 86 "css\\CSSGrammar.y"
+#line 86 "css/CSSGrammar.y"
static inline int cssyyerror(const char*)
@@ -292,7 +292,7 @@ static int cssyylex(YYSTYPE* yylval, void* parser)
/* Line 264 of yacc.c */
-#line 296 "C:/dev/webkit-2.0/WebCore/generated/CSSGrammar.tab.c"
+#line 296 "/WebCore/generated/CSSGrammar.tab.c"
#ifdef short
# undef short
@@ -2170,7 +2170,7 @@ yyreduce:
case 10:
/* Line 1455 of yacc.c */
-#line 280 "css\\CSSGrammar.y"
+#line 280 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->m_rule = (yyvsp[(4) - (6)].rule);
;}
@@ -2179,7 +2179,7 @@ yyreduce:
case 11:
/* Line 1455 of yacc.c */
-#line 286 "css\\CSSGrammar.y"
+#line 286 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->m_keyframe = (yyvsp[(4) - (6)].keyframeRule);
;}
@@ -2188,7 +2188,7 @@ yyreduce:
case 12:
/* Line 1455 of yacc.c */
-#line 292 "css\\CSSGrammar.y"
+#line 292 "css/CSSGrammar.y"
{
/* can be empty */
;}
@@ -2197,7 +2197,7 @@ yyreduce:
case 13:
/* Line 1455 of yacc.c */
-#line 298 "css\\CSSGrammar.y"
+#line 298 "css/CSSGrammar.y"
{
/* can be empty */
;}
@@ -2206,7 +2206,7 @@ yyreduce:
case 14:
/* Line 1455 of yacc.c */
-#line 304 "css\\CSSGrammar.y"
+#line 304 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
if ((yyvsp[(4) - (5)].valueList)) {
@@ -2223,7 +2223,7 @@ yyreduce:
case 15:
/* Line 1455 of yacc.c */
-#line 318 "css\\CSSGrammar.y"
+#line 318 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
p->m_mediaQuery = p->sinkFloatingMediaQuery((yyvsp[(4) - (5)].mediaQuery));
@@ -2233,7 +2233,7 @@ yyreduce:
case 16:
/* Line 1455 of yacc.c */
-#line 325 "css\\CSSGrammar.y"
+#line 325 "css/CSSGrammar.y"
{
if ((yyvsp[(4) - (5)].selectorList)) {
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -2246,7 +2246,7 @@ yyreduce:
case 23:
/* Line 1455 of yacc.c */
-#line 347 "css\\CSSGrammar.y"
+#line 347 "css/CSSGrammar.y"
{
;}
break;
@@ -2254,7 +2254,7 @@ yyreduce:
case 26:
/* Line 1455 of yacc.c */
-#line 357 "css\\CSSGrammar.y"
+#line 357 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.rule) = static_cast<CSSParser*>(parser)->createCharsetRule((yyvsp[(3) - (5)].string));
@@ -2266,7 +2266,7 @@ yyreduce:
case 27:
/* Line 1455 of yacc.c */
-#line 363 "css\\CSSGrammar.y"
+#line 363 "css/CSSGrammar.y"
{
;}
break;
@@ -2274,7 +2274,7 @@ yyreduce:
case 28:
/* Line 1455 of yacc.c */
-#line 365 "css\\CSSGrammar.y"
+#line 365 "css/CSSGrammar.y"
{
;}
break;
@@ -2282,7 +2282,7 @@ yyreduce:
case 30:
/* Line 1455 of yacc.c */
-#line 371 "css\\CSSGrammar.y"
+#line 371 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet)
@@ -2293,7 +2293,7 @@ yyreduce:
case 39:
/* Line 1455 of yacc.c */
-#line 390 "css\\CSSGrammar.y"
+#line 390 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->m_hadSyntacticallyValidCSSRule = true;
;}
@@ -2302,14 +2302,14 @@ yyreduce:
case 42:
/* Line 1455 of yacc.c */
-#line 398 "css\\CSSGrammar.y"
+#line 398 "css/CSSGrammar.y"
{ (yyval.ruleList) = 0; ;}
break;
case 43:
/* Line 1455 of yacc.c */
-#line 399 "css\\CSSGrammar.y"
+#line 399 "css/CSSGrammar.y"
{
(yyval.ruleList) = (yyvsp[(1) - (3)].ruleList);
if ((yyvsp[(2) - (3)].rule)) {
@@ -2323,7 +2323,7 @@ yyreduce:
case 55:
/* Line 1455 of yacc.c */
-#line 428 "css\\CSSGrammar.y"
+#line 428 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createImportRule((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].mediaList));
;}
@@ -2332,7 +2332,7 @@ yyreduce:
case 56:
/* Line 1455 of yacc.c */
-#line 431 "css\\CSSGrammar.y"
+#line 431 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2341,7 +2341,7 @@ yyreduce:
case 57:
/* Line 1455 of yacc.c */
-#line 434 "css\\CSSGrammar.y"
+#line 434 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2350,7 +2350,7 @@ yyreduce:
case 58:
/* Line 1455 of yacc.c */
-#line 437 "css\\CSSGrammar.y"
+#line 437 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2359,7 +2359,7 @@ yyreduce:
case 59:
/* Line 1455 of yacc.c */
-#line 443 "css\\CSSGrammar.y"
+#line 443 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), true);
;}
@@ -2368,7 +2368,7 @@ yyreduce:
case 60:
/* Line 1455 of yacc.c */
-#line 447 "css\\CSSGrammar.y"
+#line 447 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createVariablesRule((yyvsp[(3) - (7)].mediaList), false);
;}
@@ -2377,7 +2377,7 @@ yyreduce:
case 61:
/* Line 1455 of yacc.c */
-#line 453 "css\\CSSGrammar.y"
+#line 453 "css/CSSGrammar.y"
{
(yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList();
;}
@@ -2386,7 +2386,7 @@ yyreduce:
case 62:
/* Line 1455 of yacc.c */
-#line 457 "css\\CSSGrammar.y"
+#line 457 "css/CSSGrammar.y"
{
(yyval.mediaList) = (yyvsp[(3) - (3)].mediaList);
;}
@@ -2395,7 +2395,7 @@ yyreduce:
case 63:
/* Line 1455 of yacc.c */
-#line 463 "css\\CSSGrammar.y"
+#line 463 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (1)].boolean);
;}
@@ -2404,7 +2404,7 @@ yyreduce:
case 64:
/* Line 1455 of yacc.c */
-#line 466 "css\\CSSGrammar.y"
+#line 466 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (2)].boolean);
if ((yyvsp[(2) - (2)].boolean))
@@ -2415,7 +2415,7 @@ yyreduce:
case 65:
/* Line 1455 of yacc.c */
-#line 471 "css\\CSSGrammar.y"
+#line 471 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (1)].boolean);
;}
@@ -2424,7 +2424,7 @@ yyreduce:
case 66:
/* Line 1455 of yacc.c */
-#line 474 "css\\CSSGrammar.y"
+#line 474 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2433,7 +2433,7 @@ yyreduce:
case 67:
/* Line 1455 of yacc.c */
-#line 477 "css\\CSSGrammar.y"
+#line 477 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2442,7 +2442,7 @@ yyreduce:
case 68:
/* Line 1455 of yacc.c */
-#line 480 "css\\CSSGrammar.y"
+#line 480 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (2)].boolean);
;}
@@ -2451,7 +2451,7 @@ yyreduce:
case 69:
/* Line 1455 of yacc.c */
-#line 486 "css\\CSSGrammar.y"
+#line 486 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (3)].boolean);
;}
@@ -2460,7 +2460,7 @@ yyreduce:
case 70:
/* Line 1455 of yacc.c */
-#line 489 "css\\CSSGrammar.y"
+#line 489 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2469,7 +2469,7 @@ yyreduce:
case 71:
/* Line 1455 of yacc.c */
-#line 492 "css\\CSSGrammar.y"
+#line 492 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2478,7 +2478,7 @@ yyreduce:
case 72:
/* Line 1455 of yacc.c */
-#line 495 "css\\CSSGrammar.y"
+#line 495 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2487,7 +2487,7 @@ yyreduce:
case 73:
/* Line 1455 of yacc.c */
-#line 498 "css\\CSSGrammar.y"
+#line 498 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (4)].boolean);
if ((yyvsp[(2) - (4)].boolean))
@@ -2498,7 +2498,7 @@ yyreduce:
case 74:
/* Line 1455 of yacc.c */
-#line 503 "css\\CSSGrammar.y"
+#line 503 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (4)].boolean);
;}
@@ -2507,7 +2507,7 @@ yyreduce:
case 75:
/* Line 1455 of yacc.c */
-#line 506 "css\\CSSGrammar.y"
+#line 506 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (6)].boolean);
;}
@@ -2516,7 +2516,7 @@ yyreduce:
case 76:
/* Line 1455 of yacc.c */
-#line 512 "css\\CSSGrammar.y"
+#line 512 "css/CSSGrammar.y"
{
(yyval.boolean) = static_cast<CSSParser*>(parser)->addVariable((yyvsp[(1) - (4)].string), (yyvsp[(4) - (4)].valueList));
;}
@@ -2525,7 +2525,7 @@ yyreduce:
case 77:
/* Line 1455 of yacc.c */
-#line 516 "css\\CSSGrammar.y"
+#line 516 "css/CSSGrammar.y"
{
(yyval.boolean) = static_cast<CSSParser*>(parser)->addVariableDeclarationBlock((yyvsp[(1) - (7)].string));
;}
@@ -2534,7 +2534,7 @@ yyreduce:
case 78:
/* Line 1455 of yacc.c */
-#line 520 "css\\CSSGrammar.y"
+#line 520 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2543,7 +2543,7 @@ yyreduce:
case 79:
/* Line 1455 of yacc.c */
-#line 524 "css\\CSSGrammar.y"
+#line 524 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -2552,7 +2552,7 @@ yyreduce:
case 80:
/* Line 1455 of yacc.c */
-#line 528 "css\\CSSGrammar.y"
+#line 528 "css/CSSGrammar.y"
{
/* @variables { varname: } Just reduce away this variable with no value. */
(yyval.boolean) = false;
@@ -2562,7 +2562,7 @@ yyreduce:
case 81:
/* Line 1455 of yacc.c */
-#line 533 "css\\CSSGrammar.y"
+#line 533 "css/CSSGrammar.y"
{
/* if we come across rules with invalid values like this case: @variables { varname: *; }, just discard the property/value pair */
(yyval.boolean) = false;
@@ -2572,7 +2572,7 @@ yyreduce:
case 82:
/* Line 1455 of yacc.c */
-#line 540 "css\\CSSGrammar.y"
+#line 540 "css/CSSGrammar.y"
{
(yyval.string) = (yyvsp[(1) - (2)].string);
;}
@@ -2581,7 +2581,7 @@ yyreduce:
case 83:
/* Line 1455 of yacc.c */
-#line 546 "css\\CSSGrammar.y"
+#line 546 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->addNamespace((yyvsp[(3) - (6)].string), (yyvsp[(4) - (6)].string));
(yyval.rule) = 0;
@@ -2591,7 +2591,7 @@ yyreduce:
case 84:
/* Line 1455 of yacc.c */
-#line 550 "css\\CSSGrammar.y"
+#line 550 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2600,7 +2600,7 @@ yyreduce:
case 85:
/* Line 1455 of yacc.c */
-#line 553 "css\\CSSGrammar.y"
+#line 553 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2609,7 +2609,7 @@ yyreduce:
case 86:
/* Line 1455 of yacc.c */
-#line 556 "css\\CSSGrammar.y"
+#line 556 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2618,21 +2618,21 @@ yyreduce:
case 87:
/* Line 1455 of yacc.c */
-#line 562 "css\\CSSGrammar.y"
+#line 562 "css/CSSGrammar.y"
{ (yyval.string).characters = 0; ;}
break;
case 88:
/* Line 1455 of yacc.c */
-#line 563 "css\\CSSGrammar.y"
+#line 563 "css/CSSGrammar.y"
{ (yyval.string) = (yyvsp[(1) - (2)].string); ;}
break;
case 91:
/* Line 1455 of yacc.c */
-#line 572 "css\\CSSGrammar.y"
+#line 572 "css/CSSGrammar.y"
{
(yyval.string) = (yyvsp[(1) - (2)].string);
;}
@@ -2641,7 +2641,7 @@ yyreduce:
case 92:
/* Line 1455 of yacc.c */
-#line 578 "css\\CSSGrammar.y"
+#line 578 "css/CSSGrammar.y"
{
(yyval.valueList) = 0;
;}
@@ -2650,7 +2650,7 @@ yyreduce:
case 93:
/* Line 1455 of yacc.c */
-#line 581 "css\\CSSGrammar.y"
+#line 581 "css/CSSGrammar.y"
{
(yyval.valueList) = (yyvsp[(3) - (4)].valueList);
;}
@@ -2659,7 +2659,7 @@ yyreduce:
case 94:
/* Line 1455 of yacc.c */
-#line 587 "css\\CSSGrammar.y"
+#line 587 "css/CSSGrammar.y"
{
(yyvsp[(3) - (7)].string).lower();
(yyval.mediaQueryExp) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExp((yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].valueList));
@@ -2669,7 +2669,7 @@ yyreduce:
case 95:
/* Line 1455 of yacc.c */
-#line 594 "css\\CSSGrammar.y"
+#line 594 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.mediaQueryExpList) = p->createFloatingMediaQueryExpList();
@@ -2680,7 +2680,7 @@ yyreduce:
case 96:
/* Line 1455 of yacc.c */
-#line 599 "css\\CSSGrammar.y"
+#line 599 "css/CSSGrammar.y"
{
(yyval.mediaQueryExpList) = (yyvsp[(1) - (5)].mediaQueryExpList);
(yyval.mediaQueryExpList)->append(static_cast<CSSParser*>(parser)->sinkFloatingMediaQueryExp((yyvsp[(5) - (5)].mediaQueryExp)));
@@ -2690,7 +2690,7 @@ yyreduce:
case 97:
/* Line 1455 of yacc.c */
-#line 606 "css\\CSSGrammar.y"
+#line 606 "css/CSSGrammar.y"
{
(yyval.mediaQueryExpList) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExpList();
;}
@@ -2699,7 +2699,7 @@ yyreduce:
case 98:
/* Line 1455 of yacc.c */
-#line 609 "css\\CSSGrammar.y"
+#line 609 "css/CSSGrammar.y"
{
(yyval.mediaQueryExpList) = (yyvsp[(3) - (3)].mediaQueryExpList);
;}
@@ -2708,7 +2708,7 @@ yyreduce:
case 99:
/* Line 1455 of yacc.c */
-#line 615 "css\\CSSGrammar.y"
+#line 615 "css/CSSGrammar.y"
{
(yyval.mediaQueryRestrictor) = MediaQuery::None;
;}
@@ -2717,7 +2717,7 @@ yyreduce:
case 100:
/* Line 1455 of yacc.c */
-#line 618 "css\\CSSGrammar.y"
+#line 618 "css/CSSGrammar.y"
{
(yyval.mediaQueryRestrictor) = MediaQuery::Only;
;}
@@ -2726,7 +2726,7 @@ yyreduce:
case 101:
/* Line 1455 of yacc.c */
-#line 621 "css\\CSSGrammar.y"
+#line 621 "css/CSSGrammar.y"
{
(yyval.mediaQueryRestrictor) = MediaQuery::Not;
;}
@@ -2735,7 +2735,7 @@ yyreduce:
case 102:
/* Line 1455 of yacc.c */
-#line 627 "css\\CSSGrammar.y"
+#line 627 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.mediaQuery) = p->createFloatingMediaQuery(p->sinkFloatingMediaQueryExpList((yyvsp[(1) - (1)].mediaQueryExpList)));
@@ -2745,7 +2745,7 @@ yyreduce:
case 103:
/* Line 1455 of yacc.c */
-#line 632 "css\\CSSGrammar.y"
+#line 632 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyvsp[(3) - (4)].string).lower();
@@ -2756,7 +2756,7 @@ yyreduce:
case 104:
/* Line 1455 of yacc.c */
-#line 640 "css\\CSSGrammar.y"
+#line 640 "css/CSSGrammar.y"
{
(yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList();
;}
@@ -2765,7 +2765,7 @@ yyreduce:
case 106:
/* Line 1455 of yacc.c */
-#line 647 "css\\CSSGrammar.y"
+#line 647 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.mediaList) = p->createMediaList();
@@ -2776,7 +2776,7 @@ yyreduce:
case 107:
/* Line 1455 of yacc.c */
-#line 652 "css\\CSSGrammar.y"
+#line 652 "css/CSSGrammar.y"
{
(yyval.mediaList) = (yyvsp[(1) - (4)].mediaList);
if ((yyval.mediaList))
@@ -2787,7 +2787,7 @@ yyreduce:
case 108:
/* Line 1455 of yacc.c */
-#line 657 "css\\CSSGrammar.y"
+#line 657 "css/CSSGrammar.y"
{
(yyval.mediaList) = 0;
;}
@@ -2796,7 +2796,7 @@ yyreduce:
case 109:
/* Line 1455 of yacc.c */
-#line 663 "css\\CSSGrammar.y"
+#line 663 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule((yyvsp[(3) - (7)].mediaList), (yyvsp[(6) - (7)].ruleList));
;}
@@ -2805,7 +2805,7 @@ yyreduce:
case 110:
/* Line 1455 of yacc.c */
-#line 666 "css\\CSSGrammar.y"
+#line 666 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule(0, (yyvsp[(5) - (6)].ruleList));
;}
@@ -2814,7 +2814,7 @@ yyreduce:
case 111:
/* Line 1455 of yacc.c */
-#line 672 "css\\CSSGrammar.y"
+#line 672 "css/CSSGrammar.y"
{
(yyval.string) = (yyvsp[(1) - (2)].string);
;}
@@ -2823,7 +2823,7 @@ yyreduce:
case 112:
/* Line 1455 of yacc.c */
-#line 678 "css\\CSSGrammar.y"
+#line 678 "css/CSSGrammar.y"
{
(yyval.rule) = (yyvsp[(7) - (8)].keyframesRule);
(yyvsp[(7) - (8)].keyframesRule)->setNameInternal((yyvsp[(3) - (8)].string));
@@ -2833,14 +2833,14 @@ yyreduce:
case 115:
/* Line 1455 of yacc.c */
-#line 690 "css\\CSSGrammar.y"
+#line 690 "css/CSSGrammar.y"
{ (yyval.keyframesRule) = static_cast<CSSParser*>(parser)->createKeyframesRule(); ;}
break;
case 116:
/* Line 1455 of yacc.c */
-#line 691 "css\\CSSGrammar.y"
+#line 691 "css/CSSGrammar.y"
{
(yyval.keyframesRule) = (yyvsp[(1) - (3)].keyframesRule);
if ((yyvsp[(2) - (3)].keyframeRule))
@@ -2851,7 +2851,7 @@ yyreduce:
case 117:
/* Line 1455 of yacc.c */
-#line 699 "css\\CSSGrammar.y"
+#line 699 "css/CSSGrammar.y"
{
(yyval.keyframeRule) = static_cast<CSSParser*>(parser)->createKeyframeRule((yyvsp[(1) - (6)].valueList));
;}
@@ -2860,7 +2860,7 @@ yyreduce:
case 118:
/* Line 1455 of yacc.c */
-#line 705 "css\\CSSGrammar.y"
+#line 705 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.valueList) = p->createFloatingValueList();
@@ -2871,7 +2871,7 @@ yyreduce:
case 119:
/* Line 1455 of yacc.c */
-#line 710 "css\\CSSGrammar.y"
+#line 710 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.valueList) = (yyvsp[(1) - (5)].valueList);
@@ -2883,14 +2883,14 @@ yyreduce:
case 120:
/* Line 1455 of yacc.c */
-#line 719 "css\\CSSGrammar.y"
+#line 719 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;}
break;
case 121:
/* Line 1455 of yacc.c */
-#line 720 "css\\CSSGrammar.y"
+#line 720 "css/CSSGrammar.y"
{
(yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER;
CSSParserString& str = (yyvsp[(1) - (1)].string);
@@ -2906,7 +2906,7 @@ yyreduce:
case 122:
/* Line 1455 of yacc.c */
-#line 744 "css\\CSSGrammar.y"
+#line 744 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2915,7 +2915,7 @@ yyreduce:
case 123:
/* Line 1455 of yacc.c */
-#line 747 "css\\CSSGrammar.y"
+#line 747 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2924,7 +2924,7 @@ yyreduce:
case 124:
/* Line 1455 of yacc.c */
-#line 754 "css\\CSSGrammar.y"
+#line 754 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createFontFaceRule();
;}
@@ -2933,7 +2933,7 @@ yyreduce:
case 125:
/* Line 1455 of yacc.c */
-#line 757 "css\\CSSGrammar.y"
+#line 757 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2942,7 +2942,7 @@ yyreduce:
case 126:
/* Line 1455 of yacc.c */
-#line 760 "css\\CSSGrammar.y"
+#line 760 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -2951,56 +2951,56 @@ yyreduce:
case 127:
/* Line 1455 of yacc.c */
-#line 766 "css\\CSSGrammar.y"
+#line 766 "css/CSSGrammar.y"
{ (yyval.relation) = CSSSelector::DirectAdjacent; ;}
break;
case 128:
/* Line 1455 of yacc.c */
-#line 767 "css\\CSSGrammar.y"
+#line 767 "css/CSSGrammar.y"
{ (yyval.relation) = CSSSelector::IndirectAdjacent; ;}
break;
case 129:
/* Line 1455 of yacc.c */
-#line 768 "css\\CSSGrammar.y"
+#line 768 "css/CSSGrammar.y"
{ (yyval.relation) = CSSSelector::Child; ;}
break;
case 130:
/* Line 1455 of yacc.c */
-#line 772 "css\\CSSGrammar.y"
+#line 772 "css/CSSGrammar.y"
{ (yyval.integer) = (yyvsp[(1) - (1)].integer); ;}
break;
case 131:
/* Line 1455 of yacc.c */
-#line 773 "css\\CSSGrammar.y"
+#line 773 "css/CSSGrammar.y"
{ (yyval.integer) = 1; ;}
break;
case 132:
/* Line 1455 of yacc.c */
-#line 777 "css\\CSSGrammar.y"
+#line 777 "css/CSSGrammar.y"
{ (yyval.integer) = -1; ;}
break;
case 133:
/* Line 1455 of yacc.c */
-#line 778 "css\\CSSGrammar.y"
+#line 778 "css/CSSGrammar.y"
{ (yyval.integer) = 1; ;}
break;
case 134:
/* Line 1455 of yacc.c */
-#line 782 "css\\CSSGrammar.y"
+#line 782 "css/CSSGrammar.y"
{
(yyval.rule) = static_cast<CSSParser*>(parser)->createStyleRule((yyvsp[(1) - (5)].selectorList));
;}
@@ -3009,7 +3009,7 @@ yyreduce:
case 135:
/* Line 1455 of yacc.c */
-#line 788 "css\\CSSGrammar.y"
+#line 788 "css/CSSGrammar.y"
{
if ((yyvsp[(1) - (1)].selector)) {
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3025,7 +3025,7 @@ yyreduce:
case 136:
/* Line 1455 of yacc.c */
-#line 798 "css\\CSSGrammar.y"
+#line 798 "css/CSSGrammar.y"
{
if ((yyvsp[(1) - (4)].selectorList) && (yyvsp[(4) - (4)].selector)) {
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3040,7 +3040,7 @@ yyreduce:
case 137:
/* Line 1455 of yacc.c */
-#line 807 "css\\CSSGrammar.y"
+#line 807 "css/CSSGrammar.y"
{
(yyval.selectorList) = 0;
;}
@@ -3049,7 +3049,7 @@ yyreduce:
case 138:
/* Line 1455 of yacc.c */
-#line 813 "css\\CSSGrammar.y"
+#line 813 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(1) - (2)].selector);
;}
@@ -3058,7 +3058,7 @@ yyreduce:
case 139:
/* Line 1455 of yacc.c */
-#line 819 "css\\CSSGrammar.y"
+#line 819 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(1) - (1)].selector);
;}
@@ -3067,7 +3067,7 @@ yyreduce:
case 140:
/* Line 1455 of yacc.c */
-#line 823 "css\\CSSGrammar.y"
+#line 823 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(1) - (1)].selector);
;}
@@ -3076,7 +3076,7 @@ yyreduce:
case 141:
/* Line 1455 of yacc.c */
-#line 827 "css\\CSSGrammar.y"
+#line 827 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(2) - (2)].selector);
if (!(yyvsp[(1) - (2)].selector))
@@ -3097,7 +3097,7 @@ yyreduce:
case 142:
/* Line 1455 of yacc.c */
-#line 842 "css\\CSSGrammar.y"
+#line 842 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(3) - (3)].selector);
if (!(yyvsp[(1) - (3)].selector))
@@ -3123,7 +3123,7 @@ yyreduce:
case 143:
/* Line 1455 of yacc.c */
-#line 862 "css\\CSSGrammar.y"
+#line 862 "css/CSSGrammar.y"
{
(yyval.selector) = 0;
;}
@@ -3132,28 +3132,28 @@ yyreduce:
case 144:
/* Line 1455 of yacc.c */
-#line 868 "css\\CSSGrammar.y"
+#line 868 "css/CSSGrammar.y"
{ (yyval.string).characters = 0; (yyval.string).length = 0; ;}
break;
case 145:
/* Line 1455 of yacc.c */
-#line 869 "css\\CSSGrammar.y"
+#line 869 "css/CSSGrammar.y"
{ static UChar star = '*'; (yyval.string).characters = &star; (yyval.string).length = 1; ;}
break;
case 146:
/* Line 1455 of yacc.c */
-#line 870 "css\\CSSGrammar.y"
+#line 870 "css/CSSGrammar.y"
{ (yyval.string) = (yyvsp[(1) - (2)].string); ;}
break;
case 147:
/* Line 1455 of yacc.c */
-#line 874 "css\\CSSGrammar.y"
+#line 874 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3164,7 +3164,7 @@ yyreduce:
case 148:
/* Line 1455 of yacc.c */
-#line 879 "css\\CSSGrammar.y"
+#line 879 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(2) - (2)].selector);
if ((yyval.selector)) {
@@ -3177,7 +3177,7 @@ yyreduce:
case 149:
/* Line 1455 of yacc.c */
-#line 886 "css\\CSSGrammar.y"
+#line 886 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(1) - (1)].selector);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3189,7 +3189,7 @@ yyreduce:
case 150:
/* Line 1455 of yacc.c */
-#line 892 "css\\CSSGrammar.y"
+#line 892 "css/CSSGrammar.y"
{
AtomicString namespacePrefix = (yyvsp[(1) - (2)].string);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3205,7 +3205,7 @@ yyreduce:
case 151:
/* Line 1455 of yacc.c */
-#line 902 "css\\CSSGrammar.y"
+#line 902 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(3) - (3)].selector);
if ((yyval.selector)) {
@@ -3223,7 +3223,7 @@ yyreduce:
case 152:
/* Line 1455 of yacc.c */
-#line 914 "css\\CSSGrammar.y"
+#line 914 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(2) - (2)].selector);
if ((yyval.selector)) {
@@ -3239,7 +3239,7 @@ yyreduce:
case 153:
/* Line 1455 of yacc.c */
-#line 927 "css\\CSSGrammar.y"
+#line 927 "css/CSSGrammar.y"
{
CSSParserString& str = (yyvsp[(1) - (1)].string);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3253,7 +3253,7 @@ yyreduce:
case 154:
/* Line 1455 of yacc.c */
-#line 935 "css\\CSSGrammar.y"
+#line 935 "css/CSSGrammar.y"
{
static UChar star = '*';
(yyval.string).characters = &star;
@@ -3264,7 +3264,7 @@ yyreduce:
case 155:
/* Line 1455 of yacc.c */
-#line 943 "css\\CSSGrammar.y"
+#line 943 "css/CSSGrammar.y"
{
(yyval.selector) = (yyvsp[(1) - (1)].selector);
;}
@@ -3273,7 +3273,7 @@ yyreduce:
case 156:
/* Line 1455 of yacc.c */
-#line 946 "css\\CSSGrammar.y"
+#line 946 "css/CSSGrammar.y"
{
if (!(yyvsp[(2) - (2)].selector))
(yyval.selector) = 0;
@@ -3292,7 +3292,7 @@ yyreduce:
case 157:
/* Line 1455 of yacc.c */
-#line 959 "css\\CSSGrammar.y"
+#line 959 "css/CSSGrammar.y"
{
(yyval.selector) = 0;
;}
@@ -3301,7 +3301,7 @@ yyreduce:
case 158:
/* Line 1455 of yacc.c */
-#line 965 "css\\CSSGrammar.y"
+#line 965 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3315,7 +3315,7 @@ yyreduce:
case 159:
/* Line 1455 of yacc.c */
-#line 973 "css\\CSSGrammar.y"
+#line 973 "css/CSSGrammar.y"
{
if ((yyvsp[(1) - (1)].string).characters[0] >= '0' && (yyvsp[(1) - (1)].string).characters[0] <= '9') {
(yyval.selector) = 0;
@@ -3333,7 +3333,7 @@ yyreduce:
case 163:
/* Line 1455 of yacc.c */
-#line 991 "css\\CSSGrammar.y"
+#line 991 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3347,7 +3347,7 @@ yyreduce:
case 164:
/* Line 1455 of yacc.c */
-#line 1002 "css\\CSSGrammar.y"
+#line 1002 "css/CSSGrammar.y"
{
CSSParserString& str = (yyvsp[(1) - (2)].string);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3361,7 +3361,7 @@ yyreduce:
case 165:
/* Line 1455 of yacc.c */
-#line 1013 "css\\CSSGrammar.y"
+#line 1013 "css/CSSGrammar.y"
{
(yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
(yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (4)].string), nullAtom));
@@ -3372,7 +3372,7 @@ yyreduce:
case 166:
/* Line 1455 of yacc.c */
-#line 1018 "css\\CSSGrammar.y"
+#line 1018 "css/CSSGrammar.y"
{
(yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
(yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (8)].string), nullAtom));
@@ -3384,7 +3384,7 @@ yyreduce:
case 167:
/* Line 1455 of yacc.c */
-#line 1024 "css\\CSSGrammar.y"
+#line 1024 "css/CSSGrammar.y"
{
AtomicString namespacePrefix = (yyvsp[(3) - (5)].string);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3398,7 +3398,7 @@ yyreduce:
case 168:
/* Line 1455 of yacc.c */
-#line 1032 "css\\CSSGrammar.y"
+#line 1032 "css/CSSGrammar.y"
{
AtomicString namespacePrefix = (yyvsp[(3) - (9)].string);
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3413,7 +3413,7 @@ yyreduce:
case 169:
/* Line 1455 of yacc.c */
-#line 1044 "css\\CSSGrammar.y"
+#line 1044 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::Exact;
;}
@@ -3422,7 +3422,7 @@ yyreduce:
case 170:
/* Line 1455 of yacc.c */
-#line 1047 "css\\CSSGrammar.y"
+#line 1047 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::List;
;}
@@ -3431,7 +3431,7 @@ yyreduce:
case 171:
/* Line 1455 of yacc.c */
-#line 1050 "css\\CSSGrammar.y"
+#line 1050 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::Hyphen;
;}
@@ -3440,7 +3440,7 @@ yyreduce:
case 172:
/* Line 1455 of yacc.c */
-#line 1053 "css\\CSSGrammar.y"
+#line 1053 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::Begin;
;}
@@ -3449,7 +3449,7 @@ yyreduce:
case 173:
/* Line 1455 of yacc.c */
-#line 1056 "css\\CSSGrammar.y"
+#line 1056 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::End;
;}
@@ -3458,7 +3458,7 @@ yyreduce:
case 174:
/* Line 1455 of yacc.c */
-#line 1059 "css\\CSSGrammar.y"
+#line 1059 "css/CSSGrammar.y"
{
(yyval.integer) = CSSSelector::Contain;
;}
@@ -3467,7 +3467,7 @@ yyreduce:
case 177:
/* Line 1455 of yacc.c */
-#line 1070 "css\\CSSGrammar.y"
+#line 1070 "css/CSSGrammar.y"
{
(yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
(yyval.selector)->m_match = CSSSelector::PseudoClass;
@@ -3503,7 +3503,7 @@ yyreduce:
case 178:
/* Line 1455 of yacc.c */
-#line 1100 "css\\CSSGrammar.y"
+#line 1100 "css/CSSGrammar.y"
{
(yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector();
(yyval.selector)->m_match = CSSSelector::PseudoElement;
@@ -3528,7 +3528,7 @@ yyreduce:
case 179:
/* Line 1455 of yacc.c */
-#line 1120 "css\\CSSGrammar.y"
+#line 1120 "css/CSSGrammar.y"
{
CSSParser *p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3551,7 +3551,7 @@ yyreduce:
case 180:
/* Line 1455 of yacc.c */
-#line 1138 "css\\CSSGrammar.y"
+#line 1138 "css/CSSGrammar.y"
{
CSSParser *p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3574,7 +3574,7 @@ yyreduce:
case 181:
/* Line 1455 of yacc.c */
-#line 1156 "css\\CSSGrammar.y"
+#line 1156 "css/CSSGrammar.y"
{
CSSParser *p = static_cast<CSSParser*>(parser);
(yyval.selector) = p->createFloatingSelector();
@@ -3598,7 +3598,7 @@ yyreduce:
case 182:
/* Line 1455 of yacc.c */
-#line 1175 "css\\CSSGrammar.y"
+#line 1175 "css/CSSGrammar.y"
{
if (!(yyvsp[(4) - (6)].selector) || (yyvsp[(4) - (6)].selector)->simpleSelector() || (yyvsp[(4) - (6)].selector)->tagHistory() || (yyvsp[(4) - (6)].selector)->matchesPseudoElement())
(yyval.selector) = 0;
@@ -3616,7 +3616,7 @@ yyreduce:
case 183:
/* Line 1455 of yacc.c */
-#line 1190 "css\\CSSGrammar.y"
+#line 1190 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (1)].boolean);
;}
@@ -3625,7 +3625,7 @@ yyreduce:
case 184:
/* Line 1455 of yacc.c */
-#line 1193 "css\\CSSGrammar.y"
+#line 1193 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (2)].boolean);
if ( (yyvsp[(2) - (2)].boolean) )
@@ -3636,7 +3636,7 @@ yyreduce:
case 185:
/* Line 1455 of yacc.c */
-#line 1198 "css\\CSSGrammar.y"
+#line 1198 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (1)].boolean);
;}
@@ -3645,7 +3645,7 @@ yyreduce:
case 186:
/* Line 1455 of yacc.c */
-#line 1201 "css\\CSSGrammar.y"
+#line 1201 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3654,7 +3654,7 @@ yyreduce:
case 187:
/* Line 1455 of yacc.c */
-#line 1204 "css\\CSSGrammar.y"
+#line 1204 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3663,7 +3663,7 @@ yyreduce:
case 188:
/* Line 1455 of yacc.c */
-#line 1207 "css\\CSSGrammar.y"
+#line 1207 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (2)].boolean);
;}
@@ -3672,7 +3672,7 @@ yyreduce:
case 189:
/* Line 1455 of yacc.c */
-#line 1210 "css\\CSSGrammar.y"
+#line 1210 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (2)].boolean);
;}
@@ -3681,7 +3681,7 @@ yyreduce:
case 190:
/* Line 1455 of yacc.c */
-#line 1216 "css\\CSSGrammar.y"
+#line 1216 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (3)].boolean);
;}
@@ -3690,7 +3690,7 @@ yyreduce:
case 191:
/* Line 1455 of yacc.c */
-#line 1219 "css\\CSSGrammar.y"
+#line 1219 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3699,7 +3699,7 @@ yyreduce:
case 192:
/* Line 1455 of yacc.c */
-#line 1222 "css\\CSSGrammar.y"
+#line 1222 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3708,7 +3708,7 @@ yyreduce:
case 193:
/* Line 1455 of yacc.c */
-#line 1225 "css\\CSSGrammar.y"
+#line 1225 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3717,7 +3717,7 @@ yyreduce:
case 194:
/* Line 1455 of yacc.c */
-#line 1228 "css\\CSSGrammar.y"
+#line 1228 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3726,7 +3726,7 @@ yyreduce:
case 195:
/* Line 1455 of yacc.c */
-#line 1231 "css\\CSSGrammar.y"
+#line 1231 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (4)].boolean);
if ((yyvsp[(2) - (4)].boolean))
@@ -3737,7 +3737,7 @@ yyreduce:
case 196:
/* Line 1455 of yacc.c */
-#line 1236 "css\\CSSGrammar.y"
+#line 1236 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (4)].boolean);
;}
@@ -3746,7 +3746,7 @@ yyreduce:
case 197:
/* Line 1455 of yacc.c */
-#line 1239 "css\\CSSGrammar.y"
+#line 1239 "css/CSSGrammar.y"
{
(yyval.boolean) = (yyvsp[(1) - (6)].boolean);
;}
@@ -3755,7 +3755,7 @@ yyreduce:
case 198:
/* Line 1455 of yacc.c */
-#line 1245 "css\\CSSGrammar.y"
+#line 1245 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
CSSParser* p = static_cast<CSSParser*>(parser);
@@ -3774,7 +3774,7 @@ yyreduce:
case 199:
/* Line 1455 of yacc.c */
-#line 1259 "css\\CSSGrammar.y"
+#line 1259 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
p->m_valueList = new CSSParserValueList;
@@ -3791,7 +3791,7 @@ yyreduce:
case 200:
/* Line 1455 of yacc.c */
-#line 1271 "css\\CSSGrammar.y"
+#line 1271 "css/CSSGrammar.y"
{
(yyval.boolean) = false;
;}
@@ -3800,7 +3800,7 @@ yyreduce:
case 201:
/* Line 1455 of yacc.c */
-#line 1275 "css\\CSSGrammar.y"
+#line 1275 "css/CSSGrammar.y"
{
/* The default movable type template has letter-spacing: .none; Handle this by looking for
error tokens at the start of an expr, recover the expr and then treat as an error, cleaning
@@ -3812,7 +3812,7 @@ yyreduce:
case 202:
/* Line 1455 of yacc.c */
-#line 1282 "css\\CSSGrammar.y"
+#line 1282 "css/CSSGrammar.y"
{
/* When we encounter something like p {color: red !important fail;} we should drop the declaration */
(yyval.boolean) = false;
@@ -3822,7 +3822,7 @@ yyreduce:
case 203:
/* Line 1455 of yacc.c */
-#line 1287 "css\\CSSGrammar.y"
+#line 1287 "css/CSSGrammar.y"
{
/* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
(yyval.boolean) = false;
@@ -3832,7 +3832,7 @@ yyreduce:
case 204:
/* Line 1455 of yacc.c */
-#line 1292 "css\\CSSGrammar.y"
+#line 1292 "css/CSSGrammar.y"
{
/* div { font-family: } Just reduce away this property with no value. */
(yyval.boolean) = false;
@@ -3842,7 +3842,7 @@ yyreduce:
case 205:
/* Line 1455 of yacc.c */
-#line 1297 "css\\CSSGrammar.y"
+#line 1297 "css/CSSGrammar.y"
{
/* if we come across rules with invalid values like this case: p { weight: *; }, just discard the rule */
(yyval.boolean) = false;
@@ -3852,7 +3852,7 @@ yyreduce:
case 206:
/* Line 1455 of yacc.c */
-#line 1302 "css\\CSSGrammar.y"
+#line 1302 "css/CSSGrammar.y"
{
/* if we come across: div { color{;color:maroon} }, ignore everything within curly brackets */
(yyval.boolean) = false;
@@ -3862,7 +3862,7 @@ yyreduce:
case 207:
/* Line 1455 of yacc.c */
-#line 1309 "css\\CSSGrammar.y"
+#line 1309 "css/CSSGrammar.y"
{
(yyval.integer) = cssPropertyID((yyvsp[(1) - (2)].string));
;}
@@ -3871,21 +3871,21 @@ yyreduce:
case 208:
/* Line 1455 of yacc.c */
-#line 1315 "css\\CSSGrammar.y"
+#line 1315 "css/CSSGrammar.y"
{ (yyval.boolean) = true; ;}
break;
case 209:
/* Line 1455 of yacc.c */
-#line 1316 "css\\CSSGrammar.y"
+#line 1316 "css/CSSGrammar.y"
{ (yyval.boolean) = false; ;}
break;
case 210:
/* Line 1455 of yacc.c */
-#line 1320 "css\\CSSGrammar.y"
+#line 1320 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.valueList) = p->createFloatingValueList();
@@ -3896,7 +3896,7 @@ yyreduce:
case 211:
/* Line 1455 of yacc.c */
-#line 1325 "css\\CSSGrammar.y"
+#line 1325 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
(yyval.valueList) = (yyvsp[(1) - (3)].valueList);
@@ -3916,7 +3916,7 @@ yyreduce:
case 212:
/* Line 1455 of yacc.c */
-#line 1339 "css\\CSSGrammar.y"
+#line 1339 "css/CSSGrammar.y"
{
(yyval.valueList) = 0;
;}
@@ -3925,7 +3925,7 @@ yyreduce:
case 213:
/* Line 1455 of yacc.c */
-#line 1342 "css\\CSSGrammar.y"
+#line 1342 "css/CSSGrammar.y"
{
(yyval.valueList) = 0;
;}
@@ -3934,7 +3934,7 @@ yyreduce:
case 214:
/* Line 1455 of yacc.c */
-#line 1345 "css\\CSSGrammar.y"
+#line 1345 "css/CSSGrammar.y"
{
(yyval.valueList) = 0;
;}
@@ -3943,7 +3943,7 @@ yyreduce:
case 215:
/* Line 1455 of yacc.c */
-#line 1351 "css\\CSSGrammar.y"
+#line 1351 "css/CSSGrammar.y"
{
(yyval.character) = '/';
;}
@@ -3952,7 +3952,7 @@ yyreduce:
case 216:
/* Line 1455 of yacc.c */
-#line 1354 "css\\CSSGrammar.y"
+#line 1354 "css/CSSGrammar.y"
{
(yyval.character) = ',';
;}
@@ -3961,7 +3961,7 @@ yyreduce:
case 217:
/* Line 1455 of yacc.c */
-#line 1357 "css\\CSSGrammar.y"
+#line 1357 "css/CSSGrammar.y"
{
(yyval.character) = 0;
;}
@@ -3970,28 +3970,28 @@ yyreduce:
case 218:
/* Line 1455 of yacc.c */
-#line 1363 "css\\CSSGrammar.y"
+#line 1363 "css/CSSGrammar.y"
{ (yyval.value) = (yyvsp[(1) - (1)].value); ;}
break;
case 219:
/* Line 1455 of yacc.c */
-#line 1364 "css\\CSSGrammar.y"
+#line 1364 "css/CSSGrammar.y"
{ (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); ;}
break;
case 220:
/* Line 1455 of yacc.c */
-#line 1365 "css\\CSSGrammar.y"
+#line 1365 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; ;}
break;
case 221:
/* Line 1455 of yacc.c */
-#line 1366 "css\\CSSGrammar.y"
+#line 1366 "css/CSSGrammar.y"
{
(yyval.value).id = cssValueKeywordID((yyvsp[(1) - (2)].string));
(yyval.value).unit = CSSPrimitiveValue::CSS_IDENT;
@@ -4002,49 +4002,49 @@ yyreduce:
case 222:
/* Line 1455 of yacc.c */
-#line 1372 "css\\CSSGrammar.y"
+#line 1372 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;}
break;
case 223:
/* Line 1455 of yacc.c */
-#line 1373 "css\\CSSGrammar.y"
+#line 1373 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;}
break;
case 224:
/* Line 1455 of yacc.c */
-#line 1374 "css\\CSSGrammar.y"
+#line 1374 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; ;}
break;
case 225:
/* Line 1455 of yacc.c */
-#line 1375 "css\\CSSGrammar.y"
+#line 1375 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; ;}
break;
case 226:
/* Line 1455 of yacc.c */
-#line 1376 "css\\CSSGrammar.y"
+#line 1376 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (1)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;}
break;
case 227:
/* Line 1455 of yacc.c */
-#line 1377 "css\\CSSGrammar.y"
+#line 1377 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;}
break;
case 228:
/* Line 1455 of yacc.c */
-#line 1379 "css\\CSSGrammar.y"
+#line 1379 "css/CSSGrammar.y"
{
(yyval.value) = (yyvsp[(1) - (1)].value);
;}
@@ -4053,7 +4053,7 @@ yyreduce:
case 229:
/* Line 1455 of yacc.c */
-#line 1382 "css\\CSSGrammar.y"
+#line 1382 "css/CSSGrammar.y"
{
(yyval.value) = (yyvsp[(1) - (2)].value);
;}
@@ -4062,7 +4062,7 @@ yyreduce:
case 230:
/* Line 1455 of yacc.c */
-#line 1385 "css\\CSSGrammar.y"
+#line 1385 "css/CSSGrammar.y"
{ /* Handle width: %; */
(yyval.value).id = 0; (yyval.value).unit = 0;
;}
@@ -4071,147 +4071,147 @@ yyreduce:
case 231:
/* Line 1455 of yacc.c */
-#line 1391 "css\\CSSGrammar.y"
+#line 1391 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;}
break;
case 232:
/* Line 1455 of yacc.c */
-#line 1392 "css\\CSSGrammar.y"
+#line 1392 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;}
break;
case 233:
/* Line 1455 of yacc.c */
-#line 1393 "css\\CSSGrammar.y"
+#line 1393 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;}
break;
case 234:
/* Line 1455 of yacc.c */
-#line 1394 "css\\CSSGrammar.y"
+#line 1394 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; ;}
break;
case 235:
/* Line 1455 of yacc.c */
-#line 1395 "css\\CSSGrammar.y"
+#line 1395 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; ;}
break;
case 236:
/* Line 1455 of yacc.c */
-#line 1396 "css\\CSSGrammar.y"
+#line 1396 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; ;}
break;
case 237:
/* Line 1455 of yacc.c */
-#line 1397 "css\\CSSGrammar.y"
+#line 1397 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; ;}
break;
case 238:
/* Line 1455 of yacc.c */
-#line 1398 "css\\CSSGrammar.y"
+#line 1398 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; ;}
break;
case 239:
/* Line 1455 of yacc.c */
-#line 1399 "css\\CSSGrammar.y"
+#line 1399 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; ;}
break;
case 240:
/* Line 1455 of yacc.c */
-#line 1400 "css\\CSSGrammar.y"
+#line 1400 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; ;}
break;
case 241:
/* Line 1455 of yacc.c */
-#line 1401 "css\\CSSGrammar.y"
+#line 1401 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; ;}
break;
case 242:
/* Line 1455 of yacc.c */
-#line 1402 "css\\CSSGrammar.y"
+#line 1402 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; ;}
break;
case 243:
/* Line 1455 of yacc.c */
-#line 1403 "css\\CSSGrammar.y"
+#line 1403 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; ;}
break;
case 244:
/* Line 1455 of yacc.c */
-#line 1404 "css\\CSSGrammar.y"
+#line 1404 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; ;}
break;
case 245:
/* Line 1455 of yacc.c */
-#line 1405 "css\\CSSGrammar.y"
+#line 1405 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; ;}
break;
case 246:
/* Line 1455 of yacc.c */
-#line 1406 "css\\CSSGrammar.y"
+#line 1406 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; ;}
break;
case 247:
/* Line 1455 of yacc.c */
-#line 1407 "css\\CSSGrammar.y"
+#line 1407 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; ;}
break;
case 248:
/* Line 1455 of yacc.c */
-#line 1408 "css\\CSSGrammar.y"
+#line 1408 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; ;}
break;
case 249:
/* Line 1455 of yacc.c */
-#line 1409 "css\\CSSGrammar.y"
+#line 1409 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; ;}
break;
case 250:
/* Line 1455 of yacc.c */
-#line 1410 "css\\CSSGrammar.y"
+#line 1410 "css/CSSGrammar.y"
{ (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; ;}
break;
case 251:
/* Line 1455 of yacc.c */
-#line 1411 "css\\CSSGrammar.y"
+#line 1411 "css/CSSGrammar.y"
{
(yyval.value).id = 0;
(yyval.value).fValue = (yyvsp[(1) - (2)].number);
@@ -4225,7 +4225,7 @@ yyreduce:
case 252:
/* Line 1455 of yacc.c */
-#line 1422 "css\\CSSGrammar.y"
+#line 1422 "css/CSSGrammar.y"
{
(yyval.value).id = 0;
(yyval.value).string = (yyvsp[(1) - (1)].string);
@@ -4236,7 +4236,7 @@ yyreduce:
case 253:
/* Line 1455 of yacc.c */
-#line 1430 "css\\CSSGrammar.y"
+#line 1430 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
CSSParserFunction* f = p->createFloatingFunction();
@@ -4251,7 +4251,7 @@ yyreduce:
case 254:
/* Line 1455 of yacc.c */
-#line 1439 "css\\CSSGrammar.y"
+#line 1439 "css/CSSGrammar.y"
{
CSSParser* p = static_cast<CSSParser*>(parser);
CSSParserFunction* f = p->createFloatingFunction();
@@ -4266,21 +4266,21 @@ yyreduce:
case 255:
/* Line 1455 of yacc.c */
-#line 1455 "css\\CSSGrammar.y"
+#line 1455 "css/CSSGrammar.y"
{ (yyval.string) = (yyvsp[(1) - (2)].string); ;}
break;
case 256:
/* Line 1455 of yacc.c */
-#line 1456 "css\\CSSGrammar.y"
+#line 1456 "css/CSSGrammar.y"
{ (yyval.string) = (yyvsp[(1) - (2)].string); ;}
break;
case 257:
/* Line 1455 of yacc.c */
-#line 1463 "css\\CSSGrammar.y"
+#line 1463 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -4289,7 +4289,7 @@ yyreduce:
case 258:
/* Line 1455 of yacc.c */
-#line 1466 "css\\CSSGrammar.y"
+#line 1466 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -4298,7 +4298,7 @@ yyreduce:
case 259:
/* Line 1455 of yacc.c */
-#line 1472 "css\\CSSGrammar.y"
+#line 1472 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -4307,7 +4307,7 @@ yyreduce:
case 260:
/* Line 1455 of yacc.c */
-#line 1475 "css\\CSSGrammar.y"
+#line 1475 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -4316,7 +4316,7 @@ yyreduce:
case 261:
/* Line 1455 of yacc.c */
-#line 1481 "css\\CSSGrammar.y"
+#line 1481 "css/CSSGrammar.y"
{
(yyval.rule) = 0;
;}
@@ -4325,7 +4325,7 @@ yyreduce:
case 262:
/* Line 1455 of yacc.c */
-#line 1499 "css\\CSSGrammar.y"
+#line 1499 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->invalidBlockHit();
;}
@@ -4334,7 +4334,7 @@ yyreduce:
case 263:
/* Line 1455 of yacc.c */
-#line 1502 "css\\CSSGrammar.y"
+#line 1502 "css/CSSGrammar.y"
{
static_cast<CSSParser*>(parser)->invalidBlockHit();
;}
@@ -4343,7 +4343,7 @@ yyreduce:
/* Line 1455 of yacc.c */
-#line 4347 "C:/dev/webkit-2.0/WebCore/generated/CSSGrammar.tab.c"
+#line 4347 "/WebCore/generated/CSSGrammar.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4555,6 +4555,6 @@ yyreturn:
/* Line 1675 of yacc.c */
-#line 1512 "css\\CSSGrammar.y"
+#line 1512 "css/CSSGrammar.y"
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h
index 31d6cce..8e0f4bb 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h
+++ b/src/3rdparty/webkit/WebCore/generated/CSSGrammar.h
@@ -115,7 +115,7 @@ typedef union YYSTYPE
{
/* Line 1676 of yacc.c */
-#line 62 "css\\CSSGrammar.y"
+#line 62 "css/CSSGrammar.y"
bool boolean;
char character;
@@ -142,7 +142,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */
-#line 144 "C:/dev/webkit-2.0/WebCore/generated/CSSGrammar.tab.h"
+#line 144 "/WebCore/generated/CSSGrammar.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp b/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
index e6ed010..87fb55b 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/CSSPropertyNames.cpp
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -a -L ANSI-C -E -C -c -o -t --key-positions='*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 CSSPropertyNames.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -217,6 +217,9 @@ hash_prop (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct props *
findProp (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
index 89b1c4a..6a2581e 100644
--- a/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
+++ b/src/3rdparty/webkit/WebCore/generated/CSSValueKeywords.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -L ANSI-C -E -C -n -o -t --key-positions='*' -NfindValue -Hhash_val -Wwordlist_value -D CSSValueKeywords.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -194,6 +194,9 @@ hash_val (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct css_value *
findValue (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/ColorData.c b/src/3rdparty/webkit/WebCore/generated/ColorData.c
index 4fb1bea..5d64dda 100644
--- a/src/3rdparty/webkit/WebCore/generated/ColorData.c
+++ b/src/3rdparty/webkit/WebCore/generated/ColorData.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -CDEot -L ANSI-C --includes --key-positions='*' -N findColor -D -s 2 */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -141,6 +141,9 @@ hash (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct NamedColor *
findColor (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp b/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
index 2aab9b9..d69b1b6 100644
--- a/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/DocTypeStrings.cpp
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -CEot -L ANSI-C --includes --key-positions='*' -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -331,6 +331,9 @@ hash (register const char *str, register unsigned int len)
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct PubIDInfo *
findDoctypeEntry (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c b/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
index 8bd9d97..761f29d 100644
--- a/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
+++ b/src/3rdparty/webkit/WebCore/generated/HTMLEntityNames.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf -a -L ANSI-C -C -G -c -o -t --includes --key-positions='*' -N findEntity -D -s 2 */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -521,6 +521,9 @@ static const short lookup[] =
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const struct Entity *
findEntity (register const char *str, register unsigned int len)
diff --git a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp
index 7a54748..0859634 100644
--- a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.cpp
@@ -76,7 +76,7 @@
/* Copy the first part of user declarations. */
/* Line 189 of yacc.c */
-#line 28 "xml\\XPathGrammar.y"
+#line 28 "xml/XPathGrammar.y"
#include "config.h"
@@ -107,7 +107,7 @@ using namespace XPath;
/* Line 189 of yacc.c */
-#line 111 "C:/dev/webkit-2.0/WebCore/generated/XPathGrammar.tab.c"
+#line 111 "/WebCore/generated/XPathGrammar.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -162,7 +162,7 @@ typedef union YYSTYPE
{
/* Line 214 of yacc.c */
-#line 60 "xml\\XPathGrammar.y"
+#line 60 "xml/XPathGrammar.y"
Step::Axis axis;
Step::NodeTest* nodeTest;
@@ -178,7 +178,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */
-#line 182 "C:/dev/webkit-2.0/WebCore/generated/XPathGrammar.tab.c"
+#line 182 "/WebCore/generated/XPathGrammar.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -189,7 +189,7 @@ typedef union YYSTYPE
/* Copy the second part of user declarations. */
/* Line 264 of yacc.c */
-#line 73 "xml\\XPathGrammar.y"
+#line 73 "xml/XPathGrammar.y"
static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }
@@ -198,7 +198,7 @@ static void xpathyyerror(const char*) { }
/* Line 264 of yacc.c */
-#line 202 "C:/dev/webkit-2.0/WebCore/generated/XPathGrammar.tab.c"
+#line 202 "/WebCore/generated/XPathGrammar.tab.c"
#ifdef short
# undef short
@@ -1483,7 +1483,7 @@ yyreduce:
case 2:
/* Line 1455 of yacc.c */
-#line 122 "xml\\XPathGrammar.y"
+#line 122 "xml/XPathGrammar.y"
{
PARSER->m_topExpr = (yyvsp[(1) - (1)].expr);
;}
@@ -1492,7 +1492,7 @@ yyreduce:
case 3:
/* Line 1455 of yacc.c */
-#line 129 "xml\\XPathGrammar.y"
+#line 129 "xml/XPathGrammar.y"
{
(yyval.locationPath)->setAbsolute(false);
;}
@@ -1501,7 +1501,7 @@ yyreduce:
case 4:
/* Line 1455 of yacc.c */
-#line 134 "xml\\XPathGrammar.y"
+#line 134 "xml/XPathGrammar.y"
{
(yyval.locationPath)->setAbsolute(true);
;}
@@ -1510,7 +1510,7 @@ yyreduce:
case 5:
/* Line 1455 of yacc.c */
-#line 141 "xml\\XPathGrammar.y"
+#line 141 "xml/XPathGrammar.y"
{
(yyval.locationPath) = new LocationPath;
PARSER->registerParseNode((yyval.locationPath));
@@ -1520,7 +1520,7 @@ yyreduce:
case 6:
/* Line 1455 of yacc.c */
-#line 147 "xml\\XPathGrammar.y"
+#line 147 "xml/XPathGrammar.y"
{
(yyval.locationPath) = (yyvsp[(2) - (2)].locationPath);
;}
@@ -1529,7 +1529,7 @@ yyreduce:
case 7:
/* Line 1455 of yacc.c */
-#line 152 "xml\\XPathGrammar.y"
+#line 152 "xml/XPathGrammar.y"
{
(yyval.locationPath) = (yyvsp[(2) - (2)].locationPath);
(yyval.locationPath)->insertFirstStep((yyvsp[(1) - (2)].step));
@@ -1540,7 +1540,7 @@ yyreduce:
case 8:
/* Line 1455 of yacc.c */
-#line 161 "xml\\XPathGrammar.y"
+#line 161 "xml/XPathGrammar.y"
{
(yyval.locationPath) = new LocationPath;
(yyval.locationPath)->appendStep((yyvsp[(1) - (1)].step));
@@ -1552,7 +1552,7 @@ yyreduce:
case 9:
/* Line 1455 of yacc.c */
-#line 169 "xml\\XPathGrammar.y"
+#line 169 "xml/XPathGrammar.y"
{
(yyval.locationPath)->appendStep((yyvsp[(3) - (3)].step));
PARSER->unregisterParseNode((yyvsp[(3) - (3)].step));
@@ -1562,7 +1562,7 @@ yyreduce:
case 10:
/* Line 1455 of yacc.c */
-#line 175 "xml\\XPathGrammar.y"
+#line 175 "xml/XPathGrammar.y"
{
(yyval.locationPath)->appendStep((yyvsp[(2) - (3)].step));
(yyval.locationPath)->appendStep((yyvsp[(3) - (3)].step));
@@ -1574,7 +1574,7 @@ yyreduce:
case 11:
/* Line 1455 of yacc.c */
-#line 185 "xml\\XPathGrammar.y"
+#line 185 "xml/XPathGrammar.y"
{
if ((yyvsp[(2) - (2)].predList)) {
(yyval.step) = new Step(Step::ChildAxis, *(yyvsp[(1) - (2)].nodeTest), *(yyvsp[(2) - (2)].predList));
@@ -1589,7 +1589,7 @@ yyreduce:
case 12:
/* Line 1455 of yacc.c */
-#line 196 "xml\\XPathGrammar.y"
+#line 196 "xml/XPathGrammar.y"
{
String localName;
String namespaceURI;
@@ -1611,7 +1611,7 @@ yyreduce:
case 13:
/* Line 1455 of yacc.c */
-#line 214 "xml\\XPathGrammar.y"
+#line 214 "xml/XPathGrammar.y"
{
if ((yyvsp[(3) - (3)].predList)) {
(yyval.step) = new Step((yyvsp[(1) - (3)].axis), *(yyvsp[(2) - (3)].nodeTest), *(yyvsp[(3) - (3)].predList));
@@ -1626,7 +1626,7 @@ yyreduce:
case 14:
/* Line 1455 of yacc.c */
-#line 225 "xml\\XPathGrammar.y"
+#line 225 "xml/XPathGrammar.y"
{
String localName;
String namespaceURI;
@@ -1648,7 +1648,7 @@ yyreduce:
case 17:
/* Line 1455 of yacc.c */
-#line 249 "xml\\XPathGrammar.y"
+#line 249 "xml/XPathGrammar.y"
{
(yyval.axis) = Step::AttributeAxis;
;}
@@ -1657,7 +1657,7 @@ yyreduce:
case 18:
/* Line 1455 of yacc.c */
-#line 256 "xml\\XPathGrammar.y"
+#line 256 "xml/XPathGrammar.y"
{
if (*(yyvsp[(1) - (3)].str) == "node")
(yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::AnyNodeTest);
@@ -1674,7 +1674,7 @@ yyreduce:
case 19:
/* Line 1455 of yacc.c */
-#line 269 "xml\\XPathGrammar.y"
+#line 269 "xml/XPathGrammar.y"
{
(yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);
PARSER->deleteString((yyvsp[(1) - (3)].str));
@@ -1685,7 +1685,7 @@ yyreduce:
case 20:
/* Line 1455 of yacc.c */
-#line 276 "xml\\XPathGrammar.y"
+#line 276 "xml/XPathGrammar.y"
{
(yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, (yyvsp[(3) - (4)].str)->stripWhiteSpace());
PARSER->deleteString((yyvsp[(1) - (4)].str));
@@ -1697,7 +1697,7 @@ yyreduce:
case 21:
/* Line 1455 of yacc.c */
-#line 286 "xml\\XPathGrammar.y"
+#line 286 "xml/XPathGrammar.y"
{
(yyval.predList) = 0;
;}
@@ -1706,7 +1706,7 @@ yyreduce:
case 23:
/* Line 1455 of yacc.c */
-#line 295 "xml\\XPathGrammar.y"
+#line 295 "xml/XPathGrammar.y"
{
(yyval.predList) = new Vector<Predicate*>;
(yyval.predList)->append(new Predicate((yyvsp[(1) - (1)].expr)));
@@ -1718,7 +1718,7 @@ yyreduce:
case 24:
/* Line 1455 of yacc.c */
-#line 303 "xml\\XPathGrammar.y"
+#line 303 "xml/XPathGrammar.y"
{
(yyval.predList)->append(new Predicate((yyvsp[(2) - (2)].expr)));
PARSER->unregisterParseNode((yyvsp[(2) - (2)].expr));
@@ -1728,7 +1728,7 @@ yyreduce:
case 25:
/* Line 1455 of yacc.c */
-#line 311 "xml\\XPathGrammar.y"
+#line 311 "xml/XPathGrammar.y"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
;}
@@ -1737,7 +1737,7 @@ yyreduce:
case 26:
/* Line 1455 of yacc.c */
-#line 318 "xml\\XPathGrammar.y"
+#line 318 "xml/XPathGrammar.y"
{
(yyval.step) = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
PARSER->registerParseNode((yyval.step));
@@ -1747,7 +1747,7 @@ yyreduce:
case 27:
/* Line 1455 of yacc.c */
-#line 326 "xml\\XPathGrammar.y"
+#line 326 "xml/XPathGrammar.y"
{
(yyval.step) = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
PARSER->registerParseNode((yyval.step));
@@ -1757,7 +1757,7 @@ yyreduce:
case 28:
/* Line 1455 of yacc.c */
-#line 332 "xml\\XPathGrammar.y"
+#line 332 "xml/XPathGrammar.y"
{
(yyval.step) = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
PARSER->registerParseNode((yyval.step));
@@ -1767,7 +1767,7 @@ yyreduce:
case 29:
/* Line 1455 of yacc.c */
-#line 340 "xml\\XPathGrammar.y"
+#line 340 "xml/XPathGrammar.y"
{
(yyval.expr) = new VariableReference(*(yyvsp[(1) - (1)].str));
PARSER->deleteString((yyvsp[(1) - (1)].str));
@@ -1778,7 +1778,7 @@ yyreduce:
case 30:
/* Line 1455 of yacc.c */
-#line 347 "xml\\XPathGrammar.y"
+#line 347 "xml/XPathGrammar.y"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
;}
@@ -1787,7 +1787,7 @@ yyreduce:
case 31:
/* Line 1455 of yacc.c */
-#line 352 "xml\\XPathGrammar.y"
+#line 352 "xml/XPathGrammar.y"
{
(yyval.expr) = new StringExpression(*(yyvsp[(1) - (1)].str));
PARSER->deleteString((yyvsp[(1) - (1)].str));
@@ -1798,7 +1798,7 @@ yyreduce:
case 32:
/* Line 1455 of yacc.c */
-#line 359 "xml\\XPathGrammar.y"
+#line 359 "xml/XPathGrammar.y"
{
(yyval.expr) = new Number((yyvsp[(1) - (1)].str)->toDouble());
PARSER->deleteString((yyvsp[(1) - (1)].str));
@@ -1809,7 +1809,7 @@ yyreduce:
case 34:
/* Line 1455 of yacc.c */
-#line 370 "xml\\XPathGrammar.y"
+#line 370 "xml/XPathGrammar.y"
{
(yyval.expr) = createFunction(*(yyvsp[(1) - (3)].str));
if (!(yyval.expr))
@@ -1822,7 +1822,7 @@ yyreduce:
case 35:
/* Line 1455 of yacc.c */
-#line 379 "xml\\XPathGrammar.y"
+#line 379 "xml/XPathGrammar.y"
{
(yyval.expr) = createFunction(*(yyvsp[(1) - (4)].str), *(yyvsp[(3) - (4)].argList));
if (!(yyval.expr))
@@ -1836,7 +1836,7 @@ yyreduce:
case 36:
/* Line 1455 of yacc.c */
-#line 391 "xml\\XPathGrammar.y"
+#line 391 "xml/XPathGrammar.y"
{
(yyval.argList) = new Vector<Expression*>;
(yyval.argList)->append((yyvsp[(1) - (1)].expr));
@@ -1848,7 +1848,7 @@ yyreduce:
case 37:
/* Line 1455 of yacc.c */
-#line 399 "xml\\XPathGrammar.y"
+#line 399 "xml/XPathGrammar.y"
{
(yyval.argList)->append((yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr));
@@ -1858,7 +1858,7 @@ yyreduce:
case 40:
/* Line 1455 of yacc.c */
-#line 413 "xml\\XPathGrammar.y"
+#line 413 "xml/XPathGrammar.y"
{
(yyval.expr) = new Union;
(yyval.expr)->addSubExpression((yyvsp[(1) - (3)].expr));
@@ -1872,7 +1872,7 @@ yyreduce:
case 41:
/* Line 1455 of yacc.c */
-#line 425 "xml\\XPathGrammar.y"
+#line 425 "xml/XPathGrammar.y"
{
(yyval.expr) = (yyvsp[(1) - (1)].locationPath);
;}
@@ -1881,7 +1881,7 @@ yyreduce:
case 43:
/* Line 1455 of yacc.c */
-#line 432 "xml\\XPathGrammar.y"
+#line 432 "xml/XPathGrammar.y"
{
(yyvsp[(3) - (3)].locationPath)->setAbsolute(true);
(yyval.expr) = new Path(static_cast<Filter*>((yyvsp[(1) - (3)].expr)), (yyvsp[(3) - (3)].locationPath));
@@ -1894,7 +1894,7 @@ yyreduce:
case 44:
/* Line 1455 of yacc.c */
-#line 441 "xml\\XPathGrammar.y"
+#line 441 "xml/XPathGrammar.y"
{
(yyvsp[(3) - (3)].locationPath)->insertFirstStep((yyvsp[(2) - (3)].step));
(yyvsp[(3) - (3)].locationPath)->setAbsolute(true);
@@ -1909,7 +1909,7 @@ yyreduce:
case 46:
/* Line 1455 of yacc.c */
-#line 456 "xml\\XPathGrammar.y"
+#line 456 "xml/XPathGrammar.y"
{
(yyval.expr) = new Filter((yyvsp[(1) - (2)].expr), *(yyvsp[(2) - (2)].predList));
PARSER->unregisterParseNode((yyvsp[(1) - (2)].expr));
@@ -1921,7 +1921,7 @@ yyreduce:
case 48:
/* Line 1455 of yacc.c */
-#line 468 "xml\\XPathGrammar.y"
+#line 468 "xml/XPathGrammar.y"
{
(yyval.expr) = new LogicalOp(LogicalOp::OP_Or, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1933,7 +1933,7 @@ yyreduce:
case 50:
/* Line 1455 of yacc.c */
-#line 480 "xml\\XPathGrammar.y"
+#line 480 "xml/XPathGrammar.y"
{
(yyval.expr) = new LogicalOp(LogicalOp::OP_And, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1945,7 +1945,7 @@ yyreduce:
case 52:
/* Line 1455 of yacc.c */
-#line 492 "xml\\XPathGrammar.y"
+#line 492 "xml/XPathGrammar.y"
{
(yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1957,7 +1957,7 @@ yyreduce:
case 54:
/* Line 1455 of yacc.c */
-#line 504 "xml\\XPathGrammar.y"
+#line 504 "xml/XPathGrammar.y"
{
(yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1969,7 +1969,7 @@ yyreduce:
case 56:
/* Line 1455 of yacc.c */
-#line 516 "xml\\XPathGrammar.y"
+#line 516 "xml/XPathGrammar.y"
{
(yyval.expr) = new NumericOp(NumericOp::OP_Add, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1981,7 +1981,7 @@ yyreduce:
case 57:
/* Line 1455 of yacc.c */
-#line 524 "xml\\XPathGrammar.y"
+#line 524 "xml/XPathGrammar.y"
{
(yyval.expr) = new NumericOp(NumericOp::OP_Sub, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -1993,7 +1993,7 @@ yyreduce:
case 59:
/* Line 1455 of yacc.c */
-#line 536 "xml\\XPathGrammar.y"
+#line 536 "xml/XPathGrammar.y"
{
(yyval.expr) = new NumericOp((yyvsp[(2) - (3)].numop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr));
PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr));
@@ -2005,7 +2005,7 @@ yyreduce:
case 61:
/* Line 1455 of yacc.c */
-#line 548 "xml\\XPathGrammar.y"
+#line 548 "xml/XPathGrammar.y"
{
(yyval.expr) = new Negative;
(yyval.expr)->addSubExpression((yyvsp[(2) - (2)].expr));
@@ -2017,7 +2017,7 @@ yyreduce:
/* Line 1455 of yacc.c */
-#line 2021 "C:/dev/webkit-2.0/WebCore/generated/XPathGrammar.tab.c"
+#line 2021 "/WebCore/generated/XPathGrammar.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2229,7 +2229,7 @@ yyreturn:
/* Line 1675 of yacc.c */
-#line 556 "xml\\XPathGrammar.y"
+#line 556 "xml/XPathGrammar.y"
#endif
diff --git a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h
index c3dbd2b..7264598 100644
--- a/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h
+++ b/src/3rdparty/webkit/WebCore/generated/XPathGrammar.h
@@ -67,7 +67,7 @@ typedef union YYSTYPE
{
/* Line 1676 of yacc.c */
-#line 60 "xml\\XPathGrammar.y"
+#line 60 "xml/XPathGrammar.y"
Step::Axis axis;
Step::NodeTest* nodeTest;
@@ -83,7 +83,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */
-#line 87 "C:/dev/webkit-2.0/WebCore/generated/XPathGrammar.tab.h"
+#line 87 "/WebCore/generated/XPathGrammar.tab.h"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp b/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
index d9a94f5..9a19e9e 100644
--- a/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/tokenizer.cpp
@@ -65,46 +65,53 @@ typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
#define YY_NUM_RULES 69
#define YY_END_OF_BUFFER 70
-static yyconst short int yy_accept[482] =
+/* This struct is not used in this scanner,
+ but its presence is necessary. */
+struct yy_trans_info
+ {
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+static yyconst flex_int16_t yy_accept[482] =
{ 0,
0, 0, 0, 0, 0, 0, 70, 68, 2, 2,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 57, 68, 68, 68, 68, 15, 15, 15, 68, 68,
+ 57, 68, 68, 15, 15, 15, 68, 68, 68, 68,
67, 15, 15, 15, 66, 15, 2, 0, 0, 0,
- 14, 0, 0, 0, 0, 18, 18, 8, 0, 0,
- 9, 0, 16, 0, 0, 15, 15, 15, 58, 0,
- 56, 0, 0, 57, 0, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 16, 55, 55, 52, 55,
- 0, 0, 0, 35, 35, 35, 35, 35, 35, 35,
- 15, 15, 7, 63, 15, 0, 0, 15, 15, 0,
-
- 15, 6, 5, 15, 15, 15, 15, 0, 0, 0,
- 14, 0, 0, 0, 18, 18, 18, 0, 18, 0,
- 0, 14, 0, 0, 4, 15, 0, 0, 55, 55,
- 55, 0, 55, 42, 55, 37, 40, 55, 53, 44,
- 55, 43, 51, 55, 46, 45, 41, 55, 55, 55,
- 0, 35, 35, 35, 35, 0, 35, 35, 35, 35,
- 35, 35, 15, 15, 15, 16, 15, 15, 64, 64,
- 15, 12, 10, 15, 13, 0, 0, 0, 17, 18,
- 18, 18, 17, 0, 0, 15, 0, 1, 55, 55,
- 55, 55, 47, 55, 54, 16, 48, 38, 55, 3,
+ 14, 0, 0, 0, 18, 18, 0, 8, 0, 0,
+ 9, 0, 16, 0, 15, 15, 15, 0, 58, 0,
+ 56, 0, 0, 57, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 16, 55, 55, 52, 55, 0, 55,
+ 0, 0, 35, 35, 35, 35, 35, 35, 35, 0,
+ 63, 15, 0, 0, 15, 15, 0, 15, 15, 15,
+
+ 7, 6, 5, 15, 15, 15, 15, 0, 0, 0,
+ 14, 0, 0, 0, 18, 18, 0, 18, 18, 0,
+ 0, 14, 0, 0, 4, 15, 0, 0, 55, 0,
+ 42, 55, 37, 40, 55, 53, 44, 55, 43, 51,
+ 55, 46, 45, 41, 55, 55, 55, 55, 55, 55,
+ 0, 35, 35, 0, 35, 35, 35, 35, 35, 35,
+ 35, 35, 15, 15, 16, 15, 15, 64, 64, 15,
+ 15, 12, 10, 15, 13, 0, 0, 0, 17, 17,
+ 18, 18, 18, 0, 0, 15, 0, 1, 55, 55,
+ 47, 55, 54, 16, 48, 38, 55, 55, 55, 3,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 15, 15, 59, 0, 64, 64, 64, 63, 11, 0,
+ 15, 59, 0, 64, 64, 64, 63, 15, 11, 0,
0, 0, 18, 18, 18, 0, 15, 0, 0, 55,
- 55, 55, 49, 50, 35, 35, 35, 35, 35, 35,
- 35, 35, 20, 15, 15, 65, 64, 64, 64, 64,
- 0, 0, 0, 0, 61, 0, 0, 0, 0, 18,
+ 49, 50, 55, 55, 35, 35, 35, 35, 35, 35,
+ 35, 20, 35, 15, 65, 64, 64, 64, 64, 0,
+ 0, 0, 0, 61, 0, 15, 0, 0, 0, 18,
18, 18, 0, 15, 55, 55, 39, 35, 35, 35,
- 35, 35, 35, 21, 35, 15, 15, 65, 64, 64,
- 64, 64, 64, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 61, 0, 0, 0, 0, 17, 18, 18,
-
- 17, 0, 15, 55, 55, 35, 35, 35, 35, 35,
- 19, 35, 15, 15, 65, 64, 64, 64, 64, 64,
- 64, 0, 60, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 18, 18, 0, 15,
- 55, 55, 35, 35, 35, 23, 35, 35, 15, 65,
+ 35, 35, 21, 35, 35, 15, 65, 64, 64, 64,
+ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 61, 0, 0, 15, 0, 0, 17, 17, 18,
+
+ 18, 0, 15, 55, 55, 35, 35, 35, 35, 19,
+ 35, 35, 15, 65, 64, 64, 64, 64, 64, 64,
+ 0, 60, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 0, 0, 18, 18, 0, 15,
+ 55, 55, 35, 35, 23, 35, 35, 35, 15, 65,
64, 64, 64, 64, 64, 64, 64, 0, 60, 0,
0, 0, 60, 0, 0, 0, 0, 18, 15, 55,
35, 35, 35, 35, 65, 0, 0, 0, 36, 15,
@@ -113,7 +120,7 @@ static yyconst short int yy_accept[482] =
0, 0, 63, 35, 35, 35, 35, 35, 35, 35,
35, 0, 0, 0, 0, 0, 0, 35, 35, 35,
- 35, 25, 35, 35, 35, 0, 0, 0, 62, 0,
+ 35, 25, 35, 35, 35, 0, 62, 0, 0, 0,
0, 26, 35, 35, 35, 35, 27, 35, 0, 0,
0, 0, 31, 35, 35, 35, 35, 0, 0, 0,
35, 35, 35, 35, 0, 0, 35, 35, 29, 35,
@@ -122,7 +129,7 @@ static yyconst short int yy_accept[482] =
0
} ;
-static yyconst int yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 4, 5, 1, 1, 1, 1, 1, 1, 1,
@@ -130,438 +137,911 @@ static yyconst int yy_ec[256] =
1, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 12, 18, 19, 20, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 12, 22, 23,
- 24, 25, 26, 27, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 12, 28, 12, 29, 30, 12, 31, 32, 33, 34,
-
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 12, 59, 1, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
-
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 12, 54, 12, 55, 56, 12, 57, 58, 59, 60,
+
+ 61, 62, 63, 64, 65, 37, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 12, 84, 1, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85
} ;
-static yyconst int yy_meta[61] =
+static yyconst flex_int32_t yy_meta[86] =
{ 0,
- 1, 2, 3, 3, 3, 4, 5, 5, 5, 5,
- 5, 5, 5, 6, 7, 5, 5, 8, 5, 5,
- 9, 5, 5, 5, 5, 10, 5, 11, 5, 11,
- 12, 12, 12, 12, 12, 12, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 5, 5, 5, 11
+ 1, 2, 3, 4, 4, 5, 6, 7, 6, 6,
+ 6, 6, 7, 8, 9, 6, 6, 10, 6, 6,
+ 11, 6, 6, 6, 6, 12, 6, 13, 13, 13,
+ 13, 13, 13, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 6, 14, 13, 13, 13, 13,
+ 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 6, 6, 6, 14
} ;
-static yyconst short int yy_base[520] =
+static yyconst flex_int16_t yy_base[553] =
{ 0,
- 0, 0, 39, 41, 1591, 1590, 1625, 2401, 62, 71,
- 76, 61, 69, 1588, 78, 1587, 50, 89, 1583, 1580,
- 132, 1579, 91, 123, 1561, 85, 94, 104, 1560, 1559,
- 2401, 117, 176, 175, 2401, 177, 193, 204, 1539, 108,
- 2401, 242, 120, 180, 196, 1553, 205, 2401, 101, 277,
- 2401, 102, 75, 1555, 221, 112, 206, 234, 181, 1561,
- 1565, 1547, 1553, 0, 268, 119, 1545, 221, 60, 240,
- 223, 230, 244, 257, 278, 279, 286, 256, 1533, 264,
- 1542, 298, 297, 1523, 296, 190, 292, 231, 97, 294,
- 309, 350, 2401, 2401, 329, 327, 1524, 351, 352, 372,
-
- 359, 2401, 2401, 360, 361, 381, 362, 1496, 339, 341,
- 342, 422, 457, 400, 1513, 492, 1512, 448, 483, 409,
- 364, 386, 527, 562, 2401, 435, 1523, 245, 1498, 597,
- 1497, 518, 368, 1483, 363, 1481, 1479, 310, 1478, 1477,
- 289, 1474, 1463, 239, 1440, 1432, 1428, 385, 401, 369,
- 1436, 311, 1425, 632, 1422, 553, 410, 420, 424, 411,
- 423, 440, 588, 458, 667, 1420, 626, 459, 481, 1403,
- 492, 494, 507, 627, 528, 1382, 412, 658, 674, 683,
- 1398, 718, 709, 544, 725, 563, 1368, 2401, 734, 1348,
- 769, 474, 1324, 477, 1314, 482, 1313, 1305, 548, 2401,
-
- 414, 760, 1289, 804, 578, 484, 582, 508, 509, 510,
- 795, 811, 2401, 820, 552, 1290, 1272, 855, 554, 1197,
- 841, 857, 863, 879, 885, 901, 647, 1228, 455, 907,
- 923, 614, 1191, 1123, 611, 929, 945, 628, 551, 630,
- 515, 631, 1115, 951, 967, 973, 555, 1109, 1101, 1093,
- 1008, 1022, 668, 684, 2401, 1049, 1061, 1008, 1040, 1057,
- 1065, 1073, 1081, 634, 1089, 1097, 1067, 577, 1105, 1113,
- 579, 615, 683, 1041, 685, 1121, 1129, 1137, 708, 1041,
- 991, 965, 947, 774, 719, 782, 1172, 735, 1207, 1186,
- 1219, 1246, 1260, 1287, 1322, 876, 1246, 2401, 1278, 1313,
-
- 854, 1330, 805, 1338, 1346, 770, 1354, 1362, 771, 580,
- 822, 584, 1397, 1383, 1399, 710, 792, 712, 711, 661,
- 659, 809, 2401, 877, 754, 1434, 1461, 1496, 1019, 821,
- 1442, 1531, 1566, 1440, 639, 1487, 921, 1522, 1557, 851,
- 965, 1574, 707, 1301, 1582, 618, 616, 617, 1617, 1603,
- 562, 2401, 2401, 2401, 2401, 2401, 2401, 1475, 858, 859,
- 1619, 1654, 917, 918, 1640, 1656, 521, 1482, 961, 1510,
- 1652, 1544, 646, 836, 1675, 1681, 1697, 1703, 2401, 1017,
- 873, 874, 962, 853, 1021, 701, 513, 473, 2401, 1719,
- 1725, 1741, 1005, 1150, 419, 919, 992, 1018, 1139, 1747,
-
- 1763, 1769, 1804, 1154, 1020, 1030, 1040, 1131, 1167, 901,
- 1187, 1792, 1808, 1831, 1403, 1829, 1851, 820, 1059, 967,
- 920, 472, 789, 1201, 1185, 1865, 1892, 1281, 2401, 1871,
- 1869, 448, 1202, 1225, 736, 946, 390, 585, 1906, 1908,
- 1943, 1970, 388, 1190, 1218, 1227, 1156, 1929, 1951, 1949,
- 1266, 1303, 990, 1304, 1976, 1992, 1394, 1169, 340, 1248,
- 1998, 2014, 1312, 316, 1203, 1242, 2020, 2036, 1340, 265,
- 1151, 2042, 1229, 1423, 1424, 1395, 92, 1382, 1364, 34,
- 2401, 2077, 2082, 2093, 2098, 2103, 2112, 2119, 2130, 2139,
- 2144, 2155, 2167, 2169, 2178, 2183, 2192, 2197, 2206, 2215,
-
- 2227, 2236, 2245, 2250, 2262, 2267, 2278, 2283, 2294, 2305,
- 2316, 2321, 2332, 2343, 2348, 2359, 2368, 2379, 2388
+ 0, 0, 64, 66, 54, 56, 1486, 6578, 93, 98,
+ 107, 83, 155, 1460, 77, 1459, 98, 99, 1446, 1449,
+ 207, 1454, 275, 100, 108, 146, 326, 1402, 1384, 1380,
+ 6578, 101, 110, 151, 6578, 127, 227, 295, 89, 136,
+ 6578, 387, 140, 0, 429, 1346, 471, 6578, 117, 532,
+ 6578, 138, 157, 1371, 142, 295, 307, 574, 283, 1379,
+ 1371, 1325, 1324, 0, 1290, 249, 150, 274, 93, 241,
+ 152, 256, 325, 309, 347, 313, 1289, 147, 616, 154,
+ 1322, 346, 1285, 284, 281, 357, 348, 170, 279, 658,
+ 6578, 208, 700, 1317, 389, 358, 1310, 399, 276, 761,
+
+ 6578, 6578, 6578, 409, 367, 413, 420, 307, 427, 374,
+ 421, 822, 883, 0, 1254, 925, 967, 1249, 1028, 319,
+ 451, 465, 1089, 1150, 6578, 456, 1282, 183, 1233, 1192,
+ 1224, 443, 1184, 1165, 454, 1161, 1149, 441, 1141, 1131,
+ 383, 1082, 1060, 1047, 453, 458, 470, 1029, 1253, 494,
+ 1044, 464, 999, 1295, 492, 486, 496, 516, 504, 517,
+ 998, 1356, 417, 1417, 1019, 418, 422, 491, 997, 502,
+ 1459, 527, 528, 545, 554, 409, 515, 1520, 0, 1562,
+ 965, 1623, 1684, 570, 1745, 560, 994, 6578, 948, 1806,
+ 935, 556, 923, 500, 897, 896, 559, 1848, 569, 6578,
+
+ 598, 882, 1909, 566, 565, 587, 606, 589, 631, 1951,
+ 2012, 6578, 0, 559, 907, 902, 691, 2054, 561, 593,
+ 2115, 0, 2157, 2218, 2279, 2340, 644, 878, 346, 2401,
+ 839, 836, 2443, 613, 616, 2504, 668, 534, 610, 656,
+ 680, 820, 2546, 2607, 0, 591, 847, 844, 803, 733,
+ 793, 614, 605, 6578, 2668, 2710, 625, 2771, 0, 2813,
+ 2874, 2935, 2996, 3057, 3131, 3173, 3234, 714, 3295, 695,
+ 690, 727, 762, 729, 3337, 3398, 0, 643, 777, 744,
+ 699, 698, 829, 654, 834, 3459, 689, 3520, 854, 894,
+ 915, 920, 3581, 3642, 3684, 683, 3745, 6578, 597, 3806,
+
+ 3867, 3928, 3989, 4050, 4111, 730, 4172, 814, 719, 542,
+ 750, 4214, 4275, 0, 762, 558, 553, 552, 531, 447,
+ 860, 6578, 697, 838, 957, 4336, 4397, 699, 926, 988,
+ 4458, 4519, 4580, 1002, 744, 1010, 4622, 4664, 1042, 737,
+ 4706, 4767, 647, 4828, 402, 818, 848, 1069, 1033, 0,
+ 437, 6578, 6578, 6578, 6578, 6578, 6578, 1122, 898, 924,
+ 4870, 1162, 963, 968, 4912, 4973, 770, 1063, 877, 1074,
+ 5005, 1102, 989, 1009, 0, 5062, 5104, 5146, 6578, 1036,
+ 1079, 1080, 1081, 1084, 1130, 910, 353, 315, 6578, 5188,
+ 5230, 5272, 689, 1139, 895, 1085, 1090, 1119, 1160, 5314,
+
+ 5356, 1226, 1242, 1120, 1152, 1164, 1207, 1208, 1210, 1219,
+ 1234, 1327, 1287, 1316, 1345, 1388, 5398, 1263, 1225, 1116,
+ 1211, 252, 1247, 1243, 1248, 1363, 6578, 1428, 5440, 1449,
+ 5501, 242, 1310, 1318, 1329, 856, 180, 813, 1454, 5562,
+ 1491, 5604, 148, 1357, 1326, 1061, 1370, 1531, 5646, 5688,
+ 1344, 1374, 1427, 1375, 5730, 5772, 1453, 1456, 135, 1458,
+ 5814, 5856, 1457, 97, 1183, 955, 5898, 1552, 1490, 91,
+ 1408, 1557, 1373, 1409, 1412, 1455, 78, 1530, 1522, 39,
+ 6578, 5959, 5964, 5977, 5982, 5987, 5994, 6004, 6017, 758,
+ 6022, 6032, 6045, 6059, 362, 6064, 6074, 6079, 6089, 6099,
+
+ 6103, 798, 6112, 6125, 6138, 6152, 6166, 6176, 6186, 6191,
+ 6203, 799, 6217, 957, 6222, 6234, 6247, 1071, 6261, 1086,
+ 6266, 6278, 6291, 6304, 6317, 6330, 1087, 6335, 6348, 1179,
+ 6353, 6365, 6378, 6391, 6404, 6417, 6430, 6435, 6448, 1183,
+ 6453, 6465, 6478, 6491, 6504, 6517, 1189, 1223, 6530, 6543,
+ 6553, 6563
} ;
-static yyconst short int yy_def[520] =
+static yyconst flex_int16_t yy_def[553] =
{ 0,
481, 1, 1, 1, 1, 1, 481, 481, 481, 481,
481, 482, 483, 481, 484, 481, 481, 485, 481, 481,
- 481, 481, 486, 487, 481, 488, 488, 488, 481, 481,
- 481, 488, 488, 488, 481, 488, 481, 481, 481, 482,
- 481, 489, 483, 481, 490, 491, 491, 481, 484, 492,
- 481, 481, 481, 481, 487, 488, 488, 488, 21, 493,
- 481, 494, 481, 21, 495, 496, 496, 496, 496, 496,
+ 481, 481, 486, 487, 487, 487, 488, 481, 481, 481,
+ 481, 487, 487, 487, 481, 487, 481, 481, 481, 482,
+ 481, 489, 483, 490, 491, 491, 492, 481, 484, 493,
+ 481, 481, 481, 481, 487, 487, 487, 488, 21, 494,
+ 481, 495, 481, 21, 496, 496, 496, 496, 496, 496,
+ 496, 496, 496, 496, 496, 496, 496, 496, 497, 496,
+ 481, 486, 498, 498, 498, 498, 498, 498, 498, 499,
+ 481, 487, 500, 481, 487, 487, 501, 487, 487, 487,
+
+ 481, 481, 481, 487, 487, 487, 487, 481, 482, 482,
+ 482, 482, 489, 502, 491, 491, 503, 491, 116, 504,
+ 504, 504, 504, 505, 481, 487, 506, 507, 496, 508,
496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
- 481, 486, 497, 498, 498, 498, 498, 498, 498, 498,
- 488, 488, 481, 481, 488, 499, 481, 488, 488, 481,
-
- 488, 481, 481, 488, 488, 488, 488, 481, 482, 482,
- 482, 482, 489, 481, 491, 47, 491, 500, 47, 484,
- 484, 484, 484, 492, 481, 488, 493, 501, 496, 496,
- 496, 502, 496, 496, 496, 496, 496, 496, 496, 496,
496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
- 481, 498, 498, 498, 498, 503, 498, 498, 498, 498,
- 498, 498, 92, 488, 92, 481, 488, 488, 504, 481,
- 488, 488, 488, 488, 488, 481, 482, 112, 481, 116,
- 491, 116, 47, 484, 123, 488, 505, 481, 130, 496,
- 130, 496, 496, 496, 496, 496, 496, 496, 496, 481,
-
- 498, 154, 498, 154, 498, 498, 498, 498, 498, 498,
- 92, 165, 481, 481, 506, 481, 481, 507, 488, 481,
- 112, 481, 116, 182, 47, 123, 488, 505, 501, 130,
- 191, 496, 496, 496, 498, 154, 204, 498, 498, 498,
- 498, 498, 498, 92, 165, 481, 508, 481, 481, 481,
- 507, 507, 509, 510, 481, 511, 481, 112, 481, 116,
- 182, 47, 123, 488, 130, 191, 496, 498, 154, 204,
- 498, 498, 498, 498, 498, 92, 165, 481, 512, 481,
- 481, 481, 481, 481, 509, 481, 513, 510, 514, 507,
- 507, 507, 507, 507, 511, 481, 112, 481, 116, 182,
-
- 491, 123, 488, 130, 191, 498, 154, 204, 498, 498,
- 498, 498, 488, 165, 481, 515, 481, 481, 481, 481,
- 481, 481, 481, 509, 509, 509, 509, 513, 510, 510,
- 510, 510, 514, 294, 481, 112, 491, 182, 123, 488,
- 496, 191, 498, 498, 204, 498, 498, 498, 488, 481,
- 481, 481, 481, 481, 481, 481, 481, 509, 509, 509,
- 327, 510, 510, 510, 332, 294, 481, 491, 488, 496,
- 498, 498, 498, 498, 481, 327, 332, 294, 481, 488,
- 498, 498, 498, 498, 498, 498, 498, 498, 481, 327,
- 332, 294, 488, 498, 498, 498, 498, 498, 498, 327,
-
- 332, 294, 516, 498, 498, 498, 498, 498, 498, 498,
- 498, 327, 332, 516, 414, 517, 518, 498, 498, 498,
- 498, 498, 498, 498, 498, 518, 518, 481, 481, 518,
- 519, 498, 498, 498, 498, 498, 498, 498, 518, 427,
- 518, 427, 498, 498, 498, 498, 498, 427, 518, 442,
- 498, 498, 498, 498, 427, 442, 498, 498, 498, 498,
- 427, 442, 498, 498, 498, 498, 427, 442, 498, 498,
- 498, 442, 498, 498, 498, 498, 498, 498, 498, 498,
+ 481, 498, 498, 509, 498, 498, 498, 498, 498, 498,
+ 498, 498, 487, 100, 481, 487, 487, 510, 481, 487,
+ 100, 487, 487, 487, 487, 481, 511, 511, 512, 116,
+ 491, 116, 116, 504, 504, 487, 513, 481, 496, 149,
+ 496, 496, 496, 496, 496, 496, 496, 149, 496, 481,
+
+ 498, 498, 162, 498, 498, 498, 498, 498, 498, 162,
+ 100, 481, 514, 515, 481, 481, 516, 100, 487, 481,
+ 517, 518, 116, 116, 116, 504, 487, 513, 519, 149,
+ 496, 496, 149, 496, 498, 162, 498, 498, 498, 498,
+ 498, 498, 162, 100, 520, 521, 481, 481, 481, 522,
+ 522, 523, 524, 481, 525, 100, 481, 526, 527, 528,
+ 528, 261, 529, 100, 149, 149, 149, 498, 162, 498,
+ 498, 498, 498, 498, 162, 100, 530, 531, 481, 481,
+ 481, 481, 481, 523, 481, 532, 533, 534, 535, 535,
+ 535, 535, 535, 536, 100, 481, 537, 481, 538, 538,
+
+ 300, 539, 100, 149, 304, 498, 162, 498, 498, 498,
+ 498, 162, 100, 540, 541, 481, 481, 481, 481, 481,
+ 481, 481, 542, 542, 542, 542, 543, 544, 544, 544,
+ 544, 545, 546, 303, 481, 537, 300, 301, 539, 303,
+ 304, 304, 498, 162, 498, 498, 498, 498, 303, 547,
+ 481, 481, 481, 481, 481, 481, 481, 542, 542, 542,
+ 326, 544, 544, 544, 331, 546, 481, 338, 303, 342,
+ 498, 498, 498, 498, 548, 326, 331, 366, 481, 303,
+ 498, 498, 498, 498, 498, 498, 498, 498, 481, 326,
+ 331, 366, 303, 498, 498, 498, 498, 498, 498, 326,
+
+ 331, 546, 549, 498, 498, 498, 498, 498, 498, 498,
+ 498, 542, 544, 549, 549, 550, 551, 498, 498, 498,
+ 498, 498, 498, 498, 498, 481, 481, 550, 552, 550,
+ 550, 498, 498, 498, 498, 498, 498, 498, 550, 431,
+ 550, 431, 498, 498, 498, 498, 498, 550, 440, 431,
+ 498, 498, 498, 498, 440, 431, 498, 498, 498, 498,
+ 440, 431, 498, 498, 498, 498, 440, 550, 498, 498,
+ 498, 550, 498, 498, 498, 498, 498, 498, 498, 498,
0, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481
} ;
-static yyconst short int yy_nxt[2462] =
+static yyconst flex_int16_t yy_nxt[6664] =
{ 0,
8, 9, 10, 9, 9, 9, 11, 12, 13, 14,
8, 8, 15, 8, 8, 16, 17, 18, 19, 20,
- 21, 8, 22, 8, 8, 8, 23, 24, 25, 26,
- 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 27, 26, 26, 26, 26, 26, 26,
- 28, 26, 26, 26, 26, 26, 8, 29, 30, 26,
- 31, 156, 31, 37, 37, 37, 37, 37, 41, 32,
- 52, 32, 37, 37, 37, 37, 37, 38, 38, 38,
- 38, 38, 33, 34, 33, 34, 43, 132, 42, 44,
- 41, 97, 97, 53, 135, 35, 45, 35, 94, 47,
-
- 47, 47, 47, 47, 47, 50, 54, 94, 82, 52,
- 97, 98, 96, 41, 39, 41, 55, 94, 83, 156,
- 100, 96, 52, 85, 156, 94, 86, 161, 50, 87,
- 94, 96, 57, 88, 89, 42, 90, 481, 99, 96,
- 481, 58, 61, 92, 96, 53, 132, 45, 133, 62,
- 63, 101, 64, 92, 92, 92, 92, 92, 92, 65,
- 104, 66, 67, 67, 68, 69, 70, 67, 71, 72,
- 73, 67, 74, 67, 75, 76, 67, 77, 67, 78,
- 79, 80, 67, 67, 67, 67, 67, 67, 94, 94,
- 94, 67, 97, 98, 37, 37, 37, 37, 37, 481,
-
- 114, 59, 96, 96, 96, 38, 38, 38, 38, 38,
- 114, 114, 114, 114, 114, 114, 116, 156, 106, 94,
- 105, 107, 97, 98, 67, 119, 116, 116, 116, 116,
- 116, 116, 118, 96, 158, 119, 119, 119, 119, 119,
- 119, 92, 39, 40, 40, 40, 109, 94, 132, 111,
- 132, 92, 92, 92, 92, 92, 92, 132, 156, 196,
- 128, 96, 112, 134, 188, 160, 132, 132, 126, 113,
- 138, 132, 112, 112, 112, 112, 112, 112, 49, 49,
- 49, 120, 136, 132, 132, 139, 148, 140, 130, 122,
- 149, 132, 156, 137, 141, 97, 144, 123, 130, 130,
-
- 130, 130, 130, 130, 124, 132, 132, 123, 123, 123,
- 123, 123, 123, 132, 150, 481, 132, 154, 145, 156,
- 142, 156, 94, 156, 162, 83, 143, 154, 154, 154,
- 154, 154, 154, 157, 159, 146, 96, 132, 156, 147,
- 194, 40, 94, 156, 195, 201, 41, 165, 41, 41,
- 152, 91, 91, 91, 91, 91, 96, 165, 165, 165,
- 165, 165, 165, 94, 94, 94, 42, 156, 42, 42,
- 163, 167, 94, 94, 94, 94, 41, 96, 96, 96,
- 163, 163, 163, 163, 163, 163, 96, 96, 96, 96,
- 132, 50, 169, 172, 94, 132, 132, 170, 41, 193,
-
- 171, 168, 169, 169, 169, 169, 169, 169, 96, 175,
- 173, 49, 132, 50, 192, 156, 199, 156, 197, 41,
- 179, 41, 174, 110, 177, 177, 177, 110, 132, 41,
- 179, 179, 179, 179, 179, 179, 50, 156, 156, 42,
- 205, 156, 178, 198, 208, 235, 156, 156, 94, 42,
- 156, 156, 178, 178, 178, 178, 178, 178, 40, 40,
- 40, 109, 96, 206, 111, 209, 186, 156, 182, 207,
- 229, 94, 213, 406, 188, 156, 210, 112, 182, 182,
- 182, 182, 182, 182, 113, 96, 96, 112, 112, 112,
- 112, 112, 112, 115, 115, 115, 115, 115, 214, 156,
-
- 156, 132, 196, 183, 132, 218, 216, 94, 232, 132,
- 233, 156, 180, 183, 183, 183, 183, 183, 183, 96,
- 213, 96, 180, 180, 180, 180, 180, 180, 121, 184,
- 184, 184, 121, 239, 96, 156, 156, 156, 191, 41,
- 156, 94, 156, 242, 243, 274, 241, 185, 191, 191,
- 191, 191, 191, 191, 50, 96, 41, 185, 185, 185,
- 185, 185, 185, 49, 49, 49, 120, 94, 272, 214,
- 379, 50, 214, 204, 122, 132, 94, 248, 156, 214,
- 280, 96, 123, 204, 204, 204, 204, 204, 204, 124,
- 96, 234, 123, 123, 123, 123, 123, 123, 129, 129,
-
- 129, 129, 129, 227, 156, 156, 156, 156, 211, 156,
- 347, 156, 156, 309, 348, 306, 447, 189, 211, 211,
- 211, 211, 211, 211, 132, 238, 240, 189, 189, 189,
- 189, 189, 189, 153, 153, 153, 153, 153, 156, 94,
- 94, 132, 156, 156, 156, 156, 167, 94, 373, 374,
- 310, 268, 202, 96, 96, 156, 267, 156, 156, 156,
- 94, 96, 202, 202, 202, 202, 202, 202, 164, 164,
- 164, 164, 164, 156, 96, 286, 271, 273, 221, 275,
- 387, 219, 367, 303, 357, 264, 356, 212, 221, 221,
- 221, 221, 221, 221, 222, 287, 286, 212, 212, 212,
-
- 212, 212, 212, 223, 222, 222, 222, 222, 222, 222,
- 156, 289, 156, 223, 223, 223, 223, 223, 223, 181,
- 181, 181, 181, 181, 371, 214, 286, 214, 156, 225,
- 312, 399, 311, 317, 156, 352, 355, 354, 224, 225,
- 225, 225, 225, 225, 225, 226, 287, 286, 224, 224,
- 224, 224, 224, 224, 230, 226, 226, 226, 226, 226,
- 226, 286, 289, 156, 230, 230, 230, 230, 230, 230,
- 190, 190, 190, 190, 190, 284, 284, 284, 284, 284,
- 236, 287, 445, 322, 322, 322, 322, 322, 255, 231,
- 236, 236, 236, 236, 236, 236, 323, 156, 156, 231,
-
- 231, 231, 231, 231, 231, 203, 203, 203, 203, 203,
- 322, 322, 322, 322, 322, 244, 156, 353, 94, 343,
- 346, 436, 340, 323, 237, 244, 244, 244, 244, 244,
- 244, 245, 96, 286, 237, 237, 237, 237, 237, 237,
- 246, 245, 245, 245, 245, 245, 245, 156, 289, 156,
- 246, 246, 246, 246, 246, 246, 251, 251, 251, 251,
- 251, 258, 253, 156, 94, 286, 286, 254, 432, 255,
- 388, 258, 258, 258, 258, 258, 258, 259, 96, 285,
- 156, 118, 256, 260, 286, 287, 287, 259, 259, 259,
- 259, 259, 259, 260, 260, 260, 260, 260, 260, 261,
-
- 156, 156, 369, 397, 287, 262, 335, 394, 395, 261,
- 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
- 262, 263, 115, 115, 115, 115, 115, 265, 156, 286,
- 286, 263, 263, 263, 263, 263, 263, 265, 265, 265,
- 265, 265, 265, 266, 289, 289, 156, 156, 118, 269,
- 435, 424, 407, 266, 266, 266, 266, 266, 266, 269,
- 269, 269, 269, 269, 269, 270, 129, 129, 129, 129,
- 129, 276, 321, 156, 94, 270, 270, 270, 270, 270,
- 270, 276, 276, 276, 276, 276, 276, 277, 96, 156,
- 320, 380, 132, 278, 156, 446, 396, 277, 277, 277,
-
- 277, 277, 277, 278, 278, 278, 278, 278, 278, 251,
- 251, 251, 251, 251, 434, 253, 319, 156, 403, 156,
- 254, 288, 255, 284, 284, 284, 284, 284, 297, 481,
- 94, 286, 96, 408, 481, 256, 255, 459, 297, 297,
- 297, 297, 297, 297, 96, 156, 289, 156, 156, 256,
- 284, 284, 284, 284, 290, 398, 292, 156, 419, 409,
- 298, 292, 292, 293, 393, 420, 318, 156, 156, 294,
- 298, 298, 298, 298, 298, 298, 295, 299, 421, 294,
- 294, 294, 294, 294, 294, 300, 156, 299, 299, 299,
- 299, 299, 299, 301, 132, 300, 300, 300, 300, 300,
-
- 300, 302, 433, 301, 301, 301, 301, 301, 301, 304,
- 296, 302, 302, 302, 302, 302, 302, 305, 283, 304,
- 304, 304, 304, 304, 304, 307, 282, 305, 305, 305,
- 305, 305, 305, 308, 281, 307, 307, 307, 307, 307,
- 307, 313, 156, 308, 308, 308, 308, 308, 308, 314,
- 132, 313, 313, 313, 313, 313, 313, 315, 156, 314,
- 314, 314, 314, 314, 314, 422, 156, 315, 315, 315,
- 315, 315, 315, 285, 285, 285, 324, 156, 156, 326,
- 410, 156, 404, 156, 474, 405, 411, 284, 284, 284,
- 284, 284, 327, 481, 156, 418, 156, 454, 481, 328,
-
- 255, 423, 327, 327, 327, 327, 327, 327, 288, 288,
- 288, 329, 156, 256, 156, 438, 465, 156, 132, 331,
- 284, 284, 284, 284, 284, 425, 481, 332, 156, 156,
- 156, 481, 451, 255, 333, 437, 443, 332, 332, 332,
- 332, 332, 332, 229, 257, 156, 256, 284, 284, 284,
- 284, 284, 156, 481, 156, 444, 156, 470, 481, 471,
- 255, 284, 284, 284, 284, 284, 336, 481, 452, 156,
- 475, 453, 481, 256, 255, 156, 336, 336, 336, 336,
- 336, 336, 428, 428, 428, 428, 428, 256, 290, 290,
- 290, 290, 290, 156, 481, 429, 466, 250, 337, 481,
-
- 457, 255, 153, 153, 153, 153, 153, 334, 337, 337,
- 337, 337, 337, 337, 256, 249, 156, 334, 334, 334,
- 334, 334, 334, 284, 284, 284, 284, 290, 156, 292,
- 156, 156, 132, 338, 292, 292, 293, 458, 460, 156,
- 132, 132, 294, 338, 338, 338, 338, 338, 338, 295,
- 339, 132, 294, 294, 294, 294, 294, 294, 341, 469,
- 339, 339, 339, 339, 339, 339, 342, 156, 341, 341,
- 341, 341, 341, 341, 344, 132, 342, 342, 342, 342,
- 342, 342, 345, 229, 344, 344, 344, 344, 344, 344,
- 473, 156, 345, 345, 345, 345, 345, 345, 91, 91,
-
- 91, 91, 91, 349, 481, 481, 481, 481, 481, 156,
- 94, 463, 480, 349, 349, 349, 349, 349, 349, 350,
- 481, 156, 156, 479, 96, 118, 220, 478, 217, 350,
- 350, 350, 350, 350, 350, 358, 322, 322, 322, 358,
- 166, 286, 464, 362, 322, 322, 322, 362, 359, 156,
- 156, 156, 156, 200, 286, 132, 363, 476, 477, 132,
- 366, 287, 325, 360, 360, 360, 325, 132, 286, 289,
- 366, 366, 366, 366, 366, 366, 358, 322, 322, 322,
- 358, 361, 286, 181, 181, 181, 181, 181, 287, 359,
- 132, 361, 361, 361, 361, 361, 361, 285, 285, 285,
-
- 324, 132, 287, 326, 132, 132, 132, 40, 132, 118,
- 132, 190, 190, 190, 190, 190, 327, 40, 40, 40,
- 40, 40, 40, 328, 132, 132, 327, 327, 327, 327,
- 327, 327, 330, 364, 364, 364, 330, 132, 128, 118,
- 118, 176, 368, 286, 166, 203, 203, 203, 203, 203,
- 156, 365, 368, 368, 368, 368, 368, 368, 289, 151,
- 132, 365, 365, 365, 365, 365, 365, 288, 288, 288,
- 329, 156, 132, 59, 65, 61, 128, 49, 331, 125,
- 118, 108, 103, 102, 93, 81, 332, 49, 49, 49,
- 49, 49, 49, 333, 370, 60, 332, 332, 332, 332,
-
- 332, 332, 372, 59, 370, 370, 370, 370, 370, 370,
- 51, 48, 372, 372, 372, 372, 372, 372, 164, 164,
- 164, 164, 164, 375, 481, 36, 36, 481, 481, 481,
- 94, 481, 481, 375, 375, 375, 375, 375, 375, 376,
- 481, 481, 481, 481, 96, 481, 481, 481, 481, 376,
- 376, 376, 376, 376, 376, 362, 322, 322, 322, 362,
- 377, 481, 481, 481, 481, 481, 286, 481, 363, 481,
- 377, 377, 377, 377, 377, 377, 378, 481, 481, 156,
- 481, 289, 481, 481, 481, 381, 378, 378, 378, 378,
- 378, 378, 382, 481, 383, 389, 481, 481, 481, 384,
-
- 385, 390, 481, 386, 481, 389, 389, 389, 389, 389,
- 389, 390, 390, 390, 390, 390, 390, 391, 481, 481,
- 481, 481, 481, 392, 481, 481, 481, 391, 391, 391,
- 391, 391, 391, 392, 392, 392, 392, 392, 392, 400,
- 481, 481, 481, 481, 481, 401, 481, 481, 481, 400,
- 400, 400, 400, 400, 400, 401, 401, 401, 401, 401,
- 401, 402, 481, 481, 481, 481, 481, 412, 481, 481,
- 481, 402, 402, 402, 402, 402, 402, 412, 412, 412,
- 412, 412, 412, 413, 481, 481, 481, 481, 481, 252,
- 481, 481, 481, 413, 413, 413, 413, 413, 413, 252,
-
- 252, 252, 252, 252, 252, 414, 414, 414, 414, 414,
- 481, 481, 285, 481, 481, 481, 481, 481, 481, 481,
- 481, 415, 285, 285, 285, 285, 285, 285, 288, 481,
- 481, 416, 414, 414, 414, 414, 414, 481, 288, 288,
- 288, 288, 288, 288, 481, 481, 481, 481, 415, 427,
- 481, 481, 428, 428, 428, 428, 428, 481, 416, 427,
- 427, 427, 427, 427, 427, 429, 428, 428, 428, 428,
- 428, 481, 428, 428, 428, 428, 428, 481, 431, 429,
- 481, 481, 481, 481, 481, 429, 481, 481, 481, 442,
- 481, 481, 431, 439, 439, 439, 439, 439, 431, 442,
-
- 442, 442, 442, 442, 442, 481, 429, 428, 428, 428,
- 428, 428, 440, 481, 481, 481, 481, 481, 481, 431,
- 429, 481, 440, 440, 440, 440, 440, 440, 448, 481,
- 481, 481, 481, 431, 481, 481, 481, 481, 448, 448,
- 448, 448, 448, 448, 428, 428, 428, 428, 428, 455,
- 481, 481, 428, 428, 428, 428, 428, 429, 481, 455,
- 455, 455, 455, 455, 455, 429, 481, 481, 481, 456,
- 431, 449, 449, 449, 449, 449, 481, 481, 431, 456,
- 456, 456, 456, 456, 456, 481, 481, 481, 481, 481,
- 450, 481, 481, 481, 481, 481, 461, 481, 481, 481,
-
- 450, 450, 450, 450, 450, 450, 461, 461, 461, 461,
- 461, 461, 462, 481, 481, 481, 481, 481, 467, 481,
- 481, 481, 462, 462, 462, 462, 462, 462, 467, 467,
- 467, 467, 467, 467, 468, 481, 481, 481, 481, 481,
- 430, 481, 481, 481, 468, 468, 468, 468, 468, 468,
- 430, 430, 430, 430, 430, 430, 472, 481, 481, 481,
- 481, 481, 430, 481, 481, 481, 472, 472, 472, 472,
- 472, 472, 430, 430, 430, 430, 430, 430, 40, 481,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 46,
- 46, 481, 46, 46, 49, 481, 49, 49, 49, 49,
-
- 49, 49, 49, 49, 49, 56, 56, 481, 56, 56,
- 84, 481, 481, 84, 84, 91, 91, 91, 91, 91,
- 91, 91, 91, 91, 95, 481, 95, 95, 481, 95,
- 95, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 117, 117, 481, 117, 117, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 67,
- 67, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 131, 131, 481, 131, 131, 153, 153, 153, 153, 153,
-
- 153, 153, 153, 153, 155, 155, 481, 155, 155, 164,
- 164, 164, 164, 164, 164, 164, 164, 164, 181, 181,
- 181, 181, 181, 181, 181, 181, 181, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 190,
- 190, 190, 190, 190, 190, 190, 190, 190, 203, 203,
- 203, 203, 203, 203, 203, 203, 203, 215, 215, 215,
- 481, 215, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 247, 247, 247, 481, 247, 252,
- 252, 252, 252, 481, 252, 252, 252, 252, 252, 252,
- 279, 279, 279, 481, 279, 285, 481, 285, 285, 285,
-
- 285, 285, 285, 285, 285, 285, 288, 481, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 291, 291, 291,
- 291, 291, 291, 291, 291, 291, 291, 291, 316, 316,
- 316, 481, 316, 325, 325, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 351, 351, 351, 481, 351,
- 417, 417, 417, 481, 481, 481, 417, 481, 481, 417,
- 417, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 430, 430, 430, 481, 481, 430, 430, 430, 481, 430,
- 430, 441, 441, 441, 441, 441, 441, 441, 441, 441,
-
- 7, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481
+ 21, 8, 22, 8, 8, 8, 23, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 25, 24, 24, 24, 24, 24, 24, 26, 24, 24,
+ 24, 24, 24, 27, 28, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 25, 24,
+ 24, 24, 24, 24, 24, 26, 24, 24, 24, 24,
+ 24, 8, 29, 30, 24, 31, 36, 31, 36, 41,
+ 41, 32, 154, 32, 37, 37, 37, 37, 37, 37,
+
+ 37, 37, 37, 37, 33, 34, 33, 34, 38, 38,
+ 38, 38, 38, 91, 91, 36, 54, 36, 52, 52,
+ 32, 91, 32, 91, 94, 95, 94, 95, 108, 41,
+ 50, 154, 33, 34, 33, 34, 42, 135, 53, 56,
+ 91, 104, 39, 41, 154, 35, 130, 35, 57, 96,
+ 154, 105, 58, 93, 93, 91, 108, 481, 52, 91,
+ 481, 93, 97, 93, 91, 135, 53, 56, 107, 104,
+ 50, 39, 43, 94, 94, 44, 57, 96, 53, 105,
+ 93, 132, 45, 45, 45, 45, 45, 45, 154, 42,
+ 98, 106, 137, 47, 147, 93, 107, 159, 128, 93,
+
+ 130, 154, 188, 130, 93, 130, 53, 130, 47, 150,
+ 132, 45, 45, 45, 45, 45, 45, 61, 98, 106,
+ 137, 91, 147, 154, 62, 63, 159, 64, 37, 37,
+ 37, 37, 37, 154, 65, 65, 66, 67, 68, 65,
+ 69, 70, 71, 65, 72, 65, 73, 74, 65, 75,
+ 65, 76, 77, 78, 65, 65, 65, 65, 65, 65,
+ 79, 93, 80, 65, 65, 66, 67, 68, 65, 69,
+ 70, 71, 72, 65, 73, 74, 65, 75, 65, 76,
+ 77, 78, 65, 65, 65, 65, 65, 65, 131, 91,
+ 138, 65, 82, 136, 130, 154, 38, 38, 38, 38,
+
+ 38, 481, 130, 59, 84, 154, 160, 85, 91, 130,
+ 86, 94, 95, 133, 87, 88, 131, 89, 155, 138,
+ 91, 136, 156, 65, 134, 94, 141, 130, 90, 93,
+ 39, 41, 154, 84, 154, 160, 85, 154, 126, 86,
+ 145, 133, 87, 88, 146, 89, 100, 155, 93, 176,
+ 156, 65, 134, 100, 100, 100, 100, 100, 100, 39,
+ 93, 229, 130, 481, 139, 188, 130, 126, 154, 145,
+ 140, 91, 50, 146, 65, 65, 142, 176, 130, 158,
+ 91, 41, 100, 100, 100, 100, 100, 100, 40, 40,
+ 40, 109, 139, 143, 111, 152, 157, 144, 140, 90,
+
+ 130, 154, 91, 194, 167, 142, 154, 112, 158, 166,
+ 154, 93, 91, 173, 112, 112, 112, 112, 112, 112,
+ 93, 143, 91, 152, 157, 144, 91, 42, 41, 40,
+ 91, 91, 167, 91, 41, 212, 130, 170, 166, 172,
+ 113, 173, 93, 112, 112, 112, 112, 112, 112, 116,
+ 220, 174, 93, 481, 213, 154, 116, 116, 116, 116,
+ 116, 116, 93, 41, 175, 170, 93, 481, 172, 91,
+ 93, 93, 357, 93, 42, 93, 191, 41, 220, 174,
+ 42, 192, 117, 195, 186, 116, 116, 116, 116, 116,
+ 116, 119, 175, 193, 130, 201, 130, 196, 119, 119,
+
+ 119, 119, 119, 119, 50, 191, 130, 130, 213, 93,
+ 192, 130, 195, 186, 197, 217, 215, 154, 50, 204,
+ 194, 193, 41, 130, 201, 196, 205, 119, 119, 119,
+ 119, 119, 119, 49, 49, 49, 120, 199, 206, 154,
+ 91, 212, 197, 208, 122, 154, 207, 130, 204, 154,
+ 209, 271, 123, 130, 205, 93, 356, 154, 91, 123,
+ 123, 123, 123, 123, 123, 199, 206, 91, 42, 154,
+ 154, 208, 481, 91, 91, 207, 213, 355, 354, 209,
+ 93, 93, 41, 353, 247, 124, 231, 154, 123, 123,
+ 123, 123, 123, 123, 100, 154, 219, 227, 93, 232,
+
+ 234, 100, 100, 100, 100, 100, 100, 93, 213, 130,
+ 237, 238, 130, 93, 93, 231, 279, 285, 154, 154,
+ 241, 285, 130, 50, 219, 227, 235, 232, 239, 234,
+ 100, 100, 100, 100, 100, 100, 149, 257, 237, 238,
+ 154, 240, 154, 149, 149, 149, 149, 149, 149, 241,
+ 117, 154, 267, 268, 272, 235, 239, 91, 288, 154,
+ 213, 285, 242, 154, 371, 257, 130, 286, 316, 154,
+ 240, 296, 149, 149, 149, 149, 149, 149, 162, 264,
+ 267, 268, 272, 273, 154, 162, 162, 162, 162, 162,
+ 162, 242, 250, 250, 250, 250, 250, 93, 252, 296,
+
+ 154, 285, 403, 253, 285, 254, 92, 286, 264, 154,
+ 335, 285, 273, 270, 162, 162, 162, 162, 162, 162,
+ 164, 154, 309, 320, 319, 274, 308, 164, 164, 164,
+ 164, 164, 164, 154, 250, 250, 250, 250, 250, 335,
+ 252, 270, 288, 154, 255, 253, 346, 254, 154, 306,
+ 286, 309, 288, 274, 92, 308, 164, 164, 164, 164,
+ 164, 164, 99, 99, 99, 99, 99, 154, 114, 318,
+ 114, 311, 154, 310, 91, 346, 343, 347, 306, 213,
+ 154, 171, 154, 154, 367, 369, 255, 352, 171, 171,
+ 171, 171, 171, 171, 283, 283, 283, 283, 283, 311,
+
+ 481, 310, 317, 154, 343, 481, 347, 254, 179, 222,
+ 179, 222, 367, 369, 93, 154, 379, 171, 171, 171,
+ 171, 171, 171, 110, 177, 177, 177, 110, 282, 41,
+ 283, 283, 283, 283, 283, 321, 321, 321, 321, 321,
+ 481, 447, 178, 254, 379, 285, 255, 373, 322, 178,
+ 178, 178, 178, 178, 178, 283, 283, 283, 283, 283,
+ 345, 321, 321, 321, 321, 321, 154, 154, 254, 281,
+ 447, 154, 280, 154, 322, 42, 373, 374, 178, 178,
+ 178, 178, 178, 178, 40, 40, 40, 109, 345, 130,
+ 111, 286, 130, 229, 92, 283, 283, 283, 283, 283,
+
+ 481, 154, 446, 112, 380, 285, 374, 255, 254, 154,
+ 112, 112, 112, 112, 112, 112, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 481, 249, 481, 254,
+ 446, 285, 248, 380, 254, 154, 113, 399, 285, 112,
+ 112, 112, 112, 112, 112, 180, 406, 255, 154, 130,
+ 130, 286, 180, 180, 180, 180, 180, 180, 358, 321,
+ 321, 321, 358, 154, 285, 481, 399, 245, 255, 245,
+ 481, 359, 471, 255, 406, 285, 130, 286, 117, 288,
+ 285, 180, 180, 180, 180, 180, 180, 182, 130, 362,
+ 321, 321, 321, 362, 182, 182, 182, 182, 182, 182,
+
+ 285, 130, 363, 99, 99, 99, 99, 99, 154, 229,
+ 286, 110, 177, 177, 177, 110, 288, 41, 117, 92,
+ 387, 288, 216, 182, 182, 182, 182, 182, 182, 118,
+ 118, 118, 118, 118, 163, 163, 163, 163, 163, 165,
+ 388, 288, 154, 121, 184, 184, 184, 121, 183, 387,
+ 92, 154, 154, 92, 41, 183, 183, 183, 183, 183,
+ 183, 200, 154, 42, 181, 181, 181, 181, 181, 388,
+ 161, 161, 161, 161, 161, 189, 189, 189, 189, 189,
+ 393, 259, 130, 259, 183, 183, 183, 183, 183, 183,
+ 121, 184, 184, 184, 121, 50, 277, 298, 277, 298,
+
+ 130, 41, 453, 202, 202, 202, 202, 202, 393, 185,
+ 394, 395, 396, 130, 154, 407, 185, 185, 185, 185,
+ 185, 185, 154, 358, 321, 321, 321, 358, 408, 285,
+ 453, 397, 154, 154, 154, 130, 359, 154, 154, 394,
+ 395, 396, 50, 154, 407, 185, 185, 185, 185, 185,
+ 185, 49, 49, 49, 120, 154, 408, 409, 418, 397,
+ 434, 398, 122, 362, 321, 321, 321, 362, 404, 154,
+ 123, 405, 154, 154, 285, 286, 363, 123, 123, 123,
+ 123, 123, 123, 154, 130, 409, 418, 419, 434, 314,
+ 398, 314, 154, 350, 130, 350, 420, 404, 410, 375,
+
+ 405, 375, 130, 124, 411, 154, 123, 123, 123, 123,
+ 123, 123, 190, 154, 130, 288, 419, 154, 130, 190,
+ 190, 190, 190, 190, 190, 420, 410, 289, 289, 289,
+ 289, 289, 411, 389, 470, 389, 154, 130, 435, 422,
+ 254, 423, 421, 414, 414, 414, 414, 414, 190, 190,
+ 190, 190, 190, 190, 148, 148, 148, 148, 148, 415,
+ 154, 154, 470, 154, 154, 433, 424, 435, 422, 425,
+ 423, 421, 154, 198, 437, 438, 436, 130, 154, 255,
+ 198, 198, 198, 198, 198, 198, 130, 154, 329, 364,
+ 364, 364, 329, 433, 424, 417, 154, 128, 425, 285,
+
+ 154, 154, 117, 437, 438, 436, 130, 117, 432, 198,
+ 198, 198, 198, 198, 198, 203, 154, 414, 414, 414,
+ 414, 414, 203, 203, 203, 203, 203, 203, 324, 360,
+ 360, 360, 324, 415, 285, 169, 432, 165, 154, 151,
+ 288, 443, 130, 130, 59, 444, 481, 481, 481, 481,
+ 481, 203, 203, 203, 203, 203, 203, 161, 161, 161,
+ 161, 161, 481, 154, 426, 426, 426, 426, 426, 417,
+ 443, 154, 445, 452, 444, 457, 210, 427, 79, 154,
+ 286, 61, 154, 210, 210, 210, 210, 210, 210, 426,
+ 426, 426, 426, 426, 128, 125, 451, 154, 417, 117,
+
+ 445, 452, 427, 103, 457, 458, 460, 102, 454, 154,
+ 154, 475, 210, 210, 210, 210, 210, 210, 163, 163,
+ 163, 163, 163, 154, 451, 101, 154, 154, 154, 426,
+ 426, 426, 426, 426, 458, 460, 454, 211, 474, 475,
+ 476, 429, 427, 477, 211, 211, 211, 211, 211, 211,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 81, 154, 154, 427, 60, 154, 59, 474, 427, 476,
+ 463, 459, 477, 211, 211, 211, 211, 211, 211, 218,
+ 154, 429, 51, 48, 478, 481, 218, 218, 218, 218,
+ 218, 218, 426, 426, 426, 426, 426, 481, 464, 459,
+
+ 465, 469, 429, 466, 481, 427, 154, 429, 154, 154,
+ 154, 154, 481, 478, 481, 218, 218, 218, 218, 218,
+ 218, 110, 177, 177, 177, 110, 464, 41, 465, 469,
+ 481, 466, 426, 426, 426, 426, 426, 473, 481, 481,
+ 221, 481, 481, 154, 429, 427, 481, 221, 221, 221,
+ 221, 221, 221, 441, 441, 441, 441, 441, 448, 448,
+ 448, 448, 448, 481, 481, 473, 427, 480, 479, 481,
+ 481, 427, 481, 42, 481, 154, 221, 221, 221, 221,
+ 221, 221, 223, 154, 429, 481, 481, 481, 481, 223,
+ 223, 223, 223, 223, 223, 480, 479, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 429, 481, 481, 481, 481,
+ 429, 481, 481, 481, 481, 481, 481, 481, 223, 223,
+ 223, 223, 223, 223, 181, 181, 181, 181, 181, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 224, 481, 481, 481, 481, 481, 481,
+ 224, 224, 224, 224, 224, 224, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 224,
+ 224, 224, 224, 224, 224, 118, 118, 118, 118, 118,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 225, 481, 481, 481, 481, 481,
+ 481, 225, 225, 225, 225, 225, 225, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 225, 225, 225, 225, 225, 225, 121, 184, 184, 184,
+ 121, 481, 481, 481, 481, 481, 481, 41, 481, 481,
+ 481, 481, 481, 481, 481, 226, 481, 481, 481, 481,
+ 481, 481, 226, 226, 226, 226, 226, 226, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 50, 481,
+
+ 481, 226, 226, 226, 226, 226, 226, 189, 189, 189,
+ 189, 189, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 230, 481, 481, 481,
+ 481, 481, 481, 230, 230, 230, 230, 230, 230, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 230, 230, 230, 230, 230, 230, 233, 481,
+ 481, 481, 481, 481, 481, 233, 233, 233, 233, 233,
+ 233, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 233, 233, 233, 233, 233, 233,
+ 202, 202, 202, 202, 202, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 236,
+ 481, 481, 481, 481, 481, 481, 236, 236, 236, 236,
+ 236, 236, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 236, 236, 236, 236, 236,
+ 236, 243, 481, 481, 481, 481, 481, 481, 243, 243,
+ 243, 243, 243, 243, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 243, 243, 243,
+ 243, 243, 243, 163, 163, 163, 163, 163, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 244, 481, 481, 481, 481, 481, 481, 244,
+ 244, 244, 244, 244, 244, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 244, 244,
+ 244, 244, 244, 244, 256, 481, 481, 481, 481, 481,
+ 481, 256, 256, 256, 256, 256, 256, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 256, 256, 256, 256, 256, 256, 110, 177, 177, 177,
+ 110, 481, 41, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 258, 481, 481, 481, 481,
+ 481, 481, 258, 258, 258, 258, 258, 258, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 42, 481,
+ 481, 258, 258, 258, 258, 258, 258, 260, 481, 481,
+ 481, 481, 481, 481, 260, 260, 260, 260, 260, 260,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 260, 260, 260, 260, 260, 260, 181,
+ 181, 181, 181, 181, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 261, 481,
+ 481, 481, 481, 481, 481, 261, 261, 261, 261, 261,
+ 261, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 261, 261, 261, 261, 261, 261,
+ 118, 118, 118, 118, 118, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 262,
+
+ 481, 481, 481, 481, 481, 481, 262, 262, 262, 262,
+ 262, 262, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 262, 262, 262, 262, 262,
+ 262, 121, 184, 184, 184, 121, 481, 481, 481, 481,
+ 481, 481, 41, 481, 481, 481, 481, 481, 481, 481,
+ 263, 481, 481, 481, 481, 481, 481, 263, 263, 263,
+ 263, 263, 263, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 50, 481, 481, 263, 263, 263, 263,
+
+ 263, 263, 189, 189, 189, 189, 189, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 265, 481, 481, 481, 481, 481, 481, 265, 265,
+ 265, 265, 265, 265, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 265, 265, 265,
+ 265, 265, 265, 266, 481, 481, 481, 481, 481, 481,
+ 266, 266, 266, 266, 266, 266, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 266,
+
+ 266, 266, 266, 266, 266, 202, 202, 202, 202, 202,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 269, 481, 481, 481, 481, 481,
+ 481, 269, 269, 269, 269, 269, 269, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 269, 269, 269, 269, 269, 269, 275, 481, 481, 481,
+ 481, 481, 481, 275, 275, 275, 275, 275, 275, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 275, 275, 275, 275, 275, 275, 163, 163,
+ 163, 163, 163, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 276, 481, 481,
+ 481, 481, 481, 481, 276, 276, 276, 276, 276, 276,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 276, 276, 276, 276, 276, 276, 283,
+ 283, 283, 283, 289, 481, 291, 481, 481, 481, 481,
+ 291, 291, 292, 481, 481, 481, 481, 481, 293, 481,
+ 481, 481, 481, 481, 481, 293, 293, 293, 293, 293,
+
+ 293, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 294, 481, 481, 293, 293, 293, 293, 293, 293,
+ 295, 481, 481, 481, 481, 481, 481, 295, 295, 295,
+ 295, 295, 295, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 295, 295, 295, 295,
+ 295, 295, 110, 177, 177, 177, 110, 481, 41, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 297, 481, 481, 481, 481, 481, 481, 297, 297,
+
+ 297, 297, 297, 297, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 42, 481, 481, 297, 297, 297,
+ 297, 297, 297, 299, 481, 481, 481, 481, 481, 481,
+ 299, 299, 299, 299, 299, 299, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 117, 481, 481, 299,
+ 299, 299, 299, 299, 299, 181, 181, 181, 181, 181,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 300, 481, 481, 481, 481, 481,
+
+ 481, 300, 300, 300, 300, 300, 300, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 117, 481, 481,
+ 300, 300, 300, 300, 300, 300, 118, 118, 118, 118,
+ 118, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 301, 481, 481, 481, 481,
+ 481, 481, 301, 301, 301, 301, 301, 301, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 301, 301, 301, 301, 301, 301, 121, 184, 184,
+
+ 184, 121, 481, 481, 481, 481, 481, 481, 41, 481,
+ 481, 481, 481, 481, 481, 481, 302, 481, 481, 481,
+ 481, 481, 481, 302, 302, 302, 302, 302, 302, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 50,
+ 481, 481, 302, 302, 302, 302, 302, 302, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 92, 481, 481,
+ 481, 481, 481, 481, 92, 92, 92, 92, 92, 92,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 303, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 92, 92, 92, 92, 92, 92, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 303, 189, 189, 189, 189, 189, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 304, 481, 481, 481, 481, 481, 481, 304, 304,
+ 304, 304, 304, 304, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 304, 304, 304,
+ 304, 304, 304, 305, 481, 481, 481, 481, 481, 481,
+
+ 305, 305, 305, 305, 305, 305, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 305,
+ 305, 305, 305, 305, 305, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 129, 481, 481, 481, 481, 481,
+ 481, 129, 129, 129, 129, 129, 129, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 129, 129, 129, 129, 129, 129, 202, 202, 202, 202,
+
+ 202, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 307, 481, 481, 481, 481,
+ 481, 481, 307, 307, 307, 307, 307, 307, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 307, 307, 307, 307, 307, 307, 312, 481, 481,
+ 481, 481, 481, 481, 312, 312, 312, 312, 312, 312,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 312, 312, 312, 312, 312, 312, 163,
+
+ 163, 163, 163, 163, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 313, 481,
+ 481, 481, 481, 481, 481, 313, 313, 313, 313, 313,
+ 313, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 313, 313, 313, 313, 313, 313,
+ 284, 284, 284, 323, 481, 481, 325, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 326,
+ 481, 481, 481, 481, 481, 481, 326, 326, 326, 326,
+ 326, 326, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 327, 481, 481, 326, 326, 326, 326, 326,
+ 326, 287, 287, 287, 328, 481, 481, 481, 481, 481,
+ 481, 481, 330, 481, 481, 481, 481, 481, 481, 481,
+ 331, 481, 481, 481, 481, 481, 481, 331, 331, 331,
+ 331, 331, 331, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 332, 481, 481, 331, 331, 331, 331,
+ 331, 331, 289, 289, 289, 289, 289, 481, 481, 481,
+ 481, 481, 481, 481, 481, 254, 481, 481, 481, 481,
+
+ 481, 333, 481, 481, 481, 481, 481, 481, 333, 333,
+ 333, 333, 333, 333, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 255, 481, 481, 333, 333, 333,
+ 333, 333, 333, 283, 283, 283, 283, 289, 481, 291,
+ 481, 481, 481, 481, 291, 291, 292, 481, 481, 481,
+ 481, 481, 293, 481, 481, 481, 481, 481, 481, 293,
+ 293, 293, 293, 293, 293, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 294, 481, 481, 293, 293,
+
+ 293, 293, 293, 293, 334, 481, 481, 481, 481, 481,
+ 481, 334, 334, 334, 334, 334, 334, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 334, 334, 334, 334, 334, 334, 110, 177, 177, 177,
+ 110, 481, 41, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 336, 481, 481, 481, 481,
+ 481, 481, 336, 336, 336, 336, 336, 336, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 42, 481,
+
+ 481, 336, 336, 336, 336, 336, 336, 181, 181, 181,
+ 181, 181, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 337, 481, 481, 481,
+ 481, 481, 481, 337, 337, 337, 337, 337, 337, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 117,
+ 481, 481, 337, 337, 337, 337, 337, 337, 118, 118,
+ 118, 118, 118, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 338, 481, 481,
+ 481, 481, 481, 481, 338, 338, 338, 338, 338, 338,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 338, 338, 338, 338, 338, 338, 121,
+ 184, 184, 184, 121, 481, 481, 481, 481, 481, 481,
+ 41, 481, 481, 481, 481, 481, 481, 481, 339, 481,
+ 481, 481, 481, 481, 481, 339, 339, 339, 339, 339,
+ 339, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 50, 481, 481, 339, 339, 339, 339, 339, 339,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 340, 481, 481, 92,
+ 481, 481, 481, 481, 481, 481, 92, 92, 92, 92,
+ 92, 92, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 92, 92, 92, 92, 92,
+ 92, 189, 189, 189, 189, 189, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 341, 481, 481, 481, 481, 481, 481, 341, 341, 341,
+ 341, 341, 341, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 341, 341, 341, 341,
+ 341, 341, 148, 148, 148, 148, 148, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 342, 481, 481, 481, 481, 481, 481, 342, 342,
+ 342, 342, 342, 342, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 342, 342, 342,
+ 342, 342, 342, 202, 202, 202, 202, 202, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 344, 481, 481, 481, 481, 481, 481, 344,
+
+ 344, 344, 344, 344, 344, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 344, 344,
+ 344, 344, 344, 344, 348, 481, 481, 481, 481, 481,
+ 481, 348, 348, 348, 348, 348, 348, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 348, 348, 348, 348, 348, 348, 163, 163, 163, 163,
+ 163, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 349, 481, 481, 481, 481,
+
+ 481, 481, 349, 349, 349, 349, 349, 349, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 349, 349, 349, 349, 349, 349, 324, 360, 360,
+ 360, 324, 481, 285, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 361, 481, 481, 481,
+ 481, 481, 481, 361, 361, 361, 361, 361, 361, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 286,
+ 481, 481, 361, 361, 361, 361, 361, 361, 284, 284,
+
+ 284, 323, 481, 481, 325, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 326, 481, 481,
+ 481, 481, 481, 481, 326, 326, 326, 326, 326, 326,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 327, 481, 481, 326, 326, 326, 326, 326, 326, 329,
+ 364, 364, 364, 329, 481, 481, 481, 481, 481, 481,
+ 285, 481, 481, 481, 481, 481, 481, 481, 365, 481,
+ 481, 481, 481, 481, 481, 365, 365, 365, 365, 365,
+ 365, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 288, 481, 481, 365, 365, 365, 365, 365, 365,
+ 287, 287, 287, 328, 481, 481, 481, 481, 481, 481,
+ 481, 330, 481, 481, 481, 481, 481, 481, 481, 331,
+ 481, 481, 481, 481, 481, 481, 331, 331, 331, 331,
+ 331, 331, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 332, 481, 481, 331, 331, 331, 331, 331,
+ 331, 289, 289, 289, 289, 289, 481, 481, 481, 481,
+ 481, 481, 481, 481, 254, 481, 481, 481, 481, 481,
+
+ 366, 481, 481, 481, 481, 481, 481, 366, 366, 366,
+ 366, 366, 366, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 255, 481, 481, 366, 366, 366, 366,
+ 366, 366, 368, 481, 481, 481, 481, 481, 481, 368,
+ 368, 368, 368, 368, 368, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 368, 368,
+ 368, 368, 368, 368, 115, 481, 481, 481, 481, 481,
+ 481, 115, 115, 115, 115, 115, 115, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 115, 115, 115, 115, 115, 115, 370, 481, 481, 481,
+ 481, 481, 481, 370, 370, 370, 370, 370, 370, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 370, 370, 370, 370, 370, 370, 148, 148,
+ 148, 148, 148, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 129, 481, 481,
+ 481, 481, 481, 481, 129, 129, 129, 129, 129, 129,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 129, 129, 129, 129, 129, 129, 202,
+ 202, 202, 202, 202, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 372, 481,
+ 481, 481, 481, 481, 481, 372, 372, 372, 372, 372,
+ 372, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 372, 372, 372, 372, 372, 372,
+ 376, 481, 481, 481, 481, 481, 481, 376, 376, 376,
+
+ 376, 376, 376, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 376, 376, 376, 376,
+ 376, 376, 377, 481, 481, 481, 481, 481, 481, 377,
+ 377, 377, 377, 377, 377, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 377, 377,
+ 377, 377, 377, 377, 289, 289, 289, 289, 289, 481,
+ 481, 481, 481, 481, 481, 481, 481, 254, 481, 481,
+ 481, 481, 481, 378, 481, 481, 481, 481, 481, 481,
+
+ 378, 378, 378, 378, 378, 378, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 255, 481, 481, 378,
+ 378, 378, 378, 378, 378, 381, 481, 481, 481, 481,
+ 481, 481, 382, 481, 383, 481, 481, 481, 481, 384,
+ 385, 481, 481, 386, 481, 481, 481, 481, 154, 481,
+ 481, 481, 481, 481, 381, 481, 481, 481, 481, 481,
+ 382, 481, 383, 481, 481, 481, 481, 384, 385, 481,
+ 481, 386, 390, 481, 481, 481, 481, 481, 481, 390,
+ 390, 390, 390, 390, 390, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 390, 390,
+ 390, 390, 390, 390, 391, 481, 481, 481, 481, 481,
+ 481, 391, 391, 391, 391, 391, 391, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 391, 391, 391, 391, 391, 391, 392, 481, 481, 481,
+ 481, 481, 481, 392, 392, 392, 392, 392, 392, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 392, 392, 392, 392, 392, 392, 400, 481,
+ 481, 481, 481, 481, 481, 400, 400, 400, 400, 400,
+ 400, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 400, 400, 400, 400, 400, 400,
+ 401, 481, 481, 481, 481, 481, 481, 401, 401, 401,
+ 401, 401, 401, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 401, 401, 401, 401,
+ 401, 401, 402, 481, 481, 481, 481, 481, 481, 402,
+
+ 402, 402, 402, 402, 402, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 402, 402,
+ 402, 402, 402, 402, 412, 481, 481, 481, 481, 481,
+ 481, 412, 412, 412, 412, 412, 412, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 412, 412, 412, 412, 412, 412, 413, 481, 481, 481,
+ 481, 481, 481, 413, 413, 413, 413, 413, 413, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 413, 413, 413, 413, 413, 413, 431, 481,
+ 481, 481, 481, 481, 481, 431, 431, 431, 431, 431,
+ 431, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 431, 431, 431, 431, 431, 431,
+ 440, 481, 481, 481, 481, 481, 481, 440, 440, 440,
+ 440, 440, 440, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 440, 440, 440, 440,
+
+ 440, 440, 441, 441, 441, 441, 441, 481, 481, 481,
+ 481, 481, 481, 481, 481, 427, 481, 481, 481, 481,
+ 481, 442, 481, 481, 481, 481, 481, 481, 442, 442,
+ 442, 442, 442, 442, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 429, 481, 481, 442, 442, 442,
+ 442, 442, 442, 448, 448, 448, 448, 448, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 449, 481, 481, 481, 481, 481, 481, 449,
+ 449, 449, 449, 449, 449, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 449, 449,
+ 449, 449, 449, 449, 450, 481, 481, 481, 481, 481,
+ 481, 450, 450, 450, 450, 450, 450, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 450, 450, 450, 450, 450, 450, 455, 481, 481, 481,
+ 481, 481, 481, 455, 455, 455, 455, 455, 455, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 455, 455, 455, 455, 455, 455, 456, 481,
+ 481, 481, 481, 481, 481, 456, 456, 456, 456, 456,
+ 456, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 456, 456, 456, 456, 456, 456,
+ 461, 481, 481, 481, 481, 481, 481, 461, 461, 461,
+ 461, 461, 461, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 461, 461, 461, 461,
+ 461, 461, 462, 481, 481, 481, 481, 481, 481, 462,
+
+ 462, 462, 462, 462, 462, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 462, 462,
+ 462, 462, 462, 462, 467, 481, 481, 481, 481, 481,
+ 481, 467, 467, 467, 467, 467, 467, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 467, 467, 467, 467, 467, 467, 468, 481, 481, 481,
+ 481, 481, 481, 468, 468, 468, 468, 468, 468, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 468, 468, 468, 468, 468, 468, 472, 481,
+ 481, 481, 481, 481, 481, 472, 472, 472, 472, 472,
+ 472, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 472, 472, 472, 472, 472, 472,
+ 40, 481, 481, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 46, 46, 481, 46, 46, 49, 481,
+ 481, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 55, 55, 481, 55, 55, 83, 481, 481, 83,
+
+ 83, 92, 481, 92, 92, 481, 92, 92, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99, 110, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 110, 115, 115, 481, 115, 115, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 118, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 129, 129, 481, 129, 129, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 153, 153,
+ 481, 153, 153, 161, 161, 161, 161, 161, 161, 161,
+
+ 161, 161, 161, 163, 163, 163, 163, 163, 163, 163,
+ 163, 163, 163, 168, 168, 168, 181, 181, 181, 181,
+ 181, 181, 181, 181, 181, 181, 49, 49, 481, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 127, 127, 127, 127, 127, 127, 127, 127,
+ 127, 127, 127, 127, 127, 127, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
+
+ 214, 214, 214, 214, 40, 481, 481, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 228, 228, 228,
+ 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 246, 246, 246, 246, 251, 251, 251, 251, 251,
+ 251, 481, 251, 251, 251, 251, 251, 251, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 278, 278, 278, 278, 251,
+ 251, 251, 251, 251, 251, 481, 251, 251, 251, 251,
+ 251, 251, 284, 481, 481, 284, 284, 284, 284, 284,
+
+ 284, 284, 284, 284, 284, 287, 481, 481, 287, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 115, 115, 481, 115, 115, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 315, 315, 315, 315, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 287,
+ 481, 481, 287, 287, 287, 287, 287, 287, 287, 287,
+ 287, 287, 329, 329, 329, 329, 329, 329, 329, 329,
+
+ 329, 329, 329, 329, 329, 251, 251, 251, 251, 251,
+ 481, 481, 251, 251, 251, 251, 251, 251, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 115, 115, 481, 115, 115, 49,
+ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 351, 351, 351, 351, 284, 284, 481, 284,
+ 284, 284, 284, 284, 284, 284, 284, 284, 284, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 287, 287, 481, 287, 287, 287, 287, 287,
+
+ 287, 287, 287, 287, 287, 329, 329, 329, 329, 329,
+ 329, 329, 329, 329, 329, 329, 329, 329, 251, 251,
+ 251, 251, 251, 481, 481, 251, 251, 251, 251, 251,
+ 251, 416, 416, 416, 416, 481, 481, 481, 481, 416,
+ 481, 481, 416, 416, 428, 428, 428, 428, 481, 481,
+ 481, 428, 428, 428, 481, 428, 428, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 439, 439, 439,
+ 439, 439, 439, 439, 439, 439, 439, 7, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481
} ;
-static yyconst short int yy_chk[2462] =
+static yyconst flex_int16_t yy_chk[6664] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -569,263 +1049,725 @@ static yyconst short int yy_chk[2462] =
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,
- 3, 480, 4, 9, 9, 9, 9, 9, 12, 3,
- 17, 4, 10, 10, 10, 10, 10, 11, 11, 11,
- 11, 11, 3, 3, 4, 4, 13, 69, 12, 13,
- 15, 53, 53, 17, 69, 3, 13, 4, 26, 13,
-
- 13, 13, 13, 13, 13, 15, 18, 27, 23, 18,
- 27, 27, 26, 49, 11, 40, 18, 28, 23, 477,
- 28, 27, 52, 23, 89, 56, 23, 89, 49, 23,
- 32, 28, 18, 23, 23, 40, 23, 43, 27, 56,
- 43, 18, 21, 24, 32, 52, 66, 43, 66, 21,
- 21, 28, 21, 24, 24, 24, 24, 24, 24, 21,
- 32, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 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, 3, 5, 4, 6, 15,
+ 12, 3, 480, 4, 9, 9, 9, 9, 9, 10,
+
+ 10, 10, 10, 10, 3, 3, 4, 4, 11, 11,
+ 11, 11, 11, 24, 32, 5, 18, 6, 17, 18,
+ 3, 25, 4, 33, 25, 25, 33, 33, 39, 49,
+ 15, 477, 3, 3, 4, 4, 12, 69, 17, 18,
+ 36, 32, 11, 40, 470, 3, 69, 4, 18, 25,
+ 464, 33, 18, 24, 32, 55, 39, 43, 52, 26,
+ 43, 25, 26, 33, 34, 69, 17, 18, 36, 32,
+ 49, 11, 13, 53, 53, 13, 18, 25, 52, 33,
+ 36, 67, 13, 13, 13, 13, 13, 13, 459, 40,
+ 26, 34, 71, 43, 78, 55, 36, 88, 128, 26,
+
+ 78, 443, 128, 67, 34, 71, 52, 80, 13, 80,
+ 67, 13, 13, 13, 13, 13, 13, 21, 26, 34,
+ 71, 92, 78, 88, 21, 21, 88, 21, 37, 37,
+ 37, 37, 37, 437, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 92, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 34, 33,
- 36, 21, 33, 33, 37, 37, 37, 37, 37, 59,
-
- 44, 59, 34, 33, 36, 38, 38, 38, 38, 38,
- 44, 44, 44, 44, 44, 44, 45, 86, 34, 57,
- 33, 36, 57, 57, 59, 47, 45, 45, 45, 45,
- 45, 45, 47, 57, 86, 47, 47, 47, 47, 47,
- 47, 55, 38, 42, 42, 42, 42, 58, 68, 42,
- 71, 55, 55, 55, 55, 55, 55, 72, 88, 144,
- 128, 58, 42, 68, 128, 88, 144, 70, 58, 42,
- 71, 73, 42, 42, 42, 42, 42, 42, 50, 50,
- 50, 50, 70, 78, 74, 72, 78, 73, 65, 50,
- 78, 80, 470, 70, 74, 76, 76, 50, 65, 65,
-
- 65, 65, 65, 65, 50, 75, 76, 50, 50, 50,
- 50, 50, 50, 77, 80, 82, 141, 83, 77, 87,
- 75, 90, 91, 85, 90, 82, 75, 83, 83, 83,
- 83, 83, 83, 85, 87, 77, 91, 138, 152, 77,
- 138, 109, 95, 464, 141, 152, 109, 96, 110, 111,
- 82, 92, 92, 92, 92, 92, 95, 96, 96, 96,
- 96, 96, 96, 92, 98, 99, 109, 459, 110, 111,
- 92, 98, 101, 104, 105, 107, 121, 92, 98, 99,
- 92, 92, 92, 92, 92, 92, 101, 104, 105, 107,
- 135, 121, 100, 104, 106, 133, 150, 100, 122, 135,
-
- 101, 99, 100, 100, 100, 100, 100, 100, 106, 107,
- 105, 120, 148, 122, 133, 443, 150, 437, 148, 177,
- 114, 120, 106, 112, 112, 112, 112, 112, 149, 112,
- 114, 114, 114, 114, 114, 114, 120, 157, 160, 177,
- 157, 201, 112, 149, 160, 201, 395, 158, 126, 112,
- 161, 159, 112, 112, 112, 112, 112, 112, 113, 113,
- 113, 113, 126, 158, 113, 161, 126, 162, 118, 159,
- 229, 164, 168, 395, 229, 432, 162, 113, 118, 118,
- 118, 118, 118, 118, 113, 164, 168, 113, 113, 113,
- 113, 113, 113, 116, 116, 116, 116, 116, 169, 422,
-
- 388, 192, 196, 119, 194, 171, 169, 172, 192, 196,
- 194, 206, 116, 119, 119, 119, 119, 119, 119, 171,
- 173, 172, 116, 116, 116, 116, 116, 116, 123, 123,
- 123, 123, 123, 206, 173, 208, 209, 210, 132, 123,
- 387, 175, 241, 209, 210, 241, 208, 123, 132, 132,
- 132, 132, 132, 132, 123, 175, 184, 123, 123, 123,
- 123, 123, 123, 124, 124, 124, 124, 219, 239, 215,
- 367, 184, 247, 156, 124, 199, 186, 215, 239, 351,
- 247, 219, 124, 156, 156, 156, 156, 156, 156, 124,
- 186, 199, 124, 124, 124, 124, 124, 124, 130, 130,
-
- 130, 130, 130, 186, 268, 205, 271, 310, 163, 207,
- 310, 312, 438, 271, 312, 268, 438, 130, 163, 163,
- 163, 163, 163, 163, 130, 205, 207, 130, 130, 130,
- 130, 130, 130, 154, 154, 154, 154, 154, 235, 167,
- 174, 232, 272, 347, 348, 346, 167, 264, 347, 348,
- 272, 235, 154, 167, 174, 238, 232, 240, 242, 154,
- 227, 264, 154, 154, 154, 154, 154, 154, 165, 165,
- 165, 165, 165, 373, 227, 253, 238, 240, 178, 242,
- 373, 174, 335, 264, 321, 227, 320, 165, 178, 178,
- 178, 178, 178, 178, 179, 253, 254, 165, 165, 165,
-
- 165, 165, 165, 180, 179, 179, 179, 179, 179, 179,
- 273, 254, 275, 180, 180, 180, 180, 180, 180, 182,
- 182, 182, 182, 182, 343, 279, 285, 316, 386, 183,
- 275, 386, 273, 279, 343, 316, 319, 318, 182, 183,
- 183, 183, 183, 183, 183, 185, 285, 288, 182, 182,
- 182, 182, 182, 182, 189, 185, 185, 185, 185, 185,
- 185, 325, 288, 435, 189, 189, 189, 189, 189, 189,
- 191, 191, 191, 191, 191, 284, 284, 284, 284, 284,
- 202, 325, 435, 286, 286, 286, 286, 286, 284, 191,
- 202, 202, 202, 202, 202, 202, 286, 306, 309, 191,
-
- 191, 191, 191, 191, 191, 204, 204, 204, 204, 204,
- 322, 322, 322, 322, 322, 211, 423, 317, 303, 306,
- 309, 423, 303, 322, 204, 211, 211, 211, 211, 211,
- 211, 212, 303, 330, 204, 204, 204, 204, 204, 204,
- 214, 212, 212, 212, 212, 212, 212, 418, 330, 311,
- 214, 214, 214, 214, 214, 214, 218, 218, 218, 218,
- 218, 221, 218, 374, 340, 359, 360, 218, 418, 218,
- 374, 221, 221, 221, 221, 221, 221, 222, 340, 324,
- 384, 301, 218, 223, 324, 359, 360, 222, 222, 222,
- 222, 222, 222, 223, 223, 223, 223, 223, 223, 224,
-
- 381, 382, 340, 384, 324, 225, 296, 381, 382, 224,
- 224, 224, 224, 224, 224, 225, 225, 225, 225, 225,
- 225, 226, 337, 337, 337, 337, 337, 230, 410, 363,
- 364, 226, 226, 226, 226, 226, 226, 230, 230, 230,
- 230, 230, 230, 231, 363, 364, 396, 421, 337, 236,
- 421, 410, 396, 231, 231, 231, 231, 231, 231, 236,
- 236, 236, 236, 236, 236, 237, 341, 341, 341, 341,
- 341, 244, 283, 436, 369, 237, 237, 237, 237, 237,
- 237, 244, 244, 244, 244, 244, 244, 245, 369, 383,
- 282, 369, 341, 246, 420, 436, 383, 245, 245, 245,
-
- 245, 245, 245, 246, 246, 246, 246, 246, 246, 251,
- 251, 251, 251, 251, 420, 251, 281, 453, 393, 397,
- 251, 329, 251, 252, 252, 252, 252, 252, 258, 252,
- 380, 329, 393, 397, 252, 251, 252, 453, 258, 258,
- 258, 258, 258, 258, 380, 398, 329, 405, 385, 252,
- 256, 256, 256, 256, 256, 385, 256, 406, 405, 398,
- 259, 256, 256, 256, 380, 406, 280, 407, 274, 256,
- 259, 259, 259, 259, 259, 259, 256, 260, 407, 256,
- 256, 256, 256, 256, 256, 261, 419, 260, 260, 260,
- 260, 260, 260, 262, 267, 261, 261, 261, 261, 261,
-
- 261, 263, 419, 262, 262, 262, 262, 262, 262, 265,
- 257, 263, 263, 263, 263, 263, 263, 266, 250, 265,
- 265, 265, 265, 265, 265, 269, 249, 266, 266, 266,
- 266, 266, 266, 270, 248, 269, 269, 269, 269, 269,
- 269, 276, 243, 270, 270, 270, 270, 270, 270, 277,
- 234, 276, 276, 276, 276, 276, 276, 278, 408, 277,
- 277, 277, 277, 277, 277, 408, 399, 278, 278, 278,
- 278, 278, 278, 287, 287, 287, 287, 394, 471, 287,
- 399, 404, 394, 447, 471, 394, 399, 290, 290, 290,
- 290, 290, 287, 290, 409, 404, 458, 447, 290, 287,
-
- 290, 409, 287, 287, 287, 287, 287, 287, 289, 289,
- 289, 289, 425, 290, 411, 425, 458, 444, 233, 289,
- 291, 291, 291, 291, 291, 411, 291, 289, 424, 433,
- 465, 291, 444, 291, 289, 424, 433, 289, 289, 289,
- 289, 289, 289, 228, 220, 445, 291, 292, 292, 292,
- 292, 292, 434, 292, 446, 434, 473, 465, 292, 466,
- 292, 293, 293, 293, 293, 293, 297, 293, 445, 466,
- 473, 446, 293, 292, 293, 460, 297, 297, 297, 297,
- 297, 297, 428, 428, 428, 428, 428, 293, 294, 294,
- 294, 294, 294, 451, 294, 428, 460, 217, 299, 294,
-
- 451, 294, 344, 344, 344, 344, 344, 294, 299, 299,
- 299, 299, 299, 299, 294, 216, 203, 294, 294, 294,
- 294, 294, 294, 295, 295, 295, 295, 295, 344, 295,
- 452, 454, 198, 300, 295, 295, 295, 452, 454, 463,
- 197, 195, 295, 300, 300, 300, 300, 300, 300, 295,
- 302, 193, 295, 295, 295, 295, 295, 295, 304, 463,
- 302, 302, 302, 302, 302, 302, 305, 469, 304, 304,
- 304, 304, 304, 304, 307, 190, 305, 305, 305, 305,
- 305, 305, 308, 187, 307, 307, 307, 307, 307, 307,
- 469, 479, 308, 308, 308, 308, 308, 308, 313, 313,
-
- 313, 313, 313, 314, 415, 415, 415, 415, 415, 478,
- 313, 457, 479, 314, 314, 314, 314, 314, 314, 315,
- 415, 457, 476, 478, 313, 181, 176, 476, 170, 315,
- 315, 315, 315, 315, 315, 326, 326, 326, 326, 326,
- 166, 326, 457, 331, 331, 331, 331, 331, 326, 155,
- 474, 475, 153, 151, 331, 147, 331, 474, 475, 146,
- 334, 326, 327, 327, 327, 327, 327, 145, 327, 331,
- 334, 334, 334, 334, 334, 334, 358, 358, 358, 358,
- 358, 327, 358, 368, 368, 368, 368, 368, 327, 358,
- 143, 327, 327, 327, 327, 327, 327, 328, 328, 328,
-
- 328, 142, 358, 328, 140, 139, 137, 336, 136, 368,
- 134, 370, 370, 370, 370, 370, 328, 336, 336, 336,
- 336, 336, 336, 328, 131, 129, 328, 328, 328, 328,
- 328, 328, 332, 332, 332, 332, 332, 370, 127, 117,
- 115, 108, 338, 332, 97, 372, 372, 372, 372, 372,
- 84, 332, 338, 338, 338, 338, 338, 338, 332, 81,
- 79, 332, 332, 332, 332, 332, 332, 333, 333, 333,
- 333, 372, 67, 63, 62, 61, 60, 339, 333, 54,
- 46, 39, 30, 29, 25, 22, 333, 339, 339, 339,
- 339, 339, 339, 333, 342, 20, 333, 333, 333, 333,
-
- 333, 333, 345, 19, 342, 342, 342, 342, 342, 342,
- 16, 14, 345, 345, 345, 345, 345, 345, 349, 349,
- 349, 349, 349, 350, 7, 6, 5, 0, 0, 0,
- 349, 0, 0, 350, 350, 350, 350, 350, 350, 361,
- 0, 0, 0, 0, 349, 0, 0, 0, 0, 361,
- 361, 361, 361, 361, 361, 362, 362, 362, 362, 362,
- 365, 0, 0, 0, 0, 0, 362, 0, 362, 0,
- 365, 365, 365, 365, 365, 365, 366, 0, 0, 371,
- 0, 362, 0, 0, 0, 371, 366, 366, 366, 366,
- 366, 366, 371, 0, 371, 375, 0, 0, 0, 371,
-
- 371, 376, 0, 371, 0, 375, 375, 375, 375, 375,
- 375, 376, 376, 376, 376, 376, 376, 377, 0, 0,
- 0, 0, 0, 378, 0, 0, 0, 377, 377, 377,
- 377, 377, 377, 378, 378, 378, 378, 378, 378, 390,
- 0, 0, 0, 0, 0, 391, 0, 0, 0, 390,
- 390, 390, 390, 390, 390, 391, 391, 391, 391, 391,
- 391, 392, 0, 0, 0, 0, 0, 400, 0, 0,
- 0, 392, 392, 392, 392, 392, 392, 400, 400, 400,
- 400, 400, 400, 401, 0, 0, 0, 0, 0, 402,
- 0, 0, 0, 401, 401, 401, 401, 401, 401, 402,
-
- 402, 402, 402, 402, 402, 403, 403, 403, 403, 403,
- 0, 0, 412, 0, 0, 0, 0, 0, 0, 0,
- 0, 403, 412, 412, 412, 412, 412, 412, 413, 0,
- 0, 403, 414, 414, 414, 414, 414, 0, 413, 413,
- 413, 413, 413, 413, 0, 0, 0, 0, 414, 416,
- 0, 0, 417, 417, 417, 417, 417, 0, 414, 416,
- 416, 416, 416, 416, 416, 417, 426, 426, 426, 426,
- 426, 0, 430, 430, 430, 430, 430, 0, 417, 426,
- 0, 0, 0, 0, 0, 430, 0, 0, 0, 431,
- 0, 0, 426, 427, 427, 427, 427, 427, 430, 431,
-
- 431, 431, 431, 431, 431, 0, 427, 439, 439, 439,
- 439, 439, 427, 0, 0, 0, 0, 0, 0, 427,
- 439, 0, 427, 427, 427, 427, 427, 427, 440, 0,
- 0, 0, 0, 439, 0, 0, 0, 0, 440, 440,
- 440, 440, 440, 440, 441, 441, 441, 441, 441, 448,
- 0, 0, 449, 449, 449, 449, 449, 441, 0, 448,
- 448, 448, 448, 448, 448, 449, 0, 0, 0, 450,
- 441, 442, 442, 442, 442, 442, 0, 0, 449, 450,
- 450, 450, 450, 450, 450, 0, 0, 0, 0, 0,
- 442, 0, 0, 0, 0, 0, 455, 0, 0, 0,
-
- 442, 442, 442, 442, 442, 442, 455, 455, 455, 455,
- 455, 455, 456, 0, 0, 0, 0, 0, 461, 0,
- 0, 0, 456, 456, 456, 456, 456, 456, 461, 461,
- 461, 461, 461, 461, 462, 0, 0, 0, 0, 0,
- 467, 0, 0, 0, 462, 462, 462, 462, 462, 462,
- 467, 467, 467, 467, 467, 467, 468, 0, 0, 0,
- 0, 0, 472, 0, 0, 0, 468, 468, 468, 468,
- 468, 468, 472, 472, 472, 472, 472, 472, 482, 0,
- 482, 482, 482, 482, 482, 482, 482, 482, 482, 483,
- 483, 0, 483, 483, 484, 0, 484, 484, 484, 484,
-
- 484, 484, 484, 484, 484, 485, 485, 0, 485, 485,
- 486, 0, 0, 486, 486, 487, 487, 487, 487, 487,
- 487, 487, 487, 487, 488, 0, 488, 488, 0, 488,
- 488, 489, 489, 489, 489, 489, 489, 489, 489, 489,
- 489, 489, 490, 490, 490, 490, 490, 490, 490, 490,
- 490, 491, 491, 0, 491, 491, 492, 492, 492, 492,
- 492, 492, 492, 492, 492, 492, 492, 493, 493, 493,
+ 21, 21, 21, 21, 21, 21, 21, 21, 66, 99,
+ 72, 21, 23, 70, 70, 432, 38, 38, 38, 38,
+
+ 38, 59, 66, 59, 23, 422, 89, 23, 56, 72,
+ 23, 56, 56, 68, 23, 23, 66, 23, 84, 72,
+ 57, 70, 85, 59, 68, 74, 74, 68, 23, 99,
+ 38, 120, 89, 23, 85, 89, 23, 84, 57, 23,
+ 76, 68, 23, 23, 76, 23, 27, 84, 56, 108,
+ 85, 59, 68, 27, 27, 27, 27, 27, 27, 38,
+ 57, 229, 74, 82, 73, 229, 76, 57, 388, 76,
+ 73, 96, 120, 76, 495, 495, 75, 108, 73, 87,
+ 105, 110, 27, 27, 27, 27, 27, 27, 42, 42,
+ 42, 42, 73, 75, 42, 82, 86, 75, 73, 82,
+
+ 75, 87, 95, 141, 96, 75, 387, 42, 87, 95,
+ 86, 96, 98, 105, 42, 42, 42, 42, 42, 42,
+ 105, 75, 104, 82, 86, 75, 106, 110, 111, 109,
+ 163, 166, 96, 107, 109, 167, 141, 98, 166, 104,
+ 42, 105, 95, 42, 42, 42, 42, 42, 42, 45,
+ 176, 106, 98, 121, 351, 345, 45, 45, 45, 45,
+ 45, 45, 104, 121, 107, 98, 106, 122, 104, 126,
+ 163, 166, 320, 107, 111, 167, 132, 122, 176, 106,
+ 109, 135, 45, 145, 126, 45, 45, 45, 45, 45,
+ 45, 47, 107, 138, 138, 152, 132, 146, 47, 47,
+
+ 47, 47, 47, 47, 121, 132, 145, 135, 168, 126,
+ 135, 146, 145, 126, 147, 170, 168, 152, 122, 155,
+ 194, 138, 177, 147, 152, 146, 156, 47, 47, 47,
+ 47, 47, 47, 50, 50, 50, 50, 150, 157, 156,
+ 172, 173, 147, 159, 50, 155, 158, 150, 155, 157,
+ 160, 238, 50, 194, 156, 170, 319, 159, 174, 50,
+ 50, 50, 50, 50, 50, 150, 157, 175, 177, 158,
+ 160, 159, 184, 186, 219, 158, 214, 318, 317, 160,
+ 172, 173, 184, 316, 214, 50, 192, 238, 50, 50,
+ 50, 50, 50, 50, 58, 310, 174, 186, 174, 197,
+
+ 199, 58, 58, 58, 58, 58, 58, 175, 246, 192,
+ 204, 205, 197, 186, 219, 192, 246, 253, 205, 204,
+ 208, 252, 199, 184, 174, 186, 201, 197, 206, 199,
+ 58, 58, 58, 58, 58, 58, 79, 220, 204, 205,
+ 206, 207, 208, 79, 79, 79, 79, 79, 79, 208,
+ 299, 201, 234, 235, 239, 201, 206, 227, 253, 207,
+ 278, 284, 209, 239, 343, 220, 234, 252, 278, 235,
+ 207, 257, 79, 79, 79, 79, 79, 79, 90, 227,
+ 234, 235, 239, 240, 209, 90, 90, 90, 90, 90,
+ 90, 209, 217, 217, 217, 217, 217, 227, 217, 257,
+
+ 343, 287, 393, 217, 323, 217, 393, 284, 227, 240,
+ 296, 328, 240, 237, 90, 90, 90, 90, 90, 90,
+ 93, 237, 271, 282, 281, 241, 270, 93, 93, 93,
+ 93, 93, 93, 241, 250, 250, 250, 250, 250, 296,
+ 250, 237, 287, 271, 217, 250, 309, 250, 270, 268,
+ 323, 271, 328, 241, 340, 270, 93, 93, 93, 93,
+ 93, 93, 100, 100, 100, 100, 100, 268, 490, 280,
+ 490, 274, 309, 272, 100, 309, 306, 311, 268, 315,
+ 272, 100, 274, 306, 335, 340, 250, 315, 100, 100,
+ 100, 100, 100, 100, 251, 251, 251, 251, 251, 274,
+
+ 251, 272, 279, 311, 306, 251, 311, 251, 502, 512,
+ 502, 512, 335, 340, 100, 273, 367, 100, 100, 100,
+ 100, 100, 100, 112, 112, 112, 112, 112, 249, 112,
+ 283, 283, 283, 283, 283, 285, 285, 285, 285, 285,
+ 324, 438, 112, 283, 367, 324, 251, 346, 285, 112,
+ 112, 112, 112, 112, 112, 289, 289, 289, 289, 289,
+ 308, 321, 321, 321, 321, 321, 438, 308, 289, 248,
+ 438, 346, 247, 242, 321, 112, 346, 347, 112, 112,
+ 112, 112, 112, 112, 113, 113, 113, 113, 308, 232,
+ 113, 324, 231, 228, 369, 290, 290, 290, 290, 290,
+
+ 359, 347, 436, 113, 369, 359, 347, 289, 290, 436,
+ 113, 113, 113, 113, 113, 113, 291, 291, 291, 291,
+ 291, 292, 292, 292, 292, 292, 360, 216, 329, 291,
+ 436, 360, 215, 369, 292, 202, 113, 386, 329, 113,
+ 113, 113, 113, 113, 113, 116, 395, 290, 395, 196,
+ 195, 359, 116, 116, 116, 116, 116, 116, 325, 325,
+ 325, 325, 325, 386, 325, 363, 386, 514, 291, 514,
+ 364, 325, 466, 292, 395, 363, 193, 360, 116, 329,
+ 364, 116, 116, 116, 116, 116, 116, 117, 191, 330,
+ 330, 330, 330, 330, 117, 117, 117, 117, 117, 117,
+
+ 330, 189, 330, 334, 334, 334, 334, 334, 466, 187,
+ 325, 336, 336, 336, 336, 336, 363, 336, 181, 334,
+ 373, 364, 169, 117, 117, 117, 117, 117, 117, 119,
+ 119, 119, 119, 119, 349, 349, 349, 349, 349, 165,
+ 374, 330, 373, 339, 339, 339, 339, 339, 119, 373,
+ 349, 161, 153, 380, 339, 119, 119, 119, 119, 119,
+ 119, 151, 374, 336, 368, 368, 368, 368, 368, 374,
+ 348, 348, 348, 348, 348, 370, 370, 370, 370, 370,
+ 380, 518, 148, 518, 119, 119, 119, 119, 119, 119,
+ 123, 123, 123, 123, 123, 339, 520, 527, 520, 527,
+
+ 144, 123, 446, 372, 372, 372, 372, 372, 380, 123,
+ 381, 382, 383, 143, 446, 396, 123, 123, 123, 123,
+ 123, 123, 348, 358, 358, 358, 358, 358, 397, 358,
+ 446, 384, 381, 382, 383, 142, 358, 384, 396, 381,
+ 382, 383, 123, 397, 396, 123, 123, 123, 123, 123,
+ 123, 124, 124, 124, 124, 372, 397, 398, 404, 384,
+ 420, 385, 124, 362, 362, 362, 362, 362, 394, 420,
+ 124, 394, 398, 404, 362, 358, 362, 124, 124, 124,
+ 124, 124, 124, 385, 140, 398, 404, 405, 420, 530,
+ 385, 530, 394, 540, 139, 540, 406, 394, 399, 547,
+
+ 394, 547, 137, 124, 399, 405, 124, 124, 124, 124,
+ 124, 124, 130, 399, 136, 362, 405, 406, 134, 130,
+ 130, 130, 130, 130, 130, 406, 399, 402, 402, 402,
+ 402, 402, 399, 548, 465, 548, 465, 133, 421, 408,
+ 402, 409, 407, 403, 403, 403, 403, 403, 130, 130,
+ 130, 130, 130, 130, 149, 149, 149, 149, 149, 403,
+ 407, 408, 465, 409, 421, 419, 410, 421, 408, 411,
+ 409, 407, 410, 149, 424, 425, 423, 131, 419, 402,
+ 149, 149, 149, 149, 149, 149, 129, 411, 413, 413,
+ 413, 413, 413, 419, 410, 403, 424, 127, 411, 413,
+
+ 423, 425, 118, 424, 425, 423, 149, 115, 418, 149,
+ 149, 149, 149, 149, 149, 154, 418, 414, 414, 414,
+ 414, 414, 154, 154, 154, 154, 154, 154, 412, 412,
+ 412, 412, 412, 414, 412, 97, 418, 94, 83, 81,
+ 413, 433, 77, 65, 63, 434, 415, 415, 415, 415,
+ 415, 154, 154, 154, 154, 154, 154, 162, 162, 162,
+ 162, 162, 415, 433, 426, 426, 426, 426, 426, 414,
+ 433, 434, 435, 445, 434, 451, 162, 426, 62, 445,
+ 412, 61, 435, 162, 162, 162, 162, 162, 162, 416,
+ 416, 416, 416, 416, 60, 54, 444, 451, 415, 46,
+
+ 435, 445, 416, 30, 451, 452, 454, 29, 447, 162,
+ 444, 473, 162, 162, 162, 162, 162, 162, 164, 164,
+ 164, 164, 164, 447, 444, 28, 473, 452, 454, 428,
+ 428, 428, 428, 428, 452, 454, 447, 164, 471, 473,
+ 474, 416, 428, 475, 164, 164, 164, 164, 164, 164,
+ 430, 430, 430, 430, 430, 439, 439, 439, 439, 439,
+ 22, 471, 474, 430, 20, 475, 19, 471, 439, 474,
+ 457, 453, 475, 164, 164, 164, 164, 164, 164, 171,
+ 453, 428, 16, 14, 476, 7, 171, 171, 171, 171,
+ 171, 171, 441, 441, 441, 441, 441, 0, 457, 453,
+
+ 458, 463, 430, 460, 0, 441, 457, 439, 476, 458,
+ 463, 460, 0, 476, 0, 171, 171, 171, 171, 171,
+ 171, 178, 178, 178, 178, 178, 457, 178, 458, 463,
+ 0, 460, 448, 448, 448, 448, 448, 469, 0, 0,
+ 178, 0, 0, 469, 441, 448, 0, 178, 178, 178,
+ 178, 178, 178, 468, 468, 468, 468, 468, 472, 472,
+ 472, 472, 472, 0, 0, 469, 468, 479, 478, 0,
+ 0, 472, 0, 178, 0, 479, 178, 178, 178, 178,
+ 178, 178, 180, 478, 448, 0, 0, 0, 0, 180,
+ 180, 180, 180, 180, 180, 479, 478, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 468, 0, 0, 0, 0,
+ 472, 0, 0, 0, 0, 0, 0, 0, 180, 180,
+ 180, 180, 180, 180, 182, 182, 182, 182, 182, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 182, 0, 0, 0, 0, 0, 0,
+ 182, 182, 182, 182, 182, 182, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 182,
+ 182, 182, 182, 182, 182, 183, 183, 183, 183, 183,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
+ 0, 183, 183, 183, 183, 183, 183, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 183, 183, 183, 183, 183, 183, 185, 185, 185, 185,
+ 185, 0, 0, 0, 0, 0, 0, 185, 0, 0,
+ 0, 0, 0, 0, 0, 185, 0, 0, 0, 0,
+ 0, 0, 185, 185, 185, 185, 185, 185, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 185, 0,
+
+ 0, 185, 185, 185, 185, 185, 185, 190, 190, 190,
+ 190, 190, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 190, 0, 0, 0,
+ 0, 0, 0, 190, 190, 190, 190, 190, 190, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 190, 190, 190, 190, 190, 190, 198, 0,
+ 0, 0, 0, 0, 0, 198, 198, 198, 198, 198,
+ 198, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 198, 198, 198, 198, 198, 198,
+ 203, 203, 203, 203, 203, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 203,
+ 0, 0, 0, 0, 0, 0, 203, 203, 203, 203,
+ 203, 203, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 203, 203, 203, 203, 203,
+ 203, 210, 0, 0, 0, 0, 0, 0, 210, 210,
+ 210, 210, 210, 210, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 210, 210, 210,
+ 210, 210, 210, 211, 211, 211, 211, 211, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 211, 0, 0, 0, 0, 0, 0, 211,
+ 211, 211, 211, 211, 211, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 211, 211,
+ 211, 211, 211, 211, 218, 0, 0, 0, 0, 0,
+ 0, 218, 218, 218, 218, 218, 218, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 218, 218, 218, 218, 218, 218, 221, 221, 221, 221,
+ 221, 0, 221, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 221, 0, 0, 0, 0,
+ 0, 0, 221, 221, 221, 221, 221, 221, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 221, 0,
+ 0, 221, 221, 221, 221, 221, 221, 223, 0, 0,
+ 0, 0, 0, 0, 223, 223, 223, 223, 223, 223,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 223, 223, 223, 223, 223, 223, 224,
+ 224, 224, 224, 224, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 224, 0,
+ 0, 0, 0, 0, 0, 224, 224, 224, 224, 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, 224, 224, 224, 224, 224, 224,
+ 225, 225, 225, 225, 225, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 225,
+
+ 0, 0, 0, 0, 0, 0, 225, 225, 225, 225,
+ 225, 225, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 225, 225, 225, 225, 225,
+ 225, 226, 226, 226, 226, 226, 0, 0, 0, 0,
+ 0, 0, 226, 0, 0, 0, 0, 0, 0, 0,
+ 226, 0, 0, 0, 0, 0, 0, 226, 226, 226,
+ 226, 226, 226, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 226, 0, 0, 226, 226, 226, 226,
+
+ 226, 226, 230, 230, 230, 230, 230, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 230, 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, 0, 0, 230, 230, 230,
+ 230, 230, 230, 233, 0, 0, 0, 0, 0, 0,
+ 233, 233, 233, 233, 233, 233, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 233,
+
+ 233, 233, 233, 233, 233, 236, 236, 236, 236, 236,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 236, 0, 0, 0, 0, 0,
+ 0, 236, 236, 236, 236, 236, 236, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 236, 236, 236, 236, 236, 236, 243, 0, 0, 0,
+ 0, 0, 0, 243, 243, 243, 243, 243, 243, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 243, 243, 243, 243, 243, 243, 244, 244,
+ 244, 244, 244, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
+ 0, 0, 0, 0, 244, 244, 244, 244, 244, 244,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 244, 244, 244, 244, 244, 244, 255,
+ 255, 255, 255, 255, 0, 255, 0, 0, 0, 0,
+ 255, 255, 255, 0, 0, 0, 0, 0, 255, 0,
+ 0, 0, 0, 0, 0, 255, 255, 255, 255, 255,
+
+ 255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 255, 0, 0, 255, 255, 255, 255, 255, 255,
+ 256, 0, 0, 0, 0, 0, 0, 256, 256, 256,
+ 256, 256, 256, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 256, 256, 256, 256,
+ 256, 256, 258, 258, 258, 258, 258, 0, 258, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 258, 0, 0, 0, 0, 0, 0, 258, 258,
+
+ 258, 258, 258, 258, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 258, 0, 0, 258, 258, 258,
+ 258, 258, 258, 260, 0, 0, 0, 0, 0, 0,
+ 260, 260, 260, 260, 260, 260, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 260, 0, 0, 260,
+ 260, 260, 260, 260, 260, 261, 261, 261, 261, 261,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 261, 0, 0, 0, 0, 0,
+
+ 0, 261, 261, 261, 261, 261, 261, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 261, 0, 0,
+ 261, 261, 261, 261, 261, 261, 262, 262, 262, 262,
+ 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 262, 0, 0, 0, 0,
+ 0, 0, 262, 262, 262, 262, 262, 262, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 262, 262, 262, 262, 262, 262, 263, 263, 263,
+
+ 263, 263, 0, 0, 0, 0, 0, 0, 263, 0,
+ 0, 0, 0, 0, 0, 0, 263, 0, 0, 0,
+ 0, 0, 0, 263, 263, 263, 263, 263, 263, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 263,
+ 0, 0, 263, 263, 263, 263, 263, 263, 264, 264,
+ 264, 264, 264, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 264, 0, 0,
+ 0, 0, 0, 0, 264, 264, 264, 264, 264, 264,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 264, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 264, 264, 264, 264, 264, 264, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 264, 265, 265, 265, 265, 265, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 265, 0, 0, 0, 0, 0, 0, 265, 265,
+ 265, 265, 265, 265, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 265, 265, 265,
+ 265, 265, 265, 266, 0, 0, 0, 0, 0, 0,
+
+ 266, 266, 266, 266, 266, 266, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 266,
+ 266, 266, 266, 266, 266, 267, 267, 267, 267, 267,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 267, 0, 0, 0, 0, 0,
+ 0, 267, 267, 267, 267, 267, 267, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 267, 267, 267, 267, 267, 267, 269, 269, 269, 269,
+
+ 269, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 269, 0, 0, 0, 0,
+ 0, 0, 269, 269, 269, 269, 269, 269, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 269, 269, 269, 269, 269, 269, 275, 0, 0,
+ 0, 0, 0, 0, 275, 275, 275, 275, 275, 275,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 275, 275, 275, 275, 275, 275, 276,
+
+ 276, 276, 276, 276, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 276, 276, 276, 276, 276,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 276, 276, 276, 276, 276,
+ 286, 286, 286, 286, 0, 0, 286, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 286,
+ 0, 0, 0, 0, 0, 0, 286, 286, 286, 286,
+ 286, 286, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 286, 0, 0, 286, 286, 286, 286, 286,
+ 286, 288, 288, 288, 288, 0, 0, 0, 0, 0,
+ 0, 0, 288, 0, 0, 0, 0, 0, 0, 0,
+ 288, 0, 0, 0, 0, 0, 0, 288, 288, 288,
+ 288, 288, 288, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 288, 0, 0, 288, 288, 288, 288,
+ 288, 288, 293, 293, 293, 293, 293, 0, 0, 0,
+ 0, 0, 0, 0, 0, 293, 0, 0, 0, 0,
+
+ 0, 293, 0, 0, 0, 0, 0, 0, 293, 293,
+ 293, 293, 293, 293, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 293, 0, 0, 293, 293, 293,
+ 293, 293, 293, 294, 294, 294, 294, 294, 0, 294,
+ 0, 0, 0, 0, 294, 294, 294, 0, 0, 0,
+ 0, 0, 294, 0, 0, 0, 0, 0, 0, 294,
+ 294, 294, 294, 294, 294, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 294, 0, 0, 294, 294,
+
+ 294, 294, 294, 294, 295, 0, 0, 0, 0, 0,
+ 0, 295, 295, 295, 295, 295, 295, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 295, 295, 295, 295, 295, 295, 297, 297, 297, 297,
+ 297, 0, 297, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 297, 0, 0, 0, 0,
+ 0, 0, 297, 297, 297, 297, 297, 297, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
+
+ 0, 297, 297, 297, 297, 297, 297, 300, 300, 300,
+ 300, 300, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 300, 0, 0, 0,
+ 0, 0, 0, 300, 300, 300, 300, 300, 300, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 300,
+ 0, 0, 300, 300, 300, 300, 300, 300, 301, 301,
+ 301, 301, 301, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 301, 0, 0,
+ 0, 0, 0, 0, 301, 301, 301, 301, 301, 301,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 301, 301, 301, 301, 301, 301, 302,
+ 302, 302, 302, 302, 0, 0, 0, 0, 0, 0,
+ 302, 0, 0, 0, 0, 0, 0, 0, 302, 0,
+ 0, 0, 0, 0, 0, 302, 302, 302, 302, 302,
+ 302, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 302, 0, 0, 302, 302, 302, 302, 302, 302,
+ 303, 303, 303, 303, 303, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 303, 0, 0, 303,
+ 0, 0, 0, 0, 0, 0, 303, 303, 303, 303,
+ 303, 303, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 303, 303, 303, 303, 303,
+ 303, 304, 304, 304, 304, 304, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 304, 0, 0, 0, 0, 0, 0, 304, 304, 304,
+ 304, 304, 304, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 304, 304, 304, 304,
+ 304, 304, 305, 305, 305, 305, 305, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 305, 0, 0, 0, 0, 0, 0, 305, 305,
+ 305, 305, 305, 305, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 305, 305, 305,
+ 305, 305, 305, 307, 307, 307, 307, 307, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 307, 0, 0, 0, 0, 0, 0, 307,
+
+ 307, 307, 307, 307, 307, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 307, 307,
+ 307, 307, 307, 307, 312, 0, 0, 0, 0, 0,
+ 0, 312, 312, 312, 312, 312, 312, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 312, 312, 312, 312, 312, 312, 313, 313, 313, 313,
+ 313, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 313, 0, 0, 0, 0,
+
+ 0, 0, 313, 313, 313, 313, 313, 313, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 313, 313, 313, 313, 313, 313, 326, 326, 326,
+ 326, 326, 0, 326, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 326, 0, 0, 0,
+ 0, 0, 0, 326, 326, 326, 326, 326, 326, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 326,
+ 0, 0, 326, 326, 326, 326, 326, 326, 327, 327,
+
+ 327, 327, 0, 0, 327, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
+ 0, 0, 0, 0, 327, 327, 327, 327, 327, 327,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 327, 0, 0, 327, 327, 327, 327, 327, 327, 331,
+ 331, 331, 331, 331, 0, 0, 0, 0, 0, 0,
+ 331, 0, 0, 0, 0, 0, 0, 0, 331, 0,
+ 0, 0, 0, 0, 0, 331, 331, 331, 331, 331,
+ 331, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 331, 0, 0, 331, 331, 331, 331, 331, 331,
+ 332, 332, 332, 332, 0, 0, 0, 0, 0, 0,
+ 0, 332, 0, 0, 0, 0, 0, 0, 0, 332,
+ 0, 0, 0, 0, 0, 0, 332, 332, 332, 332,
+ 332, 332, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 332, 0, 0, 332, 332, 332, 332, 332,
+ 332, 333, 333, 333, 333, 333, 0, 0, 0, 0,
+ 0, 0, 0, 0, 333, 0, 0, 0, 0, 0,
+
+ 333, 0, 0, 0, 0, 0, 0, 333, 333, 333,
+ 333, 333, 333, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 333, 0, 0, 333, 333, 333, 333,
+ 333, 333, 337, 0, 0, 0, 0, 0, 0, 337,
+ 337, 337, 337, 337, 337, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 337, 337,
+ 337, 337, 337, 337, 338, 0, 0, 0, 0, 0,
+ 0, 338, 338, 338, 338, 338, 338, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 338, 338, 338, 338, 338, 338, 341, 0, 0, 0,
+ 0, 0, 0, 341, 341, 341, 341, 341, 341, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 341, 341, 341, 341, 341, 341, 342, 342,
+ 342, 342, 342, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 342, 0, 0,
+ 0, 0, 0, 0, 342, 342, 342, 342, 342, 342,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 342, 342, 342, 342, 342, 342, 344,
+ 344, 344, 344, 344, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 344, 0,
+ 0, 0, 0, 0, 0, 344, 344, 344, 344, 344,
+ 344, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 344, 344, 344, 344, 344, 344,
+ 361, 0, 0, 0, 0, 0, 0, 361, 361, 361,
+
+ 361, 361, 361, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 361, 361, 361, 361,
+ 361, 361, 365, 0, 0, 0, 0, 0, 0, 365,
+ 365, 365, 365, 365, 365, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 365, 365,
+ 365, 365, 365, 365, 366, 366, 366, 366, 366, 0,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 0,
+ 0, 0, 0, 366, 0, 0, 0, 0, 0, 0,
+
+ 366, 366, 366, 366, 366, 366, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 366, 0, 0, 366,
+ 366, 366, 366, 366, 366, 371, 0, 0, 0, 0,
+ 0, 0, 371, 0, 371, 0, 0, 0, 0, 371,
+ 371, 0, 0, 371, 0, 0, 0, 0, 371, 0,
+ 0, 0, 0, 0, 371, 0, 0, 0, 0, 0,
+ 371, 0, 371, 0, 0, 0, 0, 371, 371, 0,
+ 0, 371, 376, 0, 0, 0, 0, 0, 0, 376,
+ 376, 376, 376, 376, 376, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 376, 376,
+ 376, 376, 376, 376, 377, 0, 0, 0, 0, 0,
+ 0, 377, 377, 377, 377, 377, 377, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 377, 377, 377, 377, 377, 377, 378, 0, 0, 0,
+ 0, 0, 0, 378, 378, 378, 378, 378, 378, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 378, 378, 378, 378, 378, 378, 390, 0,
+ 0, 0, 0, 0, 0, 390, 390, 390, 390, 390,
+ 390, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 390, 390, 390, 390, 390, 390,
+ 391, 0, 0, 0, 0, 0, 0, 391, 391, 391,
+ 391, 391, 391, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 391, 391, 391, 391,
+ 391, 391, 392, 0, 0, 0, 0, 0, 0, 392,
+
+ 392, 392, 392, 392, 392, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 392, 392,
+ 392, 392, 392, 392, 400, 0, 0, 0, 0, 0,
+ 0, 400, 400, 400, 400, 400, 400, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 400, 400, 400, 400, 400, 400, 401, 0, 0, 0,
+ 0, 0, 0, 401, 401, 401, 401, 401, 401, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 401, 401, 401, 401, 401, 401, 417, 0,
+ 0, 0, 0, 0, 0, 417, 417, 417, 417, 417,
+ 417, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 417, 417, 417, 417, 417, 417,
+ 429, 0, 0, 0, 0, 0, 0, 429, 429, 429,
+ 429, 429, 429, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 429, 429, 429, 429,
+
+ 429, 429, 431, 431, 431, 431, 431, 0, 0, 0,
+ 0, 0, 0, 0, 0, 431, 0, 0, 0, 0,
+ 0, 431, 0, 0, 0, 0, 0, 0, 431, 431,
+ 431, 431, 431, 431, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 431, 0, 0, 431, 431, 431,
+ 431, 431, 431, 440, 440, 440, 440, 440, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 440, 0, 0, 0, 0, 0, 0, 440,
+ 440, 440, 440, 440, 440, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 440, 440,
+ 440, 440, 440, 440, 442, 0, 0, 0, 0, 0,
+ 0, 442, 442, 442, 442, 442, 442, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 442, 442, 442, 442, 442, 442, 449, 0, 0, 0,
+ 0, 0, 0, 449, 449, 449, 449, 449, 449, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 449, 449, 449, 449, 449, 449, 450, 0,
+ 0, 0, 0, 0, 0, 450, 450, 450, 450, 450,
+ 450, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 450, 450, 450, 450, 450, 450,
+ 455, 0, 0, 0, 0, 0, 0, 455, 455, 455,
+ 455, 455, 455, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 455, 455, 455, 455,
+ 455, 455, 456, 0, 0, 0, 0, 0, 0, 456,
+
+ 456, 456, 456, 456, 456, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 456, 456,
+ 456, 456, 456, 456, 461, 0, 0, 0, 0, 0,
+ 0, 461, 461, 461, 461, 461, 461, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 461, 461, 461, 461, 461, 461, 462, 0, 0, 0,
+ 0, 0, 0, 462, 462, 462, 462, 462, 462, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 462, 462, 462, 462, 462, 462, 467, 0,
+ 0, 0, 0, 0, 0, 467, 467, 467, 467, 467,
+ 467, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 467, 467, 467, 467, 467, 467,
+ 482, 0, 0, 482, 482, 482, 482, 482, 482, 482,
+ 482, 482, 482, 483, 483, 0, 483, 483, 484, 0,
+ 0, 484, 484, 484, 484, 484, 484, 484, 484, 484,
+ 484, 485, 485, 0, 485, 485, 486, 0, 0, 486,
+
+ 486, 487, 0, 487, 487, 0, 487, 487, 488, 488,
+ 488, 488, 488, 488, 488, 488, 488, 488, 489, 489,
+ 489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
+ 489, 491, 491, 0, 491, 491, 492, 492, 492, 492,
+ 492, 492, 492, 492, 492, 492, 493, 493, 493, 493,
493, 493, 493, 493, 493, 493, 493, 493, 493, 494,
- 494, 495, 495, 495, 495, 495, 495, 495, 495, 495,
- 496, 496, 0, 496, 496, 497, 497, 497, 497, 497,
-
- 497, 497, 497, 497, 498, 498, 0, 498, 498, 499,
- 499, 499, 499, 499, 499, 499, 499, 499, 500, 500,
- 500, 500, 500, 500, 500, 500, 500, 501, 501, 501,
- 501, 501, 501, 501, 501, 501, 501, 501, 501, 502,
- 502, 502, 502, 502, 502, 502, 502, 502, 503, 503,
- 503, 503, 503, 503, 503, 503, 503, 504, 504, 504,
- 0, 504, 505, 505, 505, 505, 505, 505, 505, 505,
- 505, 505, 505, 505, 506, 506, 506, 0, 506, 507,
- 507, 507, 507, 0, 507, 507, 507, 507, 507, 507,
- 508, 508, 508, 0, 508, 509, 0, 509, 509, 509,
-
- 509, 509, 509, 509, 509, 509, 510, 0, 510, 510,
- 510, 510, 510, 510, 510, 510, 510, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 512, 512,
- 512, 0, 512, 513, 513, 513, 513, 513, 513, 513,
- 513, 513, 513, 513, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 515, 515, 515, 0, 515,
- 516, 516, 516, 0, 0, 0, 516, 0, 0, 516,
- 516, 517, 517, 517, 517, 517, 517, 517, 517, 517,
- 518, 518, 518, 0, 0, 518, 518, 518, 0, 518,
- 518, 519, 519, 519, 519, 519, 519, 519, 519, 519,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 496, 496, 0, 496, 496, 497, 497,
+ 497, 497, 497, 497, 497, 497, 497, 497, 498, 498,
+ 0, 498, 498, 499, 499, 499, 499, 499, 499, 499,
+
+ 499, 499, 499, 500, 500, 500, 500, 500, 500, 500,
+ 500, 500, 500, 501, 501, 501, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 504, 504, 0, 504,
+ 504, 504, 504, 504, 504, 504, 504, 504, 504, 505,
+ 505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
+ 505, 505, 506, 506, 506, 506, 506, 506, 506, 506,
+ 506, 506, 506, 506, 506, 506, 507, 507, 507, 507,
+ 507, 507, 507, 507, 507, 507, 507, 507, 507, 507,
+ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
+ 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
+
+ 510, 510, 510, 510, 511, 0, 0, 511, 511, 511,
+ 511, 511, 511, 511, 511, 511, 511, 513, 513, 513,
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
+ 513, 515, 515, 515, 515, 516, 516, 516, 516, 516,
+ 516, 0, 516, 516, 516, 516, 516, 516, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 519, 519, 519, 519, 519, 519, 519, 519, 519,
+ 519, 519, 519, 519, 519, 521, 521, 521, 521, 522,
+ 522, 522, 522, 522, 522, 0, 522, 522, 522, 522,
+ 522, 522, 523, 0, 0, 523, 523, 523, 523, 523,
+
+ 523, 523, 523, 523, 523, 524, 0, 0, 524, 524,
+ 524, 524, 524, 524, 524, 524, 524, 524, 525, 525,
+ 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
+ 525, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 528, 528, 0, 528, 528, 529,
+ 529, 529, 529, 529, 529, 529, 529, 529, 529, 529,
+ 529, 529, 531, 531, 531, 531, 532, 532, 532, 532,
+ 532, 532, 532, 532, 532, 532, 532, 532, 532, 533,
+ 0, 0, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 534, 534, 534, 534, 534, 534, 534, 534,
+
+ 534, 534, 534, 534, 534, 535, 535, 535, 535, 535,
+ 0, 0, 535, 535, 535, 535, 535, 535, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 538, 538, 0, 538, 538, 539,
+ 539, 539, 539, 539, 539, 539, 539, 539, 539, 539,
+ 539, 539, 541, 541, 541, 541, 542, 542, 0, 542,
+ 542, 542, 542, 542, 542, 542, 542, 542, 542, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 544, 544, 0, 544, 544, 544, 544, 544,
+
+ 544, 544, 544, 544, 544, 545, 545, 545, 545, 545,
+ 545, 545, 545, 545, 545, 545, 545, 545, 546, 546,
+ 546, 546, 546, 0, 0, 546, 546, 546, 546, 546,
+ 546, 549, 549, 549, 549, 0, 0, 0, 0, 549,
+ 0, 0, 549, 549, 550, 550, 550, 550, 0, 0,
+ 0, 550, 550, 550, 0, 550, 550, 551, 551, 551,
+ 551, 551, 551, 551, 551, 551, 551, 552, 552, 552,
+ 552, 552, 552, 552, 552, 552, 552, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
@@ -833,38 +1775,35 @@ static yyconst short int yy_chk[2462] =
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
- 481
+ 481, 481, 481
} ;
#line 1 "<stdin>"
-#define INITIAL 0
-#define YY_STACK_USED 1
-#define mediaquery 1
YY_DECL
- {
+{
register yy_state_type yy_current_state;
register UChar *yy_cp, *yy_bp;
register int yy_act;
while ( 1 ) /* loops until end-of-file is reached */
{
- yy_cp = yy_c_buf_p;
+ yy_cp = (yy_c_buf_p);
/* Support of yytext. */
- *yy_cp = yy_hold_char;
+ *yy_cp = (yy_hold_char);
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run.
*/
yy_bp = yy_cp;
- yy_current_state = yy_start;
+ yy_current_state = (yy_start);
do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] )
{
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
@@ -875,37 +1814,37 @@ YY_DECL
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 2401 );
+ while ( yy_base[yy_current_state] != 6578 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
if ( yy_act == 0 )
{ /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
+ yy_cp = (yy_last_accepting_cpos);
+ yy_current_state = (yy_last_accepting_state);
yy_act = yy_accept[yy_current_state];
}
YY_DO_BEFORE_ACTION;
-
-
switch ( yy_act )
{ /* beginning of action switch */
case 0: /* must back up */
/* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
+ *yy_cp = (yy_hold_char);
+ yy_cp = (yy_last_accepting_cpos);
+ yy_current_state = (yy_last_accepting_state);
goto yy_find_action;
case 1:
+/* rule 1 can match eol */
YY_RULE_SETUP
#line 31 "<stdin>"
{countLines(); /* ignore comments */ }
YY_BREAK
case 2:
+/* rule 2 can match eol */
YY_RULE_SETUP
#line 33 "<stdin>"
{countLines(); yyTok = WHITESPACE; return yyTok;}
@@ -966,11 +1905,13 @@ YY_RULE_SETUP
{BEGIN(mediaquery); yyTok = VARIABLES_FOR; return yyTok; }
YY_BREAK
case 14:
+/* rule 14 can match eol */
YY_RULE_SETUP
#line 47 "<stdin>"
{yyTok = STRING; return yyTok;}
YY_BREAK
case 15:
+/* rule 15 can match eol */
YY_RULE_SETUP
#line 48 "<stdin>"
{yyTok = IDENT; return yyTok;}
@@ -986,6 +1927,7 @@ YY_RULE_SETUP
{yyTok = HEX; return yyTok;}
YY_BREAK
case 18:
+/* rule 18 can match eol */
YY_RULE_SETUP
#line 52 "<stdin>"
{yyTok = IDSEL; return yyTok;}
@@ -1071,11 +2013,13 @@ YY_RULE_SETUP
{yyTok = WEBKIT_KEYFRAME_RULE_SYM; return yyTok; }
YY_BREAK
case 35:
+/* rule 35 can match eol */
YY_RULE_SETUP
#line 71 "<stdin>"
{yyTok = ATKEYWORD; return yyTok; }
YY_BREAK
case 36:
+/* rule 36 can match eol */
YY_RULE_SETUP
#line 73 "<stdin>"
{yyTok = IMPORTANT_SYM; return yyTok;}
@@ -1171,6 +2115,7 @@ YY_RULE_SETUP
{yyTok = KHERZ; return yyTok;}
YY_BREAK
case 55:
+/* rule 55 can match eol */
YY_RULE_SETUP
#line 93 "<stdin>"
{yyTok = DIMEN; return yyTok;}
@@ -1196,21 +2141,25 @@ YY_RULE_SETUP
{yyTok = NOTFUNCTION; return yyTok;}
YY_BREAK
case 60:
+/* rule 60 can match eol */
YY_RULE_SETUP
#line 99 "<stdin>"
{yyTok = URI; return yyTok;}
YY_BREAK
case 61:
+/* rule 61 can match eol */
YY_RULE_SETUP
#line 100 "<stdin>"
{yyTok = URI; return yyTok;}
YY_BREAK
case 62:
+/* rule 62 can match eol */
YY_RULE_SETUP
#line 101 "<stdin>"
{ yyTok = VARCALL; return yyTok; }
YY_BREAK
case 63:
+/* rule 63 can match eol */
YY_RULE_SETUP
#line 102 "<stdin>"
{yyTok = FUNCTION; return yyTok;}
@@ -1242,6 +2191,7 @@ YY_RULE_SETUP
#line 111 "<stdin>"
ECHO;
YY_BREAK
+#line 2746 "<stdout>"
case YY_END_OF_BUFFER:
yy_c_buf_p = yy_cp - 1;
yy_cp = yy_c_buf_p;
@@ -1255,4 +2205,4 @@ case YY_STATE_EOF(forkeyword):
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
- } /* end of yylex */
+} /* end of yylex */
diff --git a/src/3rdparty/webkit/WebCore/history/qt/HistoryItemQt.cpp b/src/3rdparty/webkit/WebCore/history/qt/HistoryItemQt.cpp
index 8bbd233..c5fb069 100644
--- a/src/3rdparty/webkit/WebCore/history/qt/HistoryItemQt.cpp
+++ b/src/3rdparty/webkit/WebCore/history/qt/HistoryItemQt.cpp
@@ -25,8 +25,9 @@
bool WebCore::HistoryItem::restoreState(QDataStream& in, int version)
{
- // we support up to version 2
- if (version > 2)
+ // we only support version 1 for now
+
+ if (version != 1)
return false;
WebCore::String url;
@@ -47,7 +48,6 @@ bool WebCore::HistoryItem::restoreState(QDataStream& in, int version)
WebCore::IntPoint scrollPoint;
WTF::Vector<int> weeklyVisitCounts;
WTF::Vector<int> dailyVisitCounts;
- long long documentSequenceNumber;
// bool loadFormdata;
// WebCore::String formContentType;
// WTF::Vector<char> formData;
@@ -79,12 +79,6 @@ bool WebCore::HistoryItem::restoreState(QDataStream& in, int version)
setTitle(title);
setAlternateTitle(altTitle);
- if (version > 1)
- {
- in >> documentSequenceNumber;
- setDocumentSequenceNumber(documentSequenceNumber);
- }
-
// at the end load userData
in >> validUserData;
if (validUserData) {
@@ -98,16 +92,15 @@ bool WebCore::HistoryItem::restoreState(QDataStream& in, int version)
QDataStream& WebCore::HistoryItem::saveState(QDataStream& out, int version) const
{
+ // we only support version 1 for now.
+ if (version != 1)
+ return out;
+
out << urlString() << title() << alternateTitle() << lastVisitedTime();
out << originalURLString() << referrer() << target() << parent();
out << lastVisitWasHTTPNonGet() << lastVisitWasFailure() << isTargetItem();
out << visitCount() << documentState() << scrollPoint();
out << dailyVisitCounts() << weeklyVisitCounts();
-
- // Since version 2
- Q_ASSERT_X(version > 1, "HistoryItem::saveState()", "Stream version should be greater than 1");
- out << documentSequenceNumber();
-
/*if (m_formData) {
out << true;
out << formContentType();
diff --git a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp
index 6a214ab..4c5a93e 100644
--- a/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp
+++ b/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp
@@ -740,7 +740,11 @@ void HTMLInputElement::aboutToUnload()
bool HTMLInputElement::shouldUseInputMethod() const
{
- return m_type == TEXT || m_type == SEARCH || m_type == ISINDEX;
+ // The reason IME's are disabled for the password field is because IMEs
+ // can access the underlying password and display it in clear text --
+ // e.g. you can use it to access the stored password for any site
+ // with only trivial effort.
+ return isTextField() && inputType() != PASSWORD;
}
void HTMLInputElement::handleFocusEvent()
diff --git a/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp b/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp
index cf667ca..6c49323 100644
--- a/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp
+++ b/src/3rdparty/webkit/WebCore/html/HTMLMetaElement.cpp
@@ -63,9 +63,15 @@ void HTMLMetaElement::insertedIntoDocument()
void HTMLMetaElement::process()
{
+ if (!inDocument() || m_content.isNull())
+ return;
+
+ if (equalIgnoringCase(name(), "viewport"))
+ document()->processViewport(m_content);
+
// Get the document to process the tag, but only if we're actually part of DOM tree (changing a meta tag while
// it's not in the tree shouldn't have any effect on the document)
- if (inDocument() && !m_equiv.isNull() && !m_content.isNull())
+ if (!m_equiv.isNull())
document()->processHttpEquiv(m_equiv, m_content);
}
diff --git a/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp b/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp
index 0323e97..316caab 100644
--- a/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp
+++ b/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp
@@ -1274,7 +1274,11 @@ bool FrameLoader::requestObject(RenderEmbeddedObject* renderer, const String& ur
bool useFallback;
if (shouldUsePlugin(completedURL, mimeType, renderer->hasFallbackContent(), useFallback)) {
Settings* settings = m_frame->settings();
- if (!allowPlugins(AboutToInstantiatePlugin)
+ if ((!allowPlugins(AboutToInstantiatePlugin)
+ // Application plugins are plugins implemented by the user agent, for example Qt plugins,
+ // as opposed to third-party code such as flash. The user agent decides whether or not they are
+ // permitted, rather than WebKit.
+ && !MIMETypeRegistry::isApplicationPluginMIMEType(mimeType))
|| (!settings->isJavaEnabled() && MIMETypeRegistry::isJavaAppletMIMEType(mimeType)))
return false;
if (isDocumentSandboxed(SandboxPlugins))
diff --git a/src/3rdparty/webkit/WebCore/page/ChromeClient.h b/src/3rdparty/webkit/WebCore/page/ChromeClient.h
index 34e2893..0bfdbaf 100644
--- a/src/3rdparty/webkit/WebCore/page/ChromeClient.h
+++ b/src/3rdparty/webkit/WebCore/page/ChromeClient.h
@@ -56,6 +56,7 @@ namespace WebCore {
class Widget;
struct FrameLoadRequest;
+ struct ViewportArguments;
struct WindowFeatures;
#if USE(ACCELERATED_COMPOSITING)
@@ -145,6 +146,8 @@ namespace WebCore {
virtual void setToolTip(const String&, TextDirection) = 0;
+ virtual void didReceiveViewportArguments(Frame*, const ViewportArguments&) const { }
+
virtual void print(Frame*) = 0;
#if ENABLE(DATABASE)
@@ -211,6 +214,9 @@ namespace WebCore {
// Sets a flag to specify that the view needs to be updated, so we need
// to do an eager layout before the drawing.
virtual void scheduleCompositingLayerSync() = 0;
+ // Returns whether or not the client can render the composited layer,
+ // regardless of the settings.
+ virtual bool allowsAcceleratedCompositing() const { return true; }
#endif
virtual bool supportsFullscreenForNode(const Node*) { return false; }
@@ -231,10 +237,11 @@ namespace WebCore {
#endif
#if ENABLE(WIDGETS_10_SUPPORT)
- virtual bool isDocked() { return false; }
+ virtual bool isWindowed() { return false; }
virtual bool isFloating() { return false; }
- virtual bool isApplication() { return false; }
virtual bool isFullscreen() { return false; }
+ virtual bool isMaximized() { return false; }
+ virtual bool isMinimized() { return false; }
#endif
protected:
diff --git a/src/3rdparty/webkit/WebCore/page/FocusController.cpp b/src/3rdparty/webkit/WebCore/page/FocusController.cpp
index 089fb8f..fdd117b 100644
--- a/src/3rdparty/webkit/WebCore/page/FocusController.cpp
+++ b/src/3rdparty/webkit/WebCore/page/FocusController.cpp
@@ -341,51 +341,96 @@ bool FocusController::advanceFocusDirectionally(FocusDirection direction, Keyboa
return true;
}
-static void updateFocusCandidateIfCloser(Node* focusedNode, Node* candidate, long long distance, FocusCandidate& closestFocusCandidate)
+// FIXME: Make this method more modular, and simpler to understand and maintain.
+static void updateFocusCandidateIfCloser(Node* focusedNode, const FocusCandidate& candidate, FocusCandidate& closest)
{
- // Bail out if |distance| is bigger than the current closest candidate.
- if (distance >= closestFocusCandidate.distance)
+ bool sameDocument = candidate.document() == closest.document();
+ if (sameDocument) {
+ if (closest.alignment > candidate.alignment
+ || (closest.parentAlignment && candidate.alignment > closest.parentAlignment))
+ return;
+ } else if (closest.alignment > candidate.alignment
+ && (closest.parentAlignment && candidate.alignment > closest.parentAlignment))
return;
- // If |focusedNode| and |candidate| are in the same document AND
- // current |closestFocusCandidadte| is not in an {i}frame that is
- // preferable to get focused.
- if (focusedNode->document() == candidate->document()
- && distance < closestFocusCandidate.parentDistance) {
- closestFocusCandidate.node = candidate;
- closestFocusCandidate.distance = distance;
- closestFocusCandidate.parentDistance = maxDistance();
- } else if (focusedNode->document() != candidate->document()) {
- // If the |focusedNode| is in an inner document and the |candidate| is
- // in a different document, we only consider to change focus if there is
- // not another already good focusable candidate in the same document as
- // |focusedNode|.
- if (!((isInRootDocument(candidate) && !isInRootDocument(focusedNode))
- && focusedNode->document() == closestFocusCandidate.document())) {
- closestFocusCandidate.node = candidate;
- closestFocusCandidate.distance = distance;
- }
+ if (candidate.alignment != None
+ || (closest.parentAlignment >= candidate.alignment
+ && closest.document() == candidate.document())) {
+
+ // If we are now in an higher precedent case, lets reset the current closest's
+ // distance so we force it to be bigger than any result we will get from
+ // spatialDistance().
+ if (closest.alignment < candidate.alignment
+ && closest.parentAlignment < candidate.alignment)
+ closest.distance = maxDistance();
+
+ closest.alignment = candidate.alignment;
+ }
+
+ // Bail out if candidate's distance is larger than that of the closest candidate.
+ if (candidate.distance >= closest.distance)
+ return;
+
+ if (closest.isNull()) {
+ closest = candidate;
+ return;
+ }
+
+ // If the focused node and the candadate are in the same document and current
+ // closest candidate is not in an {i}frame that is preferable to get focused ...
+ if (focusedNode->document() == candidate.document()
+ && candidate.distance < closest.parentDistance)
+ closest = candidate;
+ else if (focusedNode->document() != candidate.document()) {
+ // If the focusedNode is in an inner document and candidate is in a
+ // different document, we only consider to change focus if there is not
+ // another already good focusable candidate in the same document as focusedNode.
+ if (!((isInRootDocument(candidate.node) && !isInRootDocument(focusedNode))
+ && focusedNode->document() == closest.document()))
+ closest = candidate;
}
}
-void FocusController::findFocusableNodeInDirection(Document* document, Node* focusedNode, FocusDirection direction, KeyboardEvent* event, FocusCandidate& closestFocusCandidate)
+void FocusController::findFocusableNodeInDirection(Document* document, Node* focusedNode,
+ FocusDirection direction, KeyboardEvent* event,
+ FocusCandidate& closestFocusCandidate,
+ const FocusCandidate& candidateParent)
{
ASSERT(document);
+ ASSERT(candidateParent.isNull() || static_cast<HTMLFrameOwnerElement*>(candidateParent.node));
- // Walk all the child nodes and update focusCandidate if we find a nearer node.
+ // Walk all the child nodes and update closestFocusCandidate if we find a nearer node.
for (Node* candidate = document->firstChild(); candidate; candidate = candidate->traverseNextNode()) {
// Inner documents case.
+
if (candidate->isFrameOwnerElement())
deepFindFocusableNodeInDirection(focusedNode, candidate, direction, event, closestFocusCandidate);
else if (candidate != focusedNode && candidate->isKeyboardFocusable(event)) {
- long long distance = distanceInDirection(focusedNode, candidate,
- direction, closestFocusCandidate);
- updateFocusCandidateIfCloser(focusedNode, candidate, distance, closestFocusCandidate);
+ FocusCandidate currentFocusCandidate(candidate);
+
+ // Get distance and alignment from current candidate.
+ distanceDataForNode(direction, focusedNode, currentFocusCandidate);
+
+ // Bail out if distance is maximum.
+ if (currentFocusCandidate.distance == maxDistance())
+ continue;
+
+ // If candidateParent is not null, it means that we are in a recursive call
+ // from deepFineFocusableNodeInDirection (i.e. processing an element in an iframe),
+ // and holds the distance and alignment data of the iframe element itself.
+ if (!candidateParent.isNull()) {
+ currentFocusCandidate.parentAlignment = candidateParent.alignment;
+ currentFocusCandidate.parentDistance = candidateParent.distance;
+ }
+
+ updateFocusCandidateIfCloser(focusedNode, currentFocusCandidate, closestFocusCandidate);
}
}
}
-void FocusController::deepFindFocusableNodeInDirection(Node* focusedNode, Node* candidate, FocusDirection direction, KeyboardEvent* event, FocusCandidate& closestFocusCandidate)
+void FocusController::deepFindFocusableNodeInDirection(Node* focusedNode, Node* candidate,
+ FocusDirection direction, KeyboardEvent* event,
+ FocusCandidate& closestFocusCandidate)
{
HTMLFrameOwnerElement* owner = static_cast<HTMLFrameOwnerElement*>(candidate);
if (!owner->contentFrame())
@@ -400,20 +445,12 @@ void FocusController::deepFindFocusableNodeInDirection(Node* focusedNode, Node*
else {
// Check if the current {i}frame element itself is a good candidate
// to move focus to. If it is, then we traverse its inner nodes.
- // Lets pass a copy of the best candidate, to not get fooled by a
- // frame without focusable elements.
- FocusCandidate focusCandidateCopy = closestFocusCandidate;
- long long distance = distanceInDirection(focusedNode, candidate, direction, focusCandidateCopy);
- if (distance < focusCandidateCopy.distance) {
- focusCandidateCopy.parentAlignment = focusCandidateCopy.alignment;
- focusCandidateCopy.parentDistance = distance;
-
- findFocusableNodeInDirection(innerDocument, focusedNode, direction, event, focusCandidateCopy);
-
- // If we really have an inner closer focus candidate node, take it.
- if (closestFocusCandidate.node != focusCandidateCopy.node)
- closestFocusCandidate = focusCandidateCopy;
- }
+ FocusCandidate candidateParent = FocusCandidate(candidate);
+ distanceDataForNode(direction, focusedNode, candidateParent);
+
+ // FIXME: Consider alignment?
+ if (candidateParent.distance < closestFocusCandidate.distance)
+ findFocusableNodeInDirection(innerDocument, focusedNode, direction, event, closestFocusCandidate, candidateParent);
}
}
diff --git a/src/3rdparty/webkit/WebCore/page/FocusController.h b/src/3rdparty/webkit/WebCore/page/FocusController.h
index 75591c7..dfa3780 100644
--- a/src/3rdparty/webkit/WebCore/page/FocusController.h
+++ b/src/3rdparty/webkit/WebCore/page/FocusController.h
@@ -27,6 +27,7 @@
#define FocusController_h
#include "FocusDirection.h"
+#include "SpatialNavigation.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/RefPtr.h>
@@ -38,7 +39,6 @@ class Frame;
class KeyboardEvent;
class Node;
class Page;
-struct FocusCandidate;
class FocusController : public Noncopyable {
public:
@@ -63,7 +63,8 @@ private:
bool advanceFocusDirectionally(FocusDirection, KeyboardEvent*);
bool advanceFocusInDocumentOrder(FocusDirection, KeyboardEvent*, bool initialFocus);
- void findFocusableNodeInDirection(Document*, Node*, FocusDirection, KeyboardEvent*, FocusCandidate&);
+ void findFocusableNodeInDirection(Document*, Node*, FocusDirection, KeyboardEvent*, FocusCandidate& closestFocusCandidate,
+ const FocusCandidate& parentCandidate = FocusCandidate());
void deepFindFocusableNodeInDirection(Node*, Node*, FocusDirection, KeyboardEvent*, FocusCandidate&);
Page* m_page;
diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.cpp b/src/3rdparty/webkit/WebCore/page/FrameView.cpp
index 45764de..39c92de 100644
--- a/src/3rdparty/webkit/WebCore/page/FrameView.cpp
+++ b/src/3rdparty/webkit/WebCore/page/FrameView.cpp
@@ -1067,6 +1067,7 @@ void FrameView::scrollPositionChanged()
if (!m_nestedLayoutCount) {
if (RenderView* root = m_frame->contentRenderer()) {
root->updateWidgetPositions();
+ root->layer()->updateRepaintRectsAfterScroll();
#if USE(ACCELERATED_COMPOSITING)
if (root->usesCompositing())
root->compositor()->updateCompositingLayers(CompositingUpdateOnScroll);
diff --git a/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp b/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp
index 86c9c5d..890eacd 100644
--- a/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp
+++ b/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp
@@ -46,16 +46,21 @@ static bool areRectsFullyAligned(FocusDirection, const IntRect&, const IntRect&)
static bool areRectsPartiallyAligned(FocusDirection, const IntRect&, const IntRect&);
static bool isRectInDirection(FocusDirection, const IntRect&, const IntRect&);
static void deflateIfOverlapped(IntRect&, IntRect&);
+static bool checkNegativeCoordsForNode(Node*, const IntRect&);
-long long distanceInDirection(Node* start, Node* dest, FocusDirection direction, FocusCandidate& candidate)
+void distanceDataForNode(FocusDirection direction, Node* start, FocusCandidate& candidate)
{
RenderObject* startRender = start->renderer();
- if (!startRender)
- return maxDistance();
+ if (!startRender) {
+ candidate.distance = maxDistance();
+ return;
+ }
- RenderObject* destRender = dest->renderer();
- if (!destRender)
- return maxDistance();
+ RenderObject* destRender = candidate.node->renderer();
+ if (!destRender) {
+ candidate.distance = maxDistance();
+ return;
+ }
IntRect curRect = renderRectRelativeToRootDocument(startRender);
IntRect targetRect = renderRectRelativeToRootDocument(destRender);
@@ -64,40 +69,34 @@ long long distanceInDirection(Node* start, Node* dest, FocusDirection direction,
// deflate both.
deflateIfOverlapped(curRect, targetRect);
+ // If empty rects or negative width or height, bail out.
if (curRect.isEmpty() || targetRect.isEmpty()
- || targetRect.x() < 0 || targetRect.y() < 0)
- return maxDistance();
+ || targetRect.width() <= 0 || targetRect.height() <= 0) {
+ candidate.distance = maxDistance();
+ return;
+ }
- if (!isRectInDirection(direction, curRect, targetRect))
- return maxDistance();
+ // Negative coordinates can be used if node is scrolled up offscreen.
+ if (!checkNegativeCoordsForNode(start, curRect)) {
+ candidate.distance = maxDistance();
+ return;
+ }
+
+ if (!checkNegativeCoordsForNode(candidate.node, targetRect)) {
+ candidate.distance = maxDistance();
+ return;
+ }
+
+ if (!isRectInDirection(direction, curRect, targetRect)) {
+ candidate.distance = maxDistance();
+ return;
+ }
// The distance between two nodes is not to be considered alone when evaluating/looking
// for the best focus candidate node. Alignment of rects can be also a good point to be
// considered in order to make the algorithm to behavior in a more intuitive way.
- RectsAlignment alignment = alignmentForRects(direction, curRect, targetRect);
-
- bool sameDocument = dest->document() == candidate.document();
- if (sameDocument) {
- if (candidate.alignment > alignment || (candidate.parentAlignment && alignment > candidate.parentAlignment))
- return maxDistance();
- } else if (candidate.alignment > alignment && (candidate.parentAlignment && alignment > candidate.parentAlignment))
- return maxDistance();
-
- // FIXME_tonikitoo: simplify the logic here !
- if (alignment != None
- || (!candidate.isNull() && candidate.parentAlignment >= alignment
- && candidate.document() == dest->document())) {
-
- // If we are now in an higher precedent case, lets reset the current |candidate|'s
- // |distance| so we force it to be bigger than the result we will get from
- // |spatialDistance| (see below).
- if (candidate.alignment < alignment && candidate.parentAlignment < alignment)
- candidate.distance = maxDistance();
-
- candidate.alignment = alignment;
- }
-
- return spatialDistance(direction, curRect, targetRect);
+ candidate.alignment = alignmentForRects(direction, curRect, targetRect);
+ candidate.distance = spatialDistance(direction, curRect, targetRect);
}
// FIXME: This function does not behave correctly with transformed frames.
@@ -107,6 +106,11 @@ static IntRect renderRectRelativeToRootDocument(RenderObject* render)
IntRect rect(render->absoluteClippedOverflowRect());
+ if (rect.isEmpty()) {
+ Element* e = static_cast<Element*>(render->node());
+ rect = e->getRect();
+ }
+
// In cases when the |render|'s associated node is in a scrollable inner
// document, we only consider its scrollOffset if it is not offscreen.
Node* node = render->node();
@@ -432,6 +436,9 @@ bool hasOffscreenRect(Node* node)
return true;
IntRect rect(render->absoluteClippedOverflowRect());
+ if (rect.isEmpty())
+ return true;
+
return !containerViewportRect.intersects(rect);
}
@@ -500,4 +507,24 @@ static void deflateIfOverlapped(IntRect& a, IntRect& b)
b.inflate(fudgeFactor);
}
+static bool checkNegativeCoordsForNode(Node* node, const IntRect& curRect)
+{
+ ASSERT(node || node->renderer());
+
+ if (curRect.x() > 0 && curRect.y() > 0)
+ return true;
+
+ bool canBeScrolled = false;
+
+ RenderObject* renderer = node->renderer();
+ for (; renderer; renderer = renderer->parent()) {
+ if (renderer->isBox() && toRenderBox(renderer)->canBeScrolledAndHasScrollableArea()) {
+ canBeScrolled = true;
+ break;
+ }
+ }
+
+ return canBeScrolled;
+}
+
} // namespace WebCore
diff --git a/src/3rdparty/webkit/WebCore/page/SpatialNavigation.h b/src/3rdparty/webkit/WebCore/page/SpatialNavigation.h
index 7c183df..90ff1cf 100644
--- a/src/3rdparty/webkit/WebCore/page/SpatialNavigation.h
+++ b/src/3rdparty/webkit/WebCore/page/SpatialNavigation.h
@@ -118,7 +118,7 @@ struct FocusCandidate {
RectsAlignment parentAlignment;
};
-long long distanceInDirection(Node*, Node*, FocusDirection, FocusCandidate&);
+void distanceDataForNode(FocusDirection direction, Node* start, FocusCandidate& candidate);
bool scrollInDirection(Frame*, FocusDirection);
void scrollIntoView(Element*);
bool hasOffscreenRect(Node*);
diff --git a/src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp b/src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp
index 2fcce5b..5b24eae 100644
--- a/src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp
+++ b/src/3rdparty/webkit/WebCore/page/qt/EventHandlerQt.cpp
@@ -51,7 +51,7 @@
#include "NotImplemented.h"
QT_BEGIN_NAMESPACE
-Q_DECL_IMPORT extern bool qt_tab_all_widgets; // from qapplication.cpp
+Q_GUI_EXPORT extern bool qt_tab_all_widgets; // from qapplication.cpp
QT_END_NAMESPACE
namespace WebCore {
diff --git a/src/3rdparty/webkit/WebCore/platform/Arena.h b/src/3rdparty/webkit/WebCore/platform/Arena.h
index b6f6931..bc49307 100644
--- a/src/3rdparty/webkit/WebCore/platform/Arena.h
+++ b/src/3rdparty/webkit/WebCore/platform/Arena.h
@@ -44,7 +44,7 @@
namespace WebCore {
-typedef unsigned long uword;
+typedef uintptr_t uword;
struct Arena {
Arena* next; // next arena
diff --git a/src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h b/src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h
index 8801ac1..27c2c3a 100644
--- a/src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h
+++ b/src/3rdparty/webkit/WebCore/platform/MIMETypeRegistry.h
@@ -67,6 +67,10 @@ public:
// Check to see if a mime type is a valid Java applet mime type
static bool isJavaAppletMIMEType(const String& mimeType);
+ // Check to see if a mime type is a plugin implemented by the
+ // browser (e.g. a Qt Plugin).
+ static bool isApplicationPluginMIMEType(const String& mimeType);
+
static HashSet<String>& getSupportedImageMIMETypes();
static HashSet<String>& getSupportedImageResourceMIMETypes();
static HashSet<String>& getSupportedImageMIMETypesForEncoding();
diff --git a/src/3rdparty/webkit/WebCore/platform/StaticConstructors.h b/src/3rdparty/webkit/WebCore/platform/StaticConstructors.h
index c0a9a53..0d817a4df 100644
--- a/src/3rdparty/webkit/WebCore/platform/StaticConstructors.h
+++ b/src/3rdparty/webkit/WebCore/platform/StaticConstructors.h
@@ -51,7 +51,7 @@
#ifndef SKIP_STATIC_CONSTRUCTORS_ON_GCC
// Define an global in the normal way.
-#if COMPILER(MSVC7)
+#if COMPILER(MSVC7_OR_LOWER)
#define DEFINE_GLOBAL(type, name) \
const type name;
#elif COMPILER(WINSCW)
@@ -65,7 +65,7 @@
#else
// Define an correctly-sized array of pointers to avoid static initialization.
// Use an array of pointers instead of an array of char in case there is some alignment issue.
-#if COMPILER(MSVC7)
+#if COMPILER(MSVC7_OR_LOWER)
#define DEFINE_GLOBAL(type, name) \
void * name[(sizeof(type) + sizeof(void *) - 1) / sizeof(void *)];
#elif COMPILER(WINSCW)
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp
index 0a1075f..0565deb 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontPlatformDataQt.cpp
@@ -58,6 +58,9 @@ FontPlatformData::FontPlatformData(const FontDescription& description, const Ato
font.setLetterSpacing(QFont::AbsoluteSpacing, letterSpacing);
const bool smallCaps = description.smallCaps();
font.setCapitalization(smallCaps ? QFont::SmallCaps : QFont::MixedCase);
+#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
+ font.setStyleStrategy(QFont::ForceIntegerMetrics);
+#endif
m_data->bold = font.bold();
m_data->size = font.pointSizeF();
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
index fd75e34..1e92dcc 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp
@@ -180,9 +180,7 @@ float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFon
String sanitized = Font::normalizeSpaces(String(run.characters(), run.length()));
QString string = fromRawDataWithoutRef(sanitized);
- QTextLayout layout(string, font());
- QTextLine line = setupLayout(&layout, run);
- int w = int(line.naturalTextWidth());
+ int w = QFontMetrics(font()).width(string);
// WebKit expects us to ignore word spacing on the first character (as opposed to what Qt does)
if (treatAsSpace(run[0]))
w -= m_wordSpacing;
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
index 2913eef..1c4c275 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
@@ -32,15 +32,13 @@
#include <QtCore/qmetaobject.h>
#include <QtCore/qset.h>
#include <QtCore/qtimer.h>
-#include <QtGui/qbitmap.h>
#include <QtGui/qcolor.h>
#include <QtGui/qgraphicseffect.h>
#include <QtGui/qgraphicsitem.h>
#include <QtGui/qgraphicsscene.h>
-#include <QtGui/qmatrix4x4.h>
#include <QtGui/qpainter.h>
-#include <QtGui/qpalette.h>
#include <QtGui/qpixmap.h>
+#include <QtGui/qpixmapcache.h>
#include <QtGui/qstyleoption.h>
namespace WebCore {
@@ -134,6 +132,8 @@ public:
// the compositor lets us special-case images and colors, so we try to do so
enum StaticContentType { HTMLContentType, PixmapContentType, ColorContentType, MediaContentType};
+ const GraphicsLayerQtImpl* rootLayer() const;
+
GraphicsLayerQtImpl(GraphicsLayerQt* newLayer);
virtual ~GraphicsLayerQtImpl();
@@ -142,28 +142,25 @@ public:
virtual QRectF boundingRect() const;
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*);
- // we manage transforms ourselves because transform-origin acts differently in webkit and in Qt
+ // We manage transforms ourselves because transform-origin acts differently in webkit and in Qt, and we need it as a fallback in case we encounter an un-invertible matrix
void setBaseTransform(const TransformationMatrix&);
- QTransform computeTransform(const TransformationMatrix& baseTransform) const;
void updateTransform();
// let the compositor-API tell us which properties were changed
void notifyChange(ChangeMask);
+ // actual rendering of the web-content into a QPixmap
+ // We prefer to use our own caching because it gives us a higher level of granularity than QGraphicsItem cache modes -
+ // sometimes we need to cache the contents even `though the item needs to be updated, e.g. when the background-color is changed.
+ // TODO: investigate if QGraphicsItem caching can be improved to support that out of the box.
+ QPixmap recache(const QRegion&);
+
// called when the compositor is ready for us to show the changes on screen
// this is called indirectly from ChromeClientQt::setNeedsOneShotDrawingSynchronization
// (meaning the sync would happen together with the next draw)
// or ChromeClientQt::scheduleCompositingLayerSync (meaning the sync will happen ASAP)
void flushChanges(bool recursive = true, bool forceTransformUpdate = false);
- // optimization: when we have an animation running on an element with no contents, that has child-elements with contents,
- // ALL of them have to have ItemCoordinateCache and not DeviceCoordinateCache
- void adjustCachingRecursively(bool animationIsRunning);
-
- // optimization: returns true if this or an ancestor has a transform animation running.
- // this enables us to use ItemCoordinatesCache while the animation is running, otherwise we have to recache for every frame
- bool isTransformAnimationRunning() const;
-
public slots:
// we need to notify the client (aka the layer compositor) when the animation actually starts
void notifyAnimationStarted();
@@ -179,6 +176,7 @@ public:
GraphicsLayerQt* m_layer;
TransformationMatrix m_baseTransform;
+ TransformationMatrix m_transformRelativeToRootLayer;
bool m_transformAnimationRunning;
bool m_opacityAnimationRunning;
QWeakPointer<MaskEffectQt> m_maskEffect;
@@ -207,6 +205,7 @@ public:
int m_changeMask;
QSizeF m_size;
+ QPixmapCache::Key m_backingStoreKey;
#ifndef QT_NO_ANIMATION
QList<QWeakPointer<QAbstractAnimation> > m_animations;
#endif
@@ -259,9 +258,6 @@ GraphicsLayerQtImpl::GraphicsLayerQtImpl(GraphicsLayerQt* newLayer)
// they are ignored and passed to the item below.
setEnabled(true);
- // we'll set the cache when we know what's going on
- setCacheMode(NoCache);
-
connect(this, SIGNAL(notifyAnimationStartedAsync()), this, SLOT(notifyAnimationStarted()), Qt::QueuedConnection);
}
@@ -287,80 +283,138 @@ GraphicsLayerQtImpl::~GraphicsLayerQtImpl()
#endif
}
-void GraphicsLayerQtImpl::adjustCachingRecursively(bool animationIsRunning)
+const GraphicsLayerQtImpl* GraphicsLayerQtImpl::rootLayer() const
{
- // optimization: we make sure all our children have ItemCoordinateCache -
- // otherwise we end up re-rendering them during the animation
- const QList<QGraphicsItem*> children = childItems();
-
- for (QList<QGraphicsItem*>::const_iterator it = children.begin(); it != children.end(); ++it) {
- if (QGraphicsItem* item = *it)
- if (GraphicsLayerQtImpl* layer = qobject_cast<GraphicsLayerQtImpl*>(item->toGraphicsObject())) {
- if (layer->m_layer->drawsContent() && layer->m_currentContent.contentType == HTMLContentType)
- layer->setCacheMode(animationIsRunning ? QGraphicsItem::ItemCoordinateCache : QGraphicsItem::DeviceCoordinateCache);
- }
- }
+ if (const GraphicsLayerQtImpl* parent = qobject_cast<const GraphicsLayerQtImpl*>(parentObject()))
+ return parent->rootLayer();
+ return this;
}
-void GraphicsLayerQtImpl::updateTransform()
-{
- setBaseTransform(isTransformAnimationRunning() ? m_baseTransform : m_layer->transform());
-}
-void GraphicsLayerQtImpl::setBaseTransform(const TransformationMatrix& baseTransform)
-{
- m_baseTransform = baseTransform;
- setTransform(computeTransform(baseTransform));
-}
-QTransform GraphicsLayerQtImpl::computeTransform(const TransformationMatrix& baseTransform) const
+QPixmap GraphicsLayerQtImpl::recache(const QRegion& regionToUpdate)
{
- if (!m_layer)
- return baseTransform;
+ if (!m_layer->drawsContent())
+ return QPixmap();
- TransformationMatrix computedTransform;
+ QRegion region = regionToUpdate;
+ QPixmap pixmap;
- // The origin for childrenTransform is always the center of the ancestor which contains the childrenTransform.
- // this has to do with how WebCore implements -webkit-perspective and -webkit-perspective-origin, which are the CSS
- // attribute that call setChildrenTransform
- QPointF offset = -pos() - boundingRect().bottomRight() / 2;
+ // We might be drawing into an existing cache.
+ if (!QPixmapCache::find(m_backingStoreKey, &pixmap))
+ region = QRegion(QRect(0, 0, m_size.width(), m_size.height()));
- for (const GraphicsLayerQtImpl* ancestor = this; (ancestor = qobject_cast<GraphicsLayerQtImpl*>(ancestor->parentObject())); ) {
- if (!ancestor->m_state.childrenTransform.isIdentity()) {
- const QPointF offset = mapFromItem(ancestor, QPointF(ancestor->m_size.width() / 2, ancestor->m_size.height() / 2));
- computedTransform
- .translate(offset.x(), offset.y())
- .multLeft(ancestor->m_state.childrenTransform)
- .translate(-offset.x(), -offset.y());
- break;
- }
+ if (m_size != pixmap.size()) {
+ pixmap = QPixmap(m_size.toSize());
+ if (!m_layer->contentsOpaque())
+ pixmap.fill(Qt::transparent);
+ m_pendingContent.regionToUpdate = QRegion(QRect(QPoint(0, 0), m_size.toSize()));
}
+ QPainter painter(&pixmap);
+ GraphicsContext gc(&painter);
+
+ // Clear the area in cache that we're drawing into
+ painter.setCompositionMode(QPainter::CompositionMode_Clear);
+ painter.fillRect(region.boundingRect(), Qt::transparent);
+
+ // Render the actual contents into the cache
+ painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+ m_layer->paintGraphicsLayerContents(gc, region.boundingRect());
+
+ m_backingStoreKey = QPixmapCache::insert(pixmap);
+ return pixmap;
+}
+
+void GraphicsLayerQtImpl::updateTransform()
+{
+ if (!m_transformAnimationRunning)
+ m_baseTransform = m_layer->transform();
+
+ TransformationMatrix localTransform;
+
+ GraphicsLayerQtImpl* parent = qobject_cast<GraphicsLayerQtImpl*>(parentObject());
+
// webkit has relative-to-size originPoint, graphics-view has a pixel originPoint, here we convert
// we have to manage this ourselves because QGraphicsView's transformOrigin is incompatible
const qreal originX = m_state.anchorPoint.x() * m_size.width();
const qreal originY = m_state.anchorPoint.y() * m_size.height();
- computedTransform
- .translate3d(originX, originY, m_state.anchorPoint.z())
- .multLeft(baseTransform)
+
+ // We ignore QGraphicsItem::pos completely, and use only transforms - because we have to maintain that ourselves for 3D.
+ localTransform
+ .translate3d(originX + m_state.pos.x(), originY + m_state.pos.y(), m_state.anchorPoint.z())
+ .multLeft(m_baseTransform)
.translate3d(-originX, -originY, -m_state.anchorPoint.z());
- // now we project to 2D
- return QTransform(computedTransform);
+ // This is the actual 3D transform of this item, with the ancestors' transform baked in.
+ m_transformRelativeToRootLayer = TransformationMatrix(parent ? parent->m_transformRelativeToRootLayer : TransformationMatrix())
+ .multLeft(localTransform);
+
+ // Now we have enough information to determine if the layer is facing backwards.
+ if (!m_state.backfaceVisibility && m_transformRelativeToRootLayer.inverse().m33() < 0) {
+ setVisible(false);
+ // No point in making extra calculations for invisible elements.
+ return;
+ }
+
+ // Simplistic depth test - we stack the item behind its parent if its computed z is lower than the parent's computed z at the item's center point.
+ if (parent) {
+ const QPointF centerPointMappedToRoot = rootLayer()->mapFromItem(this, m_size.width() / 2, m_size.height() / 2);
+ setFlag(ItemStacksBehindParent,
+ m_transformRelativeToRootLayer.mapPoint(FloatPoint3D(centerPointMappedToRoot.x(), centerPointMappedToRoot.y(), 0)).z() <
+ parent->m_transformRelativeToRootLayer.mapPoint(FloatPoint3D(centerPointMappedToRoot.x(), centerPointMappedToRoot.y(), 0)).z());
+ }
+
+ // The item is front-facing or backface-visibility is on.
+ setVisible(true);
+
+ // Flatten to 2D-space of this item if it doesn't preserve 3D.
+ if (!m_state.preserves3D) {
+ m_transformRelativeToRootLayer.setM13(0);
+ m_transformRelativeToRootLayer.setM23(0);
+ m_transformRelativeToRootLayer.setM31(0);
+ m_transformRelativeToRootLayer.setM32(0);
+ m_transformRelativeToRootLayer.setM33(1);
+ m_transformRelativeToRootLayer.setM34(0);
+ m_transformRelativeToRootLayer.setM43(0);
+ }
+
+ // Apply perspective for the use of this item's children. Perspective is always applied from the item's center.
+ if (!m_state.childrenTransform.isIdentity())
+ m_transformRelativeToRootLayer
+ .translate(m_size.width() / 2, m_size.height() /2)
+ .multLeft(m_state.childrenTransform)
+ .translate(-m_size.width() / 2, -m_size.height() /2);
+
+ bool inverseOk = true;
+ // Use QTransform::inverse to extrapolate the relative transform of this item, based on the parent's transform relative to
+ // the root layer and the desired transform for this item relative to the root layer.
+ const QTransform parentTransform = parent ? parent->itemTransform(rootLayer()) : QTransform();
+ const QTransform transform2D = QTransform(m_transformRelativeToRootLayer) * parentTransform.inverted(&inverseOk);
+
+ // In rare cases the transformation cannot be inversed - in that case we don't apply the transformation at all, otherwise we'd flicker.
+ // FIXME: This should be amended when Qt moves to a real 3D scene-graph.
+ if (!inverseOk)
+ return;
+
+ setTransform(transform2D);
+
+ const QList<QGraphicsItem*> children = childItems();
+ for (QList<QGraphicsItem*>::const_iterator it = children.begin(); it != children.end(); ++it)
+ if (GraphicsLayerQtImpl* layer= qobject_cast<GraphicsLayerQtImpl*>((*it)->toGraphicsObject()))
+ layer->updateTransform();
}
-bool GraphicsLayerQtImpl::isTransformAnimationRunning() const
+void GraphicsLayerQtImpl::setBaseTransform(const TransformationMatrix& baseTransform)
{
- if (m_transformAnimationRunning)
- return true;
- if (GraphicsLayerQtImpl* parent = qobject_cast<GraphicsLayerQtImpl*>(parentObject()))
- return parent->isTransformAnimationRunning();
- return false;
+ m_baseTransform = baseTransform;
+ updateTransform();
}
QPainterPath GraphicsLayerQtImpl::opaqueArea() const
{
QPainterPath painterPath;
+
// we try out best to return the opaque area, maybe it will help graphics-view render less items
if (m_currentContent.backgroundColor.isValid() && m_currentContent.backgroundColor.alpha() == 0xff)
painterPath.addRect(boundingRect());
@@ -384,14 +438,16 @@ QRectF GraphicsLayerQtImpl::boundingRect() const
void GraphicsLayerQtImpl::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
if (m_currentContent.backgroundColor.isValid())
- painter->fillRect(option->exposedRect, QColor(m_currentContent.backgroundColor));
+ painter->fillRect(option->rect, QColor(m_currentContent.backgroundColor));
switch (m_currentContent.contentType) {
case HTMLContentType:
if (m_state.drawsContent) {
- // this is the expensive bit. we try to minimize calls to this area by proper caching
- GraphicsContext gc(painter);
- m_layer->paintGraphicsLayerContents(gc, option->exposedRect.toAlignedRect());
+ QPixmap backingStore;
+ // We might need to recache, in case we try to paint and the cache was purged (e.g. if it was full).
+ if (!QPixmapCache::find(m_backingStoreKey, &backingStore) || backingStore.size() != m_size.toSize())
+ backingStore = recache(QRegion(m_state.contentsRect));
+ painter->drawPixmap(0, 0, backingStore);
}
break;
case PixmapContentType:
@@ -471,15 +527,11 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
if (m_layer->maskLayer()) {
if (GraphicsLayerQtImpl* mask = qobject_cast<GraphicsLayerQtImpl*>(m_layer->maskLayer()->platformLayer()->toGraphicsObject())) {
mask->m_maskEffect = new MaskEffectQt(this, mask);
- mask->setCacheMode(NoCache);
setGraphicsEffect(mask->m_maskEffect.data());
}
}
}
- if ((m_changeMask & PositionChange) && (m_layer->position() != m_state.pos))
- setPos(m_layer->position().x(), m_layer->position().y());
-
if (m_changeMask & SizeChange) {
if (m_layer->size() != m_state.size) {
prepareGeometryChange();
@@ -489,9 +541,10 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
// FIXME: this is a hack, due to a probable QGraphicsScene bug when rapidly modifying the perspective
// but without this line we get graphic artifacts
if ((m_changeMask & ChildrenTransformChange) && m_state.childrenTransform != m_layer->childrenTransform())
- scene()->update();
+ if (scene())
+ scene()->update();
- if (m_changeMask & (ChildrenTransformChange | Preserves3DChange | TransformChange | AnchorPointChange | SizeChange)) {
+ if (m_changeMask & (ChildrenTransformChange | Preserves3DChange | TransformChange | AnchorPointChange | SizeChange | BackfaceVisibilityChange | PositionChange)) {
// due to the differences between the way WebCore handles transforms and the way Qt handles transforms,
// all these elements affect the transforms of all the descendants.
forceUpdateTransform = true;
@@ -510,8 +563,6 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
break;
case ColorContentType:
- // no point in caching a solid-color rectangle
- setCacheMode(m_layer->maskLayer() ? QGraphicsItem::DeviceCoordinateCache : QGraphicsItem::NoCache);
if (m_pendingContent.contentType != m_currentContent.contentType || m_pendingContent.contentsBackgroundColor != m_currentContent.contentsBackgroundColor)
update();
m_state.drawsContent = false;
@@ -526,14 +577,6 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
update();
if (!m_state.drawsContent && m_layer->drawsContent())
update();
- if (m_layer->drawsContent() && !m_maskEffect) {
- setCacheMode(isTransformAnimationRunning() ? ItemCoordinateCache : DeviceCoordinateCache);
-
- // HTML content: we want to use exposedRect so we don't use WebCore rendering if we don't have to
- setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true);
- }
- else
- setCacheMode(NoCache);
setFlag(ItemHasNoContents, !m_layer->drawsContent());
break;
@@ -563,15 +606,16 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
if (m_maskEffect)
m_maskEffect.data()->update();
- else if (m_changeMask & DisplayChange)
+ else if (m_changeMask & DisplayChange) {
+ // Recache now: all the content is ready and we don't want to wait until the paint event.
+ recache(m_pendingContent.regionToUpdate);
update(m_pendingContent.regionToUpdate.boundingRect());
+ m_pendingContent.regionToUpdate = QRegion();
+ }
if ((m_changeMask & BackgroundColorChange) && (m_pendingContent.backgroundColor != m_currentContent.backgroundColor))
update();
- // FIXME: the following flags are currently not handled, as they don't have a clear test or are in low priority
- // GeometryOrientationChange, ContentsOrientationChange, BackfaceVisibilityChange, ChildrenTransformChange, Preserves3DChange
-
m_state.maskLayer = m_layer->maskLayer();
m_state.pos = m_layer->position();
m_state.anchorPoint = m_layer->anchorPoint();
@@ -591,7 +635,6 @@ void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform
m_currentContent.contentType = m_pendingContent.contentType;
m_currentContent.mediaLayer = m_pendingContent.mediaLayer;
m_currentContent.backgroundColor = m_pendingContent.backgroundColor;
- m_currentContent.regionToUpdate |= m_pendingContent.regionToUpdate;
m_currentContent.contentsBackgroundColor = m_pendingContent.contentsBackgroundColor;
m_pendingContent.regionToUpdate = QRegion();
m_changeMask = NoChanges;
@@ -1014,6 +1057,7 @@ public:
, m_webkitPropertyID(values.property())
, m_webkitAnimation(anim)
, m_keyframesName(name)
+ , m_fillsForwards(false)
{
}
@@ -1037,6 +1081,7 @@ public:
// we might need this in case the same animation is added again (i.e. resumed by WebCore)
const Animation* m_webkitAnimation;
QString m_keyframesName;
+ bool m_fillsForwards;
};
// we'd rather have a templatized QAbstractAnimation than QPropertyAnimation / QVariantAnimation;
@@ -1121,10 +1166,8 @@ public:
~TransformAnimationQt()
{
- // this came up during the compositing/animation LayoutTests
- // when the animation dies, the transform has to go back to default
- if (m_layer)
- m_layer.data()->updateTransform();
+ if (m_fillsForwards)
+ setCurrentTime(1);
}
// the idea is that we let WebCore manage the transform-operations
@@ -1135,34 +1178,28 @@ public:
{
TransformationMatrix transformMatrix;
- // sometimes the animation values from WebCore are misleading and we have to use the actual matrix as source
- // The Mac implementation simply doesn't try to accelerate those (e.g. 360deg rotation), but we do.
- if (progress == 1 || !targetOperations.size() || sourceOperations == targetOperations) {
- TransformationMatrix sourceMatrix;
- sourceOperations.apply(m_boxSize, sourceMatrix);
- transformMatrix = m_sourceMatrix;
- transformMatrix.blend(sourceMatrix, 1 - progress);
- } else {
- bool validTransformLists = true;
- const int sourceOperationCount = sourceOperations.size();
- if (sourceOperationCount) {
- if (targetOperations.size() != sourceOperationCount)
- validTransformLists = false;
- else
- for (size_t j = 0; j < sourceOperationCount && validTransformLists; ++j)
- if (!sourceOperations.operations()[j]->isSameType(*targetOperations.operations()[j]))
- validTransformLists = false;
- }
+ bool validTransformLists = true;
+ const int sourceOperationCount = sourceOperations.size();
+ if (sourceOperationCount) {
+ if (targetOperations.size() != sourceOperationCount)
+ validTransformLists = false;
+ else
+ for (size_t j = 0; j < sourceOperationCount && validTransformLists; ++j)
+ if (!sourceOperations.operations()[j]->isSameType(*targetOperations.operations()[j]))
+ validTransformLists = false;
+ }
- if (validTransformLists) {
- for (size_t i = 0; i < targetOperations.size(); ++i)
- targetOperations.operations()[i]->blend(sourceOperations.at(i), progress)->apply(transformMatrix, m_boxSize);
- } else {
- targetOperations.apply(m_boxSize, transformMatrix);
- transformMatrix.blend(m_sourceMatrix, progress);
- }
+ if (validTransformLists) {
+ for (size_t i = 0; i < targetOperations.size(); ++i)
+ targetOperations.operations()[i]->blend(sourceOperations.at(i), progress)->apply(transformMatrix, m_boxSize);
+ } else {
+ targetOperations.apply(m_boxSize, transformMatrix);
+ transformMatrix.blend(m_sourceMatrix, progress);
}
+
m_layer.data()->setBaseTransform(transformMatrix);
+ if (m_fillsForwards)
+ m_layer.data()->m_layer->setTransform(m_layer.data()->m_baseTransform);
}
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
@@ -1177,10 +1214,11 @@ public:
if (newState == QAbstractAnimation::Running) {
m_sourceMatrix = m_layer.data()->m_layer->transform();
m_layer.data()->m_transformAnimationRunning = true;
- m_layer.data()->adjustCachingRecursively(true);
} else if (newState == QAbstractAnimation::Stopped) {
+ // We update the transform back to the default. This already takes fill-modes into account.
m_layer.data()->m_transformAnimationRunning = false;
- m_layer.data()->adjustCachingRecursively(false);
+ if (m_layer && m_layer.data()->m_layer)
+ m_layer.data()->setBaseTransform(m_layer.data()->m_layer->transform());
}
}
@@ -1194,6 +1232,11 @@ public:
{
}
+ ~OpacityAnimationQt()
+ {
+ if (m_fillsForwards)
+ setCurrentTime(1);
+ }
virtual void applyFrame(const qreal& fromValue, const qreal& toValue, qreal progress)
{
qreal opacity = qBound(qreal(0), fromValue + (toValue-fromValue)*progress, qreal(1));
@@ -1204,6 +1247,8 @@ public:
m_layer.data()->scene()->update();
m_layer.data()->setOpacity(opacity);
+ if (m_fillsForwards)
+ m_layer.data()->m_layer->setOpacity(opacity);
}
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
@@ -1212,6 +1257,12 @@ public:
if (m_layer)
m_layer.data()->m_opacityAnimationRunning = (newState == QAbstractAnimation::Running);
+
+ // If stopped, we update the opacity back to the default. This already takes fill-modes into account.
+ if (newState == Stopped)
+ if (m_layer && m_layer.data()->m_layer)
+ m_layer.data()->setOpacity(m_layer.data()->m_layer->opacity());
+
}
};
@@ -1220,7 +1271,7 @@ bool GraphicsLayerQt::addAnimation(const KeyframeValueList& values, const IntSiz
if (!anim->duration() || !anim->iterationCount())
return false;
- QAbstractAnimation* newAnim = 0;
+ AnimationQtBase* newAnim = 0;
// fixed: we might already have the Qt animation object associated with this WebCore::Animation object
for (QList<QWeakPointer<QAbstractAnimation> >::iterator it = m_impl->m_animations.begin(); it != m_impl->m_animations.end(); ++it) {
@@ -1245,6 +1296,7 @@ bool GraphicsLayerQt::addAnimation(const KeyframeValueList& values, const IntSiz
// we make sure WebCore::Animation and QAnimation are on the same terms
newAnim->setLoopCount(anim->iterationCount());
+ newAnim->m_fillsForwards = anim->fillsForwards();
m_impl->m_animations.append(QWeakPointer<QAbstractAnimation>(newAnim));
QObject::connect(&m_impl->m_suspendTimer, SIGNAL(timeout()), newAnim, SLOT(resume()));
}
@@ -1252,6 +1304,10 @@ bool GraphicsLayerQt::addAnimation(const KeyframeValueList& values, const IntSiz
// flush now or flicker...
m_impl->flushChanges(false);
+ // when fill-mode is backwards/both, we set the value to 0 before the delay takes place
+ if (anim->fillsBackwards())
+ newAnim->setCurrentTime(0);
+
if (anim->delay())
QTimer::singleShot(anim->delay() * 1000, newAnim, SLOT(start()));
else
@@ -1272,6 +1328,8 @@ void GraphicsLayerQt::removeAnimationsForProperty(AnimatedPropertyID id)
if (*it) {
AnimationQtBase* anim = static_cast<AnimationQtBase*>(it->data());
if (anim && anim->m_webkitPropertyID == id) {
+ // We need to stop the animation right away, or it might flicker before it's deleted.
+ anim->stop();
anim->deleteLater();
it = m_impl->m_animations.erase(it);
--it;
@@ -1286,7 +1344,9 @@ void GraphicsLayerQt::removeAnimationsForKeyframes(const String& name)
if (*it) {
AnimationQtBase* anim = static_cast<AnimationQtBase*>((*it).data());
if (anim && anim->m_keyframesName == QString(name)) {
- (*it).data()->deleteLater();
+ // We need to stop the animation right away, or it might flicker before it's deleted.
+ anim->stop();
+ anim->deleteLater();
it = m_impl->m_animations.erase(it);
--it;
}
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h b/src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h
index cdf101d..96b4baa 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/transforms/TransformationMatrix.h
@@ -47,7 +47,7 @@
#endif
#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(WX) && OS(WINDOWS))
-#if COMPILER(MINGW)
+#if COMPILER(MINGW) && !COMPILER(MINGW64)
typedef struct _XFORM XFORM;
#else
typedef struct tagXFORM XFORM;
diff --git a/src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm b/src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm
index 7d43505..82348e0 100644
--- a/src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm
+++ b/src/3rdparty/webkit/WebCore/platform/mac/MIMETypeRegistryMac.mm
@@ -56,4 +56,9 @@ String MIMETypeRegistry::getPreferredExtensionForMIMEType(const String& type)
return wkGetPreferredExtensionForMIMEType(type);
}
+bool MIMETypeRegistry::isApplicationPluginMIMEType(const String&)
+{
+ return false;
+}
+
}
diff --git a/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp b/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
index 341e6ae..fea64a0 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/network/qt/ResourceRequestQt.cpp
@@ -32,12 +32,14 @@ namespace WebCore {
// To achieve the best result we want WebKit to schedule the jobs so we
// are using the limit as found in Qt. To allow Qt to fill its queue
// and prepare jobs we will schedule two more downloads.
+// Per TCP connection there is 1 current processed, 3 possibly pipelined
+// and 2 ready to re-fill the pipeline.
unsigned initializeMaximumHTTPConnectionCountPerHost()
{
#ifdef Q_OS_SYMBIAN
- return 3 + 2;
+ return 3 * (1 + 3 + 2);
#else
- return 6 + 2;
+ return 6 * (1 + 3 + 2);
#endif
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp
index 22cee6f..4161f81 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/MIMETypeRegistryQt.cpp
@@ -82,4 +82,10 @@ String MIMETypeRegistry::getMIMETypeForExtension(const String &ext)
return "application/octet-stream";
}
+bool MIMETypeRegistry::isApplicationPluginMIMEType(const String& mimeType)
+{
+ return mimeType.startsWith("application/x-qt-plugin", false)
+ || mimeType.startsWith("application/x-qt-styled-widget", false);
+}
+
}
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/QWebPageClient.h b/src/3rdparty/webkit/WebCore/platform/qt/QWebPageClient.h
index f03ff08..467941f 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/QWebPageClient.h
+++ b/src/3rdparty/webkit/WebCore/platform/qt/QWebPageClient.h
@@ -55,6 +55,7 @@ public:
// if scheduleSync is true, we schedule a sync ourselves. otherwise,
// we wait for the next update and sync the layers then.
virtual void markForSync(bool scheduleSync = false) {}
+ virtual bool allowsAcceleratedCompositing() const { return false; }
#endif
#if QT_VERSION >= 0x040600
diff --git a/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp
index e9bcaee..7c0fd05 100644
--- a/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp
@@ -40,6 +40,8 @@
namespace WebCore {
class SharedTimerQt : public QObject {
+ Q_OBJECT
+
friend void setSharedTimerFiredFunction(void (*f)());
public:
static SharedTimerQt* inst();
@@ -50,15 +52,18 @@ public:
protected:
void timerEvent(QTimerEvent* ev);
+private slots:
+ void destroy();
+
private:
- SharedTimerQt(QObject* parent);
+ SharedTimerQt();
~SharedTimerQt();
QBasicTimer m_timer;
void (*m_timerFunction)();
};
-SharedTimerQt::SharedTimerQt(QObject* parent)
- : QObject(parent)
+SharedTimerQt::SharedTimerQt()
+ : QObject()
, m_timerFunction(0)
{}
@@ -68,11 +73,18 @@ SharedTimerQt::~SharedTimerQt()
(m_timerFunction)();
}
+void SharedTimerQt::destroy()
+{
+ delete this;
+}
+
SharedTimerQt* SharedTimerQt::inst()
{
static QPointer<SharedTimerQt> timer;
- if (!timer)
- timer = new SharedTimerQt(QCoreApplication::instance());
+ if (!timer) {
+ timer = new SharedTimerQt();
+ timer->connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), SLOT(destroy()));
+ }
return timer;
}
@@ -129,6 +141,8 @@ void stopSharedTimer()
SharedTimerQt::inst()->stop();
}
+#include "SharedTimerQt.moc"
+
}
// vim: ts=4 sw=4 et
diff --git a/src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp b/src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp
index ab73891..eed17a5 100644
--- a/src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/text/TextStream.cpp
@@ -108,7 +108,7 @@ String TextStream::release()
return String::adopt(m_text);
}
-#if OS(WINDOWS) && CPU(X86_64) && COMPILER(MSVC)
+#if OS(WINDOWS) && CPU(X86_64)
TextStream& TextStream::operator<<(__int64 i)
{
char buffer[printBufferSize];
diff --git a/src/3rdparty/webkit/WebCore/platform/text/TextStream.h b/src/3rdparty/webkit/WebCore/platform/text/TextStream.h
index 1225505..522da53 100644
--- a/src/3rdparty/webkit/WebCore/platform/text/TextStream.h
+++ b/src/3rdparty/webkit/WebCore/platform/text/TextStream.h
@@ -45,7 +45,7 @@ public:
TextStream& operator<<(const char*);
TextStream& operator<<(void*);
TextStream& operator<<(const String&);
-#if OS(WINDOWS) && CPU(X86_64) && COMPILER(MSVC)
+#if OS(WINDOWS) && CPU(X86_64)
TextStream& operator<<(unsigned __int64);
TextStream& operator<<(__int64);
#endif
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
index 38acdd9..df9a29b 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.cpp
@@ -345,7 +345,7 @@ void PluginView::stop()
WNDPROC currentWndProc = (WNDPROC)GetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC);
if (currentWndProc == PluginViewWndProc)
- SetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC, (LONG)m_pluginWndProc);
+ SetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC, (LONG_PTR)m_pluginWndProc);
#endif
}
#endif // XP_WIN
@@ -1296,9 +1296,7 @@ void PluginView::keepAlive(NPP instance)
view->keepAlive();
}
-#endif
-#if ENABLE(NETSCAPE_PLUGIN_API)
NPError PluginView::getValueStatic(NPNVariable variable, void* value)
{
LOG(Plugins, "PluginView::getValueStatic(%s)", prettyNameForNPNVariable(variable).data());
@@ -1309,7 +1307,6 @@ NPError PluginView::getValueStatic(NPNVariable variable, void* value)
return NPERR_GENERIC_ERROR;
}
-#endif
NPError PluginView::getValue(NPNVariable variable, void* value)
{
@@ -1319,13 +1316,10 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
if (platformGetValue(variable, value, &result))
return result;
-#if ENABLE(NETSCAPE_PLUGIN_API)
if (platformGetValueStatic(variable, value, &result))
return result;
-#endif
switch (variable) {
-#if ENABLE(NETSCAPE_PLUGIN_API)
case NPNVWindowNPObject: {
if (m_isJavaScriptPaused)
return NPERR_GENERIC_ERROR;
@@ -1360,7 +1354,6 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
return NPERR_NO_ERROR;
}
-#endif
case NPNVprivateModeBool: {
Page* page = m_parentFrame->page();
@@ -1374,6 +1367,7 @@ NPError PluginView::getValue(NPNVariable variable, void* value)
return NPERR_GENERIC_ERROR;
}
}
+#endif
void PluginView::privateBrowsingStateChanged(bool privateBrowsingEnabled)
{
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginView.h b/src/3rdparty/webkit/WebCore/plugins/PluginView.h
index 21a25f6..51b2127 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginView.h
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginView.h
@@ -139,8 +139,9 @@ namespace WebCore {
static const char* userAgentStatic();
#endif
void status(const char* message);
- NPError getValue(NPNVariable variable, void* value);
+
#if ENABLE(NETSCAPE_PLUGIN_API)
+ NPError getValue(NPNVariable variable, void* value);
static NPError getValueStatic(NPNVariable variable, void* value);
#endif
NPError setValue(NPPVariable variable, void* value);
diff --git a/src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp b/src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp
index ed5ad1b..bd51a98 100644
--- a/src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/PluginViewNone.cpp
@@ -67,12 +67,12 @@ NPError PluginView::handlePostReadFile(Vector<char>&, uint32, const char*)
return 0;
}
+#if ENABLE(NETSCAPE_PLUGIN_API)
bool PluginView::platformGetValue(NPNVariable, void*, NPError*)
{
return false;
}
-#if ENABLE(NETSCAPE_PLUGIN_API)
bool PluginView::platformGetValueStatic(NPNVariable, void*, NPError*)
{
return false;
@@ -126,4 +126,14 @@ void PluginView::keepAlive(NPP)
}
#endif
+#if PLATFORM(MAC) || PLATFORM(CHROMIUM) || PLATFORM(EFL)
+void PluginView::privateBrowsingStateChanged(bool)
+{
+}
+
+void PluginView::setJavaScriptPaused(bool)
+{
+}
+#endif
+
} // namespace WebCore
diff --git a/src/3rdparty/webkit/WebCore/plugins/symbian/PluginViewSymbian.cpp b/src/3rdparty/webkit/WebCore/plugins/symbian/PluginViewSymbian.cpp
index bae3b7f..108fcca 100644
--- a/src/3rdparty/webkit/WebCore/plugins/symbian/PluginViewSymbian.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/symbian/PluginViewSymbian.cpp
@@ -414,11 +414,11 @@ bool PluginView::platformStart()
void PluginView::platformDestroy()
{
- QWebPageClient* client = m_parentFrame->view()->hostWindow()->platformPageClient();
- if (client && qobject_cast<QGraphicsWebView*>(client->pluginParent()))
- delete static_cast<PluginContainerSymbian*>(platformPluginWidget())->proxy();
- else
- delete platformPluginWidget();
+ if (platformPluginWidget()) {
+ PluginContainerSymbian* container = static_cast<PluginContainerSymbian*>(platformPluginWidget());
+ delete container->proxy();
+ delete container;
+ }
}
void PluginView::halt()
diff --git a/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp b/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp
index 9d869ab..e37714a 100644
--- a/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp
+++ b/src/3rdparty/webkit/WebCore/plugins/win/PluginViewWin.cpp
@@ -544,7 +544,7 @@ void PluginView::paintIntoTransformedContext(HDC hdc)
NPEvent npEvent;
npEvent.event = WM_WINDOWPOSCHANGED;
- npEvent.lParam = reinterpret_cast<uint32>(&windowpos);
+ npEvent.lParam = reinterpret_cast<uintptr_t>(&windowpos);
npEvent.wParam = 0;
dispatchNPEvent(npEvent);
@@ -552,7 +552,7 @@ void PluginView::paintIntoTransformedContext(HDC hdc)
setNPWindowRect(frameRect());
npEvent.event = WM_PAINT;
- npEvent.wParam = reinterpret_cast<uint32>(hdc);
+ npEvent.wParam = reinterpret_cast<uintptr_t>(hdc);
// This is supposed to be a pointer to the dirty rect, but it seems that the Flash plugin
// ignores it so we just pass null.
@@ -829,7 +829,7 @@ void PluginView::setNPWindowRect(const IntRect& rect)
#else
WNDPROC currentWndProc = (WNDPROC)GetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC);
if (currentWndProc != PluginViewWndProc)
- m_pluginWndProc = (WNDPROC)SetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC, (LONG)PluginViewWndProc);
+ m_pluginWndProc = (WNDPROC)SetWindowLongPtr(platformPluginWidget(), GWLP_WNDPROC, (LONG_PTR)PluginViewWndProc);
#endif
}
}
@@ -978,7 +978,7 @@ bool PluginView::platformStart()
// Calling SetWindowLongPtrA here makes the window proc ASCII, which is required by at least
// the Shockwave Director plug-in.
-#if OS(WINDOWS) && CPU(X86_64) && COMPILER(MSVC)
+#if OS(WINDOWS) && CPU(X86_64)
::SetWindowLongPtrA(platformPluginWidget(), GWLP_WNDPROC, (LONG_PTR)DefWindowProcA);
#elif OS(WINCE)
::SetWindowLong(platformPluginWidget(), GWL_WNDPROC, (LONG)DefWindowProc);
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp
index 1c0e837..c6818f8 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderBox.cpp
@@ -1179,10 +1179,9 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, In
IntPoint topLeft = rect.location();
topLeft.move(x(), y());
- if (style()->position() == FixedPosition)
- fixed = true;
+ EPosition position = style()->position();
- if (o->isBlockFlow() && style()->position() != AbsolutePosition && style()->position() != FixedPosition) {
+ if (o->isBlockFlow() && position != AbsolutePosition && position != FixedPosition) {
RenderBlock* cb = toRenderBlock(o);
if (cb->hasColumns()) {
IntRect repaintRect(topLeft, rect.size());
@@ -1195,16 +1194,17 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, In
// We are now in our parent container's coordinate space. Apply our transform to obtain a bounding box
// in the parent's coordinate space that encloses us.
if (layer() && layer()->transform()) {
- fixed = false;
+ fixed = position == FixedPosition;
rect = layer()->transform()->mapRect(rect);
// FIXME: this clobbers topLeft adjustment done for multicol above
topLeft = rect.location();
topLeft.move(x(), y());
- }
+ } else if (position == FixedPosition)
+ fixed = true;
- if (style()->position() == AbsolutePosition && o->isRelPositioned() && o->isRenderInline())
+ if (position == AbsolutePosition && o->isRelPositioned() && o->isRenderInline())
topLeft += toRenderInline(o)->relativePositionedInlineOffset(this);
- else if (style()->position() == RelativePosition && layer()) {
+ else if (position == RelativePosition && layer()) {
// Apply the relative position offset when invalidating a rectangle. The layer
// is translated, but the render box isn't, so we need to do this to get the
// right dirty rect. Since this is called from RenderObject::setStyle, the relative position
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
index 15ffb64..3314772 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
@@ -332,6 +332,22 @@ void RenderLayer::computeRepaintRects()
m_outlineBox = renderer()->outlineBoundsForRepaint(repaintContainer);
}
+void RenderLayer::updateRepaintRectsAfterScroll(bool fixed)
+{
+ if (fixed || renderer()->style()->position() == FixedPosition) {
+ computeRepaintRects();
+ fixed = true;
+ } else if (renderer()->hasTransform()) {
+ // Transforms act as fixed position containers, so nothing inside a
+ // transformed element can be fixed relative to the viewport if the
+ // transformed element is not fixed itself or child of a fixed element.
+ return;
+ }
+
+ for (RenderLayer* child = firstChild(); child; child = child->nextSibling())
+ child->updateRepaintRectsAfterScroll(fixed);
+}
+
void RenderLayer::updateTransform()
{
// hasTransform() on the renderer is also true when there is transform-style: preserve-3d or perspective set,
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h
index 9210e95..81a66e1 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.h
@@ -395,6 +395,7 @@ public:
// Return a cached repaint rect, computed relative to the layer renderer's containerForRepaint.
IntRect repaintRect() const { return m_repaintRect; }
void computeRepaintRects();
+ void updateRepaintRectsAfterScroll(bool fixed = false);
void setNeedsFullRepaint(bool f = true) { m_needsFullRepaint = f; }
int staticX() const { return m_staticX; }
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp
index 93af664..c295a2c 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayerCompositor.cpp
@@ -128,6 +128,15 @@ void RenderLayerCompositor::cacheAcceleratedCompositingFlags()
showRepaintCounter = settings->showRepaintCounter();
}
+ // We allow the chrome to override the settings, in case the page is rendered
+ // on a chrome that doesn't allow accelerated compositing.
+ if (hasAcceleratedCompositing) {
+ Frame* frame = m_renderView->frameView()->frame();
+ Page* page = frame ? frame->page() : 0;
+ if (page)
+ hasAcceleratedCompositing = page->chrome()->client()->allowsAcceleratedCompositing();
+ }
+
if (hasAcceleratedCompositing != m_hasAcceleratedCompositing || showDebugBorders != m_showDebugBorders || showRepaintCounter != m_showRepaintCounter)
setCompositingLayersNeedRebuild();