<?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>126272</bug_id>
          
          <creation_ts>2013-12-28 12:40:11 -0800</creation_ts>
          <short_desc>Refactor ViewState handling for drawing area / plugins</short_desc>
          <delta_ts>2014-01-02 14:16:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>buildbot</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963182</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-28 12:40:11 -0800</bug_when>
    <thetext>Instead of all ViewState changes being handled by the WebPage, notify the DrawingArea &amp; PluginView to better encapsulate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963183</commentid>
    <comment_count>1</comment_count>
      <attachid>220077</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-28 12:50:59 -0800</bug_when>
    <thetext>Created attachment 220077
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963187</commentid>
    <comment_count>2</comment_count>
      <attachid>220077</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-12-28 13:22:28 -0800</bug_when>
    <thetext>Comment on attachment 220077
Fix

Attachment 220077 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6287263306612736</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963188</commentid>
    <comment_count>3</comment_count>
      <attachid>220079</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-28 13:28:03 -0800</bug_when>
    <thetext>Created attachment 220079
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963195</commentid>
    <comment_count>4</comment_count>
      <attachid>220079</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-12-28 19:21:36 -0800</bug_when>
    <thetext>Comment on attachment 220079
Fix

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2100
&gt; +    for (auto* pluginView : m_pluginViews)
&gt; +        pluginView-&gt;viewStateDidChange(changed);

