<?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>33512</bug_id>
          
          <creation_ts>2010-01-11 21:28:56 -0800</creation_ts>
          <short_desc>blur event not fired on &lt;input&gt; when programmatically focusing on an &lt;input&gt; within an &lt;iframe&gt; then focusing the window</short_desc>
          <delta_ts>2013-02-18 22:46:24 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>110172</dup_id>
          
          <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="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>aroben</cc>
    
    <cc>joepeck</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179669</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-11 21:28:56 -0800</bug_when>
    <thetext>The blur event is not fired on an &lt;input&gt; within an &lt;iframe&gt; when the input loses focus by programmatically focusing the window.

In particular, suppose there is an &lt;input&gt; within an &lt;iframe&gt; and perform the following actions programmatically (in order):

1) Call focus() on &lt;input&gt;.
2) Call focus() on the current window.

Then the following sequence of events are fired, where an event := (event target element, event type):

(window, blur), (&lt;iframe&gt;, focus), (&lt;input&gt;, focus), (&lt;iframe&gt;, blur), (window, focus).

Notice, the event (&lt;input&gt;, blur) is missing from this sequence. The expected result is:

window, blur), (&lt;iframe&gt;, focus), (&lt;input&gt;, focus),  (&lt;input&gt;, blur), (&lt;iframe&gt;, blur), (window, focus).

By the unfocusing steps listed in section 6.4.2 of the HTML 5 spec. &lt;http://dev.w3.org/html5/spec/Overview.html#focus-management&gt;, we should fire a blur event at &lt;input&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179670</commentid>
    <comment_count>1</comment_count>
      <attachid>46332</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-11 21:32:19 -0800</bug_when>
    <thetext>Created attachment 46332
Layout test

Note, you can use the test case &lt;https://bugs.webkit.org/attachment.cgi?id=12423&gt; on bug #12262 to verify that the non-programmatic case works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179671</commentid>
    <comment_count>2</comment_count>
      <attachid>46333</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-11 21:37:18 -0800</bug_when>
    <thetext>Created attachment 46333
Self-contained test

For your convenience, here is a self-contained version of the layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259300</commentid>
    <comment_count>3</comment_count>
      <attachid>63303</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-02 23:38:41 -0700</bug_when>
    <thetext>Created attachment 63303
Patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270200</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-26 16:20:07 -0700</bug_when>
    <thetext>Hey Dan. Any reason this patch is not up for review? Did you find a problem in it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270557</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-08-27 09:49:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Hey Dan. Any reason this patch is not up for review? Did you find a problem in it?

I have not put this up for review as I am still investigating this issue.

I&apos;ve had intermittent discussions with Ian Hicksons about this change. Part of these discussions are with respect to the behavior of window.focus() and window.blur(). Section 7.4.3 of the HTML 5 spec. (which describes these methods) is not explicit with regards to whether these methods result in the execution of the focusing and unfocusing steps outlined in section 7.4.2 (or some similar algorithm), respectively. Further reading of the spec., and possible discussions are needed.

I hope to look at this some more this weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835983</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-02-18 22:46:24 -0800</bug_when>
    <thetext>Apologies for the forward dup, but I ran into this issue independently and filed it as &lt;https://bugs.webkit.org/show_bug.cgi?id=110172&gt;. I verified that my change fixes the test attached here (as well as another issue having to do with document.activeElement).

*** This bug has been marked as a duplicate of bug 110172 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46332</attachid>
            <date>2010-01-11 21:32:19 -0800</date>
            <delta_ts>2010-06-10 20:14:25 -0700</delta_ts>
            <desc>Layout test</desc>
            <filename>Bug33512LT.diff</filename>
            <type>text/plain</type>
            <size>5331</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0aWMt
