<?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>47894</bug_id>
          
          <creation_ts>2010-10-19 02:47:27 -0700</creation_ts>
          <short_desc>Web Inspector: expose request/response cookies in HAR</short_desc>
          <delta_ts>2010-10-20 09:45:01 -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>Web Inspector (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>296080</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-19 02:47:27 -0700</bug_when>
    <thetext>Since we now support raw request/response headers that include Cookie/Set-Cookie on some platforms, we can expose cookies associated with a resource in HAR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296103</commentid>
    <comment_count>1</comment_count>
      <attachid>71151</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-19 04:19:18 -0700</bug_when>
    <thetext>Created attachment 71151
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296104</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-19 04:23:24 -0700</bug_when>
    <thetext>Attachment 71151 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/inspector/front-end/CookieParser.js:1:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 182 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296115</commentid>
    <comment_count>3</comment_count>
      <attachid>71151</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-19 04:55:46 -0700</bug_when>
    <thetext>Comment on attachment 71151
patch

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

&gt; LayoutTests/http/tests/inspector/resource-har-conversion.html:18
&gt; +        var requestHeaders = JSON.parse(JSON.stringify(resource.requestHeaders));

You should instead make a separate test for cookies only, so that there is no need to preserve rest of the headers.

&gt; LayoutTests/inspector/cookie-parser-expected.txt:136
&gt; +    httponly : undefined

Is this correct?

&gt; WebCore/inspector/front-end/CookieParser.js:33
&gt; +WebInspector.CookieParser = function()

Two things I don&apos;t like there:
1) Cookie parsing is tough and is handled by the WebKit already
2) You make all of our remote debugging clients come up with the code like this.

Can we introduce an api for cookie parsing instead so that WebKit was doing it for us? That way we are going to be way more consistent. Ideally, we should get parsed cookies with raw resource data.

&gt; WebCore/inspector/front-end/Resource.js:539
&gt; +        return (new WebInspector.CookieParser()).parseCookie(this.requestHeaderValue(&quot;Cookie&quot;));

You could encapsulate this into WebInspector.CookieParser.parseCookie() and .parseSetCookie() respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296233</commentid>
    <comment_count>4</comment_count>
      <attachid>71178</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-19 09:34:45 -0700</bug_when>
    <thetext>Created attachment 71178
patch

- Changed logic to be closer to real life (Mozilla, IE, Chrome) rather than RFCs
- Dropped support for Set-Cookie2, quoted values and Port field
- Changed semantics of session property
- Removed any special handling for &quot;,&quot; (expect multiple cookies to come in multiple headers)
- Now use &quot;\n&quot; when pasting values of headers with same name
- Simplified tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296236</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-19 09:42:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 71151 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71151&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/inspector/resource-har-conversion.html:18
&gt; &gt; +        var requestHeaders = JSON.parse(JSON.stringify(resource.requestHeaders));
&gt; 
&gt; You should instead make a separate test for cookies only, so that there is no need to preserve rest of the headers.

Done (we have multiple resources within this test, so I just sacrificed headers for one of the resources)

&gt; &gt; LayoutTests/inspector/cookie-parser-expected.txt:136
&gt; &gt; +    httponly : undefined
&gt; 
&gt; Is this correct?

This is intended. This is in raw attribute/value pairs, and the attribute in question appears bare (i.e. without any value) in the source, hence I think it&apos;s appropriate for it to appear with the value of undefined in cookie.attributes. I realize this could be a bit confusing, but clients are expected to use a higher-level cookie.httpOnly property getter instead, which properly check for (&quot;httponly&quot; in this._attributes).

&gt; &gt; WebCore/inspector/front-end/CookieParser.js:33
&gt; &gt; +WebInspector.CookieParser = function()
&gt; 
&gt; Two things I don&apos;t like there:
&gt; 1) Cookie parsing is tough and is handled by the WebKit already

Not quite so -- it is not exposed to WebKit presently, but rather is performed by the platform. Also, at least some platforms only support parsing Set-Cookie header (Cookie: has a slightly different syntax and parsing it is generally of no use on the client side).

&gt; 2) You make all of our remote debugging clients come up with the code like this.
&gt; 
&gt; Can we introduce an api for cookie parsing instead so that WebKit was doing it for us? That way we are going to be way more consistent. Ideally, we should get parsed cookies with raw resource data.
&gt; 

As discussed offline -- this would be nice to save us from any possible inconsistencies WRT platform logic, but comes as a price of doing plumbing for cookie parsing call for all platforms and does not solve parsing for reqeust cookie. So propose to leave this as is for the time being.

&gt; &gt; WebCore/inspector/front-end/Resource.js:539
&gt; &gt; +        return (new WebInspector.CookieParser()).parseCookie(this.requestHeaderValue(&quot;Cookie&quot;));
&gt; 
&gt; You could encapsulate this into WebInspector.CookieParser.parseCookie() and .parseSetCookie() respectively.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296848</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-10-20 09:45:01 -0700</bug_when>
    <thetext>Manually committed r70137: http://trac.webkit.org/changeset/70137</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71151</attachid>
            <date>2010-10-19 04:19:18 -0700</date>
            <delta_ts>2010-10-19 09:34:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>har-cookies.diff</filename>
            <type>text/plain</type>
            <size>34017</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMzA0N2Q1Li45OTBhMTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAt
MTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2Ug
cmVxdWVzdC9yZXNwb25zZSBjb29raWVzIGluIEhBUgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4OTQKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAoZHVtcE9iamVjdCk6IEhhbmRsZSBu
dWxsIG9iamVjdHMgYXMgYSBzcGVjaWFsIGNhc2UgKGRpc3BsYXkgbnVsbCBpbnN0ZWFkIG9mIGVt
cHR5IG9iamVjdCkKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dDIuanM6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5h
ZGRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y29va2llLXBhcnNlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9j
b29raWUtcGFyc2VyLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEwLTE4ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIG1vcmUgU2tpcHBlZCBsaXN0IGVudHJpZXMg
YmVjYXVzZSBXZWJQIHJlcXVpcmVzIGFuIGV4dGVybmFsIGRlY29kZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKaW5kZXggZjMwMjhm
Yi4uZjE4M2YwMiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKQEAgLTUzLDYgKzUzLDggQEAgZnVuY3Rpb24gZHVtcE9iamVjdChv
YmplY3QsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4LCBmaXJzdExpbmVQcmVmaXgpCiAg
ICAgICAgIHZhciBwcm9wVmFsdWUgPSBvYmplY3RbcHJvcF07CiAgICAgICAgIGlmIChub25kZXRl
cm1pbmlzdGljUHJvcHMgJiYgcHJvcCBpbiBub25kZXRlcm1pbmlzdGljUHJvcHMpCiAgICAgICAg
ICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyAiPCIgKyB0eXBlb2YgcHJvcFZhbHVlICsgIj4i
KTsKKyAgICAgICAgZWxzZSBpZiAocHJvcFZhbHVlID09PSBudWxsKQorICAgICAgICAgICAgb3V0
cHV0KHByZWZpeFdpdGhOYW1lICsgIm51bGwiKTsKICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBy
b3BWYWx1ZSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICBkdW1wT2JqZWN0KHByb3BWYWx1ZSwg
bm9uZGV0ZXJtaW5pc3RpY1Byb3BzLCBwcmVmaXggKyAiICAgICIsIHByZWZpeFdpdGhOYW1lKTsK
ICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3BWYWx1ZSA9PT0gInN0cmluZyIpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5k
ZXggZGY2NWQ4YS4uNTQ1NDY0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcwpAQCAtNjEsNiArNjEsOCBAQCBJbnNwZWN0b3JU
ZXN0LmFkZE9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdCwgbm9uZGV0ZXJtaW5pc3RpY1Byb3BzLCBw
cmVmaXgsIGZpcnN0TAogICAgICAgICB2YXIgcHJvcFZhbHVlID0gb2JqZWN0W3Byb3BdOwogICAg
ICAgICBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3BzICYmIHByb3AgaW4gbm9uZGV0ZXJtaW5pc3Rp
Y1Byb3BzKQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4V2l0aE5h
bWUgKyAiPCIgKyB0eXBlb2YgcHJvcFZhbHVlICsgIj4iKTsKKyAgICAgICAgZWxzZSBpZiAocHJv
cFZhbHVlID09PSBudWxsKSAKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHBy
ZWZpeFdpdGhOYW1lICsgIm51bGwiKTsKICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3BWYWx1
ZSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChwcm9w
VmFsdWUsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4ICsgIiAgICAiLCBwcmVmaXhXaXRo
TmFtZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICJzdHJpbmciKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IDkzZGFmOTAuLjc0
OTU5NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTM3
LDYgKzM3LDM1IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICAgICAgICBoZWFkZXJzIDogPG9iamVj
dD4KICAgICAgICAgICAgIGhlYWRlcnNTaXplIDogLTEKICAgICAgICAgICAgIGJvZHlTaXplIDog
PG51bWJlcj4KKyAgICAgICAgICAgIGNvb2tpZXMgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJhIgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA6ICJiIgorICAgICAgICAgICAgICAgICAgICBwYXRoIDogIi9wYXRoIgorICAgICAgICAgICAg
ICAgICAgICBkb21haW4gOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIGV4cGly
ZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0dHBPbmx5IDogZmFsc2UKKyAgICAgICAg
ICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgMSA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJhMSIKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUgOiAiYjEiCisgICAgICAgICAgICAgICAgICAgIHBhdGggOiB1bmRlZmlu
ZWQKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCisgICAgICAgICAgICAg
ICAgICAgIGV4cGlyZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0dHBPbmx5IDogZmFs
c2UKKyAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgMiA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJjMSIK
KyAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAiZDEiCisgICAgICAgICAgICAgICAgICAgIHBh
dGggOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCisg
ICAgICAgICAgICAgICAgICAgIGV4cGlyZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0
dHBPbmx5IDogZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Ug
OiB7CiAgICAgICAgICAgICBzdGF0dXMgOiAyMDAKQEAgLTQ5LDYgKzc4LDQ0IEBAIFBhZ2UgcmVs
b2FkZWQuCiAgICAgICAgICAgICByZWRpcmVjdFVSTCA6ICIiCiAgICAgICAgICAgICBoZWFkZXJz
U2l6ZSA6IC0xCiAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CisgICAgICAgICAgICBj
b29raWVzIDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWUgOiAieDIiCisgICAgICAgICAgICAgICAgICAgIHZhbHVlIDogInkzIgorICAgICAgICAgICAg
ICAgICAgICBwYXRoIDogdW5kZWZpbmVkCisgICAgICAgICAgICAgICAgICAgIGRvbWFpbiA6IHVu
ZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICBleHBpcmVzIDogbnVsbAorICAgICAgICAgICAg
ICAgICAgICBodHRwT25seSA6IGZhbHNlCisgICAgICAgICAgICAgICAgICAgIHNlY3VyZSA6IGZh
bHNlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIDEgOiB7CisgICAgICAgICAg
ICAgICAgICAgIG5hbWUgOiAieCIKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAieSIKKyAg
ICAgICAgICAgICAgICAgICAgcGF0aCA6ICIvcGF0aCIKKyAgICAgICAgICAgICAgICAgICAgZG9t
YWluIDogImV4YW1wbGUuY29tIgorICAgICAgICAgICAgICAgICAgICBleHBpcmVzIDogbnVsbAor
ICAgICAgICAgICAgICAgICAgICBodHRwT25seSA6IHRydWUKKyAgICAgICAgICAgICAgICAgICAg
c2VjdXJlIDogdHJ1ZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAyIDogewor
ICAgICAgICAgICAgICAgICAgICBuYW1lIDogIngxIgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA6ICJ5MSIKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5lZAorICAgICAgICAg
ICAgICAgICAgICBkb21haW4gOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgZXhwaXJl
cyA6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBmYWxzZQorICAgICAgICAg
ICAgICAgICAgICBzZWN1cmUgOiBmYWxzZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAzIDogeworICAgICAgICAgICAgICAgICAgICBuYW1lIDogInoyIgorICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA6ICJ5MiIKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5l
ZAorICAgICAgICAgICAgICAgICAgICBkb21haW4gOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAg
ICAgICAgZXhwaXJlcyA6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBmYWxz
ZQorICAgICAgICAgICAgICAgICAgICBzZWN1cmUgOiBmYWxzZQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1oYXItY29udmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbAppbmRleCAxNDI3M2FkLi5iMTliZTliIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29u
dmVyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLWhhci1jb252ZXJzaW9uLmh0bWwKQEAgLTEyLDggKzEyLDI5IEBAIHZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShXZWJJbnNw
ZWN0b3IucmVzb3VyY2VzW2lkXSkuYnVpbGQoKTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBhZGRD
b29raWVIZWFkZXJzVG9SZXNvdXJjZShyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIC8vIENsb25l
IGhlYWRlcnMgdG8gYnlwYXNzIGNoZWNrIGluIFJlc291cmNlJ3MgcHJvcGVydHkgc2V0dGVyLgor
ICAgICAgICB2YXIgcmVxdWVzdEhlYWRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJl
c291cmNlLnJlcXVlc3RIZWFkZXJzKSk7CisgICAgICAgIHZhciByZXNwb25zZUhlYWRlcnMgPSBK
U09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlc291cmNlLnJlc3BvbnNlSGVhZGVycykpOworICAg
ICAgICByZXF1ZXN0SGVhZGVyc1siQ29va2llIl0gPSAiYT1iOyAkUGF0aD0vcGF0aDsgJERvbWFp
bj1leGFtcGxlLmNvbTsgJFBvcnQ9XCI4MCw4MVwiLCBhMT1iMTsgYzE9ZDEiOworICAgICAgICBy
ZXNwb25zZUhlYWRlcnNbIlNldC1Db29raWUiXSA9ICJ4PXk7IFBhdGg9L3BhdGg7IERvbWFpbj1l
eGFtcGxlLmNvbTsgRGlzY2FyZDsgaHR0cE9ubHk7IFNlY3VyZTsgVmVyc2lvbj0xLCB4MT15MSwg
ejI9eTIiOworICAgICAgICByZXNwb25zZUhlYWRlcnNbIlNldC1Db29raWUyIl0gPSAieDI9eTMi
OworICAgICAgICByZXNvdXJjZS5yZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzOworICAg
ICAgICByZXNvdXJjZS5yZXNwb25zZUhlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7CisgICAgfQor
CisgICAgZnVuY3Rpb24gZmluZFJlc291cmNlQnlVUkwodXJsKQorICAgIHsKKyAgICAgICAgZm9y
ICh2YXIgcmVzb3VyY2UgaW4gV2ViSW5zcGVjdG9yLnJlc291cmNlcykgeworICAgICAgICAgICAg
aWYgKHVybC50ZXN0KFdlYkluc3BlY3Rvci5yZXNvdXJjZXNbcmVzb3VyY2VdLnVybCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5yZXNvdXJjZXNbcmVzb3VyY2VdOworICAg
ICAgICB9CisgICAgfQorCiAgICAgSW5zcGVjdG9yVGVzdC5lbmFibGVSZXNvdXJjZVRyYWNraW5n
KGZ1bmN0aW9uKCkgewogICAgICAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXREZWZhdWx0KCku
ZXZhbHVhdGUoImRvWEhSKCkiLCAiY29uc29sZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
YWRkQ29va2llSGVhZGVyc1RvUmVzb3VyY2UoZmluZFJlc291cmNlQnlVUkwoL3Jlc291cmNlLWhh
ci1jb252ZXJzaW9uXC5odG1sJC8pKTsKICAgICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBPYmpl
Y3Qua2V5cyhXZWJJbnNwZWN0b3IucmVzb3VyY2VzKS5tYXAoZ2V0SEFSKS5zb3J0KEluc3BlY3Rv
clRlc3QucmVzb3VyY2VVUkxDb21wYXJlcik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZE9iamVjdChyZXNvdXJjZXMsIEluc3BlY3RvclRlc3QuSEFSTm9uZGV0ZXJtaW5pc3RpY1Byb3Bl
cnRpZXNXaXRoU2l6ZSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmRpc2FibGVSZXNvdXJj
ZVRyYWNraW5nKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBh
cnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNiYzczOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUtcGFyc2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1NiBAQAorVGVzdHMgaW5zcGVjdG9yIGNvb2tpZSBwYXJz
ZXIKKworc291cmNlOiBjb29raWU9dmFsdWUKK25hbWU6IGNvb2tpZSwgdmFsdWU6IHZhbHVlLCBo
dHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IGZhbHNlLCBwYXRoOiB1bmRl
ZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogMTIKK3sKK30KK3NvdXJjZTogJHZlcnNpb249MTsgYT1iLGMgID0gICBkLCBlPWYKK25h
bWU6IGEsIHZhbHVlOiBiLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246
IGZhbHNlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmlu
ZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNAoreworfQorbmFtZTogYywgdmFsdWU6IGQsIGh0dHBP
bmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVuZGVmaW5l
ZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXpl
OiAxMAoreworfQorbmFtZTogZSwgdmFsdWU6IGYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBm
YWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQs
IHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAzCit7Cit9Citzb3VyY2U6ICR2
ZXJzaW9uPTE7IGE9YjtjICA9ICAgZDsgZSA9ZgorbmFtZTogYSwgdmFsdWU6IGIsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVuZGVmaW5lZCwg
ZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA0
Cit7Cit9CituYW1lOiBjLCB2YWx1ZTogZCwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNl
LCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9y
dDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDEwCit7Cit9CituYW1lOiBlLCB2YWx1
ZTogZiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0
aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVz
OiBuL2EsIHNpemU6IDQKK3sKK30KK3NvdXJjZTogY29va2UxID0gdmFsdWUxOyBhbm90aGVyIGNv
b2tpZSA9IGFub3RoZXIgdmFsdWUKK25hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlMSwgaHR0cE9u
bHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVk
LCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6
IDI1Cit7Cit9CituYW1lOiBjb29raWUsIHZhbHVlOiBhbm90aGVyIHZhbHVlLCBodHRwT25seTog
ZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IGZhbHNlLCBwYXRoOiB1bmRlZmluZWQsIGRv
bWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMjIK
K3sKK30KK3NvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW49LmV4YW1wbGUu
Y29tOyAkUG9ydD04MCAKK25hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFs
c2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IGZhbHNlLCBwYXRoOiAvLCBkb21haW46IC5leGFt
cGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU2Cit7CisgICAg
cGF0aCA6ICIvIgorICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCisgICAgcG9ydCA6ICI4MCIK
K30KK3NvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW49LmV4YW1wbGUuY29t
IDsgJFBvcnQ9ICIgODAiIDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlO
ID0gZm9vLmV4YW1wbGUuY29tOyAkUG9ydCA9IDgwODAgCituYW1lOiBjb29rZTEsIHZhbHVlOiB2
YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0
aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9h
LCBzaXplOiA2MworeworICAgIHBhdGggOiAiLyIKKyAgICBkb21haW4gOiAiLmV4YW1wbGUuY29t
IgorICAgIHBvcnQgOiAiIDgwIgorfQorbmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwgaHR0
cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogL2Zvbywg
ZG9tYWluOiBmb28uZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBz
aXplOiA3MgoreworICAgIHBhdGggOiAiL2ZvbyIKKyAgICBkb21haW4gOiAiZm9vLmV4YW1wbGUu
Y29tIgorICAgIHBvcnQgOiAiODA4MCIKK30KK3NvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRo
PS87ICREb21haW49LmV4YW1wbGUuY29tOyAkUG9ydD0gIDgwLCBDb29raWUyID0gdmFsdWUyOyAk
UGF0aCA9IC9mb287ICRET01BSU4gPSBmb28uZXhhbXBsZS5jb207ICRQb3J0ID0gODA4MCAKK25h
bWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2Us
IHNlc3Npb246IGZhbHNlLCBwYXRoOiAvLCBkb21haW46IC5leGFtcGxlLmNvbSwgcG9ydDogdW5k
ZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU5Cit7CisgICAgcGF0aCA6ICIvIgorICAgIGRv
bWFpbiA6ICIuZXhhbXBsZS5jb20iCisgICAgcG9ydCA6ICI4MCIKK30KK25hbWU6IENvb2tpZTIs
IHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjog
ZmFsc2UsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmlu
ZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNzIKK3sKKyAgICBwYXRoIDogIi9mb28iCisgICAgZG9t
YWluIDogImZvby5leGFtcGxlLmNvbSIKKyAgICBwb3J0IDogIjgwODAiCit9Citzb3VyY2U6ICR2
ZXJzaW9uID0xOyBjb29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbiAgID0uZXhhbXBsZS5j
b207ICAkUG9ydD0gICI4MCw4MSw4MiIsIENvb2tpZTIgPSB2YWx1ZTI7ICRQYXRoID0gL2Zvbzsg
JERPTUFJTiA9IGZvby5leGFtcGxlLmNvbTsgJFBvcnQgPSA4MDgwIAorbmFtZTogY29va2UxLCB2
YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFs
c2UsIHBhdGg6IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGly
ZXM6IG4vYSwgc2l6ZTogNzEKK3sKKyAgICBwYXRoIDogIi8iCisgICAgZG9tYWluIDogIi5leGFt
cGxlLmNvbSIKKyAgICBwb3J0IDogIjgwLDgxLDgyIgorfQorbmFtZTogQ29va2llMiwgdmFsdWU6
IHZhbHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwg
cGF0aDogL2ZvbywgZG9tYWluOiBmb28uZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhw
aXJlczogbi9hLCBzaXplOiA3MgoreworICAgIHBhdGggOiAiL2ZvbyIKKyAgICBkb21haW4gOiAi
Zm9vLmV4YW1wbGUuY29tIgorICAgIHBvcnQgOiAiODA4MCIKK30KK3NvdXJjZTogY29va2llPXZh
bHVlCituYW1lOiBjb29raWUsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5l
ZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDEyCit7Cit9Citzb3VyY2U6
IGE9YiwgYz1kLCBlPWYKK25hbWU6IGEsIHZhbHVlOiBiLCBodHRwT25seTogZmFsc2UsIHNlY3Vy
ZTogZmFsc2UsIHNlc3Npb246IGZhbHNlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZp
bmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNQoreworfQorbmFtZTog
YywgdmFsdWU6IGQsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFs
c2UsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVuZGVmaW5lZCwg
ZXhwaXJlczogbi9hLCBzaXplOiA1Cit7Cit9CituYW1lOiBlLCB2YWx1ZTogZiwgaHR0cE9ubHk6
IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVkLCBk
b21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDMK
K3sKK30KK3NvdXJjZTogY29va2UxID0gdmFsdWU7IFBhdGg9LzsgRG9tYWluPS5leGFtcGxlLmNv
bTsgUG9ydD0gIiA4MCw4MSw4MiIgCituYW1lOiBjb29rZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9u
bHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogLywgZG9tYWlu
OiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA2Mgor
eworICAgIHBhdGggOiAiLyIKKyAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgorICAgIHBvcnQg
OiAiIDgwLDgxLDgyIgorfQorc291cmNlOiBjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49
ICAuZXhhbXBsZS5jb20gOyBQb3J0PTgwLCBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2Zvbzsg
RG9tYWluID0gZm9vLmV4YW1wbGUuY29tOyBQb3J0ID0gODA4MCAKK25hbWU6IGNvb2tlMSwgdmFs
dWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IGZhbHNl
LCBwYXRoOiAvLCBkb21haW46IC5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVz
OiBuL2EsIHNpemU6IDU3Cit7CisgICAgcGF0aCA6ICIvIgorICAgIGRvbWFpbiA6ICIuZXhhbXBs
ZS5jb20iCisgICAgcG9ydCA6ICI4MCIKK30KK25hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IC9m
b28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4v
YSwgc2l6ZTogNjkKK3sKKyAgICBwYXRoIDogIi9mb28iCisgICAgZG9tYWluIDogImZvby5leGFt
cGxlLmNvbSIKKyAgICBwb3J0IDogIjgwODAiCit9Citzb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyBD
b21tZW50ID0gIm9uZSwgdHdvOyB0aHJlZSI7IERvbWFpbiAgID0uZXhhbXBsZS5jb20sIENvb2tp
ZTIgPSB2YWx1ZTI7IFBhdGggPSAvZm9vOyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IFBvcnQg
PSA4MDgwCituYW1lOiBjb29rZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1
cmU6IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IC5leGFt
cGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDY5Cit7CisgICAg
Y29tbWVudCA6ICJvbmUsIHR3bzsgdGhyZWUiCisgICAgZG9tYWluIDogIi5leGFtcGxlLmNvbSIK
K30KK25hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJl
OiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUu
Y29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNjgKK3sKKyAgICBwYXRo
IDogIi9mb28iCisgICAgZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKKyAgICBwb3J0IDogIjgw
ODAiCit9Citzb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyBleHBpcmVzID0gIk1vbiwgT2N0IDE4IDIw
MTAgMTc6MDAgR01UKzAwMDAiOyBEb21haW4gICA9LmV4YW1wbGUuY29tLCBDb29raWUyID0gdmFs
dWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyBIdHRwT25seTsgU2Vj
dXJlOyBEaXNjYXJkOyBQb3J0ID0gODA4MAorbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0
dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVuZGVm
aW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogMTI4
NzQyMTIwMDAwMCwgc2l6ZTogODUKK3sKKyAgICBleHBpcmVzIDogIk1vbiwgT2N0IDE4IDIwMTAg
MTc6MDAgR01UKzAwMDAiCisgICAgZG9tYWluIDogIi5leGFtcGxlLmNvbSIKK30KK25hbWU6IENv
b2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNlc3Np
b246IHRydWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRl
ZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogOTUKK3sKKyAgICBwYXRoIDogIi9mb28iCisgICAg
ZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKKyAgICBodHRwb25seSA6IHVuZGVmaW5lZAorICAg
IHNlY3VyZSA6IHVuZGVmaW5lZAorICAgIGRpc2NhcmQgOiB1bmRlZmluZWQKKyAgICBwb3J0IDog
IjgwODAiCit9Citzb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyBtYXgtYWdlPSAxNDQwOyBEb21haW4g
ICA9LmV4YW1wbGUuY29tLCBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0g
Zm9vLmV4YW1wbGUuY29tOyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOyBQb3J0ID0gODA4MAor
bmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxz
ZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20s
IHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogMTI4NzQyMjY0MDAwMCwgc2l6ZTogNTUKK3sKKyAg
ICBtYXgtYWdlIDogIjE0NDAiCisgICAgZG9tYWluIDogIi5leGFtcGxlLmNvbSIKK30KK25hbWU6
IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNl
c3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogOTUKK3sKKyAgICBwYXRoIDogIi9mb28iCisg
ICAgZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKKyAgICBodHRwb25seSA6IHVuZGVmaW5lZAor
ICAgIHNlY3VyZSA6IHVuZGVmaW5lZAorICAgIGRpc2NhcmQgOiB1bmRlZmluZWQKKyAgICBwb3J0
IDogIjgwODAiCit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUt
cGFyc2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMmM2YTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sCkBAIC0wLDAgKzEs
NzIgQEAKKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdDIuanMiPjwvc2NyaXB0Pg0KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4NCisNCitmdW5jdGlvbiBpbml0aWFsaXplX0Nvb2tpZVRlc3RzKCkNCit7DQor
DQorSW5zcGVjdG9yVGVzdC5kdW1wQ29va2llID0gZnVuY3Rpb24oY29va2llKSANCit7DQorICAg
IHZhciByZXF1ZXN0RGF0ZSA9IG5ldyBEYXRlKCJNb24gT2N0IDE4IDIwMTAgMTc6MDA6MDAgR01U
KzAwMDAiKTsNCisgICAgdmFyIGV4cGlyZXMgPSBjb29raWUuZXhwaXJlcyhyZXF1ZXN0RGF0ZSk7
DQorDQorICAgIHZhciBvdXRwdXQgPSAibmFtZTogIiArIGNvb2tpZS5uYW1lICsgIiwgdmFsdWU6
ICIgKyBjb29raWUudmFsdWUgKyAiLCBodHRwT25seTogIiArIGNvb2tpZS5odHRwT25seSArDQor
ICAgICAgICAiLCBzZWN1cmU6ICIgKyBjb29raWUuc2VjdXJlICsgIiwgc2Vzc2lvbjogIiArIGNv
b2tpZS5zZXNzaW9uICsgIiwgcGF0aDogIiArIGNvb2tpZS5wYXRoICsNCisgICAgICAgICIsIGRv
bWFpbjogIiArIGNvb2tpZS5kb21haW4gKyAiLCBwb3J0OiAiICsgY29va2llLnBvcnQgKw0KKyAg
ICAgICAgIiwgZXhwaXJlczogIiArIChleHBpcmVzID8gZXhwaXJlcy5nZXRUaW1lKCkgOiAibi9h
IikgKw0KKyAgICAgICAgIiwgc2l6ZTogIiArIGNvb2tpZS5zaXplOw0KKw0KKyAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChvdXRwdXQpOw0KKyAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChj
b29raWUuYXR0cmlidXRlcyk7DQorfQ0KKw0KK0luc3BlY3RvclRlc3QuZHVtcENvb2tpZXMgPSBm
dW5jdGlvbihjb29raWVzKSANCit7DQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29va2llcy5s
ZW5ndGg7ICsraSkNCisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvb2tpZShjb29raWVzW2ld
KTsNCit9DQorDQorSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUgPSBmdW5jdGlvbiho
ZWFkZXIpDQorew0KKyAgICB2YXIgcGFyc2VyID0gbmV3IFdlYkluc3BlY3Rvci5Db29raWVQYXJz
ZXIoKTsNCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNvdXJjZTogIiArIGhlYWRlcik7
DQorICAgIEluc3BlY3RvclRlc3QuZHVtcENvb2tpZXMocGFyc2VyLnBhcnNlQ29va2llKGhlYWRl
cikpOw0KK30NCisNCitJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSA9IGZ1bmN0
aW9uKGhlYWRlcikNCit7DQorICAgIHZhciBwYXJzZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvb2tp
ZVBhcnNlcigpOw0KKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic291cmNlOiAiICsgaGVh
ZGVyKTsNCisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29va2llcyhwYXJzZXIucGFyc2VTZXRDb29r
aWUoaGVhZGVyKSk7DQorfQ0KKw0KK30NCisNCit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkNCit7DQor
ICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCJjb29raWU9dmFsdWUiKTsNCisg
ICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoIiR2ZXJzaW9uPTE7IGE9YixjICA9
ICAgZCwgZT1mIik7DQorICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCIkdmVy
c2lvbj0xOyBhPWI7YyAgPSAgIGQ7IGUgPWYiKTsNCisgICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFu
ZER1bXBDb29raWUoImNvb2tlMSA9IHZhbHVlMTsgYW5vdGhlciBjb29raWUgPSBhbm90aGVyIHZh
bHVlIik7DQorICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCJjb29rZTEgPSB2
YWx1ZTsgJFBhdGg9LzsgJERvbWFpbj0uZXhhbXBsZS5jb207ICRQb3J0PTgwICIpOw0KKyAgICBJ
bnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiY29va2UxID0gdmFsdWU7ICRQYXRoPS87
ICREb21haW49LmV4YW1wbGUuY29tIDsgJFBvcnQ9IFwiIDgwXCIgOyBDb29raWUyID0gdmFsdWUy
OyAkUGF0aCA9IC9mb287ICRET01BSU4gPSBmb28uZXhhbXBsZS5jb207ICRQb3J0ID0gODA4MCAi
KTsNCisgICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoImNvb2tlMSA9IHZhbHVl
OyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsgJFBvcnQ9ICA4MCwgQ29va2llMiA9IHZh
bHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyAkUG9ydCA9IDgw
ODAgIik7DQorICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCIkdmVyc2lvbiA9
MTsgY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW4gICA9LmV4YW1wbGUuY29tOyAgJFBv
cnQ9ICBcIjgwLDgxLDgyXCIsIENvb2tpZTIgPSB2YWx1ZTI7ICRQYXRoID0gL2ZvbzsgJERPTUFJ
TiA9IGZvby5leGFtcGxlLmNvbTsgJFBvcnQgPSA4MDgwICIpOw0KKw0KKyAgICBJbnNwZWN0b3JU
ZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2llPXZhbHVlIik7DQorICAgIEluc3BlY3Rv
clRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJhPWIsIGM9ZCwgZT1mIik7DQorICAgIEluc3Bl
Y3RvclRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBE
b21haW49LmV4YW1wbGUuY29tOyBQb3J0PSBcIiA4MCw4MSw4MlwiICIpOw0KKyAgICBJbnNwZWN0
b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0gdmFsdWU7IFBhdGg9LzsgRG9t
YWluPSAgLmV4YW1wbGUuY29tIDsgUG9ydD04MCwgQ29va2llMiA9IHZhbHVlMjsgUGF0aCA9IC9m
b287IERvbWFpbiA9IGZvby5leGFtcGxlLmNvbTsgUG9ydCA9IDgwODAgIik7DQorICAgIEluc3Bl
Y3RvclRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgQ29tbWVudCA9
IFwib25lLCB0d287IHRocmVlXCI7IERvbWFpbiAgID0uZXhhbXBsZS5jb20sIENvb2tpZTIgPSB2
YWx1ZTI7IFBhdGggPSAvZm9vOyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IFBvcnQgPSA4MDgw
Iik7DQorICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJjb29rZTEgPSB2
YWx1ZTsgZXhwaXJlcyA9IFwiTW9uLCBPY3QgMTggMjAxMCAxNzowMCBHTVQrMDAwMFwiOyBEb21h
aW4gICA9LmV4YW1wbGUuY29tLCBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlO
ID0gZm9vLmV4YW1wbGUuY29tOyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOyBQb3J0ID0gODA4
MCIpOw0KKyAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0g
dmFsdWU7IG1heC1hZ2U9IDE0NDA7IERvbWFpbiAgID0uZXhhbXBsZS5jb20sIENvb2tpZTIgPSB2
YWx1ZTI7IFBhdGggPSAvZm9vOyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IEh0dHBPbmx5OyBT
ZWN1cmU7IERpc2NhcmQ7IFBvcnQgPSA4MDgwIik7DQorICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7DQorfQ0KKw0KKzwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+DQorPHA+VGVzdHMgaW5zcGVjdG9yIGNvb2tpZSBwYXJzZXI8L3A+DQorPC9ib2R5
Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDQ0N2ZhMDguLjgzYjA4NzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMTAtMTkg
IEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2UgcmVx
dWVzdC9yZXNwb25zZSBjb29raWVzIGluIEhBUgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4OTQKKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvY29v
a2llLXBhcnNlci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db29raWVQYXJzZXIuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
SEFSRW50cnkuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFSRW50cnkucHJvdG90eXBlLl9i
dWlsZFJlcXVlc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkVudHJ5LnByb3RvdHlwZS5f
YnVpbGRSZXNwb25zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFSRW50cnkucHJvdG90eXBl
Ll9idWlsZENvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkVudHJ5LnByb3RvdHlw
ZS5fYnVpbGRDb29raWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Uu
anM6IFBhcnNlIENvb2tpZS9TZXQtQ29va2llIGhlYWRlcnMgYW5kIGV4cG9zZSBjb29raWVzLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5zZXQgcmVxdWVzdEhlYWRl
cnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5nZXQgcmVxdWVz
dENvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5zZXQg
cmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuZ2V0IHJlc3BvbnNlQ29va2llcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
cHJvdG90eXBlLl9wYXJzZVJlcXVlc3RDb29raWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5wcm90b3R5cGUuX3BhcnNlUmVzcG9uc2VDb29raWVzKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbDoKKwogMjAxMC0xMC0xNyAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDVjNmMzZDIuLjczMmYxMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00MzU1LDYgKzQzNTUsNyBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGV4dE1lbnUuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzJywKKyAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9DU1NDb21wbGV0aW9ucy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9DU1NTdHlsZU1vZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFiYXNlLmpzJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGVjMjBhZmYuLjAyOTIzYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjM0NDYsNiArNjM0NDYsMTQgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llSXRlbXNW
aWV3LmpzIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llUGFyc2VyLmpzIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rv
clxmcm9udC1lbmRcQ1NTU3R5bGVNb2RlbC5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanMgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2ZTlkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzCkBAIC0wLDAgKzEsMTgyIEBACisv
Kg0KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
Lg0KKyAqDQorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0DQorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQ0KKyAqIG1ldDoNCisgKg0K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0DQorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUNCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyDQor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQ0KKyAqIGRpc3RyaWJ1dGlvbi4NCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20NCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0K
KyAqDQorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQNCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsDQorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZDQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0K
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuDQorICovDQorDQorLy8gU2VlIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZj
L3JmYzI5NjUudHh0IGFuZCBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyMTA5IGZvciBy
ZWZlcmVuY2UuDQorDQorV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlciA9IGZ1bmN0aW9uKCkNCit7
DQorfQ0KKw0KK1dlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucHJvdG90eXBlID0gew0KKyAgICBn
ZXQgY29va2llcygpDQorICAgIHsNCisgICAgICAgIHJldHVybiB0aGlzLl9jb29raWVzOw0KKyAg
ICB9LA0KKw0KKyAgICBwYXJzZUNvb2tpZTogZnVuY3Rpb24oY29va2llSGVhZGVyKQ0KKyAgICB7
DQorICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemUoY29va2llSGVhZGVyKSkNCisgICAgICAg
ICAgICByZXR1cm47DQorDQorICAgICAgICBmb3IgKHZhciBrdiA9IHRoaXMuX2V4dHJhY3RLZXlW
YWx1ZSgpOyBrdjsga3YgPSB0aGlzLl9leHRyYWN0S2V5VmFsdWUoKSkgew0KKyAgICAgICAgICAg
IGlmIChrdi5rZXkuY2hhckF0KDApID09PSAiJCIgJiYgdGhpcy5fbGFzdENvb2tpZSkNCisgICAg
ICAgICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5hZGRBdHRyaWJ1dGUoa3Yua2V5LnNsaWNlKDEp
LCBrdi52YWx1ZSk7DQorICAgICAgICAgICAgZWxzZSBpZiAoa3Yua2V5LnRvTG93ZXJDYXNlKCkg
IT09ICIkdmVyc2lvbiIgJiYgdHlwZW9mIGt2LnZhbHVlID09PSAic3RyaW5nIikNCisgICAgICAg
ICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2KTsNCisgICAgICAgICAgICB0aGlzLl9hZHZhbmNl
QW5kQ2hlY2tDb29raWVEZWxpbWl0ZXIoKTsNCisgICAgICAgIH0NCisgICAgICAgIHRoaXMuX2Zs
dXNoQ29va2llKCk7DQorICAgICAgICByZXR1cm4gdGhpcy5fY29va2llczsNCisgICAgfSwNCisN
CisgICAgcGFyc2VTZXRDb29raWU6IGZ1bmN0aW9uKHNldENvb2tpZUhlYWRlcikNCisgICAgew0K
KyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplKHNldENvb2tpZUhlYWRlcikpDQorICAgICAg
ICAgICAgcmV0dXJuOw0KKyAgICAgICAgZm9yICh2YXIga3YgPSB0aGlzLl9leHRyYWN0S2V5VmFs
dWUoKTsga3Y7IGt2ID0gdGhpcy5fZXh0cmFjdEtleVZhbHVlKCkpIHsNCisgICAgICAgICAgICBp
ZiAodGhpcy5fbGFzdENvb2tpZSkNCisgICAgICAgICAgICAgICAgdGhpcy5fbGFzdENvb2tpZS5h
ZGRBdHRyaWJ1dGUoa3Yua2V5LCBrdi52YWx1ZSk7DQorICAgICAgICAgICAgZWxzZSANCisgICAg
ICAgICAgICAgICAgdGhpcy5fYWRkQ29va2llKGt2KTsNCisgICAgICAgICAgICBpZiAodGhpcy5f
YWR2YW5jZUFuZENoZWNrQ29va2llRGVsaW1pdGVyKCkpDQorICAgICAgICAgICAgICAgIHRoaXMu
X2ZsdXNoQ29va2llKCk7DQorICAgICAgICB9DQorICAgICAgICB0aGlzLl9mbHVzaENvb2tpZSgp
Ow0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nvb2tpZXM7DQorICAgIH0sDQorDQorICAgIF9pbml0
aWFsaXplOiBmdW5jdGlvbihoZWFkZXJWYWx1ZSkNCisgICAgew0KKyAgICAgICAgdGhpcy5faW5w
dXQgPSBoZWFkZXJWYWx1ZTsNCisgICAgICAgIGlmICh0eXBlb2YgaGVhZGVyVmFsdWUgIT09ICJz
dHJpbmciKQ0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIHRoaXMuX2Nvb2tp
ZXMgPSBbXTsNCisgICAgICAgIHRoaXMuX2xhc3RDb29raWUgPSBudWxsOw0KKyAgICAgICAgdGhp
cy5fb3JpZ2luYWxJbnB1dExlbmd0aCA9IHRoaXMuX2lucHV0Lmxlbmd0aDsNCisgICAgICAgIHJl
dHVybiB0cnVlOw0KKyAgICB9LA0KKw0KKyAgICBfZmx1c2hDb29raWU6IGZ1bmN0aW9uKCkNCisg
ICAgew0KKyAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUpDQorICAgICAgICAgICAgdGhpcy5f
bGFzdENvb2tpZS5zaXplID0gdGhpcy5fb3JpZ2luYWxJbnB1dExlbmd0aCAtIHRoaXMuX2lucHV0
Lmxlbmd0aCAtIHRoaXMuX2xhc3RDb29raWVQb3NpdGlvbjsNCisgICAgICAgIHRoaXMuX2xhc3RD
b29raWUgPSBudWxsOw0KKyAgICB9LA0KKw0KKyAgICBfZXh0cmFjdEtleVZhbHVlOiBmdW5jdGlv
bigpDQorICAgIHsNCisgICAgICAgIGlmICghdGhpcy5faW5wdXQgfHwgIXRoaXMuX2lucHV0Lmxl
bmd0aCkNCisgICAgICAgICAgICByZXR1cm4gbnVsbDsNCisgICAgICAgIHZhciBrZXlWYWx1ZU1h
dGNoID0gL15ccyooW15ccz07LF0rKVxzKig/Oj1ccyooPzooPzoiKFteIl0qKSIpfChbXjssXSop
KSk/Ly5leGVjKHRoaXMuX2lucHV0KTsNCisgICAgICAgIGlmICgha2V5VmFsdWVNYXRjaCkgew0K
KyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJGYWlsZWQgcGFyc2luZyBjb29raWUgaGVhZGVyIGJl
Zm9yZTogIiArIHRoaXMuX2lucHV0KTsNCisgICAgICAgICAgICByZXR1cm4gbnVsbDsNCisgICAg
ICAgIH0NCisgICAgICAgIC8vIFVnbHkgaGFjayBmb3IgRXhwaXJlcyBhdHRyaWJ1dGUgd2l0aCB1
bnF1b3RlZCBjb21tYSBpbnNpZGUgKHNlZSBSRkMgMjEwOSwgU2VjdGlvbiAxMC4xLjIpLg0KKyAg
ICAgICAgaWYgKGtleVZhbHVlTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSA9PT0gImV4cGlyZXMiICYm
IGtleVZhbHVlTWF0Y2hbMl0gPT09IHVuZGVmaW5lZCkNCisgICAgICAgICAgICBrZXlWYWx1ZU1h
dGNoID0gL15ccyooW15ccz07LF0rKVxzKig/Oj1ccyooLnsyMH1bXjssXSopKT8vLmV4ZWModGhp
cy5faW5wdXQpOw0KKw0KKyAgICAgICAgdmFyIHJlc3VsdCA9IHsNCisgICAgICAgICAgICBrZXk6
IGtleVZhbHVlTWF0Y2hbMV0sDQorICAgICAgICAgICAgdmFsdWU6IGtleVZhbHVlTWF0Y2hbMl0g
fHwgKGtleVZhbHVlTWF0Y2hbM10gJiYga2V5VmFsdWVNYXRjaFszXS50cmltKCkpLA0KKyAgICAg
ICAgICAgIHBvc2l0aW9uOiB0aGlzLl9vcmlnaW5hbElucHV0TGVuZ3RoIC0gdGhpcy5faW5wdXQu
bGVuZ3RoDQorICAgICAgICB9Ow0KKyAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5z
bGljZShrZXlWYWx1ZU1hdGNoWzBdLmxlbmd0aCk7DQorICAgICAgICByZXR1cm4gcmVzdWx0Ow0K
KyAgICB9LA0KKw0KKyAgICBfYWR2YW5jZUFuZENoZWNrQ29va2llRGVsaW1pdGVyOiBmdW5jdGlv
bigpDQorICAgIHsNCisgICAgICAgIHZhciBtYXRjaCA9IC9eXHMqKFssO10pXHMqLy5leGVjKHRo
aXMuX2lucHV0KTsNCisgICAgICAgIGlmICghbWF0Y2gpDQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KKyAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5s
ZW5ndGgpOw0KKyAgICAgICAgcmV0dXJuIG1hdGNoWzFdID09PSAiLCI7DQorICAgIH0sDQorDQor
ICAgIF9hZGRDb29raWU6IGZ1bmN0aW9uKGtleVZhbHVlKQ0KKyAgICB7DQorICAgICAgICBpZiAo
dGhpcy5fbGFzdENvb2tpZSkNCisgICAgICAgICAgICB0aGlzLl9sYXN0Q29va2llLnNpemUgPSBr
ZXlWYWx1ZS5wb3NpdGlvbiAtIHRoaXMuX2xhc3RDb29raWVQb3NpdGlvbjsNCisgICAgICAgIHRo
aXMuX2xhc3RDb29raWUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZShrZXlWYWx1ZS5rZXksIGtl
eVZhbHVlLnZhbHVlKTsNCisgICAgICAgIHRoaXMuX2xhc3RDb29raWVQb3NpdGlvbiA9IGtleVZh
bHVlLnBvc2l0aW9uOw0KKyAgICAgICAgdGhpcy5fY29va2llcy5wdXNoKHRoaXMuX2xhc3RDb29r
aWUpOw0KKyAgICB9DQorfTsNCisNCitXZWJJbnNwZWN0b3IuQ29va2llID0gZnVuY3Rpb24obmFt
ZSwgdmFsdWUpDQorew0KKyAgICB0aGlzLm5hbWUgPSBuYW1lOw0KKyAgICB0aGlzLnZhbHVlID0g
dmFsdWU7DQorICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSB7fTsNCit9DQorDQorV2ViSW5zcGVjdG9y
LkNvb2tpZS5wcm90b3R5cGUgPSB7DQorICAgIGdldCBodHRwT25seSgpDQorICAgIHsNCisgICAg
ICAgIHJldHVybiAiaHR0cG9ubHkiIGluIHRoaXMuX2F0dHJpYnV0ZXM7DQorICAgIH0sDQorDQor
ICAgIGdldCBzZWN1cmUoKQ0KKyAgICB7DQorICAgICAgICByZXR1cm4gInNlY3VyZSIgaW4gdGhp
cy5fYXR0cmlidXRlczsNCisgICAgfSwNCisNCisgICAgZ2V0IHNlc3Npb24oKQ0KKyAgICB7DQor
ICAgICAgICByZXR1cm4gImRpc2NhcmQiIGluIHRoaXMuX2F0dHJpYnV0ZXM7DQorICAgIH0sDQor
DQorICAgIGdldCBwYXRoKCkNCisgICAgew0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0
ZXMucGF0aDsNCisgICAgfSwNCisNCisgICAgZ2V0IGRvbWFpbigpDQorICAgIHsNCisgICAgICAg
IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLmRvbWFpbjsNCisgICAgfSwNCisNCisgICAgZXhwaXJl
czogZnVuY3Rpb24ocmVxdWVzdERhdGUpDQorICAgIHsNCisgICAgICAgIHJldHVybiB0aGlzLl9h
dHRyaWJ1dGVzLmV4cGlyZXMgPyBuZXcgRGF0ZSh0aGlzLl9hdHRyaWJ1dGVzLmV4cGlyZXMpIDoN
CisgICAgICAgICAgICAodGhpcy5fYXR0cmlidXRlc1sibWF4LWFnZSJdID8gbmV3IERhdGUocmVx
dWVzdERhdGUuZ2V0VGltZSgpICsgMTAwMCAqIHRoaXMuX2F0dHJpYnV0ZXNbIm1heC1hZ2UiXSkg
OiBudWxsKTsNCisgICAgfSwNCisNCisgICAgZ2V0IGF0dHJpYnV0ZXMoKQ0KKyAgICB7DQorICAg
ICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlczsNCisgICAgfSwNCisNCisgICAgYWRkQXR0cmli
dXRlOiBmdW5jdGlvbihrZXksIHZhbHVlKQ0KKyAgICB7DQorICAgICAgICB0aGlzLl9hdHRyaWJ1
dGVzW2tleS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IQVJFbnRyeS5qcwppbmRleCAyY2YwNzQwLi5hODc3Y2I2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnkuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzCkBAIC01Niw3ICs1Niw2IEBAIFdlYklu
c3BlY3Rvci5IQVJFbnRyeS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBtZXRob2Q6IHRoaXMu
X3Jlc291cmNlLnJlcXVlc3RNZXRob2QsCiAgICAgICAgICAgICB1cmw6IHRoaXMuX3Jlc291cmNl
LnVybCwKICAgICAgICAgICAgIC8vIGh0dHBWZXJzaW9uOiAiSFRUUC8xLjEiIC0tIE5vdCBhdmFp
bGFibGUuCi0gICAgICAgICAgICAvLyBjb29raWVzOiBbXSAtLSBOb3QgYXZhaWxhYmxlLgogICAg
ICAgICAgICAgaGVhZGVyczogdGhpcy5fYnVpbGRIZWFkZXJzKHRoaXMuX3Jlc291cmNlLnJlcXVl
c3RIZWFkZXJzKSwKICAgICAgICAgICAgIGhlYWRlcnNTaXplOiAtMSwgLy8gTm90IGF2YWlsYWJs
ZS4KICAgICAgICAgICAgIGJvZHlTaXplOiAtMSAvLyBOb3QgYXZhaWxhYmxlLgpAQCAtNjUsMjIg
KzY0LDI2IEBAIFdlYkluc3BlY3Rvci5IQVJFbnRyeS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXMucXVlcnlTdHJpbmcgPSB0aGlzLl9idWlsZFBhcmFtZXRlcnModGhpcy5fcmVzb3VyY2Uu
cXVlcnlQYXJhbWV0ZXJzKTsKICAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnJlcXVlc3RGb3Jt
RGF0YSkKICAgICAgICAgICAgIHJlcy5wb3N0RGF0YSA9IHRoaXMuX2J1aWxkUG9zdERhdGEoKTsK
KyAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnJlcXVlc3RDb29raWVzKQorICAgICAgICAgICAg
cmVzLmNvb2tpZXMgPSB0aGlzLl9idWlsZENvb2tpZXModGhpcy5fcmVzb3VyY2UucmVxdWVzdENv
b2tpZXMpOwogICAgICAgICByZXR1cm4gcmVzOwogICAgIH0sCiAKICAgICBfYnVpbGRSZXNwb25z
ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgdmFyIHJlcyA9
IHsKICAgICAgICAgICAgIHN0YXR1czogdGhpcy5fcmVzb3VyY2Uuc3RhdHVzQ29kZSwKICAgICAg
ICAgICAgIHN0YXR1c1RleHQ6IHRoaXMuX3Jlc291cmNlLnN0YXR1c1RleHQsCiAgICAgICAgICAg
ICAvLyAiaHR0cFZlcnNpb24iOiAiSFRUUC8xLjEiIC0tIE5vdCBhdmFpbGFibGUuCi0gICAgICAg
ICAgICAvLyAiY29va2llcyI6IFtdLCAgLS0gTm90IGF2YWlsYWJsZS4KICAgICAgICAgICAgIGhl
YWRlcnM6IHRoaXMuX2J1aWxkSGVhZGVycyh0aGlzLl9yZXNvdXJjZS5yZXNwb25zZUhlYWRlcnMp
LAogICAgICAgICAgICAgY29udGVudDogdGhpcy5fYnVpbGRDb250ZW50KCksCiAgICAgICAgICAg
ICByZWRpcmVjdFVSTDogdGhpcy5fcmVzb3VyY2UucmVzcG9uc2VIZWFkZXJWYWx1ZSgiTG9jYXRp
b24iKSB8fCAiIiwKICAgICAgICAgICAgIGhlYWRlcnNTaXplOiAtMSwgLy8gTm90IGF2YWlsYWJs
ZS4KICAgICAgICAgICAgIGJvZHlTaXplOiB0aGlzLl9yZXNvdXJjZS5yZXNvdXJjZVNpemUKICAg
ICAgICAgfTsKKyAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnJlc3BvbnNlQ29va2llcykKKyAg
ICAgICAgICAgIHJlcy5jb29raWVzID0gdGhpcy5fYnVpbGRDb29raWVzKHRoaXMuX3Jlc291cmNl
LnJlc3BvbnNlQ29va2llcyk7CisgICAgICAgIHJldHVybiByZXM7CiAgICAgfSwKIAogICAgIF9i
dWlsZENvbnRlbnQ6IGZ1bmN0aW9uKCkKQEAgLTE1MCw2ICsxNTMsMjUgQEAgV2ViSW5zcGVjdG9y
LkhBUkVudHJ5LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnMuc2xpY2Uo
KTsKICAgICB9LAogCisgICAgX2J1aWxkQ29va2llczogZnVuY3Rpb24oY29va2llcykKKyAgICB7
CisgICAgICAgIHJldHVybiBjb29raWVzLm1hcCh0aGlzLl9idWlsZENvb2tpZS5iaW5kKHRoaXMp
KTsKKyAgICB9LAorCisgICAgX2J1aWxkQ29va2llOiBmdW5jdGlvbihjb29raWUpCisgICAgewor
ICAgICAgICAKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG5hbWU6IGNvb2tpZS5uYW1l
LAorICAgICAgICAgICAgdmFsdWU6IGNvb2tpZS52YWx1ZSwKKyAgICAgICAgICAgIHBhdGg6IGNv
b2tpZS5wYXRoLAorICAgICAgICAgICAgZG9tYWluOiBjb29raWUuZG9tYWluLAorICAgICAgICAg
ICAgZXhwaXJlczogY29va2llLmV4cGlyZXMobmV3IERhdGUodGhpcy5fcmVzb3VyY2Uuc3RhcnRU
aW1lICogMTAwMCkpLAorICAgICAgICAgICAgaHR0cE9ubHk6IGNvb2tpZS5odHRwT25seSwKKyAg
ICAgICAgICAgIHNlY3VyZTogY29va2llLnNlY3VyZQorICAgICAgICB9OworICAgIH0sCisKICAg
ICBfaW50ZXJ2YWw6IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpCiAgICAgewogICAgICAgICB2YXIgdGlt
aW5nID0gdGhpcy5fcmVzb3VyY2UudGltaW5nOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlLmpzCmluZGV4IGVhOTA1MmQuLmE4MDc0YjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMKQEAgLTM5OSw2ICszOTksNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX3JlcXVlc3RIZWFkZXJzID0geDsKICAg
ICAgICAgZGVsZXRlIHRoaXMuX3NvcnRlZFJlcXVlc3RIZWFkZXJzOworICAgICAgICBkZWxldGUg
dGhpcy5fcmVxdWVzdENvb2tpZXM7CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoInJlcXVlc3RIZWFkZXJzIGNoYW5nZWQiKTsKICAgICB9LApAQCAtNDIxLDYgKzQyMiwx
MyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
dGhpcy5faGVhZGVyVmFsdWUodGhpcy5yZXF1ZXN0SGVhZGVycywgaGVhZGVyTmFtZSk7CiAgICAg
fSwKIAorICAgIGdldCByZXF1ZXN0Q29va2llcygpCisgICAgeworICAgICAgICBpZiAoIXRoaXMu
X3JlcXVlc3RDb29raWVzKQorICAgICAgICAgICAgdGhpcy5fcmVxdWVzdENvb2tpZXMgPSB0aGlz
Ll9wYXJzZVJlcXVlc3RDb29raWVzKCk7CisgICAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0Q29v
a2llczsKKyAgICB9LAorCiAgICAgZ2V0IHJlcXVlc3RGb3JtRGF0YSgpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5fcmVxdWVzdEZvcm1EYXRhOwpAQCAtNDQ2LDYgKzQ1NCw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fcmVzcG9uc2VI
ZWFkZXJzID0geDsKICAgICAgICAgZGVsZXRlIHRoaXMuX3NvcnRlZFJlc3BvbnNlSGVhZGVyczsK
KyAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc3BvbnNlQ29va2llczsKIAogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycygicmVzcG9uc2VIZWFkZXJzIGNoYW5nZWQiKTsKICAgICB9
LApAQCAtNDY4LDYgKzQ3NywxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyVmFsdWUodGhpcy5yZXNwb25zZUhlYWRlcnMs
IGhlYWRlck5hbWUpOwogICAgIH0sCiAKKyAgICBnZXQgcmVzcG9uc2VDb29raWVzKCkKKyAgICB7
CisgICAgICAgIGlmICghdGhpcy5fcmVzcG9uc2VDb29raWVzKQorICAgICAgICAgICAgdGhpcy5f
cmVzcG9uc2VDb29raWVzID0gdGhpcy5fcGFyc2VSZXNwb25zZUNvb2tpZXMoKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3Jlc3BvbnNlQ29va2llczsKKyAgICB9LAorCiAgICAgZ2V0IHF1ZXJ5UGFy
YW1ldGVycygpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcGFyc2VkUXVlcnlQYXJhbWV0ZXJz
KQpAQCAtNTE4LDYgKzUzNCwzMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0g
ewogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9wYXJzZVJlcXVlc3RDb29raWVzOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gKG5ldyBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2Vy
KCkpLnBhcnNlQ29va2llKHRoaXMucmVxdWVzdEhlYWRlclZhbHVlKCJDb29raWUiKSk7CisgICAg
fSwKKworICAgIF9wYXJzZVJlc3BvbnNlQ29va2llczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIHBhcnNlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyKCk7CisgICAgICAg
IHZhciBjb29raWVzID0gcGFyc2VyLnBhcnNlU2V0Q29va2llKHRoaXMucmVzcG9uc2VIZWFkZXJW
YWx1ZSgiU2V0LUNvb2tpZSIpKTsKKyAgICAgICAgdmFyIGNvb2tpZXMyID0gcGFyc2VyLnBhcnNl
U2V0Q29va2llKHRoaXMucmVzcG9uc2VIZWFkZXJWYWx1ZSgiU2V0LUNvb2tpZTIiKSk7CisKKyAg
ICAgICAgLy8gVGhlIG1lcmdlIGNvb2tpZXMgbG9naWMgYmVsb3cgaXMgcGVyIFJGQyAyOTY1LCBT
ZWN0aW9uIDkuMS4KKyAgICAgICAgaWYgKGNvb2tpZXMyICYmIGNvb2tpZXMpIHsKKyAgICAgICAg
ICAgIHZhciBkaXNjYXJkVjFDb29raWVzID0ge307CisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGNvb2tpZXMyLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIGRpc2NhcmRWMUNv
b2tpZXNbY29va2llczJbaV0ubmFtZV0gPSB0cnVlOworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFkaXNj
YXJkVjFDb29raWVzW2Nvb2tpZXNbaV0ubmFtZV0pCisgICAgICAgICAgICAgICAgICAgIGNvb2tp
ZXMyLnB1c2goY29va2llc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb29raWVz
ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29va2llczIgfHwgY29va2llczsK
KyAgICB9LAorCiAgICAgZ2V0IHNjcmlwdHMoKQogICAgIHsKICAgICAgICAgaWYgKCEoIl9zY3Jp
cHRzIiBpbiB0aGlzKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXgg
MTEzODJjZC4uZjg5ZDE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dlYktpdC5xcmMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMK
QEAgLTIwLDYgKzIwLDcgQEAKICAgICA8ZmlsZT5Db25zb2xlVmlldy5qczwvZmlsZT4KICAgICA8
ZmlsZT5Db250ZXh0TWVudS5qczwvZmlsZT4KICAgICA8ZmlsZT5Db29raWVJdGVtc1ZpZXcuanM8
L2ZpbGU+CisgICAgPGZpbGU+Q29va2llUGFyc2VyLmpzPC9maWxlPgogICAgIDxmaWxlPkNTU0Nv
bXBsZXRpb25zLmpzPC9maWxlPgogICAgIDxmaWxlPkNTU1N0eWxlTW9kZWwuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+RGF0YWJhc2UuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmh0bWwKaW5kZXggOTQ5YjE4Zi4uODAzMGU4OSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTQzLDYgKzE0Myw3IEBAIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iR29Ub0xpbmVEaWFsb2cu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNo
b3J0Y3V0c0hlbHAuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkhBUkVudHJ5LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJDb29raWVQYXJzZXIuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHkgY2xhc3M9ImRldGFjaGVkIj4KICAgICA8ZGl2IGlkPSJ0b29sYmFyIj4K
</data>
<flag name="review"
          id="61136"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71178</attachid>
            <date>2010-10-19 09:34:45 -0700</date>
            <delta_ts>2010-10-19 10:28:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>har-cookies.diff</filename>
            <type>text/plain</type>
            <size>32892</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMzA0N2Q1Li45OTBhMTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAt
MTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2Ug
cmVxdWVzdC9yZXNwb25zZSBjb29raWVzIGluIEhBUgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4OTQKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAoZHVtcE9iamVjdCk6IEhhbmRsZSBu
dWxsIG9iamVjdHMgYXMgYSBzcGVjaWFsIGNhc2UgKGRpc3BsYXkgbnVsbCBpbnN0ZWFkIG9mIGVt
cHR5IG9iamVjdCkKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dDIuanM6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5h
ZGRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y29va2llLXBhcnNlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9j
b29raWUtcGFyc2VyLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEwLTE4ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIG1vcmUgU2tpcHBlZCBsaXN0IGVudHJpZXMg
YmVjYXVzZSBXZWJQIHJlcXVpcmVzIGFuIGV4dGVybmFsIGRlY29kZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKaW5kZXggZjMwMjhm
Yi4uZjE4M2YwMiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKQEAgLTUzLDYgKzUzLDggQEAgZnVuY3Rpb24gZHVtcE9iamVjdChv
YmplY3QsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4LCBmaXJzdExpbmVQcmVmaXgpCiAg
ICAgICAgIHZhciBwcm9wVmFsdWUgPSBvYmplY3RbcHJvcF07CiAgICAgICAgIGlmIChub25kZXRl
cm1pbmlzdGljUHJvcHMgJiYgcHJvcCBpbiBub25kZXRlcm1pbmlzdGljUHJvcHMpCiAgICAgICAg
ICAgICBvdXRwdXQocHJlZml4V2l0aE5hbWUgKyAiPCIgKyB0eXBlb2YgcHJvcFZhbHVlICsgIj4i
KTsKKyAgICAgICAgZWxzZSBpZiAocHJvcFZhbHVlID09PSBudWxsKQorICAgICAgICAgICAgb3V0
cHV0KHByZWZpeFdpdGhOYW1lICsgIm51bGwiKTsKICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBy
b3BWYWx1ZSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICBkdW1wT2JqZWN0KHByb3BWYWx1ZSwg
bm9uZGV0ZXJtaW5pc3RpY1Byb3BzLCBwcmVmaXggKyAiICAgICIsIHByZWZpeFdpdGhOYW1lKTsK
ICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3BWYWx1ZSA9PT0gInN0cmluZyIpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5k
ZXggZGY2NWQ4YS4uNTQ1NDY0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcwpAQCAtNjEsNiArNjEsOCBAQCBJbnNwZWN0b3JU
ZXN0LmFkZE9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdCwgbm9uZGV0ZXJtaW5pc3RpY1Byb3BzLCBw
cmVmaXgsIGZpcnN0TAogICAgICAgICB2YXIgcHJvcFZhbHVlID0gb2JqZWN0W3Byb3BdOwogICAg
ICAgICBpZiAobm9uZGV0ZXJtaW5pc3RpY1Byb3BzICYmIHByb3AgaW4gbm9uZGV0ZXJtaW5pc3Rp
Y1Byb3BzKQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocHJlZml4V2l0aE5h
bWUgKyAiPCIgKyB0eXBlb2YgcHJvcFZhbHVlICsgIj4iKTsKKyAgICAgICAgZWxzZSBpZiAocHJv
cFZhbHVlID09PSBudWxsKSAKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHBy
ZWZpeFdpdGhOYW1lICsgIm51bGwiKTsKICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHByb3BWYWx1
ZSA9PT0gIm9iamVjdCIpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChwcm9w
VmFsdWUsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4ICsgIiAgICAiLCBwcmVmaXhXaXRo
TmFtZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICJzdHJpbmciKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IDkzZGFmOTAuLjgx
Nzk0MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTEy
LDYgKzEyLDM1IEBAIFBhZ2UgcmVsb2FkZWQuCiAgICAgICAgICAgICBoZWFkZXJzIDogPG9iamVj
dD4KICAgICAgICAgICAgIGhlYWRlcnNTaXplIDogLTEKICAgICAgICAgICAgIGJvZHlTaXplIDog
PG51bWJlcj4KKyAgICAgICAgICAgIGNvb2tpZXMgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJhIgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA6ICJiIgorICAgICAgICAgICAgICAgICAgICBwYXRoIDogIi9wYXRoIgorICAgICAgICAgICAg
ICAgICAgICBkb21haW4gOiAiZXhhbXBsZS5jb20iCisgICAgICAgICAgICAgICAgICAgIGV4cGly
ZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0dHBPbmx5IDogZmFsc2UKKyAgICAgICAg
ICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgMSA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJhMSIKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUgOiAiYjEiCisgICAgICAgICAgICAgICAgICAgIHBhdGggOiB1bmRlZmlu
ZWQKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCisgICAgICAgICAgICAg
ICAgICAgIGV4cGlyZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0dHBPbmx5IDogZmFs
c2UKKyAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgMiA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJjMSIK
KyAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAiZDEiCisgICAgICAgICAgICAgICAgICAgIHBh
dGggOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogdW5kZWZpbmVkCisg
ICAgICAgICAgICAgICAgICAgIGV4cGlyZXMgOiBudWxsCisgICAgICAgICAgICAgICAgICAgIGh0
dHBPbmx5IDogZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogZmFsc2UKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Ug
OiB7CiAgICAgICAgICAgICBzdGF0dXMgOiAzMDQKQEAgLTI0LDYgKzUzLDM1IEBAIFBhZ2UgcmVs
b2FkZWQuCiAgICAgICAgICAgICByZWRpcmVjdFVSTCA6ICIiCiAgICAgICAgICAgICBoZWFkZXJz
U2l6ZSA6IC0xCiAgICAgICAgICAgICBib2R5U2l6ZSA6IDxudW1iZXI+CisgICAgICAgICAgICBj
b29raWVzIDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAgICAgICAgICAgICAgICAgIG5h
bWUgOiAieCIKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgOiAieSIKKyAgICAgICAgICAgICAg
ICAgICAgcGF0aCA6ICIvcGF0aCIKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluIDogImV4YW1w
bGUuY29tIgorICAgICAgICAgICAgICAgICAgICBleHBpcmVzIDogbnVsbAorICAgICAgICAgICAg
ICAgICAgICBodHRwT25seSA6IHRydWUKKyAgICAgICAgICAgICAgICAgICAgc2VjdXJlIDogdHJ1
ZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAxIDogeworICAgICAgICAgICAg
ICAgICAgICBuYW1lIDogIngxIgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA6ICJ5MSIKKyAg
ICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICBk
b21haW4gOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgZXhwaXJlcyA6IG51bGwKKyAg
ICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBmYWxzZQorICAgICAgICAgICAgICAgICAgICBz
ZWN1cmUgOiBmYWxzZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAyIDogewor
ICAgICAgICAgICAgICAgICAgICBuYW1lIDogInoyIgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA6ICJ5MiIKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA6IHVuZGVmaW5lZAorICAgICAgICAg
ICAgICAgICAgICBkb21haW4gOiB1bmRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgZXhwaXJl
cyA6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgaHR0cE9ubHkgOiBmYWxzZQorICAgICAgICAg
ICAgICAgICAgICBzZWN1cmUgOiBmYWxzZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICB0aW1pbmdzIDogPG9iamVjdD4KICAgICB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVy
c2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24uaHRtbAppbmRleCAxNDI3M2FkLi4wNTkzODM0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252
ZXJzaW9uLmh0bWwKQEAgLTEyLDggKzEyLDI3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAg
ICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VzW2lkXSkuYnVpbGQoKTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBhZGRDb29raWVIZWFkZXJz
VG9SZXNvdXJjZShyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHJlc291cmNlLnJlcXVlc3RIZWFk
ZXJzID0geworICAgICAgICAgICAgIkNvb2tpZSI6ICJhPWI7ICRQYXRoPS9wYXRoOyAkRG9tYWlu
PWV4YW1wbGUuY29tOyBhMT1iMVxuYzE9ZDEiCisgICAgICAgIH07CisgICAgICAgIHJlc291cmNl
LnJlc3BvbnNlSGVhZGVycyA9IHsKKyAgICAgICAgICAgICJTZXQtQ29va2llIjogIng9eTsgUGF0
aD0vcGF0aDsgRG9tYWluPWV4YW1wbGUuY29tOyBEaXNjYXJkOyBodHRwT25seTsgU2VjdXJlOyBW
ZXJzaW9uPTFcbngxPXkxXG56Mj15MiIKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBmaW5kUmVzb3VyY2VCeVVSTCh1cmwpCisgICAgeworICAgICAgICBmb3IgKHZhciByZXNvdXJj
ZSBpbiBXZWJJbnNwZWN0b3IucmVzb3VyY2VzKSB7CisgICAgICAgICAgICBpZiAodXJsLnRlc3Qo
V2ViSW5zcGVjdG9yLnJlc291cmNlc1tyZXNvdXJjZV0udXJsKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLnJlc291cmNlc1tyZXNvdXJjZV07CisgICAgICAgIH0KKyAgICB9
CisKICAgICBJbnNwZWN0b3JUZXN0LmVuYWJsZVJlc291cmNlVHJhY2tpbmcoZnVuY3Rpb24oKSB7
CiAgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldERlZmF1bHQoKS5ldmFsdWF0ZSgiZG9Y
SFIoKSIsICJjb25zb2xlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhZGRDb29raWVIZWFk
ZXJzVG9SZXNvdXJjZShmaW5kUmVzb3VyY2VCeVVSTCgvaW5zcGVjdG9yLXRlc3QyXC5qcyQvKSk7
CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gT2JqZWN0LmtleXMoV2ViSW5zcGVjdG9yLnJl
c291cmNlcykubWFwKGdldEhBUikuc29ydChJbnNwZWN0b3JUZXN0LnJlc291cmNlVVJMQ29tcGFy
ZXIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRPYmplY3QocmVzb3VyY2VzLCBJbnNw
ZWN0b3JUZXN0LkhBUk5vbmRldGVybWluaXN0aWNQcm9wZXJ0aWVzV2l0aFNpemUpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kaXNhYmxlUmVzb3VyY2VUcmFja2luZygpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYmIzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MzMgQEAKK1Rlc3RzIGluc3BlY3RvciBjb29raWUgcGFyc2VyCisKK3NvdXJjZTogY29va2llPXZh
bHVlCituYW1lOiBjb29raWUsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVk
LCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMTIKK3sKK30KK3NvdXJjZTog
JHZlcnNpb249MTsgYT1iLGMgID0gICBkLCBlPWYKK25hbWU6IGEsIHZhbHVlOiBiLGMgID0gICBk
LCBlPWYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0
aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVz
OiBuL2EsIHNpemU6IDE3Cit7Cit9Citzb3VyY2U6ICR2ZXJzaW9uPTE7IGE9YjtjICA9ICAgZDsg
ZSA9ZgorbmFtZTogYSwgdmFsdWU6IGIsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwg
c2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDog
dW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQKK3sKK30KK25hbWU6IGMsIHZhbHVlOiBk
LCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRydWUsIHBhdGg6IHVu
ZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9h
LCBzaXplOiAxMAoreworfQorbmFtZTogZSwgdmFsdWU6IGYsIGh0dHBPbmx5OiBmYWxzZSwgc2Vj
dXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVm
aW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQKK3sKK30KK3NvdXJj
ZTogY29va2UxID0gdmFsdWUxOyBhbm90aGVyIGNvb2tpZSA9IGFub3RoZXIgdmFsdWUKK25hbWU6
IGNvb2tlMSwgdmFsdWU6IHZhbHVlMSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBz
ZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMjUKK3sKK30KK25hbWU6IGNvb2tpZSwgdmFs
dWU6IGFub3RoZXIgdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lv
bjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZp
bmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDIyCit7Cit9Citzb3VyY2U6IGNvb2tlMSA9IHZhbHVl
OyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsKK25hbWU6IGNvb2tlMSwgdmFsdWU6IHZh
bHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRydWUsIHBhdGg6
IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogNDYKK3sKKyAgICBwYXRoIDogIi8iCisgICAgZG9tYWluIDogIi5leGFtcGxlLmNvbSIK
K30KK3NvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW49LmV4YW1wbGUuY29t
IDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUu
Y29tOworbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJl
OiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBv
cnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA0OAoreworICAgIHBhdGggOiAiLyIK
KyAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgorfQorbmFtZTogQ29va2llMiwgdmFsdWU6IHZh
bHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRo
OiAvZm9vLCBkb21haW46IGZvby5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVz
OiBuL2EsIHNpemU6IDU4Cit7CisgICAgcGF0aCA6ICIvZm9vIgorICAgIGRvbWFpbiA6ICJmb28u
ZXhhbXBsZS5jb20iCit9Citzb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWlu
PS5leGFtcGxlLmNvbQorQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0g
Zm9vLmV4YW1wbGUuY29tOyAKK25hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlLCBodHRwT25seTog
ZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRydWUsIHBhdGg6IC8sIGRvbWFpbjogLmV4
YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNDYKK3sKKyAg
ICBwYXRoIDogIi8iCisgICAgZG9tYWluIDogIi5leGFtcGxlLmNvbSIKK30KK25hbWU6IENvb2tp
ZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lv
bjogdHJ1ZSwgcGF0aDogL2ZvbywgZG9tYWluOiBmb28uZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVm
aW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1OQoreworICAgIHBhdGggOiAiL2ZvbyIKKyAgICBk
b21haW4gOiAiZm9vLmV4YW1wbGUuY29tIgorfQorc291cmNlOiAkdmVyc2lvbiA9MTsgY29va2Ux
ID0gdmFsdWU7ICRQYXRoPS87ICREb21haW4gICA9LmV4YW1wbGUuY29tOyAgCisgQ29va2llMiA9
IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOworbmFtZTog
Y29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vz
c2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5l
ZCwgZXhwaXJlczogbi9hLCBzaXplOiA1MworeworICAgIHBhdGggOiAiLyIKKyAgICBkb21haW4g
OiAiLmV4YW1wbGUuY29tIgorfQorbmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9u
bHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiAvZm9vLCBkb21h
aW46IGZvby5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6
IDU4Cit7CisgICAgcGF0aCA6ICIvZm9vIgorICAgIGRvbWFpbiA6ICJmb28uZXhhbXBsZS5jb20i
Cit9Citzb3VyY2U6IGNvb2tpZT12YWx1ZQorbmFtZTogY29va2llLCB2YWx1ZTogdmFsdWUsIGh0
dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZp
bmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNp
emU6IDEyCit7Cit9Citzb3VyY2U6IGE9YgorIGM9ZAorIGYKK25hbWU6IGEsIHZhbHVlOiBiLCBo
dHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRydWUsIHBhdGg6IHVuZGVm
aW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBz
aXplOiA1Cit7Cit9CituYW1lOiBjLCB2YWx1ZTogZCwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVk
LCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNQoreworfQorbmFtZTogLCB2
YWx1ZTogZiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBw
YXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGly
ZXM6IG4vYSwgc2l6ZTogMQoreworfQorc291cmNlOiBjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBE
b21haW49LmV4YW1wbGUuY29tOworbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAu
ZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA0NAorewor
ICAgIHBhdGggOiAiLyIKKyAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgorfQorc291cmNlOiBj
b29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49ICAuZXhhbXBsZS5jb20gCitDb29raWUyID0g
dmFsdWUyOyBQYXRoID0gL2ZvbzsgRG9tYWluID0gZm9vLmV4YW1wbGUuY29tCituYW1lOiBjb29r
ZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9u
OiB0cnVlLCBwYXRoOiAvLCBkb21haW46IC5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZpbmVkLCBl
eHBpcmVzOiBuL2EsIHNpemU6IDQ3Cit7CisgICAgcGF0aCA6ICIvIgorICAgIGRvbWFpbiA6ICIu
ZXhhbXBsZS5jb20iCit9CituYW1lOiBDb29raWUyLCB2YWx1ZTogdmFsdWUyLCBodHRwT25seTog
ZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRvbWFpbjog
Zm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNTUK
K3sKKyAgICBwYXRoIDogIi9mb28iCisgICAgZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKK30K
K3NvdXJjZTogY29va2UxID0gdmFsdWU7IGV4cGlyZXMgPSBNb24sIE9jdCAxOCAyMDEwIDE3OjAw
IEdNVCswMDAwOyBEb21haW4gICA9LmV4YW1wbGUuY29tCitDb29raWUyID0gdmFsdWUyOyBQYXRo
ID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyBIdHRwT25seTsgU2VjdXJlOyBEaXNj
YXJkOworbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJl
OiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IC5leGFtcGxl
LmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiAxMjg3NDIxMjAwMDAwLCBzaXplOiA4Mgor
eworICAgIGV4cGlyZXMgOiAiTW9uLCBPY3QgMTggMjAxMCAxNzowMCBHTVQrMDAwMCIKKyAgICBk
b21haW4gOiAiLmV4YW1wbGUuY29tIgorfQorbmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwg
aHR0cE9ubHk6IHRydWUsIHNlY3VyZTogdHJ1ZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogL2Zvbywg
ZG9tYWluOiBmb28uZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBz
aXplOiA4MworeworICAgIHBhdGggOiAiL2ZvbyIKKyAgICBkb21haW4gOiAiZm9vLmV4YW1wbGUu
Y29tIgorICAgIGh0dHBvbmx5IDogdW5kZWZpbmVkCisgICAgc2VjdXJlIDogdW5kZWZpbmVkCisg
ICAgZGlzY2FyZCA6IHVuZGVmaW5lZAorfQorc291cmNlOiBjb29rZTEgPSB2YWx1ZTsgbWF4LWFn
ZT0gMTQ0MDsgRG9tYWluICAgPS5leGFtcGxlLmNvbQorIENvb2tpZTIgPSB2YWx1ZTI7IFBhdGgg
PSAvZm9vOyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IEh0dHBPbmx5OyBTZWN1cmU7IERpc2Nh
cmQ7CituYW1lOiBjb29rZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiBmYWxzZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IC5leGFtcGxl
LmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiAxMjg3NDIyNjQwMDAwLCBzaXplOiA1NQor
eworICAgIG1heC1hZ2UgOiAiMTQ0MCIKKyAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgorfQor
bmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9ubHk6IHRydWUsIHNlY3VyZTogdHJ1
ZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogL2ZvbywgZG9tYWluOiBmb28uZXhhbXBsZS5jb20sIHBv
cnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA4MworeworICAgIHBhdGggOiAiL2Zv
byIKKyAgICBkb21haW4gOiAiZm9vLmV4YW1wbGUuY29tIgorICAgIGh0dHBvbmx5IDogdW5kZWZp
bmVkCisgICAgc2VjdXJlIDogdW5kZWZpbmVkCisgICAgZGlzY2FyZCA6IHVuZGVmaW5lZAorfQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCAwMDAwMDAwLi41MDY2ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXIuaHRtbApAQCAtMCwwICsxLDcxIEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0Mi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1
bmN0aW9uIGluaXRpYWxpemVfQ29va2llVGVzdHMoKQoreworCitJbnNwZWN0b3JUZXN0LmR1bXBD
b29raWUgPSBmdW5jdGlvbihjb29raWUpIAoreworICAgIHZhciByZXF1ZXN0RGF0ZSA9IG5ldyBE
YXRlKCJNb24gT2N0IDE4IDIwMTAgMTc6MDA6MDAgR01UKzAwMDAiKTsKKyAgICB2YXIgZXhwaXJl
cyA9IGNvb2tpZS5leHBpcmVzKHJlcXVlc3REYXRlKTsKKworICAgIHZhciBvdXRwdXQgPSAibmFt
ZTogIiArIGNvb2tpZS5uYW1lICsgIiwgdmFsdWU6ICIgKyBjb29raWUudmFsdWUgKyAiLCBodHRw
T25seTogIiArIGNvb2tpZS5odHRwT25seSArCisgICAgICAgICIsIHNlY3VyZTogIiArIGNvb2tp
ZS5zZWN1cmUgKyAiLCBzZXNzaW9uOiAiICsgY29va2llLnNlc3Npb24gKyAiLCBwYXRoOiAiICsg
Y29va2llLnBhdGggKworICAgICAgICAiLCBkb21haW46ICIgKyBjb29raWUuZG9tYWluICsgIiwg
cG9ydDogIiArIGNvb2tpZS5wb3J0ICsKKyAgICAgICAgIiwgZXhwaXJlczogIiArIChleHBpcmVz
ID8gZXhwaXJlcy5nZXRUaW1lKCkgOiAibi9hIikgKworICAgICAgICAiLCBzaXplOiAiICsgY29v
a2llLnNpemU7CisKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChvdXRwdXQpOworICAgIElu
c3BlY3RvclRlc3QuYWRkT2JqZWN0KGNvb2tpZS5hdHRyaWJ1dGVzKTsKK30KKworSW5zcGVjdG9y
VGVzdC5kdW1wQ29va2llcyA9IGZ1bmN0aW9uKGNvb2tpZXMpIAoreworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgY29va2llcy5sZW5ndGg7ICsraSkKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
Q29va2llKGNvb2tpZXNbaV0pOworfQorCitJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tp
ZSA9IGZ1bmN0aW9uKGhlYWRlcikKK3sKKyAgICB2YXIgcGFyc2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5Db29raWVQYXJzZXIoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic291cmNlOiAi
ICsgaGVhZGVyKTsKKyAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb29raWVzKHBhcnNlci5wYXJzZUNv
b2tpZShoZWFkZXIpKTsKK30KKworSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUg
PSBmdW5jdGlvbihoZWFkZXIpCit7CisgICAgdmFyIHBhcnNlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29va2llUGFyc2VyKCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInNvdXJjZTogIiAr
IGhlYWRlcik7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29va2llcyhwYXJzZXIucGFyc2VTZXRD
b29raWUoaGVhZGVyKSk7Cit9CisKK30KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAg
SW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoImNvb2tpZT12YWx1ZSIpOworICAgIElu
c3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCIkdmVyc2lvbj0xOyBhPWIsYyAgPSAgIGQs
IGU9ZiIpOworICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2llKCIkdmVyc2lvbj0x
OyBhPWI7YyAgPSAgIGQ7IGUgPWYiKTsKKyAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENv
b2tpZSgiY29va2UxID0gdmFsdWUxOyBhbm90aGVyIGNvb2tpZSA9IGFub3RoZXIgdmFsdWUiKTsK
KyAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiY29va2UxID0gdmFsdWU7ICRQ
YXRoPS87ICREb21haW49LmV4YW1wbGUuY29tOyIpOworICAgIEluc3BlY3RvclRlc3QucGFyc2VB
bmREdW1wQ29va2llKCJjb29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbj0uZXhhbXBsZS5j
b20gOyBDb29raWUyID0gdmFsdWUyOyAkUGF0aCA9IC9mb287ICRET01BSU4gPSBmb28uZXhhbXBs
ZS5jb207Iik7CisgICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoImNvb2tlMSA9
IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbVxuQ29va2llMiA9IHZhbHVlMjsg
JFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyAiKTsKKyAgICBJbnNwZWN0
b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiJHZlcnNpb24gPTE7IGNvb2tlMSA9IHZhbHVlOyAk
UGF0aD0vOyAkRG9tYWluICAgPS5leGFtcGxlLmNvbTsgIFxuIENvb2tpZTIgPSB2YWx1ZTI7ICRQ
YXRoID0gL2ZvbzsgJERPTUFJTiA9IGZvby5leGFtcGxlLmNvbTsiKTsKKworICAgIEluc3BlY3Rv
clRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJjb29raWU9dmFsdWUiKTsKKyAgICBJbnNwZWN0
b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiYT1iXG4gYz1kXG4gZiIpOworICAgIEluc3Bl
Y3RvclRlc3QucGFyc2VBbmREdW1wU2V0Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBE
b21haW49LmV4YW1wbGUuY29tOyIpOworICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wU2V0
Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49ICAuZXhhbXBsZS5jb20gXG5D
b29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRG9tYWluID0gZm9vLmV4YW1wbGUuY29tIik7
CisgICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImNvb2tlMSA9IHZhbHVl
OyBleHBpcmVzID0gTW9uLCBPY3QgMTggMjAxMCAxNzowMCBHTVQrMDAwMDsgRG9tYWluICAgPS5l
eGFtcGxlLmNvbVxuQ29va2llMiA9IHZhbHVlMjsgUGF0aCA9IC9mb287IERPTUFJTiA9IGZvby5l
eGFtcGxlLmNvbTsgSHR0cE9ubHk7IFNlY3VyZTsgRGlzY2FyZDsiKTsKKyAgICBJbnNwZWN0b3JU
ZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0gdmFsdWU7IG1heC1hZ2U9IDE0NDA7
IERvbWFpbiAgID0uZXhhbXBsZS5jb21cbiBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2Zvbzsg
RE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOyIpOwor
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgaW5zcGVjdG9yIGNvb2tpZSBw
YXJzZXI8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0N2ZhMDguLjgzYjA4NzYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTAtMTAtMTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBleHBvc2UgcmVxdWVzdC9yZXNwb25zZSBjb29raWVzIGluIEhBUgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4OTQKKworICAgICAgICBUZXN0
OiBpbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanM6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvSEFSRW50cnkuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFSRW50
cnkucHJvdG90eXBlLl9idWlsZFJlcXVlc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhBUkVu
dHJ5LnByb3RvdHlwZS5fYnVpbGRSZXNwb25zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSEFS
RW50cnkucHJvdG90eXBlLl9idWlsZENvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhB
UkVudHJ5LnByb3RvdHlwZS5fYnVpbGRDb29raWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanM6IFBhcnNlIENvb2tpZS9TZXQtQ29va2llIGhlYWRlcnMgYW5kIGV4
cG9zZSBjb29raWVzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5z
ZXQgcmVxdWVzdEhlYWRlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3Rv
dHlwZS5nZXQgcmVxdWVzdENvb2tpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
LnByb3RvdHlwZS5zZXQgcmVzcG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5wcm90b3R5cGUuZ2V0IHJlc3BvbnNlQ29va2llcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9wYXJzZVJlcXVlc3RDb29raWVzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuX3BhcnNlUmVzcG9uc2VDb29raWVzKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKwogMjAxMC0xMC0xNyAgQW5kcmVhcyBL
bGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDVjNmMzZDIuLjczMmYxMmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00MzU1LDYg
KzQzNTUsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGV4dE1lbnUuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NDb21wbGV0aW9ucy5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpzJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IGVjMjBhZmYuLjAyOTIzYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNjM0NDYsNiArNjM0NDYsMTQgQEAKIAkJCQkJPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1l
bmRcQ29va2llSXRlbXNWaWV3LmpzIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ29va2llUGFyc2Vy
LmpzIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcQ1NTU3R5bGVNb2RlbC5qcyINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29r
aWVQYXJzZXIuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiZTVkZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llUGFyc2VyLmpzCkBAIC0w
LDAgKzEsMjA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLy8gSWRlYWxseSwgd2Ugd291bGQgcmVseSBvbiBwbGF0Zm9ybSBzdXBwb3J0
IGZvciBwYXJzaW5nIGEgY29va2llLCBzaW5jZQorLy8gdGhpcyB3b3VsZCBzYXZlIHVzIGZyb20g
YW55IHBvdGVudGlhbCBpbmNvbnNpc3RlbmN5LiBIb3dldmVyLCBleHBvc2luZworLy8gcGxhdGZv
cm0gY29va2llIHBhcnNpbmcgbG9naWMgd291bGQgcmVxdWlyZSBxdWl0ZSBhIGJpdCBvZiBhZGRp
dGlvbmFsIAorLy8gcGx1bWJpbmcsIGFuZCBhdCBsZWFzdCBzb21lIHBsYXRmb3JtcyBsYWNrIHN1
cHBvcnQgZm9yIHBhcnNpbmcgQ29va2llLAorLy8gd2hpY2ggaXMgaW4gYSBmb3JtYXQgc2xpZ2h0
bHkgZGlmZmVyZW50IGZyb20gU2V0LUNvb2tpZSBhbmQgaXMgbm9ybWFsbHkgCisvLyBvbmx5IHJl
cXVpcmVkIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KKworV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlciA9
IGZ1bmN0aW9uKCkKK3sKK30KKworV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wcm90b3R5cGUg
PSB7CisgICAgZ2V0IGNvb2tpZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nvb2tp
ZXM7CisgICAgfSwKKworICAgIHBhcnNlQ29va2llOiBmdW5jdGlvbihjb29raWVIZWFkZXIpCisg
ICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemUoY29va2llSGVhZGVyKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKHZhciBrdiA9IHRoaXMuX2V4dHJhY3RLZXlW
YWx1ZSgpOyBrdjsga3YgPSB0aGlzLl9leHRyYWN0S2V5VmFsdWUoKSkgeworICAgICAgICAgICAg
aWYgKGt2LmtleS5jaGFyQXQoMCkgPT09ICIkIiAmJiB0aGlzLl9sYXN0Q29va2llKQorICAgICAg
ICAgICAgICAgIHRoaXMuX2xhc3RDb29raWUuYWRkQXR0cmlidXRlKGt2LmtleS5zbGljZSgxKSwg
a3YudmFsdWUpOworICAgICAgICAgICAgZWxzZSBpZiAoa3Yua2V5LnRvTG93ZXJDYXNlKCkgIT09
ICIkdmVyc2lvbiIgJiYgdHlwZW9mIGt2LnZhbHVlID09PSAic3RyaW5nIikKKyAgICAgICAgICAg
ICAgICB0aGlzLl9hZGRDb29raWUoa3YpOworICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUFuZENo
ZWNrQ29va2llRGVsaW1pdGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fZmx1c2hDb29r
aWUoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nvb2tpZXM7CisgICAgfSwKKworICAgIHBhcnNl
U2V0Q29va2llOiBmdW5jdGlvbihzZXRDb29raWVIZWFkZXIpCisgICAgeworICAgICAgICBpZiAo
IXRoaXMuX2luaXRpYWxpemUoc2V0Q29va2llSGVhZGVyKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgZm9yICh2YXIga3YgPSB0aGlzLl9leHRyYWN0S2V5VmFsdWUoKTsga3Y7IGt2ID0g
dGhpcy5fZXh0cmFjdEtleVZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9sYXN0Q29v
a2llKQorICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RDb29raWUuYWRkQXR0cmlidXRlKGt2Lmtl
eSwga3YudmFsdWUpOworICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICB0aGlzLl9h
ZGRDb29raWUoa3YpOworICAgICAgICAgICAgaWYgKHRoaXMuX2FkdmFuY2VBbmRDaGVja0Nvb2tp
ZURlbGltaXRlcigpKQorICAgICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29va2llKCk7CisgICAg
ICAgIH0KKyAgICAgICAgdGhpcy5fZmx1c2hDb29raWUoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2Nvb2tpZXM7CisgICAgfSwKKworICAgIF9pbml0aWFsaXplOiBmdW5jdGlvbihoZWFkZXJWYWx1
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2lucHV0ID0gaGVhZGVyVmFsdWU7CisgICAgICAgIGlm
ICh0eXBlb2YgaGVhZGVyVmFsdWUgIT09ICJzdHJpbmciKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB0aGlzLl9jb29raWVzID0gW107CisgICAgICAgIHRoaXMuX2xhc3RDb29r
aWUgPSBudWxsOworICAgICAgICB0aGlzLl9vcmlnaW5hbElucHV0TGVuZ3RoID0gdGhpcy5faW5w
dXQubGVuZ3RoOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgX2ZsdXNoQ29v
a2llOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fbGFzdENvb2tpZSkKKyAg
ICAgICAgICAgIHRoaXMuX2xhc3RDb29raWUuc2l6ZSA9IHRoaXMuX29yaWdpbmFsSW5wdXRMZW5n
dGggLSB0aGlzLl9pbnB1dC5sZW5ndGggLSB0aGlzLl9sYXN0Q29va2llUG9zaXRpb247CisgICAg
ICAgIHRoaXMuX2xhc3RDb29raWUgPSBudWxsOworICAgIH0sCisKKyAgICBfZXh0cmFjdEtleVZh
bHVlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2lucHV0IHx8ICF0aGlz
Ll9pbnB1dC5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgLy8gTm90
ZTogUkZDcyBvZmZlciBhbiBvcHRpb24gZm9yIHF1b3RlZCB2YWx1ZXMgdGhhdCBtYXkgY29udGFp
biBjb21tYXMgYW5kIHNlbWljb2xvbnMuCisgICAgICAgIC8vIE1hbnkgYnJvd3NlcnMvcGxhdGZv
cm1zIGRvIG5vdCBzdXBwb3J0IHRoaXMsIGhvd2V2ZXIgKHNlZSBodHRwOi8vd2Via2l0Lm9yZy9i
LzE2Njk5CisgICAgICAgIC8vIGFuZCBodHRwOi8vY3JidWcuY29tLzEyMzYxKS4gVGhlIGxvZ2lj
IGJlbG93IG1hdGNoZXMgbGF0ZXN0IHZlcnNpb25zIG9mIElFLCBGaXJlZm94LAorICAgICAgICAv
LyBDaHJvbWUgYW5kIFNhZmFyaSBvbiBzb21lIG9sZCBwbGF0Zm9ybXMuIFRoZSBsYXRlc3QgdmVy
c2lvbiBvZiBTYWZhcmkgc3VwcG9ydHMgcXVvdGVkCisgICAgICAgIC8vIGNvb2tpZSB2YWx1ZXMs
IHRob3VnaC4gCisgICAgICAgIHZhciBrZXlWYWx1ZU1hdGNoID0gL15bIFx0XSooW15ccz07XSsp
WyBcdF0qKD86PVsgXHRdKihbXjtcbl0qKSk/Ly5leGVjKHRoaXMuX2lucHV0KTsKKyAgICAgICAg
aWYgKCFrZXlWYWx1ZU1hdGNoKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiRmFpbGVkIHBh
cnNpbmcgY29va2llIGhlYWRlciBiZWZvcmU6ICIgKyB0aGlzLl9pbnB1dCk7CisgICAgICAgICAg
ICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHZhciByZXN1bHQgPSB7CisgICAg
ICAgICAgICBrZXk6IGtleVZhbHVlTWF0Y2hbMV0sCisgICAgICAgICAgICB2YWx1ZToga2V5VmFs
dWVNYXRjaFsyXSAmJiBrZXlWYWx1ZU1hdGNoWzJdLnRyaW0oKSwKKyAgICAgICAgICAgIHBvc2l0
aW9uOiB0aGlzLl9vcmlnaW5hbElucHV0TGVuZ3RoIC0gdGhpcy5faW5wdXQubGVuZ3RoCisgICAg
ICAgIH07CisgICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2Uoa2V5VmFsdWVN
YXRjaFswXS5sZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICBf
YWR2YW5jZUFuZENoZWNrQ29va2llRGVsaW1pdGVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB2YXIgbWF0Y2ggPSAvXlxzKltcbjtdXHMqLy5leGVjKHRoaXMuX2lucHV0KTsKKyAgICAgICAg
aWYgKCFtYXRjaCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdGhpcy5faW5w
dXQgPSB0aGlzLl9pbnB1dC5zbGljZShtYXRjaFswXS5sZW5ndGgpOworICAgICAgICByZXR1cm4g
bWF0Y2hbMF0ubWF0Y2goIlxuIikgIT09IG51bGw7CisgICAgfSwKKworICAgIF9hZGRDb29raWU6
IGZ1bmN0aW9uKGtleVZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2xhc3RDb29raWUp
CisgICAgICAgICAgICB0aGlzLl9sYXN0Q29va2llLnNpemUgPSBrZXlWYWx1ZS5wb3NpdGlvbiAt
IHRoaXMuX2xhc3RDb29raWVQb3NpdGlvbjsKKyAgICAgICAgLy8gTW96aWxsYSBidWcgMTY5MDkx
OiBNb3ppbGxhLCBJRSBhbmQgQ2hyb21lIHRyZWF0IHNpZ25sZSB0b2tlbiAody9vICI9IikgYXMK
KyAgICAgICAgLy8gc3BlY2lmeWluZyBhIHZhbHVlIGZvciBhIGNvb2tpZSB3aXRoIGVtcHR5IG5h
bWUuCisgICAgICAgIHRoaXMuX2xhc3RDb29raWUgPSBrZXlWYWx1ZS52YWx1ZSA/IG5ldyBXZWJJ
bnNwZWN0b3IuQ29va2llKGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpIDoKKyAgICAgICAg
ICAgIG5ldyBXZWJJbnNwZWN0b3IuQ29va2llKCIiLCBrZXlWYWx1ZS5rZXkpOworICAgICAgICB0
aGlzLl9sYXN0Q29va2llUG9zaXRpb24gPSBrZXlWYWx1ZS5wb3NpdGlvbjsKKyAgICAgICAgdGhp
cy5fY29va2llcy5wdXNoKHRoaXMuX2xhc3RDb29raWUpOworICAgIH0KK307CisKK1dlYkluc3Bl
Y3Rvci5Db29raWVQYXJzZXIucGFyc2VDb29raWUgPSBmdW5jdGlvbihoZWFkZXIpCit7CisgICAg
cmV0dXJuIChuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlcigpKS5wYXJzZUNvb2tpZShoZWFk
ZXIpOworfQorCitXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyLnBhcnNlU2V0Q29va2llID0gZnVu
Y3Rpb24oaGVhZGVyKQoreworICAgIHJldHVybiAobmV3IFdlYkluc3BlY3Rvci5Db29raWVQYXJz
ZXIoKSkucGFyc2VTZXRDb29raWUoaGVhZGVyKTsKK30KKworV2ViSW5zcGVjdG9yLkNvb2tpZSA9
IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKQoreworICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgdGhp
cy52YWx1ZSA9IHZhbHVlOworICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSB7fTsKK30KKworV2ViSW5z
cGVjdG9yLkNvb2tpZS5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGh0dHBPbmx5KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiaHR0cG9ubHkiIGluIHRoaXMuX2F0dHJpYnV0ZXM7CisgICAgfSwKKwor
ICAgIGdldCBzZWN1cmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzZWN1cmUiIGluIHRoaXMu
X2F0dHJpYnV0ZXM7CisgICAgfSwKKworICAgIGdldCBzZXNzaW9uKCkKKyAgICB7CisgICAgICAg
IC8vIFJGQyAyOTY1IHN1Z2dlc3RzIHVzaW5nIERpc2NhcmQgYXR0cmlidXRlIHRvIG1hcmsgc2Vz
c2lvbiBjb29raWVzLCBidXQgdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIHdpZGVseSB1c2VkLgor
ICAgICAgICAvLyBDaGVjayBmb3IgYWJzZW5jZSBvZiBleHBsaWNpdHkgbWF4LWFnZSBvciBleHBp
cnkgZGF0ZSBpbnN0ZWFkLgorICAgICAgICByZXR1cm4gICEoImV4cHJpZXMiIGluIHRoaXMuX2F0
dHJpYnV0ZXMgfHwgIm1heC1hZ2UiIGluIHRoaXMuX2F0dHJpYnV0ZXMpOworICAgIH0sCisKKyAg
ICBnZXQgcGF0aCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5wYXRo
OworICAgIH0sCisKKyAgICBnZXQgZG9tYWluKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9hdHRyaWJ1dGVzLmRvbWFpbjsKKyAgICB9LAorCisgICAgZXhwaXJlczogZnVuY3Rpb24ocmVx
dWVzdERhdGUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5leHBpcmVz
ID8gbmV3IERhdGUodGhpcy5fYXR0cmlidXRlcy5leHBpcmVzKSA6CisgICAgICAgICAgICAodGhp
cy5fYXR0cmlidXRlc1sibWF4LWFnZSJdID8gbmV3IERhdGUocmVxdWVzdERhdGUuZ2V0VGltZSgp
ICsgMTAwMCAqIHRoaXMuX2F0dHJpYnV0ZXNbIm1heC1hZ2UiXSkgOiBudWxsKTsKKyAgICB9LAor
CisgICAgZ2V0IGF0dHJpYnV0ZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2F0dHJp
YnV0ZXM7CisgICAgfSwKKworICAgIGFkZEF0dHJpYnV0ZTogZnVuY3Rpb24oa2V5LCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXNba2V5LnRvTG93ZXJDYXNlKCldID0gdmFs
dWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hB
UkVudHJ5LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzCmluZGV4
IDJjZjA3NDAuLmE4NzdjYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9IQVJFbnRyeS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSEFSRW50cnku
anMKQEAgLTU2LDcgKzU2LDYgQEAgV2ViSW5zcGVjdG9yLkhBUkVudHJ5LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIG1ldGhvZDogdGhpcy5fcmVzb3VyY2UucmVxdWVzdE1ldGhvZCwKICAgICAg
ICAgICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJsLAogICAgICAgICAgICAgLy8gaHR0cFZlcnNp
b246ICJIVFRQLzEuMSIgLS0gTm90IGF2YWlsYWJsZS4KLSAgICAgICAgICAgIC8vIGNvb2tpZXM6
IFtdIC0tIE5vdCBhdmFpbGFibGUuCiAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLl9idWlsZEhl
YWRlcnModGhpcy5fcmVzb3VyY2UucmVxdWVzdEhlYWRlcnMpLAogICAgICAgICAgICAgaGVhZGVy
c1NpemU6IC0xLCAvLyBOb3QgYXZhaWxhYmxlLgogICAgICAgICAgICAgYm9keVNpemU6IC0xIC8v
IE5vdCBhdmFpbGFibGUuCkBAIC02NSwyMiArNjQsMjYgQEAgV2ViSW5zcGVjdG9yLkhBUkVudHJ5
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlcy5xdWVyeVN0cmluZyA9IHRoaXMuX2J1aWxk
UGFyYW1ldGVycyh0aGlzLl9yZXNvdXJjZS5xdWVyeVBhcmFtZXRlcnMpOwogICAgICAgICBpZiAo
dGhpcy5fcmVzb3VyY2UucmVxdWVzdEZvcm1EYXRhKQogICAgICAgICAgICAgcmVzLnBvc3REYXRh
ID0gdGhpcy5fYnVpbGRQb3N0RGF0YSgpOworICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UucmVx
dWVzdENvb2tpZXMpCisgICAgICAgICAgICByZXMuY29va2llcyA9IHRoaXMuX2J1aWxkQ29va2ll
cyh0aGlzLl9yZXNvdXJjZS5yZXF1ZXN0Q29va2llcyk7CiAgICAgICAgIHJldHVybiByZXM7CiAg
ICAgfSwKIAogICAgIF9idWlsZFJlc3BvbnNlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4geworICAgICAgICB2YXIgcmVzID0gewogICAgICAgICAgICAgc3RhdHVzOiB0aGlzLl9y
ZXNvdXJjZS5zdGF0dXNDb2RlLAogICAgICAgICAgICAgc3RhdHVzVGV4dDogdGhpcy5fcmVzb3Vy
Y2Uuc3RhdHVzVGV4dCwKICAgICAgICAgICAgIC8vICJodHRwVmVyc2lvbiI6ICJIVFRQLzEuMSIg
LS0gTm90IGF2YWlsYWJsZS4KLSAgICAgICAgICAgIC8vICJjb29raWVzIjogW10sICAtLSBOb3Qg
YXZhaWxhYmxlLgogICAgICAgICAgICAgaGVhZGVyczogdGhpcy5fYnVpbGRIZWFkZXJzKHRoaXMu
X3Jlc291cmNlLnJlc3BvbnNlSGVhZGVycyksCiAgICAgICAgICAgICBjb250ZW50OiB0aGlzLl9i
dWlsZENvbnRlbnQoKSwKICAgICAgICAgICAgIHJlZGlyZWN0VVJMOiB0aGlzLl9yZXNvdXJjZS5y
ZXNwb25zZUhlYWRlclZhbHVlKCJMb2NhdGlvbiIpIHx8ICIiLAogICAgICAgICAgICAgaGVhZGVy
c1NpemU6IC0xLCAvLyBOb3QgYXZhaWxhYmxlLgogICAgICAgICAgICAgYm9keVNpemU6IHRoaXMu
X3Jlc291cmNlLnJlc291cmNlU2l6ZQogICAgICAgICB9OworICAgICAgICBpZiAodGhpcy5fcmVz
b3VyY2UucmVzcG9uc2VDb29raWVzKQorICAgICAgICAgICAgcmVzLmNvb2tpZXMgPSB0aGlzLl9i
dWlsZENvb2tpZXModGhpcy5fcmVzb3VyY2UucmVzcG9uc2VDb29raWVzKTsKKyAgICAgICAgcmV0
dXJuIHJlczsKICAgICB9LAogCiAgICAgX2J1aWxkQ29udGVudDogZnVuY3Rpb24oKQpAQCAtMTUw
LDYgKzE1MywyNSBAQCBXZWJJbnNwZWN0b3IuSEFSRW50cnkucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gcGFyYW1ldGVycy5zbGljZSgpOwogICAgIH0sCiAKKyAgICBfYnVpbGRDb29raWVz
OiBmdW5jdGlvbihjb29raWVzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvb2tpZXMubWFwKHRo
aXMuX2J1aWxkQ29va2llLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBfYnVpbGRDb29raWU6
IGZ1bmN0aW9uKGNvb2tpZSkKKyAgICB7CisgICAgICAgIAorICAgICAgICByZXR1cm4geworICAg
ICAgICAgICAgbmFtZTogY29va2llLm5hbWUsCisgICAgICAgICAgICB2YWx1ZTogY29va2llLnZh
bHVlLAorICAgICAgICAgICAgcGF0aDogY29va2llLnBhdGgsCisgICAgICAgICAgICBkb21haW46
IGNvb2tpZS5kb21haW4sCisgICAgICAgICAgICBleHBpcmVzOiBjb29raWUuZXhwaXJlcyhuZXcg
RGF0ZSh0aGlzLl9yZXNvdXJjZS5zdGFydFRpbWUgKiAxMDAwKSksCisgICAgICAgICAgICBodHRw
T25seTogY29va2llLmh0dHBPbmx5LAorICAgICAgICAgICAgc2VjdXJlOiBjb29raWUuc2VjdXJl
CisgICAgICAgIH07CisgICAgfSwKKwogICAgIF9pbnRlcnZhbDogZnVuY3Rpb24oc3RhcnQsIGVu
ZCkKICAgICB7CiAgICAgICAgIHZhciB0aW1pbmcgPSB0aGlzLl9yZXNvdXJjZS50aW1pbmc7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKaW5kZXggZWE5MDUyZC4uOTZkMDRi
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtMzk5LDYgKzM5
OSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhp
cy5fcmVxdWVzdEhlYWRlcnMgPSB4OwogICAgICAgICBkZWxldGUgdGhpcy5fc29ydGVkUmVxdWVz
dEhlYWRlcnM7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9yZXF1ZXN0Q29va2llczsKIAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicmVxdWVzdEhlYWRlcnMgY2hhbmdlZCIp
OwogICAgIH0sCkBAIC00MjEsNiArNDIyLDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJWYWx1ZSh0aGlzLnJlcXVlc3RI
ZWFkZXJzLCBoZWFkZXJOYW1lKTsKICAgICB9LAogCisgICAgZ2V0IHJlcXVlc3RDb29raWVzKCkK
KyAgICB7CisgICAgICAgIGlmICghdGhpcy5fcmVxdWVzdENvb2tpZXMpCisgICAgICAgICAgICB0
aGlzLl9yZXF1ZXN0Q29va2llcyA9IFdlYkluc3BlY3Rvci5Db29raWVQYXJzZXIucGFyc2VDb29r
aWUodGhpcy5yZXF1ZXN0SGVhZGVyVmFsdWUoIkNvb2tpZSIpKTsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX3JlcXVlc3RDb29raWVzOworICAgIH0sCisKICAgICBnZXQgcmVxdWVzdEZvcm1EYXRhKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0Rm9ybURhdGE7CkBAIC00NDYsNiAr
NDU0LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0
aGlzLl9yZXNwb25zZUhlYWRlcnMgPSB4OwogICAgICAgICBkZWxldGUgdGhpcy5fc29ydGVkUmVz
cG9uc2VIZWFkZXJzOworICAgICAgICBkZWxldGUgdGhpcy5fcmVzcG9uc2VDb29raWVzOwogCiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJyZXNwb25zZUhlYWRlcnMgY2hh
bmdlZCIpOwogICAgIH0sCkBAIC00NjgsNiArNDc3LDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJWYWx1ZSh0aGlzLnJl
c3BvbnNlSGVhZGVycywgaGVhZGVyTmFtZSk7CiAgICAgfSwKIAorICAgIGdldCByZXNwb25zZUNv
b2tpZXMoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9yZXNwb25zZUNvb2tpZXMpCisgICAg
ICAgICAgICB0aGlzLl9yZXNwb25zZUNvb2tpZXMgPSBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2Vy
LnBhcnNlU2V0Q29va2llKHRoaXMucmVzcG9uc2VIZWFkZXJWYWx1ZSgiU2V0LUNvb2tpZSIpKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlQ29va2llczsKKyAgICB9LAorCiAgICAgZ2V0
IHF1ZXJ5UGFyYW1ldGVycygpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcGFyc2VkUXVlcnlQ
YXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktp
dC5xcmMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCAxMTM4
MmNkLi5mODlkMTczIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2Vi
S2l0LnFyYworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAt
MjAsNiArMjAsNyBAQAogICAgIDxmaWxlPkNvbnNvbGVWaWV3LmpzPC9maWxlPgogICAgIDxmaWxl
PkNvbnRleHRNZW51LmpzPC9maWxlPgogICAgIDxmaWxlPkNvb2tpZUl0ZW1zVmlldy5qczwvZmls
ZT4KKyAgICA8ZmlsZT5Db29raWVQYXJzZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q1NTQ29tcGxl
dGlvbnMuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q1NTU3R5bGVNb2RlbC5qczwvZmlsZT4KICAgICA8
ZmlsZT5EYXRhYmFzZS5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuaHRtbAppbmRleCA5NDliMThmLi44MDMwZTg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC0xNDMsNiArMTQzLDcgQEAgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJHb1RvTGluZURpYWxvZy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2hvcnRj
dXRzSGVscC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iSEFSRW50cnkuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkNvb2tpZVBhcnNlci5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBj
bGFzcz0iZGV0YWNoZWQiPgogICAgIDxkaXYgaWQ9InRvb2xiYXIiPgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MDI4YmZlYy4uYWIwN2U4YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAt
MTkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2Ug
cmVxdWVzdC9yZXNwb25zZSBjb29raWVzIGluIEhBUgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4OTQKKworICAgICAgICAqIHNyYy9XZWJSZXNvdXJj
ZVJhd0hlYWRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjphZGRIZWFkZXIpOiBwYXN0ZSBjb2Fs
ZXNjZW50IGhlYWRlcnMgdXNpbmcgXG4gYXMgYSBzZXBhcmF0b3IgaW5zdGVhZCBvZiAiLCAiCisK
IDIwMTAtMTAtMTcgIFBhc2NhbCBNYXNzaW1pbm8gIDxwYXNjYWwubWFzc2ltaW5vQGdtYWlsLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwCmluZGV4IGI1OTdjZTIuLjI1OTM2NWUgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJlc291cmNlUmF3SGVhZGVycy5jcHAKQEAgLTY5
LDcgKzY5LDcgQEAgc3RhdGljIHZvaWQgYWRkSGVhZGVyKEhUVFBIZWFkZXJNYXAqIG1hcCwgY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcKIHsKICAgICBwYWlyPEhUVFBIZWFk
ZXJNYXA6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtYXAtPmFkZChuYW1lLCB2YWx1ZSk7CiAg
ICAgaWYgKCFyZXN1bHQuc2Vjb25kKQotICAgICAgICByZXN1bHQuZmlyc3QtPnNlY29uZCArPSBT
dHJpbmcoIiwgIikgKyB2YWx1ZTsKKyAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgKz0gU3Ry
aW5nKCJcbiIpICsgdmFsdWU7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjphZGRS
ZXF1ZXN0SGVhZGVyKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1
ZSkK
</data>
<flag name="review"
          id="61172"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>