<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>110753</bug_id>
          
          <creation_ts>2013-02-25 06:36:39 -0800</creation_ts>
          <short_desc>[WK2][EFL] WebView should own view size</short_desc>
          <delta_ts>2013-04-04 03:46:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107657</blocked>
    
    <blocked>107662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>840929</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-25 06:36:39 -0800</bug_when>
    <thetext>At the moment the view size is contained within EwkView class and WebView has to call EwkView method to know its size which is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841767</commentid>
    <comment_count>1</comment_count>
      <attachid>190235</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-26 01:13:58 -0800</bug_when>
    <thetext>Created attachment 190235
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841791</commentid>
    <comment_count>2</comment_count>
      <attachid>190241</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-26 01:46:08 -0800</bug_when>
    <thetext>Created attachment 190241
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841820</commentid>
    <comment_count>3</comment_count>
      <attachid>190241</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-26 02:30:22 -0800</bug_when>
    <thetext>Comment on attachment 190241
patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848625</commentid>
    <comment_count>4</comment_count>
      <attachid>191685</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-06 01:30:24 -0800</bug_when>
    <thetext>Created attachment 191685
patch v2

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848629</commentid>
    <comment_count>5</comment_count>
      <attachid>191685</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-06 01:33:34 -0800</bug_when>
    <thetext>Comment on attachment 191685
patch v2

So, I would say that these should take values in UI units (ie not physical ones) so it should be able to test this by setting setDeviceScaleFactor somehow.

Can we have a unit test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848640</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-06 01:48:41 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 191685 [details])
&gt; So, I would say that these should take values in UI units (ie not physical ones) so it should be able to test this by setting setDeviceScaleFactor somehow.
&gt; 
&gt; Can we have a unit test?

I&apos;d say layout tests would be more helpful there rather than unit tests,   thing to be tested is how page is looking if device scale factor is changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854120</commentid>
    <comment_count>7</comment_count>
      <attachid>191685</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-13 01:33:35 -0700</bug_when>
    <thetext>Comment on attachment 191685
patch v2

View in context: https://bugs.webkit.org/attachment.cgi?id=191685&amp;action=review

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:282
&gt; +    return size();

LGTM without one point.

It should return the size in ui units, because WebView now deal with m_size in device units.
FloatSize dipSize(m_size);
dipSize.scale(1 / page()-&gt;deviceScaleFactor());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854121</commentid>
    <comment_count>8</comment_count>
      <attachid>191685</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-13 01:40:12 -0700</bug_when>
    <thetext>Comment on attachment 191685
patch v2

View in context: https://bugs.webkit.org/attachment.cgi?id=191685&amp;action=review

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.h:134
&gt; +    WebCore::IntSize size() const;

Could you rebase to upstream?
Currently, there is two methods: size() and deviceSize(). ui units and device units respectively.

Your patch moves role dealing with device size to WebView. and you need to reserve carefully the behavior on each sites using either two methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854165</commentid>
    <comment_count>9</comment_count>
      <attachid>192891</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-13 03:00:44 -0700</bug_when>
    <thetext>Created attachment 192891
patch v3

Rebased. Took comments from Dongsung Huang into consideration - thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854829</commentid>
    <comment_count>10</comment_count>
      <attachid>192891</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-03-13 18:04:08 -0700</bug_when>
    <thetext>Comment on attachment 192891
patch v3

View in context: https://bugs.webkit.org/attachment.cgi?id=192891&amp;action=review

LGTM. I add some comments.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:471
&gt;  IntSize EwkView::size() const

I think size() and deviceSize() can be private now.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1104
&gt; +        if (WKPageUseFixedLayout(self-&gt;wkPage()))