Zm9jdXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0aWMtZm9jdXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZnJhbWUtd2luZG93LXByb2dyYW1tYXRpYy1m
b2N1cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVz
dHMgdGhhdCBwcm9ncmFtbWF0aWNhbGx5IGNhbGxpbmcgZm9jdXMoKSBvbiBhbiA8aW5wdXQ+IHdp
dGhpbiBhbiA8aWZyYW1lPiB0aGVuIGNhbGxpbmcgZm9jdXMoKSBvbiB0aGUgd2luZG93IGlzIGVx
dWl2YWxlbnQgdG8gZmlyaW5nIHRoZSBmb2xsb3dpbmcgZXZlbnRzIChldmVudCB0YXJnZXQsIGV2
ZW50IHR5cGUpLCBpbiBvcmRlcjogKHdpbmRvdywgYmx1ciksICg8aWZyYW1lPiwgZm9jdXMpLCAo
PGlucHV0PiwgZm9jdXMpLCAoPGlucHV0PiwgYmx1ciksICg8aWZyYW1lPiwgYmx1ciksICh3aW5k
b3csIGZvY3VzKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCitGaXJlIGZv
Y3VzIGV2ZW50IG9uIDxpbnB1dD4gd2l0aGluIDxpZnJhbWU+OgorCitQQVNTIGZpcmVkIGV2ZW50
IGlzICh3aW5kb3csIGJsdXIpLgorUEFTUyBmaXJlZCBldmVudCBpcyAoPGlmcmFtZT4sIGZvY3Vz
KS4KK1BBU1MgZmlyZWQgZXZlbnQgaXMgKDxpbnB1dD4sIGZvY3VzKS4KKworRmlyZSBmb2N1cyBl
dmVudCBvbiB3aW5kb3c6CisKK1BBU1MgZmlyZWQgZXZlbnQgaXMgKDxpbnB1dD4sIGJsdXIpLgor
UEFTUyBmaXJlZCBldmVudCBpcyAoPGlmcmFtZT4sIGJsdXIpLgorUEFTUyBmaXJlZCBldmVudCBp
cyAod2luZG93LCBmb2N1cykuCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvZnJhbWUtd2luZG93LXByb2dyYW1tYXRpYy1mb2N1cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0aWMt
Zm9jdXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1l
LXdpbmRvdy1wcm9ncmFtbWF0aWMtZm9jdXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcmVwbGF5RXZlbnRR
dWV1ZSA9IFtdOwordmFyIGlmcmFtZTsKK3ZhciBpbnB1dDsKKworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
K3dpbmRvdy5pZCA9ICJ3aW5kb3ciOword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7CisgICAgc2V0dXBJ
ZnJhbWVBbmRJbnB1dCgpOworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZGVidWcoJzxici8+RmlyZSBmb2N1cyBldmVudCBvbiAmbHQ7aW5wdXQmZ3Q7IHdp
dGhpbiAmbHQ7aWZyYW1lJmd0Ozo8YnIvPicpOworICAgIGNhcHR1cmVFdmVudHMoKQorICAgIGlu
cHV0LmZvY3VzKCk7CisgICAgaWdub3JlRXZlbnRzKCk7CisgICAgY2hlY2tUaGF0RXZlbnRzRmly
ZWRJbk9yZGVyKFtbIndpbmRvdyIsICJibHVyIl0sIFsiPGlmcmFtZT4iLCAiZm9jdXMiXSwgWyI8
aW5wdXQ+IiwgImZvY3VzIl1dKTsKKyAgICBkZWJ1ZygnPGJyLz5GaXJlIGZvY3VzIGV2ZW50IG9u
IHdpbmRvdzo8YnIvPicpOworICAgIGNhcHR1cmVFdmVudHMoKQorICAgIHdpbmRvdy5mb2N1cygp
OworICAgIGlnbm9yZUV2ZW50cygpOworICAgIGNoZWNrVGhhdEV2ZW50c0ZpcmVkSW5PcmRlcihb
WyI8aW5wdXQ+IiwgImJsdXIiXSwgWyI8aWZyYW1lPiIsICJibHVyIl0sIFsid2luZG93IiwgImZv
Y3VzIl1dKTsKKyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExF
VEU8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lQW5kSW5wdXQoKQoreworICAg
IHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgaWYgKCFp
ZnJhbWVEb2N1bWVudCkKKyAgICAgICAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdp
bmRvdy5kb2N1bWVudDsKKworICAgIGlmcmFtZS5jb250ZW50V2luZG93LmlkID0gIjxpZnJhbWU+
IjsKKworICAgIGlmICghaWZyYW1lRG9jdW1lbnQuYm9keSkKKyAgICAgICAgaWZyYW1lRG9jdW1l
bnQuYm9keSA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTsKKyAgICBpbnB1
dCA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgaW5wdXQudHlw
ZSA9ICJ0ZXh0IjsKKyAgICBpbnB1dC5pZCA9ICI8aW5wdXQ+IjsKKyAgICBpZnJhbWVEb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTsKK30KKworZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZl
bnQpCit7CisgICAgcmVwbGF5RXZlbnRRdWV1ZS5wdXNoKGV2ZW50KTsKK30KKworZnVuY3Rpb24g
Y2hlY2tUaGF0RXZlbnRzRmlyZWRJbk9yZGVyKGV4cGVjdGVkT3JkZXJRdWV1ZSkKK3sKKyAgICB2
YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7ICAgIAorICAg
IHdoaWxlIChyZXBsYXlFdmVudFF1ZXVlLmxlbmd0aCA+IDAgJiYgZXhwZWN0ZWRPcmRlclF1ZXVl
Lmxlbmd0aCA+IDApIHsKKyAgICAgICAgdmFyIHJlcGxheWVkRXZlbnQgPSByZXBsYXlFdmVudFF1
ZXVlLnNoaWZ0KCk7CisgICAgICAgIHZhciByZXBsYXllZEV2ZW50VGFyZ2V0ID0gcmVwbGF5ZWRF
dmVudC50YXJnZXQgfHwgcmVwbGF5ZWRFdmVudC5zcmNFbGVtZW50OworICAgICAgICB2YXIgZXhw
ZWN0ZWRFdmVudCA9IGV4cGVjdGVkT3JkZXJRdWV1ZS5zaGlmdCgpOworICAgICAgICBpZiAocmVw
bGF5ZWRFdmVudFRhcmdldC5pZCA9PT0gZXhwZWN0ZWRFdmVudFswXSAmJiByZXBsYXllZEV2ZW50
LnR5cGUgPT09IGV4cGVjdGVkRXZlbnRbMV0pCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdmaXJl
ZCBldmVudCBpcyAoJyArIHJlcGxheWVkRXZlbnRUYXJnZXQuaWQgKyAnLCAnICsgcmVwbGF5ZWRF
dmVudC50eXBlICsgJykuJyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
J2ZpcmVkIGV2ZW50IGlzICgnICsgcmVwbGF5ZWRFdmVudFRhcmdldC5pZCArICcsICcgKyByZXBs
YXllZEV2ZW50LnR5cGUgKyAnKS4gJyArCisgICAgICAgICAgICAgICAgJ1Nob3VsZCBiZSAoJyAr
IGV4cGVjdGVkRXZlbnRbMF0gKyAnLCAnICsgZXhwZWN0ZWRFdmVudFsxXSArICcpLicpOworICAg
IH0KKyAgICB3aGlsZSAocmVwbGF5RXZlbnRRdWV1ZS5sZW5ndGggPiAwKSB7CisgICAgICAgIHZh
ciByZXBsYXllZEV2ZW50ID0gcmVwbGF5RXZlbnRRdWV1ZS5zaGlmdCgpOworICAgICAgICB2YXIg
cmVwbGF5ZWRFdmVudFRhcmdldCA9IHJlcGxheWVkRXZlbnQudGFyZ2V0IHx8IHJlcGxheWVkRXZl
bnQuc3JjRWxlbWVudDsKKyAgICAgICAgdGVzdEZhaWxlZCgnc2hvdWxkIG5vdCBoYXZlIGZpcmVk
IGV2ZW50ICgnICsgcmVwbGF5ZWRFdmVudFRhcmdldC5pZCArICcsICcgKyByZXBsYXllZEV2ZW50
LnR5cGUgKyAnKS4gQnV0IGRpZC4nKTsKKyAgICB9CisgICAgd2hpbGUgKGV4cGVjdGVkT3JkZXJR
dWV1ZS5sZW5ndGggPiAwKSB7CisgICAgICAgIHZhciBleHBlY3RlZEV2ZW50ID0gZXhwZWN0ZWRP
cmRlclF1ZXVlLnNoaWZ0KCk7CisgICAgICAgIHRlc3RGYWlsZWQoJ3Nob3VsZCBoYXZlIGZpcmVk
IGV2ZW50ICgnICsgZXhwZWN0ZWRFdmVudFswXSArICcsICcgKyBleHBlY3RlZEV2ZW50WzFdICsg
JykuIEJ1dCBkaWQgbm90LicpOworICAgIH0KK30KKworZnVuY3Rpb24gY2FwdHVyZUV2ZW50cygp
Cit7CisgICAgd2luZG93Lm9uZm9jdXMgPSByZWNvcmRFdmVudDsKKyAgICB3aW5kb3cub25ibHVy
ID0gcmVjb3JkRXZlbnQ7CisgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cub25mb2N1cyA9IHJlY29y
ZEV2ZW50OworICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm9uYmx1ciA9IHJlY29yZEV2ZW50Owor
ICAgIGlucHV0Lm9uZm9jdXMgPSByZWNvcmRFdmVudDsKKyAgICBpbnB1dC5vbmJsdXIgPSByZWNv
cmRFdmVudDsKK30KKworZnVuY3Rpb24gaWdub3JlRXZlbnRzKCkKK3sKKyAgICB3aW5kb3cub25m
b2N1cyA9IG51bGw7CisgICAgd2luZG93Lm9uYmx1ciA9IG51bGw7CisgICAgaWZyYW1lLmNvbnRl
bnRXaW5kb3cub25mb2N1cyA9IG51bGw7CisgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cub25ibHVy
ID0gbnVsbDsKKyAgICBpbnB1dC5vbmZvY3VzID0gbnVsbDsKKyAgICBpbnB1dC5vbmJsdXIgPSBu
dWxsOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGlmcmFtZSBpZD0iaWZyYW1lIj48L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHByb2dyYW1t
YXRpY2FsbHkgY2FsbGluZyBmb2N1cygpIG9uIGFuICZsdDtpbnB1dCZndDsgd2l0aGluIGFuICZs
dDtpZnJhbWUmZ3Q7IHRoZW4gIiArCisgICAgICAgICAgICAgICAgImNhbGxpbmcgZm9jdXMoKSBv
biB0aGUgd2luZG93IGlzIGVxdWl2YWxlbnQgdG8gZmlyaW5nIHRoZSBmb2xsb3dpbmcgZXZlbnRz
IChldmVudCB0YXJnZXQsIGV2ZW50IHR5cGUpLCBpbiBvcmRlcjogIiArCisgICAgICAgICAgICAg
ICAgIih3aW5kb3csIGJsdXIpLCAoJmx0O2lmcmFtZSZndDssIGZvY3VzKSwgKCZsdDtpbnB1dCZn
dDssIGZvY3VzKSwgKCZsdDtpbnB1dCZndDssIGJsdXIpLCAoJmx0O2lmcmFtZSZndDssIGJsdXIp
LCAod2luZG93LCBmb2N1cykuIik7CisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46333</attachid>
            <date>2010-01-11 21:37:18 -0800</date>
            <delta_ts>2010-01-11 21:37:18 -0800</delta_ts>
            <desc>Self-contained test</desc>
            <filename>frame-window-programmatic-focus-self-contained.html</filename>
            <type>text/html</type>
            <size>3956</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvZXhwb3J0LzUzMTE0L3RydW5rL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KPHNjcmlwdCBzcmM9Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
