<?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>182559</bug_id>
          
          <creation_ts>2018-02-06 16:57:16 -0800</creation_ts>
          <short_desc>Restrict Referer to just the origin for third parties in private mode and third parties ITP blocks cookies for in regular mode</short_desc>
          <delta_ts>2018-02-07 12:09:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1397016</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-02-06 16:57:16 -0800</bug_when>
    <thetext>We should restrict the Referer header to just the origin for:
1. All third party requests in private mode.
2. Third party requests to domains that ITP blocks cookies for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397017</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-02-06 16:57:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/36990337&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397018</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-06 16:58:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/37295032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397022</commentid>
    <comment_count>3</comment_count>
      <attachid>333238</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-02-06 17:26:41 -0800</bug_when>
    <thetext>Created attachment 333238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397260</commentid>
    <comment_count>4</comment_count>
      <attachid>333238</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-07 11:55:08 -0800</bug_when>
    <thetext>Comment on attachment 333238
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:146
&gt; +    return request.partitionName(request.url().host()) != request.partitionName(request.firstPartyForCookies().host());

It&apos;s weird that partitionName() is a member function considering its implementation doesn&apos;t rely on any private information in ResourceRequestBase. Seems like isThirdPartyRequest() should be a member function of ResourceRequestBase since it relies entirely on internal state (m_url and m_firstPartyForCookies). I don&apos;t think you need to fix this right now, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397261</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-02-07 11:57:51 -0800</bug_when>
    <thetext>(In reply to Andy Estes from comment #4)
&gt; Comment on attachment 333238 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=333238&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:146
&gt; &gt; +    return request.partitionName(request.url().host()) != request.partitionName(request.firstPartyForCookies().host());
&gt; 
&gt; It&apos;s weird that partitionName() is a member function considering its
&gt; implementation doesn&apos;t rely on any private information in
&gt; ResourceRequestBase. Seems like isThirdPartyRequest() should be a member
&gt; function of ResourceRequestBase since it relies entirely on internal state
&gt; (m_url and m_firstPartyForCookies). I don&apos;t think you need to fix this right
&gt; now, though.

I totally agree about partitionName().

Moving isThirdPartyRequest() to ResourceRequestBase or a Cocoa-specific subclass makes this definition of 3rd-party a little risky. Some mean cross-origin whereas our definition is doesn&apos;t share partition, formally, doesn&apos;t share public suffix + 1. We should do something about this to make it convenient but I&apos;ll leave it as is for now.

Thanks for the review, Andy!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397264</commentid>
    <comment_count>6</comment_count>
      <attachid>333238</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-07 12:09:57 -0800</bug_when>
    <thetext>Comment on attachment 333238
Patch

Clearing flags on attachment: 333238

Committed r228239: &lt;https://trac.webkit.org/changeset/228239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397265</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-07 12:09:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333238</attachid>
            <date>2018-02-06 17:26:41 -0800</date>
            <delta_ts>2018-02-07 12:09:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182559-20180206172641.patch</filename>
            <type>text/plain</type>
            <size>31420</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAyLTA2ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3RyaWN0IFJlZmVyZXIg
dG8ganVzdCB0aGUgb3JpZ2luIGZvciB0aGlyZCBwYXJ0aWVzIGluIHByaXZhdGUgbW9kZSBhbmQg
dGhpcmQgcGFydGllcyBJVFAgYmxvY2tzIGNvb2tpZXMgZm9yIGluIHJlZ3VsYXIgbW9kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTU5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zNjk5MDMzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNl
LXJlZGlyZWN0cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3Vy
Y2UtcmVxdWVzdHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRl
LW1vZGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZhdGUtbW9kZS5o
dG1sCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlY3VyaXR5UG9saWN5OjpyZWZlcnJlclRvT3JpZ2luU3RyaW5nKToKKyAgICAgICAgICAg
IE5vdyBleHBvc2VkIHdpdGhpbiBXZWJDb3JlLiBUaGlzIGlzIHRvIG1ha2Ugc3VyZSB3ZSBjcmVh
dGUgYSBwcm9wZXIgcmVmZXJyZXIKKyAgICAgICAgICAgIHN0cmluZyBpbiBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3RCYXNlOjpzZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3JpZ2luU3RyaW5nKCku
CisgICAgICAgIChXZWJDb3JlOjpyZWZlcnJlclRvT3JpZ2luU3RyaW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgICAgIFVzZWQgdG8gYmUgaW50ZXJuYWwuCisgICAgICAgICogcGFnZS9TZWN1cml0eVBv
bGljeS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRFeGlzdGluZ0hU
VFBSZWZlcnJlclRvT3JpZ2luU3RyaW5nKToKKyAgICAgICAgICAgIE5ldywgZXhwb3J0ZWQgZnVu
Y3Rpb24gdXNlZCBpbiBXZWJLaXQuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90Cisg
ICAgICAgICAgICBzZXQgdGhlIHJlZmVycmVyIGlmIHRoZSByZXF1ZXN0IGhhcyBub25lIHNpbmNl
IGJlZm9yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aDoKKworCiAyMDE4LTAyLTA1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+
CiAKICAgICAgICAgQWJzdHJhY3QgaGVhcCBnZW5lcmF0b3Igc2hvdWxkIGluY2x1ZGUgSmF2YVNj
cmlwdENvcmUgaGVhZGVycyBkaXJlY3RseQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eVBvbGljeS5jcHAJKHJldmlzaW9uIDIyODEyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlQb2xpY3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIGJvb2wgU2Vj
dXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcigKICAgICByZXR1cm4gIVVSTElzU2VjdXJl
VVJMOwogfQogCi1zdGF0aWMgU3RyaW5nIHJlZmVycmVyVG9PcmlnaW5TdHJpbmcoY29uc3QgU3Ry
aW5nJiByZWZlcnJlcikKK1N0cmluZyBTZWN1cml0eVBvbGljeTo6cmVmZXJyZXJUb09yaWdpblN0
cmluZyhjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewogICAgIFN0cmluZyBvcmlnaW5TdHJpbmcg
PSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZWZlcnJlciktPnRvU3RyaW5nKCk7
CiAgICAgaWYgKG9yaWdpblN0cmluZyA9PSAibnVsbCIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5UG9saWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiAyMjgxMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5UG9saWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEwIEBAIHB1Ymxp
YzoKICAgICAvLyBJZiB5b3UgaW50ZW5kIHRvIHNlbmQgYSByZWZlcnJlciBoZWFkZXIsIHlvdSBz
aG91bGQgdXNlIGdlbmVyYXRlUmVmZXJyZXJIZWFkZXIgaW5zdGVhZC4KICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBzaG91bGRIaWRlUmVmZXJyZXIoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcik7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSByZWZlcnJlcidzIHNlY3VyaXR5
IG9yaWdpbiBwbHVzIGEgLyB0byBtYWtlIGl0IGEgY2Fub25pY2FsIFVSTAorICAgIC8vIGFuZCB0
aHVzIHVzZWFibGUgYXMgcmVmZXJyZXIuCisgICAgc3RhdGljIFN0cmluZyByZWZlcnJlclRvT3Jp
Z2luU3RyaW5nKGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpOworCiAgICAgLy8gUmV0dXJucyB0aGUg
cmVmZXJyZXIgbW9kaWZpZWQgYWNjb3JkaW5nIHRvIHRoZSByZWZlcnJlciBwb2xpY3kgZm9yIGEK
ICAgICAvLyBuYXZpZ2F0aW9uIHRvIGEgZ2l2ZW4gVVJMLiBJZiB0aGUgcmVmZXJyZXIgcmV0dXJu
ZWQgaXMgZW1wdHksIHRoZQogICAgIC8vIHJlZmVycmVyIGhlYWRlciBzaG91bGQgYmUgb21pdHRl
ZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0
QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkocmV2aXNpb24gMjI4MTI2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1
ZGUgIlB1YmxpY1N1ZmZpeC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJDb21wYXJpc29uLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyNCw2ICszMjUsMTQgQEAgdm9pZCBSZXNvdXJj
ZVJlcXVlc3RCYXNlOjpzZXRIVFRQUmVmZXJyZQogICAgIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6UmVmZXJlciwgaHR0cFJlZmVycmVyKTsKIH0KIAordm9pZCBSZXNvdXJjZVJl
cXVlc3RCYXNlOjpzZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3JpZ2luU3RyaW5nKCkKK3sKKyAg
ICBpZiAoIWhhc0hUVFBSZWZlcnJlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVyZXIsIFNlY3VyaXR5UG9saWN5OjpyZWZl
cnJlclRvT3JpZ2luU3RyaW5nKGh0dHBSZWZlcnJlcigpKSk7Cit9CisgICAgCiB2b2lkIFJlc291
cmNlUmVxdWVzdEJhc2U6OmNsZWFySFRUUFJlZmVycmVyKCkKIHsKICAgICB1cGRhdGVSZXNvdXJj
ZVJlcXVlc3QoKTsgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAkocmV2aXNpb24gMjI4MTI2KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGh0dHBSZWZlcnJlcigpIGNvbnN0OwogICAgIGJvb2wgaGFzSFRUUFJlZmVycmVyKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIVFRQUmVmZXJyZXIoY29uc3QgU3RyaW5n
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3Jp
Z2luU3RyaW5nKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckhUVFBSZWZlcnJlcigp
OwogCiAgICAgU3RyaW5nIGh0dHBPcmlnaW4oKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMjgyMDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE4LTAyLTA2ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlc3RyaWN0IFJlZmVyZXIgdG8ganVzdCB0aGUgb3JpZ2luIGZvciB0
aGlyZCBwYXJ0aWVzIGluIHByaXZhdGUgbW9kZSBhbmQgdGhpcmQgcGFydGllcyBJVFAgYmxvY2tz
IGNvb2tpZXMgZm9yIGluIHJlZ3VsYXIgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjk5
MDMzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjppc1RoaXJkUGFydHlSZXF1ZXN0KToKKyAgICAg
ICAgICAgIE5ldyBjb252ZW5pZW5jZSBmdW5jdGlvbi4gQ2hlY2tzIHdoZXRoZXIgdGhlIHJlc291
cmNlIHNoYXJlcworICAgICAgICAgICAgcGFydGl0aW9uIHdpdGggdGhlIGZpcnN0IHBhcnR5Lgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29j
b2EpOgorICAgICAgICAgICAgTm93IHN0cmlwcyB0aGUgcmVmZXJyZXIgdG8ganVzdCB0aGUgb3Jp
Z2luIGZvcjoKKyAgICAgICAgICAgIDEuIEFsbCB0aGlyZCBwYXJ0eSByZXF1ZXN0cyBpbiBwcml2
YXRlIG1vZGUuCisgICAgICAgICAgICAyLiBUaGlyZCBwYXJ0eSByZXF1ZXN0cyB0byBkb21haW5z
IHRoYXQgSVRQIGJsb2NrcyBjb29raWVzIGZvci4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgICAgIE5v
dyBzdHJpcHMgdGhlIHJlZmVycmVyIGluIHJlZGlyZWN0cyB0byBqdXN0IHRoZSBvcmlnaW4gZm9y
OgorICAgICAgICAgICAgMS4gQWxsIHRoaXJkIHBhcnR5IHJlcXVlc3RzIGluIHByaXZhdGUgbW9k
ZS4KKyAgICAgICAgICAgIDIuIFRoaXJkIHBhcnR5IHJlcXVlc3RzIHRvIGRvbWFpbnMgdGhhdCBJ
VFAgYmxvY2tzIGNvb2tpZXMgZm9yLgorCiAyMDE4LTAyLTA2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9y
LWFjdGl2YXRlLmh0dHBzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlIG9uIG1hY09TIGFuZCBpT1MK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgJKHJldmlzaW9uIDIyODEyNikKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAkod29ya2luZyBj
b3B5KQpAQCAtODIsNiArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb29raWVCbG9j
a2luZ1BvbGljeShib29sIHNob3VsZEJsb2NrKTsKICAgICB2b2lkIGFwcGx5Q29va2llUGFydGl0
aW9uaW5nUG9saWN5KGNvbnN0IFN0cmluZyYgcmVxdWlyZWRTdG9yYWdlUGFydGl0aW9uLCBjb25z
dCBTdHJpbmcmIGN1cnJlbnRTdG9yYWdlUGFydGl0aW9uKTsKICNlbmRpZgorICAgIGJvb2wgaXNU
aGlyZFBhcnR5UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAg
IFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247CiAgICAgUmV0YWlu
UHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0JKHJldmlzaW9uIDIyODEyNikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEs
MTEgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6YXBwbHlDb29raWVQYQogfQogI2VuZGlm
CiAKK2Jvb2wgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmlzVGhpcmRQYXJ0eVJlcXVlc3QoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIHJldHVybiByZXF1ZXN0
LnBhcnRpdGlvbk5hbWUocmVxdWVzdC51cmwoKS5ob3N0KCkpICE9IHJlcXVlc3QucGFydGl0aW9u
TmFtZShyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuaG9zdCgpKTsKK30KKwogTmV0d29y
a0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVu
dFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICA6IE5ldHdv
cmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCkBAIC0xNzEsNyArMTc2LDE0IEBAIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2MKICAgICAgICAgYXBwbHlCYXNpY0F1
dGhvcml6YXRpb25IZWFkZXIocmVxdWVzdCwgbV9pbml0aWFsQ3JlZGVudGlhbCk7CiAgICAgfQog
I2VuZGlmCi0gICAgCisKKyAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IGZhbHNlOworI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQorICAgIHNob3VsZEJsb2NrQ29v
a2llcyA9IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2hvdWxkQmxvY2tDb29raWVz
KHJlcXVlc3QpOworI2VuZGlmCisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcyB8fCAobV9zZXNz
aW9uLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpICYmIGlzVGhpcmRQYXJ0eVJlcXVlc3QocmVx
dWVzdCkpKQorICAgICAgICByZXF1ZXN0LnNldEV4aXN0aW5nSFRUUFJlZmVycmVyVG9PcmlnaW5T
dHJpbmcoKTsKKwogICAgIE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0ID0gcmVxdWVzdC5uc1VSTFJl
cXVlc3QoV2ViQ29yZTo6VXBkYXRlSFRUUEJvZHkpOwogICAgIGFwcGx5U25pZmZpbmdQb2xpY2ll
c0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChuc1JlcXVlc3QsIHNob3VsZENvbnRl
bnRTbmlmZiA9PSBXZWJDb3JlOjpTbmlmZkNvbnRlbnQgJiYgIXVybC5pc0xvY2FsRmlsZSgpLCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeTo6U25pZmYpOwogCkBAIC0xOTcsNyArMjA5LDcgQEAgTmV0d29ya0RhdGFUYXNr
Q29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvYwogICAgIH0KIAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NU
T1JBR0VfUEFSVElUSU9OSU5HKQotICAgIGlmIChhdXRvIHNob3VsZEJsb2NrQ29va2llcyA9IHNl
c3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3Qp
KSB7CisgICAgaWYgKHNob3VsZEJsb2NrQ29va2llcykgewogI2lmIEhBVkUoQ0ZORVRXT1JLX1NU
T1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgaWYg
KE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigp
KQogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwg
dGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQs
IGZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVl
c3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwpAQCAtMzEyLDEwICszMjQsMTggQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVAogICAgICAgICB9CiAjZW5k
aWYKICAgICB9Ci0gICAgCisKKyAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IGZhbHNlOwog
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIGF1dG8gc2hvdWxk
QmxvY2tDb29raWVzID0gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRC
bG9ja0Nvb2tpZXMocmVxdWVzdCk7CisgICAgc2hvdWxkQmxvY2tDb29raWVzID0gbV9zZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdCk7CiAg
ICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwg
JXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKHNob3VsZEJsb2NrQ29va2llcyA/ICJCbG9j
a2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisjZW5kaWYKKworICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMgfHwgKG1fc2Vzc2lv
bi0+c2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSAmJiBpc1RoaXJkUGFydHlSZXF1ZXN0KHJlcXVl
c3QpKSkKKyAgICAgICAgcmVxdWVzdC5zZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3JpZ2luU3Ry
aW5nKCk7CisKKyNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKKyAgICAv
LyBBbHdheXMgYXBwbHkgdGhlIHBvbGljeSBzaW5jZSBibG9ja2luZyBtYXkgbmVlZCB0byBiZSB0
dXJuZWQgb24gb3Igb2ZmIGluIGEgcmVkaXJlY3QuCiAgICAgYXBwbHlDb29raWVCbG9ja2luZ1Bv
bGljeShzaG91bGRCbG9ja0Nvb2tpZXMpOwogCiAgICAgaWYgKCFzaG91bGRCbG9ja0Nvb2tpZXMp
IHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODEyNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE4LTAyLTA2ICBKb2huIFdpbGFuZGVy
ICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc3RyaWN0IFJlZmVyZXIgdG8ganVz
dCB0aGUgb3JpZ2luIGZvciB0aGlyZCBwYXJ0aWVzIGluIHByaXZhdGUgbW9kZSBhbmQgdGhpcmQg
cGFydGllcyBJVFAgYmxvY2tzIGNvb2tpZXMgZm9yIGluIHJlZ3VsYXIgbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zNjk5MDMzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICBOZXcgdGVz
dHMgbWFya2VkIGFzIFsgU2tpcCBdLiBUaGUgY2hhbmdlIG9ubHkgYXBwbGllcyB0byBpT1MgYW5k
IE1hYy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcmVmZXJyZXIucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1m
b3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZWNoby1yZWZl
cnJlci5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRl
LW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVkaXJlY3RzLWluLXBy
aXZhdGUtbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVxdWVzdHMtaW4tcHJpdmF0
ZS1tb2RlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXBy
aXZhdGUtbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0cyBtYXJrZWQgYXMgWyBQYXNzIF0uCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgTmV3
IHRlc3RzIG1hcmtlZCBhcyBbIFBhc3MgXS4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0cyBtYXJrZWQgYXMgWyBTa2lwIF0uCisK
IDIwMTgtMDItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCB1bnNraXAgZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXBhcnRpYWwtc3RyZWFt
Lmh0dHBzLmh0bWwgYXMgaXQgbm8gbG9uZ2VyIHRpbWVzIG91dApJbmRleDogTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCShyZXZpc2lvbiAyMjgxMjYpCisrKyBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDggQEAgZmFzdC9tZWRpYS9tcS1pbnZlcnRlZC1j
b2xvcnMtbGl2ZS11cGRhdAogZmFzdC9tZWRpYS9tcS1tb25vY2hyb21lLWxpdmUtdXBkYXRlLmh0
bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWEvbXEtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1saXZlLXVw
ZGF0ZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFzaWMtYXV0aC1yZW1vdmUt
Y3JlZGVudGlhbHMuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRlLW1vZGUu
aHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZhdGUtbW9kZS5odG1sIFsgU2tpcCBd
CiAKICMgQXBwbGVQYXkgaXMgb25seSBhdmFpbGFibGUgb24gaU9TIChncmVhdGVyIHRoYW4gaU9T
IDEwKSBhbmQgbWFjT1MgKGdyZWF0ZXIgdGhhbiBtYWNPUyAxMC4xMikgYW5kIG9ubHkgZm9yIFdl
YktpdDIuCiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS8gWyBTa2lwIF0KSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMg
cmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2Vy
IGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZl
cnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3Rz
Lmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicK
Ky0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBp
biByZWRpcmVjdHMgdG8gcHJldmFsZW50IHJlc291cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rp
b24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIHNldEVuYWJsZUZlYXR1cmUoZW5hYmxl
KSB7CisgICAgICAgIGlmICghZW5hYmxlKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRD
b29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChlbmFibGUpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUpOworICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
ZWQuIik7CisKKyAgICB2YXIgcmVmZXJyZXI7CisgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJl
ZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgcmVm
ZXJyZXIgPSBkYXRhOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwg
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVy
cmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy5odG1sIik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0
dHA6Ly9sb2NhbGhvc3QiLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llUGFydGl0aW9uaW5n
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0
LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0pOworCisgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgY29uc29sZS5s
b2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3Vy
Y2UtcmVxdWVzdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAK
K1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZh
bGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2
YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVz
b3VyY2UtcmVxdWVzdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyBy
ZWZlcnJlciBmb3IgcHJldmFsZW50IHJlc291cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIHNldEVuYWJsZUZlYXR1cmUoZW5hYmxlKSB7
CisgICAgICAgIGlmICghZW5hYmxlKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZW5hYmxlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDb29r
aWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChlbmFibGUpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5z
cmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVt
ZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUpOworICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQu
Iik7CisKKyAgICB2YXIgcmVmZXJyZXI7CisgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVy
cmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHJlc3Bv
bnNlLnRleHQoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgcmVmZXJy
ZXIgPSBkYXRhOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLmh0bWwiKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
L2xvY2FsaG9zdCIsIHRydWUpOworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVQYXJ0aXRpb25pbmcoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7
CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgICAgICBy
ZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIu
cGhwIiwgZmluaXNoSlNUZXN0KTsKKworICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KworICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1yZWZlcnJlci5waHAJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKzw/cGhwCitoZWFkZXIoIkFjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7CitlY2hvICRfU0VSVkVS
WydIVFRQX1JFRkVSRVInXTsKKz8+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRlLW1vZGUtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0eS1yZWRpcmVjdHMtaW4tcHJpdmF0ZS1tb2RlLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVkaXJlY3RzLWlu
LXByaXZhdGUtbW9kZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBA
QAorVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBmb3IgdGhp
cmQtcGFydHkgcmVkaXJlY3RzIGluIHByaXZhdGUgYnJvd3NpbmcgbW9kZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJl
ZGlyZWN0cy1pbi1wcml2YXRlLW1vZGUuaHRtbCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci10aGlyZC1wYXJ0eS1yZWRpcmVjdHMtaW4tcHJpdmF0ZS1tb2RlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRlLW1vZGUuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3N0cmlw
LXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVkaXJlY3RzLWluLXByaXZhdGUt
bW9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGZv
ciB0aGlyZC1wYXJ0eSByZWRpcmVjdHMgaW4gcHJpdmF0ZSBicm93c2luZyBtb2RlLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKHRydWUpOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAg
ICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAg
ICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFy
IHJlZmVycmVyOworICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Cisg
ICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0eS1y
ZWRpcmVjdHMtaW4tcHJpdmF0ZS1tb2RlLmh0bWwiKTsKKworICAgICAgICBvcGVuSWZyYW1lKCJy
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Nl
Y3VyaXR5L3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZpbmlzaEpTVGVzdCk7CisKKyAg
ICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5t
ZXNzYWdlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZh
dGUtbW9kZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVl
c3RzLWluLXByaXZhdGUtbW9kZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRo
aXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZhdGUtbW9kZS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNiBAQAorVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2Vu
dCBhcyByZWZlcnJlciBmb3IgdGhpcmQtcGFydHkgcmVzb3VyY2VzIGluIHByaXZhdGUgYnJvd3Np
bmcgbW9kZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVmZXJyZXIg
aXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZhdGUtbW9kZS5odG1sIgorUEFTUyBy
ZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0eS1yZXF1ZXN0cy1pbi1wcml2YXRlLW1vZGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVxdWVzdHMtaW4tcHJpdmF0ZS1tb2Rl
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZh
dGUtbW9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVy
IGZvciB0aGlyZC1wYXJ0eSByZXNvdXJjZXMgaW4gcHJpdmF0ZSBicm93c2luZyBtb2RlLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkKHRydWUpOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAg
ICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgewor
ICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAg
dmFyIHJlZmVycmVyOworICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7
CisgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgIHJlZmVycmVyID0gZGF0YTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0
eS1yZXF1ZXN0cy1pbi1wcml2YXRlLW1vZGUuaHRtbCIpOworCisgICAgICAgIGZldGNoKCJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRl
eHQoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICByZWZl
cnJlciA9IGRhdGE7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVy
IiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICAgICAgICAgIG9wZW5JZnJhbWUoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAi
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAg
ICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZWNo
by1yZWZlcnJlci5waHAJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0IEBACis8P3BocAoraGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOworZWNobyAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107Cis/
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZGlyZWN0LnBocAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWRpcmVjdC5waHAJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKKzw/cGhwCiskcmVkaXJlY3RV
UkwgPSAkX0dFVFsicmVkaXJlY3RUbyJdOworaWYgKGlzc2V0KCRfR0VUWyJuYW1lMiJdKSkgewor
ICAgICRyZWRpcmVjdFVSTCA9ICRyZWRpcmVjdFVSTCAuICImbmFtZTI9IiAuICRfR0VUWyJuYW1l
MiJdOworfQoraWYgKGlzc2V0KCRfR0VUWyJuYW1lMyJdKSkgeworICAgICRyZWRpcmVjdFVSTCA9
ICRyZWRpcmVjdFVSTCAuICImbmFtZTM9IiAuICRfR0VUWyJuYW1lMyJdOworfQoraWYgKGlzc2V0
KCRfR0VUWyJtZXNzYWdlIl0pKSB7CisgICAgJHJlZGlyZWN0VVJMID0gJHJlZGlyZWN0VVJMIC4g
IiZtZXNzYWdlPSIgLiAkX0dFVFsibWVzc2FnZSJdOworfQoraGVhZGVyKCdMb2NhdGlvbjogJyAu
ICRyZWRpcmVjdFVSTCk7CitkaWUoKTsKKz8+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjI4MTI2KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTMwMjAsNiArMzAy
MCwxMiBAQCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVtb3ZlCiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCBbIFBhc3MgXQog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLmh0bWwg
WyBQYXNzIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMuaHRtbCBbIFBh
c3MgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRv
LW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLmh0bWwgWyBQYXNzIF0K
KworIyBTa2lwcGVkIGluIGdlbmVyYWwgZXhwZWN0YXRpb25zIHNpbmNlIHRoZXkgb25seSB3b3Jr
IG9uIGlPUyBhbmQgTWFjLCBXSzIuCitodHRwL3Rlc3RzL3NlY3VyaXR5L3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVkaXJlY3RzLWluLXByaXZhdGUtbW9kZS5odG1s
IFsgUGFzcyBdCitodHRwL3Rlc3RzL3NlY3VyaXR5L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1m
b3ItdGhpcmQtcGFydHktcmVxdWVzdHMtaW4tcHJpdmF0ZS1tb2RlLmh0bWwgWyBQYXNzIF0KIAog
d2Via2l0Lm9yZy9iLzE3NTI3MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvd2luZG93cy9ub3JlZmVycmVyLXdpbmRvdy1uYW1lLmh0bWwgWyBGYWlsdXJlIF0K
IApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwkocmV2aXNpb24gMjI4MTI2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC04MTAsNiArODEwLDEyIEBAIHdlYmtpdC5v
cmcvYi8xNzYxMjIgbWVkaWEvdmlkZW8tY29udHJvbHMKIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50
LXN0b3JlLmh0bWwgWyBQYXNzIF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1o
b3VyLmh0bWwgWyBQYXNzIF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCBbIFBhc3MgXQorWyBIaWdoU2llcnJhKyBd
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMuaHRtbCBbIFBhc3MgXQorWyBI
aWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy5odG1sIFsg
UGFzcyBdCisKKyMgU2tpcHBlZCBpbiBnZW5lcmFsIGV4cGVjdGF0aW9ucyBzaW5jZSB0aGV5IG9u
bHkgd29yayBvbiBpT1MgYW5kIE1hYywgV0syLgoraHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2YXRlLW1v
ZGUuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zZWN1cml0eS9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlcXVlc3RzLWluLXByaXZhdGUtbW9kZS5odG1sIFsgUGFz
cyBdCiAKICMgPHJkYXI6Ly9wcm9ibGVtLzMzNTU1NzU5Pgogd2Via2l0Lm9yZy9iLzE3NzYxNiBb
IEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9tZWRpYS92aWRlby1idWZmZXJlZC1yYW5nZS1jb250
YWlucy1jdXJyZW50VGltZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyMjgxMjYpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAt
NzA1LDYgKzcwNSw4IEBAIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtcGEK
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJl
Y3QuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3JlbW92
ZS1wYXJ0aXRpb25pbmctaW4tcmVkaXJlY3QuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3JlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sIFsgU2tp
cCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLmh0bWwgWyBTa2lwIF0K
K2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy5odG1sIFsgU2tpcCBdCiAKICMj
IyBFTkQgT0YgKDUpIFByb2dyZXNzaW9ucywgZXhwZWN0ZWQgc3VjY2Vzc2VzIHRoYXQgYXJlIGV4
cGVjdGVkIGZhaWx1cmVzIGluIFdlYktpdDEuCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>