<?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>159490</bug_id>
          
          <creation_ts>2016-07-06 14:08:03 -0700</creation_ts>
          <short_desc>Align Document.body setter with the HTML specification</short_desc>
          <delta_ts>2016-07-06 21:15:10 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159488</see_also>
          <bug_file_loc>https://html.spec.whatwg.org/multipage/dom.html#dom-document-body</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>119115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208388</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 14:08:03 -0700</bug_when>
    <thetext>Document.body setter should be accept a frameset element as input:
- https://html.spec.whatwg.org/multipage/dom.html#dom-document-body

We currently throw an exception when given a frameset element.

Both Firefox and Chrome match the HTML specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208419</commentid>
    <comment_count>1</comment_count>
      <attachid>282954</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 15:10:21 -0700</bug_when>
    <thetext>Created attachment 282954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208422</commentid>
    <comment_count>2</comment_count>
      <attachid>282955</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 15:18:00 -0700</bug_when>
    <thetext>Created attachment 282955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208457</commentid>
    <comment_count>3</comment_count>
      <attachid>282955</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-06 17:10:35 -0700</bug_when>
    <thetext>Comment on attachment 282955
Patch

It seems like you should make newBody a Ref or keep the null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208487</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 18:31:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 282955 [details]
&gt; Patch
&gt; 
&gt; It seems like you should make newBody a Ref or keep the null check.

Why?

if (!is&lt;HTMLBodyElement&gt;(newBody.get()) &amp;&amp; !is&lt;HTMLFrameSetElement&gt;(newBody.get()))
Will be true if newBody is null and therefore we will throw a HIERARCHY_REQUEST_ERR as expected.

We cannot easily take a Ref&lt;&gt; because this function is used by the bindings and the type is nullable in the IDL. If we updated the type in the bindings to be non-nullable then we would no longer match the spec and we would throw a TypeError instead of a HIERARCHY_REQUEST_ERR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208493</commentid>
    <comment_count>5</comment_count>
      <attachid>282981</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 19:00:22 -0700</bug_when>
    <thetext>Created attachment 282981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208494</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-06 19:01:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 282955 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; It seems like you should make newBody a Ref or keep the null check.
&gt; 
&gt; Why?
&gt; 
&gt; if (!is&lt;HTMLBodyElement&gt;(newBody.get()) &amp;&amp;
&gt; !is&lt;HTMLFrameSetElement&gt;(newBody.get()))
&gt; Will be true if newBody is null and therefore we will throw a
&gt; HIERARCHY_REQUEST_ERR as expected.
&gt; 
&gt; We cannot easily take a Ref&lt;&gt; because this function is used by the bindings
&gt; and the type is nullable in the IDL. If we updated the type in the bindings
&gt; to be non-nullable then we would no longer match the spec and we would throw
&gt; a TypeError instead of a HIERARCHY_REQUEST_ERR.

I added a test case to cover &quot;document.body = null&quot; to confirm that it still throws a HIERARCHY_REQUEST_ERR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208526</commentid>
    <comment_count>7</comment_count>
      <attachid>282981</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-06 20:54:06 -0700</bug_when>
    <thetext>Comment on attachment 282981
Patch

Sure enough.  I should be more familiar with is&lt;&gt;.  r=me
That spec is very specific, and now our code reads like the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208528</commentid>
    <comment_count>8</comment_count>
      <attachid>282981</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-06 21:15:05 -0700</bug_when>
    <thetext>Comment on attachment 282981
Patch

Clearing flags on attachment: 282981

Committed r202893: &lt;http://trac.webkit.org/changeset/202893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208529</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-06 21:15:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282954</attachid>
            <date>2016-07-06 15:10:21 -0700</date>
            <delta_ts>2016-07-06 15:17:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159490-20160706150949.patch</filename>
            <type>text/plain</type>
            <size>16556</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3YTI5MGVmZDRjMmFk