ZXhwb3J0LzUzMTE0L3RydW5rL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KPHNjcmlwdD4KdmFyIHJlcGxheUV2ZW50UXVldWUgPSBbXTsKdmFy
IGlmcmFtZTsKdmFyIGlucHV0OwoKaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKCndpbmRvdy5pZCA9ICJ3aW5kb3ci
Owp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQp7CiAgICBpZnJhbWUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaWZyYW1lIik7CiAgICBzZXR1cElmcmFtZUFuZElucHV0KCk7CiAgICBydW5U
ZXN0KCk7Cn0KCmZ1bmN0aW9uIHJ1blRlc3QoKQp7CiAgICBkZWJ1ZygnPGJyLz5GaXJlIGZvY3Vz
IGV2ZW50IG9uICZsdDtpbnB1dCZndDsgd2l0aGluICZsdDtpZnJhbWUmZ3Q7Ojxici8+Jyk7CiAg
ICBjYXB0dXJlRXZlbnRzKCkKICAgIGlucHV0LmZvY3VzKCk7CiAgICBpZ25vcmVFdmVudHMoKTsK
ICAgIGNoZWNrVGhhdEV2ZW50c0ZpcmVkSW5PcmRlcihbWyJ3aW5kb3ciLCAiYmx1ciJdLCBbIjxp
ZnJhbWU+IiwgImZvY3VzIl0sIFsiPGlucHV0PiIsICJmb2N1cyJdXSk7CiAgICBkZWJ1ZygnPGJy
Lz5GaXJlIGZvY3VzIGV2ZW50IG9uIHdpbmRvdzo8YnIvPicpOwogICAgY2FwdHVyZUV2ZW50cygp
CiAgICB3aW5kb3cuZm9jdXMoKTsKICAgIGlnbm9yZUV2ZW50cygpOwogICAgY2hlY2tUaGF0RXZl
bnRzRmlyZWRJbk9yZGVyKFtbIjxpbnB1dD4iLCAiYmx1ciJdLCBbIjxpZnJhbWU+IiwgImJsdXIi
XSwgWyJ3aW5kb3ciLCAiZm9jdXMiXV0pOwogICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJw
YXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwp9CgpmdW5jdGlvbiBzZXR1cElmcmFtZUFuZElu
cHV0KCkKewogICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsK
ICAgIGlmICghaWZyYW1lRG9jdW1lbnQpCiAgICAgICAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudDsKCiAgICBpZnJhbWUuY29udGVudFdpbmRvdy5pZCA9ICI8
aWZyYW1lPiI7CgogICAgaWYgKCFpZnJhbWVEb2N1bWVudC5ib2R5KQogICAgICAgIGlmcmFtZURv
Y3VtZW50LmJvZHkgPSBpZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7CiAgICBp
bnB1dCA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICBpbnB1dC50
eXBlID0gInRleHQiOwogICAgaW5wdXQuaWQgPSAiPGlucHV0PiI7CiAgICBpZnJhbWVEb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTsKfQoKZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQp
CnsKICAgIHJlcGxheUV2ZW50UXVldWUucHVzaChldmVudCk7Cn0KCmZ1bmN0aW9uIGNoZWNrVGhh
dEV2ZW50c0ZpcmVkSW5PcmRlcihleHBlY3RlZE9yZGVyUXVldWUpCnsKICAgIHZhciBjb25zb2xl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsgICAgCiAgICB3aGlsZSAocmVw
bGF5RXZlbnRRdWV1ZS5sZW5ndGggPiAwICYmIGV4cGVjdGVkT3JkZXJRdWV1ZS5sZW5ndGggPiAw
KSB7CiAgICAgICAgdmFyIHJlcGxheWVkRXZlbnQgPSByZXBsYXlFdmVudFF1ZXVlLnNoaWZ0KCk7
CiAgICAgICAgdmFyIHJlcGxheWVkRXZlbnRUYXJnZXQgPSByZXBsYXllZEV2ZW50LnRhcmdldCB8
fCByZXBsYXllZEV2ZW50LnNyY0VsZW1lbnQ7CiAgICAgICAgdmFyIGV4cGVjdGVkRXZlbnQgPSBl
eHBlY3RlZE9yZGVyUXVldWUuc2hpZnQoKTsKICAgICAgICBpZiAocmVwbGF5ZWRFdmVudFRhcmdl
dC5pZCA9PT0gZXhwZWN0ZWRFdmVudFswXSAmJiByZXBsYXllZEV2ZW50LnR5cGUgPT09IGV4cGVj
dGVkRXZlbnRbMV0pCiAgICAgICAgICAgIHRlc3RQYXNzZWQoJ2ZpcmVkIGV2ZW50IGlzICgnICsg
cmVwbGF5ZWRFdmVudFRhcmdldC5pZCArICcsICcgKyByZXBsYXllZEV2ZW50LnR5cGUgKyAnKS4n
KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHRlc3RGYWlsZWQoJ2ZpcmVkIGV2ZW50IGlzICgn
ICsgcmVwbGF5ZWRFdmVudFRhcmdldC5pZCArICcsICcgKyByZXBsYXllZEV2ZW50LnR5cGUgKyAn
KS4gJyArCiAgICAgICAgICAgICAgICAnU2hvdWxkIGJlICgnICsgZXhwZWN0ZWRFdmVudFswXSAr
ICcsICcgKyBleHBlY3RlZEV2ZW50WzFdICsgJykuJyk7CiAgICB9CiAgICB3aGlsZSAocmVwbGF5
RXZlbnRRdWV1ZS5sZW5ndGggPiAwKSB7CiAgICAgICAgdmFyIHJlcGxheWVkRXZlbnQgPSByZXBs
YXlFdmVudFF1ZXVlLnNoaWZ0KCk7CiAgICAgICAgdmFyIHJlcGxheWVkRXZlbnRUYXJnZXQgPSBy
ZXBsYXllZEV2ZW50LnRhcmdldCB8fCByZXBsYXllZEV2ZW50LnNyY0VsZW1lbnQ7CiAgICAgICAg
dGVzdEZhaWxlZCgnc2hvdWxkIG5vdCBoYXZlIGZpcmVkIGV2ZW50ICgnICsgcmVwbGF5ZWRFdmVu
dFRhcmdldC5pZCArICcsICcgKyByZXBsYXllZEV2ZW50LnR5cGUgKyAnKS4gQnV0IGRpZC4nKTsK
ICAgIH0KICAgIHdoaWxlIChleHBlY3RlZE9yZGVyUXVldWUubGVuZ3RoID4gMCkgewogICAgICAg
IHZhciBleHBlY3RlZEV2ZW50ID0gZXhwZWN0ZWRPcmRlclF1ZXVlLnNoaWZ0KCk7CiAgICAgICAg
dGVzdEZhaWxlZCgnc2hvdWxkIGhhdmUgZmlyZWQgZXZlbnQgKCcgKyBleHBlY3RlZEV2ZW50WzBd
ICsgJywgJyArIGV4cGVjdGVkRXZlbnRbMV0gKyAnKS4gQnV0IGRpZCBub3QuJyk7CiAgICB9Cn0K
CmZ1bmN0aW9uIGNhcHR1cmVFdmVudHMoKQp7CiAgICB3aW5kb3cub25mb2N1cyA9IHJlY29yZEV2
ZW50OwogICAgd2luZG93Lm9uYmx1ciA9IHJlY29yZEV2ZW50OwogICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cub25mb2N1cyA9IHJlY29yZEV2ZW50OwogICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cub25i
bHVyID0gcmVjb3JkRXZlbnQ7CiAgICBpbnB1dC5vbmZvY3VzID0gcmVjb3JkRXZlbnQ7CiAgICBp
bnB1dC5vbmJsdXIgPSByZWNvcmRFdmVudDsKfQoKZnVuY3Rpb24gaWdub3JlRXZlbnRzKCkKewog
ICAgd2luZG93Lm9uZm9jdXMgPSBudWxsOwogICAgd2luZG93Lm9uYmx1ciA9IG51bGw7CiAgICBp
ZnJhbWUuY29udGVudFdpbmRvdy5vbmZvY3VzID0gbnVsbDsKICAgIGlmcmFtZS5jb250ZW50V2lu
ZG93Lm9uYmx1ciA9IG51bGw7CiAgICBpbnB1dC5vbmZvY3VzID0gbnVsbDsKICAgIGlucHV0Lm9u
Ymx1ciA9IG51bGw7Cn0KPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgo8aWZyYW1lIGlkPSJpZnJhbWUiPjwvaWZyYW1lPgo8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KPHNjcmlwdD4KICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgcHJvZ3JhbW1h
dGljYWxseSBjYWxsaW5nIGZvY3VzKCkgb24gYW4gJmx0O2lucHV0Jmd0OyB3aXRoaW4gYW4gJmx0
O2lmcmFtZSZndDsgdGhlbiAiICsKICAgICAgICAgICAgICAgICJjYWxsaW5nIGZvY3VzKCkgb24g
dGhlIHdpbmRvdyBpcyBlcXVpdmFsZW50IHRvIGZpcmluZyB0aGUgZm9sbG93aW5nIGV2ZW50cyAo
ZXZlbnQgdGFyZ2V0LCBldmVudCB0eXBlKSwgaW4gb3JkZXI6ICIgKwogICAgICAgICAgICAgICAg
Iih3aW5kb3csIGJsdXIpLCAoJmx0O2lmcmFtZSZndDssIGZvY3VzKSwgKCZsdDtpbnB1dCZndDss
IGZvY3VzKSwgKCZsdDtpbnB1dCZndDssIGJsdXIpLCAoJmx0O2lmcmFtZSZndDssIGJsdXIpLCAo
d2luZG93LCBmb2N1cykuIik7CiAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKPC9z
Y3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63303</attachid>
            <date>2010-08-02 23:38:41 -0700</date>
            <delta_ts>2010-08-04 22:24:49 -0700</delta_ts>
            <desc>Patch with test case</desc>
            <filename>Bug33512_080110.patch</filename>
            <type>text/plain</type>
            <size>18316</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDQ0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDgtMDEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJsdXIg
