<?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>30260</bug_id>
          
          <creation_ts>2009-10-09 13:34:51 -0700</creation_ts>
          <short_desc>REGRESSION: Logging out from SAP doesn&apos;t work</short_desc>
          <delta_ts>2009-10-09 17:47:29 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>153749</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-09 13:34:51 -0700</bug_when>
    <thetext>SAP uses the following code for logging out:

	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf(&quot;msie&quot;) != -1)
	{
		document.execCommand( &quot;ClearAuthenticationCache&quot; );
	}
	else
	{
		var xmlhttp = createXMLObject();
		xmlhttp.open(&quot;GET&quot;, &quot;Logoff.htm&quot;, true, &quot;logout&quot;, &quot;logout&quot;);
		xmlhttp.send(&quot;&quot;);
		xmlhttp.abort();
	}

This works quite differently in IE and in Firefox, but lets one log out securely. We should make the Firefox version work in WebKit (again?).

See &lt;https://bugzilla.mozilla.org/show_bug.cgi?id=287957&gt; for some related discussion.

&lt;rdar://problem/6447115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153750</commentid>
    <comment_count>1</comment_count>
      <attachid>40964</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-09 13:35:55 -0700</bug_when>
    <thetext>Created attachment 40964
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153772</commentid>
    <comment_count>2</comment_count>
      <attachid>40964</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-10-09 15:02:06 -0700</bug_when>
    <thetext>Comment on attachment 40964
proposed fix

Fun time.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153773</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-10-09 15:02:14 -0700</bug_when>
    <thetext>Fun times*, even</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153788</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-09 15:30:51 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/49406&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153821</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-09 17:47:29 -0700</bug_when>
    <thetext>Follow-up &lt;http://trac.webkit.org/changeset/49410&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40964</attachid>
            <date>2009-10-09 13:35:55 -0700</date>
            <delta_ts>2009-10-09 15:02:05 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>Authentication.txt</filename>
            <type>text/plain</type>
            <size>28891</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTQwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTggQEAKKzIwMDktMTAtMDkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMjYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82NDQ3MTE1PiBSRUdSRVNTSU9OOiBMb2dnaW5nIG91dCBmcm9tIFNBUCBk