MzJkMjdiYjg0ZmRiMWUxMDdhNzczMjNmMC4uZWZiNzk2NWY5ODdkMTAxMGZjM2VlMTA3ZDcwODM4
ZWY2YjZiOWY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gRG9jdW1lbnQuYm9k
eSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0OTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGlnbiBEb2N1bWVudC5ib2R5IHNldHRlciB3
aXRoIHRoZSBIVE1MIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3VtZW50LWJvZHkKKworICAgICAg
ICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdlYi1leHBvc2VkIGNoYW5nZXMgd2VyZSBt
YWRlOgorICAgICAgICAtIEl0IGlzIG5vdyBwb3NzaWJsZSB0byBzZXQgZG9jdW1lbnQuYm9keSB0
byBhIGZyYW1lc2V0IGVsZW1lbnQuCisgICAgICAgIC0gV2Ugbm8gbG9uZ2VyIGNhbGwgaW1wb3J0
Tm9kZSgpIG9uIHRoZSBwYXNzZWQgaW4gYm9keS4gVGhlcmVmb3JlLAorICAgICAgICAgIGlmIHRo
ZSBib2R5IGNvbWVzIGZyb20gYW5vdGhlciBkb2N1bWVudCwgaXRzIHdpbGwgYmUgYWRvcHRlZCAv
CisgICAgICAgICAgdHJhbnNmZXJyZWQgcmF0aGVyIHRoYW4gY2xvbmVkLgorCisgICAgICAgIEJv
dGggY2hhbmdlcyBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgRmlyZWZveCBhbmQgQ2hyb21lLgorCisg
ICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9j
dW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5Lmh0bWwKKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Qm9keU9y
RnJhbWVzZXQpOgorCiAyMDE2LTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyODY3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2NlMTc4OTk4ZTM3MjZhM2Y5Y2Y4YTRhNDAwMThjMTNi
ZDQ1NzQ2OS4uM2FmYWQyZjhiZTlkNGEwYzk3YzY5ODE0YWVmZjI5ZWVhMDI1Yjk0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNjI0LDI3ICsyNjI0LDI2IEBAIEhUTUxFbGVtZW50KiBE
b2N1bWVudDo6Ym9keU9yRnJhbWVzZXQoKSBjb25zdAogCiB2b2lkIERvY3VtZW50OjpzZXRCb2R5
T3JGcmFtZXNldChSZWZQdHI8SFRNTEVsZW1lbnQ+JiYgbmV3Qm9keSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3Qgc3VwcG9ydCBzZXR0aW5nIGEgPGZy
YW1lc2V0PiBFbGVtZW50LCBvbmx5IGEgPGJvZHk+LiBUaGlzIGRvZXMKLSAgICAvLyBub3QgbWF0
Y2ggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbjoKLSAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNkb20tZG9jdW1lbnQtYm9keQotICAgIGlmICghbmV3
Qm9keSB8fCAhZG9jdW1lbnRFbGVtZW50KCkgfHwgIW5ld0JvZHktPmhhc1RhZ05hbWUoYm9keVRh
ZykpIHsgCisgICAgaWYgKCFpczxIVE1MQm9keUVsZW1lbnQ+KG5ld0JvZHkuZ2V0KCkpICYmICFp
czxIVE1MRnJhbWVTZXRFbGVtZW50PihuZXdCb2R5LmdldCgpKSkgewogICAgICAgICBlYyA9IEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgm
bmV3Qm9keS0+ZG9jdW1lbnQoKSAhPSB0aGlzKSB7Ci0gICAgICAgIGVjID0gMDsKLSAgICAgICAg
UmVmUHRyPE5vZGU+IG5vZGUgPSBpbXBvcnROb2RlKCpuZXdCb2R5LCB0cnVlLCBlYyk7Ci0gICAg
ICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIG5ld0Jv
ZHkgPSBkb3duY2FzdDxIVE1MRWxlbWVudD4obm9kZS5nZXQoKSk7CisgICAgYXV0byogY3VycmVu
dEJvZHkgPSBib2R5T3JGcmFtZXNldCgpOworICAgIGlmIChuZXdCb2R5ID09IGN1cnJlbnRCb2R5
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY3VycmVudEJvZHkpIHsKKyAgICAgICAgZG9j
dW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZCgqbmV3Qm9keSwgKmN1cnJlbnRCb2R5LCBlYyk7
CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXV0byogYm9keSA9IGJvZHlPckZy
YW1lc2V0KCkpCi0gICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQoKm5ld0Jv
ZHksICpib2R5LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBw
ZW5kQ2hpbGQoKm5ld0JvZHksIGVjKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCgpKSB7Cisg
ICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKCpuZXdCb2R5LCBlYyk7CiB9
CiAKIExvY2F0aW9uKiBEb2N1bWVudDo6bG9jYXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI1MzBjZDFh
YmZkYWM2NGM1MWRiMzJlMDZmYmY3NGFlYTM4OTk2NWUuLmI3MGNhYTk3NTI3OGY4ZjRjODc4MWUw
Y2Y5OGFhOTg3Y2RjYjQyMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNy0wNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFsaWduIERvY3VtZW50LmJv
ZHkgc2V0dGVyIHdpdGggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDkwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3QgdGhhdCB3
YXMgc2V0dGluZyBhIGRvY3VtZW50J3MgYm9keSB0byBhbm90aGVyIGZyYW1lJ3MgYm9keQorICAg
ICAgICBhcyBpdCB3YXMgZXhwZWN0aW5nIHRoZSBib2R5IGVsZW1lbnQgdG8gZ2V0IGNsb25lZCBy
YXRoZXIgdGhhbiBhZG9wdGVkIC8gdHJhbnNmZXJyZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9k
b2N1bWVudC1zZXQtYm9keS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vZG9jdW1l
bnQtc2V0LWJvZHkuaHRtbDoKKwogMjAxNi0wNy0wNiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0IGEgdHlwbyBpbiB0aGUgTWFjIFRlc3RFeHBl
Y3RhdGlvbnMgZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDg5ZDk2OGEz
MWE4NTJjNjIzOTM4Mjc0OGNmYTE5MzY1MzU3MDk1N2EuLmE0NDk5ZDMwYTAzMDVlNzhkNDMxNzc4
Y2I0YjAxYTY4OTRmMmVlMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE4IEBACiAyMDE2LTA3LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
KyAgICAgICAgQWxpZ24gRG9jdW1lbnQuYm9keSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZp
Y2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTk0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBvcnQgY29ycmVzcG9uZGluZyBXM0MgdGVzdCB0aGF0IGNvdmVycyB0aGUgY2FzZSB3aGVyZSB3
ZSBhc3NpZ24KKyAgICAgICAgYSBmcmFtZXNldCB0byBkb2N1bWVudC5ib2R5LgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1hY2Nlc3Nv
cnMvRG9jdW1lbnQuYm9keS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9kb2N1bWVudHMvZG9tLXRyZWUtYWNjZXNzb3JzL0RvY3VtZW50
LmJvZHkuaHRtbDogQWRkZWQuCisKKzIwMTYtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKwogICAgICAgICBbU2hhZG93RE9NXSBhc3NpZ25lZFNsb3QgcHJvcGVydHkgc2hv
dWxkIGJlIG9uIFRleHQsIG5vdCBDaGFyYWN0ZXJEYXRhCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0ODIKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI3MjAxNjg3PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0
LWJvZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJv
ZHktZXhwZWN0ZWQudHh0CmluZGV4IDliMTkzNDM3OTk0MmY1MDhlOTU2MDNiYjc2YWU2YmM1Yzkz
N2FhYTcuLjJlZTAzMWFiZGM0YTQ5MWQ5NGFjMjdmYmUyMGQ3MTg3YTFkNmUxNWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LXNldC1ib2R5LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS1leHBlY3RlZC50eHQK
QEAgLTEsMTQgKzEsMTQgQEAKLVRlc3RzIHNldHRpbmcgZG9jdW1lbnQuYm9keQorVGVzdHMgc2V0
dGluZyBkb2N1bWVudC5ib2R5IHRvIGFub3RoZXIgZnJhbWUncyBib2R5CiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50MS5ib2R5ID0gaWZyYW1lMSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgot
UEFTUyBpZnJhbWUxLnBhcmVudE5vZGUgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBkb2N1bWVudDEu
Ym9keSA9IGRvY3VtZW50MS5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBkb2N1
bWVudDEuYm9keSAhPSBkb2N1bWVudC5ib2R5IGlzIHRydWUKLVBBU1MgZG9jdW1lbnQxLmJvZHkg
aXMgYm9keTEKK1BBU1MgZG9jdW1lbnQxLmJvZHkgaXMgbm90IG51bGwKK1BBU1MgZG9jdW1lbnQy
LmJvZHkgaXMgbnVsbAorUEFTUyBkb2N1bWVudDIuYm9keSA9IGRvY3VtZW50MS5ib2R5IGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBkb2N1bWVudDIuYm9keSBpcyBub3QgbnVsbAorUEFT
UyBkb2N1bWVudDEuYm9keSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKLQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9jdW1lbnQtc2V0LWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LXNl
dC1ib2R5Lmh0bWwKaW5kZXggNTE1MWFiNjEyYzQ1MjViZmFmYmE4YTE0OGYwZGEyZmQ2YjNjMDhj
MS4uMjJhN2QzYjMzZmVkYmU0ZWNkYzliMDJiNGFkODA4NmI3NTY5ZDQ0YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS5odG1sCkBAIC0xLDI3ICsxLDI3IEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgorPGlmcmFtZSBpZD0idGVzdEZy
YW1lMSIgc3JjZG9jPSI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiI+PC9pZnJhbWU+Cis8aWZy
YW1lIGlkPSJ0ZXN0RnJhbWUyIiBzcmNkb2M9IjxodG1sPjwvaHRtbD4iPjwvaWZyYW1lPgogPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzZXR0aW5nIGRvY3VtZW50LmJvZHkiKTsKK2Rlc2Ny
aXB0aW9uKCJUZXN0cyBzZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYW5vdGhlciBmcmFtZSdzIGJv
ZHkiKTsKIAotaWZyYW1lMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUxKTsKLWRvY3VtZW50MSA9IGlmcmFtZTEuY29u
dGVudERvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiZG9jdW1lbnQi
KTsKK3ZhciBkb2N1bWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lMSIp
LmNvbnRlbnREb2N1bWVudDsKK3ZhciBkb2N1bWVudDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdEZyYW1lMiIpLmNvbnRlbnREb2N1bWVudDsKK2lmIChkb2N1bWVudDIuYm9keSkKKyAg
ICBkb2N1bWVudDIuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGRvY3VtZW50Mi5ib2R5KTsK
IAotc2hvdWxkVGhyb3coImRvY3VtZW50MS5ib2R5ID0gaWZyYW1lMSIsICInRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOwotc2hvdWxkQmUoImlmcmFtZTEu
cGFyZW50Tm9kZSIsICJkb2N1bWVudC5ib2R5Iik7CitzaG91bGROb3RCZSgiZG9jdW1lbnQxLmJv
ZHkiLCAibnVsbCIpOworc2hvdWxkQmVOdWxsKCJkb2N1bWVudDIuYm9keSIpOwogCi1zaG91bGRU
aHJvdygiZG9jdW1lbnQxLmJvZHkgPSBkb2N1bWVudDEuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyki
LCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsKK3No
b3VsZE5vdFRocm93KCJkb2N1bWVudDIuYm9keSA9IGRvY3VtZW50MS5ib2R5Iik7CiAKLWRvY3Vt
ZW50MS5ib2R5ID0gZG9jdW1lbnQuYm9keTsKLXNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQxLmJvZHkg
IT0gZG9jdW1lbnQuYm9keSIpOworc2hvdWxkTm90QmUoImRvY3VtZW50Mi5ib2R5IiwgIm51bGwi
KTsKK3Nob3VsZEJlTnVsbCgiZG9jdW1lbnQxLmJvZHkiKTsKIAotYm9keTEgPSBkb2N1bWVudDEu
Y3JlYXRlRWxlbWVudCgnYm9keScpOwotZG9jdW1lbnQxLmJvZHkgPSBib2R5MTsKLXNob3VsZEJl
KCJkb2N1bWVudDEuYm9keSIsICJib2R5MSIpCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
ZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9j
dW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTgzMTRmZjZiNzMwMTE1MmQzOGZkYThkNDc3ZDMwN2YzMDlhYzRlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9kb2N1bWVudHMvZG9tLXRyZWUtYWNjZXNzb3JzL0RvY3VtZW50LmJvZHktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworUEFTUyBDaGlsZGxlc3MgZG9jdW1lbnQgCitQQVNT
IENoaWxkbGVzcyBodG1sIGVsZW1lbnQgCitQQVNTIEJvZHkgZm9sbG93ZWQgYnkgZnJhbWVzZXQg
aW5zaWRlIHRoZSBodG1sIGVsZW1lbnQgCitQQVNTIEZyYW1lc2V0IGZvbGxvd2VkIGJ5IGJvZHkg
aW5zaWRlIHRoZSBodG1sIGVsZW1lbnQgCitGQUlMIEJvZHkgZm9sbG93ZWQgYnkgZnJhbWVzZXQg
aW5zaWRlIGEgbm9uLUhUTUwgaHRtbCBlbGVtZW50IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBFbGVtZW50IG5vZGUgPGJvZHk+PC9ib2R5PgorRkFJTCBGcmFtZXNldCBmb2xs
b3dlZCBieSBib2R5IGluc2lkZSBhIG5vbi1IVE1MIGh0bWwgZWxlbWVudCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCBudWxsIGJ1dCBnb3QgRWxlbWVudCBub2RlIDxmcmFtZXNldD48L2ZyYW1lc2V0
PgorUEFTUyBOb24tSFRNTCBib2R5IGZvbGxvd2VkIGJ5IGJvZHkgaW5zaWRlIHRoZSBodG1sIGVs
ZW1lbnQgCitQQVNTIE5vbi1IVE1MIGZyYW1lc2V0IGZvbGxvd2VkIGJ5IGJvZHkgaW5zaWRlIHRo
ZSBodG1sIGVsZW1lbnQgCitQQVNTIEJvZHkgaW5zaWRlIGFuIHggZWxlbWVudCBmb2xsb3dlZCBi
eSBhIGJvZHkgCitQQVNTIEZyYW1lc2V0IGluc2lkZSBhbiB4IGVsZW1lbnQgZm9sbG93ZWQgYnkg
YSBmcmFtZXNldCAKK1BBU1MgQm9keSBhcyB0aGUgcm9vdCBub2RlIAorUEFTUyBGcmFtZXNldCBh
cyB0aGUgcm9vdCBub2RlIAorRkFJTCBCb2R5IGFzIHRoZSByb290IG5vZGUgd2l0aCBhIGZyYW1l
c2V0IGNoaWxkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBFbGVtZW50IG5v
ZGUgPGZyYW1lc2V0PjwvZnJhbWVzZXQ+CitGQUlMIEZyYW1lc2V0IGFzIHRoZSByb290IG5vZGUg
d2l0aCBhIGJvZHkgY2hpbGQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgbnVsbCBidXQgZ290IEVs
ZW1lbnQgbm9kZSA8Ym9keT48L2JvZHk+CitQQVNTIE5vbi1IVE1MIGJvZHkgYXMgdGhlIHJvb3Qg
bm9kZSAKK1BBU1MgTm9uLUhUTUwgZnJhbWVzZXQgYXMgdGhlIHJvb3Qgbm9kZSAKK1BBU1MgZXhp
c3RpbmcgZG9jdW1lbnQncyBib2R5IAorUEFTUyBTZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBz
dHJpbmcuIAorUEFTUyBTZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBkaXYgZWxlbWVudC4gCitQ
QVNTIFNldHRpbmcgZG9jdW1lbnQuYm9keSB3aGVuIHRoZXJlJ3Mgbm8gcm9vdCBlbGVtZW50LiAK
K1BBU1MgU2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGEgbmV3IGJvZHkgZWxlbWVudC4gCitQQVNT
IFNldHRpbmcgZG9jdW1lbnQuYm9keSB0byBhIG5ldyBmcmFtZXNldCBlbGVtZW50LiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9kb2N1bWVudHMvZG9tLXRyZWUtYWNjZXNzb3JzL0RvY3VtZW50LmJvZHkuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9jdW1l
bnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdm
MWVkZjkzOWM2OTUzNGZhODUyMDQ3ZDFjOGVjNmRjMjY2ZmJhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9j
dW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5Lmh0bWwKQEAgLTAsMCArMSwx
NjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPkRvY3VtZW50LmJvZHk8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNczJnZXIiIGhyZWY9Im1haWx0bzptczJnZXJAZ21haWwu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvI2RvbS1kb2N1bWVudC1ib2R5Ij4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorZnVuY3Rpb24gY3JlYXRlRG9jdW1lbnQoKSB7CisgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOworICBkb2MucmVtb3ZlQ2hpbGQoZG9j
LmRvY3VtZW50RWxlbWVudCk7CisgIHJldHVybiBkb2M7Cit9Cit0ZXN0KGZ1bmN0aW9uKCkgewor
ICB2YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgYXNzZXJ0X2VxdWFscyhkb2MuYm9keSwg
bnVsbCk7Cit9LCAiQ2hpbGRsZXNzIGRvY3VtZW50Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2
YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVF
bGVtZW50KCJodG1sIikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBudWxsKTsKK30sICJD
aGlsZGxlc3MgaHRtbCBlbGVtZW50Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgZG9jID0g
Y3JlYXRlRG9jdW1lbnQoKTsKKyAgdmFyIGh0bWwgPSBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0
ZUVsZW1lbnQoImh0bWwiKSk7CisgIHZhciBiID0KKyAgICBodG1sLmFwcGVuZENoaWxkKGRvYy5j
cmVhdGVFbGVtZW50KCJib2R5IikpOworICBodG1sLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVt
ZW50KCJmcmFtZXNldCIpKTsKKyAgYXNzZXJ0X2VxdWFscyhkb2MuYm9keSwgYik7Cit9LCAiQm9k
eSBmb2xsb3dlZCBieSBmcmFtZXNldCBpbnNpZGUgdGhlIGh0bWwgZWxlbWVudCIpOwordGVzdChm
dW5jdGlvbigpIHsKKyAgdmFyIGRvYyA9IGNyZWF0ZURvY3VtZW50KCk7CisgIHZhciBodG1sID0g
ZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCJodG1sIikpOworICB2YXIgZiA9Cisg
ICAgaHRtbC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgiZnJhbWVzZXQiKSk7CisgIGh0
bWwuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CisgIGFzc2VydF9lcXVh
bHMoZG9jLmJvZHksIGYpOworfSwgIkZyYW1lc2V0IGZvbGxvd2VkIGJ5IGJvZHkgaW5zaWRlIHRo
ZSBodG1sIGVsZW1lbnQiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkb2MgPSBjcmVhdGVE
b2N1bWVudCgpOworICB2YXIgaHRtbCA9CisgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly9leGFtcGxlLm9yZy90ZXN0IiwgImh0bWwiKSk7CisgIGh0bWwuYXBw
ZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CisgIGh0bWwuYXBwZW5kQ2hpbGQo
ZG9jLmNyZWF0ZUVsZW1lbnQoImZyYW1lc2V0IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5
LCBudWxsKTsKK30sICJCb2R5IGZvbGxvd2VkIGJ5IGZyYW1lc2V0IGluc2lkZSBhIG5vbi1IVE1M
IGh0bWwgZWxlbWVudCIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGRvYyA9IGNyZWF0ZURv
Y3VtZW50KCk7CisgIHZhciBodG1sID0KKyAgICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVs
ZW1lbnROUygiaHR0cDovL2V4YW1wbGUub3JnL3Rlc3QiLCAiaHRtbCIpKTsKKyAgaHRtbC5hcHBl
bmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgiZnJhbWVzZXQiKSk7CisgIGh0bWwuYXBwZW5kQ2hp
bGQoZG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CisgIGFzc2VydF9lcXVhbHMoZG9jLmJvZHks
IG51bGwpOworfSwgIkZyYW1lc2V0IGZvbGxvd2VkIGJ5IGJvZHkgaW5zaWRlIGEgbm9uLUhUTUwg
aHRtbCBlbGVtZW50Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgZG9jID0gY3JlYXRlRG9j
dW1lbnQoKTsKKyAgdmFyIGh0bWwgPSBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQo
Imh0bWwiKSk7CisgIGh0bWwuYXBwZW5kQ2hpbGQoCisgICAgZG9jLmNyZWF0ZUVsZW1lbnROUygi
aHR0cDovL2V4YW1wbGUub3JnL3Rlc3QiLCAiYm9keSIpKTsKKyAgdmFyIGIgPSBodG1sLmFwcGVu
ZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCJib2R5IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5i
b2R5LCBiKTsKK30sICJOb24tSFRNTCBib2R5IGZvbGxvd2VkIGJ5IGJvZHkgaW5zaWRlIHRoZSBo
dG1sIGVsZW1lbnQiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkb2MgPSBjcmVhdGVEb2N1
bWVudCgpOworICB2YXIgaHRtbCA9IGRvYy5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgi
aHRtbCIpKTsKKyAgaHRtbC5hcHBlbmRDaGlsZCgKKyAgICBkb2MuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vZXhhbXBsZS5vcmcvdGVzdCIsICJmcmFtZXNldCIpKTsKKyAgdmFyIGIgPSBodG1sLmFw
cGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCJib2R5IikpOworICBhc3NlcnRfZXF1YWxzKGRv
Yy5ib2R5LCBiKTsKK30sICJOb24tSFRNTCBmcmFtZXNldCBmb2xsb3dlZCBieSBib2R5IGluc2lk
ZSB0aGUgaHRtbCBlbGVtZW50Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgZG9jID0gY3Jl
YXRlRG9jdW1lbnQoKTsKKyAgdmFyIGh0bWwgPSBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVs
ZW1lbnQoImh0bWwiKSk7CisgIHZhciB4ID0gaHRtbC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxl
bWVudCgieCIpKTsKKyAgeC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgiYm9keSIpKTsK
KyAgdmFyIGJvZHkgPSBodG1sLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCJib2R5Iikp
OworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBib2R5KTsKK30sICJCb2R5IGluc2lkZSBhbiB4
IGVsZW1lbnQgZm9sbG93ZWQgYnkgYSBib2R5Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIg
ZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgdmFyIGh0bWwgPSBkb2MuYXBwZW5kQ2hpbGQoZG9j
LmNyZWF0ZUVsZW1lbnQoImh0bWwiKSk7CisgIHZhciB4ID0gaHRtbC5hcHBlbmRDaGlsZChkb2Mu
Y3JlYXRlRWxlbWVudCgieCIpKTsKKyAgeC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgi
ZnJhbWVzZXQiKSk7CisgIHZhciBmcmFtZXNldCA9IGh0bWwuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0
ZUVsZW1lbnQoImZyYW1lc2V0IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBmcmFtZXNl
dCk7Cit9LCAiRnJhbWVzZXQgaW5zaWRlIGFuIHggZWxlbWVudCBmb2xsb3dlZCBieSBhIGZyYW1l
c2V0Iik7CisKKy8vIFJvb3Qgbm9kZSBpcyBub3QgYSBodG1sIGVsZW1lbnQuCit0ZXN0KGZ1bmN0
aW9uKCkgeworICB2YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgZG9jLmFwcGVuZENoaWxk
KGRvYy5jcmVhdGVFbGVtZW50KCJib2R5IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBu
dWxsKTsKK30sICJCb2R5IGFzIHRoZSByb290IG5vZGUiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IHZhciBkb2MgPSBjcmVhdGVEb2N1bWVudCgpOworICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0
ZUVsZW1lbnQoImZyYW1lc2V0IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBudWxsKTsK
K30sICJGcmFtZXNldCBhcyB0aGUgcm9vdCBub2RlIik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2
YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgdmFyIGJvZHkgPSBkb2MuYXBwZW5kQ2hpbGQo
ZG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CisgIGJvZHkuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0
ZUVsZW1lbnQoImZyYW1lc2V0IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBudWxsKTsK
K30sICJCb2R5IGFzIHRoZSByb290IG5vZGUgd2l0aCBhIGZyYW1lc2V0IGNoaWxkIik7Cit0ZXN0
KGZ1bmN0aW9uKCkgeworICB2YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgdmFyIGZyYW1l
c2V0ID0gZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCJmcmFtZXNldCIpKTsKKyAg
ZnJhbWVzZXQuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CisgIGFzc2Vy
dF9lcXVhbHMoZG9jLmJvZHksIG51bGwpOworfSwgIkZyYW1lc2V0IGFzIHRoZSByb290IG5vZGUg
d2l0aCBhIGJvZHkgY2hpbGQiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBkb2MgPSBjcmVh
dGVEb2N1bWVudCgpOworICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0
cDovL2V4YW1wbGUub3JnL3Rlc3QiLCAiYm9keSIpKTsKKyAgYXNzZXJ0X2VxdWFscyhkb2MuYm9k
eSwgbnVsbCk7Cit9LCAiTm9uLUhUTUwgYm9keSBhcyB0aGUgcm9vdCBub2RlIik7Cit0ZXN0KGZ1
bmN0aW9uKCkgeworICB2YXIgZG9jID0gY3JlYXRlRG9jdW1lbnQoKTsKKyAgZG9jLmFwcGVuZENo
aWxkKGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly9leGFtcGxlLm9yZy90ZXN0IiwgImZyYW1l
c2V0IikpOworICBhc3NlcnRfZXF1YWxzKGRvYy5ib2R5LCBudWxsKTsKK30sICJOb24tSFRNTCBm
cmFtZXNldCBhcyB0aGUgcm9vdCBub2RlIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2Vy
dF9ub3RfZXF1YWxzKGRvY3VtZW50LmJvZHksIG51bGwpOworICBhc3NlcnRfdHJ1ZShkb2N1bWVu
dC5ib2R5IGluc3RhbmNlb2YgSFRNTEJvZHlFbGVtZW50LCAic2hvdWxkIGJlIEhUTUxCb2R5RWxl
bWVudCIpOworICBhc3NlcnRfZXF1YWxzKGRvY3VtZW50LmJvZHkudGFnTmFtZSwgIkJPRFkiKTsK
K30sICJleGlzdGluZyBkb2N1bWVudCdzIGJvZHkiKTsKKworCit2YXIgb3JpZ2luYWxCb2R5ID0g
ZG9jdW1lbnQuYm9keTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5ib2R5ID0gInRleHQiCisgIH0p
CisgIGFzc2VydF9lcXVhbHMoZG9jdW1lbnQuYm9keSwgb3JpZ2luYWxCb2R5KTsKK30sICJTZXR0
aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBzdHJpbmcuIikKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFz
c2VydF90aHJvd3MoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgIGRv
Y3VtZW50LmJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQorICB9KQorICBhc3Nl
cnRfZXF1YWxzKGRvY3VtZW50LmJvZHksIG9yaWdpbmFsQm9keSk7Cit9LCAiU2V0dGluZyBkb2N1
bWVudC5ib2R5IHRvIGEgZGl2IGVsZW1lbnQuIikKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBk
b2MgPSBjcmVhdGVEb2N1bWVudCgpOworICBhc3NlcnRfdGhyb3dzKCJIaWVyYXJjaHlSZXF1ZXN0
RXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICBkb2MuYm9keSA9IGRvYy5jcmVhdGVFbGVtZW50KCJi
b2R5IikKKyAgfSkKKyAgYXNzZXJ0X2VxdWFscyhkb2MuYm9keSwgbnVsbCk7Cit9LCAiU2V0dGlu
ZyBkb2N1bWVudC5ib2R5IHdoZW4gdGhlcmUncyBubyByb290IGVsZW1lbnQuIikKK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1M
RG9jdW1lbnQoKTsKKworICB2YXIgbmV3X2JvZHkgPSBkb2MuY3JlYXRlRWxlbWVudCgiYm9keSIp
OworICBhc3NlcnRfdHJ1ZShuZXdfYm9keSBpbnN0YW5jZW9mIEhUTUxCb2R5RWxlbWVudCwgInNo
b3VsZCBiZSBIVE1MQm9keUVsZW1lbnQiKTsKKyAgYXNzZXJ0X2VxdWFscyhuZXdfYm9keS50YWdO
YW1lLCAiQk9EWSIpOworCisgIGRvYy5ib2R5ID0gbmV3X2JvZHk7CisgIGFzc2VydF9lcXVhbHMo
ZG9jLmJvZHksIG5ld19ib2R5KTsKK30sICJTZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBuZXcg
Ym9keSBlbGVtZW50LiIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGRvYyA9IGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOworCisgIHZhciBuZXdfZnJhbWVz
ZXQgPSBkb2MuY3JlYXRlRWxlbWVudCgiZnJhbWVzZXQiKTsKKyAgYXNzZXJ0X3RydWUobmV3X2Zy
YW1lc2V0IGluc3RhbmNlb2YgSFRNTEZyYW1lU2V0RWxlbWVudCwgInNob3VsZCBiZSBIVE1MRnJh
bWVTZXRFbGVtZW50Iik7CisgIGFzc2VydF9lcXVhbHMobmV3X2ZyYW1lc2V0LnRhZ05hbWUsICJG
UkFNRVNFVCIpOworCisgIGRvYy5ib2R5ID0gbmV3X2ZyYW1lc2V0OworICBhc3NlcnRfZXF1YWxz
KGRvYy5ib2R5LCBuZXdfZnJhbWVzZXQsICJ0ZXN0Ni0zLCBhcHBlbmQgZnJhbWVzZXQgdG8gYSBu
ZXcgZG9jdW1lbnQiKTsKK30sICJTZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBuZXcgZnJhbWVz
ZXQgZWxlbWVudC4iKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282955</attachid>
            <date>2016-07-06 15:18:00 -0700</date>
            <delta_ts>2016-07-06 19:00:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159490-20160706151728.patch</filename>
            <type>text/plain</type>
            <size>8619</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQwNWI4MTRhOTkzNDhh