ZXZlbnQgbm90IGZpcmVkIG9uIDxpbnB1dD4gd2hlbiBwcm9ncmFtbWF0aWNhbGx5IGZvY3VzaW5n
IG9uCisgICAgICAgIGFuIDxpbnB1dD4gd2l0aGluIGFuIDxpZnJhbWU+IHRoZW4gZm9jdXNpbmcg
dGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzM1MTIKKworICAgICAgICBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBjYWxsaW5nIHdpbmRvdy5m
b2N1cygpIGRvZXMgbm90IHVuZm9jdXMgdGhlCisgICAgICAgIGxhc3QgZm9jdXNlZCBub2RlLgor
CisgICAgICAgIEN1cnJlbnRseSwgd2UgdW5mb2N1cyB0aGUgcHJldmlvdXMgZnJhbWUgdGhlbiBm
b2N1cyB0aGUgbmV3IGZyYW1lLgorICAgICAgICBBcyBwZXIgc2VjdGlvbiA3LjQuMiBvZiB0aGUg
SFRNTCA1IHNwZWMuIDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjZm9j
dXMtbWFuYWdlbWVudD4KKyAgICAgICAgd2Ugc2hvdWxkIHVuZm9jdXMgdGhlIHByZXZpb3VzbHkg
Zm9jdXNlZCBub2RlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2ZyYW1lLXdpbmRvdy1w
cm9ncmFtbWF0aWMtZm9jdXMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUpOiBBZGRlZCBwYXJhbWV0ZXIgc2hvdWxkRGlzcGF0
Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlLgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250
cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6Oik6IEFkZGVkIGVu
dW0gU2hvdWxkRGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlLgorICAgICAgICAq
IHBhZ2UvYW5kcm9pZC9FdmVudEhhbmRsZXJBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOiBNb2RpZmllZCB0byBwYXNzIHBhcmFt
ZXRlciBGb2N1c0NvbnRyb2xsZXI6OkRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9k
ZS4KKyAgICAgICAgKiBwYWdlL2JyZXcvRXZlbnRIYW5kbGVyQnJldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KTogRGl0dG8uCisgICAgICAg
ICogcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KTogRGl0dG8uCisgICAgICAgICog
cGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL2d0ay9FdmVu
dEhhbmRsZXJHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0Rv
Y3VtZW50Vmlldyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvaGFpa3UvRXZlbnRIYW5kbGVySGFp
a3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50Vmll
dyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3F0L0V2ZW50SGFuZGxlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpm
b2N1c0RvY3VtZW50Vmlldyk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvd3gvRXZlbnRIYW5kbGVy
V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50Vmll
dyk6IERpdHRvLgorCiAyMDEwLTA4LTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gNjQ0NDMpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDIsNyArMzQyLDcgQEAgX19aTjdXZWJDb3JlMTVEYXRhYmFzZVRyYWNrZXI3dHJh
Y2tlckV2CiBfX1pON1dlYkNvcmUxNURhdGFiYXNlVHJhY2tlcjhzZXRRdW90YUVQTlNfMTRTZWN1
cml0eU9yaWdpbkV5CiBfX1pON1dlYkNvcmUxNURhdGFiYXNlVHJhY2tlcjlzZXRDbGllbnRFUE5T
XzIxRGF0YWJhc2VUcmFja2VyQ2xpZW50RQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIx
MHNldEZvY3VzZWRFYgotX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNXNldEZvY3VzZWRG
cmFtZUVOM1dURjEwUGFzc1JlZlB0cklOU181RnJhbWVFRUUKK19fWk43V2ViQ29yZTE1Rm9jdXND
b250cm9sbGVyMTVzZXRGb2N1c2VkRnJhbWVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNUZyYW1lRUVF
TlMwXzQyU2hvdWxkRGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlRQogX19aTjdX
ZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNXNldEluaXRpYWxGb2N1c0VOU18xNEZvY3VzRGlyZWN0
aW9uRVBOU18xM0tleWJvYXJkRXZlbnRFCiBfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjE4
Zm9jdXNlZE9yTWFpbkZyYW1lRXYKIF9fWk43V2ViQ29yZTE1Rm9jdXNDb250cm9sbGVyOXNldEFj
dGl2ZUViCkluZGV4OiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNjQ0NDMpCisr
KyBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQs
NyArODQsNyBAQCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBwCiB7CiB9
CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxGcmFt
ZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQ
dHI8RnJhbWU+IGZyYW1lLCBTaG91bGREaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5v
ZGUgc2hvdWxkRGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKQogewogICAgIGlm
IChtX2ZvY3VzZWRGcmFtZSA9PSBmcmFtZSB8fCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUpCiAg
ICAgICAgIHJldHVybjsKQEAgLTk5LDEyICs5OSwxOCBAQCB2b2lkIEZvY3VzQ29udHJvbGxlcjo6
c2V0Rm9jdXNlZEZyYW1lKFBhCiAgICAgLy8gTm93IHRoYXQgdGhlIGZyYW1lIGlzIHVwZGF0ZWQs
IGZpcmUgZXZlbnRzIGFuZCB1cGRhdGUgdGhlIHNlbGVjdGlvbiBmb2N1c2VkIHN0YXRlcyBvZiBi
b3RoIGZyYW1lcy4KICAgICBpZiAob2xkRnJhbWUgJiYgb2xkRnJhbWUtPnZpZXcoKSkgewogICAg
ICAgICBvbGRGcmFtZS0+c2VsZWN0aW9uKCktPnNldEZvY3VzZWQoZmFsc2UpOwotICAgICAgICBv
bGRGcmFtZS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBpZiAoc2hvdWxk
RGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlID09IERpc3BhdGNoRXZlbnRzT25X
aW5kb3dBbmRGb2N1c2VkTm9kZSkKKyAgICAgICAgICAgIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dB
bmRGb2N1c2VkTm9kZShvbGRGcmFtZS0+ZG9jdW1lbnQoKSwgZmFsc2UpOworICAgICAgICBlbHNl
IGlmIChzaG91bGREaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUgPT0gRGlzcGF0
Y2hFdmVudHNPbldpbmRvdykKKyAgICAgICAgICAgIG9sZEZyYW1lLT5kb2N1bWVudCgpLT5kaXNw
YXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFs
c2UsIGZhbHNlKSk7CiAgICAgfQogCiAgICAgaWYgKG5ld0ZyYW1lICYmIG5ld0ZyYW1lLT52aWV3
KCkgJiYgaXNGb2N1c2VkKCkpIHsKICAgICAgICAgbmV3RnJhbWUtPnNlbGVjdGlvbigpLT5zZXRG
b2N1c2VkKHRydWUpOwotICAgICAgICBuZXdGcmFtZS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5k
b3dFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKKyAgICAgICAgaWYgKHNob3VsZERpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2Vk
Tm9kZSA9PSBEaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUpCisgICAgICAgICAg
ICBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUobmV3RnJhbWUtPmRvY3VtZW50
KCksIHRydWUpOworICAgICAgICBlbHNlIGlmIChzaG91bGREaXNwYXRjaEV2ZW50c09uV2luZG93
QW5kRm9jdXNlZE5vZGUgPT0gRGlzcGF0Y2hFdmVudHNPbldpbmRvdykKKyAgICAgICAgICAgIG5l
d0ZyYW1lLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogICAgIH0KIAogICAgIG1faXND
aGFuZ2luZ0ZvY3VzZWRGcmFtZSA9IGZhbHNlOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAko
cmV2aXNpb24gNjQ0NDMpCisrKyBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDcgKzQ0LDkgQEAgY2xhc3MgRm9jdXNDb250cm9sbGVyIDogcHVibGlj
IE5vbmNvcHlhYgogcHVibGljOgogICAgIEZvY3VzQ29udHJvbGxlcihQYWdlKik7CiAKLSAgICB2
b2lkIHNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CisgICAgZW51bSBTaG91bGRE
aXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUgeyBEaXNwYXRjaEV2ZW50c09uV2lu
ZG93QW5kRm9jdXNlZE5vZGUsIERpc3BhdGNoRXZlbnRzT25XaW5kb3cgfTsKKyAgICB2b2lkIHNl
dEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPiwgU2hvdWxkRGlzcGF0Y2hFdmVudHNPbldp
bmRvd0FuZEZvY3VzZWROb2RlIHNob3VsZERpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2Vk
Tm9kZSA9IERpc3BhdGNoRXZlbnRzT25XaW5kb3cpOworCiAgICAgRnJhbWUqIGZvY3VzZWRGcmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CiAgICAgRnJhbWUqIGZv
Y3VzZWRPck1haW5GcmFtZSgpOwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvYW5kcm9pZC9FdmVudEhh
bmRsZXJBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5kcm9pZC9FdmVu
dEhhbmRsZXJBbmRyb2lkLmNwcAkocmV2aXNpb24gNjQ0NDMpCisrKyBXZWJDb3JlL3BhZ2UvYW5k
cm9pZC9FdmVudEhhbmRsZXJBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsQ29udHJvbHMoS2V5CiB2b2lkIEV2ZW50
SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9m
cmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNl
ZEZyYW1lKG1fZnJhbWUpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9j
dXNlZEZyYW1lKG1fZnJhbWUsIEZvY3VzQ29udHJvbGxlcjo6RGlzcGF0Y2hFdmVudHNPbldpbmRv
d0FuZEZvY3VzZWROb2RlKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2
ZW50KQpJbmRleDogV2ViQ29yZS9wYWdlL2JyZXcvRXZlbnRIYW5kbGVyQnJldy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL2JyZXcvRXZlbnRIYW5kbGVyQnJldy5jcHAJKHJldmlzaW9u
IDY0NDQzKQorKysgV2ViQ29yZS9wYWdlL2JyZXcvRXZlbnRIYW5kbGVyQnJldy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1l
bnRWaWV3KCkKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmIChw
YWdlKQotICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKG1f
ZnJhbWUpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1l
KG1fZnJhbWUsIEZvY3VzQ29udHJvbGxlcjo6RGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3Vz
ZWROb2RlKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVu
dFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50KQpJbmRl
eDogV2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwCShy
ZXZpc2lvbiA2NDQ0MykKKysrIFdlYkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJv
bWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdl
KCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lKTsKKyAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKG1fZnJhbWUsIEZvY3VzQ29udHJvbGxlcjo6RGlzcGF0
Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6
OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lk
Z2V0KQpJbmRleDogV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAkocmV2aXNpb24gNjQ0
NDMpCisrKyBXZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbENvbnRyb2xz
KEtleQogdm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKIHsKICAgICBpZiAo
UGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lKTsKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lLCBGb2N1c0NvbnRyb2xsZXI6OkRpc3Bh
dGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZSk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiBldmVudCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVy
R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5j
cHAJKHJldmlzaW9uIDY0NDQzKQorKysgV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp0
YWJzVG9BbGxDb250cm9scyhLZXkKIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50Vmll
dygpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJhbWUobV9mcmFtZSk7CisgICAgICAg
IHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJhbWUobV9mcmFtZSwgRm9jdXND
b250cm9sbGVyOjpEaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUpOwogfQogCiBi
b29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
aGFpa3UvRXZlbnRIYW5kbGVySGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9o
YWlrdS9FdmVudEhhbmRsZXJIYWlrdS5jcHAJKHJldmlzaW9uIDY0NDQzKQorKysgV2ViQ29yZS9w
YWdlL2hhaWt1L0V2ZW50SGFuZGxlckhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNyAr
ODEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQogCiAgICAgUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAocGFnZSkKLSAgICAgICAgcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lKTsKKyAgICAgICAgcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lLCBGb2N1c0NvbnRy
b2xsZXI6OkRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZSk7CiB9CiAKIGJvb2wg
RXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCShyZXZpc2lvbiA2NDQ0MykKKysrIFdlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgp
LT5mb2N1c05TVmlldyhkb2N1bWVudFZpZXcpOwogICAgIH0KIAotICAgIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5zZXRGb2N1c2VkRnJhbWUobV9mcmFtZSk7CisgICAgcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShtX2ZyYW1lLCBGb2N1c0NvbnRyb2xsZXI6OkRpc3Bh
dGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZSk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiBldmVudCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL3F0L0V2ZW50SGFuZGxlclF0LmNwcAko
cmV2aXNpb24gNjQ0NDMpCisrKyBXZWJDb3JlL3BhZ2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0Rv
Y3VtZW50VmlldygpCiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0
Rm9jdXNlZEZyYW1lKG1fZnJhbWUpOworICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRG
b2N1c2VkRnJhbWUobV9mcmFtZSwgRm9jdXNDb250cm9sbGVyOjpEaXNwYXRjaEV2ZW50c09uV2lu
ZG93QW5kRm9jdXNlZE5vZGUpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1v
dXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYp
CkluZGV4OiBXZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCShyZXZpc2lvbiA2NDQ0MykK
KysrIFdlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50Vmlldygp
CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgIHJldHVybjsKLSAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1l
KG1fZnJhbWUpOworICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJhbWUo
bV9mcmFtZSwgRm9jdXNDb250cm9sbGVyOjpEaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNl
ZE5vZGUpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50
VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCkluZGV4OiBXZWJD
b3JlL3BhZ2Uvd3gvRXZlbnRIYW5kbGVyV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS93eC9FdmVudEhhbmRsZXJXeC5jcHAJKHJldmlzaW9uIDY0NDQzKQorKysgV2ViQ29yZS9wYWdl
L3d4L0V2ZW50SGFuZGxlcld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1cKIHZvaWQgRXZlbnRIYW5k
bGVyOjpmb2N1c0RvY3VtZW50VmlldygpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJh
bWUobV9mcmFtZSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2Vk
RnJhbWUobV9mcmFtZSwgRm9jdXNDb250cm9sbGVyOjpEaXNwYXRjaEV2ZW50c09uV2luZG93QW5k
Rm9jdXNlZE5vZGUpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDQ0
MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
IEBACisyMDEwLTA4LTAxICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBibHVyIGV2ZW50IG5vdCBm
aXJlZCBvbiA8aW5wdXQ+IHdoZW4gcHJvZ3JhbW1hdGljYWxseSBmb2N1c2luZyBvbgorICAgICAg
ICBhbiA8aW5wdXQ+IHdpdGhpbiBhbiA8aWZyYW1lPiB0aGVuIGZvY3VzaW5nIHRoZSB3aW5kb3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNTEyCisK
KyAgICAgICAgVGVzdHMgdGhhdCBjYWxsaW5nIHdpbmRvdy5mb2N1cygpIHVuZm9jdXNlcyB0aGUg
bGFzdCBmb2N1c2VkIG5vZGUuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9mcmFtZS13aW5kb3ct
cHJvZ3JhbW1hdGljLWZvY3VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvZnJhbWUtd2luZG93LXByb2dyYW1tYXRpYy1mb2N1cy5odG1sOiBBZGRlZC4KKwogMjAx
MC0wOC0wMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9mcmFtZS13aW5kb3ctcHJvZ3JhbW1hdGljLWZvY3VzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS13aW5kb3ctcHJvZ3JhbW1h
dGljLWZvY3VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0aWMtZm9jdXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3RzIHRoYXQgcHJvZ3JhbW1hdGljYWxs
eSBjYWxsaW5nIGZvY3VzKCkgb24gYW4gPGlucHV0PiB3aXRoaW4gYW4gPGlmcmFtZT4gdGhlbiBj
YWxsaW5nIGZvY3VzKCkgb24gdGhlIHdpbmRvdyBpcyBlcXVpdmFsZW50IHRvIGZpcmluZyB0aGUg
Zm9sbG93aW5nIGV2ZW50cyAoZXZlbnQgdGFyZ2V0LCBldmVudCB0eXBlKSwgaW4gb3JkZXI6ICh3
aW5kb3csIGJsdXIpLCAoPGlmcmFtZT4sIGZvY3VzKSwgKDxpbnB1dD4sIGZvY3VzKSwgKDxpbnB1
dD4sIGJsdXIpLCAoPGlmcmFtZT4sIGJsdXIpLCAod2luZG93LCBmb2N1cykuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCisKKworRmlyZSBmb2N1cyBldmVudCBvbiA8aW5wdXQ+IHdp
dGhpbiA8aWZyYW1lPjoKKworUEFTUyBmaXJlZCBldmVudCBpcyAod2luZG93LCBibHVyKS4KK1BB
U1MgZmlyZWQgZXZlbnQgaXMgKDxpZnJhbWU+LCBmb2N1cykuCitQQVNTIGZpcmVkIGV2ZW50IGlz
ICg8aW5wdXQ+LCBmb2N1cykuCisKK1RoZW4gZmlyZSBmb2N1cyBldmVudCBvbiB3aW5kb3c6CisK
K1BBU1MgZmlyZWQgZXZlbnQgaXMgKDxpbnB1dD4sIGJsdXIpLgorUEFTUyBmaXJlZCBldmVudCBp
cyAoPGlmcmFtZT4sIGJsdXIpLgorUEFTUyBmaXJlZCBldmVudCBpcyAod2luZG93LCBmb2N1cyku
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZnJhbWUt
d2luZG93LXByb2dyYW1tYXRpYy1mb2N1cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0aWMtZm9jdXMuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1lLXdpbmRvdy1wcm9ncmFtbWF0
aWMtZm9jdXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcmVwbGF5RXZlbnRRdWV1ZSA9IFtdOwordmFyIGlm
cmFtZTsKK3ZhciBpbnB1dDsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3dpbmRvdy5pZCA9ICJ3aW5k
b3ciOword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7CisgICAgc2V0dXBJZnJhbWVBbmRJbnB1dCgpOwor
ICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZGVidWcoJzxi
ci8+RmlyZSBmb2N1cyBldmVudCBvbiAmbHQ7aW5wdXQmZ3Q7IHdpdGhpbiAmbHQ7aWZyYW1lJmd0
Ozo8YnIvPicpOworICAgIGNhcHR1cmVFdmVudHMoKTsKKyAgICBpbnB1dC5mb2N1cygpOworICAg
IGlnbm9yZUV2ZW50cygpOworICAgIGNoZWNrVGhhdEV2ZW50c0ZpcmVkSW5PcmRlcihbWyJ3aW5k
b3ciLCAiYmx1ciJdLCBbIjxpZnJhbWU+IiwgImZvY3VzIl0sIFsiPGlucHV0PiIsICJmb2N1cyJd
XSk7CisgICAgZGVidWcoJzxici8+VGhlbiBmaXJlIGZvY3VzIGV2ZW50IG9uIHdpbmRvdzo8YnIv
PicpOworICAgIGNhcHR1cmVFdmVudHMoKTsKKyAgICB3aW5kb3cuZm9jdXMoKTsKKyAgICBpZ25v
cmVFdmVudHMoKTsKKyAgICBjaGVja1RoYXRFdmVudHNGaXJlZEluT3JkZXIoW1siPGlucHV0PiIs
ICJibHVyIl0sIFsiPGlmcmFtZT4iLCAiYmx1ciJdLCBbIndpbmRvdyIsICJmb2N1cyJdXSk7Cisg
ICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicp
OworfQorCitmdW5jdGlvbiBzZXR1cElmcmFtZUFuZElucHV0KCkKK3sKKyAgICB2YXIgaWZyYW1l
RG9jdW1lbnQgPSBpZnJhbWUuY29udGVudERvY3VtZW50OworICAgIGlmICghaWZyYW1lRG9jdW1l
bnQpCisgICAgICAgIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQ7CisKKyAgICBpZnJhbWUuY29udGVudFdpbmRvdy5pZCA9ICI8aWZyYW1lPiI7CisKKyAgICBp
ZiAoIWlmcmFtZURvY3VtZW50LmJvZHkpCisgICAgICAgIGlmcmFtZURvY3VtZW50LmJvZHkgPSBp
ZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7CisgICAgaW5wdXQgPSBpZnJhbWVE
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgIGlucHV0LnR5cGUgPSAidGV4dCI7
CisgICAgaW5wdXQuaWQgPSAiPGlucHV0PiI7CisgICAgaWZyYW1lRG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpbnB1dCk7Cit9CisKK2Z1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQoreworICAg
IHJlcGxheUV2ZW50UXVldWUucHVzaChldmVudCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrVGhhdEV2
ZW50c0ZpcmVkSW5PcmRlcihleHBlY3RlZE9yZGVyUXVldWUpCit7CisgICAgdmFyIGNvbnNvbGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOyAgICAKKyAgICB3aGlsZSAocmVw
bGF5RXZlbnRRdWV1ZS5sZW5ndGggPiAwICYmIGV4cGVjdGVkT3JkZXJRdWV1ZS5sZW5ndGggPiAw
KSB7CisgICAgICAgIHZhciByZXBsYXllZEV2ZW50ID0gcmVwbGF5RXZlbnRRdWV1ZS5zaGlmdCgp
OworICAgICAgICB2YXIgcmVwbGF5ZWRFdmVudFRhcmdldCA9IHJlcGxheWVkRXZlbnQudGFyZ2V0
IHx8IHJlcGxheWVkRXZlbnQuc3JjRWxlbWVudDsKKyAgICAgICAgdmFyIGV4cGVjdGVkRXZlbnQg
PSBleHBlY3RlZE9yZGVyUXVldWUuc2hpZnQoKTsKKyAgICAgICAgaWYgKHJlcGxheWVkRXZlbnRU
YXJnZXQuaWQgPT09IGV4cGVjdGVkRXZlbnRbMF0gJiYgcmVwbGF5ZWRFdmVudC50eXBlID09PSBl
eHBlY3RlZEV2ZW50WzFdKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnZmlyZWQgZXZlbnQgaXMg
KCcgKyByZXBsYXllZEV2ZW50VGFyZ2V0LmlkICsgJywgJyArIHJlcGxheWVkRXZlbnQudHlwZSAr
ICcpLicpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdmaXJlZCBldmVu
dCBpcyAoJyArIHJlcGxheWVkRXZlbnRUYXJnZXQuaWQgKyAnLCAnICsgcmVwbGF5ZWRFdmVudC50
eXBlICsgJykuICcgKworICAgICAgICAgICAgICAgICdTaG91bGQgYmUgKCcgKyBleHBlY3RlZEV2
ZW50WzBdICsgJywgJyArIGV4cGVjdGVkRXZlbnRbMV0gKyAnKS4nKTsKKyAgICB9CisgICAgd2hp
bGUgKHJlcGxheUV2ZW50UXVldWUubGVuZ3RoID4gMCkgeworICAgICAgICB2YXIgcmVwbGF5ZWRF
dmVudCA9IHJlcGxheUV2ZW50UXVldWUuc2hpZnQoKTsKKyAgICAgICAgdmFyIHJlcGxheWVkRXZl
bnRUYXJnZXQgPSByZXBsYXllZEV2ZW50LnRhcmdldCB8fCByZXBsYXllZEV2ZW50LnNyY0VsZW1l
bnQ7CisgICAgICAgIHRlc3RGYWlsZWQoJ3Nob3VsZCBub3QgaGF2ZSBmaXJlZCBldmVudCAoJyAr
IHJlcGxheWVkRXZlbnRUYXJnZXQuaWQgKyAnLCAnICsgcmVwbGF5ZWRFdmVudC50eXBlICsgJyku
IEJ1dCBkaWQuJyk7CisgICAgfQorICAgIHdoaWxlIChleHBlY3RlZE9yZGVyUXVldWUubGVuZ3Ro
ID4gMCkgeworICAgICAgICB2YXIgZXhwZWN0ZWRFdmVudCA9IGV4cGVjdGVkT3JkZXJRdWV1ZS5z
aGlmdCgpOworICAgICAgICB0ZXN0RmFpbGVkKCdzaG91bGQgaGF2ZSBmaXJlZCBldmVudCAoJyAr
IGV4cGVjdGVkRXZlbnRbMF0gKyAnLCAnICsgZXhwZWN0ZWRFdmVudFsxXSArICcpLiBCdXQgZGlk
IG5vdC4nKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNhcHR1cmVFdmVudHMoKQoreworICAgIHdp
bmRvdy5vbmZvY3VzID0gcmVjb3JkRXZlbnQ7CisgICAgd2luZG93Lm9uYmx1ciA9IHJlY29yZEV2
ZW50OworICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm9uZm9jdXMgPSByZWNvcmRFdmVudDsKKyAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5vbmJsdXIgPSByZWNvcmRFdmVudDsKKyAgICBpbnB1dC5v
bmZvY3VzID0gcmVjb3JkRXZlbnQ7CisgICAgaW5wdXQub25ibHVyID0gcmVjb3JkRXZlbnQ7Cit9
CisKK2Z1bmN0aW9uIGlnbm9yZUV2ZW50cygpCit7CisgICAgd2luZG93Lm9uZm9jdXMgPSBudWxs
OworICAgIHdpbmRvdy5vbmJsdXIgPSBudWxsOworICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm9u
Zm9jdXMgPSBudWxsOworICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm9uYmx1ciA9IG51bGw7Cisg
ICAgaW5wdXQub25mb2N1cyA9IG51bGw7CisgICAgaW5wdXQub25ibHVyID0gbnVsbDsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxpZnJh
bWUgaWQ9ImlmcmFtZSI+PC9pZnJhbWU+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBwcm9ncmFtbWF0aWNhbGx5IGNh
bGxpbmcgZm9jdXMoKSBvbiBhbiAmbHQ7aW5wdXQmZ3Q7IHdpdGhpbiBhbiAmbHQ7aWZyYW1lJmd0
OyB0aGVuICIgKworICAgICAgICAgICAgICAgICJjYWxsaW5nIGZvY3VzKCkgb24gdGhlIHdpbmRv
dyBpcyBlcXVpdmFsZW50IHRvIGZpcmluZyB0aGUgZm9sbG93aW5nIGV2ZW50cyAoZXZlbnQgdGFy
Z2V0LCBldmVudCB0eXBlKSwgaW4gb3JkZXI6ICIgKworICAgICAgICAgICAgICAgICIod2luZG93
LCBibHVyKSwgKCZsdDtpZnJhbWUmZ3Q7LCBmb2N1cyksICgmbHQ7aW5wdXQmZ3Q7LCBmb2N1cyks
ICgmbHQ7aW5wdXQmZ3Q7LCBibHVyKSwgKCZsdDtpZnJhbWUmZ3Q7LCBibHVyKSwgKHdpbmRvdywg
Zm9jdXMpLiIpOworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>