b2Vzbid0IHdvcmsKKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9s
b2dvdXQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1s
b2dpbi1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlLWxvZ2luLmh0bWwKKworICAgICAgICBGaXggc2V2ZXJhbCBpc3N1ZXMgd2l0aCBleGlzdGlu
ZyBjcmVkZW50aWFsIGhhbmRsaW5nIGNvZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhUb0RlZmF1bHRQ
cm90ZWN0aW9uU3BhY2VNYXApOiBDaGFuZ2VkIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBhIHNpbXBs
ZXIgb25lLgorICAgICAgICAoV2ViQ29yZTo6b3JpZ2luc1dpdGhDcmVkZW50aWFscyk6IFRoZSBy
ZWFzb24gZm9yIHR3by1zdGFnZSBsb29rdXAgYWJvdmUgd2FzIHRoYXQgd2UgZGlkbid0CisgICAg
ICAgIHdhbnQgdG8gaXRlcmF0ZSBwYXRocyBmb3Igb3JpZ2lucyB0aGF0IG5hdmVyIGhhZCBjcmVk
ZW50aWFscyBhc3NvY2lhdGVkIHdpdGggdGhlbS4gQ2hhbmdlZAorICAgICAgICB0byB1c2UgYSBz
ZXBhcmF0ZSBIYXNoU2V0IGZvciB0aGlzLgorICAgICAgICAoV2ViQ29yZTo6cGF0aFRvRGVmYXVs
dFByb3RlY3Rpb25TcGFjZU1hcCk6IFRoZSBjb25jZXB0IG9mIGRlZmF1bHQgcGVyLXBhdGggY3Jl
ZGVudGlhbHMgZGlkbid0CisgICAgICAgIG1hdGNoIHRoZSBzcGVjIHZlcnkgd2VsbC4gVUFzIGFy
ZSBzdXBwb3NlZCB0byBkZWR1Y2UgcHJvdGVjdGlvbiBzcGFjZSBmcm9tIGFuIFVSTCwgYW5kIHRo
ZW4KKyAgICAgICAgdXNlIHdoaWNoZXZlciBjcmVkZW50aWFscyBhcmUga25vd24gZm9yIHRoaXMg
cHJvdGVjdGlvbiBzcGFjZS4gU28sIE9yaWdpblRvRGVmYXVsdEJhc2ljQ3JlZGVudGlhbE1hcAor
ICAgICAgICBpcyBub3cgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC4KKyAgICAgICAg
KFdlYkNvcmU6OnByb3RlY3Rpb25TcGFjZU1hcEtleUZyb21VUkwpOiBGYWN0b3JlZCBvdXQgYSBo
ZWxwZXIgdGhhdCBleHRyYWN0cyBhIGRpcmVjdG9yeQorICAgICAgICBVUkwgZnJvbSBhIGdpdmVu
IFVSTC4gVGhlc2UgZGlyZWN0b3J5IFVSTHMgYXJlIHdoYXQgd2UgdXNlIGFzIGtleXMgaW4gUGF0
aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC4KKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRp
YWxTdG9yYWdlOjpzZXQpOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAoV2Vi
Q29yZTo6ZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JVUkwpOiBGYWN0b3JlZCBvdXQgY29k
ZSBpdGVyYXRpbmcgcGF0aCBsZW5ndGggdG8gZmluZAorICAgICAgICBhIHByZWZpeCBpbiBPcmln
aW5Ub0RlZmF1bHRCYXNpY0NyZWRlbnRpYWxNYXAuCisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50
aWFsU3RvcmFnZTo6c2V0KTogQW5vdGhlciB2ZXJzaW9uIG9mIHNldCgpIGNhbiB1cGRhdGUgY3Jl
ZGVudGlhbHMgZm9yIGEKKyAgICAgICAgVVJMIGRlZmF1bHQgcHJvdGVjdGlvbiBzcGFjZS4gSXQg
ZG9lcyBub3RoaW5nIGlmIHRoZSBnaXZlbiBVUkwgZG9lc24ndCBjb3JyZXNwb25kIHRvIGEga25v
d24KKyAgICAgICAgcHJvdGVjdGlvbiBzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OkNyZWRlbnRp
YWxTdG9yYWdlOjpnZXQpOiBSZW5hbWVkIGZyb20gZ2V0RGVmYXVsdEF1dGhlbnRpY2F0aW9uQ3Jl
ZGVudGlhbC4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2Uu
aDogTWFkZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBtZXRob2RzIHRoYXQgdXNlIGEga25vd24K
KyAgICAgICAgcHJvdGVjdGlvbiBzcGFjZSBhbmQgdGhvc2UgdGhhdCBkZWR1Y2Ugb25lIGZyb20g
VVJMIG1vcmUgY2xlYXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6
IFVwZGF0ZSBjcmVkZW50aWFscyBiZWZvcmUgc3RhcnRpbmcgdGhlIHJlcXVlc3QgZm9yIHJlYWwu
CisgICAgICAgIFRoaXMgbWFrZXMgdGhlIGZvbGxvd2luZyBwYXR0ZXJuIHdvcms6CisgICAgICAg
ICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgiR0VUIiwgImxvZ291dC5odG1sIiwgImxv
Z291dCIsICJsb2dvdXQiKTsgLy8gd3JvbmcgY3JlZGVudGlhbHMKKyAgICAgICAgICByZXEuc2Vu
ZCgiIik7CisgICAgICAgICAgcmVxLmFib3J0KCk7CisgICAgICAgIEFib3J0KCkgaXMgdXNlZCBo
ZXJlIHRvIGF2b2lkIGhhdmluZyBVQSBwcmVzZW50IGFuIGF1dGggZGlhbG9nIGFmdGVyIGdldHRp
bmcgYSA0MDEgcmVzcG9uc2UuCisgICAgICAgIE5vdGUgdGhhdCBvbmUgY2Fubm90IGxvZyBpbiB1
c2luZyB0aGUgc2FtZSBtZXRob2QsIGJlY2F1c2UgdGhlcmUgaXNuJ3QgYSBrbm93biBwcm90ZWN0
aW9uCisgICAgICAgIHNwYWNlIGZvciB0aGUgVVJMIHlldCBpbiB0aGF0IGNhc2UsIHNvIHRoZSBh
ZGRlZCBjb2RlIGhhcyBubyBlZmZlY3QuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogVXNlIGEgY29ycmVjdCBwZXJz
aXN0ZW5jZSBmb3IKKyAgICAgICAgY2FsbGluZyByZWNlaXZlZENyZWRlbnRpYWwoKS4gVGhpcyBm
aXhlcyBsb2dnaW5nIGluIHVzaW5nIGFuIGFzeW5jIFhIUiAod2l0aHV0IGFib3J0KCksIG9mCisg
ICAgICAgIGNvdXJzZSksIGFuZCBtYXRjaGVzIHN5bmMgY2FzZS4KKyAgICAgICAgKCtbV2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyIGxvYWRSZXF1ZXN0OmFsbG93U3RvcmVkQ3JlZGVudGlhbHM6cmV0
dXJuaW5nUmVzcG9uc2U6ZXJyb3I6XSk6CisgICAgICAgIFJlbmFtZWQgZ2V0RGVmYXVsdEF1dGhl
bnRpY2F0aW9uQ3JlZGVudGlhbCgpIHRvIGdldCgpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNM
b2FkZXI6OmxvYWQpOgorICAgICAgICBTYW1lIGNoYW5nZXMgYXMgaW4gTWFjIGNvZGUuCisKIDIw
MDktMTAtMDkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAkocmV2aXNpb24gNDkzMTApCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MywxMyArNDMsMTkgQEAgc3RhdGljIFByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlh
bE1hcCYgcAogICAgIHJldHVybiBtYXA7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCBDcmVkZW50aWFsPiA+IE9yaWdpblRvRGVmYXVsdEJhc2ljQ3JlZGVudGlh
bE1hcDsKLXN0YXRpYyBPcmlnaW5Ub0RlZmF1bHRCYXNpY0NyZWRlbnRpYWxNYXAmIG9yaWdpblRv
RGVmYXVsdEJhc2ljQ3JlZGVudGlhbE1hcCgpCitzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG9yaWdp
bnNXaXRoQ3JlZGVudGlhbHMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoT3JpZ2luVG9E
ZWZhdWx0QmFzaWNDcmVkZW50aWFsTWFwLCBtYXAsICgpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8U3RyaW5nPiwgc2V0LCAoKSk7CisgICAgcmV0dXJuIHNldDsKK30KKwordHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvdGVjdGlvblNwYWNlPiBQYXRoVG9EZWZhdWx0UHJvdGVj
dGlvblNwYWNlTWFwOworc3RhdGljIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIHBh
dGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJu
IG1hcDsKIH0KLSAgICAKKwogc3RhdGljIFN0cmluZyBvcmlnaW5TdHJpbmdGcm9tVVJMKGNvbnN0
IEtVUkwmIHVybCkKIHsKICAgICBpZiAodXJsLnBvcnQoKSkKQEAgLTU4LDMyICs2NCwzNyBAQCBz
dGF0aWMgU3RyaW5nIG9yaWdpblN0cmluZ0Zyb21VUkwoY29uc3QgCiAgICAgcmV0dXJuIHVybC5w
cm90b2NvbCgpICsgIjovLyIgKyB1cmwuaG9zdCgpICsgIi8iOwogfQogCitzdGF0aWMgU3RyaW5n
IHByb3RlY3Rpb25TcGFjZU1hcEtleUZyb21VUkwoY29uc3QgS1VSTCYgdXJsKQoreworICAgIEFT
U0VSVCh1cmwuaXNWYWxpZCgpKTsKKworICAgIC8vIFJlbW92ZSB0aGUgbGFzdCBwYXRoIGNvbXBv
bmVudCB0aGF0IGlzIG5vdCBhIGRpcmVjdG9yeSB0byBkZXRlcm1pbmUgdGhlIHN1YnRyZWUgZm9y
IHdoaWNoIGNyZWRlbnRpYWxzIHdpbGwgYXBwbHkuCisgICAgLy8gV2Uga2VlcCBhIGxlYWRpbmcg
c2xhc2gsIGJ1dCByZW1vdmUgYSB0cmFpbGluZyBvbmUuCisgICAgU3RyaW5nIGRpcmVjdG9yeVVS
TCA9IHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoMCwgdXJsLnBhdGhFbmQoKSk7CisgICAgdW5zaWdu
ZWQgZGlyZWN0b3J5VVJMUGF0aFN0YXJ0ID0gdXJsLnBhdGhTdGFydCgpOworICAgIEFTU0VSVChk
aXJlY3RvcnlVUkxbZGlyZWN0b3J5VVJMUGF0aFN0YXJ0XSA9PSAnLycpOworICAgIGlmIChkaXJl
Y3RvcnlVUkwubGVuZ3RoKCkgPiBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAxKSB7CisgICAgICAg
IGludCBpbmRleCA9IGRpcmVjdG9yeVVSTC5yZXZlcnNlRmluZCgnLycpOworICAgICAgICBBU1NF
UlQoaW5kZXggPiAwKTsKKyAgICAgICAgZGlyZWN0b3J5VVJMID0gZGlyZWN0b3J5VVJMLnN1YnN0
cmluZygwLCAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSAhPSBkaXJlY3RvcnlVUkxQYXRo
U3RhcnQpID8gaW5kZXggOiBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAxKTsKKyAgICB9CisgICAg
QVNTRVJUKGRpcmVjdG9yeVVSTC5sZW5ndGgoKSA9PSBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgKyAx
IHx8IGRpcmVjdG9yeVVSTFtkaXJlY3RvcnlVUkwubGVuZ3RoKCkgLSAxXSAhPSAnLycpOworCisg
ICAgcmV0dXJuIGRpcmVjdG9yeVVSTDsKK30KKwogdm9pZCBDcmVkZW50aWFsU3RvcmFnZTo6c2V0
KGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJv
dGVjdGlvblNwYWNlLCBjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgQVNTRVJUKHVybC5wcm90b2Nv
bEluSFRUUEZhbWlseSgpKTsKICAgICBBU1NFUlQodXJsLmlzVmFsaWQoKSk7CiAKICAgICBwcm90
ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAoKS5zZXQocHJvdGVjdGlvblNwYWNlLCBjcmVkZW50
aWFsKTsKLSAgICAKKyAgICBvcmlnaW5zV2l0aENyZWRlbnRpYWxzKCkuYWRkKG9yaWdpblN0cmlu
Z0Zyb21VUkwodXJsKSk7CisKICAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBzY2hlbWUgPSBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKTsKLSAgICBp
ZiAodXJsLnByb3RvY29sSW5IVFRQRmFtaWx5KCkgJiYgKHNjaGVtZSA9PSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyB8fCBzY2hlbWUgPT0gUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0KSkgewotICAgICAgICBTdHJpbmcgb3JpZ2lu
ID0gb3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpOwotICAgICAgICAKLSAgICAgICAgSGFzaE1hcDxT
dHJpbmcsIENyZWRlbnRpYWw+IHBhdGhUb0NyZWRlbnRpYWxNYXA7Ci0gICAgICAgIHBhaXI8SGFz
aE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBDcmVkZW50aWFsPiA+OjppdGVyYXRvciwgYm9v
bD4gcmVzdWx0ID0gb3JpZ2luVG9EZWZhdWx0QmFzaWNDcmVkZW50aWFsTWFwKCkuYWRkKG9yaWdp
biwgcGF0aFRvQ3JlZGVudGlhbE1hcCk7Ci0gICAgICAgIAotICAgICAgICAvLyBSZW1vdmUgdGhl
IGxhc3QgcGF0aCBjb21wb25lbnQgdGhhdCBpcyBub3QgYSBkaXJlY3RvcnkgdG8gZGV0ZXJtaW5l
IHRoZSBzdWJwYXRoIGZvciB3aGljaCB0aGlzIGNyZWRlbnRpYWwgYXBwbGllcy4KLSAgICAgICAg
Ly8gV2Uga2VlcCBhIGxlYWRpbmcgc2xhc2gsIGJ1dCByZW1vdmUgYSB0cmFpbGluZyBvbmUuCi0g
ICAgICAgIFN0cmluZyBwYXRoID0gdXJsLnBhdGgoKTsKLSAgICAgICAgQVNTRVJUKHBhdGgubGVu
Z3RoKCkgPiAwKTsKLSAgICAgICAgQVNTRVJUKHBhdGhbMF0gPT0gJy8nKTsKLSAgICAgICAgaWYg
KHBhdGgubGVuZ3RoKCkgPiAxKSB7Ci0gICAgICAgICAgICBpbnQgaW5kZXggPSBwYXRoLnJldmVy
c2VGaW5kKCcvJyk7Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgaW5kZXgg
PyBpbmRleCA6IDEpOwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVChwYXRoLmxlbmd0aCgpID09
IDEgfHwgcGF0aFtwYXRoLmxlbmd0aCgpIC0gMV0gIT0gJy8nKTsKLSAgICAgICAgCi0gICAgICAg
IHJlc3VsdC5maXJzdC0+c2Vjb25kLnNldChwYXRoLCBjcmVkZW50aWFsKTsKKyAgICBpZiAoc2No
ZW1lID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIHx8IHNj
aGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpIHsKKyAg
ICAgICAgLy8gVGhlIG1hcCBjYW4gY29udGFpbiBib3RoIGEgcGF0aCBhbmQgaXRzIHN1YnBhdGgg
LSB3aGlsZSByZWR1bmRhbnQsIHRoaXMgbWFrZXMgbG9va3VwcyBmYXN0ZXIuCisgICAgICAgIHBh
dGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAoKS5zZXQocHJvdGVjdGlvblNwYWNlTWFwS2V5
RnJvbVVSTCh1cmwpLCBwcm90ZWN0aW9uU3BhY2UpOwogICAgIH0KIH0KIApAQCAtOTIsMzMgKzEw
Myw1MyBAQCBDcmVkZW50aWFsIENyZWRlbnRpYWxTdG9yYWdlOjpnZXQoY29uc3QgCiAgICAgcmV0
dXJuIHByb3RlY3Rpb25TcGFjZVRvQ3JlZGVudGlhbE1hcCgpLmdldChwcm90ZWN0aW9uU3BhY2Up
OwogfQogCi1DcmVkZW50aWFsIENyZWRlbnRpYWxTdG9yYWdlOjpnZXREZWZhdWx0QXV0aGVudGlj
YXRpb25DcmVkZW50aWFsKGNvbnN0IEtVUkwmIHVybCkKK3N0YXRpYyBQYXRoVG9EZWZhdWx0UHJv
dGVjdGlvblNwYWNlTWFwOjppdGVyYXRvciBmaW5kRGVmYXVsdFByb3RlY3Rpb25TcGFjZUZvclVS
TChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgQVNTRVJUKHVybC5wcm90b2NvbEluSFRUUEZhbWls
eSgpKTsKLSAgICBTdHJpbmcgb3JpZ2luID0gb3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpOwotICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBDcmVkZW50aWFsPiYgcGF0aFRvQ3JlZGVudGlhbE1hcChv
cmlnaW5Ub0RlZmF1bHRCYXNpY0NyZWRlbnRpYWxNYXAoKS5nZXQob3JpZ2luKSk7Ci0gICAgaWYg
KHBhdGhUb0NyZWRlbnRpYWxNYXAuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gQ3JlZGVudGlh
bCgpOwotICAgIAotICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHN0b3JlZCBjcmVk
ZW50aWFsIGZvciB0aGUgc3VicGF0aCBhbmNlc3RyeSBvZiB0aGlzIHVybC4KLSAgICBTdHJpbmcg
cGF0aCA9IHVybC5wYXRoKCk7Ci0gICAgQ3JlZGVudGlhbCBjcmVkZW50aWFsID0gcGF0aFRvQ3Jl
ZGVudGlhbE1hcC5nZXQocGF0aCk7Ci0gICAgd2hpbGUgKGNyZWRlbnRpYWwuaXNFbXB0eSgpICYm
ICFwYXRoLmlzTnVsbCgpKSB7Ci0gICAgICAgIGludCBpbmRleCA9IHBhdGgucmV2ZXJzZUZpbmQo
Jy8nKTsKLSAgICAgICAgaWYgKGluZGV4ID09IDApIHsKLSAgICAgICAgICAgIGNyZWRlbnRpYWwg
PSBwYXRoVG9DcmVkZW50aWFsTWFwLmdldCgiLyIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gLTEpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY2FzZSBz
aG91bGQgbmV2ZXIgaGFwcGVuLCBhcyBhbGwgSFRUUCBVUkwgcGF0aHMgc2hvdWxkIHN0YXJ0IHdp
dGggYSBsZWFkaW5nIC8KLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgY3JlZGVudGlhbCA9IHBhdGhUb0NyZWRlbnRpYWxNYXAuZ2V0KHBhdGgpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5z
dWJzdHJpbmcoMCwgaW5kZXgpOwotICAgICAgICAgICAgY3JlZGVudGlhbCA9IHBhdGhUb0NyZWRl
bnRpYWxNYXAuZ2V0KHBhdGgpOwotICAgICAgICB9CisgICAgQVNTRVJUKHVybC5pc1ZhbGlkKCkp
OworCisgICAgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCYgbWFwID0gcGF0aFRvRGVm
YXVsdFByb3RlY3Rpb25TcGFjZU1hcCgpOworCisgICAgLy8gRG9uJ3Qgc3BlbmQgdGltZSBpdGVy
YXRpbmcgdGhlIHBhdGggZm9yIG9yaWdpbnMgdGhhdCBkb24ndCBoYXZlIGFueSBjcmVkZW50aWFs
cy4KKyAgICBpZiAoIW9yaWdpbnNXaXRoQ3JlZGVudGlhbHMoKS5jb250YWlucyhvcmlnaW5TdHJp
bmdGcm9tVVJMKHVybCkpKQorICAgICAgICByZXR1cm4gbWFwLmVuZCgpOworCisgICAgU3RyaW5n
IGRpcmVjdG9yeVVSTCA9IHByb3RlY3Rpb25TcGFjZU1hcEtleUZyb21VUkwodXJsKTsKKyAgICB1
bnNpZ25lZCBkaXJlY3RvcnlVUkxQYXRoU3RhcnQgPSB1cmwucGF0aFN0YXJ0KCk7CisgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcDo6aXRl
cmF0b3IgaXRlciA9IG1hcC5maW5kKGRpcmVjdG9yeVVSTCk7CisgICAgICAgIGlmIChpdGVyICE9
IG1hcC5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBpdGVyOworCisgICAgICAgIGlmIChkaXJl
Y3RvcnlVUkwubGVuZ3RoKCkgPT0gZGlyZWN0b3J5VVJMUGF0aFN0YXJ0ICsgMSkgIC8vIHBhdGgg
aXMgIi8iIGFscmVhZHksIGNhbm5vdCBzaG9ydGVuIGl0IGFueSBtb3JlCisgICAgICAgICAgICBy
ZXR1cm4gbWFwLmVuZCgpOworCisgICAgICAgIGludCBpbmRleCA9IGRpcmVjdG9yeVVSTC5yZXZl
cnNlRmluZCgnLycsIC0yKTsKKyAgICAgICAgQVNTRVJUKGluZGV4ID4gMCk7CisgICAgICAgIGRp
cmVjdG9yeVVSTCA9IGRpcmVjdG9yeVVSTC5zdWJzdHJpbmcoMCwgKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihpbmRleCkgPT0gZGlyZWN0b3J5VVJMUGF0aFN0YXJ0KSA/IGluZGV4ICsgMSA6IGluZGV4
KTsKKyAgICAgICAgQVNTRVJUKGRpcmVjdG9yeVVSTC5sZW5ndGgoKSA+IGRpcmVjdG9yeVVSTFBh
dGhTdGFydCk7CisgICAgICAgIEFTU0VSVChkaXJlY3RvcnlVUkwubGVuZ3RoKCkgPT0gZGlyZWN0
b3J5VVJMUGF0aFN0YXJ0ICsgMSB8fCBkaXJlY3RvcnlVUkxbZGlyZWN0b3J5VVJMLmxlbmd0aCgp
IC0gMV0gIT0gJy8nKTsKICAgICB9Ci0gICAgcmV0dXJuIGNyZWRlbnRpYWw7Cit9CisKK2Jvb2wg
Q3JlZGVudGlhbFN0b3JhZ2U6OnNldChjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsLCBjb25z
dCBLVVJMJiB1cmwpCit7CisgICAgQVNTRVJUKHVybC5wcm90b2NvbEluSFRUUEZhbWlseSgpKTsK
KyAgICBBU1NFUlQodXJsLmlzVmFsaWQoKSk7CisgICAgUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25T
cGFjZU1hcDo6aXRlcmF0b3IgaXRlciA9IGZpbmREZWZhdWx0UHJvdGVjdGlvblNwYWNlRm9yVVJM
KHVybCk7CisgICAgaWYgKGl0ZXIgPT0gcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCgp
LmVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG9yaWdpbnNXaXRoQ3Jl
ZGVudGlhbHMoKS5jb250YWlucyhvcmlnaW5TdHJpbmdGcm9tVVJMKHVybCkpKTsKKyAgICBwcm90
ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAoKS5zZXQoaXRlci0+c2Vjb25kLCBjcmVkZW50aWFs
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworQ3JlZGVudGlhbCBDcmVkZW50aWFsU3RvcmFnZTo6
Z2V0KGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNl
TWFwOjppdGVyYXRvciBpdGVyID0gZmluZERlZmF1bHRQcm90ZWN0aW9uU3BhY2VGb3JVUkwodXJs
KTsKKyAgICBpZiAoaXRlciA9PSBwYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwKCkuZW5k
KCkpCisgICAgICAgIHJldHVybiBDcmVkZW50aWFsKCk7CisgICAgcmV0dXJuIHByb3RlY3Rpb25T
cGFjZVRvQ3JlZGVudGlhbE1hcCgpLmdldChpdGVyLT5zZWNvbmQpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0
b3JhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlh
bFN0b3JhZ2UuaAkocmV2aXNpb24gNDkzMTApCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q3JlZGVudGlhbFN0b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsMTEgQEAgY2xh
c3MgQ3JlZGVudGlhbFN0b3JhZ2UgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldChjb25z
dCBDcmVkZW50aWFsJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgS1VSTCYpOwogICAg
IHN0YXRpYyBDcmVkZW50aWFsIGdldChjb25zdCBQcm90ZWN0aW9uU3BhY2UmKTsKLSAgICBzdGF0
aWMgQ3JlZGVudGlhbCBnZXREZWZhdWx0QXV0aGVudGljYXRpb25DcmVkZW50aWFsKGNvbnN0IEtV
UkwmKTsKKworICAgIC8vIFRoZXNlIG1ldGhvZHMgd29yayBmb3IgYXV0aGVudGljYXRpb24gc2No
ZW1lcyB0aGF0IHN1cHBvcnQgc2VuZGluZyBjcmVkZW50aWFscyB3aXRob3V0IHdhaXRpbmcgZm9y
IGEgcmVxdWVzdC4gRS5nLiwgZm9yIEhUVFAgQmFzaWMgYXV0aGVudGljYXRpb24gc2NoZW1lCisg
ICAgLy8gYSBjbGllbnQgc2hvdWxkIGFzc3VtZSB0aGF0IGFsbCBwYXRocyBhdCBvciBkZWVwZXIg
dGhhbiB0aGUgZGVwdGggb2YgYSBrbm93biBwcm90ZWN0ZWQgcmVzb3VyY2Ugc2hhcmUgYXJlIHdp
dGhpbiB0aGUgc2FtZSBwcm90ZWN0aW9uIHNwYWNlLgorICAgIHN0YXRpYyBib29sIHNldChjb25z
dCBDcmVkZW50aWFsJiwgY29uc3QgS1VSTCYpOyAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIFVSTCBj
b3JyZXNwb25kcyB0byBhIGtub3duIHByb3RlY3Rpb24gc3BhY2UsIHNvIGNyZWRlbnRpYWxzIGNv
dWxkIGJlIHVwZGF0ZWQuCisgICAgc3RhdGljIENyZWRlbnRpYWwgZ2V0KGNvbnN0IEtVUkwmKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDQ5MzEw
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MDEsOCArNDAxLDE4IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MTc0MDUwPiAt
IEZvciBVUkxzIHRoYXQgbWF0Y2ggdGhlIHBhdGhzIG9mIHRob3NlIHByZXZpb3VzbHkgY2hhbGxl
bmdlZCBmb3IgSFRUUCBCYXNpYyBhdXRoZW50aWNhdGlvbiwgCiAgICAgLy8gdHJ5IGFuZCByZXVz
ZSB0aGUgY3JlZGVudGlhbCBwcmVlbXB0aXZlbHksIGFzIGFsbG93ZWQgYnkgUkZDIDI2MTcuCi0g
ICAgaWYgKCFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
dGhpcykgJiYgZC0+bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpCi0gICAg
ICAgIGQtPm1faW5pdGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0RGVmYXVs
dEF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbChkLT5tX3JlcXVlc3QudXJsKCkpOworICAgIGlmICgh
Y2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpICYm
IGQtPm1fcmVxdWVzdC51cmwoKS5wcm90b2NvbEluSFRUUEZhbWlseSgpKSB7CisgICAgICAgIGlm
IChkLT5tX3VzZXIuaXNFbXB0eSgpICYmIGQtPm1fcGFzcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MTc0MDUwPiAtIEZvciBVUkxzIHRoYXQgbWF0Y2ggdGhl
IHBhdGhzIG9mIHRob3NlIHByZXZpb3VzbHkgY2hhbGxlbmdlZCBmb3IgSFRUUCBCYXNpYyBhdXRo
ZW50aWNhdGlvbiwgCisgICAgICAgICAgICAvLyB0cnkgYW5kIHJldXNlIHRoZSBjcmVkZW50aWFs
IHByZWVtcHRpdmVseSwgYXMgYWxsb3dlZCBieSBSRkMgMjYxNy4KKyAgICAgICAgICAgIGQtPm1f
aW5pdGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0KGQtPm1fcmVxdWVzdC51
cmwoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhbHJl
YWR5IGEgcHJvdGVjdGlvbiBzcGFjZSBrbm93biBmb3IgdGhlIFVSTCwgdXBkYXRlIHN0b3JlZCBj
cmVkZW50aWFscyBiZWZvcmUgc2VuZGluZyBhIHJlcXVlc3QuCisgICAgICAgICAgICAvLyBUaGlz
IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGltcGxlbWVudCBsb2dvdXQgYnkgc2VuZGluZyBhbiBYTUxI
dHRwUmVxdWVzdCB3aXRoIGtub3duIGluY29ycmVjdCBjcmVkZW50aWFscywgYW5kIGFib3J0aW5n
IGl0IGltbWVkaWF0ZWx5CisgICAgICAgICAgICAvLyAoc28gdGhhdCBhbiBhdXRoZW50aWNhdGlv
biBkaWFsb2cgZG9lc24ndCBwb3AgdXApLgorICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6
OnNldChDcmVkZW50aWFsKGQtPm1fdXNlciwgZC0+bV9wYXNzLCBDcmVkZW50aWFsUGVyc2lzdGVu
Y2VOb25lKSwgZC0+bV9yZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgfQorICAgIH0KICAgICAgICAg
CiAgICAgaWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkgewogICAgICAgICBT
dHJpbmcgYXV0aEhlYWRlciA9ICJCYXNpYyAiICsgZW5jb2RlQmFzaWNBdXRob3JpemF0aW9uKGQt
Pm1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpLCBkLT5tX2luaXRpYWxDcmVkZW50aWFsLnBhc3N3
b3JkKCkpOwpAQCAtNzY5LDcgKzc3OSw3IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYkNvcmVT
eW5jaHJvbm91c0wKICAgICAgICAgLy8gdHJ5IGFuZCByZXVzZSB0aGUgY3JlZGVudGlhbCBwcmVl
bXB0aXZlbHksIGFzIGFsbG93ZWQgYnkgUkZDIDI2MTcuCiAgICAgICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0V2l0aEluaXRpYWxDcmVkZW50aWFsKHJlcXVlc3QpOwogICAgICAgICBpZiAobG9h
ZGVyLm1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyAmJiB1cmwucHJvdG9jb2xJbkhUVFBGYW1pbHko
KSkKLSAgICAgICAgICAgIGxvYWRlci5tX2luaXRpYWxDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0
b3JhZ2U6OmdldERlZmF1bHRBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWwodXJsKTsKKyAgICAgICAg
ICAgIGxvYWRlci5tX2luaXRpYWxDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmdldCh1
cmwpOwogCiAgICAgICAgIGlmICghbG9hZGVyLm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBTdHJpbmcgYXV0aEhlYWRlciA9ICJCYXNpYyAiICsgZW5jb2RlQmFz
aWNBdXRob3JpemF0aW9uKGxvYWRlci5tX2luaXRpYWxDcmVkZW50aWFsLnVzZXIoKSwgbG9hZGVy
Lm1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDQ5MzEw
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTgzLDEyICsxODMsMjEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgICAgICBkLT5tX3JlcXVlc3Quc2V0VVJMKHVybFdpdGhD
cmVkZW50aWFscyk7CiAgICAgfQogICAgIAotICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MTc0MDUw
PiAtIEZvciBVUkxzIHRoYXQgbWF0Y2ggdGhlIHBhdGhzIG9mIHRob3NlIHByZXZpb3VzbHkgY2hh
bGxlbmdlZCBmb3IgSFRUUCBCYXNpYyBhdXRoZW50aWNhdGlvbiwgCi0gICAgLy8gdHJ5IGFuZCBy
ZXVzZSB0aGUgY3JlZGVudGlhbCBwcmVlbXB0aXZlbHksIGFzIGFsbG93ZWQgYnkgUkZDIDI2MTcu
Ci0gICAgaWYgKCFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UodGhpcykgJiYgZC0+bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpCi0g
ICAgICAgIGQtPm1faW5pdGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0RGVm
YXVsdEF1dGhlbnRpY2F0aW9uQ3JlZGVudGlhbChkLT5tX3JlcXVlc3QudXJsKCkpOworICAgIGlm
ICgoIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlz
KSkgJiYgZC0+bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAg
ICAgaWYgKGQtPm1fdXNlci5pc0VtcHR5KCkgJiYgZC0+bV9wYXNzLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzcxNzQwNTA+IC0gRm9yIFVSTHMgdGhhdCBtYXRj
aCB0aGUgcGF0aHMgb2YgdGhvc2UgcHJldmlvdXNseSBjaGFsbGVuZ2VkIGZvciBIVFRQIEJhc2lj
IGF1dGhlbnRpY2F0aW9uLCAKKyAgICAgICAgICAgIC8vIHRyeSBhbmQgcmV1c2UgdGhlIGNyZWRl
bnRpYWwgcHJlZW1wdGl2ZWx5LCBhcyBhbGxvd2VkIGJ5IFJGQyAyNjE3LgorICAgICAgICAgICAg
ZC0+bV9pbml0aWFsQ3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpnZXQoZC0+bV9yZXF1
ZXN0LnVybCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIElmIHRoZXJlIGlz
IGFscmVhZHkgYSBwcm90ZWN0aW9uIHNwYWNlIGtub3duIGZvciB0aGUgVVJMLCB1cGRhdGUgc3Rv
cmVkIGNyZWRlbnRpYWxzIGJlZm9yZSBzZW5kaW5nIGEgcmVxdWVzdC4KKyAgICAgICAgICAgIC8v
IFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IGxvZ291dCBieSBzZW5kaW5nIGFu
IFhNTEh0dHBSZXF1ZXN0IHdpdGgga25vd24gaW5jb3JyZWN0IGNyZWRlbnRpYWxzLCBhbmQgYWJv
cnRpbmcgaXQgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgIC8vIChzbyB0aGF0IGFuIGF1dGhlbnRp
Y2F0aW9uIGRpYWxvZyBkb2Vzbid0IHBvcCB1cCkuCisgICAgICAgICAgICBDcmVkZW50aWFsU3Rv
cmFnZTo6c2V0KENyZWRlbnRpYWwoZC0+bV91c2VyLCBkLT5tX3Bhc3MsIENyZWRlbnRpYWxQZXJz
aXN0ZW5jZU5vbmUpLCBkLT5tX3JlcXVlc3QudXJsKCkpOworICAgICAgICB9CisgICAgfQogICAg
ICAgICAKICAgICBpZiAoIWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBTdXBwb3J0IERpZ2VzdCBhdXRoZW50aWNhdGlvbiwgYW5kIFByb3h5LUF1
dGhvcml6YXRpb24uCiAgICAgICAgIFN0cmluZyBhdXRoSGVhZGVyID0gIkJhc2ljICIgKyBlbmNv
ZGVCYXNpY0F1dGhvcml6YXRpb24oZC0+bV9pbml0aWFsQ3JlZGVudGlhbC51c2VyKCksIGQtPm1f
aW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKSk7CiAgICAgICAgIGQtPm1fcmVxdWVzdC5hZGRI
VFRQSGVhZGVyRmllbGQoIkF1dGhvcml6YXRpb24iLCBhdXRoSGVhZGVyKTsKICAgICB9CkBAIC00
NzEsNyArNDgwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpYwog
ICAgIGlmICghZC0+bV91c2VyLmlzTnVsbCgpICYmICFkLT5tX3Bhc3MuaXNOdWxsKCkpIHsKICAg
ICAgICAgTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsID0gW1tOU1VSTENyZWRlbnRpYWwgYWxs
b2NdIGluaXRXaXRoVXNlcjpkLT5tX3VzZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDpkLT5tX3Bhc3MK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwZXJzaXN0ZW5jZTpOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmVdOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBlcnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbl07CiAg
ICAgICAgIGQtPm1fY3VycmVudE1hY0NoYWxsZW5nZSA9IGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKCk7CiAgICAgICAgIGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSA9IGNo
YWxsZW5nZTsKICAgICAgICAgcmVjZWl2ZWRDcmVkZW50aWFsKGNoYWxsZW5nZSwgY29yZShjcmVk
ZW50aWFsKSk7CkBAIC0xMDU1LDcgKzEwNjQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNl
aXZlZENhbmNlbGxhdGlvCiAgICAgICAgIC8vIHRyeSBhbmQgcmV1c2UgdGhlIGNyZWRlbnRpYWwg
cHJlZW1wdGl2ZWx5LCBhcyBhbGxvd2VkIGJ5IFJGQyAyNjE3LgogICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdFdpdGhJbml0aWFsQ3JlZGVudGlhbHMgPSByZXF1ZXN0OwogICAgICAgICBp
ZiAoYWxsb3dTdG9yZWRDcmVkZW50aWFscyAmJiB1cmwucHJvdG9jb2xJbkhUVFBGYW1pbHkoKSkK
LSAgICAgICAgICAgIGRlbGVnYXRlLT5tX2luaXRpYWxDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0
b3JhZ2U6OmdldERlZmF1bHRBdXRoZW50aWNhdGlvbkNyZWRlbnRpYWwodXJsKTsKKyAgICAgICAg
ICAgIGRlbGVnYXRlLT5tX2luaXRpYWxDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6Omdl
dCh1cmwpOwogICAgICAgICAgICAgCiAgICAgICAgIGlmICghZGVsZWdhdGUtPm1faW5pdGlhbENy
ZWRlbnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgYXV0aEhlYWRlciA9ICJC
YXNpYyAiICsgZW5jb2RlQmFzaWNBdXRob3JpemF0aW9uKGRlbGVnYXRlLT5tX2luaXRpYWxDcmVk
ZW50aWFsLnVzZXIoKSwgZGVsZWdhdGUtPm1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKSk7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xvZ291dC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9sb2dvdXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDcgQEAKK3JkYXI6Ly9wcm9ibGVtLzY0NDcxMTUgVGVzdCB0aGF0IGEgbWV0aG9k
IGZvciBsb2dnaW5nIG91dCBvZiBhIHNpdGUgdGhhdCBpcyB1c2VkIGJ5IFNBUCB3b3Jrcy4KKwor
SWYgYW4gYXV0aGVudGljYXRpb24gZGlhbG9nIGFwcGVhcnMsIHBsZWFzZSBjYW5jZWwgaXQuCisK
K0xvZ2luOiBQQVNTCitBc3luYyByZXF1ZXN0IHNlbnQgYmVmb3JlIGxvZ291dDogUEFTUworTG9n
b3V0OiBQQVNTCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2xvZ291dC1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xvZ291
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9sb2dvdXQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorPGJvZHk+Cis8
cD48YSBocmVmPSJyZGFyOi8vcHJvYmxlbS82NDQ3MTE1Ij5yZGFyOi8vcHJvYmxlbS82NDQ3MTE1
PC9hPiBUZXN0IHRoYXQgYSBtZXRob2QgZm9yIGxvZ2dpbmcgb3V0IG9mIGEgc2l0ZSB0aGF0IGlz
IHVzZWQgYnkgU0FQIHdvcmtzLjwvcD4KKzxwPklmIGFuIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyBh
cHBlYXJzLCBwbGVhc2UgY2FuY2VsIGl0LjwvcD4KKzxzcGFuPkxvZ2luOiA8L3NwYW4+PHNwYW4g
aWQ9ImxvZ2luIj5GQUlMIC0gVGVzdCBub3QgcnVuPC9zcGFuPjxicj4KKzxzcGFuPkFzeW5jIHJl
cXVlc3Qgc2VudCBiZWZvcmUgbG9nb3V0OiA8L3NwYW4+PHNwYW4gaWQ9ImFzeW5jIj5GQUlMIC0g
VGVzdCBub3QgcnVuPC9zcGFuPjxicj4KKzxzcGFuPkxvZ291dDogPC9zcGFuPjxzcGFuIGlkPSJs
b2dvdXQiPkZBSUwgLSBUZXN0IG5vdCBydW48L3NwYW4+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZ2luKCkKK3sKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAg
IC8vICI/bG9naW4iIGlzIG9ubHkgaGVyZSBmb3IgZWFzZSBvZiBkZWJ1Z2dpbmc7IGl0IGRvZXNu
J3QgYWZmZWN0IGJlaGF2aW9yLgorICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL2xvZ291
dC9yZXNvdXJjZS5waHA/bG9naW4iLCBmYWxzZSwgInVzZXIiLCAicGFzcyIpOworICAgIHhoci5z
ZW5kKCIiKTsKK30KKworZnVuY3Rpb24gbG9nb3V0KCkKK3sKKyAgICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0OworICAgIC8vIGxvZ291dC5odG1sIGRvZXNuJ3QgZXZlbiBleGlzdCAtIHdl
IGRvbid0IG5lZWQgdG8gc2VuZCB0aGlzIHJlcXVlc3QgdG8gc2VydmVyLgorICAgIHhoci5vcGVu
KCJHRVQiLCAicmVzb3VyY2VzL2xvZ291dC9zdWJkaXJlY3RvcnkvbG9nb3V0Lmh0bWwiLCB0cnVl
LCAibG9nb3V0IiwgImxvZ291dCIpOworICAgIHhoci5zZW5kKCIiKTsKKyAgICB4aHIuYWJvcnQo
KTsKK30KKworZnVuY3Rpb24gaXNBdXRoZW50aWNhdGVkKCkKK3sKKyAgICB2YXIgeGhyID0gbmV3
IFhNTEh0dHBSZXF1ZXN0OworICAgIC8vICI/aXNBdXRoZW50aWNhdGVkIiBpcyBvbmx5IGhlcmUg
Zm9yIGVhc2Ugb2YgZGVidWdnaW5nOyBpdCBkb2Vzbid0IGFmZmVjdCBiZWhhdmlvci4KKyAgICB4
aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9sb2dvdXQvcmVzb3VyY2UucGhwP2lzQXV0aGVudGlj
YXRlZCIsIGZhbHNlKTsKKyAgICB4aHIuc2VuZCgiIik7CisgICAgcmV0dXJuIHhoci5zdGF0dXMg
PT0gMjAwOworfQorCitsb2dpbigpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luIiku
aW5uZXJIVE1MID0gaXNBdXRoZW50aWNhdGVkKCkgPyAiUEFTUyIgOiAiRkFJTCI7CisKKy8vIFRl
c3QgdGhhdCBhIHJlcXVlc3Qgc2VudCBiZWZvcmUgbG9nb3V0IGFjdHVhbGx5IGhhcyBjcmVkZW50
aWFscy4KK3ZhciByID0gbmV3IFhNTEh0dHBSZXF1ZXN0Oworci5vcGVuKCJHRVQiLCAicmVzb3Vy
Y2VzL2xvZ291dC9yZXNvdXJjZS5waHA/aXNBdXRoZW50aWNhdGVkIiwgdHJ1ZSk7CityLm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhc3luYyIpLmlu
bmVySFRNTCA9IHIuc3RhdHVzID09IDIwMCA/ICJQQVNTIiA6ICJGQUlMIjsKKworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKK30KK3Iuc2VuZCgiIik7CisKK2xvZ291dCgpOworZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZ291dCIpLmlubmVySFRNTCA9IGlzQXV0aGVudGljYXRlZCgpID8gIkZB
SUwiIDogIlBBU1MiOworPC9zY3JpcHQ+Cis8L2JvZHk+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xvZ291dC5odG1sCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4tYXN5bmMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9n
aW4tYXN5bmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi1hc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IGRlZmF1bHQgY3JlZGVudGlhbHMgYXJlbid0
IHVzZWQgd2hlbiBvbmVzIGFyZSBwcm92aWRlZCB0byBYSFIgZXhwbGljaXRseS4KKworTG9naW46
IFBBU1MKK0RlZmF1bHQ6IFBBU1MKK1JlLWxvZ2luOiBQQVNTCitOZXcgZGVmYXVsdDogUEFTUwoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9yZS1sb2dpbi1hc3luYy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10
eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi1hc3luYy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmUtbG9naW4tYXN5bmMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4tYXN5bmMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2MyBAQAorPGJvZHk+Cis8cD5UZXN0IHRoYXQgZGVmYXVsdCBjcmVkZW50aWFscyBhcmVu
J3QgdXNlZCB3aGVuIG9uZXMgYXJlIHByb3ZpZGVkIHRvIFhIUiBleHBsaWNpdGx5LjwvcD4KKzxz
cGFuPkxvZ2luOiA8L3NwYW4+PHNwYW4gaWQ9ImxvZ2luIj5GQUlMIC0gVGVzdCBub3QgcnVuPC9z
cGFuPjxicj4KKzxzcGFuPkRlZmF1bHQ6IDwvc3Bhbj48c3BhbiBpZD0iZGVmYXVsdCI+RkFJTCAt
IFRlc3Qgbm90IHJ1bjwvc3Bhbj48YnI+Cis8c3Bhbj5SZS1sb2dpbjogPC9zcGFuPjxzcGFuIGlk
PSJyZWxvZ2luIj5GQUlMIC0gVGVzdCBub3QgcnVuPC9zcGFuPjxicj4KKzxzcGFuPk5ldyBkZWZh
dWx0OiA8L3NwYW4+PHNwYW4gaWQ9Im5ld2RlZmF1bHQiPkZBSUwgLSBUZXN0IG5vdCBydW48L3Nw
YW4+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisK
K2Z1bmN0aW9uIGYxKCkKK3sKKyAgICAvLyAiP2xvZ2luMSIgaXMgb25seSBoZXJlIGZvciBlYXNl
IG9mIGRlYnVnZ2luZzsgaXQgZG9lc24ndCBhZmZlY3QgYmVoYXZpb3IuCisgICAgeGhyLm9wZW4o
IkdFVCIsICJyZXNvdXJjZXMvcmUtbG9naW4vcmVzb3VyY2UucGhwP2xvZ2luMSIsIHRydWUsICJ1
c2VyMSIsICJwYXNzIik7CisgICAgeGhyLnNlbmQoIiIpOworICAgIHhoci5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luIikuaW5uZXJI
VE1MID0geGhyLnJlc3BvbnNlVGV4dCA9PSAiVXNlcjogdXNlcjEsIHBhc3N3b3JkOiBwYXNzLiIg
PyAiUEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGYyKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBm
MigpCit7CisgICAgLy8gIj9kZWZhdWx0IiBpcyBvbmx5IGhlcmUgZm9yIGVhc2Ugb2YgZGVidWdn
aW5nOyBpdCBkb2Vzbid0IGFmZmVjdCBiZWhhdmlvci4KKyAgICB4aHIub3BlbigiR0VUIiwgInJl
c291cmNlcy9yZS1sb2dpbi9yZXNvdXJjZS5waHA/ZGVmYXVsdCIsIHRydWUpOworICAgIHhoci5z
ZW5kKCIiKTsKKyAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkZWZhdWx0IikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dCA9
PSAiVXNlcjogdXNlcjEsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7CisgICAg
ICAgIGYzKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBmMygpCit7CisgICAgLy8gIj9sb2dpbjIi
IGlzIG9ubHkgaGVyZSBmb3IgZWFzZSBvZiBkZWJ1Z2dpbmc7IGl0IGRvZXNuJ3QgYWZmZWN0IGJl
aGF2aW9yLgorICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3JlLWxvZ2luL3Jlc291cmNl
LnBocD9sb2dpbjIiLCB0cnVlLCAidXNlcjIiLCAicGFzcyIpOworICAgIHhoci5zZW5kKCIiKTsK
KyAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWxvZ2luIikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dCA9PSAiVXNlcjog
dXNlcjIsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGY0KCk7
CisgICAgfQorfQorCitmdW5jdGlvbiBmNCgpCit7CisgICAgLy8gIj9uZXdkZWZhdWx0IiBpcyBv
bmx5IGhlcmUgZm9yIGVhc2Ugb2YgZGVidWdnaW5nOyBpdCBkb2Vzbid0IGFmZmVjdCBiZWhhdmlv
ci4KKyAgICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZS1sb2dpbi9yZXNvdXJjZS5waHA/
bmV3ZGVmYXVsdCIsIHRydWUpOworICAgIHhoci5zZW5kKCIiKTsKKyAgICB4aHIub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdkZWZhdWx0
IikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dCA9PSAiVXNlcjogdXNlcjIsIHBhc3N3b3Jk
OiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgfQorfQorCitmMSgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4t
YXN5bmMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwK
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlLWxvZ2luLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3JlLWxvZ2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDYgQEAKK1Rlc3QgdGhhdCBkZWZhdWx0IGNyZWRlbnRpYWxzIGFyZW4n
dCB1c2VkIHdoZW4gb25lcyBhcmUgcHJvdmlkZWQgdG8gWEhSIGV4cGxpY2l0bHkuCisKK0xvZ2lu
OiBQQVNTCitEZWZhdWx0OiBQQVNTCitSZS1sb2dpbjogUEFTUworTmV3IGRlZmF1bHQ6IFBBU1MK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmUtbG9naW4tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQog
ICArIHRleHQvcGxhaW4KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlLWxvZ2luLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlLWxvZ2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzxib2R5PgorPHA+
VGVzdCB0aGF0IGRlZmF1bHQgY3JlZGVudGlhbHMgYXJlbid0IHVzZWQgd2hlbiBvbmVzIGFyZSBw
cm92aWRlZCB0byBYSFIgZXhwbGljaXRseS48L3A+Cis8c3Bhbj5Mb2dpbjogPC9zcGFuPjxzcGFu
IGlkPSJsb2dpbiI+RkFJTCAtIFRlc3Qgbm90IHJ1bjwvc3Bhbj48YnI+Cis8c3Bhbj5EZWZhdWx0
OiA8L3NwYW4+PHNwYW4gaWQ9ImRlZmF1bHQiPkZBSUwgLSBUZXN0IG5vdCBydW48L3NwYW4+PGJy
PgorPHNwYW4+UmUtbG9naW46IDwvc3Bhbj48c3BhbiBpZD0icmVsb2dpbiI+RkFJTCAtIFRlc3Qg
bm90IHJ1bjwvc3Bhbj48YnI+Cis8c3Bhbj5OZXcgZGVmYXVsdDogPC9zcGFuPjxzcGFuIGlkPSJu
ZXdkZWZhdWx0Ij5GQUlMIC0gVGVzdCBub3QgcnVuPC9zcGFuPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCit2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworLy8gIj9sb2dpbjEiIGlz
IG9ubHkgaGVyZSBmb3IgZWFzZSBvZiBkZWJ1Z2dpbmc7IGl0IGRvZXNuJ3QgYWZmZWN0IGJlaGF2
aW9yLgoreGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmUtbG9naW4vcmVzb3VyY2UucGhwP2xv
Z2luMSIsIGZhbHNlLCAidXNlcjEiLCAicGFzcyIpOworeGhyLnNlbmQoIiIpOworZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxvZ2luIikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dCA9PSAi
VXNlcjogdXNlcjEsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7CisKKy8vICI/
ZGVmYXVsdCIgaXMgb25seSBoZXJlIGZvciBlYXNlIG9mIGRlYnVnZ2luZzsgaXQgZG9lc24ndCBh
ZmZlY3QgYmVoYXZpb3IuCit4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZS1sb2dpbi9yZXNv
dXJjZS5waHA/ZGVmYXVsdCIsIGZhbHNlKTsKK3hoci5zZW5kKCIiKTsKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZWZhdWx0IikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dCA9PSAiVXNl
cjogdXNlcjEsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7CisKKy8vICI/bG9n
aW4yIiBpcyBvbmx5IGhlcmUgZm9yIGVhc2Ugb2YgZGVidWdnaW5nOyBpdCBkb2Vzbid0IGFmZmVj
dCBiZWhhdmlvci4KK3hoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3JlLWxvZ2luL3Jlc291cmNl
LnBocD9sb2dpbjIiLCBmYWxzZSwgInVzZXIyIiwgInBhc3MiKTsKK3hoci5zZW5kKCIiKTsKK2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWxvZ2luIikuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNl
VGV4dCA9PSAiVXNlcjogdXNlcjIsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJTCI7
CisKKy8vICI/bmV3ZGVmYXVsdCIgaXMgb25seSBoZXJlIGZvciBlYXNlIG9mIGRlYnVnZ2luZzsg
aXQgZG9lc24ndCBhZmZlY3QgYmVoYXZpb3IuCit4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9y
ZS1sb2dpbi9yZXNvdXJjZS5waHA/ZGVmYXVsdCIsIGZhbHNlKTsKK3hoci5zZW5kKCIiKTsKK2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdkZWZhdWx0IikuaW5uZXJIVE1MID0geGhyLnJlc3Bv
bnNlVGV4dCA9PSAiVXNlcjogdXNlcjIsIHBhc3N3b3JkOiBwYXNzLiIgPyAiUEFTUyIgOiAiRkFJ
TCI7CisKKzwvc2NyaXB0PgorPC9ib2R5PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi5odG1sCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFt
ZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2xvZ291dC9yZXNvdXJjZS5waHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
bG9nb3V0L3Jlc291cmNlLnBocAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2xvZ291dC9yZXNvdXJjZS5waHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTIgQEAKKzw/cGhwCisgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8t
Y2FjaGUsIG5vLXN0b3JlIik7CisKKyAgaWYgKCFpc3NldCgkX1NFUlZFUlsnUEhQX0FVVEhfVVNF
UiddKSB8fCAhaXNzZXQoJF9TRVJWRVJbJ1BIUF9BVVRIX1BXJ10pIHx8ICRfU0VSVkVSWydQSFBf
QVVUSF9VU0VSJ10gIT0gJ3VzZXInIHx8ICRfU0VSVkVSWydQSFBfQVVUSF9QVyddICE9ICdwYXNz
JykgeworICAgaGVhZGVyKCdXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT0iUGxlYXNlIGNh
bmNlbCB0aGlzIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyInKTsKKyAgIGhlYWRlcignSFRUUC8xLjAg
NDAxIFVuYXV0aG9yaXplZCcpOworICAgZWNobyAnQXV0aGVudGljYXRpb24gY2FuY2VsZWQnOwor
ICAgZXhpdDsKKyAgfSBlbHNlIHsKKyAgIGVjaG8gIlVzZXI6IHskX1NFUlZFUlsnUEhQX0FVVEhf
VVNFUiddfSwgcGFzc3dvcmQ6IHskX1NFUlZFUlsnUEhQX0FVVEhfUFcnXX0uIjsKKyAgfQorPz4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3Jl
LWxvZ2luL3Jlc291cmNlLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9yZS1sb2dpbi9yZXNvdXJjZS5waHAJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9y
ZS1sb2dpbi9yZXNvdXJjZS5waHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzw/cGhw
CisgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlIik7CisKKyAgaWYg
KCFpc3NldCgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKSB8fCAhaXNzZXQoJF9TRVJWRVJbJ1BI
UF9BVVRIX1BXJ10pICkgeworICAgaGVhZGVyKCdXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFs
bT0iV2ViS2l0IHRlc3QgcmUtbG9naW4iJyk7CisgICBoZWFkZXIoJ0hUVFAvMS4wIDQwMSBVbmF1
dGhvcml6ZWQnKTsKKyAgIGVjaG8gJ0F1dGhlbnRpY2F0aW9uIGNhbmNlbGVkJzsKKyAgIGV4aXQ7
CisgIH0gZWxzZSB7CisgICBlY2hvICJVc2VyOiB7JF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXX0s
IHBhc3N3b3JkOiB7JF9TRVJWRVJbJ1BIUF9BVVRIX1BXJ119LiI7CisgIH0KKz8+Cg==
</data>
<flag name="review"
          id="22265"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>