NTA1N2M4ZDEyZGUzZjIxNDdkNWU4Mzc3Yy4uY2I5OTJkNzdkOGVkNGE5ZTg5OTNkMTA5MTk5OTEy
ZTc3MGQyZWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE2LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWxpZ24gRG9jdW1lbnQuYm9k
eSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0OTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGlnbiBEb2N1bWVudC5ib2R5IHNldHRlciB3
aXRoIHRoZSBIVE1MIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3VtZW50LWJvZHkKKworICAgICAg
ICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdlYi1leHBvc2VkIGNoYW5nZXMgd2VyZSBt
YWRlOgorICAgICAgICAtIEl0IGlzIG5vdyBwb3NzaWJsZSB0byBzZXQgZG9jdW1lbnQuYm9keSB0
byBhIGZyYW1lc2V0IGVsZW1lbnQuCisgICAgICAgIC0gV2Ugbm8gbG9uZ2VyIGNhbGwgaW1wb3J0
Tm9kZSgpIG9uIHRoZSBwYXNzZWQgaW4gYm9keS4gVGhlcmVmb3JlLAorICAgICAgICAgIGlmIHRo
ZSBib2R5IGNvbWVzIGZyb20gYW5vdGhlciBkb2N1bWVudCwgaXRzIHdpbGwgYmUgYWRvcHRlZCAv
CisgICAgICAgICAgdHJhbnNmZXJyZWQgcmF0aGVyIHRoYW4gY2xvbmVkLgorCisgICAgICAgIEJv
dGggY2hhbmdlcyBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgRmlyZWZveCBhbmQgQ2hyb21lLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCAvIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzZXRCb2R5T3JGcmFtZXNldCk6CisKKzIwMTYtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBEb2N1bWVudC5ib2R5IHNob3VsZCByZXR1cm4gdGhl
IGZpcnN0IGNoaWxkIG9mIHRoZSBodG1sIGVsZW1lbnQgdGhhdCBpcyBlaXRoZXIgYSBib2R5IC8g
ZnJhbWVzZXQgZWxlbWVudAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU5NDg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4OTE1MDA3NWJj
NTM1NzZlYWViODE2NjMxNTY0ZTFmYWVjMDhlZDYuLmNkMGZhNmU4MzI1NTgwZDM3ZWJhYzNiMTgx
ZmIxNmJkZmNlZjQ4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjYyNCwyNyArMjYy
NCwyNiBAQCBIVE1MRWxlbWVudCogRG9jdW1lbnQ6OmJvZHlPckZyYW1lc2V0KCkgY29uc3QKIAog
dm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUmVmUHRyPEhUTUxFbGVtZW50PiYmIG5l
d0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90
IHN1cHBvcnQgc2V0dGluZyBhIDxmcmFtZXNldD4gRWxlbWVudCwgb25seSBhIDxib2R5Pi4gVGhp
cyBkb2VzCi0gICAgLy8gbm90IG1hdGNoIHRoZSBIVE1MIHNwZWNpZmljYXRpb246Ci0gICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3Vt
ZW50LWJvZHkKLSAgICBpZiAoIW5ld0JvZHkgfHwgIWRvY3VtZW50RWxlbWVudCgpIHx8ICFuZXdC
b2R5LT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7IAorICAgIGlmICghaXM8SFRNTEJvZHlFbGVtZW50
PihuZXdCb2R5LmdldCgpKSAmJiAhaXM8SFRNTEZyYW1lU2V0RWxlbWVudD4obmV3Qm9keS5nZXQo
KSkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoJm5ld0JvZHktPmRvY3VtZW50KCkgIT0gdGhpcykgewotICAg
ICAgICBlYyA9IDA7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gaW1wb3J0Tm9kZSgqbmV3
Qm9keSwgdHJ1ZSwgZWMpOwotICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAotICAgICAgICBuZXdCb2R5ID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUuZ2V0
KCkpOworICAgIGF1dG8qIGN1cnJlbnRCb2R5ID0gYm9keU9yRnJhbWVzZXQoKTsKKyAgICBpZiAo
bmV3Qm9keSA9PSBjdXJyZW50Qm9keSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGN1cnJl
bnRCb2R5KSB7CisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQoKm5ld0Jv
ZHksICpjdXJyZW50Qm9keSwgZWMpOworICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KGF1dG8qIGJvZHkgPSBib2R5T3JGcmFtZXNldCgpKQotICAgICAgICBkb2N1bWVudEVsZW1lbnQo
KS0+cmVwbGFjZUNoaWxkKCpuZXdCb2R5LCAqYm9keSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAg
ZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKCpuZXdCb2R5LCBlYyk7CisgICAgaWYgKCFk
b2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRD
aGlsZCgqbmV3Qm9keSwgZWMpOwogfQogCiBMb2NhdGlvbiogRG9jdW1lbnQ6OmxvY2F0aW9uKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2MDZkZTcyODE5YWNiNWI0ZDM3MjA2YTIxNjM4OGYxNGViZTlhZjk1Li4x
ZTc2NjA3YmMxZDI2NDFlY2JkYjlmMGNiMjBhMGVmODVlNWY3YTVmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTYtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGlnbiBEb2N1bWVudC5ib2R5IHNldHRlciB3aXRoIHRoZSBIVE1MIHNwZWNpZmljYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ5
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBleGlzdGluZyB0ZXN0IHRoYXQgd2FzIHNldHRpbmcgYSBkb2N1bWVudCdzIGJvZHkgdG8gYW5v
dGhlciBmcmFtZSdzIGJvZHkKKyAgICAgICAgYXMgaXQgd2FzIGV4cGVjdGluZyB0aGUgYm9keSBl
bGVtZW50IHRvIGdldCBjbG9uZWQgcmF0aGVyIHRoYW4gYWRvcHRlZCAvIHRyYW5zZmVycmVkLgor
CisgICAgICAgICogZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL2RvY3VtZW50LXNldC1ib2R5Lmh0bWw6CisKIDIwMTYtMDctMDYgIFJ5
YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBp
bnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC5odG1sIGFmdGVyIHIyMDI4NzMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY4NWYyZTY1ZWQ5NDllZmY1Y2Y5ZTZhYjUyMzNlMjA4
OWMzNjkyZGYuLjU4NzI3ZTNmYzY3Y2I3ZmQ0ODlkNjdjMTQ4MmY1ZGZmOTQzMTBhZDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE2LTA3LTA2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWxpZ24gRG9jdW1lbnQu
Ym9keSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0OTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGV4aXN0aW5nIFczQyB0
ZXN0IG5vdyB0aGF0IG9uZSBtb3JlIGNoZWNrIGlzIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1
bWVudC5ib2R5LWV4cGVjdGVkLnR4dDoKKworMjAxNi0wNy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCiAgICAgICAgIERvY3VtZW50LmJvZHkgc2hvdWxkIHJldHVybiB0aGUg
Zmlyc3QgY2hpbGQgb2YgdGhlIGh0bWwgZWxlbWVudCB0aGF0IGlzIGVpdGhlciBhIGJvZHkgLyBm
cmFtZXNldCBlbGVtZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTk0ODgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1l
bnQtc2V0LWJvZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQt
c2V0LWJvZHktZXhwZWN0ZWQudHh0CmluZGV4IDliMTkzNDM3OTk0MmY1MDhlOTU2MDNiYjc2YWU2
YmM1YzkzN2FhYTcuLjJlZTAzMWFiZGM0YTQ5MWQ5NGFjMjdmYmUyMGQ3MTg3YTFkNmUxNWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LXNldC1ib2R5LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS1leHBlY3Rl
ZC50eHQKQEAgLTEsMTQgKzEsMTQgQEAKLVRlc3RzIHNldHRpbmcgZG9jdW1lbnQuYm9keQorVGVz
dHMgc2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGFub3RoZXIgZnJhbWUncyBib2R5CiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50MS5ib2R5ID0gaWZyYW1lMSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzLgotUEFTUyBpZnJhbWUxLnBhcmVudE5vZGUgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBkb2N1
bWVudDEuYm9keSA9IGRvY3VtZW50MS5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFT
UyBkb2N1bWVudDEuYm9keSAhPSBkb2N1bWVudC5ib2R5IGlzIHRydWUKLVBBU1MgZG9jdW1lbnQx
LmJvZHkgaXMgYm9keTEKK1BBU1MgZG9jdW1lbnQxLmJvZHkgaXMgbm90IG51bGwKK1BBU1MgZG9j
dW1lbnQyLmJvZHkgaXMgbnVsbAorUEFTUyBkb2N1bWVudDIuYm9keSA9IGRvY3VtZW50MS5ib2R5
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBkb2N1bWVudDIuYm9keSBpcyBub3QgbnVs
bAorUEFTUyBkb2N1bWVudDEuYm9keSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9jdW1lbnQtc2V0LWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50LXNldC1ib2R5Lmh0bWwKaW5kZXggNTE1MWFiNjEyYzQ1MjViZmFmYmE4YTE0OGYwZGEyZmQ2
YjNjMDhjMS4uMjJhN2QzYjMzZmVkYmU0ZWNkYzliMDJiNGFkODA4NmI3NTY5ZDQ0YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHkuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS5odG1sCkBAIC0xLDI3ICsxLDI3
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgorPGlmcmFtZSBpZD0i
dGVzdEZyYW1lMSIgc3JjZG9jPSI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiI+PC9pZnJhbWU+
Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUyIiBzcmNkb2M9IjxodG1sPjwvaHRtbD4iPjwvaWZyYW1l
PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzZXR0aW5nIGRvY3VtZW50LmJvZHkiKTsK
K2Rlc2NyaXB0aW9uKCJUZXN0cyBzZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYW5vdGhlciBmcmFt
ZSdzIGJvZHkiKTsKIAotaWZyYW1lMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScp
OwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUxKTsKLWRvY3VtZW50MSA9IGlmcmFt
ZTEuY29udGVudERvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiZG9j
dW1lbnQiKTsKK3ZhciBkb2N1bWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZy
YW1lMSIpLmNvbnRlbnREb2N1bWVudDsKK3ZhciBkb2N1bWVudDIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdEZyYW1lMiIpLmNvbnRlbnREb2N1bWVudDsKK2lmIChkb2N1bWVudDIuYm9k
eSkKKyAgICBkb2N1bWVudDIuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGRvY3VtZW50Mi5i
b2R5KTsKIAotc2hvdWxkVGhyb3coImRvY3VtZW50MS5ib2R5ID0gaWZyYW1lMSIsICInRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOwotc2hvdWxkQmUoImlm
cmFtZTEucGFyZW50Tm9kZSIsICJkb2N1bWVudC5ib2R5Iik7CitzaG91bGROb3RCZSgiZG9jdW1l
bnQxLmJvZHkiLCAibnVsbCIpOworc2hvdWxkQmVOdWxsKCJkb2N1bWVudDIuYm9keSIpOwogCi1z
aG91bGRUaHJvdygiZG9jdW1lbnQxLmJvZHkgPSBkb2N1bWVudDEuY3JlYXRlRWxlbWVudCgnaWZy
YW1lJykiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyci
KTsKK3Nob3VsZE5vdFRocm93KCJkb2N1bWVudDIuYm9keSA9IGRvY3VtZW50MS5ib2R5Iik7CiAK
LWRvY3VtZW50MS5ib2R5ID0gZG9jdW1lbnQuYm9keTsKLXNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQx
LmJvZHkgIT0gZG9jdW1lbnQuYm9keSIpOworc2hvdWxkTm90QmUoImRvY3VtZW50Mi5ib2R5Iiwg
Im51bGwiKTsKK3Nob3VsZEJlTnVsbCgiZG9jdW1lbnQxLmJvZHkiKTsKIAotYm9keTEgPSBkb2N1
bWVudDEuY3JlYXRlRWxlbWVudCgnYm9keScpOwotZG9jdW1lbnQxLmJvZHkgPSBib2R5MTsKLXNo
b3VsZEJlKCJkb2N1bWVudDEuYm9keSIsICJib2R5MSIpCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVkLnR4
dAppbmRleCBhM2ExMzQ0YTIxYmYyYjJlMWMyMjUzNDA1NjJmOGU3YWVhMzljYTU3Li43MzQ1OWM3
YjJlMzlkN2Y4YTVlN2E2OTRlZTcyNDNhNDg0NzU0OGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9kb20t
dHJlZS1hY2Nlc3NvcnMvRG9jdW1lbnQuYm9keS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9kb2N1bWVudHMvZG9t
LXRyZWUtYWNjZXNzb3JzL0RvY3VtZW50LmJvZHktZXhwZWN0ZWQudHh0CkBAIC0yMCw1ICsyMCw1
IEBAIFBBU1MgU2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGEgc3RyaW5nLgogUEFTUyBTZXR0aW5n
IGRvY3VtZW50LmJvZHkgdG8gYSBkaXYgZWxlbWVudC4gCiBQQVNTIFNldHRpbmcgZG9jdW1lbnQu
Ym9keSB3aGVuIHRoZXJlJ3Mgbm8gcm9vdCBlbGVtZW50LiAKIFBBU1MgU2V0dGluZyBkb2N1bWVu
dC5ib2R5IHRvIGEgbmV3IGJvZHkgZWxlbWVudC4gCi1GQUlMIFNldHRpbmcgZG9jdW1lbnQuYm9k
eSB0byBhIG5ldyBmcmFtZXNldCBlbGVtZW50LiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMworUEFTUyBTZXR0aW5nIGRvY3VtZW50LmJvZHkgdG8gYSBuZXcgZnJhbWVzZXQg
ZWxlbWVudC4gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282981</attachid>
            <date>2016-07-06 19:00:22 -0700</date>
            <delta_ts>2016-07-06 21:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159490-20160706185949.patch</filename>
            <type>text/plain</type>
            <size>10057</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVjODI2Y2U5NGE4YzYw