randomly, could viewStateDidChange execute JS? (e.g. via an event handler?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963196</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-28 22:51:43 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 220079 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220079&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2100
&gt; &gt; +    for (auto* pluginView : m_pluginViews)
&gt; &gt; +        pluginView-&gt;viewStateDidChange(changed);
&gt; 
&gt; randomly, could viewStateDidChange execute JS? (e.g. via an event handler?)

Are you thinking WebPage::viewStateDidChange, or PluginView::viewStateDidChange specifically?

WebPage::viewStateDidChange can cause JS execution (if the IsVisible state changes this may fire a DOM event, plus focus/blur events may fire?) – but PluginView::viewStateDidChange should just result in a couple of async messages being fired off to the plugin process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963809</commentid>
    <comment_count>6</comment_count>
      <attachid>220079</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-02 11:42:14 -0800</bug_when>
    <thetext>Comment on attachment 220079
Fix

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

&gt; Source/WebKit2/WebProcess/Plugins/PluginView.cpp:498
&gt; +        m_parameters.layerHostingMode = m_webPage-&gt;layerHostingMode();

does this need to be inside a HAVE(LAYER_HOSTING_IN_WINDOW_SERVER)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963880</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-02 14:16:40 -0800</bug_when>
    <thetext>Fixed in r161226</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220077</attachid>
            <date>2013-12-28 12:50:59 -0800</date>
            <delta_ts>2013-12-28 13:28:03 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>126272.1.patch</filename>
            <type>text/plain</type>
            <size>12548</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTExMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEzLTEyLTI4ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBW
aWV3U3RhdGUgaGFuZGxpbmcgZm9yIGRyYXdpbmcgYXJlYSAvIHBsdWdpbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjI3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgYWxsIFZpZXdT
dGF0ZSBjaGFuZ2VzIGJlaW5nIGhhbmRsZWQgYnkgdGhlIFdlYlBhZ2UsIG5vdGlmeSB0aGUgRHJh
d2luZ0FyZWEgJiBQbHVnaW5WaWV3IHRvIGJldHRlciBlbmNhcHN1bGF0ZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6dmlld1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmll
dzo6cGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAgICAgLSBhZGRlZCwgaGFu
ZGxlIGNoYW5nZXMgaW4gVmlld1N0YXRlIHJlbGV2YW50IHRvIFBsdWdpblZpZXcuCisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OmRpZEluaXRpYWxpemVQbHVnaW4pOgorICAgICAgICAgICAg
LSBoZWxwZXIgZnVuY3Rpb24gcmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oOgorICAgICAgICAgICAgLSBhZGRlZC9yZW1vdmVkIGZ1bmN0aW9uIGRlY2xh
cmF0aW9ucy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAg
ICAgICAtIGRlY2xhcmUgdmlld1N0YXRlRGlkQ2hhbmdlLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZl
KToKKyAgICAgICAgICAgIC0gbm8gbmVlZCB0byBub3RpZnkgcGx1Z2luLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRWaWV3SXNWaXNpYmxlKToKKyAgICAgICAgICAgIC0gbm8gbmVlZCB0
byBub3RpZnkgZHJhd2luZyBhcmVhLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRWaWV3
U3RhdGUpOgorICAgICAgICAgICAgLSBzZW5kIHZpZXdTdGF0ZURpZENoYW5nZSB0byBkcmF3aW5n
IGFyZWEgLyBwbHVnaW4uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFdpbmRvd0lzVmlz
aWJsZSk6CisgICAgICAgICAgICAtIG5vIG5lZWQgdG8gbm90aWZ5IHBsdWdpbi4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpsYXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgICAgIC0gcmVtb3ZlZCBzZXRMYXllckhvc3Rp
bmdNb2RlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgICAgIC0gZGVjbGFyZSB2aWV3U3RhdGVEaWRDaGFu
Z2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICAgICAtIGFkZGVkLCBoYW5kbGUg
Y2hhbmdlcyBpbiBWaWV3U3RhdGUgcmVsZXZhbnQgdG8gRHJhd2luZ0FyZWEuCisKIDIwMTMtMTIt
MjggIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbV0sy
XVtTT1VQXSBGaXggaGFuZGxpbmcgb2YgY29va2llcyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBl
bmFibGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MSwyMSArNDgx
LDMyIEBAIHZvaWQgUGx1Z2luVmlldzo6d2ViUGFnZURlc3Ryb3llZCgpCiAgICAgbV93ZWJQYWdl
ID0gMDsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgICAgCi12b2lkIFBsdWdpblZpZXc6OnNldFdp
bmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkKK3ZvaWQgUGx1Z2luVmlldzo6dmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKIHsKLSAgICBpZiAoIW1f
aXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGx1
Z2luLT53aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZCh3aW5kb3dJc1Zpc2libGUpOworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZShjaGFuZ2VkKTsKKyNlbmRp
ZgogfQogCi12b2lkIFBsdWdpblZpZXc6OnNldFdpbmRvd0lzRm9jdXNlZChib29sIHdpbmRvd0lz
Rm9jdXNlZCkKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtVmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKIHsKLSAgICBpZiAoIW1f
aXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCisgICAgaWYgKCFtX3BsdWdpbikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgbV9wYXJhbWV0
ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1c0NoYW5nZWQo
d2luZG93SXNGb2N1c2VkKTsgICAgCisgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OldpbmRv
d0lzVmlzaWJsZSkKKyAgICAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKG1f
d2ViUGFnZS0+d2luZG93SXNWaXNpYmxlKCkpOworICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRl
OjpXaW5kb3dJc0FjdGl2ZSkKKyAgICAgICAgbV9wbHVnaW4tPndpbmRvd0ZvY3VzQ2hhbmdlZCht
X3dlYlBhZ2UtPndpbmRvd0lzRm9jdXNlZCgpKTsKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5f
V0lORE9XX1NFUlZFUikKKyAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNMYXllcldpbmRv
d1NlcnZlckhvc3RlZCkKKyAgICAgICAgbV9wbHVnaW4tPnNldExheWVySG9zdGluZ01vZGUobV93
ZWJQYWdlLT5sYXllckhvc3RpbmdNb2RlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmll
dzo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCkBAIC01MjYsMTkgKzUz
Nyw2IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3OjpzZXRMYXllckhvc3RpbmdNb2RlKExheWVy
SG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSkKLXsKLSAgICBpZiAoIW1fcGx1Z2luKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1faXNJbml0aWFsaXplZCkgewotICAgICAgICBtX3Bh
cmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSA9IGxheWVySG9zdGluZ01vZGU7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBtX3BsdWdpbi0+c2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhv
c3RpbmdNb2RlKTsKLX0KLSAgICAKIE5TT2JqZWN0ICpQbHVnaW5WaWV3OjphY2Nlc3NpYmlsaXR5
T2JqZWN0KCkgY29uc3QKIHsKICAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4p
CkBAIC02MjQsOCArNjIyLDggQEAgdm9pZCBQbHVnaW5WaWV3OjpkaWRJbml0aWFsaXplUGx1Z2lu
KCkKICAgICAgICAgICAgIG1fcGx1Z2luRWxlbWVudC0+ZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGlj
aygpOwogICAgIH0KIAotICAgIHNldFdpbmRvd0lzVmlzaWJsZShtX3dlYlBhZ2UtPndpbmRvd0lz
VmlzaWJsZSgpKTsKLSAgICBzZXRXaW5kb3dJc0ZvY3VzZWQobV93ZWJQYWdlLT53aW5kb3dJc0Zv
Y3VzZWQoKSk7CisgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKG1fd2ViUGFn
ZS0+d2luZG93SXNWaXNpYmxlKCkpOworICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1c0NoYW5nZWQo
bV93ZWJQYWdlLT53aW5kb3dJc0ZvY3VzZWQoKSk7CiAjZW5kaWYKIAogICAgIGlmICh3YW50c1do
ZWVsRXZlbnRzKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gMTYxMTA3KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbi5o
IgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJWaWV3U3RhdGUuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CkBAIC02OCwxMyArNjksMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgbWFudWFsTG9hZERpZEZpbmlzaExvYWRpbmcoKTsKICAgICB2b2lkIG1hbnVhbExv
YWREaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKIAorICAgIHZvaWQgdmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7CisKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgdm9pZCBzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCk7Ci0gICAgdm9pZCBzZXRX
aW5kb3dJc0ZvY3VzZWQoYm9vbCk7CisgICAgdm9pZCBwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpOwogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0
b3IoZmxvYXQpOwogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgYm9v
bCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0
aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBk
ZkRvY3VtZW50Rm9yUHJpbnRpbmcoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbi0+cGRmRG9jdW1l
bnRGb3JQcmludGluZygpOyB9CiAgICAgTlNPYmplY3QgKmFjY2Vzc2liaWxpdHlPYmplY3QoKSBj
b25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNpbmNsdWRlICJMYXllclRy
ZWVDb250ZXh0LmgiCisjaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTEwNSw5ICsxMDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0
aW9uPHZvaWQgKCk+Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBhaW50aW5nKCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZVBhaW50aW5nKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgeyB9CisgICAgdmlydHVhbCB2
b2lkIHZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpIHsgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShy
ZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MTIsMjEgKzE5MTIsMTMgQEAgdm9pZCBXZWJQ
YWdlOjpjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcgogdm9pZCBXZWJQYWdlOjpzZXRBY3RpdmUo
Ym9vbCBpc0FjdGl2ZSkKIHsKICAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEFjdGl2
ZShpc0FjdGl2ZSk7Ci0KLSNpZiBQTEFURk9STShNQUMpICAgIAotICAgIC8vIFRlbGwgYWxsIG91
ciBwbHVnLWluIHZpZXdzIHRoYXQgdGhlIHdpbmRvdyBmb2N1cyBjaGFuZ2VkLgotICAgIGZvciAo
YXV0byogcGx1Z2luVmlldyA6IG1fcGx1Z2luVmlld3MpCi0gICAgICAgIHBsdWdpblZpZXctPnNl
dFdpbmRvd0lzRm9jdXNlZChpc0FjdGl2ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpz
ZXRWaWV3SXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKQogewotICAgIGlmICghaXNWaXNpYmxlKSB7
Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPnN1c3BlbmRQYWludGluZygpOworICAgIGlmICghaXNW
aXNpYmxlKQogICAgICAgICBtX3BhZ2UtPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbnMoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5yZXN1bWVQYWludGluZygpOworICAg
IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogdGhpcyBzZWVtcyByZWR1bmRhbnQ7IGZvciB0aGUg
dmlldyB0byBiZSB2aXNpYmxlIHRoZSB3aW5kb3cgbXVzdCBiZSB2aXNpYmxlIHRvbyEKICAgICAg
ICAgLy8gcmVmYWN0b3JpbmcgZm9yIG5vdywgd2lsbCBjaGFuZ2UgdGhlIGxvZ2ljIGxhdGVyLgog
ICAgICAgICBpZiAobV93aW5kb3dJc1Zpc2libGUpIHsKQEAgLTIwODcsNiArMjA3OSw4IEBAIHZv
aWQgV2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICBWaWV3U3RhdGU6OkZs
YWdzIGNoYW5nZWQgPSBtX3ZpZXdTdGF0ZSBeIHZpZXdTdGF0ZTsKICAgICBtX3ZpZXdTdGF0ZSA9
IHZpZXdTdGF0ZTsKIAorICAgIG1fZHJhd2luZ0FyZWEtPnZpZXdTdGF0ZURpZENoYW5nZShjaGFu
Z2VkKTsKKwogICAgIC8vIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgYWN0aXZl
IHN0YXRlIHdoaWxlIGhpZGRlbiwgc28gaWYgdGhlIHZpZXcgaXMgaGlkZGVuIHRoZW4gdXBkYXRl
IHRoZSBhY3RpdmUgc3RhdGUKICAgICAvLyBlYXJseSAoaW4gY2FzZSBpdCBiZWNvbWVzIHZpc2li
bGUpLCBhbmQgaWYgdGhlIHZpZXcgd2FzIHZpc2libGUgdGhlbiB1cGRhdGUgYWN0aXZlIHN0YXRl
IGxhdGVyIChpbiBjYXNlIGl0IGhpZGVzKS4KICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6
V2luZG93SXNWaXNpYmxlKQpAQCAtMjEwMSwxMCArMjA5NSw5IEBAIHZvaWQgV2ViUGFnZTo6c2V0
Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICAgICAgc2V0QWN0aXZlKHZpZXdTdGF0ZSAmIFZp
ZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJ
c0luV2luZG93KQogICAgICAgICBzZXRJc0luV2luZG93KHZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6
SXNJbldpbmRvdyk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0g
ICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0g
ICAgICAgIHNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgor
CisgICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykKKyAgICAgICAgcGx1
Z2luVmlldy0+dmlld1N0YXRlRGlkQ2hhbmdlKGNoYW5nZWQpOwogCiAgICAgaWYgKHdhbnRzRGlk
VXBkYXRlVmlld1N0YXRlKQogICAgICAgICBtX3NlbmREaWRVcGRhdGVWaWV3U3RhdGVUaW1lci5z
dGFydE9uZVNob3QoMCk7CkBAIC0zMDYzLDIzICszMDU2LDkgQEAgdm9pZCBXZWJQYWdlOjpzZXRX
aW5kb3dJc1Zpc2libGUoYm9vbCB3aQogICAgIG1fd2luZG93SXNWaXNpYmxlID0gd2luZG93SXNW
aXNpYmxlOwogCiAgICAgY29yZVBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Q29udGFpbmlu
Z1dpbmRvd0lzVmlzaWJsZSh3aW5kb3dJc1Zpc2libGUpOwotCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIC8vIFRlbGwgYWxsIG91ciBwbHVnLWluIHZpZXdzIHRoYXQgdGhlIHdpbmRvdyB2aXNpYmls
aXR5IGNoYW5nZWQuCi0gICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykK
LSAgICAgICAgcGx1Z2luVmlldy0+c2V0V2luZG93SXNWaXNpYmxlKHdpbmRvd0lzVmlzaWJsZSk7
Ci0jZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJI
b3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCi17Ci0gICAgZm9y
IChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykKLSAgICAgICAgcGx1Z2luVmlldy0+
c2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKTsKLQotICAgIG1fZHJhd2luZ0Fy
ZWEtPnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSk7Ci19Ci0KIHZvaWQgV2Vi
UGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVu
ZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRp
bmF0ZXMpCiB7CiAgICAgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1Nyw3ICsz
NTcsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsK
ICNlbmRpZgogICAgIH0KLSAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5n
TW9kZSk7CiAKICAgICB2b2lkIHVwZGF0ZVBsdWdpbnNBY3RpdmVBbmRGb2N1c2VkU3RhdGUoKTsK
ICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGlu
YXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOyB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCShyZXZpc2lv
biAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDcg
QEAgcHVibGljOgogICAgIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UqLCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kUGFpbnRp
bmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGFpbnRpbmcoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3Mg
Y2hhbmdlZCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKQEAgLTEw
MSw3ICsxMDAsOSBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXpl
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBsYXllclBvc2l0aW9uKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpIE9WRVJSSURF
OworICAgIHZvaWQgc3VzcGVuZFBhaW50aW5nKCk7CisgICAgdm9pZCByZXN1bWVQYWludGluZygp
OworICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFjZShjb25zdCBDb2xvclNwYWNlRGF0YSYpIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0JKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4OSw2ICszODksMjEgQEAgYm9vbCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1cwogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0K
IAordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dmlld1N0YXRlRGlkQ2hhbmdl
KFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKK3sKKyAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNWaXNpYmxlKSB7CisgICAgICAgIGlmIChtX3dlYlBhZ2UtPmlzVmlzaWJsZSgpKQorICAg
ICAgICAgICAgcmVzdW1lUGFpbnRpbmcoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3Vz
cGVuZFBhaW50aW5nKCk7CisgICAgfQorCisjaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRP
V19TRVJWRVIpCisgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dTZXJ2
ZXJIb3N0ZWQpCisgICAgICAgIHNldExheWVySG9zdGluZ01vZGUobV93ZWJQYWdlLT5sYXllckhv
c3RpbmdNb2RlKCkpOworI2VuZGlmCit9CisKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnN1c3BlbmRQYWludGluZygpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGFpbnRpbmdTdXNw
ZW5kZWQpOwo=
</data>
<flag name="commit-queue"
          id="243745"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220079</attachid>
            <date>2013-12-28 13:28:03 -0800</date>
            <delta_ts>2014-01-02 11:42:14 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>126272.2.patch</filename>
            <type>text/plain</type>
            <size>12826</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTExMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEzLTEyLTI4ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBW
aWV3U3RhdGUgaGFuZGxpbmcgZm9yIGRyYXdpbmcgYXJlYSAvIHBsdWdpbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjI3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgYWxsIFZpZXdT
dGF0ZSBjaGFuZ2VzIGJlaW5nIGhhbmRsZWQgYnkgdGhlIFdlYlBhZ2UsIG5vdGlmeSB0aGUgRHJh
d2luZ0FyZWEgJiBQbHVnaW5WaWV3IHRvIGJldHRlciBlbmNhcHN1bGF0ZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6dmlld1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmll
dzo6cGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAgICAgLSBhZGRlZCwgaGFu
ZGxlIGNoYW5nZXMgaW4gVmlld1N0YXRlIHJlbGV2YW50IHRvIFBsdWdpblZpZXcuCisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblZpZXc6OmRpZEluaXRpYWxpemVQbHVnaW4pOgorICAgICAgICAgICAg
LSBoZWxwZXIgZnVuY3Rpb24gcmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oOgorICAgICAgICAgICAgLSBhZGRlZC9yZW1vdmVkIGZ1bmN0aW9uIGRlY2xh
cmF0aW9ucy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAg
ICAgICAtIGRlY2xhcmUgdmlld1N0YXRlRGlkQ2hhbmdlLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0aXZl
KToKKyAgICAgICAgICAgIC0gbm8gbmVlZCB0byBub3RpZnkgcGx1Z2luLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRWaWV3SXNWaXNpYmxlKToKKyAgICAgICAgICAgIC0gbm8gbmVlZCB0
byBub3RpZnkgZHJhd2luZyBhcmVhLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRWaWV3
U3RhdGUpOgorICAgICAgICAgICAgLSBzZW5kIHZpZXdTdGF0ZURpZENoYW5nZSB0byBkcmF3aW5n
IGFyZWEgLyBwbHVnaW4uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFdpbmRvd0lzVmlz
aWJsZSk6CisgICAgICAgICAgICAtIG5vIG5lZWQgdG8gbm90aWZ5IHBsdWdpbi4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpsYXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgICAgIC0gcmVtb3ZlZCBzZXRMYXllckhvc3Rp
bmdNb2RlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgICAgIC0gZGVjbGFyZSB2aWV3U3RhdGVEaWRDaGFu
Z2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICAgICAtIGFkZGVkLCBoYW5kbGUg
Y2hhbmdlcyBpbiBWaWV3U3RhdGUgcmVsZXZhbnQgdG8gRHJhd2luZ0FyZWEuCisKIDIwMTMtMTIt
MjggIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbV0sy
XVtTT1VQXSBGaXggaGFuZGxpbmcgb2YgY29va2llcyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBl
bmFibGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MSwyMSArNDgx
LDMyIEBAIHZvaWQgUGx1Z2luVmlldzo6d2ViUGFnZURlc3Ryb3llZCgpCiAgICAgbV93ZWJQYWdl
ID0gMDsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgICAgCi12b2lkIFBsdWdpblZpZXc6OnNldFdp
bmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkKK3ZvaWQgUGx1Z2luVmlldzo6dmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKIHsKLSAgICBpZiAoIW1f
aXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGx1
Z2luLT53aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZCh3aW5kb3dJc1Zpc2libGUpOworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZShjaGFuZ2VkKTsKKyNlbmRp
ZgogfQogCi12b2lkIFBsdWdpblZpZXc6OnNldFdpbmRvd0lzRm9jdXNlZChib29sIHdpbmRvd0lz
Rm9jdXNlZCkKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtVmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKIHsKLSAgICBpZiAoIW1f
aXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCisgICAgaWYgKCFtX3BsdWdpbikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgbV9wYXJhbWV0
ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1c0NoYW5nZWQo
d2luZG93SXNGb2N1c2VkKTsgICAgCisgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OldpbmRv
d0lzVmlzaWJsZSkKKyAgICAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKG1f
d2ViUGFnZS0+d2luZG93SXNWaXNpYmxlKCkpOworICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRl
OjpXaW5kb3dJc0FjdGl2ZSkKKyAgICAgICAgbV9wbHVnaW4tPndpbmRvd0ZvY3VzQ2hhbmdlZCht
X3dlYlBhZ2UtPndpbmRvd0lzRm9jdXNlZCgpKTsKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5f
V0lORE9XX1NFUlZFUikKKyAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNMYXllcldpbmRv
d1NlcnZlckhvc3RlZCkKKyAgICAgICAgbV9wbHVnaW4tPnNldExheWVySG9zdGluZ01vZGUobV93
ZWJQYWdlLT5sYXllckhvc3RpbmdNb2RlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgUGx1Z2luVmll
dzo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCkBAIC01MjYsMTkgKzUz
Nyw2IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3OjpzZXRMYXllckhvc3RpbmdNb2RlKExheWVy
SG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSkKLXsKLSAgICBpZiAoIW1fcGx1Z2luKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1faXNJbml0aWFsaXplZCkgewotICAgICAgICBtX3Bh
cmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSA9IGxheWVySG9zdGluZ01vZGU7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBtX3BsdWdpbi0+c2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhv
c3RpbmdNb2RlKTsKLX0KLSAgICAKIE5TT2JqZWN0ICpQbHVnaW5WaWV3OjphY2Nlc3NpYmlsaXR5
T2JqZWN0KCkgY29uc3QKIHsKICAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4p
CkBAIC02MjQsOCArNjIyLDggQEAgdm9pZCBQbHVnaW5WaWV3OjpkaWRJbml0aWFsaXplUGx1Z2lu
KCkKICAgICAgICAgICAgIG1fcGx1Z2luRWxlbWVudC0+ZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGlj
aygpOwogICAgIH0KIAotICAgIHNldFdpbmRvd0lzVmlzaWJsZShtX3dlYlBhZ2UtPndpbmRvd0lz
VmlzaWJsZSgpKTsKLSAgICBzZXRXaW5kb3dJc0ZvY3VzZWQobV93ZWJQYWdlLT53aW5kb3dJc0Zv
Y3VzZWQoKSk7CisgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKG1fd2ViUGFn
ZS0+d2luZG93SXNWaXNpYmxlKCkpOworICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1c0NoYW5nZWQo
bV93ZWJQYWdlLT53aW5kb3dJc0ZvY3VzZWQoKSk7CiAjZW5kaWYKIAogICAgIGlmICh3YW50c1do
ZWVsRXZlbnRzKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gMTYxMTA3KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbi5o
IgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJWaWV3U3RhdGUuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CkBAIC02OCwxMyArNjksMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgbWFudWFsTG9hZERpZEZpbmlzaExvYWRpbmcoKTsKICAgICB2b2lkIG1hbnVhbExv
YWREaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKIAorICAgIHZvaWQgdmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7CisKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgdm9pZCBzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCk7Ci0gICAgdm9pZCBzZXRX
aW5kb3dJc0ZvY3VzZWQoYm9vbCk7CisgICAgdm9pZCBwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpOwogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0
b3IoZmxvYXQpOwogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgYm9v
bCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0
aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBk
ZkRvY3VtZW50Rm9yUHJpbnRpbmcoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbi0+cGRmRG9jdW1l
bnRGb3JQcmludGluZygpOyB9CiAgICAgTlNPYmplY3QgKmFjY2Vzc2liaWxpdHlPYmplY3QoKSBj
b25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNpbmNsdWRlICJMYXllclRy
ZWVDb250ZXh0LmgiCisjaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTEwNSw5ICsxMDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0
aW9uPHZvaWQgKCk+Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBhaW50aW5nKCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZVBhaW50aW5nKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgeyB9CisgICAgdmlydHVhbCB2
b2lkIHZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpIHsgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShy
ZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MTIsMjEgKzE5MTIsMTMgQEAgdm9pZCBXZWJQ
YWdlOjpjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcgogdm9pZCBXZWJQYWdlOjpzZXRBY3RpdmUo
Ym9vbCBpc0FjdGl2ZSkKIHsKICAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEFjdGl2
ZShpc0FjdGl2ZSk7Ci0KLSNpZiBQTEFURk9STShNQUMpICAgIAotICAgIC8vIFRlbGwgYWxsIG91
ciBwbHVnLWluIHZpZXdzIHRoYXQgdGhlIHdpbmRvdyBmb2N1cyBjaGFuZ2VkLgotICAgIGZvciAo
YXV0byogcGx1Z2luVmlldyA6IG1fcGx1Z2luVmlld3MpCi0gICAgICAgIHBsdWdpblZpZXctPnNl
dFdpbmRvd0lzRm9jdXNlZChpc0FjdGl2ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpz
ZXRWaWV3SXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKQogewotICAgIGlmICghaXNWaXNpYmxlKSB7
Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPnN1c3BlbmRQYWludGluZygpOworICAgIGlmICghaXNW
aXNpYmxlKQogICAgICAgICBtX3BhZ2UtPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbnMoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5yZXN1bWVQYWludGluZygpOworICAg
IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogdGhpcyBzZWVtcyByZWR1bmRhbnQ7IGZvciB0aGUg
dmlldyB0byBiZSB2aXNpYmxlIHRoZSB3aW5kb3cgbXVzdCBiZSB2aXNpYmxlIHRvbyEKICAgICAg
ICAgLy8gcmVmYWN0b3JpbmcgZm9yIG5vdywgd2lsbCBjaGFuZ2UgdGhlIGxvZ2ljIGxhdGVyLgog
ICAgICAgICBpZiAobV93aW5kb3dJc1Zpc2libGUpIHsKQEAgLTIwODcsNiArMjA3OSw4IEBAIHZv
aWQgV2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICBWaWV3U3RhdGU6OkZs
YWdzIGNoYW5nZWQgPSBtX3ZpZXdTdGF0ZSBeIHZpZXdTdGF0ZTsKICAgICBtX3ZpZXdTdGF0ZSA9
IHZpZXdTdGF0ZTsKIAorICAgIG1fZHJhd2luZ0FyZWEtPnZpZXdTdGF0ZURpZENoYW5nZShjaGFu
Z2VkKTsKKwogICAgIC8vIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgYWN0aXZl
IHN0YXRlIHdoaWxlIGhpZGRlbiwgc28gaWYgdGhlIHZpZXcgaXMgaGlkZGVuIHRoZW4gdXBkYXRl
IHRoZSBhY3RpdmUgc3RhdGUKICAgICAvLyBlYXJseSAoaW4gY2FzZSBpdCBiZWNvbWVzIHZpc2li
bGUpLCBhbmQgaWYgdGhlIHZpZXcgd2FzIHZpc2libGUgdGhlbiB1cGRhdGUgYWN0aXZlIHN0YXRl
IGxhdGVyIChpbiBjYXNlIGl0IGhpZGVzKS4KICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6
V2luZG93SXNWaXNpYmxlKQpAQCAtMjEwMSwxMCArMjA5NSw5IEBAIHZvaWQgV2ViUGFnZTo6c2V0
Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICAgICAgc2V0QWN0aXZlKHZpZXdTdGF0ZSAmIFZp
ZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJ
c0luV2luZG93KQogICAgICAgICBzZXRJc0luV2luZG93KHZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6
SXNJbldpbmRvdyk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0g
ICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0g
ICAgICAgIHNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgor
CisgICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykKKyAgICAgICAgcGx1
Z2luVmlldy0+dmlld1N0YXRlRGlkQ2hhbmdlKGNoYW5nZWQpOwogCiAgICAgaWYgKHdhbnRzRGlk
VXBkYXRlVmlld1N0YXRlKQogICAgICAgICBtX3NlbmREaWRVcGRhdGVWaWV3U3RhdGVUaW1lci5z
dGFydE9uZVNob3QoMCk7CkBAIC0zMDYzLDIzICszMDU2LDkgQEAgdm9pZCBXZWJQYWdlOjpzZXRX
aW5kb3dJc1Zpc2libGUoYm9vbCB3aQogICAgIG1fd2luZG93SXNWaXNpYmxlID0gd2luZG93SXNW
aXNpYmxlOwogCiAgICAgY29yZVBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Q29udGFpbmlu
Z1dpbmRvd0lzVmlzaWJsZSh3aW5kb3dJc1Zpc2libGUpOwotCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIC8vIFRlbGwgYWxsIG91ciBwbHVnLWluIHZpZXdzIHRoYXQgdGhlIHdpbmRvdyB2aXNpYmls
aXR5IGNoYW5nZWQuCi0gICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykK
LSAgICAgICAgcGx1Z2luVmlldy0+c2V0V2luZG93SXNWaXNpYmxlKHdpbmRvd0lzVmlzaWJsZSk7
Ci0jZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJI
b3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCi17Ci0gICAgZm9y
IChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykKLSAgICAgICAgcGx1Z2luVmlldy0+
c2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKTsKLQotICAgIG1fZHJhd2luZ0Fy
ZWEtPnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSk7Ci19Ci0KIHZvaWQgV2Vi
UGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVu
ZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGNvbnN0IEZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRp
bmF0ZXMpCiB7CiAgICAgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0Nyw2ICsz
NDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVQbHVnaW5WaWV3KFBsdWdpblZpZXcqKTsK
IAogICAgIGJvb2wgd2luZG93SXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dJc1Zp
c2libGU7IH0KKyAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0YXRl
ICYgVmlld1N0YXRlOjpJc1Zpc2libGU7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBMYXll
ckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25zdApAQCAtMzU3LDcgKzM1OCw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIExheWVySG9zdGluZ01vZGVEZWZhdWx0OwogI2VuZGlm
CiAgICAgfQotICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsK
IAogICAgIHZvaWQgdXBkYXRlUGx1Z2luc0FjdGl2ZUFuZEZvY3VzZWRTdGF0ZSgpOwogICAgIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkg
Y29uc3QgeyByZXR1cm4gbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDE2MTEw
NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCArNTUsNyBAQCBwdWJs
aWM6CiAgICAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSosIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWludGluZygpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQYWludGluZygpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB2aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBjaGFuZ2Vk
KSBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQpAQCAtMTAxLDcgKzEw
MCw5IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJREU7CisgICAg
dm9pZCBzdXNwZW5kUGFpbnRpbmcoKTsKKyAgICB2b2lkIHJlc3VtZVBhaW50aW5nKCk7CisgICAg
dm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb2xvclNwYWNlKGNvbnN0IENvbG9yU3BhY2VEYXRhJikgT1ZFUlJJREU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6
OkZsb2F0UG9pbnQgb3JpZ2luKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQkocmV2aXNpb24gMTYxMTA3KQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzg5LDYgKzM4OSwyMSBAQCBib29sIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpmbHVzCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCit2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp2aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0
YXRlOjpGbGFncyBjaGFuZ2VkKQoreworICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zp
c2libGUpIHsKKyAgICAgICAgaWYgKG1fd2ViUGFnZS0+aXNWaXNpYmxlKCkpCisgICAgICAgICAg
ICByZXN1bWVQYWludGluZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdXNwZW5kUGFp
bnRpbmcoKTsKKyAgICB9CisKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZF
UikKKyAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNMYXllcldpbmRvd1NlcnZlckhvc3Rl
ZCkKKyAgICAgICAgc2V0TGF5ZXJIb3N0aW5nTW9kZShtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01v
ZGUoKSk7CisjZW5kaWYKK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
c3VzcGVuZFBhaW50aW5nKCkKIHsKICAgICBBU1NFUlQoIW1faXNQYWludGluZ1N1c3BlbmRlZCk7
Cg==
</data>
<flag name="review"
          id="243746"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>