It is not needed because WebView::setSize already call WebView::updateViewportSize().

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:-199
&gt; -    if (m_page-&gt;useFixedLayout()) {

Could you explain why this code is moved to EwkView::handleEvasObjectCalculate?
Previously if there is pageViewportController, we skipped notifying to drawing area, but now the behavior is changed.

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:527
&gt; +inline WebCore::FloatSize WebView::dipSize() const

How about uiSize because we already used uiSize as a local variable in EwkView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855123</commentid>
    <comment_count>11</comment_count>
      <attachid>192891</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-14 03:57:45 -0700</bug_when>
    <thetext>Comment on attachment 192891
patch v3

View in context: https://bugs.webkit.org/attachment.cgi?id=192891&amp;action=review

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1104
&gt;&gt; +        if (WKPageUseFixedLayout(self-&gt;wkPage()))
&gt; 
&gt; It is not needed because WebView::setSize already call WebView::updateViewportSize().

WebView is not aware of pageViewportController(), so it is needed.

&gt;&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:-199
&gt;&gt; -    if (m_page-&gt;useFixedLayout()) {
&gt; 
&gt; Could you explain why this code is moved to EwkView::handleEvasObjectCalculate?
&gt; Previously if there is pageViewportController, we skipped notifying to drawing area, but now the behavior is changed.

Well actually we notified drawing area, as viewportcontroller invokes drawingArea()-&gt;setSize(roundedIntSize(newSize), IntSize()); plus it updates its internal state.

The reason for moving is fixing of API layering: WebView should not access viewport controller directly.

&gt;&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:527
&gt;&gt; +inline WebCore::FloatSize WebView::dipSize() const
&gt; 
&gt; How about uiSize because we already used uiSize as a local variable in EwkView.

mmm.. I&apos;d say dip size is clearer (ui size might mean that page scale factor is also taken for calculation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855242</commentid>
    <comment_count>12</comment_count>
      <attachid>193135</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-14 09:17:07 -0700</bug_when>
    <thetext>Created attachment 193135
patch v4

Made EwkView size getters private as was pointed out by Dongsung Huang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855469</commentid>
    <comment_count>13</comment_count>
      <attachid>193135</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-14 13:58:25 -0700</bug_when>
    <thetext>Comment on attachment 193135
patch v4

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859265</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-20 04:50:28 -0700</bug_when>
    <thetext>Ping owner review/sign off?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869084</commentid>
    <comment_count>15</comment_count>
      <attachid>193135</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-04 03:03:09 -0700</bug_when>
    <thetext>Comment on attachment 193135
patch v4

Rejecting attachment 193135 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 193135, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
ffset 12 lines).
Hunk #5 succeeded at 544 (offset 20 lines).
patching file Source/WebKit2/UIProcess/efl/WebView.h
Hunk #1 succeeded at 57 (offset 2 lines).
Hunk #2 succeeded at 92 (offset 2 lines).
Hunk #3 FAILED at 98.
Hunk #4 FAILED at 175.
2 out of 4 hunks FAILED -- saving rejects to file Source/WebKit2/UIProcess/efl/WebView.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Andreas Kling&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17418080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869095</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-04-04 03:46:27 -0700</bug_when>
    <thetext>Committed r147617: &lt;http://trac.webkit.org/changeset/147617&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190235</attachid>
            <date>2013-02-26 01:13:58 -0800</date>
            <delta_ts>2013-02-26 01:46:08 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug110753</filename>
            <type>text/plain</type>
            <size>6571</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGFhODIzNDk4YmEyMmNjMTAxYTRiOGM4Yjc4YzY0ZDY3YWI5YjdiNTIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxMTowODowMyAyMDEzICswMjAwCgogICAgYnVnMTEwNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IDE3NzkxMWYuLjk5
YmEyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5j
cHAKQEAgLTUzLDYgKzUzLDE2IEBAIHZvaWQgV0tWaWV3SW5pdGlhbGl6ZShXS1ZpZXdSZWYgdmll
d1JlZikKICAgICB0b0ltcGwodmlld1JlZiktPmluaXRpYWxpemUoKTsKIH0KIAorV0tTaXplIFdL
Vmlld0dldFNpemUoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1w
bCh2aWV3UmVmKS0+c2l6ZSgpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRTaXplKFdLVmlld1JlZiB2
aWV3UmVmLCBXS1NpemUgc2l6ZSkKK3sKKyAgICB0b0ltcGwodmlld1JlZiktPnNldFNpemUodG9J
bnRTaXplKHNpemUpKTsKK30KKwogdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiB2
aWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnQqIGNsaWVudCkKIHsKICAgICB0b0ltcGwodmlld1Jl
ZiktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLVmlldy5oCmluZGV4IDczNDU1NjYuLjc1MzEzNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaApAQCAtNTgsNiArNTgsMTAgQEAgV0tf
RVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tQYWdlR3JvdXAKIFdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0
aEZpeGVkTGF5b3V0KEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLVmlld0luaXRpYWxpemUoV0tW
aWV3UmVmKTsKKworV0tfRVhQT1JUIFdLU2l6ZSBXS1ZpZXdHZXRTaXplKFdLVmlld1JlZik7CitX
S19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRTaXplKFdLVmlld1JlZiwgV0tTaXplIHNpemUpOworCiBX
S19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tWaWV3
Q2xpZW50Kik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLVmlld1NldFVzZXJWaWV3cG9ydFRyYW5zbGF0
aW9uKFdLVmlld1JlZiwgZG91YmxlIHR4LCBkb3VibGUgdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA4ZjM0MzliLi4wMzE5MzU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNDYwLDE2
ICs0NjAsOSBAQCBmbG9hdCBFd2tWaWV3OjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAgICAg
cmV0dXJuIFdLUGFnZUdldEJhY2tpbmdTY2FsZUZhY3Rvcih3a1BhZ2UoKSk7CiB9CiAKLXZvaWQg
RXdrVmlldzo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQorV2ViQ29yZTo6SW50U2l6ZSBF
d2tWaWV3OjpzaXplKCkgY29uc3QKIHsKLSAgICBtX3NpemUgPSBzaXplOwotCi0gICAgRHJhd2lu
Z0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdlKCktPmRyYXdpbmdBcmVhKCk7Ci0gICAgaWYg
KCFkcmF3aW5nQXJlYSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZHJhd2luZ0FyZWEtPnNldFNp
emUobV9zaXplLCBJbnRTaXplKCkpOwotICAgIHdlYlZpZXcoKS0+dXBkYXRlVmlld3BvcnRTaXpl
KCk7CisgICAgcmV0dXJuIHRvSW50U2l6ZShXS1ZpZXdHZXRTaXplKHdrVmlldygpKSk7CiB9CiAK
IEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjcmVlbigpIGNvbnN0CkBAIC0x
MTAyLDcgKzEwOTUsMTQgQEAgdm9pZCBFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRl
KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdp
ZHRoOwogICAgICAgICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKIAotICAgICAgICBzZWxm
LT5zZXRTaXplKEludFNpemUod2lkdGgsIGhlaWdodCkpOworICAgICAgICBXS1ZpZXdTZXRTaXpl
KHNlbGYtPndrVmlldygpLCBXS1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgaWYg
KFdLUGFnZVVzZUZpeGVkTGF5b3V0KHNlbGYtPndrUGFnZSgpKSkgeworICAgICAgICAgICAgRmxv
YXRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICAvLyBUaGUgdmlld3BvcnQg
Y29udHJvbGxlciBleHBlY3RzIHNpemVzIGluIFVJIHVuaXRzLCBhbmQgbm90IHJhdyBkZXZpY2Ug
dW5pdHMuCisgICAgICAgICAgICBzaXplLnNjYWxlKDEgLyBzZWxmLT5kZXZpY2VTY2FsZUZhY3Rv
cigpKTsKKyAgICAgICAgICAgIHNlbGYtPnBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoKS0+ZGlkQ2hh
bmdlVmlld3BvcnRTaXplKHNpemUpOworICAgICAgICB9CisKICAgICAgICAgc2VsZi0+c2V0TmVl
ZHNTdXJmYWNlUmVzaXplKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5oCmluZGV4IDcxZGFkMmQuLjc1YmJmNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTEzMSw4ICsxMzEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSk7CiAgICAgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJik7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3Q7CiAKICAgICBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtVG9TY3JlZW4oKSBjb25zdDsKIApAQCAt
MjU1LDcgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwog
ICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKICAgICBP
d25QdHI8V2ViS2l0OjpFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1cmZhY2U7Ci0gICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX3NpemU7CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91
c2VyVmlld3BvcnRUcmFuc2Zvcm07CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwog
ICAgIFJlZlB0cjxXZWJLaXQ6OldlYlZpZXc+IG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlZpZXcuY3BwCmluZGV4IDJhM2FhOWMuLmUxYjIyZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcApAQCAtODMsNiArODMsMTMgQEAgdm9pZCBX
ZWJWaWV3Ojppbml0aWFsaXplKCkKICAgICAgICAgc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKIH0K
IAordm9pZCBXZWJWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7
CisgICAgbV9zaXplID0gc2l6ZTsKKworICAgIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOworfQorCiB2
b2lkIFdlYlZpZXc6OnNldFVzZXJWaWV3cG9ydFRyYW5zbGF0aW9uKGRvdWJsZSB0eCwgZG91Ymxl
IHR5KQogewogICAgIG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtID0gVHJhbnNmb3JtYXRpb25NYXRy
aXgoKS50cmFuc2xhdGUodHgsIHR5KTsKQEAgLTE5NiwxNCArMjAzLDEyIEBAIHZvaWQgV2ViVmll
dzo6ZGlkQ29tbWl0TG9hZCgpCiAKIHZvaWQgV2ViVmlldzo6dXBkYXRlVmlld3BvcnRTaXplKCkK
IHsKLSAgICBpZiAobV9wYWdlLT51c2VGaXhlZExheW91dCgpKSB7Ci0gICAgICAgIEZsb2F0U2l6
ZSBzaXplID0gbV9ld2tWaWV3LT5zaXplKCk7Ci0gICAgICAgIC8vIFRoZSB2aWV3cG9ydCBjb250
cm9sbGVyIGV4cGVjdHMgc2l6ZXMgaW4gVUkgdW5pdHMsIGFuZCBub3QgcmF3IGRldmljZSB1bml0
cy4KLSAgICAgICAgc2l6ZS5zY2FsZSgxIC8gbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsK
LSAgICAgICAgbV9ld2tWaWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCktPmRpZENoYW5nZVZp
ZXdwb3J0U2l6ZShzaXplKTsKKyAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHBh
Z2UoKS0+ZHJhd2luZ0FyZWEoKTsKKyAgICBpZiAoIWRyYXdpbmdBcmVhKQogICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChJbnRSZWN0KHJvdW5kZWRJbnRQb2ludChtX2V3a1ZpZXctPnBhZ2VQb3NpdGlvbigpKSwg
bV9ld2tWaWV3LT5zaXplKCkpLCBGbG9hdFBvaW50KCkpOworCisgICAgZHJhd2luZ0FyZWEtPnNl
dFNpemUobV9zaXplLCBJbnRTaXplKCkpOworICAgIGRyYXdpbmdBcmVhLT5zZXRWaXNpYmxlQ29u
dGVudHNSZWN0KEludFJlY3Qocm91bmRlZEludFBvaW50KG1fZXdrVmlldy0+cGFnZVBvc2l0aW9u
KCkpLCBtX3NpemUpLCBGbG9hdFBvaW50KCkpOwogfQogCiB2b2lkIFdlYlZpZXc6OmRpZENoYW5n
ZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRleCA0MmM4ZDEzLi5lNjcyYzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGluaXRpYWxpemUoKTsKIAorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJik7CisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZTsgfQorCiAgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihk
b3VibGUgdHgsIGRvdWJsZSB0eSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgdXNlclZpZXdwb3J0
VG9Db250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCkBAIC04Nyw4ICs5
MCw3IEBAIHB1YmxpYzoKICAgICBFdmFzX09iamVjdCogZXZhc09iamVjdCgpOwogICAgIFdlYlBh
Z2VQcm94eSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRD
b21taXRMb2FkKCk7Ci0gICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICB2b2lkIGRp
ZENvbW1pdExvYWQoKTsgICAgCiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOwogCiAgICAgLy8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0
ZSB3aGVuIFdlYiBFdmVudHMgY3JlYXRpb24gaXMgbW92ZWQgdG8gV2ViVmlldy4KQEAgLTk2LDYg
Kzk4LDggQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1U
b1NjZW5lKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUo
KTsKKwogICAgIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogY29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lKCk7CiAKICAgICAvLyBQYWdlQ2xpZW50CkBAIC0xNzksNiArMTgzLDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAgICAgRGVmYXVsdFVu
ZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRp
b25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07CisgICAgV2ViQ29yZTo6SW50U2l6ZSBt
X3NpemU7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190241</attachid>
            <date>2013-02-26 01:46:08 -0800</date>
            <delta_ts>2013-03-06 01:30:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug110753</filename>
            <type>text/plain</type>
            <size>8605</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDNhM2NlNGMzZjk4N2FhYTI0OTkwYjc3ZTg1M2NlMTA1ZjE1ZmNlZWMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxMTo0MDoyMCAyMDEzICswMjAwCgogICAgYnVnMTEwNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGNhYTkyNzIuLjU4MmZjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0w
Mi0yNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIFdlYlZpZXcgc2hvdWxkIG93biB2aWV3IHNpemUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlZpZXcgb3ducyB2
aWV3IHNpemUuIFVzYWdlIG9mIEVGTC1zcGVjaWZpYyBld2tWaWV3IGluc2lkZSB0b29sa2l0LQor
ICAgICAgICBhZ25vc3RpYyBXZWJWaWV3IGNsYXNzIGlzIHJlZHVjZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdHZXRTaXplKToK
KyAgICAgICAgKFdLVmlld1NldFNpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAg
ICAgIChFd2tWaWV3OjpzaXplKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RD
YWxjdWxhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAg
ICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlldzo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Ojp1cGRhdGVWaWV3cG9ydFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3Ojp2aWV3U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3Lmg6Cisg
ICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2l6ZSk6CisKIDIw
MTMtMDItMjUgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAg
ICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IHJlbW92ZSByZWR1bmRhbnQgdXBkYXRlIG9mIG5v
biBjb21wb3NpdGluZyBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tWaWV3LmNwcAppbmRleCAxNzc5MTFmLi45OWJhMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCkBAIC01Myw2ICs1MywxNiBAQCB2b2lk
IFdLVmlld0luaXRpYWxpemUoV0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZpZXdSZWYp
LT5pbml0aWFsaXplKCk7CiB9CiAKK1dLU2l6ZSBXS1ZpZXdHZXRTaXplKFdLVmlld1JlZiB2aWV3
UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwodmlld1JlZiktPnNpemUoKSk7Cit9CisK
K3ZvaWQgV0tWaWV3U2V0U2l6ZShXS1ZpZXdSZWYgdmlld1JlZiwgV0tTaXplIHNpemUpCit7Cisg
ICAgdG9JbXBsKHZpZXdSZWYpLT5zZXRTaXplKHRvSW50U2l6ZShzaXplKSk7Cit9CisKIHZvaWQg
V0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50
KiBjbGllbnQpCiB7CiAgICAgdG9JbXBsKHZpZXdSZWYpLT5pbml0aWFsaXplQ2xpZW50KGNsaWVu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmll
dy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaAppbmRleCA3
MzQ1NTY2Li43NTMxMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmgKQEAgLTU4LDYgKzU4LDEwIEBAIFdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3Jl
YXRlKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGFnZUdyb3VwCiBXS19F
WFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhGaXhlZExheW91dChFdmFzKiBjYW52YXMs
IFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwogCiBXS19F
WFBPUlQgdm9pZCBXS1ZpZXdJbml0aWFsaXplKFdLVmlld1JlZik7CisKK1dLX0VYUE9SVCBXS1Np
emUgV0tWaWV3R2V0U2l6ZShXS1ZpZXdSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0U2l6
ZShXS1ZpZXdSZWYsIFdLU2l6ZSBzaXplKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmll
d0NsaWVudChXS1ZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCopOwogCiBXS19FWFBPUlQgdm9p
ZCBXS1ZpZXdTZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihXS1ZpZXdSZWYsIGRvdWJsZSB0eCwg
ZG91YmxlIHR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAKaW5kZXggOGYzNDM5Yi4uMDMxOTM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTQ2MCwxNiArNDYwLDkgQEAgZmxvYXQgRXdrVmlldzo6
ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBXS1BhZ2VHZXRCYWNraW5nU2Nh
bGVGYWN0b3Iod2tQYWdlKCkpOwogfQogCi12b2lkIEV3a1ZpZXc6OnNldFNpemUoY29uc3QgSW50
U2l6ZSYgc2l6ZSkKK1dlYkNvcmU6OkludFNpemUgRXdrVmlldzo6c2l6ZSgpIGNvbnN0CiB7Ci0g
ICAgbV9zaXplID0gc2l6ZTsKLQotICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0g
cGFnZSgpLT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKG1fc2l6ZSwgSW50U2l6ZSgpKTsKLSAg
ICB3ZWJWaWV3KCktPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOworICAgIHJldHVybiB0b0ludFNpemUo
V0tWaWV3R2V0U2l6ZSh3a1ZpZXcoKSkpOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6
dHJhbnNmb3JtVG9TY3JlZW4oKSBjb25zdApAQCAtMTEwMiw3ICsxMDk1LDE0IEBAIHZvaWQgRXdr
Vmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkK
ICAgICAgICAgc21hcnREYXRhLT52aWV3LncgPSB3aWR0aDsKICAgICAgICAgc21hcnREYXRhLT52
aWV3LmggPSBoZWlnaHQ7CiAKLSAgICAgICAgc2VsZi0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBo
ZWlnaHQpKTsKKyAgICAgICAgV0tWaWV3U2V0U2l6ZShzZWxmLT53a1ZpZXcoKSwgV0tTaXplTWFr
ZSh3aWR0aCwgaGVpZ2h0KSk7CisgICAgICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChzZWxm
LT53a1BhZ2UoKSkpIHsKKyAgICAgICAgICAgIEZsb2F0U2l6ZSBzaXplKHdpZHRoLCBoZWlnaHQp
OworICAgICAgICAgICAgLy8gVGhlIHZpZXdwb3J0IGNvbnRyb2xsZXIgZXhwZWN0cyBzaXplcyBp
biBVSSB1bml0cywgYW5kIG5vdCByYXcgZGV2aWNlIHVuaXRzLgorICAgICAgICAgICAgc2l6ZS5z
Y2FsZSgxIC8gc2VsZi0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgICAgICBzZWxmLT5w
YWdlVmlld3BvcnRDb250cm9sbGVyKCktPmRpZENoYW5nZVZpZXdwb3J0U2l6ZShzaXplKTsKKyAg
ICAgICAgfQorCiAgICAgICAgIHNlbGYtPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA3MWRh
ZDJkLi43NWJiZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCkBAIC0xMzEsOCArMTMxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVG
YWN0b3IoZmxvYXQgc2NhbGUpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7
CiAKLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIFdlYkNv
cmU6OkludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIFdlYkNvcmU6
OkludFNpemUgc2l6ZSgpIGNvbnN0OwogCiAgICAgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRy
YW5zZm9ybVRvU2NyZWVuKCkgY29uc3Q7CiAKQEAgLTI1NSw3ICsyNTQsNiBAQCBwcml2YXRlOgog
ICAgIE93blB0cjxFdmFzX0dMPiBtX2V2YXNHTDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xD
b250ZXh0PiBtX2V2YXNHTENvbnRleHQ7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dMU3VyZmFj
ZT4gbV9ldmFzR0xTdXJmYWNlOwotICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAg
IGJvb2wgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJWaWV3
PiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAppbmRl
eCAyYTNhYTljLi5mYzA1NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
dy5jcHAKQEAgLTgzLDYgKzgzLDEzIEBAIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZSgpCiAgICAg
ICAgIHNjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisKKyAg
ICB1cGRhdGVWaWV3cG9ydFNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3OjpzZXRVc2VyVmlld3Bv
cnRUcmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0eSkKIHsKICAgICBtX3VzZXJWaWV3cG9y
dFRyYW5zZm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKHR4LCB0eSk7CkBA
IC0xMDIsNyArMTA5LDcgQEAgdm9pZCBXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgp
CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2xlYW4gdXAgdGhpcyBjb2RlIGFzIGl0IGlzIHNw
bGl0IG92ZXIgQ29vcmRHZnggYW5kIFBhZ2UuCiAgICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3Vu
ZChtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpKTsKIAotICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9
IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3
a1ZpZXctPnNpemUoKSkpOworICAgIGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnQgPSBtX3VzZXJW
aWV3cG9ydFRyYW5zZm9ybS5tYXBSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgbV9zaXplKSk7CiAg
ICAgc2NlbmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybVRvU2NlbmUoKS50b1Ry
YW5zZm9ybWF0aW9uTWF0cml4KCksIC8qIG9wYWNpdHkgKi8gMSwgdmlld3BvcnQpOwogfQogCkBA
IC0xOTYsMTQgKzIwMywxMiBAQCB2b2lkIFdlYlZpZXc6OmRpZENvbW1pdExvYWQoKQogCiB2b2lk
IFdlYlZpZXc6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiB7Ci0gICAgaWYgKG1fcGFnZS0+dXNlRml4
ZWRMYXlvdXQoKSkgewotICAgICAgICBGbG9hdFNpemUgc2l6ZSA9IG1fZXdrVmlldy0+c2l6ZSgp
OwotICAgICAgICAvLyBUaGUgdmlld3BvcnQgY29udHJvbGxlciBleHBlY3RzIHNpemVzIGluIFVJ
IHVuaXRzLCBhbmQgbm90IHJhdyBkZXZpY2UgdW5pdHMuCi0gICAgICAgIHNpemUuc2NhbGUoMSAv
IG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIG1fZXdrVmlldy0+cGFnZVZp
ZXdwb3J0Q29udHJvbGxlcigpLT5kaWRDaGFuZ2VWaWV3cG9ydFNpemUoc2l6ZSk7CisgICAgRHJh
d2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdlKCktPmRyYXdpbmdBcmVhKCk7CisgICAg
aWYgKCFkcmF3aW5nQXJlYSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3BhZ2UtPmRy
YXdpbmdBcmVhKCktPnNldFZpc2libGVDb250ZW50c1JlY3QoSW50UmVjdChyb3VuZGVkSW50UG9p
bnQobV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSksIG1fZXdrVmlldy0+c2l6ZSgpKSwgRmxvYXRQ
b2ludCgpKTsKKworICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKG1fc2l6ZSwgSW50U2l6ZSgpKTsK
KyAgICBkcmF3aW5nQXJlYS0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChJbnRSZWN0KHJvdW5kZWRJ
bnRQb2ludChtX2V3a1ZpZXctPnBhZ2VQb3NpdGlvbigpKSwgbV9zaXplKSwgRmxvYXRQb2ludCgp
KTsKIH0KIAogdm9pZCBXZWJWaWV3OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2l6ZSkKQEAgLTI3MCw3ICsyNzUsNyBAQCB2b2lkIFdlYlZpZXc6OnNjcm9s
bFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50UwogCiBXZWJDb3JlOjpJbnRTaXplIFdlYlZpZXc6OnZpZXdTaXplKCkKIHsKLSAgICByZXR1
cm4gbV9ld2tWaWV3LT5zaXplKCk7CisgICAgcmV0dXJuIHNpemUoKTsKIH0KIAogYm9vbCBXZWJW
aWV3Ojppc1ZpZXdXaW5kb3dBY3RpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZp
ZXcuaAppbmRleCA0MmM4ZDEzLi5lNjcyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYlZpZXcuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxp
emUoKTsKIAorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQor
CiAgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0
eSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgdXNlclZpZXdwb3J0VG9Db250ZW50cyhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCkBAIC04Nyw4ICs5MCw3IEBAIHB1YmxpYzoKICAg
ICBFdmFzX09iamVjdCogZXZhc09iamVjdCgpOwogICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIHsg
cmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRDb21taXRMb2FkKCk7Ci0gICAg
dm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsgICAg
CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogCiAgICAgLy8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0ZSB3aGVuIFdlYiBFdmVudHMg
Y3JlYXRpb24gaXMgbW92ZWQgdG8gV2ViVmlldy4KQEAgLTk2LDYgKzk4LDggQEAgcHVibGljOgog
ICAgIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAK
IHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKwogICAgIFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7CiAK
ICAgICAvLyBQYWdlQ2xpZW50CkBAIC0xNzksNiArMTgzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5k
b0NvbnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmll
d3BvcnRUcmFuc2Zvcm07CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191685</attachid>
            <date>2013-03-06 01:30:24 -0800</date>
            <delta_ts>2013-03-13 03:00:44 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug110753_v2</filename>
            <type>text/plain</type>
            <size>9280</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDViODRjNDc4MTU2N2ZjOTRlZjZjOTYxYzUwMmEwYTY4ZDViN2VkNDYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxMTo0MDoyMCAyMDEzICswMjAwCgogICAgYnVnMTEwNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGJjODcwNjQuLjNkODBiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0w
Mi0yNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIFdlYlZpZXcgc2hvdWxkIG93biB2aWV3IHNpemUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDc1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlZpZXcgb3ducyB2
aWV3IHNpemUuIFVzYWdlIG9mIEVGTC1zcGVjaWZpYyBld2tWaWV3IGluc2lkZSB0b29sa2l0LQor
ICAgICAgICBhZ25vc3RpYyBXZWJWaWV3IGNsYXNzIGlzIHJlZHVjZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdHZXRTaXplKToK
KyAgICAgICAgKFdLVmlld1NldFNpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAg
ICAgIChFd2tWaWV3OjpzaXplKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RD
YWxjdWxhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAg
ICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldFNpemUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlldzo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Ojp1cGRhdGVWaWV3cG9ydFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3Ojp2aWV3U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3Lmg6Cisg
ICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2l6ZSk6CisKIDIw
MTMtMDMtMDUgIEtvbmRhcGFsbHkgS2FseWFuICA8a2FseWFuLmtvbmRhcGFsbHlAaW50ZWwuY29t
PgogCiAgICAgICAgIFtFRkxdIEVuc3VyZSByaWdodCBmb3JtYXQgaXMgdXNlZCBpbiBTbmFwc2hv
dEltYWdlR0wuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5j
cHAKaW5kZXggYTI0OTgyMC4uYzM3MDMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3LmNwcApAQCAtNTMsNiArNTMsMTYgQEAgdm9pZCBXS1ZpZXdJbml0
aWFsaXplKFdLVmlld1JlZiB2aWV3UmVmKQogICAgIHRvSW1wbCh2aWV3UmVmKS0+aW5pdGlhbGl6
ZSgpOwogfQogCitXS1NpemUgV0tWaWV3R2V0U2l6ZShXS1ZpZXdSZWYgdmlld1JlZikKK3sKKyAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKHZpZXdSZWYpLT5zaXplKCkpOworfQorCit2b2lkIFdLVmll
d1NldFNpemUoV0tWaWV3UmVmIHZpZXdSZWYsIFdLU2l6ZSBzaXplKQoreworICAgIHRvSW1wbCh2
aWV3UmVmKS0+c2V0U2l6ZSh0b0ludFNpemUoc2l6ZSkpOworfQorCiB2b2lkIFdLVmlld1NldFZp
ZXdDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCogY2xpZW50KQog
ewogICAgIHRvSW1wbCh2aWV3UmVmKS0+aW5pdGlhbGl6ZUNsaWVudChjbGllbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKaW5kZXggYTcwOWI0OC4uODg5
MTZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1Zp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCkBA
IC02Miw2ICs2MiwxMCBAQCBXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShFdmFzKiBj
YW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BhZ2VHcm91cAogV0tfRVhQT1JUIFdLVmll
d1JlZiBXS1ZpZXdDcmVhdGVXaXRoRml4ZWRMYXlvdXQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKIAogV0tfRVhQT1JUIHZvaWQg
V0tWaWV3SW5pdGlhbGl6ZShXS1ZpZXdSZWYpOworCitXS19FWFBPUlQgV0tTaXplIFdLVmlld0dl
dFNpemUoV0tWaWV3UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFNpemUoV0tWaWV3UmVm
LCBXS1NpemUgc2l6ZSk7CisKIFdLX0VYUE9SVCB2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tW
aWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnQqKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0
VXNlclZpZXdwb3J0VHJhbnNsYXRpb24oV0tWaWV3UmVmLCBkb3VibGUgdHgsIGRvdWJsZSB0eSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDE0
NjBiNzAuLjA1YzJkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCkBAIC00NTIsMTAgKzQ1MiwxMSBAQCB2b2lkIEV3a1ZpZXc6OnNldEN1cnNvcihj
b25zdCBDdXJzb3ImIGN1cnNvcikKIAogdm9pZCBFd2tWaWV3OjpzZXREZXZpY2VTY2FsZUZhY3Rv
cihmbG9hdCBzY2FsZSkKIHsKKyAgICBjb25zdCBXS1NpemUmIHNpemUgPSBXS1ZpZXdHZXRTaXpl
KHdrVmlldygpKTsKICAgICBwYWdlKCktPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKHNj
YWxlKTsKIAogICAgIC8vIFVwZGF0ZSBpbnRlcm5hbCB2aWV3cG9ydCBzaXplIGFmdGVyIGRldmlj
ZS1zY2FsZSBjaGFuZ2UuCi0gICAgc2V0U2l6ZShtX3NpemUpOworICAgIFdLVmlld1NldFNpemUo
d2tWaWV3KCksIHNpemUpOwogfQogCiBmbG9hdCBFd2tWaWV3OjpkZXZpY2VTY2FsZUZhY3Rvcigp
IGNvbnN0CkBAIC00NjMsMTkgKzQ2NCw5IEBAIGZsb2F0IEV3a1ZpZXc6OmRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QKICAgICByZXR1cm4gV0tQYWdlR2V0QmFja2luZ1NjYWxlRmFjdG9yKHdrUGFn
ZSgpKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCitX
ZWJDb3JlOjpJbnRTaXplIEV3a1ZpZXc6OnNpemUoKSBjb25zdAogewotICAgIG1fc2l6ZSA9IHNp
emU7Ci0KLSAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IHBhZ2UoKS0+ZHJhd2lu
Z0FyZWEoKTsKLSAgICBpZiAoIWRyYXdpbmdBcmVhKQotICAgICAgICByZXR1cm47Ci0KLSAgICBG
bG9hdFNpemUgZGlwU2l6ZShtX3NpemUpOwotICAgIC8vIFdlYiBQcm9jZXNzIGV4cGVjdHMgc2l6
ZXMgaW4gVUkgdW5pdHMsIGFuZCBub3QgcmF3IGRldmljZSB1bml0cy4KLSAgICBkaXBTaXplLnNj
YWxlKDEgLyBkZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBkcmF3aW5nQXJlYS0+c2V0U2l6ZShy
b3VuZGVkSW50U2l6ZShkaXBTaXplKSwgSW50U2l6ZSgpKTsKLSAgICB3ZWJWaWV3KCktPnVwZGF0
ZVZpZXdwb3J0U2l6ZSgpOworICAgIHJldHVybiB0b0ludFNpemUoV0tWaWV3R2V0U2l6ZSh3a1Zp
ZXcoKSkpOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6dHJhbnNmb3JtVG9TY3JlZW4o
KSBjb25zdApAQCAtMTEwOCw3ICsxMDk5LDE0IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09i
amVjdENhbGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAgICAgc21hcnREYXRh
LT52aWV3LncgPSB3aWR0aDsKICAgICAgICAgc21hcnREYXRhLT52aWV3LmggPSBoZWlnaHQ7CiAK
LSAgICAgICAgc2VsZi0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAg
V0tWaWV3U2V0U2l6ZShzZWxmLT53a1ZpZXcoKSwgV0tTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KSk7
CisgICAgICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChzZWxmLT53a1BhZ2UoKSkpIHsKKyAg
ICAgICAgICAgIEZsb2F0U2l6ZSBzaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgLy8g
VGhlIHZpZXdwb3J0IGNvbnRyb2xsZXIgZXhwZWN0cyBzaXplcyBpbiBVSSB1bml0cywgYW5kIG5v
dCByYXcgZGV2aWNlIHVuaXRzLgorICAgICAgICAgICAgc2l6ZS5zY2FsZSgxIC8gc2VsZi0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgICAgICBzZWxmLT5wYWdlVmlld3BvcnRDb250cm9s
bGVyKCktPmRpZENoYW5nZVZpZXdwb3J0U2l6ZShzaXplKTsKKyAgICAgICAgfQorCiAgICAgICAg
IHNlbGYtPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA3MWRhZDJkLi43NWJiZjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMzEsOCArMTMx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUp
OwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNp
emUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNv
bnN0OwogCiAgICAgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybVRvU2NyZWVuKCkg
Y29uc3Q7CiAKQEAgLTI1NSw3ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxFdmFzX0dM
PiBtX2V2YXNHTDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENv
bnRleHQ7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNl
OwotICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAgIGJvb2wgbV9wZW5kaW5nU3Vy
ZmFjZVJlc2l6ZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJWaWV3PiBtX3dlYlZpZXc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAppbmRleCAyOTczMTk4Li5jN2NhMzU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKQEAgLTgzLDYgKzgz
LDEzIEBAIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZSgpCiAgICAgICAgIHNjZW5lLT5zZXRBY3Rp
dmUodHJ1ZSk7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisKKyAgICB1cGRhdGVWaWV3cG9ydFNp
emUoKTsKK30KKwogdm9pZCBXZWJWaWV3OjpzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihkb3Vi
bGUgdHgsIGRvdWJsZSB0eSkKIHsKICAgICBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybSA9IFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKHR4LCB0eSk7CkBAIC0xMDIsNyArMTA5LDcgQEAg
dm9pZCBXZWJWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpCiAgICAgLy8gRklYTUU6IFdl
IG5lZWQgdG8gY2xlYW4gdXAgdGhpcyBjb2RlIGFzIGl0IGlzIHNwbGl0IG92ZXIgQ29vcmRHZngg
YW5kIFBhZ2UuCiAgICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3VuZChtX3BhZ2UtPmRyYXdzQmFj
a2dyb3VuZCgpKTsKIAotICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJh
bnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3a1ZpZXctPnNpemUoKSkpOwor
ICAgIGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnQgPSBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybS5t
YXBSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgbV9zaXplKSk7CiAgICAgc2NlbmUtPnBhaW50VG9D
dXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybVRvU2NlbmUoKS50b1RyYW5zZm9ybWF0aW9uTWF0cml4
KCksIC8qIG9wYWNpdHkgKi8gMSwgdmlld3BvcnQpOwogfQogCkBAIC0xOTYsMTQgKzIwMywxNiBA
QCB2b2lkIFdlYlZpZXc6OmRpZENvbW1pdExvYWQoKQogCiB2b2lkIFdlYlZpZXc6OnVwZGF0ZVZp
ZXdwb3J0U2l6ZSgpCiB7Ci0gICAgRmxvYXRTaXplIHNpemUgPSBtX2V3a1ZpZXctPnNpemUoKTsK
LSAgICAvLyBUaGUgdmlld3BvcnQgY29udHJvbGxlciBleHBlY3RzIHNpemVzIGluIFVJIHVuaXRz
LCBhbmQgbm90IHJhdyBkZXZpY2UgdW5pdHMuCi0gICAgc2l6ZS5zY2FsZSgxIC8gbV9wYWdlLT5k
ZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBpZiAobV9wYWdlLT51c2VGaXhlZExheW91dCgpKSB7
Ci0gICAgICAgIG1fZXdrVmlldy0+cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLT5kaWRDaGFuZ2VW
aWV3cG9ydFNpemUoc2l6ZSk7CisgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBw
YWdlKCktPmRyYXdpbmdBcmVhKCk7CisgICAgaWYgKCFkcmF3aW5nQXJlYSkKICAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBtX3BhZ2UtPmRyYXdpbmdBcmVhKCktPnNldFZpc2libGVDb250ZW50
c1JlY3QoRmxvYXRSZWN0KG1fZXdrVmlldy0+cGFnZVBvc2l0aW9uKCksIHNpemUpLCBGbG9hdFBv
aW50KCkpOworCisgICAgRmxvYXRTaXplIGRpcFNpemUobV9zaXplKTsKKyAgICAvLyBXZWIgUHJv
Y2VzcyBleHBlY3RzIHNpemVzIGluIFVJIHVuaXRzLCBhbmQgbm90IHJhdyBkZXZpY2UgdW5pdHMu
CisgICAgZGlwU2l6ZS5zY2FsZSgxIC8gcGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKwor
ICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKHJvdW5kZWRJbnRTaXplKGRpcFNpemUpLCBJbnRTaXpl
KCkpOworICAgIGRyYXdpbmdBcmVhLT5zZXRWaXNpYmxlQ29udGVudHNSZWN0KEZsb2F0UmVjdCht
X2V3a1ZpZXctPnBhZ2VQb3NpdGlvbigpLCBkaXBTaXplKSwgRmxvYXRQb2ludCgpKTsKIH0KIAog
dm9pZCBXZWJWaWV3OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSkKQEAgLTI3MCw3ICsyNzksNyBAQCB2b2lkIFdlYlZpZXc6OnNjcm9sbFZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UwogCiBX
ZWJDb3JlOjpJbnRTaXplIFdlYlZpZXc6OnZpZXdTaXplKCkKIHsKLSAgICByZXR1cm4gbV9ld2tW
aWV3LT5zaXplKCk7CisgICAgcmV0dXJuIHNpemUoKTsKIH0KIAogYm9vbCBXZWJWaWV3Ojppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRl
eCA5ZjVmNmY0Li5iMTdmNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcu
aApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoKTsKIAor
ICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCiAgICAgdm9p
ZCBzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0eSk7CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgdXNlclZpZXdwb3J0VG9Db250ZW50cyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGNvbnN0OwogCkBAIC04Nyw4ICs5MCw3IEBAIHB1YmxpYzoKICAgICBFdmFzX09i
amVjdCogZXZhc09iamVjdCgpOwogICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIHsgcmV0dXJuIG1f
cGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRDb21taXRMb2FkKCk7Ci0gICAgdm9pZCB1cGRh
dGVWaWV3cG9ydFNpemUoKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsgICAgCiAgICAgdm9p
ZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiAgICAg
Ly8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0ZSB3aGVuIFdlYiBFdmVudHMgY3JlYXRpb24g
aXMgbW92ZWQgdG8gV2ViVmlldy4KQEAgLTk2LDYgKzk4LDggQEAgcHVibGljOgogICAgIFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAKIHByaXZhdGU6
CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKwogICAgIFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSogY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7CiAKICAgICAvLyBQ
YWdlQ2xpZW50CkBAIC0xNzksNiArMTgzLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViUGFn
ZVByb3h5PiBtX3BhZ2U7CiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xs
ZXI7CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFu
c2Zvcm07CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192891</attachid>
            <date>2013-03-13 03:00:44 -0700</date>
            <delta_ts>2013-03-14 09:17:07 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug110753_v3</filename>
            <type>text/plain</type>
            <size>9827</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGYzN2Q2MTNhZjkyYzEzYmE3YzY4ODIwNWQ2MWYxM2Y2NDUyYjlkOWIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxMTo0MDoyMCAyMDEzICswMjAwCgogICAgYnVnMTEwNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDQ2NzYyMjEuLmE1MGM0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMy0w
My0xMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEZpeCBFd2tDb250ZXh0IGNsYXNzIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViVmlldyBvd25zIHZpZXcg
c2l6ZS4gV0tWaWV3R2V0U2l6ZSBhbmQgV0tWaWV3U2V0U2l6ZSBBUEkKKyAgICAgICAgaXMgZXhw
b3NlZCBhY2NvcmRpbmdseS4gVXNhZ2Ugb2YgRUZMLXNwZWNpZmljIGV3a1ZpZXcgaW5zaWRlCisg
ICAgICAgIHRvb2xraXQtYWdub3N0aWMgV2ViVmlldyBjbGFzcyBpcyByZWR1Y2VkLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAgICAgICAoV0tWaWV3R2V0
U2l6ZSk6CisgICAgICAgIChXS1ZpZXdTZXRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3Bw
OgorICAgICAgICAoRXdrVmlldzo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoRXdr
Vmlldzo6c2l6ZSk6CisgICAgICAgIChFd2tWaWV3OjpkZXZpY2VTaXplKToKKyAgICAgICAgKEV3
a1ZpZXc6OnNjaGVkdWxlVXBkYXRlRGlzcGxheSk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVF
dmFzT2JqZWN0Q2FsY3VsYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
Lmg6CisgICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRTaXplKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlldzo6dmlld1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojpk
aXBTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuaDoKKyAgICAgICAgKFdl
YlZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzaXplKToKKwogMjAxMy0wMy0xMiAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0VGTF1bV0syXSBld2tfcG9wdXBfbWVudV9jbG9zZSgpIGRvZXMgbm90IHdvcmsgYXMgaW50ZW5k
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAppbmRl
eCA5ZGQ2OTExLi4yMWJhMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXcuY3BwCkBAIC01Myw2ICs1MywxNiBAQCB2b2lkIFdLVmlld0luaXRpYWxpemUo
V0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5pbml0aWFsaXplKCk7CiB9
CiAKK1dLU2l6ZSBXS1ZpZXdHZXRTaXplKFdLVmlld1JlZiB2aWV3UmVmKQoreworICAgIHJldHVy
biB0b0FQSSh0b0ltcGwodmlld1JlZiktPnNpemUoKSk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0U2l6
ZShXS1ZpZXdSZWYgdmlld1JlZiwgV0tTaXplIHNpemUpCit7CisgICAgdG9JbXBsKHZpZXdSZWYp
LT5zZXRTaXplKHRvSW50U2l6ZShzaXplKSk7Cit9CisKIHZvaWQgV0tWaWV3U2V0Vmlld0NsaWVu
dChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50KiBjbGllbnQpCiB7CiAgICAg
dG9JbXBsKHZpZXdSZWYpLT5pbml0aWFsaXplQ2xpZW50KGNsaWVudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaAppbmRleCBhNzA5YjQ4Li44ODkxNmY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKQEAgLTYyLDYg
KzYyLDEwIEBAIFdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKEV2YXMqIGNhbnZhcywg
V0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGFnZUdyb3VwCiBXS19FWFBPUlQgV0tWaWV3UmVmIFdL
Vmlld0NyZWF0ZVdpdGhGaXhlZExheW91dChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250
ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwogCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdJ
bml0aWFsaXplKFdLVmlld1JlZik7CisKK1dLX0VYUE9SVCBXS1NpemUgV0tWaWV3R2V0U2l6ZShX
S1ZpZXdSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0U2l6ZShXS1ZpZXdSZWYsIFdLU2l6
ZSBzaXplKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYs
IGNvbnN0IFdLVmlld0NsaWVudCopOwogCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRVc2VyVmll
d3BvcnRUcmFuc2xhdGlvbihXS1ZpZXdSZWYsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMDdkNzI2Ni4u
YmVkZDU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAKQEAgLTQ1NiwxMCArNDU2LDExIEBAIHZvaWQgRXdrVmlldzo6c2V0Q3Vyc29yKGNvbnN0IEN1
cnNvciYgY3Vyc29yKQogCiB2b2lkIEV3a1ZpZXc6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0
IHNjYWxlKQogeworICAgIGNvbnN0IFdLU2l6ZSYgZGV2aWNlU2l6ZSA9IFdLVmlld0dldFNpemUo
d2tWaWV3KCkpOwogICAgIHBhZ2UoKS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3Ioc2Nh
bGUpOwogCiAgICAgLy8gVXBkYXRlIGludGVybmFsIHZpZXdwb3J0IHNpemUgYWZ0ZXIgZGV2aWNl
LXNjYWxlIGNoYW5nZS4KLSAgICBzZXREZXZpY2VTaXplKGRldmljZVNpemUoKSk7CisgICAgV0tW
aWV3U2V0U2l6ZSh3a1ZpZXcoKSwgZGV2aWNlU2l6ZSk7CiB9CiAKIGZsb2F0IEV3a1ZpZXc6OmRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QKQEAgLTQ2NywyOSArNDY4LDE3IEBAIGZsb2F0IEV3a1Zp
ZXc6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4gV0tQYWdlR2V0QmFja2lu
Z1NjYWxlRmFjdG9yKHdrUGFnZSgpKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpzZXREZXZpY2VTaXpl
KGNvbnN0IEludFNpemUmIGRldmljZVNpemUpCi17Ci0gICAgbV9kZXZpY2VTaXplID0gZGV2aWNl
U2l6ZTsKLQotICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gcGFnZSgpLT5kcmF3
aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGRyYXdpbmdBcmVhLT5zZXRTaXplKHNpemUoKSwgSW50U2l6ZSgpKTsKLSAgICB3ZWJWaWV3KCkt
PnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwotfQotCiBJbnRTaXplIEV3a1ZpZXc6OnNpemUoKSBjb25z
dAogewogICAgIC8vIFdlYlBhZ2UgZXhwZWN0cyBhIHNpemUgaW4gVUkgdW5pdHMsIGFuZCBub3Qg
cmF3IGRldmljZSB1bml0cy4KLSAgICBGbG9hdFNpemUgdWlTaXplID0gbV9kZXZpY2VTaXplOwor
ICAgIEZsb2F0U2l6ZSB1aVNpemUgPSBkZXZpY2VTaXplKCk7CiAgICAgdWlTaXplLnNjYWxlKDEg
LyBkZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICByZXR1cm4gcm91bmRlZEludFNpemUodWlTaXpl
KTsKIH0KIAogSW50U2l6ZSBFd2tWaWV3OjpkZXZpY2VTaXplKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9kZXZpY2VTaXplOworICAgIHJldHVybiB0b0ludFNpemUoV0tWaWV3R2V0U2l6ZSh3a1Zp
ZXcoKSkpOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6dHJhbnNmb3JtVG9TY3JlZW4o
KSBjb25zdApAQCAtNTYyLDcgKzU1MSw3IEBAIHZvaWQgRXdrVmlldzo6ZGlzcGxheVRpbWVyRmly
ZWQoVGltZXI8RXdrVmlldz4qKQogCiB2b2lkIEV3a1ZpZXc6OnNjaGVkdWxlVXBkYXRlRGlzcGxh
eSgpCiB7Ci0gICAgaWYgKG1fZGV2aWNlU2l6ZS5pc0VtcHR5KCkpCisgICAgaWYgKGRldmljZVNp
emUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9kaXNwbGF5VGlt
ZXIuaXNBY3RpdmUoKSkKQEAgLTExMTEsNyArMTEwMCwxMCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRs
ZUV2YXNPYmplY3RDYWxjdWxhdGUoRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgICAgIHNt
YXJ0RGF0YS0+dmlldy53ID0gd2lkdGg7CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy5oID0gaGVp
Z2h0OwogCi0gICAgICAgIHNlbGYtPnNldERldmljZVNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KSk7CisgICAgICAgIFdLVmlld1NldFNpemUoc2VsZi0+d2tWaWV3KCksIFdLU2l6ZU1ha2Uod2lk
dGgsIGhlaWdodCkpOworICAgICAgICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoc2VsZi0+d2tQ
YWdlKCkpKQorICAgICAgICAgICAgc2VsZi0+cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLT5kaWRD
aGFuZ2VWaWV3cG9ydFNpemUoc2VsZi0+c2l6ZSgpKTsKKwogICAgICAgICBzZWxmLT5zZXROZWVk
c1N1cmZhY2VSZXNpemUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmgKaW5kZXggYTZiNTcwOS4uODUxNWU2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMjU1LDcgKzI1NSw2IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNH
TENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJm
YWNlPiBtX2V2YXNHTFN1cmZhY2U7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX2RldmljZVNpemU7
CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zv
cm07CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwogICAgIFJlZlB0cjxXZWJLaXQ6
OldlYlZpZXc+IG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcu
Y3BwCmluZGV4IDVjMmIzYmEuLmJlYjZjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJWaWV3LmNwcApAQCAtODMsNiArODMsMTMgQEAgdm9pZCBXZWJWaWV3Ojppbml0aWFsaXpl
KCkKICAgICAgICAgc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKIH0KIAordm9pZCBXZWJWaWV3Ojpz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9zaXplID0gc2l6
ZTsKKworICAgIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOworfQorCiB2b2lkIFdlYlZpZXc6OnNldFVz
ZXJWaWV3cG9ydFRyYW5zbGF0aW9uKGRvdWJsZSB0eCwgZG91YmxlIHR5KQogewogICAgIG1fdXNl
clZpZXdwb3J0VHJhbnNmb3JtID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKS50cmFuc2xhdGUodHgs
IHR5KTsKQEAgLTEwMSw4ICsxMDgsOCBAQCB2b2lkIFdlYlZpZXc6OnBhaW50VG9DdXJyZW50R0xD
b250ZXh0KCkKIAogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoaXMgY29kZSBh
cyBpdCBpcyBzcGxpdCBvdmVyIENvb3JkR2Z4IGFuZCBQYWdlLgogICAgIHNjZW5lLT5zZXREcmF3
c0JhY2tncm91bmQobV9wYWdlLT5kcmF3c0JhY2tncm91bmQoKSk7CisgICAgY29uc3QgRmxvYXRS
ZWN0JiB2aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJ
bnRQb2ludCgpLCBtX3NpemUpKTsKIAotICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IG1fdXNlclZp
ZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3a1ZpZXctPmRl
dmljZVNpemUoKSkpOwogICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zv
cm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZp
ZXdwb3J0KTsKIH0KIApAQCAtMTk2LDEzICsyMDMsMTEgQEAgdm9pZCBXZWJWaWV3OjpkaWRDb21t
aXRMb2FkKCkKIAogdm9pZCBXZWJWaWV3Ojp1cGRhdGVWaWV3cG9ydFNpemUoKQogewotICAgIGlm
IChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpIHsKLSAgICAgICAgbV9ld2tWaWV3LT5wYWdlVmll
d3BvcnRDb250cm9sbGVyKCktPmRpZENoYW5nZVZpZXdwb3J0U2l6ZShtX2V3a1ZpZXctPnNpemUo
KSk7Ci0gICAgICAgIHJldHVybjsKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0Fy
ZWEgPSBwYWdlKCktPmRyYXdpbmdBcmVhKCkpIHsKKyAgICAgICAgLy8gV2ViIFByb2Nlc3MgZXhw
ZWN0cyBzaXplcyBpbiBVSSB1bml0cywgYW5kIG5vdCByYXcgZGV2aWNlIHVuaXRzLgorICAgICAg
ICBkcmF3aW5nQXJlYS0+c2V0U2l6ZShyb3VuZGVkSW50U2l6ZShkaXBTaXplKCkpLCBJbnRTaXpl
KCkpOworICAgICAgICBkcmF3aW5nQXJlYS0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChGbG9hdFJl
Y3QobV9ld2tWaWV3LT5wYWdlUG9zaXRpb24oKSwgZGlwU2l6ZSgpKSwgRmxvYXRQb2ludCgpKTsK
ICAgICB9Ci0gICAgRmxvYXRQb2ludCB1aVBvc2l0aW9uKG1fZXdrVmlldy0+cGFnZVBvc2l0aW9u
KCkpOwotICAgIHVpUG9zaXRpb24uc2NhbGUoMSAvIG1fZXdrVmlldy0+cGFnZVNjYWxlRmFjdG9y
KCksIDEgLyBtX2V3a1ZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBtX3BhZ2UtPmRyYXdp
bmdBcmVhKCktPnNldFZpc2libGVDb250ZW50c1JlY3QoRmxvYXRSZWN0KHVpUG9zaXRpb24sIG1f
ZXdrVmlldy0+c2l6ZSgpKSwgRmxvYXRQb2ludCgpKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpkaWRD
aGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKQEAgLTI2NSw3
ICsyNzAsNyBAQCB2b2lkIFdlYlZpZXc6OnNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UwogCiBXZWJDb3JlOjpJbnRTaXplIFdl
YlZpZXc6OnZpZXdTaXplKCkKIHsKLSAgICByZXR1cm4gbV9ld2tWaWV3LT5zaXplKCk7CisgICAg
cmV0dXJuIHJvdW5kZWRJbnRTaXplKGRpcFNpemUoKSk7CiB9CiAKIGJvb2wgV2ViVmlldzo6aXNW
aWV3V2luZG93QWN0aXZlKCkKQEAgLTUxOSw0ICs1MjQsMTIgQEAgdm9pZCBXZWJWaWV3OjpwYWdl
VHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQogICAgIG1fZXdrVmlldy0+c2NoZWR1bGVVcGRhdGVE
aXNwbGF5KCk7CiB9CiAKK2lubGluZSBXZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlldzo6ZGlwU2l6
ZSgpIGNvbnN0Cit7CisgICAgRmxvYXRTaXplIGRpcFNpemUoc2l6ZSgpKTsKKyAgICBkaXBTaXpl
LnNjYWxlKDEgLyBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworCisgICAgcmV0dXJuIGRp
cFNpemU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuaAppbmRleCA5ZjVmNmY0Li41MGIyMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlZpZXcuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGluaXRpYWxpemUoKTsKIAorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2l6ZTsgfQorCiAgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihkb3VibGUgdHgs
IGRvdWJsZSB0eSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgdXNlclZpZXdwb3J0VG9Db250ZW50
cyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCkBAIC04Nyw4ICs5MCw3IEBAIHB1
YmxpYzoKICAgICBFdmFzX09iamVjdCogZXZhc09iamVjdCgpOwogICAgIFdlYlBhZ2VQcm94eSog
cGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRDb21taXRMb2Fk
KCk7Ci0gICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICB2b2lkIGRpZENvbW1pdExv
YWQoKTsgICAgCiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOwogCiAgICAgLy8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0ZSB3aGVuIFdl
YiBFdmVudHMgY3JlYXRpb24gaXMgbW92ZWQgdG8gV2ViVmlldy4KQEAgLTk2LDYgKzk4LDggQEAg
cHVibGljOgogICAgIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkg
Y29uc3Q7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKwogICAg
IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogY29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lKCk7CiAKICAgICAvLyBQYWdlQ2xpZW50CkBAIC0xNzMsMTIgKzE3NywxNCBAQCBwcml2YXRl
OgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJ
VHlwZTsgfQorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBkaXBTaXplKCkgY29uc3Q7CiAKICAgICBX
ZWJWaWV3Q2xpZW50IG1fY2xpZW50OwogICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKICAgICBSZWZQ
dHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5k
b0NvbnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmll
d3BvcnRUcmFuc2Zvcm07CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7IC8vIFNpemUgaW4g
ZGV2aWNlIHVuaXRzLgogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193135</attachid>
            <date>2013-03-14 09:17:07 -0700</date>
            <delta_ts>2013-04-04 03:03:09 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug110753_v4</filename>
            <type>text/plain</type>
            <size>10949</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGVlNDJjNWE5Nzg0NTRkZWJlNTc0ZTY4YmJiODE4NzI1Yjk4MWI0NTcKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE1hciAxNCAxODoxMDoyMiAyMDEzICswMjAwCgogICAgYnVnMTEwNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDVkMGEzOTkuLmJkYWY4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMy0w
My0xNCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEZpeCBFd2tDb250ZXh0IGNsYXNzIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViVmlldyBvd25zIHZpZXcg
c2l6ZS4gV0tWaWV3R2V0U2l6ZSBhbmQgV0tWaWV3U2V0U2l6ZSBBUEkKKyAgICAgICAgaXMgZXhw
b3NlZCBhY2NvcmRpbmdseS4gVXNhZ2Ugb2YgRUZMLXNwZWNpZmljIGV3a1ZpZXcgaW5zaWRlCisg
ICAgICAgIHRvb2xraXQtYWdub3N0aWMgV2ViVmlldyBjbGFzcyBpcyByZWR1Y2VkLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAgICAgICAoV0tWaWV3R2V0
U2l6ZSk6CisgICAgICAgIChXS1ZpZXdTZXRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3Bw
OgorICAgICAgICAoRXdrVmlldzo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoRXdr
Vmlldzo6c2l6ZSk6CisgICAgICAgIChFd2tWaWV3OjpkZXZpY2VTaXplKToKKyAgICAgICAgKEV3
a1ZpZXc6OnNjaGVkdWxlVXBkYXRlRGlzcGxheSk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVF
dmFzT2JqZWN0Q2FsY3VsYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
Lmg6CisgICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRTaXplKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlldzo6dmlld1NpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojpk
aXBTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuaDoKKyAgICAgICAgKFdl
YlZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzaXplKToKKwogMjAxMy0wMy0xNCAg
Smlud29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1b
V0syXSBBZGQgYW4gQVBJIGZvciBhZGRpbmcgYW5kIHJlbW92aW5nIHVzZXIgc3R5bGUgc2hlZXRz
IGZyb20gYSBwYWdlIGdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlldy5jcHAKaW5kZXggZGNkM2UyYy4uMDM4ZWNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcApAQCAtNTUsNiArNTUsMTYgQEAgdm9pZCBX
S1ZpZXdJbml0aWFsaXplKFdLVmlld1JlZiB2aWV3UmVmKQogICAgIHRvSW1wbCh2aWV3UmVmKS0+
aW5pdGlhbGl6ZSgpOwogfQogCitXS1NpemUgV0tWaWV3R2V0U2l6ZShXS1ZpZXdSZWYgdmlld1Jl
ZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKHZpZXdSZWYpLT5zaXplKCkpOworfQorCit2
b2lkIFdLVmlld1NldFNpemUoV0tWaWV3UmVmIHZpZXdSZWYsIFdLU2l6ZSBzaXplKQoreworICAg
IHRvSW1wbCh2aWV3UmVmKS0+c2V0U2l6ZSh0b0ludFNpemUoc2l6ZSkpOworfQorCiB2b2lkIFdL
Vmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCog
Y2xpZW50KQogewogICAgIHRvSW1wbCh2aWV3UmVmKS0+aW5pdGlhbGl6ZUNsaWVudChjbGllbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKaW5kZXggYTcw
OWI0OC4uODg5MTZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlldy5oCkBAIC02Miw2ICs2MiwxMCBAQCBXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0
ZShFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1BhZ2VHcm91cAogV0tfRVhQ
T1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoRml4ZWRMYXlvdXQoRXZhcyogY2FudmFzLCBX
S0NvbnRleHRSZWYgY29udGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tWaWV3SW5pdGlhbGl6ZShXS1ZpZXdSZWYpOworCitXS19FWFBPUlQgV0tTaXpl
IFdLVmlld0dldFNpemUoV0tWaWV3UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFNpemUo
V0tWaWV3UmVmLCBXS1NpemUgc2l6ZSk7CisKIFdLX0VYUE9SVCB2b2lkIFdLVmlld1NldFZpZXdD
bGllbnQoV0tWaWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnQqKTsKIAogV0tfRVhQT1JUIHZvaWQg
V0tWaWV3U2V0VXNlclZpZXdwb3J0VHJhbnNsYXRpb24oV0tWaWV3UmVmLCBkb3VibGUgdHgsIGRv
dWJsZSB0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3Bw
CmluZGV4IGNlN2Q2YWMuLjRmZTk2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC00NTcsMTAgKzQ1NywxMSBAQCB2b2lkIEV3a1ZpZXc6OnNl
dEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKIAogdm9pZCBFd2tWaWV3OjpzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKIHsKKyAgICBjb25zdCBXS1NpemUmIGRldmljZVNpemUg
PSBXS1ZpZXdHZXRTaXplKHdrVmlldygpKTsKICAgICBwYWdlKCktPnNldEludHJpbnNpY0Rldmlj
ZVNjYWxlRmFjdG9yKHNjYWxlKTsKIAogICAgIC8vIFVwZGF0ZSBpbnRlcm5hbCB2aWV3cG9ydCBz
aXplIGFmdGVyIGRldmljZS1zY2FsZSBjaGFuZ2UuCi0gICAgc2V0RGV2aWNlU2l6ZShkZXZpY2VT
aXplKCkpOworICAgIFdLVmlld1NldFNpemUod2tWaWV3KCksIGRldmljZVNpemUpOwogfQogCiBm
bG9hdCBFd2tWaWV3OjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CkBAIC00NjgsMzEgKzQ2OSw2
IEBAIGZsb2F0IEV3a1ZpZXc6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4g
V0tQYWdlR2V0QmFja2luZ1NjYWxlRmFjdG9yKHdrUGFnZSgpKTsKIH0KIAotdm9pZCBFd2tWaWV3
OjpzZXREZXZpY2VTaXplKGNvbnN0IEludFNpemUmIGRldmljZVNpemUpCi17Ci0gICAgbV9kZXZp
Y2VTaXplID0gZGV2aWNlU2l6ZTsKLQotICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVh
ID0gcGFnZSgpLT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKHNpemUoKSwgSW50U2l6ZSgpKTsK
LSAgICB3ZWJWaWV3KCktPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwotfQotCi1JbnRTaXplIEV3a1Zp
ZXc6OnNpemUoKSBjb25zdAotewotICAgIC8vIFdlYlBhZ2UgZXhwZWN0cyBhIHNpemUgaW4gVUkg
dW5pdHMsIGFuZCBub3QgcmF3IGRldmljZSB1bml0cy4KLSAgICBGbG9hdFNpemUgdWlTaXplID0g
bV9kZXZpY2VTaXplOwotICAgIHVpU2l6ZS5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IoKSk7
Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRTaXplKHVpU2l6ZSk7Ci19Ci0KLUludFNpemUgRXdrVmll
dzo6ZGV2aWNlU2l6ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGV2aWNlU2l6ZTsKLX0KLQog
QWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3QKIHsKICAg
ICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOwpAQCAtNTMxLDYgKzUwNywxOSBAQCBpbmxpbmUg
RXdrX1ZpZXdfU21hcnRfRGF0YSogRXdrVmlldzo6c21hcnREYXRhKCkgY29uc3QKICAgICByZXR1
cm4gdG9TbWFydERhdGEobV9ldmFzT2JqZWN0KTsKIH0KIAoraW5saW5lIEludFNpemUgRXdrVmll
dzo6c2l6ZSgpIGNvbnN0Cit7CisgICAgLy8gV2ViUGFnZSBleHBlY3RzIGEgc2l6ZSBpbiBVSSB1
bml0cywgYW5kIG5vdCByYXcgZGV2aWNlIHVuaXRzLgorICAgIEZsb2F0U2l6ZSB1aVNpemUgPSBk
ZXZpY2VTaXplKCk7CisgICAgdWlTaXplLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3RvcigpKTsK
KyAgICByZXR1cm4gcm91bmRlZEludFNpemUodWlTaXplKTsKK30KKworaW5saW5lIEludFNpemUg
RXdrVmlldzo6ZGV2aWNlU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvSW50U2l6ZShXS1Zp
ZXdHZXRTaXplKHdrVmlldygpKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6ZGlzcGxheVRpbWVyRmly
ZWQoVGltZXI8RXdrVmlldz4qKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21h
cnREYXRhKCk7CkBAIC01NjMsNyArNTUyLDcgQEAgdm9pZCBFd2tWaWV3OjpkaXNwbGF5VGltZXJG
aXJlZChUaW1lcjxFd2tWaWV3PiopCiAKIHZvaWQgRXdrVmlldzo6c2NoZWR1bGVVcGRhdGVEaXNw
bGF5KCkKIHsKLSAgICBpZiAobV9kZXZpY2VTaXplLmlzRW1wdHkoKSkKKyAgICBpZiAoZGV2aWNl
U2l6ZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2Rpc3BsYXlU
aW1lci5pc0FjdGl2ZSgpKQpAQCAtMTExMiw3ICsxMTAxLDEwIEBAIHZvaWQgRXdrVmlldzo6aGFu
ZGxlRXZhc09iamVjdENhbGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAgICAg
c21hcnREYXRhLT52aWV3LncgPSB3aWR0aDsKICAgICAgICAgc21hcnREYXRhLT52aWV3LmggPSBo
ZWlnaHQ7CiAKLSAgICAgICAgc2VsZi0+c2V0RGV2aWNlU2l6ZShJbnRTaXplKHdpZHRoLCBoZWln
aHQpKTsKKyAgICAgICAgV0tWaWV3U2V0U2l6ZShzZWxmLT53a1ZpZXcoKSwgV0tTaXplTWFrZSh3
aWR0aCwgaGVpZ2h0KSk7CisgICAgICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChzZWxmLT53
a1BhZ2UoKSkpCisgICAgICAgICAgICBzZWxmLT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCktPmRp
ZENoYW5nZVZpZXdwb3J0U2l6ZShzZWxmLT5zaXplKCkpOworCiAgICAgICAgIHNlbGYtPnNldE5l
ZWRzU3VyZmFjZVJlc2l6ZSgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuaAppbmRleCBjM2RmNzYwLi40ZmEyZjFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMzMsOSArMTMzLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpOwogICAgIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKLSAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUo
KSBjb25zdDsKLSAgICBXZWJDb3JlOjpJbnRTaXplIGRldmljZVNpemUoKSBjb25zdDsKLQogICAg
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjcmVlbigpIGNvbnN0OwogCiAg
ICAgY29uc3QgY2hhciogdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KQEAgLTIyMCw2ICsy
MTcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0RGV2aWNlU2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKCkgY29uc3Q7CiAK
KyAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRTaXpl
IGRldmljZVNpemUoKSBjb25zdDsKKwogICAgIHZvaWQgZGlzcGxheVRpbWVyRmlyZWQoV2ViQ29y
ZTo6VGltZXI8RXdrVmlldz4qKTsKIAogICAgIC8vIEV2YXNfU21hcnRfQ2xhc3MgY2FsbGJhY2sg
aW50ZXJmYWNlOgpAQCAtMjU4LDcgKzI1OCw2IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV2YXNf
R0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTENvbnRleHQ+IG1fZXZhc0dM
Q29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1cmZh
Y2U7Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX2RldmljZVNpemU7CiAgICAgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07CiAgICAgYm9vbCBtX3Bl
bmRpbmdTdXJmYWNlUmVzaXplOwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlZpZXc+IG1fd2ViVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCmluZGV4IDVjMmIzYmEu
LmJlYjZjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcApAQCAt
ODMsNiArODMsMTMgQEAgdm9pZCBXZWJWaWV3Ojppbml0aWFsaXplKCkKICAgICAgICAgc2NlbmUt
PnNldEFjdGl2ZSh0cnVlKTsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9zaXplID0gc2l6ZTsKKworICAgIHVwZGF0ZVZp
ZXdwb3J0U2l6ZSgpOworfQorCiB2b2lkIFdlYlZpZXc6OnNldFVzZXJWaWV3cG9ydFRyYW5zbGF0
aW9uKGRvdWJsZSB0eCwgZG91YmxlIHR5KQogewogICAgIG1fdXNlclZpZXdwb3J0VHJhbnNmb3Jt
ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKS50cmFuc2xhdGUodHgsIHR5KTsKQEAgLTEwMSw4ICsx
MDgsOCBAQCB2b2lkIFdlYlZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkKIAogICAgIC8v
IEZJWE1FOiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoaXMgY29kZSBhcyBpdCBpcyBzcGxpdCBvdmVy
IENvb3JkR2Z4IGFuZCBQYWdlLgogICAgIHNjZW5lLT5zZXREcmF3c0JhY2tncm91bmQobV9wYWdl
LT5kcmF3c0JhY2tncm91bmQoKSk7CisgICAgY29uc3QgRmxvYXRSZWN0JiB2aWV3cG9ydCA9IG1f
dXNlclZpZXdwb3J0VHJhbnNmb3JtLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX3NpemUp
KTsKIAotICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtLm1h
cFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBtX2V3a1ZpZXctPmRldmljZVNpemUoKSkpOwogICAg
IHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKIH0KIApAQCAt
MTk2LDEzICsyMDMsMTEgQEAgdm9pZCBXZWJWaWV3OjpkaWRDb21taXRMb2FkKCkKIAogdm9pZCBX
ZWJWaWV3Ojp1cGRhdGVWaWV3cG9ydFNpemUoKQogewotICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVk
TGF5b3V0KCkpIHsKLSAgICAgICAgbV9ld2tWaWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkt
PmRpZENoYW5nZVZpZXdwb3J0U2l6ZShtX2V3a1ZpZXctPnNpemUoKSk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdlKCktPmRyYXdp
bmdBcmVhKCkpIHsKKyAgICAgICAgLy8gV2ViIFByb2Nlc3MgZXhwZWN0cyBzaXplcyBpbiBVSSB1
bml0cywgYW5kIG5vdCByYXcgZGV2aWNlIHVuaXRzLgorICAgICAgICBkcmF3aW5nQXJlYS0+c2V0
U2l6ZShyb3VuZGVkSW50U2l6ZShkaXBTaXplKCkpLCBJbnRTaXplKCkpOworICAgICAgICBkcmF3
aW5nQXJlYS0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChGbG9hdFJlY3QobV9ld2tWaWV3LT5wYWdl
UG9zaXRpb24oKSwgZGlwU2l6ZSgpKSwgRmxvYXRQb2ludCgpKTsKICAgICB9Ci0gICAgRmxvYXRQ
b2ludCB1aVBvc2l0aW9uKG1fZXdrVmlldy0+cGFnZVBvc2l0aW9uKCkpOwotICAgIHVpUG9zaXRp
b24uc2NhbGUoMSAvIG1fZXdrVmlldy0+cGFnZVNjYWxlRmFjdG9yKCksIDEgLyBtX2V3a1ZpZXct
PnBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBtX3BhZ2UtPmRyYXdpbmdBcmVhKCktPnNldFZpc2li
bGVDb250ZW50c1JlY3QoRmxvYXRSZWN0KHVpUG9zaXRpb24sIG1fZXdrVmlldy0+c2l6ZSgpKSwg
RmxvYXRQb2ludCgpKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpkaWRDaGFuZ2VDb250ZW50c1NpemUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKQEAgLTI2NSw3ICsyNzAsNyBAQCB2b2lkIFdl
YlZpZXc6OnNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW50UwogCiBXZWJDb3JlOjpJbnRTaXplIFdlYlZpZXc6OnZpZXdTaXplKCkK
IHsKLSAgICByZXR1cm4gbV9ld2tWaWV3LT5zaXplKCk7CisgICAgcmV0dXJuIHJvdW5kZWRJbnRT
aXplKGRpcFNpemUoKSk7CiB9CiAKIGJvb2wgV2ViVmlldzo6aXNWaWV3V2luZG93QWN0aXZlKCkK
QEAgLTUxOSw0ICs1MjQsMTIgQEAgdm9pZCBXZWJWaWV3OjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0
UmVhZHkoKQogICAgIG1fZXdrVmlldy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiB9CiAKK2lu
bGluZSBXZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlldzo6ZGlwU2l6ZSgpIGNvbnN0Cit7CisgICAg
RmxvYXRTaXplIGRpcFNpemUoc2l6ZSgpKTsKKyAgICBkaXBTaXplLnNjYWxlKDEgLyBtX3BhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCkpOworCisgICAgcmV0dXJuIGRpcFNpemU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRl
eCA5ZjVmNmY0Li41MGIyMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcu
aApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoKTsKIAor
ICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCiAgICAgdm9p
ZCBzZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0eSk7CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgdXNlclZpZXdwb3J0VG9Db250ZW50cyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGNvbnN0OwogCkBAIC04Nyw4ICs5MCw3IEBAIHB1YmxpYzoKICAgICBFdmFzX09i
amVjdCogZXZhc09iamVjdCgpOwogICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIHsgcmV0dXJuIG1f
cGFnZS5nZXQoKTsgfQogCi0gICAgdm9pZCBkaWRDb21taXRMb2FkKCk7Ci0gICAgdm9pZCB1cGRh
dGVWaWV3cG9ydFNpemUoKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsgICAgCiAgICAgdm9p
ZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiAgICAg
Ly8gRklYTUU6IFNob3VsZCBiZWNvbWUgcHJpdmF0ZSB3aGVuIFdlYiBFdmVudHMgY3JlYXRpb24g
aXMgbW92ZWQgdG8gV2ViVmlldy4KQEAgLTk2LDYgKzk4LDggQEAgcHVibGljOgogICAgIFdlYkNv
cmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAKIHByaXZhdGU6
CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKwogICAgIFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSogY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7CiAKICAgICAvLyBQ
YWdlQ2xpZW50CkBAIC0xNzMsMTIgKzE3NywxNCBAQCBwcml2YXRlOgogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSBkaXBTaXplKCkgY29uc3Q7CiAKICAgICBXZWJWaWV3Q2xpZW50IG1fY2xp
ZW50OwogICAgIEV3a1ZpZXcqIG1fZXdrVmlldzsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBt
X3BhZ2U7CiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CiAgICAg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7IC8vIFNpemUgaW4gZGV2aWNlIHVuaXRzLgogfTsK
IAogfQo=
</data>
<flag name="review"
          id="214564"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="218544"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>