<?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>161902</bug_id>
          
          <creation_ts>2016-09-13 04:06:47 -0700</creation_ts>
          <short_desc>[Fetch API] Referrer and Origin header should not be considered as safe request headers</short_desc>
          <delta_ts>2016-09-16 00:36:02 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>151937</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229127</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-13 04:06:47 -0700</bug_when>
    <thetext>As stated in https://fetch.spec.whatwg.org/#cors-safelisted-request-header, Referrer and Origin are not safe request headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229129</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-13 04:07:20 -0700</bug_when>
    <thetext>As per fetch, these headers are set after preflighting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229148</commentid>
    <comment_count>2</comment_count>
      <attachid>288688</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-13 05:26:41 -0700</bug_when>
    <thetext>Created attachment 288688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229203</commentid>
    <comment_count>3</comment_count>
      <attachid>288688</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-13 10:54:23 -0700</bug_when>
    <thetext>Comment on attachment 288688
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchLoader.cpp:96
&gt; +    if (referrer == &quot;no-referrer&quot;) {

Should this be a case-insensitive comparison?

&gt; Source/WebCore/Modules/fetch/FetchLoader.cpp:100
&gt; +        referrer = (referrer == &quot;client&quot;) ? context.url().strippedForUseAsReferrer() : URL(context.url(), referrer).strippedForUseAsReferrer();

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229228</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-13 11:30:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 288688 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=288688&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchLoader.cpp:96
&gt; &gt; +    if (referrer == &quot;no-referrer&quot;) {
&gt; 
&gt; Should this be a case-insensitive comparison?

This is not necessary.

&gt; &gt; Source/WebCore/Modules/fetch/FetchLoader.cpp:100
&gt; &gt; +        referrer = (referrer == &quot;client&quot;) ? context.url().strippedForUseAsReferrer() : URL(context.url(), referrer).strippedForUseAsReferrer();
&gt; 
&gt; ditto

This is not necessary either.

&quot;client&quot; is a string computed within FetchRequest when given parameter is about:client or ABOUT:client. We could add a test for different &quot;about&quot; casing, but this is not related to this patch.

In another patch, as a small improvement, we could make fetch referrer as a structure instead of a string. That would allow to remove the need for string comparison.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230330</commentid>
    <comment_count>5</comment_count>
      <attachid>288688</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 00:35:53 -0700</bug_when>
    <thetext>Comment on attachment 288688
Patch

Clearing flags on attachment: 288688

Committed r206009: &lt;http://trac.webkit.org/changeset/206009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230331</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 00:36:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288688</attachid>
            <date>2016-09-13 05:26:41 -0700</date>
            <delta_ts>2016-09-16 00:35:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161902-20160913142406.patch</filename>
            <type>text/plain</type>
            <size>27050</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1ODU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmNmJjNmJlNzk4NTkw
NWZkODdjNzMyMDAyNjRiNTdjOWJhM2IzMy4uYWY4MjUzNDQ2MDI4ZGIxN2E0MDM0ZmZmOGZmYzU5
NjAyMzhlNWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTA5LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbRmV0Y2ggQVBJXSBSZWZl
cnJlciBhbmQgT3JpZ2luIGhlYWRlciBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYXMgc2FmZSBy
ZXF1ZXN0IGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MTkwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtY29ycy13aXRoLXJlZmVycmVyLmh0
bWwgYW5kIHVwZGF0ZWQgV1BUIHRlc3RzLgorCisgICAgICAgIFJlbW92aW5nIE9yaWdpbiBhbmQg
UmVmZXJyZXIgZnJvbSBzYWZlIHJlcXVlc3QgaGVhZGVycy4KKyAgICAgICAgTWFraW5nIHJlZmVy
cmVyIGhlYWRlciBzZXR0aW5nIGFmdGVyIHByZWZsaWdodCBmb3IgZmV0Y2ggQVBJIGNvZGUgcGF0
aC4KKworICAgICAgICBFbnN1cmluZyB0aGF0IG5vIFRocmVhZGFibGVMb2FkZXIgY2xpZW50IHNl
dHMgT3JpZ2luIG9yIFJlZmVycmVyIGhlYWRlcnMgb2YgdGhlIFJlc291cmNlUmVxdWVzdCwgYXMg
dGhleSBzaG91bGQgdXNlIHRoZSBwcm9wZXIgbWVjaGFuaXNtcyBmb3IgdGhhdC4KKworICAgICAg
ICBIYW5kbGluZyBuby1yZWZlcnJlciByZWZlcnJlciBzcGVjaWFsIHZhbHVlIGJ5IHNldHRpbmcg
dGhlIHJlZmVycmVyLXBvbGljeSB0byBOb1JlZmVycmVyIGluIEZldGNoTG9hZGVyLgorCisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
ZXRjaExvYWRlcjo6c3RhcnQpOiBDb21wdXRpbmcgcmVmZXJyZXIgdmFsdWUgYW5kIGhhbmRsaW5n
IHNwZWNpYWwgImNsaWVudCJhbmQgIm5vLXJlZmVycmVyIiBjYXNlcy4KKyAgICAgICAgUGFzc2lu
ZyB0aGUgdmFsdWUgZGlyZWN0bHkgdG8gVGhyZWFkYWJsZUxvYWRlci4KKyAgICAgICAgKiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVl
c3Q6OmludGVybmFsUmVxdWVzdCk6IFJlbW92aW5nIHNldHRpbmcgb2YgUmVzb3VyY2VSZXF1ZXN0
IHJlZmVycmVyIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y2xvbmUp
OiBSZW1vdmluZyBvYnNvbGV0ZSBGSVhNRS4KKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNo
UmVxdWVzdC5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6aXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVy
V2hpdGVsaXN0KTogUmVtb3ZpbmcgT3JpZ2luIGFuZCBSZWZlcnJlciBoZWFkZXJzLgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOiBVcGRhdGVkIHRvIHRha2UgYSBy
ZWZlcnJlciBhcyBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcik6IERpdHRvLgorICAgICAgICAqIGxv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaDogRGl0dG8uCisgICAgICAgICogbG9hZGVy
L1RocmVhZGFibGVMb2FkZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmg6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNw
cDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJl
YWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KTogRGl0dG8uCisgICAgICAg
ICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaDogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aGFzSFRUUFJlZmVycmVyKTogQWRkZWQgdG8gZW5hYmxl
IGFzc2VydGluZyB0aGF0IG5vIHRocmVhZGFibGUgbG9hZGVyIGNsaWVudCBzZXRzIHRoZSByZWZl
cnJlciBpbiB0aGUgcmVxdWVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuaDoKKwogMjAxNi0wOS0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gV2FybmluZyBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IGY2NmIyOTIxYjI1NTFkMjUzMDdh
ZTQzOWZjOTZkMDRmYTQ3YjBmODUuLmQyZTNjYjhkZjU3YjUxYTM5Y2Q5MzljZTc0YWU2MmZkMTk5
NzQzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3Bw
CkBAIC05Miw3ICs5MiwxNCBAQCB2b2lkIEZldGNoTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJlcQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoY29u
dGV4dCwgKnRoaXMsIFdURk1vdmUoZmV0Y2hSZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgU3RyaW5n
IHJlZmVycmVyID0gcmVxdWVzdC5pbnRlcm5hbFJlcXVlc3RSZWZlcnJlcigpOworICAgIGlmIChy
ZWZlcnJlciA9PSAibm8tcmVmZXJyZXIiKSB7CisgICAgICAgIG9wdGlvbnMucmVmZXJyZXJQb2xp
Y3kgPSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOworICAgICAgICBy
ZWZlcnJlciA9IFN0cmluZygpOworICAgIH0gZWxzZQorICAgICAgICByZWZlcnJlciA9IChyZWZl
cnJlciA9PSAiY2xpZW50IikgPyBjb250ZXh0LnVybCgpLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJl
cigpIDogVVJMKGNvbnRleHQudXJsKCksIHJlZmVycmVyKS5zdHJpcHBlZEZvclVzZUFzUmVmZXJy
ZXIoKTsKKworICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKGNvbnRleHQs
ICp0aGlzLCBXVEZNb3ZlKGZldGNoUmVxdWVzdCksIG9wdGlvbnMsIFdURk1vdmUocmVmZXJyZXIp
KTsKICAgICBtX2lzU3RhcnRlZCA9IG1fbG9hZGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKaW5kZXggOGY0MGE4MzBiMTNmZTlkMWY0MDk5
ZTY4NmNjYTMwNmYxMjcxODJlZS4uOWVkMjU5MTFhYzFjOTcyYmRjZDZmMTgyMTdlZjQ2MjU3YjI0
NWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNw
cApAQCAtMzA0LDEwICszMDQsNiBAQCBSZXNvdXJjZVJlcXVlc3QgRmV0Y2hSZXF1ZXN0OjppbnRl
cm5hbFJlcXVlc3QoKSBjb25zdAogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkcyhtX2hl
YWRlcnMtPmludGVybmFsSGVhZGVycygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KGJvZHko
KS5ib2R5Rm9ySW50ZXJuYWxSZXF1ZXN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKTsKIAot
ICAgIC8vIEZJWE1FOiBTdXBwb3J0IG5vLXJlZmVycmVyIGFuZCBjbGllbnQuIEVuc3VyZSB0aGlz
IGNhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaXMgb2suCi0gICAgaWYgKG1faW50ZXJuYWxSZXF1
ZXN0LnJlZmVycmVyICE9ICJuby1yZWZlcnJlciIgJiYgbV9pbnRlcm5hbFJlcXVlc3QucmVmZXJy
ZXIgIT0gImNsaWVudCIpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKFVSTChVUkwo
KSwgbV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIpLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigp
KTsKLQogICAgIHJldHVybiByZXF1ZXN0OwogfQogCkBAIC0zMTgsNyArMzE0LDYgQEAgUmVmUHRy
PEZldGNoUmVxdWVzdD4gRmV0Y2hSZXF1ZXN0OjpjbG9uZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBFeGNlcHQKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
Ly8gRklYTUU6IFZhbGlkYXRlIGJvZHkgdGVlaW5nLgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZldGNoUmVxdWVzdChjb250ZXh0LCBGZXRjaEJvZHkobV9ib2R5KSwgRmV0Y2hIZWFkZXJzOjpj
cmVhdGUobV9oZWFkZXJzLmdldCgpKSwgRmV0Y2hSZXF1ZXN0OjpJbnRlcm5hbFJlcXVlc3QobV9p
bnRlcm5hbFJlcXVlc3QpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoUmVxdWVzdC5oCmluZGV4IDkxN2Q5ZGY4OWRiYzQwZmU4YWFhZDhkMDRjYWUwYjg3YjA5ODgw
NjMuLjM2YjIyNjY4MGE5NWRkMDExNGM2ODYwMGViYjZhZmFhMjRjMTc5ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaApAQCAtOTIsNiArOTIsOCBAQCBw
dWJsaWM6CiAgICAgY29uc3QgRmV0Y2hPcHRpb25zJiBmZXRjaE9wdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zOyB9CiAgICAgUmVzb3VyY2VSZXF1ZXN0IGlu
dGVybmFsUmVxdWVzdCgpIGNvbnN0OwogCisgICAgY29uc3QgU3RyaW5nJiBpbnRlcm5hbFJlcXVl
c3RSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0LnJlZmVycmVyOyB9
CisKIHByaXZhdGU6CiAgICAgRmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBG
ZXRjaEJvZHkmJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgSW50ZXJuYWxSZXF1ZXN0JiYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
CmluZGV4IDMwNWE4NjE1OGY0Y2RhNjkyZmUwMGMwMGJlNGU0OGJiZDZiODIxMTkuLmFhYzVjNGE0
NDU5ZWQ0NjczNTdmM2U4YjhhMTU4NDg3YzQ3YjNkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC01MSw4ICs1MSw2IEBA
IGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KEhUVFBI
ZWFkZXJOYW1lIG5hbWUsIGNvbnN0IFN0CiAgICAgY2FzZSBIVFRQSGVhZGVyTmFtZTo6QWNjZXB0
OgogICAgIGNhc2UgSFRUUEhlYWRlck5hbWU6OkFjY2VwdExhbmd1YWdlOgogICAgIGNhc2UgSFRU
UEhlYWRlck5hbWU6OkNvbnRlbnRMYW5ndWFnZToKLSAgICBjYXNlIEhUVFBIZWFkZXJOYW1lOjpP
cmlnaW46Ci0gICAgY2FzZSBIVFRQSGVhZGVyTmFtZTo6UmVmZXJlcjoKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgY2FzZSBIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGU6IHsKICAgICAgICAg
Ly8gUHJlZmxpZ2h0IGlzIHJlcXVpcmVkIGZvciBNSU1FIHR5cGVzIHRoYXQgY2FuIG5vdCBiZSBz
ZW50IHZpYSBmb3JtIHN1Ym1pc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IGVlZDRiZTQ3YmE3YTdjN2U5ZWQzNzBk
MmJiNTU5MzU1NDk1YTJmNzcuLmFlNTUyMzkzNTYyMmU0OTI5ZTE4MmU5ODdiNThhMDAzZDMwODlh
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCkBAIC03Niw5ICs3Niw5IEBAIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1CiAgICAg
cmV0dXJuIGxvYWRlcjsKIH0KIAotUmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0
IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorUmVmUHRyPERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcj4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcm
JiByZWZlcnJlcikKIHsKLSAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50LCBjbGllbnQsIFdURk1v
dmUocmVxdWVzdCksIG9wdGlvbnMsIG51bGxwdHIsIG51bGxwdHIsIFN0cmluZygpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlKGRvY3VtZW50LCBjbGllbnQsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMs
IG51bGxwdHIsIG51bGxwdHIsIFdURk1vdmUocmVmZXJyZXIpKTsKIH0KIAogRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50
LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIEJsb2NraW5nQmVoYXZpb3IgYmxvY2tp
bmdCZWhhdmlvciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxv
YWRlck9wdGlvbnMmIG9wdGlvbnMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4sIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+JiYgY29udGVudFNlY3VyaXR5UG9s
aWN5LCBTdHJpbmcmJiByZWZlcnJlcikKQEAgLTkyLDggKzkyLDExIEBAIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
VGhyZWFkYWJsCiAgICAgLCBtX2FzeW5jKGJsb2NraW5nQmVoYXZpb3IgPT0gTG9hZEFzeW5jaHJv
bm91c2x5KQogICAgICwgbV9jb250ZW50U2VjdXJpdHlQb2xpY3koV1RGTW92ZShjb250ZW50U2Vj
dXJpdHlQb2xpY3kpKQogewotICAgIC8vIFNldHRpbmcgYW4gb3V0Z29pbmcgcmVmZXJlciBpcyBv
bmx5IHN1cHBvcnRlZCBpbiB0aGUgYXN5bmMgY29kZSBwYXRoLgotICAgIEFTU0VSVChtX2FzeW5j
IHx8IHJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNFbXB0eSgpKTsKKyAgICAvLyBTZXR0aW5nIGEg
cmVmZXJyZXIgaGVhZGVyIGlzIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBhc3luYyBjb2RlIHBhdGgu
CisgICAgQVNTRVJUKG1fYXN5bmMgfHwgbV9yZWZlcnJlci5pc0VtcHR5KCkpOworCisgICAgLy8g
UmVmZXJyZXIgYW5kIE9yaWdpbiBoZWFkZXJzIHNob3VsZCBiZSBzZXQgYWZ0ZXIgdGhlIHByZWZs
aWdodCBpZiBhbnkuCisgICAgQVNTRVJUKCFyZXF1ZXN0Lmhhc0hUVFBSZWZlcnJlcigpICYmICFy
ZXF1ZXN0Lmhhc0hUVFBPcmlnaW4oKSk7CiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihpc0FsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShyZXF1ZXN0LnVybCgpKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIu
aAppbmRleCA4YTc4NGE1Zjk5ZGE3MTAzMTQ4YTEzY2Q2NzRkM2JkNWRlMmFjYzQ1Li43ODhmNTJj
MmE5MTNiMjU0YzI1YTg0YzQyOTQ4MjA1NGZjYjE0MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCkBAIC00OSw3ICs0OSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hy
b25vdXNseShEb2N1bWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmKTsKIAogICAgICAgICBzdGF0aWMg
UmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50JiwgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyYsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiwgc3RkOjp1bmlxdWVfcHRyPENv
bnRlbnRTZWN1cml0eVBvbGljeT4mJiwgU3RyaW5nJiYgcmVmZXJyZXIpOwotICAgICAgICBzdGF0
aWMgUmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50JiwgVGhy
ZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPERvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJl
ZmVycmVyID0gU3RyaW5nKCkpOwogCiAgICAgICAgIHZpcnR1YWwgfkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJs
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAK
aW5kZXggNWEyNmRlYTZlZDY0YTcyM2FiY2U4ZWRjMDIyNDJjNzBhMjE2Y2M2MC4uMTRjMjlmOTYy
MjdkZjg4NzkwMTE2YjdmYjRhZWE4NGY3NWJhYTQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNTksMTIgKzU5LDEyIEBAIFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zOjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIGJhCiB7CiB9CiAKLVJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9h
ZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGhyZWFkYWJsZUxv
YWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBUaHJl
YWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK1JlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBU
aHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJy
ZXIpCiB7CiAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkKLSAgICAgICAg
cmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSwg
V1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUoZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLCBj
bGllbnQsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9w
dGlvbnMsIHJlZmVycmVyKTsKIAotICAgIHJldHVybiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCwgV1RGTW92ZShyZXF1
ZXN0KSwgb3B0aW9ucyk7CisgICAgcmV0dXJuIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y3Jl
YXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBvcHRpb25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7CiB9CiAKIHZvaWQgVGhyZWFkYWJsZUxvYWRl
cjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggM2E1MjQ2ZWQ4NDY1YzkxOThhNTdm
NTVmOWEyOWFhNmNiMmUxMzhlZC4uNGFkMzc5YjQ1NmQ4ZGE1NjZmZWZkZTU3MzVkYjFmYzg0YTY1
NTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC04MCw3
ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVGhyZWFkYWJsZUxvYWRlcik7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBs
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zJik7Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJik7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0
IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYgcmVmZXJyZXIgPSBTdHJpbmcoKSk7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKICAgICAgICAgdm9pZCByZWYo
KSB7IHJlZlRocmVhZGFibGVMb2FkZXIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDAzMTk3NzBmOTJjZjgzYWViODkxYTM2
ODMyOTk0MDgwZGFkNGE3ZDcuLjdjM2VlOTA4NmRkM2ZkYzlhM2Q1NjAzODllNTUxNjlhZmExZDkx
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRl
ci5jcHAKQEAgLTUwLDEwICs1MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBj
b25zdCBjaGFyIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHlNb2RlW10gPSAibG9hZFJlc291cmNl
U3luY2hyb25vdXNseU1vZGUiOwogCi1Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpXb3JrZXJUaHJl
YWRhYmxlTG9hZGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9u
cykKK1dvcmtlclRocmVhZGFibGVMb2FkZXI6OldvcmtlclRocmVhZGFibGVMb2FkZXIoV29ya2Vy
R2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyKQogICAgIDogbV93b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKICAg
ICAsIG1fd29ya2VyQ2xpZW50V3JhcHBlcihUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcjo6
Y3JlYXRlKGNsaWVudCkpCi0gICAgLCBtX2JyaWRnZSgqbmV3IE1haW5UaHJlYWRCcmlkZ2UobV93
b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpLCB3b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLCB0YXNrTW9kZSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgd29y
a2VyR2xvYmFsU2NvcGUudXJsKCkuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCksIHdvcmtlckds
b2JhbFNjb3BlLnNlY3VyaXR5T3JpZ2luKCksIHdvcmtlckdsb2JhbFNjb3BlLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpKSkKKyAgICAsIG1fYnJpZGdlKCpuZXcgTWFpblRocmVhZEJyaWRnZShtX3dv
cmtlckNsaWVudFdyYXBwZXIuZ2V0KCksIHdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtl
ckxvYWRlclByb3h5KCksIHRhc2tNb2RlLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCByZWZl
cnJlci5pc0VtcHR5KCkgPyB3b3JrZXJHbG9iYWxTY29wZS51cmwoKS5zdHJpcHBlZEZvclVzZUFz
UmVmZXJyZXIoKSA6IHJlZmVycmVyLCB3b3JrZXJHbG9iYWxTY29wZS5zZWN1cml0eU9yaWdpbigp
LCB3b3JrZXJHbG9iYWxTY29wZS5jb250ZW50U2VjdXJpdHlQb2xpY3koKSkpCiB7CiB9CiAKQEAg
LTcwLDcgKzcwLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXIKICAgICBTdHJpbmcgbW9kZSA9
IGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHlNb2RlOwogICAgIG1vZGUuYXBwZW5kKFN0cmluZzo6
bnVtYmVyKHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSkpOwogCi0gICAgUmVmUHRyPFdvcmtlclRo
cmVhZGFibGVMb2FkZXI+IGxvYWRlciA9IFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSh3
b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCBtb2RlLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25z
KTsKKyAgICBSZWZQdHI8V29ya2VyVGhyZWFkYWJsZUxvYWRlcj4gbG9hZGVyID0gV29ya2VyVGhy
ZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUsIFdU
Rk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFN0cmluZygpKTsKICAgICBNZXNzYWdlUXVldWVXYWl0
UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKICAgICB3aGlsZSAo
IWxvYWRlci0+ZG9uZSgpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQogICAg
ICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZSgmd29ya2VyR2xvYmFsU2NvcGUsIG1vZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmgKaW5k
ZXggYjg4MjMyYjllYWMwMTYzNmQzMmI1Y2RlZWQ0YThkNzMyNWVlMzRmNS4uZTUxYzQ0NDNiMTE1
ODdlZWMxYjY5ZDc5NTRmOWRiNjhkMjZkOGFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oCkBAIC01MCw5ICs1MCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgog
ICAgICAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdvcmtlckdsb2Jh
bFNjb3BlJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25z
dCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYpOwotICAgICAgICBzdGF0aWMgUmVmPFdvcmtlclRo
cmVhZGFibGVMb2FkZXI+IGNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2Nv
cGUsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9k
ZSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMmIG9wdGlvbnMpCisgICAgICAgIHN0YXRpYyBSZWY8V29ya2VyVGhyZWFkYWJsZUxvYWRlcj4g
Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgVGhyZWFkYWJsZUxv
YWRlckNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgY29u
c3QgU3RyaW5nJiByZWZlcnJlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZUxvYWRlcih3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50
LCB0YXNrTW9kZSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucykpOworICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZUxvYWRlcih3b3JrZXJHbG9iYWxTY29w
ZSwgY2xpZW50LCB0YXNrTW9kZSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgcmVmZXJyZXIp
KTsKICAgICAgICAgfQogCiAgICAgICAgIH5Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyKCk7CkBAIC0x
MjAsNyArMTIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgU3RyaW5nIG1f
dGFza01vZGU7CiAgICAgICAgIH07CiAKLSAgICAgICAgV29ya2VyVGhyZWFkYWJsZUxvYWRlcihX
b3JrZXJHbG9iYWxTY29wZSYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBTdHJpbmcm
IHRhc2tNb2RlLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMmKTsKKyAgICAgICAgV29ya2VyVGhyZWFkYWJsZUxvYWRlcihXb3JrZXJHbG9iYWxTY29wZSYs
IFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKTsKIAogICAgICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xv
YmFsU2NvcGU7CiAgICAgICAgIFJlZjxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlcj4gbV93
b3JrZXJDbGllbnRXcmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMTc0OTYzZTE4ODc3NjQzM2Qz
ZGM5OWQ4MGY0NWRiOTljMTMzM2MxZi4uOTU3ZDI4YzYwOTNmY2FlMDBlNzE5YTM3MzU2YWMwYWNj
NDNkOTgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0yODgsNiArMjg4LDExIEBAIFN0cmluZyBSZXNv
dXJjZVJlcXVlc3RCYXNlOjpodHRwUmVmZXJyZXIoKSBjb25zdAogICAgIHJldHVybiBodHRwSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVyZXIpOwogfQogCitib29sIFJlc291cmNlUmVx
dWVzdEJhc2U6Omhhc0hUVFBSZWZlcnJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faHR0cEhl
YWRlckZpZWxkcy5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6UmVmZXJlcik7Cit9CisKIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0SFRUUFJlZmVycmVyKGNvbnN0IFN0cmluZyYgaHR0cFJl
ZmVycmVyKQogewogICAgIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJl
ciwgaHR0cFJlZmVycmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXggNmZmNmYwYzZiMmYzODE4ZmI2MmQzZjYz
YjIyNzU0NGY1NzU3MmMzOS4uNzFmOTU1MDc3YWY2NzU2MmYwNjE3ZWU3MjZjMGFhNDMzMGU4NWFm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
cXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJI
VFRQQ29udGVudFR5cGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBodHRwUmVmZXJy
ZXIoKSBjb25zdDsKKyAgICBib29sIGhhc0hUVFBSZWZlcnJlcigpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0SFRUUFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXJIVFRQUmVmZXJyZXIoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzNDcyNTE2YmU5
MzQxZjc3ZmU2MjEzMWIyNTIzZjJhYTY2MzliMTYuLmUwZmE1NzRhMmRmYTdhN2QwNmE3ZjcxNDBh
ZTY3MWE0MTQ0OWFmNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0xMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gUmVmZXJy
ZXIgYW5kIE9yaWdpbiBoZWFkZXIgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGFzIHNhZmUgcmVx
dWVzdCBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjE5MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtY29ycy13aXRoLXJlZmVycmVyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1jb3JzLXdpdGgt
cmVmZXJyZXIuaHRtbDogQWRkZWQuCisKIDIwMTYtMDktMTMgIFNrYWNoa292IE9sZWtzYW5kciAg
PGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAgRVM2OiBDbGFzc2VzOiBTaG91bGQgYmUg
YWxsb3dlZCB0byBjcmVhdGUgYSBzdGF0aWMgbWV0aG9kIHdpdGggbmFtZSAiYXJndW1lbnRzIgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMmU1YjgxYjUwOTA1YzAwNDhiYWI4Yjc3
NzY5NTNhZmUyYjk0MTYzNy4uYzY0MTU1YjEzN2YzNDQ2ODliMDBmYTI5MTZkNDVhZjNkMmYxODE0
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYt
MDktMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFtGZXRj
aCBBUEldIFJlZmVycmVyIGFuZCBPcmlnaW4gaGVhZGVyIHNob3VsZCBub3QgYmUgY29uc2lkZXJl
ZCBhcyBzYWZlIHJlcXVlc3QgaGVhZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxOTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29y
cy1wcmVmbGlnaHQtcmVmZXJyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWZlcnJlci13b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9j
b3JzLXByZWZsaWdodC1yZWZlcnJlci5qczoKKyAgICAgICAgKGNvcnNQcmVmbGlnaHRSZWZlcnJl
cik6IEFkZGluZyBjaGVjayBvZiB0aGUgcHJlZmxpZ2h0IEFjY2Vzcy1Db250cm9sLVJlcXVlc3Qt
SGVhZGVycyBoZWFkZXIgdmFsdWUuCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0byBjaGVjayBm
b3Igbm9uLWRlZmF1bHQgcmVmZXJyZXIgdmFsdWVzLgorCiAyMDE2LTA5LTExICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSFRNTFRyYWNrRWxlbWVudC5raW5kJ3Mg
aW52YWxpZCB2YWx1ZSBkZWZhdWx0IHNob3VsZCBiZSB0aGUgbWV0YWRhdGEgc3RhdGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtY29ycy13aXRoLXJlZmVy
cmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvZmV0Y2gtY29y
cy13aXRoLXJlZmVycmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTVmNjhmOTE1YWY4OTdl
NDQxY2Q5NzYwNTM4YWUyNDBjYjA1MGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1jb3JzLXdpdGgtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIEVuc3VyZSBzZXR0aW5nIGEgcmVmZXJyZXIgZG9lcyBub3Qg
Y2F1c2UgcHJlZmxpZ2h0aW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2ZldGNoL2ZldGNoLWNvcnMtd2l0aC1yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9mZXRjaC9mZXRjaC1jb3JzLXdpdGgtcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmI2
ODVhZjhiZjJiODMwNjVlNmQyZTBjNDRiOWU5MjJkYjM0YmM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9mZXRjaC1jb3JzLXdpdGgtcmVmZXJyZXIuaHRt
bApAQCAtMCwwICsxLDIyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkZldGNoaW5nIGEgY3Jvc3Mgb3Jp
Z2luIHJlc291cmNlIHdpdGggYSBnaXZlbiByZWZlcnJlcjwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2
YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvZG93bmxvYWQtanNvbi13
aXRoLWRlbGF5LnBocD9pdGVyYXRpb249MSZkZWxheT0xJmNvcnM9dHJ1ZSI7CisgICAgcmV0dXJu
IGZldGNoKHVybCwgeyJtb2RlIjogImNvcnMiLCAicmVmZXJyZXIiOiAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3JlZmVycmVyIn0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMocmVzcG9uc2UudHlwZSwgImNvcnMiKTsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmFy
cmF5QnVmZmVyKCkudGhlbigoYXJyYXlCdWZmZXIpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF90
cnVlKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGggPiAwKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
LCAnRW5zdXJlIHNldHRpbmcgYSByZWZlcnJlciBkb2VzIG5vdCBjYXVzZSBwcmVmbGlnaHRpbmcn
KTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LXByZWZsaWdodC1yZWZlcnJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVy
cmVyLWV4cGVjdGVkLnR4dAppbmRleCBkZTEwZWYyOTY0YjI5NDJhNGYxZGQ4NzY1MDYwNjgyMzU3
M2NkMmFjLi4wMWU4YzI0MDdjZjc4NmNmODMxN2QyZmE2MDNjOTdlNDIwZDNlNTFlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMt
cHJlZmxpZ2h0LXJlZmVycmVyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDEyIEBACiAKLVBBU1Mg
UmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciAKLVBBU1MgUmVmZXJyZXIgcG9saWN5OiAiIiAK
LVBBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4gCi1QQVNTIFJlZmVycmVyIHBvbGljeTogb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIAotUEFTUyBSZWZlcnJlciBwb2xpY3k6IHVuc2FmZS11cmwg
CitQQVNTIFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgKCdteXJlZmVycmVyJyByZWZlcnJl
cikgCitQQVNTIFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgKGRlZmF1bHQgcmVmZXJyZXIp
IAorUEFTUyBSZWZlcnJlciBwb2xpY3k6ICIiICgnbXlyZWZlcnJlcicgcmVmZXJyZXIpIAorUEFT
UyBSZWZlcnJlciBwb2xpY3k6ICIiIChkZWZhdWx0IHJlZmVycmVyKSAKK1BBU1MgUmVmZXJyZXIg
cG9saWN5OiBvcmlnaW4gKCdteXJlZmVycmVyJyByZWZlcnJlcikgCitQQVNTIFJlZmVycmVyIHBv
bGljeTogb3JpZ2luIChkZWZhdWx0IHJlZmVycmVyKSAKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBv
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gKCdteXJlZmVycmVyJyByZWZlcnJlcikgCitQQVNTIFJl
ZmVycmVyIHBvbGljeTogb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIChkZWZhdWx0IHJlZmVycmVy
KSAKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiB1bnNhZmUtdXJsICgnbXlyZWZlcnJlcicgcmVmZXJy
ZXIpIAorUEFTUyBSZWZlcnJlciBwb2xpY3k6IHVuc2FmZS11cmwgKGRlZmF1bHQgcmVmZXJyZXIp
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggZGUxMGVmMjk2NGIyOTQyYTRmMWRkODc2NTA2MDY4MjM1NzNjZDJhYy4uMDFlOGMyNDA3Y2Y3
ODZjZjgzMTdkMmZhNjAzYzk3ZTQyMGQzZTUxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdo
dC1yZWZlcnJlci13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVm
ZXJyZXItd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDEyIEBACiAKLVBBU1MgUmVmZXJy
ZXIgcG9saWN5OiBuby1yZWZlcnJlciAKLVBBU1MgUmVmZXJyZXIgcG9saWN5OiAiIiAKLVBBU1Mg
UmVmZXJyZXIgcG9saWN5OiBvcmlnaW4gCi1QQVNTIFJlZmVycmVyIHBvbGljeTogb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luIAotUEFTUyBSZWZlcnJlciBwb2xpY3k6IHVuc2FmZS11cmwgCitQQVNT
IFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgKCdteXJlZmVycmVyJyByZWZlcnJlcikgCitQ
QVNTIFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgKGRlZmF1bHQgcmVmZXJyZXIpIAorUEFT
UyBSZWZlcnJlciBwb2xpY3k6ICIiICgnbXlyZWZlcnJlcicgcmVmZXJyZXIpIAorUEFTUyBSZWZl
cnJlciBwb2xpY3k6ICIiIChkZWZhdWx0IHJlZmVycmVyKSAKK1BBU1MgUmVmZXJyZXIgcG9saWN5
OiBvcmlnaW4gKCdteXJlZmVycmVyJyByZWZlcnJlcikgCitQQVNTIFJlZmVycmVyIHBvbGljeTog
b3JpZ2luIChkZWZhdWx0IHJlZmVycmVyKSAKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gKCdteXJlZmVycmVyJyByZWZlcnJlcikgCitQQVNTIFJlZmVycmVy
IHBvbGljeTogb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIChkZWZhdWx0IHJlZmVycmVyKSAKK1BB
U1MgUmVmZXJyZXIgcG9saWN5OiB1bnNhZmUtdXJsICgnbXlyZWZlcnJlcicgcmVmZXJyZXIpIAor
UEFTUyBSZWZlcnJlciBwb2xpY3k6IHVuc2FmZS11cmwgKGRlZmF1bHQgcmVmZXJyZXIpIAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdo
dC1yZWZlcnJlci5qcwppbmRleCAxMDM5ZmNkMTM1MTZhYTExMWI0MGM5YzJmNDhjM2I2M2JjZTA3
ZmZmLi5iOTM3ODY3YjkzNDEwNmZhNTM0ODlkOTYzMWFmMDJhNjE3ZWEyODg3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVm
ZXJyZXIuanMKQEAgLTUsMTIgKzUsMTUgQEAgaWYgKHRoaXMuZG9jdW1lbnQgPT09IHVuZGVmaW5l
ZCkgewogICBpbXBvcnRTY3JpcHRzKCIuLi9yZXNvdXJjZXMvdXRpbHMuanMiKTsKIH0KIAotZnVu
Y3Rpb24gY29yc1ByZWZsaWdodFJlZmVycmVyKGRlc2MsIGNvcnNVcmwsIHJlZmVycmVyUG9saWN5
LCBleHBlY3RlZFJlZmVycmVyKSB7CitmdW5jdGlvbiBjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoZGVz
YywgY29yc1VybCwgcmVmZXJyZXJQb2xpY3ksIHJlZmVycmVyLCBleHBlY3RlZFJlZmVycmVyKSB7
CiAgIHZhciB1dWlkX3Rva2VuID0gdG9rZW4oKTsKICAgdmFyIHVybCA9IGNvcnNVcmw7CiAgIHZh
ciB1cmxQYXJhbWV0ZXJzID0gIj90b2tlbj0iICsgdXVpZF90b2tlbiArICImbWF4X2FnZT0wIjsK
ICAgdmFyIHJlcXVlc3RJbml0ID0geyJtb2RlIjogImNvcnMiLCAicmVmZXJyZXJQb2xpY3kiOiBy
ZWZlcnJlclBvbGljeX07CiAKKyAgaWYgKHJlZmVycmVyKQorICAgICAgcmVxdWVzdEluaXQucmVm
ZXJyZXIgPSByZWZlcnJlcjsKKwogICAvKiBGb3JjZSBwcmVmbGlnaHQgKi8KICAgcmVxdWVzdElu
aXRbImhlYWRlcnMiXSA9IHsieC1mb3JjZS1wcmVmbGlnaHQiOiAiIn07CiAgIHVybFBhcmFtZXRl
cnMgKz0gIiZhbGxvd19oZWFkZXJzPXgtZm9yY2UtcHJlZmxpZ2h0IjsKQEAgLTIzLDE5ICsyNiwy
NyBAQCBmdW5jdGlvbiBjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoZGVzYywgY29yc1VybCwgcmVmZXJy
ZXJQb2xpY3ksIGV4cGVjdGVkUmVmZXJyZXIpCiAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcC5o
ZWFkZXJzLmdldCgieC1kaWQtcHJlZmxpZ2h0IiksICIxIiwgIlByZWZsaWdodCByZXF1ZXN0IGhh
cyBiZWVuIG1hZGUiKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwLmhlYWRlcnMuZ2V0KCJ4
LXByZWZsaWdodC1yZWZlcnJlciIpLCBleHBlY3RlZFJlZmVycmVyLCAiUHJlZmxpZ2h0J3MgcmVm
ZXJyZXIgaXMgY29ycmVjdCIpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3AuaGVhZGVycy5n
ZXQoIngtcmVmZXJyZXIiKSwgZXhwZWN0ZWRSZWZlcnJlciwgIlJlcXVlc3QncyByZWZlcnJlciBp
cyBjb3JyZWN0Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcC5oZWFkZXJzLmdldCgieC1j
b250cm9sLXJlcXVlc3QtaGVhZGVycyIpLCAiIiwgIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRl
cnMgdmFsdWUiKTsKICAgICAgIH0pOwogICAgIH0pOwotICB9LCBkZXNjKTsKKyAgfSwgZGVzYyAr
IChyZWZlcnJlciA/ICIgKGRlZmF1bHQgcmVmZXJyZXIpIiA6ICIgKCdteXJlZmVycmVyJyByZWZl
cnJlcikiKSk7CiB9Ci0KIHZhciBjb3JzVXJsID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfUkVNT1RF
X09SSUdJTiAgKyBkaXJuYW1lKGxvY2F0aW9uLnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIgKyAi
cHJlZmxpZ2h0LnB5IjsKIHZhciBvcmlnaW4gPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU4g
KyAiLyI7CiAKLWNvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiBuby1yZWZl
cnJlciIsIGNvcnNVcmwsICJuby1yZWZlcnJlciIsICIiKTsKLWNvcnNQcmVmbGlnaHRSZWZlcnJl
cigiUmVmZXJyZXIgcG9saWN5OiBcIlwiIiwgY29yc1VybCwgIiIsIGxvY2F0aW9uLnRvU3RyaW5n
KCkpCitjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIi
LCBjb3JzVXJsLCAibm8tcmVmZXJyZXIiLCB1bmRlZmluZWQsICIiKTsKK2NvcnNQcmVmbGlnaHRS
ZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciIsIGNvcnNVcmwsICJuby1yZWZl
cnJlciIsICJteXJlZmVycmVyIiwgIiIpOworCitjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVy
cmVyIHBvbGljeTogXCJcIiIsIGNvcnNVcmwsICIiLCB1bmRlZmluZWQsIGxvY2F0aW9uLnRvU3Ry
aW5nKCkpCitjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTogXCJcIiIsIGNv
cnNVcmwsICIiLCAibXlyZWZlcnJlciIsIG5ldyBVUkwoIm15cmVmZXJyZXIiLCBsb2NhdGlvbiku
dG9TdHJpbmcoKSk7CisKK2NvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiBv
cmlnaW4iLCBjb3JzVXJsLCAib3JpZ2luIiwgdW5kZWZpbmVkLCBvcmlnaW4pOworY29yc1ByZWZs
aWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IG9yaWdpbiIsIGNvcnNVcmwsICJvcmlnaW4i
LCAibXlyZWZlcnJlciIsIG9yaWdpbik7CisKK2NvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJy
ZXIgcG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCBjb3JzVXJsLCAib3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luIiwgdW5kZWZpbmVkLCBvcmlnaW4pOworY29yc1ByZWZsaWdodFJlZmVy
cmVyKCJSZWZlcnJlciBwb2xpY3k6IG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIsIGNvcnNVcmws
ICJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCAibXlyZWZlcnJlciIsIG9yaWdpbik7CiAKLWNv
cnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4iLCBjb3JzVXJsLCAi
b3JpZ2luIiwgb3JpZ2luKTsKLWNvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5
OiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCBjb3JzVXJsLCAib3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIiwgb3JpZ2luKTsKLWNvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5
OiB1bnNhZmUtdXJsIiwgY29yc1VybCwgInVuc2FmZS11cmwiLCBsb2NhdGlvbi50b1N0cmluZygp
KTsKK2NvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiB1bnNhZmUtdXJsIiwg
Y29yc1VybCwgInVuc2FmZS11cmwiLCB1bmRlZmluZWQsIGxvY2F0aW9uLnRvU3RyaW5nKCkpOwor
Y29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IHVuc2FmZS11cmwiLCBjb3Jz
VXJsLCAidW5zYWZlLXVybCIsICJteXJlZmVycmVyIiwgbmV3IFVSTCgibXlyZWZlcnJlciIsIGxv
Y2F0aW9uKS50b1N0cmluZygpKTsKIAogZG9uZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>