<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[168868] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/168868">168868</a></dd>
<dt>Author</dt> <dd>zalan@apple.com</dd>
<dt>Date</dt> <dd>2014-05-14 16:13:52 -0700 (Wed, 14 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Subpixel layout: Change Element.offset* client* scroll* return type to double.
https://bugs.webkit.org/show_bug.cgi?id=132895

Reviewed by Simon Fraser.

Source/WebCore:
This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
type from long to double to match the latest CSSOM View Module spec[1].
Element.offset* and Element.client* do return subpixel values from now on.
Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.

subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
from WK2 preferences. It toggles the return value from subpixel to floored integral.
It does not change layout/rendering behavior.

Reference list of what other browsers do:
IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
Blink: http://www.chromestatus.com/features/5497402177880064
Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607

[1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/

Test: cssom/subpixel-offsetleft-top-width-height-values.html

* dom/Element.cpp:
(WebCore::localZoomForRenderer):
(WebCore::adjustForLocalZoom):
(WebCore::convertToNonSubpixelValueIfNeeded):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
(WebCore::Element::scrollLeft):
(WebCore::Element::scrollTop):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
(WebCore::Element::scrollWidth):
(WebCore::Element::scrollHeight):
* dom/Element.h:
* dom/Element.idl:
* html/HTMLBodyElement.cpp:
(WebCore::adjustForZoom):
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
(WebCore::HTMLBodyElement::scrollHeight):
(WebCore::HTMLBodyElement::scrollWidth):
* html/HTMLBodyElement.h:
* page/Settings.in:

Source/WebKit2:
This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
type from long to double to match the latest CSSOM View Module spec[1].
Element.offset* and Element.client* do return subpixel values from now on.
Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.

subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
from WK2 preferences. It toggles the return value from subpixel to floored integral.
It does not change layout/rendering behavior.

Reference list of what other browsers do:
IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
Blink: http://www.chromestatus.com/features/5497402177880064
Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607

[1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSubpixelCSSOMElementMetricsEnabled):
(WKPreferencesGetSubpixelCSSOMElementMetricsEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

LayoutTests:
Some test cases expect integral values, so the test content is updated accordingly.
It mostly means adding Math.round() before comparing values in order to match pixelSnappedIntRect()
functionality.

* css3/calc/simple-calcs-prefixed.html: changed file format from Windows to Unix.
* css3/calc/simple-calcs.html: changed file format from Windows to Unix.
* cssom/subpixel-offsetleft-top-width-height-values-expected.txt: Added.
* cssom/subpixel-offsetleft-top-width-height-values.html: Added.
* editing/selection/drag-start-event-client-x-y.html: use floor as we compare the return value to a truncated integer.
* editing/selection/mixed-editability-10.html:
* fast/css/zoom-in-length-round-trip.html:
* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
* fast/forms/basic-buttons.html:
* js/dom/dom-static-property-for-in-iteration-expected.txt:
* platform/mac/fast/scrolling/scroll-div-latched-div.html:
* platform/mac/fast/scrolling/scroll-div-latched-mainframe.html:
* platform/mac/fast/scrolling/scroll-select-bottom-test.html:
* platform/mac/fast/scrolling/scroll-select-latched-mainframe.html:
* platform/mac/fast/scrolling/scroll-select-latched-select.html:
* resources/check-layout.js:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestscss3calcsimplecalcsprefixedhtml">trunk/LayoutTests/css3/calc/simple-calcs-prefixed.html</a></li>
<li><a href="#trunkLayoutTestscss3calcsimplecalcshtml">trunk/LayoutTests/css3/calc/simple-calcs.html</a></li>
<li><a href="#trunkLayoutTestseditingselectiondragstarteventclientxyhtml">trunk/LayoutTests/editing/selection/drag-start-event-client-x-y.html</a></li>
<li><a href="#trunkLayoutTestseditingselectionmixededitability10html">trunk/LayoutTests/editing/selection/mixed-editability-10.html</a></li>
<li><a href="#trunkLayoutTestsfastcsszoominlengthroundtriphtml">trunk/LayoutTests/fast/css/zoom-in-length-round-trip.html</a></li>
<li><a href="#trunkLayoutTestsfastdomnonnumericvaluesnumericparametersexpectedtxt">trunk/LayoutTests/fast/dom/non-numeric-values-numeric-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomscripttestsnonnumericvaluesnumericparametersjs">trunk/LayoutTests/fast/dom/script-tests/non-numeric-values-numeric-parameters.js</a></li>
<li><a href="#trunkLayoutTestsfastformsbasicbuttonshtml">trunk/LayoutTests/fast/forms/basic-buttons.html</a></li>
<li><a href="#trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt">trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivhtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtesthtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselecthtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html</a></li>
<li><a href="#trunkLayoutTestsresourceschecklayoutjs">trunk/LayoutTests/resources/check-layout.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomElementidl">trunk/Source/WebCore/dom/Element.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBodyElementcpp">trunk/Source/WebCore/html/HTMLBodyElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBodyElementh">trunk/Source/WebCore/html/HTMLBodyElement.h</a></li>
<li><a href="#trunkSourceWebCorepageSettingsin">trunk/Source/WebCore/page/Settings.in</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedWebPreferencesStoreh">trunk/Source/WebKit2/Shared/WebPreferencesStore.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencescpp">trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh">trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscssomsubpixeloffsetlefttopwidthheightvaluesexpectedtxt">trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values-expected.txt</a></li>
<li><a href="#trunkLayoutTestscssomsubpixeloffsetlefttopwidthheightvalueshtml">trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/ChangeLog        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2014-05-14  Zalan Bujtas  &lt;zalan@apple.com&gt;
+
+        Subpixel layout: Change Element.offset* client* scroll* return type to double.
+        https://bugs.webkit.org/show_bug.cgi?id=132895
+
+        Reviewed by Simon Fraser.
+
+        Some test cases expect integral values, so the test content is updated accordingly.
+        It mostly means adding Math.round() before comparing values in order to match pixelSnappedIntRect()
+        functionality.
+
+        * css3/calc/simple-calcs-prefixed.html: changed file format from Windows to Unix.
+        * css3/calc/simple-calcs.html: changed file format from Windows to Unix.
+        * cssom/subpixel-offsetleft-top-width-height-values-expected.txt: Added.
+        * cssom/subpixel-offsetleft-top-width-height-values.html: Added.
+        * editing/selection/drag-start-event-client-x-y.html: use floor as we compare the return value to a truncated integer.
+        * editing/selection/mixed-editability-10.html:
+        * fast/css/zoom-in-length-round-trip.html:
+        * fast/dom/non-numeric-values-numeric-parameters-expected.txt:
+        * fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
+        * fast/forms/basic-buttons.html:
+        * js/dom/dom-static-property-for-in-iteration-expected.txt:
+        * platform/mac/fast/scrolling/scroll-div-latched-div.html:
+        * platform/mac/fast/scrolling/scroll-div-latched-mainframe.html:
+        * platform/mac/fast/scrolling/scroll-select-bottom-test.html:
+        * platform/mac/fast/scrolling/scroll-select-latched-mainframe.html:
+        * platform/mac/fast/scrolling/scroll-select-latched-select.html:
+        * resources/check-layout.js:
+
</ins><span class="cx"> 2014-05-14  Carlos Alberto Lopez Perez  &lt;clopez@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Unreviewed GTK gardening.
</span></span></pre></div>
<a id="trunkLayoutTestscss3calcsimplecalcsprefixedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/calc/simple-calcs-prefixed.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/calc/simple-calcs-prefixed.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/css3/calc/simple-calcs-prefixed.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -104,10 +104,10 @@
</span><span class="cx">     for (var z = 0; z &lt; zoomLevels.length; z++) {
</span><span class="cx">         var zoom = zoomLevels[z];
</span><span class="cx">         document.body.style.zoom = zoom;
</span><del>-        var width = element.offsetWidth;
</del><ins>+        var width = Math.round(element.offsetWidth);
</ins><span class="cx">         if (width != 100)
</span><span class="cx">             error.push(&quot;@zoom=&quot; + zoom + &quot; expected width of 100, but was &quot; + width);
</span><del>-        var height = element.offsetHeight;
</del><ins>+        var height = Math.round(element.offsetHeight);
</ins><span class="cx">         if (height != 100)
</span><span class="cx">             error.push(&quot;@zoom=&quot; + zoom + &quot; expected height of 100, but was &quot; + height);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkLayoutTestscss3calcsimplecalcshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/css3/calc/simple-calcs.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css3/calc/simple-calcs.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/css3/calc/simple-calcs.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -101,10 +101,10 @@
</span><span class="cx">     for (var z = 0; z &lt; zoomLevels.length; z++) {
</span><span class="cx">         var zoom = zoomLevels[z];
</span><span class="cx">         document.body.style.zoom = zoom;
</span><del>-        var width = element.offsetWidth;
</del><ins>+        var width = Math.round(element.offsetWidth);
</ins><span class="cx">         if (width != 100)
</span><span class="cx">             error.push(&quot;@zoom=&quot; + zoom + &quot; expected width of 100, but was &quot; + width);
</span><del>-        var height = element.offsetHeight;
</del><ins>+        var height = Math.round(element.offsetHeight);
</ins><span class="cx">         if (height != 100)
</span><span class="cx">             error.push(&quot;@zoom=&quot; + zoom + &quot; expected height of 100, but was &quot; + height);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkLayoutTestscssomsubpixeloffsetlefttopwidthheightvaluesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values-expected.txt (0 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values-expected.txt                                (rev 0)
+++ trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values-expected.txt        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -0,0 +1,801 @@
</span><ins>+offsetTop:0.00 offsetLeft:0.00 offsetWidth:0.09 offsetHeight:0.09
+clientTop:0.05 clientLeft:0.05 clientWidth:0.00 clientHeight:0.00
+offsetTop:0.19 offsetLeft:0.09 offsetWidth:0.19 offsetHeight:0.19
+clientTop:0.05 clientLeft:0.05 clientWidth:0.09 clientHeight:0.09
+offsetTop:0.39 offsetLeft:0.39 offsetWidth:0.28 offsetHeight:0.28
+clientTop:0.05 clientLeft:0.05 clientWidth:0.19 clientHeight:0.19
+offsetTop:0.59 offsetLeft:0.89 offsetWidth:0.39 offsetHeight:0.39
+clientTop:0.05 clientLeft:0.05 clientWidth:0.30 clientHeight:0.30
+offsetTop:0.80 offsetLeft:1.59 offsetWidth:0.48 offsetHeight:0.48
+clientTop:0.05 clientLeft:0.05 clientWidth:0.39 clientHeight:0.39
+offsetTop:1.00 offsetLeft:2.50 offsetWidth:0.59 offsetHeight:0.59
+clientTop:0.05 clientLeft:0.05 clientWidth:0.50 clientHeight:0.50
+offsetTop:1.19 offsetLeft:3.59 offsetWidth:0.69 offsetHeight:0.69
+clientTop:0.05 clientLeft:0.05 clientWidth:0.59 clientHeight:0.59
+offsetTop:1.39 offsetLeft:4.89 offsetWidth:0.78 offsetHeight:0.78
+clientTop:0.05 clientLeft:0.05 clientWidth:0.69 clientHeight:0.69
+offsetTop:1.59 offsetLeft:6.39 offsetWidth:0.89 offsetHeight:0.89
+clientTop:0.05 clientLeft:0.05 clientWidth:0.80 clientHeight:0.80
+offsetTop:1.80 offsetLeft:8.09 offsetWidth:0.98 offsetHeight:0.98
+clientTop:0.05 clientLeft:0.05 clientWidth:0.89 clientHeight:0.89
+offsetTop:2.00 offsetLeft:10.00 offsetWidth:1.09 offsetHeight:1.09
+clientTop:0.05 clientLeft:0.05 clientWidth:1.00 clientHeight:1.00
+offsetTop:2.19 offsetLeft:12.09 offsetWidth:1.19 offsetHeight:1.19
+clientTop:0.05 clientLeft:0.05 clientWidth:1.09 clientHeight:1.09
+offsetTop:2.39 offsetLeft:14.39 offsetWidth:1.28 offsetHeight:1.28
+clientTop:0.05 clientLeft:0.05 clientWidth:1.19 clientHeight:1.19
+offsetTop:2.59 offsetLeft:16.89 offsetWidth:1.39 offsetHeight:1.39
+clientTop:0.05 clientLeft:0.05 clientWidth:1.30 clientHeight:1.30
+offsetTop:2.80 offsetLeft:19.59 offsetWidth:1.48 offsetHeight:1.48
+clientTop:0.05 clientLeft:0.05 clientWidth:1.39 clientHeight:1.39
+offsetTop:3.00 offsetLeft:22.50 offsetWidth:1.59 offsetHeight:1.59
+clientTop:0.05 clientLeft:0.05 clientWidth:1.50 clientHeight:1.50
+offsetTop:3.19 offsetLeft:25.59 offsetWidth:1.69 offsetHeight:1.69
+clientTop:0.05 clientLeft:0.05 clientWidth:1.59 clientHeight:1.59
+offsetTop:3.39 offsetLeft:28.89 offsetWidth:1.78 offsetHeight:1.78
+clientTop:0.05 clientLeft:0.05 clientWidth:1.69 clientHeight:1.69
+offsetTop:3.59 offsetLeft:32.39 offsetWidth:1.89 offsetHeight:1.89
+clientTop:0.05 clientLeft:0.05 clientWidth:1.80 clientHeight:1.80
+offsetTop:3.80 offsetLeft:36.09 offsetWidth:1.98 offsetHeight:1.98
+clientTop:0.05 clientLeft:0.05 clientWidth:1.89 clientHeight:1.89
+offsetTop:2.00 offsetLeft:0.30 offsetWidth:2.13 offsetHeight:2.13
+clientTop:0.06 clientLeft:0.06 clientWidth:2.00 clientHeight:2.00
+offsetTop:2.39 offsetLeft:2.39 offsetWidth:2.22 offsetHeight:2.22
+clientTop:0.06 clientLeft:0.06 clientWidth:2.09 clientHeight:2.09
+offsetTop:2.80 offsetLeft:4.69 offsetWidth:2.31 offsetHeight:2.31
+clientTop:0.06 clientLeft:0.06 clientWidth:2.19 clientHeight:2.19
+offsetTop:3.19 offsetLeft:7.19 offsetWidth:2.42 offsetHeight:2.42
+clientTop:0.06 clientLeft:0.06 clientWidth:2.30 clientHeight:2.30
+offsetTop:3.59 offsetLeft:9.89 offsetWidth:2.52 offsetHeight:2.52
+clientTop:0.06 clientLeft:0.06 clientWidth:2.39 clientHeight:2.39
+offsetTop:4.00 offsetLeft:12.80 offsetWidth:2.63 offsetHeight:2.63
+clientTop:0.06 clientLeft:0.06 clientWidth:2.50 clientHeight:2.50
+offsetTop:4.39 offsetLeft:15.89 offsetWidth:2.72 offsetHeight:2.72
+clientTop:0.06 clientLeft:0.06 clientWidth:2.59 clientHeight:2.59
+offsetTop:4.80 offsetLeft:19.19 offsetWidth:2.81 offsetHeight:2.81
+clientTop:0.06 clientLeft:0.06 clientWidth:2.69 clientHeight:2.69
+offsetTop:5.19 offsetLeft:22.69 offsetWidth:2.92 offsetHeight:2.92
+clientTop:0.06 clientLeft:0.06 clientWidth:2.80 clientHeight:2.80
+offsetTop:5.59 offsetLeft:26.39 offsetWidth:3.02 offsetHeight:3.02
+clientTop:0.06 clientLeft:0.06 clientWidth:2.89 clientHeight:2.89
+offsetTop:6.00 offsetLeft:30.30 offsetWidth:3.13 offsetHeight:3.13
+clientTop:0.06 clientLeft:0.06 clientWidth:3.00 clientHeight:3.00
+offsetTop:6.39 offsetLeft:34.39 offsetWidth:3.22 offsetHeight:3.22
+clientTop:0.06 clientLeft:0.06 clientWidth:3.09 clientHeight:3.09
+offsetTop:6.80 offsetLeft:38.69 offsetWidth:3.31 offsetHeight:3.31
+clientTop:0.06 clientLeft:0.06 clientWidth:3.19 clientHeight:3.19
+offsetTop:7.19 offsetLeft:43.19 offsetWidth:3.42 offsetHeight:3.42
+clientTop:0.06 clientLeft:0.06 clientWidth:3.30 clientHeight:3.30
+offsetTop:7.59 offsetLeft:47.89 offsetWidth:3.52 offsetHeight:3.52
+clientTop:0.06 clientLeft:0.06 clientWidth:3.39 clientHeight:3.39
+offsetTop:8.00 offsetLeft:52.80 offsetWidth:3.63 offsetHeight:3.63
+clientTop:0.06 clientLeft:0.06 clientWidth:3.50 clientHeight:3.50
+offsetTop:8.39 offsetLeft:57.89 offsetWidth:3.72 offsetHeight:3.72
+clientTop:0.06 clientLeft:0.06 clientWidth:3.59 clientHeight:3.59
+offsetTop:8.80 offsetLeft:63.19 offsetWidth:3.81 offsetHeight:3.81
+clientTop:0.06 clientLeft:0.06 clientWidth:3.69 clientHeight:3.69
+offsetTop:9.19 offsetLeft:68.69 offsetWidth:3.92 offsetHeight:3.92
+clientTop:0.06 clientLeft:0.06 clientWidth:3.80 clientHeight:3.80
+offsetTop:9.59 offsetLeft:74.39 offsetWidth:4.02 offsetHeight:4.02
+clientTop:0.06 clientLeft:0.06 clientWidth:3.89 clientHeight:3.89
+offsetTop:8.00 offsetLeft:0.80 offsetWidth:4.19 offsetHeight:4.19
+clientTop:0.09 clientLeft:0.09 clientWidth:4.00 clientHeight:4.00
+offsetTop:8.59 offsetLeft:4.89 offsetWidth:4.28 offsetHeight:4.28
+clientTop:0.09 clientLeft:0.09 clientWidth:4.09 clientHeight:4.09
+offsetTop:9.19 offsetLeft:9.19 offsetWidth:4.38 offsetHeight:4.38
+clientTop:0.09 clientLeft:0.09 clientWidth:4.19 clientHeight:4.19
+offsetTop:9.80 offsetLeft:13.69 offsetWidth:4.48 offsetHeight:4.48
+clientTop:0.09 clientLeft:0.09 clientWidth:4.30 clientHeight:4.30
+offsetTop:10.39 offsetLeft:18.39 offsetWidth:4.58 offsetHeight:4.58
+clientTop:0.09 clientLeft:0.09 clientWidth:4.39 clientHeight:4.39
+offsetTop:11.00 offsetLeft:23.30 offsetWidth:4.69 offsetHeight:4.69
+clientTop:0.09 clientLeft:0.09 clientWidth:4.50 clientHeight:4.50
+offsetTop:11.59 offsetLeft:28.39 offsetWidth:4.78 offsetHeight:4.78
+clientTop:0.09 clientLeft:0.09 clientWidth:4.59 clientHeight:4.59
+offsetTop:12.19 offsetLeft:33.69 offsetWidth:4.88 offsetHeight:4.88
+clientTop:0.09 clientLeft:0.09 clientWidth:4.69 clientHeight:4.69
+offsetTop:12.80 offsetLeft:39.19 offsetWidth:4.98 offsetHeight:4.98
+clientTop:0.09 clientLeft:0.09 clientWidth:4.80 clientHeight:4.80
+offsetTop:13.39 offsetLeft:44.89 offsetWidth:5.08 offsetHeight:5.08
+clientTop:0.09 clientLeft:0.09 clientWidth:4.89 clientHeight:4.89
+offsetTop:14.00 offsetLeft:50.80 offsetWidth:5.19 offsetHeight:5.19
+clientTop:0.09 clientLeft:0.09 clientWidth:5.00 clientHeight:5.00
+offsetTop:14.59 offsetLeft:56.89 offsetWidth:5.28 offsetHeight:5.28
+clientTop:0.09 clientLeft:0.09 clientWidth:5.09 clientHeight:5.09
+offsetTop:15.19 offsetLeft:63.19 offsetWidth:5.38 offsetHeight:5.38
+clientTop:0.09 clientLeft:0.09 clientWidth:5.19 clientHeight:5.19
+offsetTop:15.80 offsetLeft:69.69 offsetWidth:5.48 offsetHeight:5.48
+clientTop:0.09 clientLeft:0.09 clientWidth:5.30 clientHeight:5.30
+offsetTop:16.39 offsetLeft:76.39 offsetWidth:5.58 offsetHeight:5.58
+clientTop:0.09 clientLeft:0.09 clientWidth:5.39 clientHeight:5.39
+offsetTop:17.00 offsetLeft:83.30 offsetWidth:5.69 offsetHeight:5.69
+clientTop:0.09 clientLeft:0.09 clientWidth:5.50 clientHeight:5.50
+offsetTop:17.59 offsetLeft:90.39 offsetWidth:5.78 offsetHeight:5.78
+clientTop:0.09 clientLeft:0.09 clientWidth:5.59 clientHeight:5.59
+offsetTop:18.19 offsetLeft:97.69 offsetWidth:5.88 offsetHeight:5.88
+clientTop:0.09 clientLeft:0.09 clientWidth:5.69 clientHeight:5.69
+offsetTop:18.80 offsetLeft:105.19 offsetWidth:5.98 offsetHeight:5.98
+clientTop:0.09 clientLeft:0.09 clientWidth:5.80 clientHeight:5.80
+offsetTop:19.39 offsetLeft:112.89 offsetWidth:6.08 offsetHeight:6.08
+clientTop:0.09 clientLeft:0.09 clientWidth:5.89 clientHeight:5.89
+offsetTop:18.00 offsetLeft:1.50 offsetWidth:6.25 offsetHeight:6.25
+clientTop:0.13 clientLeft:0.13 clientWidth:6.00 clientHeight:6.00
+offsetTop:18.80 offsetLeft:7.59 offsetWidth:6.34 offsetHeight:6.34
+clientTop:0.13 clientLeft:0.13 clientWidth:6.09 clientHeight:6.09
+offsetTop:19.59 offsetLeft:13.89 offsetWidth:6.44 offsetHeight:6.44
+clientTop:0.13 clientLeft:0.13 clientWidth:6.19 clientHeight:6.19
+offsetTop:20.39 offsetLeft:20.39 offsetWidth:6.55 offsetHeight:6.55
+clientTop:0.13 clientLeft:0.13 clientWidth:6.30 clientHeight:6.30
+offsetTop:21.19 offsetLeft:27.09 offsetWidth:6.64 offsetHeight:6.64
+clientTop:0.13 clientLeft:0.13 clientWidth:6.39 clientHeight:6.39
+offsetTop:22.00 offsetLeft:34.00 offsetWidth:6.75 offsetHeight:6.75
+clientTop:0.13 clientLeft:0.13 clientWidth:6.50 clientHeight:6.50
+offsetTop:22.80 offsetLeft:41.09 offsetWidth:6.84 offsetHeight:6.84
+clientTop:0.13 clientLeft:0.13 clientWidth:6.59 clientHeight:6.59
+offsetTop:23.59 offsetLeft:48.39 offsetWidth:6.94 offsetHeight:6.94
+clientTop:0.13 clientLeft:0.13 clientWidth:6.69 clientHeight:6.69
+offsetTop:24.39 offsetLeft:55.89 offsetWidth:7.05 offsetHeight:7.05
+clientTop:0.13 clientLeft:0.13 clientWidth:6.80 clientHeight:6.80
+offsetTop:25.19 offsetLeft:63.59 offsetWidth:7.14 offsetHeight:7.14
+clientTop:0.13 clientLeft:0.13 clientWidth:6.89 clientHeight:6.89
+offsetTop:26.00 offsetLeft:71.50 offsetWidth:7.25 offsetHeight:7.25
+clientTop:0.13 clientLeft:0.13 clientWidth:7.00 clientHeight:7.00
+offsetTop:26.80 offsetLeft:79.59 offsetWidth:7.34 offsetHeight:7.34
+clientTop:0.13 clientLeft:0.13 clientWidth:7.09 clientHeight:7.09
+offsetTop:27.59 offsetLeft:87.89 offsetWidth:7.44 offsetHeight:7.44
+clientTop:0.13 clientLeft:0.13 clientWidth:7.19 clientHeight:7.19
+offsetTop:28.39 offsetLeft:96.39 offsetWidth:7.55 offsetHeight:7.55
+clientTop:0.13 clientLeft:0.13 clientWidth:7.30 clientHeight:7.30
+offsetTop:29.19 offsetLeft:105.09 offsetWidth:7.64 offsetHeight:7.64
+clientTop:0.13 clientLeft:0.13 clientWidth:7.39 clientHeight:7.39
+offsetTop:30.00 offsetLeft:114.00 offsetWidth:7.75 offsetHeight:7.75
+clientTop:0.13 clientLeft:0.13 clientWidth:7.50 clientHeight:7.50
+offsetTop:30.80 offsetLeft:123.09 offsetWidth:7.84 offsetHeight:7.84
+clientTop:0.13 clientLeft:0.13 clientWidth:7.59 clientHeight:7.59
+offsetTop:31.59 offsetLeft:132.39 offsetWidth:7.94 offsetHeight:7.94
+clientTop:0.13 clientLeft:0.13 clientWidth:7.69 clientHeight:7.69
+offsetTop:32.39 offsetLeft:141.89 offsetWidth:8.05 offsetHeight:8.05
+clientTop:0.13 clientLeft:0.13 clientWidth:7.80 clientHeight:7.80
+offsetTop:33.19 offsetLeft:151.59 offsetWidth:8.14 offsetHeight:8.14
+clientTop:0.13 clientLeft:0.13 clientWidth:7.89 clientHeight:7.89
+offsetTop:32.00 offsetLeft:2.39 offsetWidth:8.28 offsetHeight:8.28
+clientTop:0.14 clientLeft:0.14 clientWidth:8.00 clientHeight:8.00
+offsetTop:33.00 offsetLeft:10.50 offsetWidth:8.38 offsetHeight:8.38
+clientTop:0.14 clientLeft:0.14 clientWidth:8.09 clientHeight:8.09
+offsetTop:34.00 offsetLeft:18.80 offsetWidth:8.47 offsetHeight:8.47
+clientTop:0.14 clientLeft:0.14 clientWidth:8.19 clientHeight:8.19
+offsetTop:35.00 offsetLeft:27.30 offsetWidth:8.58 offsetHeight:8.58
+clientTop:0.14 clientLeft:0.14 clientWidth:8.30 clientHeight:8.30
+offsetTop:36.00 offsetLeft:36.00 offsetWidth:8.67 offsetHeight:8.67
+clientTop:0.14 clientLeft:0.14 clientWidth:8.39 clientHeight:8.39
+offsetTop:37.00 offsetLeft:44.89 offsetWidth:8.78 offsetHeight:8.78
+clientTop:0.14 clientLeft:0.14 clientWidth:8.50 clientHeight:8.50
+offsetTop:38.00 offsetLeft:54.00 offsetWidth:8.88 offsetHeight:8.88
+clientTop:0.14 clientLeft:0.14 clientWidth:8.59 clientHeight:8.59
+offsetTop:39.00 offsetLeft:63.30 offsetWidth:8.97 offsetHeight:8.97
+clientTop:0.14 clientLeft:0.14 clientWidth:8.69 clientHeight:8.69
+offsetTop:40.00 offsetLeft:72.80 offsetWidth:9.08 offsetHeight:9.08
+clientTop:0.14 clientLeft:0.14 clientWidth:8.80 clientHeight:8.80
+offsetTop:41.00 offsetLeft:82.50 offsetWidth:9.17 offsetHeight:9.17
+clientTop:0.14 clientLeft:0.14 clientWidth:8.89 clientHeight:8.89
+offsetTop:42.00 offsetLeft:92.39 offsetWidth:9.28 offsetHeight:9.28
+clientTop:0.14 clientLeft:0.14 clientWidth:9.00 clientHeight:9.00
+offsetTop:43.00 offsetLeft:102.50 offsetWidth:9.38 offsetHeight:9.38
+clientTop:0.14 clientLeft:0.14 clientWidth:9.09 clientHeight:9.09
+offsetTop:44.00 offsetLeft:112.80 offsetWidth:9.47 offsetHeight:9.47
+clientTop:0.14 clientLeft:0.14 clientWidth:9.19 clientHeight:9.19
+offsetTop:45.00 offsetLeft:123.30 offsetWidth:9.58 offsetHeight:9.58
+clientTop:0.14 clientLeft:0.14 clientWidth:9.30 clientHeight:9.30
+offsetTop:46.00 offsetLeft:134.00 offsetWidth:9.67 offsetHeight:9.67
+clientTop:0.14 clientLeft:0.14 clientWidth:9.39 clientHeight:9.39
+offsetTop:47.00 offsetLeft:144.89 offsetWidth:9.78 offsetHeight:9.78
+clientTop:0.14 clientLeft:0.14 clientWidth:9.50 clientHeight:9.50
+offsetTop:48.00 offsetLeft:156.00 offsetWidth:9.88 offsetHeight:9.88
+clientTop:0.14 clientLeft:0.14 clientWidth:9.59 clientHeight:9.59
+offsetTop:49.00 offsetLeft:167.30 offsetWidth:9.97 offsetHeight:9.97
+clientTop:0.14 clientLeft:0.14 clientWidth:9.69 clientHeight:9.69
+offsetTop:50.00 offsetLeft:178.80 offsetWidth:10.08 offsetHeight:10.08
+clientTop:0.14 clientLeft:0.14 clientWidth:9.80 clientHeight:9.80
+offsetTop:51.00 offsetLeft:190.50 offsetWidth:10.17 offsetHeight:10.17
+clientTop:0.14 clientLeft:0.14 clientWidth:9.89 clientHeight:9.89
+offsetTop:50.00 offsetLeft:3.50 offsetWidth:10.34 offsetHeight:10.34
+clientTop:0.17 clientLeft:0.17 clientWidth:10.00 clientHeight:10.00
+offsetTop:51.19 offsetLeft:13.59 offsetWidth:10.44 offsetHeight:10.44
+clientTop:0.17 clientLeft:0.17 clientWidth:10.09 clientHeight:10.09
+offsetTop:52.39 offsetLeft:23.89 offsetWidth:10.53 offsetHeight:10.53
+clientTop:0.17 clientLeft:0.17 clientWidth:10.19 clientHeight:10.19
+offsetTop:53.59 offsetLeft:34.39 offsetWidth:10.64 offsetHeight:10.64
+clientTop:0.17 clientLeft:0.17 clientWidth:10.30 clientHeight:10.30
+offsetTop:54.80 offsetLeft:45.09 offsetWidth:10.73 offsetHeight:10.73
+clientTop:0.17 clientLeft:0.17 clientWidth:10.39 clientHeight:10.39
+offsetTop:56.00 offsetLeft:56.00 offsetWidth:10.84 offsetHeight:10.84
+clientTop:0.17 clientLeft:0.17 clientWidth:10.50 clientHeight:10.50
+offsetTop:57.19 offsetLeft:67.09 offsetWidth:10.94 offsetHeight:10.94
+clientTop:0.17 clientLeft:0.17 clientWidth:10.59 clientHeight:10.59
+offsetTop:58.39 offsetLeft:78.39 offsetWidth:11.03 offsetHeight:11.03
+clientTop:0.17 clientLeft:0.17 clientWidth:10.69 clientHeight:10.69
+offsetTop:59.59 offsetLeft:89.89 offsetWidth:11.14 offsetHeight:11.14
+clientTop:0.17 clientLeft:0.17 clientWidth:10.80 clientHeight:10.80
+offsetTop:60.80 offsetLeft:101.59 offsetWidth:11.23 offsetHeight:11.23
+clientTop:0.17 clientLeft:0.17 clientWidth:10.89 clientHeight:10.89
+offsetTop:62.00 offsetLeft:113.50 offsetWidth:11.34 offsetHeight:11.34
+clientTop:0.17 clientLeft:0.17 clientWidth:11.00 clientHeight:11.00
+offsetTop:63.19 offsetLeft:125.59 offsetWidth:11.44 offsetHeight:11.44
+clientTop:0.17 clientLeft:0.17 clientWidth:11.09 clientHeight:11.09
+offsetTop:64.39 offsetLeft:137.89 offsetWidth:11.53 offsetHeight:11.53
+clientTop:0.17 clientLeft:0.17 clientWidth:11.19 clientHeight:11.19
+offsetTop:65.59 offsetLeft:150.39 offsetWidth:11.64 offsetHeight:11.64
+clientTop:0.17 clientLeft:0.17 clientWidth:11.30 clientHeight:11.30
+offsetTop:66.80 offsetLeft:163.09 offsetWidth:11.73 offsetHeight:11.73
+clientTop:0.17 clientLeft:0.17 clientWidth:11.39 clientHeight:11.39
+offsetTop:68.00 offsetLeft:176.00 offsetWidth:11.84 offsetHeight:11.84
+clientTop:0.17 clientLeft:0.17 clientWidth:11.50 clientHeight:11.50
+offsetTop:69.19 offsetLeft:189.09 offsetWidth:11.94 offsetHeight:11.94
+clientTop:0.17 clientLeft:0.17 clientWidth:11.59 clientHeight:11.59
+offsetTop:70.39 offsetLeft:202.39 offsetWidth:12.03 offsetHeight:12.03
+clientTop:0.17 clientLeft:0.17 clientWidth:11.69 clientHeight:11.69
+offsetTop:71.59 offsetLeft:215.89 offsetWidth:12.14 offsetHeight:12.14
+clientTop:0.17 clientLeft:0.17 clientWidth:11.80 clientHeight:11.80
+offsetTop:72.80 offsetLeft:229.59 offsetWidth:12.23 offsetHeight:12.23
+clientTop:0.17 clientLeft:0.17 clientWidth:11.89 clientHeight:11.89
+offsetTop:72.00 offsetLeft:4.80 offsetWidth:12.38 offsetHeight:12.38
+clientTop:0.19 clientLeft:0.19 clientWidth:12.00 clientHeight:12.00
+offsetTop:73.39 offsetLeft:16.89 offsetWidth:12.47 offsetHeight:12.47
+clientTop:0.19 clientLeft:0.19 clientWidth:12.09 clientHeight:12.09
+offsetTop:74.80 offsetLeft:29.19 offsetWidth:12.56 offsetHeight:12.56
+clientTop:0.19 clientLeft:0.19 clientWidth:12.19 clientHeight:12.19
+offsetTop:76.19 offsetLeft:41.69 offsetWidth:12.67 offsetHeight:12.67
+clientTop:0.19 clientLeft:0.19 clientWidth:12.30 clientHeight:12.30
+offsetTop:77.59 offsetLeft:54.39 offsetWidth:12.77 offsetHeight:12.77
+clientTop:0.19 clientLeft:0.19 clientWidth:12.39 clientHeight:12.39
+offsetTop:79.00 offsetLeft:67.30 offsetWidth:12.88 offsetHeight:12.88
+clientTop:0.19 clientLeft:0.19 clientWidth:12.50 clientHeight:12.50
+offsetTop:80.39 offsetLeft:80.39 offsetWidth:12.97 offsetHeight:12.97
+clientTop:0.19 clientLeft:0.19 clientWidth:12.59 clientHeight:12.59
+offsetTop:81.80 offsetLeft:93.69 offsetWidth:13.06 offsetHeight:13.06
+clientTop:0.19 clientLeft:0.19 clientWidth:12.69 clientHeight:12.69
+offsetTop:83.19 offsetLeft:107.19 offsetWidth:13.17 offsetHeight:13.17
+clientTop:0.19 clientLeft:0.19 clientWidth:12.80 clientHeight:12.80
+offsetTop:84.59 offsetLeft:120.89 offsetWidth:13.27 offsetHeight:13.27
+clientTop:0.19 clientLeft:0.19 clientWidth:12.89 clientHeight:12.89
+offsetTop:86.00 offsetLeft:134.80 offsetWidth:13.38 offsetHeight:13.38
+clientTop:0.19 clientLeft:0.19 clientWidth:13.00 clientHeight:13.00
+offsetTop:87.39 offsetLeft:148.89 offsetWidth:13.47 offsetHeight:13.47
+clientTop:0.19 clientLeft:0.19 clientWidth:13.09 clientHeight:13.09
+offsetTop:88.80 offsetLeft:163.19 offsetWidth:13.56 offsetHeight:13.56
+clientTop:0.19 clientLeft:0.19 clientWidth:13.19 clientHeight:13.19
+offsetTop:90.19 offsetLeft:177.69 offsetWidth:13.67 offsetHeight:13.67
+clientTop:0.19 clientLeft:0.19 clientWidth:13.30 clientHeight:13.30
+offsetTop:91.59 offsetLeft:192.39 offsetWidth:13.77 offsetHeight:13.77
+clientTop:0.19 clientLeft:0.19 clientWidth:13.39 clientHeight:13.39
+offsetTop:93.00 offsetLeft:207.30 offsetWidth:13.88 offsetHeight:13.88
+clientTop:0.19 clientLeft:0.19 clientWidth:13.50 clientHeight:13.50
+offsetTop:94.39 offsetLeft:222.39 offsetWidth:13.97 offsetHeight:13.97
+clientTop:0.19 clientLeft:0.19 clientWidth:13.59 clientHeight:13.59
+offsetTop:95.80 offsetLeft:237.69 offsetWidth:14.06 offsetHeight:14.06
+clientTop:0.19 clientLeft:0.19 clientWidth:13.69 clientHeight:13.69
+offsetTop:97.19 offsetLeft:253.19 offsetWidth:14.17 offsetHeight:14.17
+clientTop:0.19 clientLeft:0.19 clientWidth:13.80 clientHeight:13.80
+offsetTop:98.59 offsetLeft:268.89 offsetWidth:14.27 offsetHeight:14.27
+clientTop:0.19 clientLeft:0.19 clientWidth:13.89 clientHeight:13.89
+offsetTop:98.00 offsetLeft:6.30 offsetWidth:14.44 offsetHeight:14.44
+clientTop:0.22 clientLeft:0.22 clientWidth:14.00 clientHeight:14.00
+offsetTop:99.59 offsetLeft:20.39 offsetWidth:14.53 offsetHeight:14.53
+clientTop:0.22 clientLeft:0.22 clientWidth:14.09 clientHeight:14.09
+offsetTop:101.19 offsetLeft:34.69 offsetWidth:14.63 offsetHeight:14.63
+clientTop:0.22 clientLeft:0.22 clientWidth:14.19 clientHeight:14.19
+offsetTop:102.80 offsetLeft:49.19 offsetWidth:14.73 offsetHeight:14.73
+clientTop:0.22 clientLeft:0.22 clientWidth:14.30 clientHeight:14.30
+offsetTop:104.39 offsetLeft:63.89 offsetWidth:14.83 offsetHeight:14.83
+clientTop:0.22 clientLeft:0.22 clientWidth:14.39 clientHeight:14.39
+offsetTop:106.00 offsetLeft:78.80 offsetWidth:14.94 offsetHeight:14.94
+clientTop:0.22 clientLeft:0.22 clientWidth:14.50 clientHeight:14.50
+offsetTop:107.59 offsetLeft:93.89 offsetWidth:15.03 offsetHeight:15.03
+clientTop:0.22 clientLeft:0.22 clientWidth:14.59 clientHeight:14.59
+offsetTop:109.19 offsetLeft:109.19 offsetWidth:15.13 offsetHeight:15.13
+clientTop:0.22 clientLeft:0.22 clientWidth:14.69 clientHeight:14.69
+offsetTop:110.80 offsetLeft:124.69 offsetWidth:15.23 offsetHeight:15.23
+clientTop:0.22 clientLeft:0.22 clientWidth:14.80 clientHeight:14.80
+offsetTop:112.39 offsetLeft:140.39 offsetWidth:15.33 offsetHeight:15.33
+clientTop:0.22 clientLeft:0.22 clientWidth:14.89 clientHeight:14.89
+offsetTop:114.00 offsetLeft:156.30 offsetWidth:15.44 offsetHeight:15.44
+clientTop:0.22 clientLeft:0.22 clientWidth:15.00 clientHeight:15.00
+offsetTop:115.59 offsetLeft:172.39 offsetWidth:15.53 offsetHeight:15.53
+clientTop:0.22 clientLeft:0.22 clientWidth:15.09 clientHeight:15.09
+offsetTop:117.19 offsetLeft:188.69 offsetWidth:15.63 offsetHeight:15.63
+clientTop:0.22 clientLeft:0.22 clientWidth:15.19 clientHeight:15.19
+offsetTop:118.80 offsetLeft:205.19 offsetWidth:15.73 offsetHeight:15.73
+clientTop:0.22 clientLeft:0.22 clientWidth:15.30 clientHeight:15.30
+offsetTop:120.39 offsetLeft:221.89 offsetWidth:15.83 offsetHeight:15.83
+clientTop:0.22 clientLeft:0.22 clientWidth:15.39 clientHeight:15.39
+offsetTop:122.00 offsetLeft:238.80 offsetWidth:15.94 offsetHeight:15.94
+clientTop:0.22 clientLeft:0.22 clientWidth:15.50 clientHeight:15.50
+offsetTop:123.59 offsetLeft:255.89 offsetWidth:16.03 offsetHeight:16.03
+clientTop:0.22 clientLeft:0.22 clientWidth:15.59 clientHeight:15.59
+offsetTop:125.19 offsetLeft:273.19 offsetWidth:16.13 offsetHeight:16.13
+clientTop:0.22 clientLeft:0.22 clientWidth:15.69 clientHeight:15.69
+offsetTop:126.80 offsetLeft:290.69 offsetWidth:16.23 offsetHeight:16.23
+clientTop:0.22 clientLeft:0.22 clientWidth:15.80 clientHeight:15.80
+offsetTop:128.39 offsetLeft:308.39 offsetWidth:16.33 offsetHeight:16.33
+clientTop:0.22 clientLeft:0.22 clientWidth:15.89 clientHeight:15.89
+offsetTop:128.00 offsetLeft:8.00 offsetWidth:16.50 offsetHeight:16.50
+clientTop:0.25 clientLeft:0.25 clientWidth:16.00 clientHeight:16.00
+offsetTop:129.80 offsetLeft:24.09 offsetWidth:16.59 offsetHeight:16.59
+clientTop:0.25 clientLeft:0.25 clientWidth:16.09 clientHeight:16.09
+offsetTop:131.59 offsetLeft:40.39 offsetWidth:16.69 offsetHeight:16.69
+clientTop:0.25 clientLeft:0.25 clientWidth:16.19 clientHeight:16.19
+offsetTop:133.39 offsetLeft:56.89 offsetWidth:16.80 offsetHeight:16.80
+clientTop:0.25 clientLeft:0.25 clientWidth:16.30 clientHeight:16.30
+offsetTop:135.19 offsetLeft:73.59 offsetWidth:16.89 offsetHeight:16.89
+clientTop:0.25 clientLeft:0.25 clientWidth:16.39 clientHeight:16.39
+offsetTop:137.00 offsetLeft:90.50 offsetWidth:17.00 offsetHeight:17.00
+clientTop:0.25 clientLeft:0.25 clientWidth:16.50 clientHeight:16.50
+offsetTop:138.80 offsetLeft:107.59 offsetWidth:17.09 offsetHeight:17.09
+clientTop:0.25 clientLeft:0.25 clientWidth:16.59 clientHeight:16.59
+offsetTop:140.59 offsetLeft:124.89 offsetWidth:17.19 offsetHeight:17.19
+clientTop:0.25 clientLeft:0.25 clientWidth:16.69 clientHeight:16.69
+offsetTop:142.39 offsetLeft:142.39 offsetWidth:17.30 offsetHeight:17.30
+clientTop:0.25 clientLeft:0.25 clientWidth:16.80 clientHeight:16.80
+offsetTop:144.19 offsetLeft:160.09 offsetWidth:17.39 offsetHeight:17.39
+clientTop:0.25 clientLeft:0.25 clientWidth:16.89 clientHeight:16.89
+offsetTop:146.00 offsetLeft:178.00 offsetWidth:17.50 offsetHeight:17.50
+clientTop:0.25 clientLeft:0.25 clientWidth:17.00 clientHeight:17.00
+offsetTop:147.80 offsetLeft:196.09 offsetWidth:17.59 offsetHeight:17.59
+clientTop:0.25 clientLeft:0.25 clientWidth:17.09 clientHeight:17.09
+offsetTop:149.59 offsetLeft:214.39 offsetWidth:17.69 offsetHeight:17.69
+clientTop:0.25 clientLeft:0.25 clientWidth:17.19 clientHeight:17.19
+offsetTop:151.39 offsetLeft:232.89 offsetWidth:17.80 offsetHeight:17.80
+clientTop:0.25 clientLeft:0.25 clientWidth:17.30 clientHeight:17.30
+offsetTop:153.19 offsetLeft:251.59 offsetWidth:17.89 offsetHeight:17.89
+clientTop:0.25 clientLeft:0.25 clientWidth:17.39 clientHeight:17.39
+offsetTop:155.00 offsetLeft:270.50 offsetWidth:18.00 offsetHeight:18.00
+clientTop:0.25 clientLeft:0.25 clientWidth:17.50 clientHeight:17.50
+offsetTop:156.80 offsetLeft:289.59 offsetWidth:18.09 offsetHeight:18.09
+clientTop:0.25 clientLeft:0.25 clientWidth:17.59 clientHeight:17.59
+offsetTop:158.59 offsetLeft:308.89 offsetWidth:18.19 offsetHeight:18.19
+clientTop:0.25 clientLeft:0.25 clientWidth:17.69 clientHeight:17.69
+offsetTop:160.39 offsetLeft:328.39 offsetWidth:18.30 offsetHeight:18.30
+clientTop:0.25 clientLeft:0.25 clientWidth:17.80 clientHeight:17.80
+offsetTop:162.19 offsetLeft:348.09 offsetWidth:18.39 offsetHeight:18.39
+clientTop:0.25 clientLeft:0.25 clientWidth:17.89 clientHeight:17.89
+offsetTop:162.00 offsetLeft:9.89 offsetWidth:18.53 offsetHeight:18.53
+clientTop:0.27 clientLeft:0.27 clientWidth:18.00 clientHeight:18.00
+offsetTop:164.00 offsetLeft:28.00 offsetWidth:18.63 offsetHeight:18.63
+clientTop:0.27 clientLeft:0.27 clientWidth:18.09 clientHeight:18.09
+offsetTop:166.00 offsetLeft:46.30 offsetWidth:18.72 offsetHeight:18.72
+clientTop:0.27 clientLeft:0.27 clientWidth:18.19 clientHeight:18.19
+offsetTop:168.00 offsetLeft:64.80 offsetWidth:18.83 offsetHeight:18.83
+clientTop:0.27 clientLeft:0.27 clientWidth:18.30 clientHeight:18.30
+offsetTop:170.00 offsetLeft:83.50 offsetWidth:18.92 offsetHeight:18.92
+clientTop:0.27 clientLeft:0.27 clientWidth:18.39 clientHeight:18.39
+offsetTop:172.00 offsetLeft:102.39 offsetWidth:19.03 offsetHeight:19.03
+clientTop:0.27 clientLeft:0.27 clientWidth:18.50 clientHeight:18.50
+offsetTop:174.00 offsetLeft:121.50 offsetWidth:19.13 offsetHeight:19.13
+clientTop:0.27 clientLeft:0.27 clientWidth:18.59 clientHeight:18.59
+offsetTop:176.00 offsetLeft:140.80 offsetWidth:19.22 offsetHeight:19.22
+clientTop:0.27 clientLeft:0.27 clientWidth:18.69 clientHeight:18.69
+offsetTop:178.00 offsetLeft:160.30 offsetWidth:19.33 offsetHeight:19.33
+clientTop:0.27 clientLeft:0.27 clientWidth:18.80 clientHeight:18.80
+offsetTop:180.00 offsetLeft:180.00 offsetWidth:19.42 offsetHeight:19.42
+clientTop:0.27 clientLeft:0.27 clientWidth:18.89 clientHeight:18.89
+offsetTop:182.00 offsetLeft:199.89 offsetWidth:19.53 offsetHeight:19.53
+clientTop:0.27 clientLeft:0.27 clientWidth:19.00 clientHeight:19.00
+offsetTop:184.00 offsetLeft:220.00 offsetWidth:19.63 offsetHeight:19.63
+clientTop:0.27 clientLeft:0.27 clientWidth:19.09 clientHeight:19.09
+offsetTop:186.00 offsetLeft:240.30 offsetWidth:19.72 offsetHeight:19.72
+clientTop:0.27 clientLeft:0.27 clientWidth:19.19 clientHeight:19.19
+offsetTop:188.00 offsetLeft:260.80 offsetWidth:19.83 offsetHeight:19.83
+clientTop:0.27 clientLeft:0.27 clientWidth:19.30 clientHeight:19.30
+offsetTop:190.00 offsetLeft:281.50 offsetWidth:19.92 offsetHeight:19.92
+clientTop:0.27 clientLeft:0.27 clientWidth:19.39 clientHeight:19.39
+offsetTop:192.00 offsetLeft:302.39 offsetWidth:20.03 offsetHeight:20.03
+clientTop:0.27 clientLeft:0.27 clientWidth:19.50 clientHeight:19.50
+offsetTop:194.00 offsetLeft:323.50 offsetWidth:20.13 offsetHeight:20.13
+clientTop:0.27 clientLeft:0.27 clientWidth:19.59 clientHeight:19.59
+offsetTop:196.00 offsetLeft:344.80 offsetWidth:20.22 offsetHeight:20.22
+clientTop:0.27 clientLeft:0.27 clientWidth:19.69 clientHeight:19.69
+offsetTop:198.00 offsetLeft:366.30 offsetWidth:20.33 offsetHeight:20.33
+clientTop:0.27 clientLeft:0.27 clientWidth:19.80 clientHeight:19.80
+offsetTop:200.00 offsetLeft:388.00 offsetWidth:20.42 offsetHeight:20.42
+clientTop:0.27 clientLeft:0.27 clientWidth:19.89 clientHeight:19.89
+offsetTop:200.00 offsetLeft:12.00 offsetWidth:20.59 offsetHeight:20.59
+clientTop:0.30 clientLeft:0.30 clientWidth:20.00 clientHeight:20.00
+offsetTop:202.19 offsetLeft:32.09 offsetWidth:20.69 offsetHeight:20.69
+clientTop:0.30 clientLeft:0.30 clientWidth:20.09 clientHeight:20.09
+offsetTop:204.39 offsetLeft:52.39 offsetWidth:20.78 offsetHeight:20.78
+clientTop:0.30 clientLeft:0.30 clientWidth:20.19 clientHeight:20.19
+offsetTop:206.59 offsetLeft:72.89 offsetWidth:20.89 offsetHeight:20.89
+clientTop:0.30 clientLeft:0.30 clientWidth:20.30 clientHeight:20.30
+offsetTop:208.80 offsetLeft:93.59 offsetWidth:20.98 offsetHeight:20.98
+clientTop:0.30 clientLeft:0.30 clientWidth:20.39 clientHeight:20.39
+offsetTop:211.00 offsetLeft:114.50 offsetWidth:21.09 offsetHeight:21.09
+clientTop:0.30 clientLeft:0.30 clientWidth:20.50 clientHeight:20.50
+offsetTop:213.19 offsetLeft:135.59 offsetWidth:21.19 offsetHeight:21.19
+clientTop:0.30 clientLeft:0.30 clientWidth:20.59 clientHeight:20.59
+offsetTop:215.39 offsetLeft:156.89 offsetWidth:21.28 offsetHeight:21.28
+clientTop:0.30 clientLeft:0.30 clientWidth:20.69 clientHeight:20.69
+offsetTop:217.59 offsetLeft:178.39 offsetWidth:21.39 offsetHeight:21.39
+clientTop:0.30 clientLeft:0.30 clientWidth:20.80 clientHeight:20.80
+offsetTop:219.80 offsetLeft:200.09 offsetWidth:21.48 offsetHeight:21.48
+clientTop:0.30 clientLeft:0.30 clientWidth:20.89 clientHeight:20.89
+offsetTop:222.00 offsetLeft:222.00 offsetWidth:21.59 offsetHeight:21.59
+clientTop:0.30 clientLeft:0.30 clientWidth:21.00 clientHeight:21.00
+offsetTop:224.19 offsetLeft:244.09 offsetWidth:21.69 offsetHeight:21.69
+clientTop:0.30 clientLeft:0.30 clientWidth:21.09 clientHeight:21.09
+offsetTop:226.39 offsetLeft:266.39 offsetWidth:21.78 offsetHeight:21.78
+clientTop:0.30 clientLeft:0.30 clientWidth:21.19 clientHeight:21.19
+offsetTop:228.59 offsetLeft:288.89 offsetWidth:21.89 offsetHeight:21.89
+clientTop:0.30 clientLeft:0.30 clientWidth:21.30 clientHeight:21.30
+offsetTop:230.80 offsetLeft:311.59 offsetWidth:21.98 offsetHeight:21.98
+clientTop:0.30 clientLeft:0.30 clientWidth:21.39 clientHeight:21.39
+offsetTop:233.00 offsetLeft:334.50 offsetWidth:22.09 offsetHeight:22.09
+clientTop:0.30 clientLeft:0.30 clientWidth:21.50 clientHeight:21.50
+offsetTop:235.19 offsetLeft:357.59 offsetWidth:22.19 offsetHeight:22.19
+clientTop:0.30 clientLeft:0.30 clientWidth:21.59 clientHeight:21.59
+offsetTop:237.39 offsetLeft:380.89 offsetWidth:22.28 offsetHeight:22.28
+clientTop:0.30 clientLeft:0.30 clientWidth:21.69 clientHeight:21.69
+offsetTop:239.59 offsetLeft:404.39 offsetWidth:22.39 offsetHeight:22.39
+clientTop:0.30 clientLeft:0.30 clientWidth:21.80 clientHeight:21.80
+offsetTop:241.80 offsetLeft:428.09 offsetWidth:22.48 offsetHeight:22.48
+clientTop:0.30 clientLeft:0.30 clientWidth:21.89 clientHeight:21.89
+offsetTop:242.00 offsetLeft:14.30 offsetWidth:22.63 offsetHeight:22.63
+clientTop:0.31 clientLeft:0.31 clientWidth:22.00 clientHeight:22.00
+offsetTop:244.39 offsetLeft:36.39 offsetWidth:22.72 offsetHeight:22.72
+clientTop:0.31 clientLeft:0.31 clientWidth:22.09 clientHeight:22.09
+offsetTop:246.80 offsetLeft:58.69 offsetWidth:22.81 offsetHeight:22.81
+clientTop:0.31 clientLeft:0.31 clientWidth:22.19 clientHeight:22.19
+offsetTop:249.19 offsetLeft:81.19 offsetWidth:22.92 offsetHeight:22.92
+clientTop:0.31 clientLeft:0.31 clientWidth:22.30 clientHeight:22.30
+offsetTop:251.59 offsetLeft:103.89 offsetWidth:23.02 offsetHeight:23.02
+clientTop:0.31 clientLeft:0.31 clientWidth:22.39 clientHeight:22.39
+offsetTop:254.00 offsetLeft:126.80 offsetWidth:23.13 offsetHeight:23.13
+clientTop:0.31 clientLeft:0.31 clientWidth:22.50 clientHeight:22.50
+offsetTop:256.39 offsetLeft:149.89 offsetWidth:23.22 offsetHeight:23.22
+clientTop:0.31 clientLeft:0.31 clientWidth:22.59 clientHeight:22.59
+offsetTop:258.80 offsetLeft:173.19 offsetWidth:23.31 offsetHeight:23.31
+clientTop:0.31 clientLeft:0.31 clientWidth:22.69 clientHeight:22.69
+offsetTop:261.19 offsetLeft:196.69 offsetWidth:23.42 offsetHeight:23.42
+clientTop:0.31 clientLeft:0.31 clientWidth:22.80 clientHeight:22.80
+offsetTop:263.59 offsetLeft:220.39 offsetWidth:23.52 offsetHeight:23.52
+clientTop:0.31 clientLeft:0.31 clientWidth:22.89 clientHeight:22.89
+offsetTop:266.00 offsetLeft:244.30 offsetWidth:23.63 offsetHeight:23.63
+clientTop:0.31 clientLeft:0.31 clientWidth:23.00 clientHeight:23.00
+offsetTop:268.39 offsetLeft:268.39 offsetWidth:23.72 offsetHeight:23.72
+clientTop:0.31 clientLeft:0.31 clientWidth:23.09 clientHeight:23.09
+offsetTop:270.80 offsetLeft:292.69 offsetWidth:23.81 offsetHeight:23.81
+clientTop:0.31 clientLeft:0.31 clientWidth:23.19 clientHeight:23.19
+offsetTop:273.19 offsetLeft:317.19 offsetWidth:23.92 offsetHeight:23.92
+clientTop:0.31 clientLeft:0.31 clientWidth:23.30 clientHeight:23.30
+offsetTop:275.59 offsetLeft:341.89 offsetWidth:24.02 offsetHeight:24.02
+clientTop:0.31 clientLeft:0.31 clientWidth:23.39 clientHeight:23.39
+offsetTop:278.00 offsetLeft:366.80 offsetWidth:24.13 offsetHeight:24.13
+clientTop:0.31 clientLeft:0.31 clientWidth:23.50 clientHeight:23.50
+offsetTop:280.39 offsetLeft:391.89 offsetWidth:24.22 offsetHeight:24.22
+clientTop:0.31 clientLeft:0.31 clientWidth:23.59 clientHeight:23.59
+offsetTop:282.80 offsetLeft:417.19 offsetWidth:24.31 offsetHeight:24.31
+clientTop:0.31 clientLeft:0.31 clientWidth:23.69 clientHeight:23.69
+offsetTop:285.19 offsetLeft:442.69 offsetWidth:24.42 offsetHeight:24.42
+clientTop:0.31 clientLeft:0.31 clientWidth:23.80 clientHeight:23.80
+offsetTop:287.59 offsetLeft:468.39 offsetWidth:24.52 offsetHeight:24.52
+clientTop:0.31 clientLeft:0.31 clientWidth:23.89 clientHeight:23.89
+offsetTop:288.00 offsetLeft:16.80 offsetWidth:24.69 offsetHeight:24.69
+clientTop:0.34 clientLeft:0.34 clientWidth:24.00 clientHeight:24.00
+offsetTop:290.59 offsetLeft:40.89 offsetWidth:24.78 offsetHeight:24.78
+clientTop:0.34 clientLeft:0.34 clientWidth:24.09 clientHeight:24.09
+offsetTop:293.19 offsetLeft:65.19 offsetWidth:24.88 offsetHeight:24.88
+clientTop:0.34 clientLeft:0.34 clientWidth:24.19 clientHeight:24.19
+offsetTop:295.80 offsetLeft:89.69 offsetWidth:24.98 offsetHeight:24.98
+clientTop:0.34 clientLeft:0.34 clientWidth:24.30 clientHeight:24.30
+offsetTop:298.39 offsetLeft:114.39 offsetWidth:25.08 offsetHeight:25.08
+clientTop:0.34 clientLeft:0.34 clientWidth:24.39 clientHeight:24.39
+offsetTop:301.00 offsetLeft:139.30 offsetWidth:25.19 offsetHeight:25.19
+clientTop:0.34 clientLeft:0.34 clientWidth:24.50 clientHeight:24.50
+offsetTop:303.59 offsetLeft:164.39 offsetWidth:25.28 offsetHeight:25.28
+clientTop:0.34 clientLeft:0.34 clientWidth:24.59 clientHeight:24.59
+offsetTop:306.19 offsetLeft:189.69 offsetWidth:25.38 offsetHeight:25.38
+clientTop:0.34 clientLeft:0.34 clientWidth:24.69 clientHeight:24.69
+offsetTop:308.80 offsetLeft:215.19 offsetWidth:25.48 offsetHeight:25.48
+clientTop:0.34 clientLeft:0.34 clientWidth:24.80 clientHeight:24.80
+offsetTop:311.39 offsetLeft:240.89 offsetWidth:25.58 offsetHeight:25.58
+clientTop:0.34 clientLeft:0.34 clientWidth:24.89 clientHeight:24.89
+offsetTop:314.00 offsetLeft:266.80 offsetWidth:25.69 offsetHeight:25.69
+clientTop:0.34 clientLeft:0.34 clientWidth:25.00 clientHeight:25.00
+offsetTop:316.59 offsetLeft:292.89 offsetWidth:25.78 offsetHeight:25.78
+clientTop:0.34 clientLeft:0.34 clientWidth:25.09 clientHeight:25.09
+offsetTop:319.19 offsetLeft:319.19 offsetWidth:25.88 offsetHeight:25.88
+clientTop:0.34 clientLeft:0.34 clientWidth:25.19 clientHeight:25.19
+offsetTop:321.80 offsetLeft:345.69 offsetWidth:25.98 offsetHeight:25.98
+clientTop:0.34 clientLeft:0.34 clientWidth:25.30 clientHeight:25.30
+offsetTop:324.39 offsetLeft:372.39 offsetWidth:26.08 offsetHeight:26.08
+clientTop:0.34 clientLeft:0.34 clientWidth:25.39 clientHeight:25.39
+offsetTop:327.00 offsetLeft:399.30 offsetWidth:26.19 offsetHeight:26.19
+clientTop:0.34 clientLeft:0.34 clientWidth:25.50 clientHeight:25.50
+offsetTop:329.59 offsetLeft:426.39 offsetWidth:26.28 offsetHeight:26.28
+clientTop:0.34 clientLeft:0.34 clientWidth:25.59 clientHeight:25.59
+offsetTop:332.19 offsetLeft:453.69 offsetWidth:26.38 offsetHeight:26.38
+clientTop:0.34 clientLeft:0.34 clientWidth:25.69 clientHeight:25.69
+offsetTop:334.80 offsetLeft:481.19 offsetWidth:26.48 offsetHeight:26.48
+clientTop:0.34 clientLeft:0.34 clientWidth:25.80 clientHeight:25.80
+offsetTop:337.39 offsetLeft:508.89 offsetWidth:26.58 offsetHeight:26.58
+clientTop:0.34 clientLeft:0.34 clientWidth:25.89 clientHeight:25.89
+offsetTop:338.00 offsetLeft:19.50 offsetWidth:26.75 offsetHeight:26.75
+clientTop:0.38 clientLeft:0.38 clientWidth:26.00 clientHeight:26.00
+offsetTop:340.80 offsetLeft:45.59 offsetWidth:26.84 offsetHeight:26.84
+clientTop:0.38 clientLeft:0.38 clientWidth:26.09 clientHeight:26.09
+offsetTop:343.59 offsetLeft:71.89 offsetWidth:26.94 offsetHeight:26.94
+clientTop:0.38 clientLeft:0.38 clientWidth:26.19 clientHeight:26.19
+offsetTop:346.39 offsetLeft:98.39 offsetWidth:27.05 offsetHeight:27.05
+clientTop:0.38 clientLeft:0.38 clientWidth:26.30 clientHeight:26.30
+offsetTop:349.19 offsetLeft:125.09 offsetWidth:27.14 offsetHeight:27.14
+clientTop:0.38 clientLeft:0.38 clientWidth:26.39 clientHeight:26.39
+offsetTop:352.00 offsetLeft:152.00 offsetWidth:27.25 offsetHeight:27.25
+clientTop:0.38 clientLeft:0.38 clientWidth:26.50 clientHeight:26.50
+offsetTop:354.80 offsetLeft:179.09 offsetWidth:27.34 offsetHeight:27.34
+clientTop:0.38 clientLeft:0.38 clientWidth:26.59 clientHeight:26.59
+offsetTop:357.59 offsetLeft:206.39 offsetWidth:27.44 offsetHeight:27.44
+clientTop:0.38 clientLeft:0.38 clientWidth:26.69 clientHeight:26.69
+offsetTop:360.39 offsetLeft:233.89 offsetWidth:27.55 offsetHeight:27.55
+clientTop:0.38 clientLeft:0.38 clientWidth:26.80 clientHeight:26.80
+offsetTop:363.19 offsetLeft:261.59 offsetWidth:27.64 offsetHeight:27.64
+clientTop:0.38 clientLeft:0.38 clientWidth:26.89 clientHeight:26.89
+offsetTop:366.00 offsetLeft:289.50 offsetWidth:27.75 offsetHeight:27.75
+clientTop:0.38 clientLeft:0.38 clientWidth:27.00 clientHeight:27.00
+offsetTop:368.80 offsetLeft:317.59 offsetWidth:27.84 offsetHeight:27.84
+clientTop:0.38 clientLeft:0.38 clientWidth:27.09 clientHeight:27.09
+offsetTop:371.59 offsetLeft:345.89 offsetWidth:27.94 offsetHeight:27.94
+clientTop:0.38 clientLeft:0.38 clientWidth:27.19 clientHeight:27.19
+offsetTop:374.39 offsetLeft:374.39 offsetWidth:28.05 offsetHeight:28.05
+clientTop:0.38 clientLeft:0.38 clientWidth:27.30 clientHeight:27.30
+offsetTop:377.19 offsetLeft:403.09 offsetWidth:28.14 offsetHeight:28.14
+clientTop:0.38 clientLeft:0.38 clientWidth:27.39 clientHeight:27.39
+offsetTop:380.00 offsetLeft:432.00 offsetWidth:28.25 offsetHeight:28.25
+clientTop:0.38 clientLeft:0.38 clientWidth:27.50 clientHeight:27.50
+offsetTop:382.80 offsetLeft:461.09 offsetWidth:28.34 offsetHeight:28.34
+clientTop:0.38 clientLeft:0.38 clientWidth:27.59 clientHeight:27.59
+offsetTop:385.59 offsetLeft:490.39 offsetWidth:28.44 offsetHeight:28.44
+clientTop:0.38 clientLeft:0.38 clientWidth:27.69 clientHeight:27.69
+offsetTop:388.39 offsetLeft:519.89 offsetWidth:28.55 offsetHeight:28.55
+clientTop:0.38 clientLeft:0.38 clientWidth:27.80 clientHeight:27.80
+offsetTop:391.19 offsetLeft:549.59 offsetWidth:28.64 offsetHeight:28.64
+clientTop:0.38 clientLeft:0.38 clientWidth:27.89 clientHeight:27.89
+offsetTop:392.00 offsetLeft:22.39 offsetWidth:28.78 offsetHeight:28.78
+clientTop:0.39 clientLeft:0.39 clientWidth:28.00 clientHeight:28.00
+offsetTop:395.00 offsetLeft:50.50 offsetWidth:28.88 offsetHeight:28.88
+clientTop:0.39 clientLeft:0.39 clientWidth:28.09 clientHeight:28.09
+offsetTop:398.00 offsetLeft:78.80 offsetWidth:28.97 offsetHeight:28.97
+clientTop:0.39 clientLeft:0.39 clientWidth:28.19 clientHeight:28.19
+offsetTop:401.00 offsetLeft:107.30 offsetWidth:29.08 offsetHeight:29.08
+clientTop:0.39 clientLeft:0.39 clientWidth:28.30 clientHeight:28.30
+offsetTop:404.00 offsetLeft:136.00 offsetWidth:29.17 offsetHeight:29.17
+clientTop:0.39 clientLeft:0.39 clientWidth:28.39 clientHeight:28.39
+offsetTop:407.00 offsetLeft:164.89 offsetWidth:29.28 offsetHeight:29.28
+clientTop:0.39 clientLeft:0.39 clientWidth:28.50 clientHeight:28.50
+offsetTop:410.00 offsetLeft:194.00 offsetWidth:29.38 offsetHeight:29.38
+clientTop:0.39 clientLeft:0.39 clientWidth:28.59 clientHeight:28.59
+offsetTop:413.00 offsetLeft:223.30 offsetWidth:29.47 offsetHeight:29.47
+clientTop:0.39 clientLeft:0.39 clientWidth:28.69 clientHeight:28.69
+offsetTop:416.00 offsetLeft:252.80 offsetWidth:29.58 offsetHeight:29.58
+clientTop:0.39 clientLeft:0.39 clientWidth:28.80 clientHeight:28.80
+offsetTop:419.00 offsetLeft:282.50 offsetWidth:29.67 offsetHeight:29.67
+clientTop:0.39 clientLeft:0.39 clientWidth:28.89 clientHeight:28.89
+offsetTop:422.00 offsetLeft:312.39 offsetWidth:29.78 offsetHeight:29.78
+clientTop:0.39 clientLeft:0.39 clientWidth:29.00 clientHeight:29.00
+offsetTop:425.00 offsetLeft:342.50 offsetWidth:29.88 offsetHeight:29.88
+clientTop:0.39 clientLeft:0.39 clientWidth:29.09 clientHeight:29.09
+offsetTop:428.00 offsetLeft:372.80 offsetWidth:29.97 offsetHeight:29.97
+clientTop:0.39 clientLeft:0.39 clientWidth:29.19 clientHeight:29.19
+offsetTop:431.00 offsetLeft:403.30 offsetWidth:30.08 offsetHeight:30.08
+clientTop:0.39 clientLeft:0.39 clientWidth:29.30 clientHeight:29.30
+offsetTop:434.00 offsetLeft:434.00 offsetWidth:30.17 offsetHeight:30.17
+clientTop:0.39 clientLeft:0.39 clientWidth:29.39 clientHeight:29.39
+offsetTop:437.00 offsetLeft:464.89 offsetWidth:30.28 offsetHeight:30.28
+clientTop:0.39 clientLeft:0.39 clientWidth:29.50 clientHeight:29.50
+offsetTop:440.00 offsetLeft:496.00 offsetWidth:30.38 offsetHeight:30.38
+clientTop:0.39 clientLeft:0.39 clientWidth:29.59 clientHeight:29.59
+offsetTop:443.00 offsetLeft:527.30 offsetWidth:30.47 offsetHeight:30.47
+clientTop:0.39 clientLeft:0.39 clientWidth:29.69 clientHeight:29.69
+offsetTop:446.00 offsetLeft:558.80 offsetWidth:30.58 offsetHeight:30.58
+clientTop:0.39 clientLeft:0.39 clientWidth:29.80 clientHeight:29.80
+offsetTop:449.00 offsetLeft:590.50 offsetWidth:30.67 offsetHeight:30.67
+clientTop:0.39 clientLeft:0.39 clientWidth:29.89 clientHeight:29.89
+offsetTop:450.00 offsetLeft:25.50 offsetWidth:30.84 offsetHeight:30.84
+clientTop:0.42 clientLeft:0.42 clientWidth:30.00 clientHeight:30.00
+offsetTop:453.19 offsetLeft:55.59 offsetWidth:30.94 offsetHeight:30.94
+clientTop:0.42 clientLeft:0.42 clientWidth:30.09 clientHeight:30.09
+offsetTop:456.39 offsetLeft:85.89 offsetWidth:31.03 offsetHeight:31.03
+clientTop:0.42 clientLeft:0.42 clientWidth:30.19 clientHeight:30.19
+offsetTop:459.59 offsetLeft:116.39 offsetWidth:31.14 offsetHeight:31.14
+clientTop:0.42 clientLeft:0.42 clientWidth:30.30 clientHeight:30.30
+offsetTop:462.80 offsetLeft:147.09 offsetWidth:31.23 offsetHeight:31.23
+clientTop:0.42 clientLeft:0.42 clientWidth:30.39 clientHeight:30.39
+offsetTop:466.00 offsetLeft:178.00 offsetWidth:31.34 offsetHeight:31.34
+clientTop:0.42 clientLeft:0.42 clientWidth:30.50 clientHeight:30.50
+offsetTop:469.19 offsetLeft:209.09 offsetWidth:31.44 offsetHeight:31.44
+clientTop:0.42 clientLeft:0.42 clientWidth:30.59 clientHeight:30.59
+offsetTop:472.39 offsetLeft:240.39 offsetWidth:31.53 offsetHeight:31.53
+clientTop:0.42 clientLeft:0.42 clientWidth:30.69 clientHeight:30.69
+offsetTop:475.59 offsetLeft:271.89 offsetWidth:31.64 offsetHeight:31.64
+clientTop:0.42 clientLeft:0.42 clientWidth:30.80 clientHeight:30.80
+offsetTop:478.80 offsetLeft:303.59 offsetWidth:31.73 offsetHeight:31.73
+clientTop:0.42 clientLeft:0.42 clientWidth:30.89 clientHeight:30.89
+offsetTop:482.00 offsetLeft:335.50 offsetWidth:31.84 offsetHeight:31.84
+clientTop:0.42 clientLeft:0.42 clientWidth:31.00 clientHeight:31.00
+offsetTop:485.19 offsetLeft:367.59 offsetWidth:31.94 offsetHeight:31.94
+clientTop:0.42 clientLeft:0.42 clientWidth:31.09 clientHeight:31.09
+offsetTop:488.39 offsetLeft:399.89 offsetWidth:32.03 offsetHeight:32.03
+clientTop:0.42 clientLeft:0.42 clientWidth:31.19 clientHeight:31.19
+offsetTop:491.59 offsetLeft:432.39 offsetWidth:32.14 offsetHeight:32.14
+clientTop:0.42 clientLeft:0.42 clientWidth:31.30 clientHeight:31.30
+offsetTop:494.80 offsetLeft:465.09 offsetWidth:32.23 offsetHeight:32.23
+clientTop:0.42 clientLeft:0.42 clientWidth:31.39 clientHeight:31.39
+offsetTop:498.00 offsetLeft:498.00 offsetWidth:32.34 offsetHeight:32.34
+clientTop:0.42 clientLeft:0.42 clientWidth:31.50 clientHeight:31.50
+offsetTop:501.19 offsetLeft:531.09 offsetWidth:32.44 offsetHeight:32.44
+clientTop:0.42 clientLeft:0.42 clientWidth:31.59 clientHeight:31.59
+offsetTop:504.39 offsetLeft:564.39 offsetWidth:32.53 offsetHeight:32.53
+clientTop:0.42 clientLeft:0.42 clientWidth:31.69 clientHeight:31.69
+offsetTop:507.59 offsetLeft:597.89 offsetWidth:32.64 offsetHeight:32.64
+clientTop:0.42 clientLeft:0.42 clientWidth:31.80 clientHeight:31.80
+offsetTop:510.80 offsetLeft:631.59 offsetWidth:32.73 offsetHeight:32.73
+clientTop:0.42 clientLeft:0.42 clientWidth:31.89 clientHeight:31.89
+offsetTop:512.00 offsetLeft:28.80 offsetWidth:32.88 offsetHeight:32.88
+clientTop:0.44 clientLeft:0.44 clientWidth:32.00 clientHeight:32.00
+offsetTop:515.39 offsetLeft:60.89 offsetWidth:32.97 offsetHeight:32.97
+clientTop:0.44 clientLeft:0.44 clientWidth:32.09 clientHeight:32.09
+offsetTop:518.80 offsetLeft:93.19 offsetWidth:33.06 offsetHeight:33.06
+clientTop:0.44 clientLeft:0.44 clientWidth:32.19 clientHeight:32.19
+offsetTop:522.19 offsetLeft:125.69 offsetWidth:33.17 offsetHeight:33.17
+clientTop:0.44 clientLeft:0.44 clientWidth:32.30 clientHeight:32.30
+offsetTop:525.59 offsetLeft:158.39 offsetWidth:33.27 offsetHeight:33.27
+clientTop:0.44 clientLeft:0.44 clientWidth:32.39 clientHeight:32.39
+offsetTop:529.00 offsetLeft:191.30 offsetWidth:33.38 offsetHeight:33.38
+clientTop:0.44 clientLeft:0.44 clientWidth:32.50 clientHeight:32.50
+offsetTop:532.39 offsetLeft:224.39 offsetWidth:33.47 offsetHeight:33.47
+clientTop:0.44 clientLeft:0.44 clientWidth:32.59 clientHeight:32.59
+offsetTop:535.80 offsetLeft:257.69 offsetWidth:33.56 offsetHeight:33.56
+clientTop:0.44 clientLeft:0.44 clientWidth:32.69 clientHeight:32.69
+offsetTop:539.19 offsetLeft:291.19 offsetWidth:33.67 offsetHeight:33.67
+clientTop:0.44 clientLeft:0.44 clientWidth:32.80 clientHeight:32.80
+offsetTop:542.59 offsetLeft:324.89 offsetWidth:33.77 offsetHeight:33.77
+clientTop:0.44 clientLeft:0.44 clientWidth:32.89 clientHeight:32.89
+offsetTop:546.00 offsetLeft:358.80 offsetWidth:33.88 offsetHeight:33.88
+clientTop:0.44 clientLeft:0.44 clientWidth:33.00 clientHeight:33.00
+offsetTop:549.39 offsetLeft:392.89 offsetWidth:33.97 offsetHeight:33.97
+clientTop:0.44 clientLeft:0.44 clientWidth:33.09 clientHeight:33.09
+offsetTop:552.80 offsetLeft:427.19 offsetWidth:34.06 offsetHeight:34.06
+clientTop:0.44 clientLeft:0.44 clientWidth:33.19 clientHeight:33.19
+offsetTop:556.19 offsetLeft:461.69 offsetWidth:34.17 offsetHeight:34.17
+clientTop:0.44 clientLeft:0.44 clientWidth:33.30 clientHeight:33.30
+offsetTop:559.59 offsetLeft:496.39 offsetWidth:34.27 offsetHeight:34.27
+clientTop:0.44 clientLeft:0.44 clientWidth:33.39 clientHeight:33.39
+offsetTop:563.00 offsetLeft:531.30 offsetWidth:34.38 offsetHeight:34.38
+clientTop:0.44 clientLeft:0.44 clientWidth:33.50 clientHeight:33.50
+offsetTop:566.39 offsetLeft:566.39 offsetWidth:34.47 offsetHeight:34.47
+clientTop:0.44 clientLeft:0.44 clientWidth:33.59 clientHeight:33.59
+offsetTop:569.80 offsetLeft:601.69 offsetWidth:34.56 offsetHeight:34.56
+clientTop:0.44 clientLeft:0.44 clientWidth:33.69 clientHeight:33.69
+offsetTop:573.19 offsetLeft:637.19 offsetWidth:34.67 offsetHeight:34.67
+clientTop:0.44 clientLeft:0.44 clientWidth:33.80 clientHeight:33.80
+offsetTop:576.59 offsetLeft:672.89 offsetWidth:34.77 offsetHeight:34.77
+clientTop:0.44 clientLeft:0.44 clientWidth:33.89 clientHeight:33.89
+offsetTop:578.00 offsetLeft:32.30 offsetWidth:34.94 offsetHeight:34.94
+clientTop:0.47 clientLeft:0.47 clientWidth:34.00 clientHeight:34.00
+offsetTop:581.59 offsetLeft:66.39 offsetWidth:35.03 offsetHeight:35.03
+clientTop:0.47 clientLeft:0.47 clientWidth:34.09 clientHeight:34.09
+offsetTop:585.19 offsetLeft:100.69 offsetWidth:35.13 offsetHeight:35.13
+clientTop:0.47 clientLeft:0.47 clientWidth:34.19 clientHeight:34.19
+offsetTop:588.80 offsetLeft:135.19 offsetWidth:35.23 offsetHeight:35.23
+clientTop:0.47 clientLeft:0.47 clientWidth:34.30 clientHeight:34.30
+offsetTop:592.39 offsetLeft:169.89 offsetWidth:35.33 offsetHeight:35.33
+clientTop:0.47 clientLeft:0.47 clientWidth:34.39 clientHeight:34.39
+offsetTop:596.00 offsetLeft:204.80 offsetWidth:35.44 offsetHeight:35.44
+clientTop:0.47 clientLeft:0.47 clientWidth:34.50 clientHeight:34.50
+offsetTop:599.59 offsetLeft:239.89 offsetWidth:35.53 offsetHeight:35.53
+clientTop:0.47 clientLeft:0.47 clientWidth:34.59 clientHeight:34.59
+offsetTop:603.19 offsetLeft:275.19 offsetWidth:35.63 offsetHeight:35.63
+clientTop:0.47 clientLeft:0.47 clientWidth:34.69 clientHeight:34.69
+offsetTop:606.80 offsetLeft:310.69 offsetWidth:35.73 offsetHeight:35.73
+clientTop:0.47 clientLeft:0.47 clientWidth:34.80 clientHeight:34.80
+offsetTop:610.39 offsetLeft:346.39 offsetWidth:35.83 offsetHeight:35.83
+clientTop:0.47 clientLeft:0.47 clientWidth:34.89 clientHeight:34.89
+offsetTop:614.00 offsetLeft:382.30 offsetWidth:35.94 offsetHeight:35.94
+clientTop:0.47 clientLeft:0.47 clientWidth:35.00 clientHeight:35.00
+offsetTop:617.59 offsetLeft:418.39 offsetWidth:36.03 offsetHeight:36.03
+clientTop:0.47 clientLeft:0.47 clientWidth:35.09 clientHeight:35.09
+offsetTop:621.19 offsetLeft:454.69 offsetWidth:36.13 offsetHeight:36.13
+clientTop:0.47 clientLeft:0.47 clientWidth:35.19 clientHeight:35.19
+offsetTop:624.80 offsetLeft:491.19 offsetWidth:36.23 offsetHeight:36.23
+clientTop:0.47 clientLeft:0.47 clientWidth:35.30 clientHeight:35.30
+offsetTop:628.39 offsetLeft:527.89 offsetWidth:36.33 offsetHeight:36.33
+clientTop:0.47 clientLeft:0.47 clientWidth:35.39 clientHeight:35.39
+offsetTop:632.00 offsetLeft:564.80 offsetWidth:36.44 offsetHeight:36.44
+clientTop:0.47 clientLeft:0.47 clientWidth:35.50 clientHeight:35.50
+offsetTop:635.59 offsetLeft:601.89 offsetWidth:36.53 offsetHeight:36.53
+clientTop:0.47 clientLeft:0.47 clientWidth:35.59 clientHeight:35.59
+offsetTop:639.19 offsetLeft:639.19 offsetWidth:36.63 offsetHeight:36.63
+clientTop:0.47 clientLeft:0.47 clientWidth:35.69 clientHeight:35.69
+offsetTop:642.80 offsetLeft:676.69 offsetWidth:36.73 offsetHeight:36.73
+clientTop:0.47 clientLeft:0.47 clientWidth:35.80 clientHeight:35.80
+offsetTop:646.39 offsetLeft:714.39 offsetWidth:36.83 offsetHeight:36.83
+clientTop:0.47 clientLeft:0.47 clientWidth:35.89 clientHeight:35.89
+offsetTop:648.00 offsetLeft:36.00 offsetWidth:37.00 offsetHeight:37.00
+clientTop:0.50 clientLeft:0.50 clientWidth:36.00 clientHeight:36.00
+offsetTop:651.80 offsetLeft:72.09 offsetWidth:37.09 offsetHeight:37.09
+clientTop:0.50 clientLeft:0.50 clientWidth:36.09 clientHeight:36.09
+offsetTop:655.59 offsetLeft:108.39 offsetWidth:37.19 offsetHeight:37.19
+clientTop:0.50 clientLeft:0.50 clientWidth:36.19 clientHeight:36.19
+offsetTop:659.39 offsetLeft:144.89 offsetWidth:37.30 offsetHeight:37.30
+clientTop:0.50 clientLeft:0.50 clientWidth:36.30 clientHeight:36.30
+offsetTop:663.19 offsetLeft:181.59 offsetWidth:37.39 offsetHeight:37.39
+clientTop:0.50 clientLeft:0.50 clientWidth:36.39 clientHeight:36.39
+offsetTop:667.00 offsetLeft:218.50 offsetWidth:37.50 offsetHeight:37.50
+clientTop:0.50 clientLeft:0.50 clientWidth:36.50 clientHeight:36.50
+offsetTop:670.80 offsetLeft:255.59 offsetWidth:37.59 offsetHeight:37.59
+clientTop:0.50 clientLeft:0.50 clientWidth:36.59 clientHeight:36.59
+offsetTop:674.59 offsetLeft:292.89 offsetWidth:37.69 offsetHeight:37.69
+clientTop:0.50 clientLeft:0.50 clientWidth:36.69 clientHeight:36.69
+offsetTop:678.39 offsetLeft:330.39 offsetWidth:37.80 offsetHeight:37.80
+clientTop:0.50 clientLeft:0.50 clientWidth:36.80 clientHeight:36.80
+offsetTop:682.19 offsetLeft:368.09 offsetWidth:37.89 offsetHeight:37.89
+clientTop:0.50 clientLeft:0.50 clientWidth:36.89 clientHeight:36.89
+offsetTop:686.00 offsetLeft:406.00 offsetWidth:38.00 offsetHeight:38.00
+clientTop:0.50 clientLeft:0.50 clientWidth:37.00 clientHeight:37.00
+offsetTop:689.80 offsetLeft:444.09 offsetWidth:38.09 offsetHeight:38.09
+clientTop:0.50 clientLeft:0.50 clientWidth:37.09 clientHeight:37.09
+offsetTop:693.59 offsetLeft:482.39 offsetWidth:38.19 offsetHeight:38.19
+clientTop:0.50 clientLeft:0.50 clientWidth:37.19 clientHeight:37.19
+offsetTop:697.39 offsetLeft:520.89 offsetWidth:38.30 offsetHeight:38.30
+clientTop:0.50 clientLeft:0.50 clientWidth:37.30 clientHeight:37.30
+offsetTop:701.19 offsetLeft:559.59 offsetWidth:38.39 offsetHeight:38.39
+clientTop:0.50 clientLeft:0.50 clientWidth:37.39 clientHeight:37.39
+offsetTop:705.00 offsetLeft:598.50 offsetWidth:38.50 offsetHeight:38.50
+clientTop:0.50 clientLeft:0.50 clientWidth:37.50 clientHeight:37.50
+offsetTop:708.80 offsetLeft:637.59 offsetWidth:38.59 offsetHeight:38.59
+clientTop:0.50 clientLeft:0.50 clientWidth:37.59 clientHeight:37.59
+offsetTop:712.59 offsetLeft:676.89 offsetWidth:38.69 offsetHeight:38.69
+clientTop:0.50 clientLeft:0.50 clientWidth:37.69 clientHeight:37.69
+offsetTop:716.39 offsetLeft:716.39 offsetWidth:38.80 offsetHeight:38.80
+clientTop:0.50 clientLeft:0.50 clientWidth:37.80 clientHeight:37.80
+offsetTop:720.19 offsetLeft:756.09 offsetWidth:38.89 offsetHeight:38.89
+clientTop:0.50 clientLeft:0.50 clientWidth:37.89 clientHeight:37.89
+offsetTop:722.00 offsetLeft:39.89 offsetWidth:39.03 offsetHeight:39.03
+clientTop:0.52 clientLeft:0.52 clientWidth:38.00 clientHeight:38.00
+offsetTop:726.00 offsetLeft:78.00 offsetWidth:39.13 offsetHeight:39.13
+clientTop:0.52 clientLeft:0.52 clientWidth:38.09 clientHeight:38.09
+offsetTop:730.00 offsetLeft:116.30 offsetWidth:39.22 offsetHeight:39.22
+clientTop:0.52 clientLeft:0.52 clientWidth:38.19 clientHeight:38.19
+offsetTop:734.00 offsetLeft:154.80 offsetWidth:39.33 offsetHeight:39.33
+clientTop:0.52 clientLeft:0.52 clientWidth:38.30 clientHeight:38.30
+offsetTop:738.00 offsetLeft:193.50 offsetWidth:39.42 offsetHeight:39.42
+clientTop:0.52 clientLeft:0.52 clientWidth:38.39 clientHeight:38.39
+offsetTop:742.00 offsetLeft:232.39 offsetWidth:39.53 offsetHeight:39.53
+clientTop:0.52 clientLeft:0.52 clientWidth:38.50 clientHeight:38.50
+offsetTop:746.00 offsetLeft:271.50 offsetWidth:39.63 offsetHeight:39.63
+clientTop:0.52 clientLeft:0.52 clientWidth:38.59 clientHeight:38.59
+offsetTop:750.00 offsetLeft:310.80 offsetWidth:39.72 offsetHeight:39.72
+clientTop:0.52 clientLeft:0.52 clientWidth:38.69 clientHeight:38.69
+offsetTop:754.00 offsetLeft:350.30 offsetWidth:39.83 offsetHeight:39.83
+clientTop:0.52 clientLeft:0.52 clientWidth:38.80 clientHeight:38.80
+offsetTop:758.00 offsetLeft:390.00 offsetWidth:39.92 offsetHeight:39.92
+clientTop:0.52 clientLeft:0.52 clientWidth:38.89 clientHeight:38.89
+offsetTop:762.00 offsetLeft:429.89 offsetWidth:40.03 offsetHeight:40.03
+clientTop:0.52 clientLeft:0.52 clientWidth:39.00 clientHeight:39.00
+offsetTop:766.00 offsetLeft:470.00 offsetWidth:40.13 offsetHeight:40.13
+clientTop:0.52 clientLeft:0.52 clientWidth:39.09 clientHeight:39.09
+offsetTop:770.00 offsetLeft:510.30 offsetWidth:40.22 offsetHeight:40.22
+clientTop:0.52 clientLeft:0.52 clientWidth:39.19 clientHeight:39.19
+offsetTop:774.00 offsetLeft:550.80 offsetWidth:40.33 offsetHeight:40.33
+clientTop:0.52 clientLeft:0.52 clientWidth:39.30 clientHeight:39.30
+offsetTop:778.00 offsetLeft:591.50 offsetWidth:40.42 offsetHeight:40.42
+clientTop:0.52 clientLeft:0.52 clientWidth:39.39 clientHeight:39.39
+offsetTop:782.00 offsetLeft:632.39 offsetWidth:40.53 offsetHeight:40.53
+clientTop:0.52 clientLeft:0.52 clientWidth:39.50 clientHeight:39.50
+offsetTop:786.00 offsetLeft:673.50 offsetWidth:40.63 offsetHeight:40.63
+clientTop:0.52 clientLeft:0.52 clientWidth:39.59 clientHeight:39.59
+offsetTop:790.00 offsetLeft:714.80 offsetWidth:40.72 offsetHeight:40.72
+clientTop:0.52 clientLeft:0.52 clientWidth:39.69 clientHeight:39.69
+offsetTop:794.00 offsetLeft:756.30 offsetWidth:40.83 offsetHeight:40.83
+clientTop:0.52 clientLeft:0.52 clientWidth:39.80 clientHeight:39.80
+offsetTop:798.00 offsetLeft:798.00 offsetWidth:40.92 offsetHeight:40.92
+clientTop:0.52 clientLeft:0.52 clientWidth:39.89 clientHeight:39.89
+
</ins></span></pre></div>
<a id="trunkLayoutTestscssomsubpixeloffsetlefttopwidthheightvalueshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values.html (0 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values.html                                (rev 0)
+++ trunk/LayoutTests/cssom/subpixel-offsetleft-top-width-height-values.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;title&gt;This tests that offset* and client* can return fractional values.&lt;/title&gt;
+&lt;style&gt;
+div { 
+  position: fixed;
+  border-style: solid;
+  border-color: red;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+  if (window.testRunner)
+    testRunner.dumpAsText();
+    
+  var container = document.body;
+  w = 0;
+  h = 0;
+  adjustment = 0.1;
+  for (i = 0; i &lt; 20; ++i) {
+    adjustment+=0.1;
+    for (j = 0; j &lt; 20; ++j) {
+      var e = document.createElement(&quot;div&quot;);
+      e.style.top = (w * i + j * adjustment) + &quot;px&quot;;
+      e.style.left = (w * j + i * adjustment) + &quot;px&quot;;
+      e.style.width = w + &quot;px&quot;;
+      e.style.height = h + &quot;px&quot;;
+      e.style.borderWidth = adjustment/4 + &quot;px&quot;;
+      container.appendChild(e);
+      w+=0.1;
+      h+=0.1;
+    }
+  }
+  
+  var result = &quot;&quot;;
+  var divs = document.getElementsByTagName(&quot;div&quot;);
+  for (i = 0; i &lt; divs.length; ++i) {
+    var element = divs[i];
+    result+=&quot;offsetTop:&quot; + element.offsetTop.toFixed(2) + &quot; offsetLeft:&quot; + element.offsetLeft.toFixed(2) + &quot; offsetWidth:&quot; + element.offsetWidth.toFixed(2) + &quot; offsetHeight:&quot; + element.offsetHeight.toFixed(2) + &quot;&lt;/br&gt; clientTop:&quot; + element.clientTop.toFixed(2) + &quot; clientLeft:&quot; + element.clientLeft.toFixed(2) + &quot; clientWidth:&quot; + element.clientWidth.toFixed(2) + &quot; clientHeight:&quot; + element.clientHeight.toFixed(2) + &quot;&lt;/br&gt;&quot;;
+  }
+  document.body.innerHTML = result;  
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestseditingselectiondragstarteventclientxyhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/editing/selection/drag-start-event-client-x-y.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/drag-start-event-client-x-y.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/editing/selection/drag-start-event-client-x-y.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -43,10 +43,10 @@
</span><span class="cx"> 
</span><span class="cx">             dragStartHandler: function(dragStart, dragDistance) {
</span><span class="cx">                 var resultElement = document.getElementById(&quot;result&quot;);
</span><del>-                shouldBe(resultElement, &quot;clientX&quot;, dragStart.x, event.clientX);
-                shouldBe(resultElement, &quot;clientY&quot;, dragStart.y, event.clientY);
-                shouldBe(resultElement, &quot;pageX&quot;, dragStart.x, event.pageX);
-                shouldBe(resultElement, &quot;pageY&quot;, dragStart.y, event.pageY);
</del><ins>+                shouldBe(resultElement, &quot;clientX&quot;, Math.floor(dragStart.x), event.clientX);
+                shouldBe(resultElement, &quot;clientY&quot;, Math.floor(dragStart.y), event.clientY);
+                shouldBe(resultElement, &quot;pageX&quot;, Math.floor(dragStart.x), event.pageX);
+                shouldBe(resultElement, &quot;pageY&quot;, Math.floor(dragStart.y), event.pageY);
</ins><span class="cx">             },
</span><span class="cx"> 
</span><span class="cx">             runTest: function() {
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">                     testRunner.dumpAsText();
</span><span class="cx">                 
</span><span class="cx">                 var element = document.getElementById(&quot;draggable&quot;);
</span><del>-                var dragStart = { x: element.offsetLeft + element.offsetWidth / 2, y:  element.offsetTop + 1.0 };
</del><ins>+                var dragStart = { x: Math.round(element.offsetLeft) + Math.round(element.offsetWidth) / 2, y:  Math.round(element.offsetTop) + 1.0 };
</ins><span class="cx">                 var dragDistance = 10.0;
</span><span class="cx">                 element.ondragstart = this.dragStartHandler.bind(this, dragStart, dragDistance);
</span><span class="cx">                 
</span></span></pre></div>
<a id="trunkLayoutTestseditingselectionmixededitability10html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/editing/selection/mixed-editability-10.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/mixed-editability-10.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/editing/selection/mixed-editability-10.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -55,8 +55,8 @@
</span><span class="cx">     var anchorOffset = selection.anchorOffset;
</span><span class="cx"> 
</span><span class="cx">     var coord = caretCoordinates();
</span><del>-    var anchorString = &quot;Anchor (&quot; + anchorNode + &quot;, &quot; + anchorOffset + &quot; caret[&quot; + coord.x + &quot;,&quot; + coord.y + &quot;] refpos=&quot; + refpos + &quot;)&quot;;
-    var anchorCorrect = anchorNode == elem &amp;&amp; anchorOffset == offset &amp;&amp; coord.x == refpos;
</del><ins>+    var anchorString = &quot;Anchor (&quot; + anchorNode + &quot;, &quot; + anchorOffset + &quot; caret[&quot; + coord.x + &quot;,&quot; + coord.y + &quot;] refpos=&quot; + Math.round(refpos) + &quot;)&quot;;
+    var anchorCorrect = anchorNode == elem &amp;&amp; anchorOffset == offset &amp;&amp; coord.x == Math.round(refpos);
</ins><span class="cx">     if (anchorCorrect)
</span><span class="cx">         log(anchorString + &quot; is correct.&quot;);
</span><span class="cx">     else
</span></span></pre></div>
<a id="trunkLayoutTestsfastcsszoominlengthroundtriphtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/zoom-in-length-round-trip.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/zoom-in-length-round-trip.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/fast/css/zoom-in-length-round-trip.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -29,8 +29,8 @@
</span><span class="cx">     
</span><span class="cx">     for (zoom = 100; zoom &lt;= 200; zoom += 1) {
</span><span class="cx">         containerStyle.setProperty(&quot;zoom&quot;, zoom / 100);
</span><del>-        if (target.offsetWidth != 1 || target.offsetHeight != 10) {
-            if (hasSubpixelSupport &amp;&amp; (target.offsetWidth == 1 || target.offsetWidth == 2) &amp;&amp; (target.offsetHeight == 10 || target.offsetHeight == 11))
</del><ins>+        if (Math.round(target.offsetWidth) != 1 || Math.round(target.offsetHeight) != 10) {
+            if (hasSubpixelSupport &amp;&amp; (Math.round(target.offsetWidth) == 1 || Math.round(target.offsetWidth) == 2) &amp;&amp; (Math.round(target.offsetHeight) == 10 || Math.round(target.offsetHeight) == 11))
</ins><span class="cx">                 continue; // With subpixel layout and pixel snapping we extend the box with one pixel at certain zoom levels.
</span><span class="cx">             failed = true;
</span><span class="cx">             log(&quot;FAIL at &quot; + zoom + &quot;% magnification: 1 mapped to &quot; + target.offsetWidth + &quot; and 10 mapped to &quot; + target.offsetHeight + &quot;.&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomnonnumericvaluesnumericparametersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/non-numeric-values-numeric-parameters-expected.txt (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/non-numeric-values-numeric-parameters-expected.txt        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/fast/dom/non-numeric-values-numeric-parameters-expected.txt        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -23,8 +23,8 @@
</span><span class="cx"> PASS nonNumericPolicy('document.elementFromPoint(0, x)') is 'any type allowed'
</span><span class="cx"> PASS nonNumericPolicy('document.body.scrollByLines(x)') is 'any type allowed'
</span><span class="cx"> PASS nonNumericPolicy('document.body.scrollByPages(x)') is 'any type allowed'
</span><del>-PASS nonNumericPolicy('document.body.scrollLeft = x') is 'any type allowed'
-PASS nonNumericPolicy('document.body.scrollTop = x') is 'any type allowed'
</del><ins>+PASS nonNumericPolicy('document.body.scrollLeft = x') is 'mixed'
+PASS nonNumericPolicy('document.body.scrollTop = x') is 'mixed'
</ins><span class="cx"> PASS nonNumericPolicy('document.images.item(x)') is 'any type allowed'
</span><span class="cx"> PASS nonNumericPolicy('document.createElement(&quot;input&quot;).setSelectionRange(x, 0)') is 'any type allowed'
</span><span class="cx"> PASS nonNumericPolicy('document.createElement(&quot;input&quot;).setSelectionRange(0, x)') is 'any type allowed'
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomscripttestsnonnumericvaluesnumericparametersjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/script-tests/non-numeric-values-numeric-parameters.js (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/script-tests/non-numeric-values-numeric-parameters.js        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/fast/dom/script-tests/non-numeric-values-numeric-parameters.js        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -226,8 +226,8 @@
</span><span class="cx"> 
</span><span class="cx"> shouldBe(&quot;nonNumericPolicy('document.body.scrollByLines(x)')&quot;, &quot;'any type allowed'&quot;);
</span><span class="cx"> shouldBe(&quot;nonNumericPolicy('document.body.scrollByPages(x)')&quot;, &quot;'any type allowed'&quot;);
</span><del>-shouldBe(&quot;nonNumericPolicy('document.body.scrollLeft = x')&quot;, &quot;'any type allowed'&quot;);
-shouldBe(&quot;nonNumericPolicy('document.body.scrollTop = x')&quot;, &quot;'any type allowed'&quot;);
</del><ins>+shouldBe(&quot;nonNumericPolicy('document.body.scrollLeft = x')&quot;, &quot;'mixed'&quot;);
+shouldBe(&quot;nonNumericPolicy('document.body.scrollTop = x')&quot;, &quot;'mixed'&quot;);
</ins><span class="cx"> 
</span><span class="cx"> // History
</span><span class="cx"> 
</span><span class="lines">@@ -392,8 +392,8 @@
</span><span class="cx"> ../../../../WebCore/html/HTMLAppletElement.idl:                 attribute [ConvertFromString] long vspace;
</span><span class="cx"> ../../../../WebCore/html/HTMLAreaElement.idl:        attribute long tabIndex;
</span><span class="cx"> ../../../../WebCore/html/HTMLBaseFontElement.idl:        attribute long size;
</span><del>-../../../../WebCore/html/HTMLBodyElement.idl:                 attribute long scrollLeft;
-../../../../WebCore/html/HTMLBodyElement.idl:                 attribute long scrollTop;
</del><ins>+../../../../WebCore/html/HTMLBodyElement.idl:                 attribute float scrollLeft;
+../../../../WebCore/html/HTMLBodyElement.idl:                 attribute float scrollTop;
</ins><span class="cx"> ../../../../WebCore/html/HTMLButtonElement.idl:                 attribute  long                 tabIndex;
</span><span class="cx"> ../../../../WebCore/html/HTMLCanvasElement.idl:        attribute long width;
</span><span class="cx"> ../../../../WebCore/html/HTMLCanvasElement.idl:        attribute long height;
</span></span></pre></div>
<a id="trunkLayoutTestsfastformsbasicbuttonshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/forms/basic-buttons.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/basic-buttons.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/fast/forms/basic-buttons.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx">         var thisRow = thisCell.parentNode;
</span><span class="cx"> 
</span><span class="cx">         button.parentNode.nextSibling.innerHTML = 
</span><del>-            &quot;(&quot; + button.offsetHeight + &quot;, &quot; + button.offsetWidth + &quot;) &quot; +
-            &quot;(&quot; + button.clientHeight + &quot;, &quot; + button.clientWidth + &quot;)&quot;;
</del><ins>+            &quot;(&quot; + Math.round(button.offsetHeight) + &quot;, &quot; + Math.round(button.offsetWidth) + &quot;) &quot; +
+            &quot;(&quot; + Math.round(button.clientHeight) + &quot;, &quot; + Math.round(button.clientWidth) + &quot;)&quot;;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdomstaticpropertyforiniterationexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -52,7 +52,6 @@
</span><span class="cx"> PASS a[&quot;offsetTop&quot;] is 774
</span><span class="cx"> PASS a[&quot;offsetWidth&quot;] is 39
</span><span class="cx"> PASS a[&quot;offsetHeight&quot;] is 18
</span><del>-PASS a[&quot;offsetParent&quot;] is [object HTMLBodyElement]
</del><span class="cx"> PASS a[&quot;clientLeft&quot;] is 0
</span><span class="cx"> PASS a[&quot;clientTop&quot;] is 0
</span><span class="cx"> PASS a[&quot;clientWidth&quot;] is 0
</span><span class="lines">@@ -61,6 +60,7 @@
</span><span class="cx"> PASS a[&quot;scrollTop&quot;] is 0
</span><span class="cx"> PASS a[&quot;scrollWidth&quot;] is 0
</span><span class="cx"> PASS a[&quot;scrollHeight&quot;] is 0
</span><ins>+PASS a[&quot;offsetParent&quot;] is [object HTMLBodyElement]
</ins><span class="cx"> PASS a[&quot;className&quot;] is 
</span><span class="cx"> PASS a[&quot;classList&quot;] is 
</span><span class="cx"> PASS a[&quot;dataset&quot;] is [object DOMStringMap]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">     // Scroll the #source until we reach the #target.
</span><span class="cx">     var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">     debug(&quot;div display height = &quot; + divTarget.clientHeight);
</span><del>-    var startPosY = divTarget.offsetTop + divTarget.clientHeight - 42; // One wheel turn before end.
</del><ins>+    var startPosY = Math.round(divTarget.offsetTop) + Math.round(divTarget.clientHeight) - 42; // One wheel turn before end.
</ins><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx">     divScrollPositionBefore = divTarget.scrollTop;
</span><span class="cx"> 
</span><span class="cx">     // Scroll the #source until we reach the #target.
</span><del>-    var startPosX = divTarget.offsetLeft + 20;
-    var startPosY = divTarget.offsetTop - 42; // Slightly more than one wheel scroll away from the IFrame
</del><ins>+    var startPosX = Math.round(divTarget.offsetLeft) + 20;
+    var startPosY = Math.round(divTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
</ins><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">     // Scroll the #source until we reach the #target.
</span><span class="cx">     var startPosX = selectTarget.offsetLeft + 20;
</span><span class="cx">     debug(&quot;div display height = &quot; + selectTarget.clientHeight);
</span><del>-    var startPosY = selectTarget.offsetTop + selectTarget.clientHeight + clientInset - 2; // Very near top (accounting for top content inset).
</del><ins>+    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) + clientInset - 2; // Very near top (accounting for top content inset).
</ins><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY);
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx">     selectScrollPositionBefore = selectTarget.scrollTop;
</span><span class="cx"> 
</span><span class="cx">     // Scroll the #source until we reach the #target.
</span><del>-    var startPosX = selectTarget.offsetLeft + 20;
-    var startPosY = selectTarget.offsetTop - 42; // Slightly more than one wheel scroll away from the IFrame
</del><ins>+    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
+    var startPosY = Math.round(selectTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
</ins><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselecthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -67,9 +67,9 @@
</span><span class="cx">     selectScrollPositionBefore = selectTarget.scrollTop;
</span><span class="cx"> 
</span><span class="cx">     // Scroll the #source until we reach the #target.
</span><del>-    var startPosX = selectTarget.offsetLeft + 20;
</del><ins>+    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
</ins><span class="cx">     debug(&quot;div display height = &quot; + selectTarget.clientHeight);
</span><del>-    var startPosY = selectTarget.offsetTop + selectTarget.clientHeight - 42; // One wheel turn before end.
</del><ins>+    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) - 42; // One wheel turn before end.
</ins><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</span></span></pre></div>
<a id="trunkLayoutTestsresourceschecklayoutjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/resources/check-layout.js (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/resources/check-layout.js        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/LayoutTests/resources/check-layout.js        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -37,63 +37,63 @@
</span><span class="cx">     var output = { checked: false };
</span><span class="cx">     var expectedWidth = checkAttribute(output, node, &quot;data-expected-width&quot;);
</span><span class="cx">     if (expectedWidth) {
</span><del>-        if (node.offsetWidth != parseInt(expectedWidth))
</del><ins>+        if (Math.round(node.offsetWidth) != parseInt(expectedWidth))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedWidth + &quot; for width, but got &quot; + node.offsetWidth + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedHeight = checkAttribute(output, node, &quot;data-expected-height&quot;);
</span><span class="cx">     if (expectedHeight) {
</span><del>-        if (node.offsetHeight != parseInt(expectedHeight))
</del><ins>+        if (Math.round(node.offsetHeight) != parseInt(expectedHeight))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedHeight + &quot; for height, but got &quot; + node.offsetHeight + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedOffset = checkAttribute(output, node, &quot;data-offset-x&quot;);
</span><span class="cx">     if (expectedOffset) {
</span><del>-        if (node.offsetLeft != parseInt(expectedOffset))
</del><ins>+        if (Math.round(node.offsetLeft) != parseInt(expectedOffset))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedOffset + &quot; for offsetLeft, but got &quot; + node.offsetLeft + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedOffset = checkAttribute(output, node, &quot;data-offset-y&quot;);
</span><span class="cx">     if (expectedOffset) {
</span><del>-        if (node.offsetTop != parseInt(expectedOffset))
</del><ins>+        if (Math.round(node.offsetTop) != parseInt(expectedOffset))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedOffset + &quot; for offsetTop, but got &quot; + node.offsetTop + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedWidth = checkAttribute(output, node, &quot;data-expected-client-width&quot;);
</span><span class="cx">     if (expectedWidth) {
</span><del>-        if (node.clientWidth != parseInt(expectedWidth))
</del><ins>+        if (Math.round(node.clientWidth) != parseInt(expectedWidth))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedWidth + &quot; for clientWidth, but got &quot; + node.clientWidth + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedHeight = checkAttribute(output, node, &quot;data-expected-client-height&quot;);
</span><span class="cx">     if (expectedHeight) {
</span><del>-        if (node.clientHeight != parseInt(expectedHeight))
</del><ins>+        if (Math.round(node.clientHeight) != parseInt(expectedHeight))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedHeight + &quot; for clientHeight, but got &quot; + node.clientHeight + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedWidth = checkAttribute(output, node, &quot;data-expected-scroll-width&quot;);
</span><span class="cx">     if (expectedWidth) {
</span><del>-        if (node.scrollWidth != parseInt(expectedWidth))
</del><ins>+        if (Math.round(node.scrollWidth) != parseInt(expectedWidth))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedWidth + &quot; for scrollWidth, but got &quot; + node.scrollWidth + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedHeight = checkAttribute(output, node, &quot;data-expected-scroll-height&quot;);
</span><span class="cx">     if (expectedHeight) {
</span><del>-        if (node.scrollHeight != parseInt(expectedHeight))
</del><ins>+        if (Math.round(node.scrollHeight) != parseInt(expectedHeight))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedHeight + &quot; for scrollHeight, but got &quot; + node.scrollHeight + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedOffset = checkAttribute(output, node, &quot;data-total-x&quot;);
</span><span class="cx">     if (expectedOffset) {
</span><span class="cx">         var totalLeft = node.clientLeft + node.offsetLeft;
</span><del>-        if (totalLeft != parseInt(expectedOffset))
</del><ins>+        if (Math.round(totalLeft) != parseInt(expectedOffset))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedOffset + &quot; for clientLeft+offsetLeft, but got &quot; + totalLeft + &quot;, clientLeft: &quot; + node.clientLeft + &quot;, offsetLeft: &quot; + node.offsetLeft + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     var expectedOffset = checkAttribute(output, node, &quot;data-total-y&quot;);
</span><span class="cx">     if (expectedOffset) {
</span><span class="cx">         var totalTop = node.clientTop + node.offsetTop;
</span><del>-        if (totalTop != parseInt(expectedOffset))
</del><ins>+        if (Math.round(totalTop) != parseInt(expectedOffset))
</ins><span class="cx">             failures.push(&quot;Expected &quot; + expectedOffset + &quot; for clientTop+offsetTop, but got &quot; + totalTop + &quot;, clientTop: &quot; + node.clientTop + &quot;, + offsetTop: &quot; + node.offsetTop + &quot;. &quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/ChangeLog        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -1,3 +1,59 @@
</span><ins>+2014-05-14  Zalan Bujtas  &lt;zalan@apple.com&gt;
+
+        Subpixel layout: Change Element.offset* client* scroll* return type to double.
+        https://bugs.webkit.org/show_bug.cgi?id=132895
+
+        Reviewed by Simon Fraser.
+
+        This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
+        type from long to double to match the latest CSSOM View Module spec[1].
+        Element.offset* and Element.client* do return subpixel values from now on.
+        Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
+
+        subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
+        from WK2 preferences. It toggles the return value from subpixel to floored integral.
+        It does not change layout/rendering behavior.
+
+        Reference list of what other browsers do:
+        IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
+        Blink: http://www.chromestatus.com/features/5497402177880064
+        Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
+
+        [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
+
+        Test: cssom/subpixel-offsetleft-top-width-height-values.html
+
+        * dom/Element.cpp:
+        (WebCore::localZoomForRenderer):
+        (WebCore::adjustForLocalZoom):
+        (WebCore::convertToNonSubpixelValueIfNeeded):
+        (WebCore::Element::offsetLeft):
+        (WebCore::Element::offsetTop):
+        (WebCore::Element::offsetWidth):
+        (WebCore::Element::offsetHeight):
+        (WebCore::Element::clientLeft):
+        (WebCore::Element::clientTop):
+        (WebCore::Element::clientWidth):
+        (WebCore::Element::clientHeight):
+        (WebCore::Element::scrollLeft):
+        (WebCore::Element::scrollTop):
+        (WebCore::Element::setScrollLeft):
+        (WebCore::Element::setScrollTop):
+        (WebCore::Element::scrollWidth):
+        (WebCore::Element::scrollHeight):
+        * dom/Element.h:
+        * dom/Element.idl:
+        * html/HTMLBodyElement.cpp:
+        (WebCore::adjustForZoom):
+        (WebCore::HTMLBodyElement::scrollLeft):
+        (WebCore::HTMLBodyElement::setScrollLeft):
+        (WebCore::HTMLBodyElement::scrollTop):
+        (WebCore::HTMLBodyElement::setScrollTop):
+        (WebCore::HTMLBodyElement::scrollHeight):
+        (WebCore::HTMLBodyElement::scrollWidth):
+        * html/HTMLBodyElement.h:
+        * page/Settings.in:
+
</ins><span class="cx"> 2014-05-14  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Implement NSSharingServiceDelegate method &quot;transitionImageForShareItem&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/dom/Element.cpp        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -621,16 +621,16 @@
</span><span class="cx">     scrollByUnits(pages, ScrollByPage);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static float localZoomForRenderer(RenderElement* renderer)
</del><ins>+static double localZoomForRenderer(const RenderElement&amp; renderer)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: This does the wrong thing if two opposing zooms are in effect and canceled each
</span><span class="cx">     // other out, but the alternative is that we'd have to crawl up the whole render tree every
</span><span class="cx">     // time (or store an additional bit in the RenderStyle to indicate that a zoom was specified).
</span><del>-    float zoomFactor = 1;
-    if (renderer-&gt;style().effectiveZoom() != 1) {
</del><ins>+    double zoomFactor = 1;
+    if (renderer.style().effectiveZoom() != 1) {
</ins><span class="cx">         // Need to find the nearest enclosing RenderElement that set up
</span><span class="cx">         // a differing zoom, and then we divide our result by it to eliminate the zoom.
</span><del>-        RenderElement* prev = renderer;
</del><ins>+        const RenderElement* prev = &amp;renderer;
</ins><span class="cx">         for (RenderElement* curr = prev-&gt;parent(); curr; curr = curr-&gt;parent()) {
</span><span class="cx">             if (curr-&gt;style().effectiveZoom() != prev-&gt;style().effectiveZoom()) {
</span><span class="cx">                 zoomFactor = prev-&gt;style().zoom();
</span><span class="lines">@@ -644,57 +644,63 @@
</span><span class="cx">     return zoomFactor;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static int adjustForLocalZoom(LayoutUnit value, RenderElement* renderer)
</del><ins>+static double adjustForLocalZoom(LayoutUnit value, const RenderElement&amp; renderer)
</ins><span class="cx"> {
</span><del>-    float zoomFactor = localZoomForRenderer(renderer);
</del><ins>+    double zoomFactor = localZoomForRenderer(renderer);
</ins><span class="cx">     if (zoomFactor == 1)
</span><del>-        return value;
</del><ins>+        return value.toDouble();
</ins><span class="cx"> #if ENABLE(SUBPIXEL_LAYOUT)
</span><del>-    return lroundf(value / zoomFactor);
</del><ins>+    return value.toDouble() / zoomFactor;
</ins><span class="cx"> #else
</span><span class="cx">     // Needed because computeLengthInt truncates (rather than rounds) when scaling up.
</span><span class="cx">     if (zoomFactor &gt; 1)
</span><span class="cx">         ++value;
</span><del>-    return static_cast&lt;int&gt;(value / zoomFactor);
</del><ins>+    return value.toDouble() / zoomFactor;
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::offsetLeft()
</del><ins>+static double convertToNonSubpixelValueIfNeeded(double value, const Document&amp; document)
</ins><span class="cx"> {
</span><ins>+    return document.settings() &amp;&amp; !document.settings()-&gt;subpixelCSSOMElementMetricsEnabled() ? floor(value) : value;
+}
+
+double Element::offsetLeft()
+{
</ins><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     if (RenderBoxModelObject* renderer = renderBoxModelObject())
</span><del>-        return adjustForLocalZoom(renderer-&gt;pixelSnappedOffsetLeft(), renderer);
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustForLocalZoom(renderer-&gt;offsetLeft(), *renderer), renderer-&gt;document());
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::offsetTop()
</del><ins>+double Element::offsetTop()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     if (RenderBoxModelObject* renderer = renderBoxModelObject())
</span><del>-        return adjustForLocalZoom(renderer-&gt;pixelSnappedOffsetTop(), renderer);
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustForLocalZoom(renderer-&gt;offsetTop(), *renderer), renderer-&gt;document());
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::offsetWidth()
</del><ins>+double Element::offsetWidth()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><del>-    if (RenderBoxModelObject* renderer = renderBoxModelObject())
</del><ins>+    if (RenderBoxModelObject* renderer = renderBoxModelObject()) {
</ins><span class="cx"> #if ENABLE(SUBPIXEL_LAYOUT)
</span><del>-        return adjustLayoutUnitForAbsoluteZoom(renderer-&gt;pixelSnappedOffsetWidth(), *renderer).round();
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;offsetWidth(), *renderer).toDouble(), renderer-&gt;document());
</ins><span class="cx"> #else
</span><del>-        return adjustForAbsoluteZoom(renderer-&gt;pixelSnappedOffsetWidth(), *renderer);
</del><ins>+        return adjustForAbsoluteZoom(renderer-&gt;offsetWidth(), *renderer);
</ins><span class="cx"> #endif
</span><ins>+    }
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::offsetHeight()
</del><ins>+double Element::offsetHeight()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     if (RenderBoxModelObject* renderer = renderBoxModelObject())
</span><span class="cx"> #if ENABLE(SUBPIXEL_LAYOUT)
</span><del>-        return adjustLayoutUnitForAbsoluteZoom(renderer-&gt;pixelSnappedOffsetHeight(), *renderer).round();
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;offsetHeight(), *renderer).toDouble(), renderer-&gt;document());
</ins><span class="cx"> #else
</span><del>-        return adjustForAbsoluteZoom(renderer-&gt;pixelSnappedOffsetHeight(), *renderer);
</del><ins>+        return adjustForAbsoluteZoom(renderer-&gt;offsetHeight(), *renderer);
</ins><span class="cx"> #endif
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="lines">@@ -719,25 +725,33 @@
</span><span class="cx">     return offsetParent-&gt;element();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::clientLeft()
</del><ins>+double Element::clientLeft()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     if (RenderBox* renderer = renderBox())
</span><del>-        return adjustForAbsoluteZoom(roundToInt(renderer-&gt;clientLeft()), *renderer);
</del><ins>+#if ENABLE(SUBPIXEL_LAYOUT)
+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;clientLeft(), *renderer).toDouble(), renderer-&gt;document());
+#else
+        return adjustForAbsoluteZoom(renderer-&gt;clientLeft(), *renderer);
+#endif
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::clientTop()
</del><ins>+double Element::clientTop()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     if (RenderBox* renderer = renderBox())
</span><del>-        return adjustForAbsoluteZoom(roundToInt(renderer-&gt;clientTop()), *renderer);
</del><ins>+#if ENABLE(SUBPIXEL_LAYOUT)
+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;clientTop(), *renderer).toDouble(), renderer-&gt;document());
+#else
+        return adjustForAbsoluteZoom(renderer-&gt;clientTop(), *renderer);
+#endif
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::clientWidth()
</del><ins>+double Element::clientWidth()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="lines">@@ -753,14 +767,14 @@
</span><span class="cx">     
</span><span class="cx">     if (RenderBox* renderer = renderBox())
</span><span class="cx"> #if ENABLE(SUBPIXEL_LAYOUT)
</span><del>-        return adjustLayoutUnitForAbsoluteZoom(renderer-&gt;pixelSnappedClientWidth(), *renderer).round();
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;clientWidth(), *renderer).toDouble(), renderer-&gt;document());
</ins><span class="cx"> #else
</span><del>-        return adjustForAbsoluteZoom(renderer-&gt;pixelSnappedClientWidth(), *renderer);
</del><ins>+        return adjustForAbsoluteZoom(renderer-&gt;clientWidth(), *renderer);
</ins><span class="cx"> #endif
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::clientHeight()
</del><ins>+double Element::clientHeight()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="lines">@@ -776,14 +790,14 @@
</span><span class="cx"> 
</span><span class="cx">     if (RenderBox* renderer = renderBox())
</span><span class="cx"> #if ENABLE(SUBPIXEL_LAYOUT)
</span><del>-        return adjustLayoutUnitForAbsoluteZoom(renderer-&gt;pixelSnappedClientHeight(), *renderer).round();
</del><ins>+        return convertToNonSubpixelValueIfNeeded(adjustLayoutUnitForAbsoluteZoom(renderer-&gt;clientHeight(), *renderer).toDouble(), renderer-&gt;document());
</ins><span class="cx"> #else
</span><del>-        return adjustForAbsoluteZoom(renderer-&gt;pixelSnappedClientHeight(), *renderer);
</del><ins>+        return adjustForAbsoluteZoom(renderer-&gt;clientHeight(), *renderer);
</ins><span class="cx"> #endif
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::scrollLeft()
</del><ins>+double Element::scrollLeft()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="lines">@@ -792,7 +806,7 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::scrollTop()
</del><ins>+double Element::scrollTop()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="lines">@@ -801,29 +815,29 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Element::setScrollLeft(int newLeft)
</del><ins>+void Element::setScrollLeft(double newLeft)
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     if (RenderBox* renderer = renderBox()) {
</span><del>-        renderer-&gt;setScrollLeft(static_cast&lt;int&gt;(newLeft * renderer-&gt;style().effectiveZoom()));
</del><ins>+        renderer-&gt;setScrollLeft(round(newLeft * renderer-&gt;style().effectiveZoom()));
</ins><span class="cx">         if (auto* scrollableArea = renderer-&gt;layer())
</span><span class="cx">             scrollableArea-&gt;setScrolledProgrammatically(true);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Element::setScrollTop(int newTop)
</del><ins>+void Element::setScrollTop(double newTop)
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     if (RenderBox* renderer = renderBox()) {
</span><del>-        renderer-&gt;setScrollTop(static_cast&lt;int&gt;(newTop * renderer-&gt;style().effectiveZoom()));
</del><ins>+        renderer-&gt;setScrollTop(round(newTop * renderer-&gt;style().effectiveZoom()));
</ins><span class="cx">         if (auto* scrollableArea = renderer-&gt;layer())
</span><span class="cx">             scrollableArea-&gt;setScrolledProgrammatically(true);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::scrollWidth()
</del><ins>+double Element::scrollWidth()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     if (RenderBox* rend = renderBox())
</span><span class="lines">@@ -831,7 +845,7 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Element::scrollHeight()
</del><ins>+double Element::scrollHeight()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     if (RenderBox* rend = renderBox())
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/dom/Element.h        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -206,26 +206,26 @@
</span><span class="cx">     void scrollByLines(int lines);
</span><span class="cx">     void scrollByPages(int pages);
</span><span class="cx"> 
</span><del>-    int offsetLeft();
-    int offsetTop();
-    int offsetWidth();
-    int offsetHeight();
</del><ins>+    double offsetLeft();
+    double offsetTop();
+    double offsetWidth();
+    double offsetHeight();
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Replace uses of offsetParent in the platform with calls
</span><span class="cx">     // to the render layer and merge bindingsOffsetParent and offsetParent.
</span><span class="cx">     Element* bindingsOffsetParent();
</span><span class="cx"> 
</span><span class="cx">     Element* offsetParent();
</span><del>-    int clientLeft();
-    int clientTop();
-    int clientWidth();
-    int clientHeight();
-    virtual int scrollLeft();
-    virtual int scrollTop();
-    virtual void setScrollLeft(int);
-    virtual void setScrollTop(int);
-    virtual int scrollWidth();
-    virtual int scrollHeight();
</del><ins>+    double clientLeft();
+    double clientTop();
+    double clientWidth();
+    double clientHeight();
+    virtual double scrollLeft();
+    virtual double scrollTop();
+    virtual void setScrollLeft(double);
+    virtual void setScrollTop(double);
+    virtual double scrollWidth();
+    virtual double scrollHeight();
</ins><span class="cx"> 
</span><span class="cx">     IntRect boundsInRootViewSpace();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.idl (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.idl        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/dom/Element.idl        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -69,11 +69,11 @@
</span><span class="cx"> 
</span><span class="cx">     // Common extensions
</span><span class="cx"> 
</span><ins>+#if defined(LANGUAGE_OBJECTIVE_C) &amp;&amp; LANGUAGE_OBJECTIVE_C
</ins><span class="cx">     readonly attribute long offsetLeft;
</span><span class="cx">     readonly attribute long offsetTop;
</span><span class="cx">     readonly attribute long offsetWidth;
</span><span class="cx">     readonly attribute long offsetHeight;
</span><del>-    [ImplementedAs=bindingsOffsetParent] readonly attribute Element offsetParent;
</del><span class="cx">     readonly attribute long clientLeft;
</span><span class="cx">     readonly attribute long clientTop;
</span><span class="cx">     readonly attribute long clientWidth;
</span><span class="lines">@@ -82,7 +82,23 @@
</span><span class="cx">     attribute long scrollTop;
</span><span class="cx">     readonly attribute long scrollWidth;
</span><span class="cx">     readonly attribute long scrollHeight;
</span><ins>+#else
+    readonly attribute double offsetLeft;
+    readonly attribute double offsetTop;
+    readonly attribute double offsetWidth;
+    readonly attribute double offsetHeight;
+    readonly attribute double clientLeft;
+    readonly attribute double clientTop;
+    readonly attribute double clientWidth;
+    readonly attribute double clientHeight;
+    attribute double scrollLeft;
+    attribute double scrollTop;
+    readonly attribute double scrollWidth;
+    readonly attribute double scrollHeight;
+#endif
</ins><span class="cx"> 
</span><ins>+    [ImplementedAs=bindingsOffsetParent] readonly attribute Element offsetParent;
+
</ins><span class="cx">     void focus();
</span><span class="cx">     void blur();
</span><span class="cx">     void scrollIntoView(optional boolean alignWithTop);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBodyElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBodyElement.cpp (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBodyElement.cpp        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/html/HTMLBodyElement.cpp        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -198,18 +198,18 @@
</span><span class="cx">     return hasEditableStyle() || HTMLElement::supportsFocus();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static int adjustForZoom(int value, Frame&amp; frame)
</del><ins>+static double adjustForZoom(int value, const Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    float zoomFactor = frame.pageZoomFactor() * frame.frameScaleFactor();
</del><ins>+    double zoomFactor = frame.pageZoomFactor() * frame.frameScaleFactor();
</ins><span class="cx">     if (zoomFactor == 1)
</span><span class="cx">         return value;
</span><span class="cx">     // Needed because of truncation (rather than rounding) when scaling up.
</span><span class="cx">     if (zoomFactor &gt; 1)
</span><span class="cx">         value++;
</span><del>-    return static_cast&lt;int&gt;(value / zoomFactor);
</del><ins>+    return value / zoomFactor;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-int HTMLBodyElement::scrollLeft()
</del><ins>+double HTMLBodyElement::scrollLeft()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     Frame* frame = document().frame();
</span><span class="lines">@@ -218,10 +218,10 @@
</span><span class="cx">     FrameView* view = frame-&gt;view();
</span><span class="cx">     if (!view)
</span><span class="cx">         return 0;
</span><del>-    return adjustForZoom(view-&gt;contentsScrollPosition().x(), *frame);
</del><ins>+    return floor(adjustForZoom(view-&gt;contentsScrollPosition().x(), *frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void HTMLBodyElement::setScrollLeft(int scrollLeft)
</del><ins>+void HTMLBodyElement::setScrollLeft(double scrollLeft)
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     Frame* frame = document().frame();
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx">     view-&gt;setScrollPosition(IntPoint(static_cast&lt;int&gt;(scrollLeft * frame-&gt;pageZoomFactor() * frame-&gt;frameScaleFactor()), view-&gt;scrollY()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int HTMLBodyElement::scrollTop()
</del><ins>+double HTMLBodyElement::scrollTop()
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     Frame* frame = document().frame();
</span><span class="lines">@@ -242,10 +242,10 @@
</span><span class="cx">     FrameView* view = frame-&gt;view();
</span><span class="cx">     if (!view)
</span><span class="cx">         return 0;
</span><del>-    return adjustForZoom(view-&gt;contentsScrollPosition().y(), *frame);
</del><ins>+    return floor(adjustForZoom(view-&gt;contentsScrollPosition().y(), *frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void HTMLBodyElement::setScrollTop(int scrollTop)
</del><ins>+void HTMLBodyElement::setScrollTop(double scrollTop)
</ins><span class="cx"> {
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     Frame* frame = document().frame();
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">     view-&gt;setScrollPosition(IntPoint(view-&gt;scrollX(), static_cast&lt;int&gt;(scrollTop * frame-&gt;pageZoomFactor() * frame-&gt;frameScaleFactor())));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int HTMLBodyElement::scrollHeight()
</del><ins>+double HTMLBodyElement::scrollHeight()
</ins><span class="cx"> {
</span><span class="cx">     // Update the document's layout.
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="lines">@@ -267,10 +267,10 @@
</span><span class="cx">     FrameView* view = frame-&gt;view();
</span><span class="cx">     if (!view)
</span><span class="cx">         return 0;
</span><del>-    return adjustForZoom(view-&gt;contentsHeight(), *frame);
</del><ins>+    return floor(adjustForZoom(view-&gt;contentsHeight(), *frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-int HTMLBodyElement::scrollWidth()
</del><ins>+double HTMLBodyElement::scrollWidth()
</ins><span class="cx"> {
</span><span class="cx">     // Update the document's layout.
</span><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx">     FrameView* view = frame-&gt;view();
</span><span class="cx">     if (!view)
</span><span class="cx">         return 0;
</span><del>-    return adjustForZoom(view-&gt;contentsWidth(), *frame);
</del><ins>+    return floor(adjustForZoom(view-&gt;contentsWidth(), *frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLBodyElement::addSubresourceAttributeURLs(ListHashSet&lt;URL&gt;&amp; urls) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBodyElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBodyElement.h (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBodyElement.h        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/html/HTMLBodyElement.h        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -69,14 +69,14 @@
</span><span class="cx">     
</span><span class="cx">     virtual bool supportsFocus() const override;
</span><span class="cx"> 
</span><del>-    virtual int scrollLeft() override;
-    virtual void setScrollLeft(int scrollLeft) override;
</del><ins>+    virtual double scrollLeft() override;
+    virtual void setScrollLeft(double) override;
</ins><span class="cx">     
</span><del>-    virtual int scrollTop() override;
-    virtual void setScrollTop(int scrollTop) override;
</del><ins>+    virtual double scrollTop() override;
+    virtual void setScrollTop(double) override;
</ins><span class="cx">     
</span><del>-    virtual int scrollHeight() override;
-    virtual int scrollWidth() override;
</del><ins>+    virtual double scrollHeight() override;
+    virtual double scrollWidth() override;
</ins><span class="cx">     
</span><span class="cx">     virtual void addSubresourceAttributeURLs(ListHashSet&lt;URL&gt;&amp;) const override;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.in (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.in        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebCore/page/Settings.in        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -194,6 +194,8 @@
</span><span class="cx"> simpleLineLayoutEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
</span><span class="cx"> simpleLineLayoutDebugBordersEnabled initial=false, setNeedsStyleRecalcInAllFrames=1
</span><span class="cx"> 
</span><ins>+subpixelCSSOMElementMetricsEnabled initial=true
+
</ins><span class="cx"> mediaSourceEnabled initial=true, conditional=MEDIA_SOURCE
</span><span class="cx"> 
</span><span class="cx"> # FIXME: Rename to allowMultiElementImplicitFormSubmission once we upstream the iOS changes to WebView.mm.
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebKit2/ChangeLog        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2014-05-14  Zalan Bujtas  &lt;zalan@apple.com&gt;
+
+        Subpixel layout: Change Element.offset* client* scroll* return type to double.
+        https://bugs.webkit.org/show_bug.cgi?id=132895
+
+        Reviewed by Simon Fraser.
+
+        This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
+        type from long to double to match the latest CSSOM View Module spec[1].
+        Element.offset* and Element.client* do return subpixel values from now on.
+        Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
+
+        subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
+        from WK2 preferences. It toggles the return value from subpixel to floored integral.
+        It does not change layout/rendering behavior.
+
+        Reference list of what other browsers do:
+        IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
+        Blink: http://www.chromestatus.com/features/5497402177880064
+        Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
+
+        [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
+
+        * Shared/WebPreferencesStore.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetSubpixelCSSOMElementMetricsEnabled):
+        (WKPreferencesGetSubpixelCSSOMElementMetricsEnabled):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
</ins><span class="cx"> 2014-05-14  Benjamin Poulain  &lt;bpoulain@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS][WK2] Expose the viewport meta tag width on the UIProcess
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -203,6 +203,7 @@
</span><span class="cx">     macro(ThreadedScrollingEnabled, threadedScrollingEnabled, Bool, bool, true) \
</span><span class="cx">     macro(SimpleLineLayoutEnabled, simpleLineLayoutEnabled, Bool, bool, true) \
</span><span class="cx">     macro(SimpleLineLayoutDebugBordersEnabled, simpleLineLayoutDebugBordersEnabled, Bool, bool, false) \
</span><ins>+    macro(SubpixelCSSOMElementMetricsEnabled, subpixelCSSOMElementMetricsEnabled, Bool, bool, true) \
</ins><span class="cx">     macro(BackgroundShouldExtendBeyondPage, backgroundShouldExtendBeyondPage, Bool, bool, false) \
</span><span class="cx">     macro(MediaStreamEnabled, mediaStreamEnabled, Bool, bool, false) \
</span><span class="cx">     macro(UseLegacyTextAlignPositionedElementBehavior, useLegacyTextAlignPositionedElementBehavior, Bool, bool, false) \
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -1186,6 +1186,16 @@
</span><span class="cx">     return toImpl(preferencesRef)-&gt;simpleLineLayoutDebugBordersEnabled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WKPreferencesSetSubpixelCSSOMElementMetricsEnabled(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)-&gt;setSubpixelCSSOMElementMetricsEnabled(flag);
+}
+
+bool WKPreferencesGetSubpixelCSSOMElementMetricsEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)-&gt;subpixelCSSOMElementMetricsEnabled();
+}
+
</ins><span class="cx"> void WKPreferencesSetMediaStreamEnabled(WKPreferencesRef preferencesRef, bool enabled)
</span><span class="cx"> {
</span><span class="cx">     toImpl(preferencesRef)-&gt;setMediaStreamEnabled(enabled);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -296,6 +296,10 @@
</span><span class="cx"> WK_EXPORT void WKPreferencesSetSimpleLineLayoutDebugBordersEnabled(WKPreferencesRef, bool);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetSimpleLineLayoutDebugBordersEnabled(WKPreferencesRef);
</span><span class="cx"> 
</span><ins>+// Defaults to true.
+WK_EXPORT void WKPreferencesSetSubpixelCSSOMElementMetricsEnabled(WKPreferencesRef, bool);
+WK_EXPORT bool WKPreferencesGetSubpixelCSSOMElementMetricsEnabled(WKPreferencesRef);
+
</ins><span class="cx"> WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
</span><span class="cx"> 
</span><span class="cx"> // Defaults to false.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (168867 => 168868)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-05-14 22:56:34 UTC (rev 168867)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-05-14 23:13:52 UTC (rev 168868)
</span><span class="lines">@@ -2688,6 +2688,8 @@
</span><span class="cx">     settings.setSimpleLineLayoutEnabled(store.getBoolValueForKey(WebPreferencesKey::simpleLineLayoutEnabledKey()));
</span><span class="cx">     settings.setSimpleLineLayoutDebugBordersEnabled(store.getBoolValueForKey(WebPreferencesKey::simpleLineLayoutDebugBordersEnabledKey()));
</span><span class="cx"> 
</span><ins>+    settings.setSubpixelCSSOMElementMetricsEnabled(store.getBoolValueForKey(WebPreferencesKey::subpixelCSSOMElementMetricsEnabledKey()));
+
</ins><span class="cx">     settings.setUseLegacyTextAlignPositionedElementBehavior(store.getBoolValueForKey(WebPreferencesKey::useLegacyTextAlignPositionedElementBehaviorKey()));
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span></span></pre>
</div>
</div>

</body>
</html>