YWI5NjkwYjFkOGY1MWNiMDlkYmZiMDljZC4uNDc3ODVlYmI2ZWFmNzgyNDkyMDZiMzVjOGI3Zjdh
ZjhmMTdiNDJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE2LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWxpZ24gRG9jdW1lbnQuYm9k
eSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0OTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGlnbiBEb2N1bWVudC5ib2R5IHNldHRlciB3
aXRoIHRoZSBIVE1MIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3VtZW50LWJvZHkKKworICAgICAg
ICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdlYi1leHBvc2VkIGNoYW5nZXMgd2VyZSBt
YWRlOgorICAgICAgICAtIEl0IGlzIG5vdyBwb3NzaWJsZSB0byBzZXQgZG9jdW1lbnQuYm9keSB0
byBhIGZyYW1lc2V0IGVsZW1lbnQuCisgICAgICAgIC0gV2Ugbm8gbG9uZ2VyIGNhbGwgaW1wb3J0
Tm9kZSgpIG9uIHRoZSBwYXNzZWQgaW4gYm9keS4gVGhlcmVmb3JlLAorICAgICAgICAgIGlmIHRo
ZSBib2R5IGNvbWVzIGZyb20gYW5vdGhlciBkb2N1bWVudCwgaXRzIHdpbGwgYmUgYWRvcHRlZCAv
CisgICAgICAgICAgdHJhbnNmZXJyZWQgcmF0aGVyIHRoYW4gY2xvbmVkLgorCisgICAgICAgIEJv
dGggY2hhbmdlcyBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgRmlyZWZveCBhbmQgQ2hyb21lLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCAvIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzZXRCb2R5T3JGcmFtZXNldCk6CisKKzIwMTYtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXVtDb2NvYV0gRGlzYWJsZSBSZXNvdXJjZVJl
c3BvbnNlIGxhenkgaW5pdGlhbGl6YXRpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1OTQ5NwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjcyMDkw
NjY+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxODkxNTAwNzViYzUzNTc2ZWFlYjgxNjYz
MTU2NGUxZmFlYzA4ZWQ2Li5jZDBmYTZlODMyNTU4MGQzN2ViYWMzYjE4MWZiMTZiZGZjZWY0OGU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI2MjQsMjcgKzI2MjQsMjYgQEAgSFRNTEVs
ZW1lbnQqIERvY3VtZW50Ojpib2R5T3JGcmFtZXNldCgpIGNvbnN0CiAKIHZvaWQgRG9jdW1lbnQ6
OnNldEJvZHlPckZyYW1lc2V0KFJlZlB0cjxIVE1MRWxlbWVudD4mJiBuZXdCb2R5LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBzdXBwb3J0IHNldHRp
bmcgYSA8ZnJhbWVzZXQ+IEVsZW1lbnQsIG9ubHkgYSA8Ym9keT4uIFRoaXMgZG9lcwotICAgIC8v
IG5vdCBtYXRjaCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uOgotICAgIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2RvbS1kb2N1bWVudC1ib2R5Ci0gICAg
aWYgKCFuZXdCb2R5IHx8ICFkb2N1bWVudEVsZW1lbnQoKSB8fCAhbmV3Qm9keS0+aGFzVGFnTmFt
ZShib2R5VGFnKSkgeyAKKyAgICBpZiAoIWlzPEhUTUxCb2R5RWxlbWVudD4obmV3Qm9keS5nZXQo
KSkgJiYgIWlzPEhUTUxGcmFtZVNldEVsZW1lbnQ+KG5ld0JvZHkuZ2V0KCkpKSB7CiAgICAgICAg
IGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKCZuZXdCb2R5LT5kb2N1bWVudCgpICE9IHRoaXMpIHsKLSAgICAgICAgZWMgPSAwOwot
ICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGltcG9ydE5vZGUoKm5ld0JvZHksIHRydWUsIGVj
KTsKLSAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAg
ICAgbmV3Qm9keSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKKyAgICBhdXRv
KiBjdXJyZW50Qm9keSA9IGJvZHlPckZyYW1lc2V0KCk7CisgICAgaWYgKG5ld0JvZHkgPT0gY3Vy
cmVudEJvZHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjdXJyZW50Qm9keSkgeworICAg
ICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKCpuZXdCb2R5LCAqY3VycmVudEJv
ZHksIGVjKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChhdXRvKiBib2R5ID0g
Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGls
ZCgqbmV3Qm9keSwgKmJvZHksIGVjKTsKLSAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50RWxlbWVu
dCgpLT5hcHBlbmRDaGlsZCgqbmV3Qm9keSwgZWMpOworICAgIGlmICghZG9jdW1lbnRFbGVtZW50
KCkpIHsKKyAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQoKm5ld0JvZHks
IGVjKTsKIH0KIAogTG9jYXRpb24qIERvY3VtZW50Ojpsb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NDA5MWQ5Y2Y0ZTQ4ZDdmZDM4NzRjNDdiMDE5MjJjYjdiMTNmMjk2Ny4uNjA3ODUyMTZkNWNkMjNm
ZmU4N2Q5ODk5MmFlYmI1YjFjMWUyZTNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3
LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gRG9j
dW1lbnQuYm9keSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgdGVz
dCB0aGF0IHdhcyBzZXR0aW5nIGEgZG9jdW1lbnQncyBib2R5IHRvIGFub3RoZXIgZnJhbWUncyBi
b2R5CisgICAgICAgIGFzIGl0IHdhcyBleHBlY3RpbmcgdGhlIGJvZHkgZWxlbWVudCB0byBnZXQg
Y2xvbmVkIHJhdGhlciB0aGFuIGFkb3B0ZWQgLyB0cmFuc2ZlcnJlZC4KKworICAgICAgICAqIGZh
c3QvZG9tL2RvY3VtZW50LXNldC1ib2R5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9kb2N1bWVudC1zZXQtYm9keS5odG1sOgorCiAyMDE2LTA3LTA2ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJldHVybiB2YWx1ZXMgb2YgSlNBcnJheTo6
Y3JlYXRlVW5pbml0aWFsaXplZCAoYW5kIHJlbGF0ZWQpIGFyZSBub3QgY29uc2lzdGVudGx5IGNo
ZWNrZWQgZm9yIG51bGxwdHIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY4NWYy
ZTY1ZWQ5NDllZmY1Y2Y5ZTZhYjUyMzNlMjA4OWMzNjkyZGYuLjU4NzI3ZTNmYzY3Y2I3ZmQ0ODlk
NjdjMTQ4MmY1ZGZmOTQzMTBhZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDE2IEBACiAyMDE2LTA3LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKKyAgICAgICAgQWxpZ24gRG9jdW1lbnQuYm9keSBzZXR0ZXIgd2l0aCB0aGUgSFRNTCBzcGVj
aWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTk0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZWJhc2VsaW5lIGV4aXN0aW5nIFczQyB0ZXN0IG5vdyB0aGF0IG9uZSBtb3JlIGNoZWNrIGlz
IHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9jdW1l
bnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVkLnR4dDoKKworMjAx
Ni0wNy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIERvY3Vt
ZW50LmJvZHkgc2hvdWxkIHJldHVybiB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIGh0bWwgZWxlbWVu
dCB0aGF0IGlzIGVpdGhlciBhIGJvZHkgLyBmcmFtZXNldCBlbGVtZW50CiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0ODgKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHktZXhwZWN0ZWQudHh0CmluZGV4IDli
MTkzNDM3OTk0MmY1MDhlOTU2MDNiYjc2YWU2YmM1YzkzN2FhYTcuLjJlZTAzMWFiZGM0YTQ5MWQ5
NGFjMjdmYmUyMGQ3MTg3YTFkNmUxNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2RvY3VtZW50LXNldC1ib2R5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kb2N1bWVudC1zZXQtYm9keS1leHBlY3RlZC50eHQKQEAgLTEsMTQgKzEsMTQgQEAKLVRlc3Rz
IHNldHRpbmcgZG9jdW1lbnQuYm9keQorVGVzdHMgc2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGFu
b3RoZXIgZnJhbWUncyBib2R5CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IGRvY3VtZW50MS5ib2R5ID0gaWZyYW1lMSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBpZnJhbWUxLnBhcmVudE5vZGUg
aXMgZG9jdW1lbnQuYm9keQotUEFTUyBkb2N1bWVudDEuYm9keSA9IGRvY3VtZW50MS5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBkb2N1bWVudDEuYm9keSAhPSBkb2N1bWVudC5i
b2R5IGlzIHRydWUKLVBBU1MgZG9jdW1lbnQxLmJvZHkgaXMgYm9keTEKK1BBU1MgZG9jdW1lbnQx
LmJvZHkgaXMgbm90IG51bGwKK1BBU1MgZG9jdW1lbnQyLmJvZHkgaXMgbnVsbAorUEFTUyBkb2N1
bWVudDIuYm9keSA9IGRvY3VtZW50MS5ib2R5IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBkb2N1bWVudDIuYm9keSBpcyBub3QgbnVsbAorUEFTUyBkb2N1bWVudDEuYm9keSBpcyBudWxs
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLQorIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHktbnVsbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS1udWxs
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTYxNGYyMDExZmZhMjQ2ZTVkMTZlYTU3NTM3NGEy
MzgyN2MwNWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1l
bnQtc2V0LWJvZHktbnVsbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgc2V0
dGluZyBkb2N1bWVudC5ib2R5IHRvIG51bGwKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdERvY3VtZW50LmJvZHkgPSBudWxsIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHktbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9jdW1lbnQtc2V0LWJvZHktbnVsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5OWU0MjEzNDM2
Y2E2NTIxOTVhMmU2ZDBiYTVkNTFiYTc5OGQ2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS1udWxsLmh0bWwKQEAgLTAsMCArMSwxNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJh
bWUgaWQ9InRlc3RGcmFtZSIgc3JjZG9jPSI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiI+PC9p
ZnJhbWU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHNldHRpbmcgZG9jdW1lbnQuYm9k
eSB0byBudWxsIik7CisKK3ZhciB0ZXN0RG9jdW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdEZyYW1lIikuY29udGVudERvY3VtZW50Oworc2hvdWxkVGhyb3coInRlc3REb2N1bWVu
dC5ib2R5ID0gbnVsbCIsICInRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzJyIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LXNldC1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb2N1bWVudC1zZXQtYm9keS5odG1sCmluZGV4IDUxNTFhYjYxMmM0NTI1YmZhZmJh
OGExNDhmMGRhMmZkNmIzYzA4YzEuLjIyYTdkM2IzM2ZlZGJlNGVjZGM5YjAyYjRhZDgwODZiNzU2
OWQ0NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LXNldC1ib2R5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtc2V0LWJvZHkuaHRtbApA
QCAtMSwyNyArMSwyNyBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4K
KzxpZnJhbWUgaWQ9InRlc3RGcmFtZTEiIHNyY2RvYz0iPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0idGVzdEZyYW1lMiIgc3JjZG9jPSI8aHRtbD48L2h0
bWw+Ij48L2lmcmFtZT4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgc2V0dGluZyBkb2N1
bWVudC5ib2R5Iik7CitkZXNjcmlwdGlvbigiVGVzdHMgc2V0dGluZyBkb2N1bWVudC5ib2R5IHRv
IGFub3RoZXIgZnJhbWUncyBib2R5Iik7CiAKLWlmcmFtZTEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpZnJhbWUnKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lMSk7Ci1kb2N1
bWVudDEgPSBpZnJhbWUxLmNvbnRlbnREb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1M
RG9jdW1lbnQoImRvY3VtZW50Iik7Cit2YXIgZG9jdW1lbnQxID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3RGcmFtZTEiKS5jb250ZW50RG9jdW1lbnQ7Cit2YXIgZG9jdW1lbnQyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZTIiKS5jb250ZW50RG9jdW1lbnQ7CitpZiAo
ZG9jdW1lbnQyLmJvZHkpCisgICAgZG9jdW1lbnQyLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGls
ZChkb2N1bWVudDIuYm9keSk7CiAKLXNob3VsZFRocm93KCJkb2N1bWVudDEuYm9keSA9IGlmcmFt
ZTEiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsK
LXNob3VsZEJlKCJpZnJhbWUxLnBhcmVudE5vZGUiLCAiZG9jdW1lbnQuYm9keSIpOworc2hvdWxk
Tm90QmUoImRvY3VtZW50MS5ib2R5IiwgIm51bGwiKTsKK3Nob3VsZEJlTnVsbCgiZG9jdW1lbnQy
LmJvZHkiKTsKIAotc2hvdWxkVGhyb3coImRvY3VtZW50MS5ib2R5ID0gZG9jdW1lbnQxLmNyZWF0
ZUVsZW1lbnQoJ2lmcmFtZScpIiwgIidFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMnIik7CitzaG91bGROb3RUaHJvdygiZG9jdW1lbnQyLmJvZHkgPSBkb2N1bWVu
dDEuYm9keSIpOwogCi1kb2N1bWVudDEuYm9keSA9IGRvY3VtZW50LmJvZHk7Ci1zaG91bGRCZVRy
dWUoImRvY3VtZW50MS5ib2R5ICE9IGRvY3VtZW50LmJvZHkiKTsKK3Nob3VsZE5vdEJlKCJkb2N1
bWVudDIuYm9keSIsICJudWxsIik7CitzaG91bGRCZU51bGwoImRvY3VtZW50MS5ib2R5Iik7CiAK
LWJvZHkxID0gZG9jdW1lbnQxLmNyZWF0ZUVsZW1lbnQoJ2JvZHknKTsKLWRvY3VtZW50MS5ib2R5
ID0gYm9keTE7Ci1zaG91bGRCZSgiZG9jdW1lbnQxLmJvZHkiLCAiYm9keTEiKQogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1hY2Nlc3NvcnMvRG9jdW1lbnQu
Ym9keS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1hY2Nlc3NvcnMvRG9jdW1lbnQuYm9k
eS1leHBlY3RlZC50eHQKaW5kZXggYTNhMTM0NGEyMWJmMmIyZTFjMjI1MzQwNTYyZjhlN2FlYTM5
Y2E1Ny4uNzM0NTljN2IyZTM5ZDdmOGE1ZTdhNjk0ZWU3MjQzYTQ4NDc1NDhmMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9k
b2N1bWVudHMvZG9tLXRyZWUtYWNjZXNzb3JzL0RvY3VtZW50LmJvZHktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
ZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5ib2R5LWV4cGVjdGVkLnR4dApA
QCAtMjAsNSArMjAsNSBAQCBQQVNTIFNldHRpbmcgZG9jdW1lbnQuYm9keSB0byBhIHN0cmluZy4K
IFBBU1MgU2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGEgZGl2IGVsZW1lbnQuIAogUEFTUyBTZXR0
aW5nIGRvY3VtZW50LmJvZHkgd2hlbiB0aGVyZSdzIG5vIHJvb3QgZWxlbWVudC4gCiBQQVNTIFNl
dHRpbmcgZG9jdW1lbnQuYm9keSB0byBhIG5ldyBib2R5IGVsZW1lbnQuIAotRkFJTCBTZXR0aW5n
IGRvY3VtZW50LmJvZHkgdG8gYSBuZXcgZnJhbWVzZXQgZWxlbWVudC4gSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMKK1BBU1MgU2V0dGluZyBkb2N1bWVudC5ib2R5IHRvIGEg
bmV3IGZyYW1lc2V0IGVsZW1lbnQuIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>