<?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>60210</bug_id>
          
          <creation_ts>2011-05-04 14:21:40 -0700</creation_ts>
          <short_desc>REGRESSION (WebKit2): Windowed plugins don&apos;t scroll at the same speed as the rest of the page</short_desc>
          <delta_ts>2011-05-04 15:33:05 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.youtube.com/watch?v=CKJgcEgvx4U&amp;feature=topvideos_entertainment</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46401</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>jhoneycutt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>398253</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-04 14:21:40 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://www.youtube.com/watch?v=CKJgcEgvx4U&amp;feature=topvideos_entertainment
2. Scroll the page quickly

The YouTube video doesn&apos;t scroll at the same speed as the rest of the page. This does not happen in WebKit1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398254</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-04 14:21:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/8483441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398283</commentid>
    <comment_count>2</comment_count>
      <attachid>92322</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-04 15:04:10 -0700</bug_when>
    <thetext>Created attachment 92322
Clip and reposition windowed plugins when the UI process paints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398300</commentid>
    <comment_count>3</comment_count>
      <attachid>92322</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-04 15:19:07 -0700</bug_when>
    <thetext>Comment on attachment 92322
Clip and reposition windowed plugins when the UI process paints

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

&gt; Source/WebKit2/UIProcess/win/WebView.cpp:1542
&gt; +enum RedrawOrNot { DoNotRedraw, Redraw };
&gt; +static void setWindowRegion(HWND window, PassOwnPtr&lt;HRGN&gt; popRegion, RedrawOrNot redrawOrNot)
&gt; +{

Given this is only called in one place, why not always redraw? Do you have plans to use this elsewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398306</commentid>
    <comment_count>4</comment_count>
      <attachid>92322</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-05-04 15:23:17 -0700</bug_when>
    <thetext>Comment on attachment 92322
Clip and reposition windowed plugins when the UI process paints

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

&gt; Source/WebKit2/UIProcess/win/WebView.cpp:1560
&gt; +    HashMap&lt;HWND, ChildWindowGeometry&gt;::const_iterator end = geometriesToUpdate.end();
&gt; +    for (HashMap&lt;HWND, ChildWindowGeometry&gt;::const_iterator it = geometriesToUpdate.begin(); it != end; ++it) {

In WebKit2 we declare both iterators inside the for loop:

HashMap&lt;HWND, ChildWindowGeometry&gt;::const_iterator it = geometriesToUpdate.begin(), end = geometriesToUpdate.end();

&gt; Source/WebKit2/WebProcess/Plugins/PluginController.h:93
&gt; +    virtual void scheduleWindowedPluginGeometryUpdate(HWND, const WebCore::IntRect&amp; newRectInParentClientCoordinates, const WebCore::IntRect&amp; clipRectInPluginWindowCoordinates) = 0;

Please add a comment to indicate what this function does, like with nativeParentWindow().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398308</commentid>
    <comment_count>5</comment_count>
      <attachid>92322</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-04 15:26:06 -0700</bug_when>
    <thetext>Comment on attachment 92322
Clip and reposition windowed plugins when the UI process paints

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

&gt;&gt; Source/WebKit2/UIProcess/win/WebView.cpp:1542
&gt;&gt; +{
&gt; 
&gt; Given this is only called in one place, why not always redraw? Do you have plans to use this elsewhere?

I don&apos;t have any immediate plans, no. I&apos;ll remove it. (Though having the parameter does make the call to ::SetWindowRgn a little clearer.)

&gt;&gt; Source/WebKit2/UIProcess/win/WebView.cpp:1560
&gt;&gt; +    for (HashMap&lt;HWND, ChildWindowGeometry&gt;::const_iterator it = geometriesToUpdate.begin(); it != end; ++it) {
&gt; 
&gt; In WebKit2 we declare both iterators inside the for loop:
&gt; 
&gt; HashMap&lt;HWND, ChildWindowGeometry&gt;::const_iterator it = geometriesToUpdate.begin(), end = geometriesToUpdate.end();

Fixed.

&gt;&gt; Source/WebKit2/WebProcess/Plugins/PluginController.h:93
&gt;&gt; +    virtual void scheduleWindowedPluginGeometryUpdate(HWND, const WebCore::IntRect&amp; newRectInParentClientCoordinates, const WebCore::IntRect&amp; clipRectInPluginWindowCoordinates) = 0;
&gt; 
&gt; Please add a comment to indicate what this function does, like with nativeParentWindow().

Added this comment:

// Tells the controller that the given HWND needs to be positioned and clipped to the given coordinates sometime soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398317</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-04 15:33:05 -0700</bug_when>
    <thetext>Committed r85795: &lt;http://trac.webkit.org/changeset/85795&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92322</attachid>
            <date>2011-05-04 15:04:10 -0700</date>
            <delta_ts>2011-05-04 15:26:06 -0700</delta_ts>
            <desc>Clip and reposition windowed plugins when the UI process paints</desc>
            <filename>bug-60210-20110504180435.patch</filename>
            <type>text/plain</type>
            <size>16844</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU3NTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3MGI0ZGQ3MjMzYjI1Mjcy
YzJhYzAyZWU1N2I0NmZkY2QxZGE2ZDZjLi5iOWVhMDkyNDdiMzdiMDExMTA5YjI4OTRjNGQyNDg2
Y2ZmZTA5YjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMgQEAKIDIwMTEtMDUtMDQgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIENsaXAgYW5kIHJlcG9zaXRpb24g
d2luZG93ZWQgcGx1Z2lucyB3aGVuIHRoZSBVSSBwcm9jZXNzIHBhaW50cworCisgICAgICAgIFRo
aXMgZW5zdXJlcyB0aGF0IHRoZWlyIGdlb21ldHJ5IHVwZGF0ZXMgaW4gc3luYyB3aXRoIHRoZSBy
ZXN0IG9mIHRoZSBwYWdlLgorCisgICAgICAgIE1vc3Qgb2YgdGhpcyBwYXRjaCBpcyBqdXN0IHBs
dW1iaW5nIHRoZSBzY2hlZHVsZVdpbmRvd2VkUGx1Z2luR2VvbWV0cnlVcGRhdGUgYW5kCisgICAg
ICAgIHNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9tZXRyeVVwZGF0ZSBjYWxscyB0aHJvdWdoIGZyb20g
TmV0c2NhcGVQbHVnaW4gYWxsIHRoZSB3YXkgb3ZlciB0bworICAgICAgICBXZWJWaWV3LiBJJ3Zl
IHRyaWVkIHRvIGNhbGwgb3V0IHRoZSBvdGhlciBwYXJ0cyBiZWxvdy4KKworICAgICAgICBGaXhl
cyA8aHR0cDovL3dlYmtpdC5vcmcvYi82MDIxMD4gPHJkYXI6Ly9wcm9ibGVtLzg0ODM0NDE+IFJF
R1JFU1NJT04gKFdlYktpdDIpOiBXaW5kb3dlZAorICAgICAgICBwbHVnaW5zIGRvbid0IHNjcm9s
bCBhdCB0aGUgc2FtZSBzcGVlZCBhcyB0aGUgcmVzdCBvZiB0aGUgcGFnZQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2lu
L1dlYlBhZ2VQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2No
ZWR1bGVDaGlsZFdpbmRvd0dlb21ldHJ5VXBkYXRlKToKKyAgICAgICAgQWRkZWQgcGx1bWJpbmcu
CisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3OjpvblBhaW50RXZlbnQpOiBVcGRhdGUgY2hpbGQgd2luZG93cyBiZWZvcmUgcGFp
bnRpbmcgc28gdGhhdCB0aGV5IHdpbGwgc3RheQorICAgICAgICBpbiBzeW5jIHdpdGggdGhlIHJl
c3Qgb2YgdGhlIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNjaGVkdWxlQ2hpbGRX
aW5kb3dHZW9tZXRyeVVwZGF0ZSk6IEFkZCB0aGlzIHVwZGF0ZSBpbmZvcm1hdGlvbiB0byB0aGUK
KyAgICAgICAgc2V0IG9mIGdlb21ldHJpZXMgdG8gdXBkYXRlIG9uIHRoZSBuZXh0IHBhaW50Lgor
ICAgICAgICAoV2ViS2l0OjpzZXRXaW5kb3dSZWdpb24pOiBNb3ZlZCB0aGlzIGhlbHBlciBmdW5j
dGlvbiBoZXJlIGZyb20gTmV0c2NhcGVQbHVnaW5XaW4uY3BwLgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3Ojp1cGRhdGVDaGlsZFdpbmRvd0dlb21ldHJpZXMpOiBVcGRhdGUgdGhlIHNpemUsIHBv
c2l0aW9uLCBhbmQgY2xpcCByZWN0cyBvZgorICAgICAgICBhbGwgdGhlIGNoaWxkIHdpbmRvd3Mg
d2l0aCBzY2hlZHVsZWQgZ2VvbWV0cnkgdXBkYXRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy93
aW4vV2ViVmlldy5oOiBBZGRlZCBuZXcgbWVtYmVycyB0byB0cmFjayBhbmQgdXBkYXRlIGNoaWxk
IHdpbmRvdyBnZW9tZXRyaWVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luOjpwbGF0Zm9ybVBvc3RJbml0aWFsaXplKTogRG9uJ3Qgc2hvdyB0aGUgd2luZG93IGlt
bWVkaWF0ZWx5LiBMZXQgdGhlCisgICAgICAgIFVJIHByb2Nlc3MgdGFrZSBjYXJlIG9mIGl0Lgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1HZW9tZXRyeURpZENoYW5n
ZSk6IERvbid0IHVwZGF0ZSB0aGUgd2luZG93J3MgcG9zaXRpb24gb3IKKyAgICAgICAgY2xpcCBy
ZWN0LiBMZXQgdGhlIFVJIHByb2Nlc3MgdGFrZSBjYXJlIG9mIGl0LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnNj
aGVkdWxlV2luZG93ZWRQbHVnaW5HZW9tZXRyeVVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9tZXRyeVVw
ZGF0ZSk6CisgICAgICAgIEFkZGVkIHBsdW1iaW5nLgorCisyMDExLTA1LTA0ICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KKwogICAgICAgICBNYWtlIFNoYXJlYWJsZUJpdG1hcDo6bWFr
ZUNHSW1hZ2VDb3B5IHVzZSBhIGNvcHktb24td3JpdGUgY29weSBvbiBXaW5kb3dzIHdoZW4gcG9z
c2libGUKIAogICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzI2OT4gPHJkYXI6
Ly9wcm9ibGVtLzkxOTg3ODg+IFJFR1JFU1NJT04gKHI4MjE1MSk6IEV2ZXJ5IFdLVmlldwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggOTIwZDA1MWEwMTcxMzc1ZDljNWYx
OTRjMDQ3OWQ5NGM2ODUwZDcyOS4uOTFlZmI2NTQ1MWNmNzVjOWNjYTJkYjIxOTI4OTI0NDA0YWUz
ZDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMzksNiArMTM5
LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZl
V2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlUmVhY2hlZFNjcm9sbGlu
Z0xpbWl0KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDaGlsZFdpbmRvd0dl
b21ldHJ5VXBkYXRlKEhXTkQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RJblBhcmVudENs
aWVudENvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdEluQ2hpbGRD
bGllbnRDb29yZGluYXRlcykgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmQ4Y2M2YTU0MmEwZGZkZWQ1
NWU4MDJhYzkzYzNlNDA2YTc2OTc3Yi4uODliMDQyNGMwNjI1ODE3N2FmNDVmZWQ5MTJhMjAwMzUy
ZWJmYTgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzMz
LDYgKzczMywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVEaXNj
YXJkYWJsZVN0YXRlKCk7CiAKKyNpZiBQTEFURk9STShXSU4pCisgICAgdm9pZCBzY2hlZHVsZUNo
aWxkV2luZG93R2VvbWV0cnlVcGRhdGUodWludDY0X3Qgd2luZG93LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0SW5QYXJlbnRDbGllbnRDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY2xpcFJlY3RJbkNoaWxkQ2xpZW50Q29vcmRpbmF0ZXMpOworI2VuZGlmCisKICAgICBQ
YWdlQ2xpZW50KiBtX3BhZ2VDbGllbnQ7CiAgICAgV2ViTG9hZGVyQ2xpZW50IG1fbG9hZGVyQ2xp
ZW50OwogICAgIFdlYlBvbGljeUNsaWVudCBtX3BvbGljeUNsaWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJkNTJiMjA4
YzE4NTIxNzBiMmMxNWEyZjNkY2QwMjdhY2FjYjIxZWMuLmU3ODE4NWU2ODA3ZTIyNGYyOGIxMTc1
Y2Y0YTBmOWYxNWQ2OWQ2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQxLDYgKzI0MSw5IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICMgV2luZG93cyA3IEdlc3R1cmUg
TWVzc2FnZXMKICAgICBTZXRHZXN0dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0KGJvb2wgbGltaXRS
ZWFjaGVkKQorCisgICAgIyBNaXNjZWxsYW5lb3VzIFdpbmRvd3MgbWVzc2FnZXMKKyAgICBTY2hl
ZHVsZUNoaWxkV2luZG93R2VvbWV0cnlVcGRhdGUodWludDY0X3Qgd2luZG93LCBXZWJDb3JlOjpJ
bnRSZWN0IHJlY3RJblBhcmVudENsaWVudENvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRSZWN0IGNs
aXBSZWN0SW5DaGlsZENsaWVudENvb3JkaW5hdGVzKQogI2VuZGlmCiAKICAgICAjIFNlYXJjaCBw
b3B1cCBtZW51cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQ
YWdlUHJveHlXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQYWdlUHJv
eHlXaW4uY3BwCmluZGV4IDdlOTE4MzU3NGJkNTc1YjBhNjBiYmUwMDY2OWVjZDliZTJkMTQ1OTMu
LjA4ZmVhNzVkYzVlMGY0MjlhNDU0NDNkMzIzMTEwNTIxYzU1MjJkM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5jcHAKQEAgLTcwLDQgKzcw
LDkgQEAgSFdORCBXZWJQYWdlUHJveHk6Om5hdGl2ZVdpbmRvdygpIGNvbnN0CiAgICAgcmV0dXJu
IG1fcGFnZUNsaWVudC0+bmF0aXZlV2luZG93KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
Y2hlZHVsZUNoaWxkV2luZG93R2VvbWV0cnlVcGRhdGUodWludDY0X3Qgd2luZG93LCBjb25zdCBJ
bnRSZWN0JiByZWN0SW5QYXJlbnRDbGllbnRDb29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgY2xp
cFJlY3RJbkNoaWxkQ2xpZW50Q29vcmRpbmF0ZXMpCit7CisgICAgbV9wYWdlQ2xpZW50LT5zY2hl
ZHVsZUNoaWxkV2luZG93R2VvbWV0cnlVcGRhdGUocmVpbnRlcnByZXRfY2FzdDxIV05EPih3aW5k
b3cpLCByZWN0SW5QYXJlbnRDbGllbnRDb29yZGluYXRlcywgY2xpcFJlY3RJbkNoaWxkQ2xpZW50
Q29vcmRpbmF0ZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCmluZGV4IGNiNjM4NDdjY2NkMTJlMmZhMGEyNjgxYjg5
ZmIxNGQ1NjJmZGE5MzUuLmYxMWNiNDEyYTYzOTIyMDFkY2Q2NTdlYTMxM2Q2NjNmYTY0OTYwOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtNjg1LDYgKzY4
NSwxMCBAQCBzdGF0aWMgT3duUHRyPEhCUlVTSD4gY3JlYXRlQnJ1c2goY29uc3QgQ29sb3ImIGNv
bG9yKQogCiBMUkVTVUxUIFdlYlZpZXc6Om9uUGFpbnRFdmVudChIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNLCBMUEFSQU0sIGJvb2wmIGhhbmRsZWQpCiB7CisgICAgLy8gVXBkYXRlIGNo
aWxkIHdpbmRvd3Mgbm93IHNvIHRoYXQgYW55IGFyZWFzIG9mIG91ciB3aW5kb3cgdGhleSByZXZl
YWwgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUKKyAgICAvLyBpbnZhbGlkIHJlZ2lvbiB0aGF0IDo6
QmVnaW5QYWludCBzZWVzLgorICAgIHVwZGF0ZUNoaWxkV2luZG93R2VvbWV0cmllcygpOworCiAg
ICAgUEFJTlRTVFJVQ1QgcGFpbnRTdHJ1Y3Q7CiAgICAgSERDIGhkYyA9IDo6QmVnaW5QYWludCht
X3dpbmRvdywgJnBhaW50U3RydWN0KTsKIApAQCAtMTUyNCw2ICsxNTI4LDUyIEBAIEhXTkQgV2Vi
Vmlldzo6bmF0aXZlV2luZG93KCkKICAgICByZXR1cm4gbV93aW5kb3c7CiB9CiAKK3ZvaWQgV2Vi
Vmlldzo6c2NoZWR1bGVDaGlsZFdpbmRvd0dlb21ldHJ5VXBkYXRlKEhXTkQgd2luZG93LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0SW5QYXJlbnRDbGllbnRDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3RJbkNoaWxkQ2xpZW50Q29vcmRpbmF0ZXMpCit7Cisg
ICAgQ2hpbGRXaW5kb3dHZW9tZXRyeSBnZW9tZXRyeTsKKyAgICBnZW9tZXRyeS5yZWN0SW5QYXJl
bnRDbGllbnRDb29yZGluYXRlcyA9IHJlY3RJblBhcmVudENsaWVudENvb3JkaW5hdGVzOworICAg
IGdlb21ldHJ5LmNsaXBSZWN0SW5DaGlsZENsaWVudENvb3JkaW5hdGVzID0gY2xpcFJlY3RJbkNo
aWxkQ2xpZW50Q29vcmRpbmF0ZXM7CisKKyAgICBtX2NoaWxkV2luZG93R2VvbWV0cmllc1RvVXBk
YXRlLnNldCh3aW5kb3csIGdlb21ldHJ5KTsKK30KKworZW51bSBSZWRyYXdPck5vdCB7IERvTm90
UmVkcmF3LCBSZWRyYXcgfTsKK3N0YXRpYyB2b2lkIHNldFdpbmRvd1JlZ2lvbihIV05EIHdpbmRv
dywgUGFzc093blB0cjxIUkdOPiBwb3BSZWdpb24sIFJlZHJhd09yTm90IHJlZHJhd09yTm90KQor
eworICAgIE93blB0cjxIUkdOPiByZWdpb24gPSBwb3BSZWdpb247CisKKyAgICBpZiAoITo6U2V0
V2luZG93UmduKHdpbmRvdywgcmVnaW9uLmdldCgpLCByZWRyYXdPck5vdCA9PSBSZWRyYXcpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBXaW5kb3dzIG93bnMgdGhlIHJlZ2lvbiBub3cuCisg
ICAgcmVnaW9uLmxlYWtQdHIoKTsKK30KKwordm9pZCBXZWJWaWV3Ojp1cGRhdGVDaGlsZFdpbmRv
d0dlb21ldHJpZXMoKQoreworICAgIEhhc2hNYXA8SFdORCwgQ2hpbGRXaW5kb3dHZW9tZXRyeT4g
Z2VvbWV0cmllc1RvVXBkYXRlOworICAgIGdlb21ldHJpZXNUb1VwZGF0ZS5zd2FwKG1fY2hpbGRX
aW5kb3dHZW9tZXRyaWVzVG9VcGRhdGUpOworCisgICAgSERXUCBkZWZlcldpbmRvd1BvcyA9IDo6
QmVnaW5EZWZlcldpbmRvd1BvcyhnZW9tZXRyaWVzVG9VcGRhdGUuc2l6ZSgpKTsKKworICAgIEhh
c2hNYXA8SFdORCwgQ2hpbGRXaW5kb3dHZW9tZXRyeT46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGdl
b21ldHJpZXNUb1VwZGF0ZS5lbmQoKTsKKyAgICBmb3IgKEhhc2hNYXA8SFdORCwgQ2hpbGRXaW5k
b3dHZW9tZXRyeT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ2VvbWV0cmllc1RvVXBkYXRlLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBIV05EIHdpbmRvdyA9IGl0LT5maXJzdDsK
KyAgICAgICAgaWYgKCE6OklzV2luZG93KHdpbmRvdykpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBjb25zdCBDaGlsZFdpbmRvd0dlb21ldHJ5JiBnZW9tZXRyeSA9IGl0LT5zZWNv
bmQ7CisKKyAgICAgICAgY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCA9IGdlb21ldHJ5LnJlY3RJ
blBhcmVudENsaWVudENvb3JkaW5hdGVzOworICAgICAgICBkZWZlcldpbmRvd1BvcyA9IDo6RGVm
ZXJXaW5kb3dQb3MoZGVmZXJXaW5kb3dQb3MsIHdpbmRvdywgMCwgd2luZG93UmVjdC54KCksIHdp
bmRvd1JlY3QueSgpLCB3aW5kb3dSZWN0LndpZHRoKCksIHdpbmRvd1JlY3QuaGVpZ2h0KCksIFNX
UF9TSE9XV0lORE9XIHwgU1dQX05PQUNUSVZBVEUgfCBTV1BfTk9PV05FUlpPUkRFUiB8IFNXUF9O
T1pPUkRFUik7CisKKyAgICAgICAgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QgPSBnZW9tZXRyeS5j
bGlwUmVjdEluQ2hpbGRDbGllbnRDb29yZGluYXRlczsKKyAgICAgICAgc2V0V2luZG93UmVnaW9u
KHdpbmRvdywgYWRvcHRQdHIoOjpDcmVhdGVSZWN0UmduKGNsaXBSZWN0LngoKSwgY2xpcFJlY3Qu
eSgpLCBjbGlwUmVjdC5tYXhYKCksIGNsaXBSZWN0Lm1heFkoKSkpLCBSZWRyYXcpOworICAgIH0K
KworICAgIDo6RW5kRGVmZXJXaW5kb3dQb3MoZGVmZXJXaW5kb3dQb3MpOworfQorCiAvLyBXZWJD
b3JlOjpXaW5kb3dNZXNzYWdlTGlzdGVuZXIKIAogdm9pZCBXZWJWaWV3Ojp3aW5kb3dSZWNlaXZl
ZE1lc3NhZ2UoSFdORCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCmluZGV4IDU3OGM4Y2ZjOTFjMjMzYjhlNDcw
MDk2MTg3YTBhYTUxNGQ1OWYxMmEuLjc2Yzc4Mzk4MzFlYWVhNjRmNzU0Yjc4NTMxNWVjYzAxYTk3
MDEyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCkBAIC0xNjEsNiAr
MTYxLDggQEAgcHJpdmF0ZToKICAgICBIQ1VSU09SIGN1cnNvclRvU2hvdygpIGNvbnN0OwogICAg
IHZvaWQgdXBkYXRlTmF0aXZlQ3Vyc29yKCk7CiAKKyAgICB2b2lkIHVwZGF0ZUNoaWxkV2luZG93
R2VvbWV0cmllcygpOworCiAgICAgLy8gUGFnZUNsaWVudAogICAgIHZpcnR1YWwgUGFzc093blB0
cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAt
MjA5LDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvdW50U3RyaW5nTWF0
Y2hlc0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluZE9wdGlvbnMsIHVu
c2lnbmVkIG1heE1hdGNoQ291bnQpOwogCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVdpbmRvdygp
OworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNoaWxkV2luZG93R2VvbWV0cnlVcGRhdGUoSFdO
RCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdEluUGFyZW50Q2xpZW50Q29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0SW5DaGlsZENsaWVudENvb3JkaW5hdGVz
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0KGJv
b2wgbGltaXRSZWFjaGVkKSB7IG1fZ2VzdHVyZVJlYWNoZWRTY3JvbGxpbmdMaW1pdCA9IGxpbWl0
UmVhY2hlZDsgfQogCkBAIC0yNjUsNiArMjY4LDEzIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
Z2VzdHVyZVJlYWNoZWRTY3JvbGxpbmdMaW1pdDsKIAorICAgIHN0cnVjdCBDaGlsZFdpbmRvd0dl
b21ldHJ5IHsKKyAgICAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0SW5QYXJlbnRDbGllbnRDb29y
ZGluYXRlczsKKyAgICAgICAgV2ViQ29yZTo6SW50UmVjdCBjbGlwUmVjdEluQ2hpbGRDbGllbnRD
b29yZGluYXRlczsKKyAgICB9OworCisgICAgSGFzaE1hcDxIV05ELCBDaGlsZFdpbmRvd0dlb21l
dHJ5PiBtX2NoaWxkV2luZG93R2VvbWV0cmllc1RvVXBkYXRlOworCiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQogICAgIE93blB0cjxXZWJDb3JlOjpGdWxsU2NyZWVuQ29udHJvbGxlcj4gbV9m
dWxsU2NyZWVuQ29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1
Z2luV2luLmNwcAppbmRleCA3Mzc0MWQ4MzIxNzhlY2I5NDM4Y2E3NWQ2MmQyYmY3MGE4ZjQ1MDhh
Li40OGJkMWVlOGIzYTJmMDc1NGI2ZmVmMGM5YTJiOTdkZTY5ODg5ODU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1
Z2luV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcApAQCAtMTAxLDcgKzEwMSw4IEBAIGJvb2wgTmV0
c2NhcGVQbHVnaW46OnBsYXRmb3JtUG9zdEluaXRpYWxpemUoKQogCiAgICAgcmVnaXN0ZXJQbHVn
aW5WaWV3KCk7CiAKLSAgICBtX3dpbmRvdyA9IDo6Q3JlYXRlV2luZG93RXhXKDAsIHdpbmRvd0Ns
YXNzTmFtZSwgMCwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAwLCAwLCAwLCAwLCBjb250YWluaW5n
V2luZG93KCksIDAsIGluc3RhbmNlSGFuZGxlKCksIDApOworICAgIC8vIFN0YXJ0IG91dCB3aXRo
IHRoZSB3aW5kb3cgaGlkZGVuLiBUaGUgVUkgcHJvY2VzcyB3aWxsIHRha2UgY2FyZSBvZiBzaG93
aW5nIGl0IG9uY2UgaXQncyBjb3JyZWN0bHkgcG9zaXRpb25lZCB0aGUgd2luZG93LgorICAgIG1f
d2luZG93ID0gOjpDcmVhdGVXaW5kb3dFeFcoMCwgd2luZG93Q2xhc3NOYW1lLCAwLCBXU19DSElM
RCwgMCwgMCwgMCwgMCwgY29udGFpbmluZ1dpbmRvdygpLCAwLCBpbnN0YW5jZUhhbmRsZSgpLCAw
KTsKICAgICBpZiAoIW1fd2luZG93KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEzOCwx
OCArMTM5LDYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1JbnZhbGlkYXRlKGNvbnN0
IEludFJlY3QmIGludmFsaWRSZWN0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1lbnVtIFJlZHJh
d09yTm90IHsgRG9Ob3RSZWRyYXcsIFJlZHJhdyB9Owotc3RhdGljIHZvaWQgc2V0V2luZG93UmVn
aW9uKEhXTkQgd2luZG93LCBQYXNzT3duUHRyPEhSR04+IHBvcFJlZ2lvbiwgUmVkcmF3T3JOb3Qg
cmVkcmF3T3JOb3QpCi17Ci0gICAgT3duUHRyPEhSR04+IHJlZ2lvbiA9IHBvcFJlZ2lvbjsKLQot
ICAgIGlmICghOjpTZXRXaW5kb3dSZ24od2luZG93LCByZWdpb24uZ2V0KCksIHJlZHJhd09yTm90
ID09IFJlZHJhdykpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFdpbmRvd3Mgb3ducyB0aGUg
cmVnaW9uIG5vdy4KLSAgICByZWdpb24ubGVha1B0cigpOwotfQotCiB2b2lkIE5ldHNjYXBlUGx1
Z2luOjpwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hhbmdlKCkKIHsKICAgICBpZiAoIW1faXNXaW5kb3dl
ZCkKQEAgLTE1OCwxMiArMTQ3LDExIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtR2Vv
bWV0cnlEaWRDaGFuZ2UoKQogICAgIEludFJlY3QgY2xpcFJlY3RJblBsdWdpbldpbmRvd0Nvb3Jk
aW5hdGVzID0gbV9jbGlwUmVjdDsKICAgICBjbGlwUmVjdEluUGx1Z2luV2luZG93Q29vcmRpbmF0
ZXMubW92ZSgtbV9mcmFtZVJlY3QueCgpLCAtbV9mcmFtZVJlY3QueSgpKTsKIAotICAgIE93blB0
cjxIUkdOPiBjbGlwUmVnaW9uID0gYWRvcHRQdHIoOjpDcmVhdGVSZWN0UmduKGNsaXBSZWN0SW5Q
bHVnaW5XaW5kb3dDb29yZGluYXRlcy54KCksIGNsaXBSZWN0SW5QbHVnaW5XaW5kb3dDb29yZGlu
YXRlcy55KCksIGNsaXBSZWN0SW5QbHVnaW5XaW5kb3dDb29yZGluYXRlcy5tYXhYKCksIGNsaXBS
ZWN0SW5QbHVnaW5XaW5kb3dDb29yZGluYXRlcy5tYXhZKCkpKTsKLSAgICBzZXRXaW5kb3dSZWdp
b24obV93aW5kb3csIGNsaXBSZWdpb24ucmVsZWFzZSgpLCBSZWRyYXcpOworICAgIC8vIFdlIG9u
bHkgdXBkYXRlIHRoZSBzaXplIGhlcmUgYW5kIGxldCB0aGUgVUkgcHJvY2VzcyB1cGRhdGUgb3Vy
IHBvc2l0aW9uIGFuZCBjbGlwIHJlY3Qgc28KKyAgICAvLyB0aGF0IHdlIGNhbiBrZWVwIG91ciBw
b3NpdGlvbiBpbiBzeW5jIHdoZW4gc2Nyb2xsaW5nLCBldGMuIFNlZSA8aHR0cDovL3dlYmtpdC5v
cmcvYi82MDIxMD4uCisgICAgOjpTZXRXaW5kb3dQb3MobV93aW5kb3csIDAsIDAsIDAsIG1fZnJh
bWVSZWN0LndpZHRoKCksIG1fZnJhbWVSZWN0LmhlaWdodCgpLCBTV1BfTk9BQ1RJVkFURSB8IFNX
UF9OT01PVkUgfCBTV1BfTk9PV05FUlpPUkRFUiB8IFNXUF9OT1pPUkRFUik7CiAKLSAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG9ubHkgdXBkYXRlIHRoZSBzaXplIGhlcmUgYW5kIGxldCB0aGUgVUkg
cHJvY2VzcyB1cGRhdGUgb3VyIHBvc2l0aW9uIHNvCi0gICAgLy8gdGhhdCB3ZSBjYW4ga2VlcCBv
dXIgcG9zaXRpb24gaW4gc3luYyB3aGVuIHNjcm9sbGluZywgZXRjLgotICAgIDo6TW92ZVdpbmRv
dyhtX3dpbmRvdywgbV9mcmFtZVJlY3QueCgpLCBtX2ZyYW1lUmVjdC55KCksIG1fZnJhbWVSZWN0
LndpZHRoKCksIG1fZnJhbWVSZWN0LmhlaWdodCgpLCBUUlVFKTsKKyAgICBtX3BsdWdpbkNvbnRy
b2xsZXItPnNjaGVkdWxlV2luZG93ZWRQbHVnaW5HZW9tZXRyeVVwZGF0ZShtX3dpbmRvdywgbV9m
cmFtZVJlY3QsIGNsaXBSZWN0SW5QbHVnaW5XaW5kb3dDb29yZGluYXRlcyk7CiB9CiAKIHZvaWQg
TmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAppbmRleCBhZDY2MWRkZTk1NTJh
OThiNTM4YzYyNjIyYzZlM2Q5ZTdiMjg4NjkwLi44NWQ3NWMyNGJkNDI5M2IxZjhlODRmNGFiYWM5
NGYyNTlmNDZmZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKQEAgLTg5LDYgKzg5LDggQEAgcHVibGljOgogI2lmIFBM
QVRGT1JNKFdJTikKICAgICAvLyBUaGUgd2luZG93IHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIHRo
ZSBwbHVnaW4ncyB3aW5kb3cuCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVBhcmVudFdpbmRvdygp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVdpbmRvd2VkUGx1Z2luR2VvbWV0cnlV
cGRhdGUoSFdORCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgbmV3UmVjdEluUGFyZW50Q2xpZW50
Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0SW5QbHVnaW5XaW5k
b3dDb29yZGluYXRlcykgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYWRi
MzMxNTZkZGQ3MzlhMmI2N2E4MDMxY2VlYjI5MWZmMGQ2YmM2Ni4uZmViMWU1YzFmNWFjMDdiYjBh
YzdmNGM5M2UzNDNhODk3ZGFiODU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTAwMyw2ICsxMDAzLDExIEBAIEhXTkQgUGx1
Z2luVmlldzo6bmF0aXZlUGFyZW50V2luZG93KCkKIHsKICAgICByZXR1cm4gbV93ZWJQYWdlLT5u
YXRpdmVXaW5kb3coKTsKIH0KKwordm9pZCBQbHVnaW5WaWV3OjpzY2hlZHVsZVdpbmRvd2VkUGx1
Z2luR2VvbWV0cnlVcGRhdGUoSFdORCBwbHVnaW5XaW5kb3csIGNvbnN0IEludFJlY3QmIHJlY3RJ
blBhcmVudENsaWVudENvb3JkaW5hdGVzLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdEluUGx1Z2lu
V2luZG93Q29vcmRpbmF0ZXMpCit7CisgICAgbV93ZWJQYWdlLT5zY2hlZHVsZUNoaWxkV2luZG93
R2VvbWV0cnlVcGRhdGUocGx1Z2luV2luZG93LCByZWN0SW5QYXJlbnRDbGllbnRDb29yZGluYXRl
cywgY2xpcFJlY3RJblBsdWdpbldpbmRvd0Nvb3JkaW5hdGVzKTsKK30KICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmgKaW5kZXggZTg5ZWQ5MDAzMzI1ZjgyNTMwM2IyNjNiZDRjNmFhOWMwYTJiMDU1Yi4u
ZTUyMWJiN2Q1NDBmZjM5M2I2NTA0ODU3ZmIwZmZhNThmMWIwYmVkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xMzIsNiArMTMyLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvUGx1Z2luKCk7CiAj
aWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVXaW5kb3dlZFBsdWdpbkdlb21ldHJ5VXBkYXRlKEhX
TkQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RJbkNsaWVudENvb3JkaW5hdGVzLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdEluUGx1Z2luV2luZG93Q29vcmRpbmF0ZXMpOwog
I2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4
dElucHV0RW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IDFjNDgwNTcxNmZiZmJiZTIyYTcwYjJhMTc1Y2Q4YTAxZGE1OGRlMTIu
LjYxNmRkYzgyNTkzY2MwYWJkNDBlZDYzODg1YzczODlkZDgwYzJlY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjU4LDYgKzI1OCw3IEBAIHB1
YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOyB9
CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgSFdORCBuYXRpdmVXaW5kb3coKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVdpbmRvdzsgfQorICAgIHZvaWQgc2NoZWR1bGVDaGlsZFdpbmRvd0dlb21l
dHJ5VXBkYXRlKEhXTkQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RJblBhcmVudENsaWVu
dENvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdEluQ2hpbGRDbGll
bnRDb29yZGluYXRlcyk7CiAjZW5kaWYKIAogICAgIGJvb2wgd2luZG93SXNGb2N1c2VkKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dl
YlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQ
YWdlV2luLmNwcAppbmRleCA5YzcyMDZhOTJkNGNkMmZjNTAwY2Y4NmIyMjc5Njg1NDYwMTNhNGEw
Li42ODcyMjcxNGY5ZTZmNjQ5MTA3MjZlMDIzNmEzMjIwM2UyN2EwNzkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAg
LTI3LDkgKzI3LDExIEBACiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogCiAjaW5jbHVkZSAiRm9udFNt
b290aGluZ0xldmVsLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRSZW5kZXJpbmdNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNDQxLDQg
KzQ0Myw5IEBAIHZvaWQgV2ViUGFnZTo6Z2VzdHVyZURpZEVuZCgpCiAgICAgbV9nZXN0dXJlVGFy
Z2V0Tm9kZSA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2NoZWR1bGVDaGlsZFdpbmRv
d0dlb21ldHJ5VXBkYXRlKEhXTkQgd2luZG93LCBjb25zdCBJbnRSZWN0JiByZWN0SW5QYXJlbnRD
bGllbnRDb29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgY2xpcFJlY3RJbkNoaWxkQ2xpZW50Q29v
cmRpbmF0ZXMpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9tZXRyeVVwZGF0
ZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpLCByZWN0SW5QYXJlbnRDbGllbnRD
b29yZGluYXRlcywgY2xpcFJlY3RJbkNoaWxkQ2xpZW50Q29vcmRpbmF0ZXMpLCBtX3BhZ2VJRCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="85272"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>